Compare commits

...

No commits in common. 'c10-beta' and 'c9' have entirely different histories.
c10-beta ... c9

6
.gitignore vendored

@ -1,3 +1,3 @@
SOURCES/rhc-0.2.4.tar.gz
SOURCES/yggdrasil-0.2.4.tar.gz
SOURCES/yggdrasil-worker-package-manager-0.1.3.tar.xz
SOURCES/rhc-0.2.2.tar.gz
SOURCES/yggdrasil-0.2.1.tar.gz
SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz

@ -1,3 +1,3 @@
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
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

@ -0,0 +1,28 @@
--- 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))

@ -0,0 +1,89 @@
From d75dc60df73a88b0a14c799f3b6f1e8f66cee3d4 Mon Sep 17 00:00:00 2001
From: Link Dupont <link@sub-pop.net>
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 <link@sub-pop.net>
---
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

@ -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.4
%global ygg_pkg_mgr_ver 0.1.3
%global yggdrasil_ver 0.2.1
%global ygg_pkg_mgr_ver 0.1.0
Name: rhc
Version: 0.2.4
Release: 6%{?dist}
Version: 0.2.2
Release: 1%{?dist}
Epoch: 1
Summary: rhc connects the system to Red Hat hosted services
License: GPLv3
@ -15,21 +15,25 @@ 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.xz
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
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
BuildRequires: golang
BuildRequires: go-rpm-macros
BuildRequires: dbus-devel
BuildRequires: systemd
BuildRequires: systemd-devel
%define _description %{expand:%{name} is a client tool and daemon that connects the system to Red Hat hosted
@ -69,6 +73,10 @@ 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
@ -78,8 +86,8 @@ export LDFLAGS="%{goldflags}"
cd %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver}
make %{makeflags}
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}/yggdrasil-worker-package-manager
go build %{buildflags} -ldflags="%{goldflags}" -o rhc-package-manager-worker -mod vendor .
cd %{_builddir}/%{name}/%{name}-%{version}
make %{makeflags}
@ -96,7 +104,7 @@ make %{makeflags} \
%{__install} -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/
cd %{_builddir}/%{name}/yggdrasil-worker-package-manager-%{ygg_pkg_mgr_ver}
cd %{_builddir}/%{name}/yggdrasil-worker-package-manager
%{__install} -D -m 755 rhc-package-manager-worker %{buildroot}%{_libexecdir}/%{name}/
%{__install} -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}/workers/rhc-package-manager.toml
@ -107,12 +115,16 @@ make %{makeflags} \
%post
/usr/sbin/semanage permissive --add rhcd_t || true
if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
/usr/sbin/semanage permissive --add rhcd_t || true
fi
%postun
if [ $1 -eq 0 ]; then
/usr/sbin/semanage permissive --delete rhcd_t || true
if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
/usr/sbin/semanage permissive --delete rhcd_t || true
fi
fi
@ -133,34 +145,6 @@ fi
%changelog
* Tue May 21 2024 Link Dupont <link@redhat.com> - 0.2.4-6
- Require systemd instead of systemd-devel during compilation (RHEL-37674)
* Mon Feb 12 2024 Link Dupont <link@redhat.com> - 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 <jhnidek@redhat.com> - 0.2.4-4
- Add dependency on subscription-manager (RHEL-18974)
* Mon Oct 23 2023 Link Dupont <link@redhat.com> - 0.2.4-3
- Update embedded yggdrasil-worker-package-manager (RHEL-14200)
* Wed Oct 18 2023 Link Dupont <link@redhat.com> - 0.2.4-2
- Update embedded yggdrasil to 0.2.3 (RHEL-14200)
* Tue Aug 01 2023 Alba Hita Catala <ahitacat@redhat.com> - 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 <vmojzis@redhat.com> - 0.2.3-2
- Make rhcd_t permissive even when SELinux is disabled (RHBZ#2226701)
* Tue Jul 04 2023 Alba Hita Catala <ahitacat@redhat.com> - 0.2.3-1
- New upstream version (RHBZ#2219563)
* Tue Feb 14 2023 Alba Hita Catala <ahitacat@redhat.com> - 0.2.2-1
- New upstream version (RHBZ#2169772)
- RHC renaming (RHBZ#2167427)

Loading…
Cancel
Save