diff --git a/.gitignore b/.gitignore index 1a9e688..6f72c72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -SOURCES/rhc-0.2.2.tar.gz -SOURCES/yggdrasil-0.2.1.tar.gz -SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz +SOURCES/rhc-0.2.4.tar.gz +SOURCES/yggdrasil-0.2.4.tar.gz +SOURCES/yggdrasil-worker-package-manager-0.1.3.tar.xz diff --git a/.rhc.metadata b/.rhc.metadata index 725a0bf..644febf 100644 --- a/.rhc.metadata +++ b/.rhc.metadata @@ -1,3 +1,3 @@ -7f90428c84e86660930463c8f31765c023dea8c7 SOURCES/rhc-0.2.2.tar.gz -55a3abc8515dede8b7ff41905447e08f5e6c01d7 SOURCES/yggdrasil-0.2.1.tar.gz -0582350e1001af0d608772860045f7f4964aa321 SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz +d86980ee8506b164209dbd991df36199922d8592 SOURCES/rhc-0.2.4.tar.gz +4fca792b47a5dea8d3f12df8ea7f4ab6763d2be9 SOURCES/yggdrasil-0.2.4.tar.gz +307a2ca145c93b20c41b7f802f5b6fcf61dff3ae SOURCES/yggdrasil-worker-package-manager-0.1.3.tar.xz diff --git a/SOURCES/0001-feat-default-config-file-location.patch b/SOURCES/0001-feat-default-config-file-location.patch deleted file mode 100644 index 7afda51..0000000 --- a/SOURCES/0001-feat-default-config-file-location.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- main.go.orig 2022-02-11 15:41:53.199642591 -0500 -+++ main.go 2022-02-11 15:42:43.738219604 -0500 -@@ -6,6 +6,7 @@ - "fmt" - "net" - "os" -+ "path/filepath" - "strconv" - "strings" - "time" -@@ -21,7 +22,7 @@ - ) - - func main() { -- fs := flag.NewFlagSet("yggd-package-manager-worker", flag.ExitOnError) -+ fs := flag.NewFlagSet(filepath.Base(os.Args[0]), flag.ExitOnError) - - var ( - socketAddr = "" -@@ -32,7 +33,7 @@ - fs.StringVar(&socketAddr, "socket-addr", "", "dispatcher socket address") - fs.Var(&logLevel, "log-level", "log verbosity level (error (default), warn, info, debug, trace)") - fs.Var(&allowPatterns, "allow-pattern", "regular expression pattern to allow package operations\n(can be specified multiple times)") -- _ = fs.String("config", "", "path to `file` containing configuration values (optional)") -+ _ = fs.String("config", filepath.Join("/", "etc", "rhc", "workers", "rhc-package-manager.toml"), "path to `file` containing configuration values (optional)") - - ff.Parse(fs, os.Args[1:], ff.WithEnvVarPrefix("YGG"), ff.WithConfigFileFlag("config"), ff.WithConfigFileParser(fftoml.Parser)) - diff --git a/SOURCES/0001-fix-read-worker-output-using-io.Read.patch b/SOURCES/0001-fix-read-worker-output-using-io.Read.patch deleted file mode 100644 index c33e4f3..0000000 --- a/SOURCES/0001-fix-read-worker-output-using-io.Read.patch +++ /dev/null @@ -1,89 +0,0 @@ -From d75dc60df73a88b0a14c799f3b6f1e8f66cee3d4 Mon Sep 17 00:00:00 2001 -From: Link Dupont -Date: Tue, 22 Nov 2022 13:07:41 -0500 -Subject: [PATCH] fix: read worker output using io.Read - -Some workers output a lot of text to stderr and stdout. Rather than -scanning stderr and stdout into a buffer using a bufio.Scanner, read a -fixed number of bytes at a time. This will break lines of output from -the worker in the middle of words, making reading stdout in the logs -more difficult, but avoids the overly verbose workers from hitting the -bufio.ErrTooLong error. - -Signed-off-by: Link Dupont ---- - cmd/yggd/exec.go | 46 +++++++++++++++++++++++++++++++++------------- - 1 file changed, 33 insertions(+), 13 deletions(-) - -diff --git a/cmd/yggd/exec.go b/cmd/yggd/exec.go -index 4eb1757..a2a3d29 100644 ---- a/cmd/yggd/exec.go -+++ b/cmd/yggd/exec.go -@@ -1,8 +1,8 @@ - package main - - import ( -- "bufio" - "fmt" -+ "io" - "io/ioutil" - "os" - "os/exec" -@@ -54,22 +54,42 @@ func startProcess(file string, env []string, delay time.Duration, died chan int) - log.Debugf("started process: %v", cmd.Process.Pid) - - go func() { -- scanner := bufio.NewScanner(stdout) -- for scanner.Scan() { -- log.Tracef("[%v] %v", file, scanner.Text()) -- } -- if err := scanner.Err(); err != nil { -- log.Errorf("cannot read from stdout: %v", err) -+ for { -+ buf := make([]byte, 4096) -+ n, err := stdout.Read(buf) -+ if n > 0 { -+ log.Tracef("[%v] %v", file, strings.TrimRight(string(buf), "\n\x00")) -+ } -+ if err != nil { -+ switch err { -+ case io.EOF: -+ log.Debugf("%v stdout reached EOF: %v", file, err) -+ return -+ default: -+ log.Errorf("cannot read from stdout: %v", err) -+ continue -+ } -+ } - } - }() - - go func() { -- scanner := bufio.NewScanner(stderr) -- for scanner.Scan() { -- log.Errorf("[%v] %v", file, scanner.Text()) -- } -- if err := scanner.Err(); err != nil { -- log.Errorf("cannot read from stderr: %v", err) -+ for { -+ buf := make([]byte, 4096) -+ n, err := stderr.Read(buf) -+ if n > 0 { -+ log.Errorf("[%v] %v", file, strings.TrimRight(string(buf), "\n\x00")) -+ } -+ if err != nil { -+ switch err { -+ case io.EOF: -+ log.Debugf("%v stderr reached EOF: %v", file, err) -+ return -+ default: -+ log.Errorf("cannot read from stderr: %v", err) -+ continue -+ } -+ } - } - }() - --- -2.38.1 - diff --git a/SPECS/rhc.spec b/SPECS/rhc.spec index b4234f3..f319d72 100644 --- a/SPECS/rhc.spec +++ b/SPECS/rhc.spec @@ -1,12 +1,12 @@ %global buildflags -buildmode pie -compiler gc -a -v -x %global goldflags %{expand:-linkmode=external -compressdwarf=false -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags'} -%global yggdrasil_ver 0.2.1 -%global ygg_pkg_mgr_ver 0.1.0 +%global yggdrasil_ver 0.2.4 +%global ygg_pkg_mgr_ver 0.1.3 Name: rhc -Version: 0.2.2 -Release: 1%{?dist} +Version: 0.2.4 +Release: 5%{?dist} Epoch: 1 Summary: rhc connects the system to Red Hat hosted services License: GPLv3 @@ -15,18 +15,14 @@ URL: https://github.com/redhatinsights/rhc Source0: https://github.com/RedHatInsights/rhc/releases/download/%{version}/%{name}-%{version}.tar.gz Source1: config.toml Source2: https://github.com/RedHatInsights/yggdrasil/releases/download/%{yggdrasil_ver}/yggdrasil-%{yggdrasil_ver}.tar.gz -Source3: https://github.com/RedHatInsights/yggdrasil-worker-package-manager/releases/download/%{ygg_pkg_mgr_ver}/yggdrasil-worker-package-manager-%{ygg_pkg_mgr_ver}.tar.gz +Source3: https://github.com/RedHatInsights/yggdrasil-worker-package-manager/releases/download/%{ygg_pkg_mgr_ver}/yggdrasil-worker-package-manager-%{ygg_pkg_mgr_ver}.tar.xz Source4: rhc-package-manager.toml -# Fixed upstream https://github.com/RedHatInsights/yggdrasil-worker-package-manager/commit/22105b0016abfc7c743c1eadb0372e4ef93cc65e -Patch0: 0001-feat-default-config-file-location.patch -# Fixed upstream https://github.com/RedHatInsights/yggdrasil/pull/100/commits/d75dc60df73a88b0a14c799f3b6f1e8f66cee3d4 -Patch2: 0001-fix-read-worker-output-using-io.Read.patch - ExclusiveArch: %{go_arches} Recommends: insights-client +Requires: subscription-manager Requires(post): policycoreutils-python-utils BuildRequires: git @@ -73,10 +69,6 @@ This package includes files necessary for building rhc workers. %setup -T -D -c -n %{name} -a 3 sed -i -e "s/LDFLAGS :=/LDFLAGS ?=/" %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver}/Makefile sed -i -e "s/LDFLAGS :=/LDFLAGS ?=/" %{_builddir}/%{name}/%{name}-%{version}/Makefile -cd %{_builddir}/%{name}/yggdrasil-worker-package-manager -%patch0 -p0 -cd %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver} -%patch2 -p1 %build @@ -86,8 +78,8 @@ export LDFLAGS="%{goldflags}" cd %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver} make %{makeflags} -cd %{_builddir}/%{name}/yggdrasil-worker-package-manager -go build %{buildflags} -ldflags="%{goldflags}" -o rhc-package-manager-worker -mod vendor . +cd %{_builddir}/%{name}/yggdrasil-worker-package-manager-%{ygg_pkg_mgr_ver} +go build %{buildflags} -ldflags="%{goldflags} -X 'github.com/redhatinsights/yggdrasil.SysconfDir=%{_sysconfdir}' -X 'github.com/redhatinsights/yggdrasil.LongName=%{name}'" -o rhc-package-manager-worker -mod vendor . cd %{_builddir}/%{name}/%{name}-%{version} make %{makeflags} @@ -104,7 +96,7 @@ make %{makeflags} \ %{__install} -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/ -cd %{_builddir}/%{name}/yggdrasil-worker-package-manager +cd %{_builddir}/%{name}/yggdrasil-worker-package-manager-%{ygg_pkg_mgr_ver} %{__install} -D -m 755 rhc-package-manager-worker %{buildroot}%{_libexecdir}/%{name}/ %{__install} -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}/workers/rhc-package-manager.toml @@ -115,16 +107,12 @@ make %{makeflags} \ %post -if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then - /usr/sbin/semanage permissive --add rhcd_t || true -fi +/usr/sbin/semanage permissive --add rhcd_t || true %postun if [ $1 -eq 0 ]; then - if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then - /usr/sbin/semanage permissive --delete rhcd_t || true - fi + /usr/sbin/semanage permissive --delete rhcd_t || true fi @@ -145,6 +133,31 @@ fi %changelog +* Mon Feb 12 2024 Link Dupont - 0.2.4-5 +- Update embedded yggdrasil-worker-package-manager to 0.1.3 (RHEL-17179) +- Update embedded yggdrasil to 0.2.4 (RHEL-17179) + +* Mon Jan 8 2024 Jiri Hnidek - 0.2.4-4 +- Add dependency on subscription-manager (RHEL-18974) + +* Mon Oct 23 2023 Link Dupont - 0.2.4-3 +- Update embedded yggdrasil-worker-package-manager (RHEL-14200) + +* Wed Oct 18 2023 Link Dupont - 0.2.4-2 +- Update embedded yggdrasil to 0.2.3 (RHEL-14200) + +* Tue Aug 01 2023 Alba Hita Catala - 0.2.4-1 +- Configure proxy for http connections (RHBZ#2227018) +- Failling to get system profile is not an error but a warning (RHBZ#2227012) +- Prevent message content being logged at any level (RHBZ#2227010) +- Added bash completion (RHBZ#2145198) + +* Tue Jul 25 2023 Vit Mojzis - 0.2.3-2 +- Make rhcd_t permissive even when SELinux is disabled (RHBZ#2226701) + +* Tue Jul 04 2023 Alba Hita Catala - 0.2.3-1 +- New upstream version (RHBZ#2219563) + * Tue Feb 14 2023 Alba Hita Catala - 0.2.2-1 - New upstream version (RHBZ#2169772) - RHC renaming (RHBZ#2167427)