Install AlmaLinux repositories

Add AlmaLinux support patch (Thanks @pastalian)

Remove libreport-rhel-bugzilla from package set
This commit is contained in:
Eduard Abdullin 2025-11-07 08:10:31 +00:00 committed by root
commit 3a368988d4
4 changed files with 292 additions and 3 deletions

View File

@ -0,0 +1,40 @@
From 0f97a1c1668827086dfa335c9fb427cbb28782b2 Mon Sep 17 00:00:00 2001
From: Lukas Zapletal <lzap+git@redhat.com>
Date: Thu, 11 Sep 2025 08:03:21 +0200
Subject: [PATCH] common: fix unclosed logrus logging pipes
This is a backport of 1cde7e3. The original patch was not separated into
individual commits unfortunately, there fore only the relevant line is
being brought in. The original analysis:
It looks like both CloudAPI and WeldrAPI consume memory, process can go
up to several gigabytes pretty quickly just by running a simple script.
while sleep 0.001; do
curl --unix-socket /run/weldr/api.socket -XGET http://localhost/api/
curl --unix-socket /run/cloudapi/api.socket -XGET http://localhost/api/
done
There is a logrus logger method called Write and WriteLevel which create
a new logging entry, create a PIPE and spawn a goroutine that is reading
from that PIPE. The caller is expected to close the PIPE writer which
was not done.
---
internal/common/echo_logrus.go | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/internal/common/echo_logrus.go b/internal/common/echo_logrus.go
index 198ce17310..600cce2d74 100644
--- a/internal/common/echo_logrus.go
+++ b/internal/common/echo_logrus.go
@@ -178,5 +178,9 @@ func (l *EchoLogrusLogger) Panicj(j lslog.JSON) {
}
func (l *EchoLogrusLogger) Write(p []byte) (n int, err error) {
- return l.Logger.WithContext(l.Ctx).Writer().Write(p)
+ // Writer() from logrus returns PIPE that needs to be closed
+ w := l.Logger.WithContext(l.Ctx).Writer()
+ defer w.Close()
+
+ return w.Write(p)
}

View File

@ -0,0 +1,54 @@
From 62822b56ae637ce512be4ace2ee062cabddcfa09 Mon Sep 17 00:00:00 2001
From: Gianluca Zuccarelli <gianlucazuccarelli@gmail.com>
Date: Mon, 8 Sep 2025 14:11:50 +0100
Subject: [PATCH] internal/blueprint: add JSON tailoring to bp conversion
The blueprint convert function was missing the json tailoring case. This meant that
if the json tailoring customization was provided in the blueprint, the customization
would get ignored and the tailoring profile would not be applied to the image.
---
internal/blueprint/blueprint.go | 4 ++++
internal/blueprint/blueprint_convert_test.go | 8 ++++++++
2 files changed, 12 insertions(+)
diff --git a/internal/blueprint/blueprint.go b/internal/blueprint/blueprint.go
index 63f8aa5b71..c01a2c6a48 100644
--- a/internal/blueprint/blueprint.go
+++ b/internal/blueprint/blueprint.go
@@ -253,6 +253,10 @@ func Convert(bp Blueprint) iblueprint.Blueprint {
itailoring := iblueprint.OpenSCAPTailoringCustomizations(*tailoring)
ioscap.Tailoring = &itailoring
}
+ if jsonTailoring := oscap.JSONTailoring; jsonTailoring != nil {
+ ijsonTailoring := iblueprint.OpenSCAPJSONTailoringCustomizations(*jsonTailoring)
+ ioscap.JSONTailoring = &ijsonTailoring
+ }
customizations.OpenSCAP = &ioscap
}
if ign := c.Ignition; ign != nil {
diff --git a/internal/blueprint/blueprint_convert_test.go b/internal/blueprint/blueprint_convert_test.go
index 520e18271d..2c652f0658 100644
--- a/internal/blueprint/blueprint_convert_test.go
+++ b/internal/blueprint/blueprint_convert_test.go
@@ -233,6 +233,10 @@ func TestConvert(t *testing.T) {
Selected: []string{"cloth"},
Unselected: []string{"leather"},
},
+ JSONTailoring: &OpenSCAPJSONTailoringCustomizations{
+ ProfileID: "tailored_profile",
+ Filepath: "path-to-json-file",
+ },
},
Ignition: &IgnitionCustomization{
Embedded: &EmbeddedIgnitionCustomization{
@@ -532,6 +536,10 @@ func TestConvert(t *testing.T) {
Selected: []string{"cloth"},
Unselected: []string{"leather"},
},
+ JSONTailoring: &iblueprint.OpenSCAPJSONTailoringCustomizations{
+ ProfileID: "tailored_profile",
+ Filepath: "path-to-json-file",
+ },
},
Ignition: &iblueprint.IgnitionCustomization{
Embedded: &iblueprint.EmbeddedIgnitionCustomization{

View File

@ -0,0 +1,179 @@
From 8e6381e3cfdebe5107949173a0994e7b8557a718 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Budai?= <ondrej@budai.cz>
Date: Tue, 26 Aug 2025 13:41:10 +0200
Subject: [PATCH 1/2] go.mod: update go-jose v4.0.5 to fix CVE-2025-27144
---
go.mod | 2 +-
go.sum | 4 ++--
vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md | 6 ------
vendor/github.com/go-jose/go-jose/v4/README.md | 10 +---------
vendor/github.com/go-jose/go-jose/v4/jwe.go | 5 +++--
vendor/github.com/go-jose/go-jose/v4/jwk.go | 4 ++--
vendor/github.com/go-jose/go-jose/v4/jws.go | 5 +++--
vendor/modules.txt | 2 +-
8 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/go.mod b/go.mod
index 43cd13d2ae..b26e5dcbd4 100644
--- a/go.mod
+++ b/go.mod
@@ -133,7 +133,7 @@ require (
github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/ghodss/yaml v1.0.0 // indirect
- github.com/go-jose/go-jose/v4 v4.0.4 // indirect
+ github.com/go-jose/go-jose/v4 v4.0.5 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/analysis v0.23.0 // indirect
diff --git a/go.sum b/go.sum
index 16526b8d12..0445be92d9 100644
--- a/go.sum
+++ b/go.sum
@@ -252,8 +252,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME
github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
-github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E=
-github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc=
+github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
+github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
diff --git a/vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md b/vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md
index b63e1f8fee..4b4805add6 100644
--- a/vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md
+++ b/vendor/github.com/go-jose/go-jose/v4/CONTRIBUTING.md
@@ -7,9 +7,3 @@ When submitting code, please make every effort to follow existing conventions
and style in order to keep the code as readable as possible. Please also make
sure all tests pass by running `go test`, and format your code with `go fmt`.
We also recommend using `golint` and `errcheck`.
-
-Before your code can be accepted into the project you must also sign the
-Individual Contributor License Agreement. We use [cla-assistant.io][1] and you
-will be prompted to sign once a pull request is opened.
-
-[1]: https://cla-assistant.io/
diff --git a/vendor/github.com/go-jose/go-jose/v4/README.md b/vendor/github.com/go-jose/go-jose/v4/README.md
index 79a7c5ecc8..02b5749546 100644
--- a/vendor/github.com/go-jose/go-jose/v4/README.md
+++ b/vendor/github.com/go-jose/go-jose/v4/README.md
@@ -9,14 +9,6 @@ Package jose aims to provide an implementation of the Javascript Object Signing
and Encryption set of standards. This includes support for JSON Web Encryption,
JSON Web Signature, and JSON Web Token standards.
-**Disclaimer**: This library contains encryption software that is subject to
-the U.S. Export Administration Regulations. You may not export, re-export,
-transfer or download this code or any part of it in violation of any United
-States law, directive or regulation. In particular this software may not be
-exported or re-exported in any form or on any media to Iran, North Sudan,
-Syria, Cuba, or North Korea, or to denied persons or entities mentioned on any
-US maintained blocked list.
-
## Overview
The implementation follows the
@@ -109,6 +101,6 @@ allows attaching a key id.
Examples can be found in the Godoc
reference for this package. The
-[`jose-util`](https://github.com/go-jose/go-jose/tree/v4/jose-util)
+[`jose-util`](https://github.com/go-jose/go-jose/tree/main/jose-util)
subdirectory also contains a small command-line utility which might be useful
as an example as well.
diff --git a/vendor/github.com/go-jose/go-jose/v4/jwe.go b/vendor/github.com/go-jose/go-jose/v4/jwe.go
index 89f03ee3e1..9f1322dccc 100644
--- a/vendor/github.com/go-jose/go-jose/v4/jwe.go
+++ b/vendor/github.com/go-jose/go-jose/v4/jwe.go
@@ -288,10 +288,11 @@ func ParseEncryptedCompact(
keyAlgorithms []KeyAlgorithm,
contentEncryption []ContentEncryption,
) (*JSONWebEncryption, error) {
- parts := strings.Split(input, ".")
- if len(parts) != 5 {
+ // Five parts is four separators
+ if strings.Count(input, ".") != 4 {
return nil, fmt.Errorf("go-jose/go-jose: compact JWE format must have five parts")
}
+ parts := strings.SplitN(input, ".", 5)
rawProtected, err := base64.RawURLEncoding.DecodeString(parts[0])
if err != nil {
diff --git a/vendor/github.com/go-jose/go-jose/v4/jwk.go b/vendor/github.com/go-jose/go-jose/v4/jwk.go
index 8a52842106..9e57e93ba2 100644
--- a/vendor/github.com/go-jose/go-jose/v4/jwk.go
+++ b/vendor/github.com/go-jose/go-jose/v4/jwk.go
@@ -239,10 +239,10 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
keyPub = key
}
} else {
- err = fmt.Errorf("go-jose/go-jose: unknown curve %s'", raw.Crv)
+ return fmt.Errorf("go-jose/go-jose: unknown curve %s'", raw.Crv)
}
default:
- err = fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty)
+ return fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty)
}
if err != nil {
diff --git a/vendor/github.com/go-jose/go-jose/v4/jws.go b/vendor/github.com/go-jose/go-jose/v4/jws.go
index 3a912301af..d09d8ba507 100644
--- a/vendor/github.com/go-jose/go-jose/v4/jws.go
+++ b/vendor/github.com/go-jose/go-jose/v4/jws.go
@@ -327,10 +327,11 @@ func parseSignedCompact(
payload []byte,
signatureAlgorithms []SignatureAlgorithm,
) (*JSONWebSignature, error) {
- parts := strings.Split(input, ".")
- if len(parts) != 3 {
+ // Three parts is two separators
+ if strings.Count(input, ".") != 2 {
return nil, fmt.Errorf("go-jose/go-jose: compact JWS format must have three parts")
}
+ parts := strings.SplitN(input, ".", 3)
if parts[1] != "" && payload != nil {
return nil, fmt.Errorf("go-jose/go-jose: payload is not detached")
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 06781a551d..0b64b482ea 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -690,7 +690,7 @@ github.com/getsentry/sentry-go/logrus
# github.com/ghodss/yaml v1.0.0
## explicit
github.com/ghodss/yaml
-# github.com/go-jose/go-jose/v4 v4.0.4
+# github.com/go-jose/go-jose/v4 v4.0.5
## explicit; go 1.21
github.com/go-jose/go-jose/v4
github.com/go-jose/go-jose/v4/cipher
From 8b1ed9f96f7434ead5683015b0ad78014be76ba2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Budai?= <ondrej@budai.cz>
Date: Tue, 26 Aug 2025 13:46:51 +0200
Subject: [PATCH 2/2] github: ignore unused functions in shellcheck
Seems to be a false positive (shellcheck doesn't understand traps).
---
.github/workflows/tests.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 54185df0c0..e11d7a39fb 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -212,9 +212,9 @@ jobs:
with:
ignore: vendor # We don't want to fix the code in vendored dependencies
env:
- # don't check /etc/os-release sourcing, allow useless cats to live inside our codebase, and
- # allow seemingly unreachable commands
- SHELLCHECK_OPTS: -e SC1091 -e SC2002 -e SC2317
+ # don't check /etc/os-release sourcing, allow useless cats to live inside our codebase,
+ # allow seemingly unreachable commands, and allow unused functions
+ SHELLCHECK_OPTS: -e SC1091 -e SC2002 -e SC2317 -e SC2329
- name: Do not doube trap signals inside test scripts
run: |

View File

@ -25,7 +25,7 @@ It is compatible with composer-cli and cockpit-composer clients.
}
Name: osbuild-composer
Release: 2%{?dist}.alma.1
Release: 3%{?dist}.alma.1
Summary: An image building service based on osbuild
# osbuild-composer doesn't have support for building i686 and armv7hl images
@ -36,11 +36,19 @@ License: Apache-2.0
URL: %{gourl}
Source0: %{gosource}
# https://github.com/osbuild/osbuild-composer/pull/4856
Patch0: json-tailoring-conversion.patch
# https://github.com/osbuild/osbuild-composer/pull/4860
Patch1: fix-unclosed-logrus-logging-pipes.patch
# https://github.com/osbuild/osbuild-composer/pull/4842
Patch2: update-go-jose-dependency.patch
# AlmaLinux Patch
Patch101: 0001-Remove-libreport-rhel-anaconda-bugzilla-from-anacond.patch
Patch102: 0002-AlmaLinux-support-patch.patch
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
BuildRequires: systemd
BuildRequires: krb5-devel
@ -475,11 +483,19 @@ Integration tests to be run on a pristine-dedicated system to test the osbuild-c
%endif
%changelog
* Mon Jun 30 2025 Eduard Abdullin <eabdullin@almalinux.org> - 132.2-2.alma.1
* Fri Nov 07 2025 Eduard Abdullin <eabdullin@almalinux.org> - 132.2-3.alma.1
- Install AlmaLinux repositories
- Add AlmaLinux support patch (Thanks @pastalian)
- Remove libreport-rhel-bugzilla from package set
* Wed Oct 15 2025 Gianluca Zuccarelli <gzuccare@redhat.com> - 132.2-3
- Fix json tailoring blueprint conversion
Resolves: RHEL-111314
- Fix unclosed logrus logging pipes
Resolves: RHEL-102832
- Update go-jose dependency
Resolves: RHEL-82968 (CVE-2025-27144)
* Tue Jun 24 2025 Ondřej Budai <obudai@redhat.com> - 132.2-2
- Resolves: RHEL-89319 (CVE-2025-22871)