diff --git a/.gitignore b/.gitignore index 96ce921..f3ac690 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/osbuild-composer-28.tar.gz +SOURCES/osbuild-composer-33.tar.gz diff --git a/.osbuild-composer.metadata b/.osbuild-composer.metadata index aabcc35..499b3b9 100644 --- a/.osbuild-composer.metadata +++ b/.osbuild-composer.metadata @@ -1 +1 @@ -c3d736a5c9b9bdd26f4eb40e25bf2c1c8bafd5a4 SOURCES/osbuild-composer-28.tar.gz +18bdc85004f4f5bb687ce6c39fb9560897e659ff SOURCES/osbuild-composer-33.tar.gz diff --git a/SOURCES/0001-test-rhel85-qcow2-custom-regenerate.patch b/SOURCES/0001-test-rhel85-qcow2-custom-regenerate.patch new file mode 100644 index 0000000..f99d52a --- /dev/null +++ b/SOURCES/0001-test-rhel85-qcow2-custom-regenerate.patch @@ -0,0 +1,181 @@ +From 7c635fc6b0a45e1d54bea9caaaf4ba82447cfe3f Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sun, 29 Aug 2021 14:59:24 +0000 +Subject: [PATCH] test/rhel85/qcow2/custom: regenerate + +Signed-off-by: Tom Gundersen +--- + .../rhel_85-x86_64-qcow2-customize.json | 64 +++++++++++-------- + 1 file changed, 39 insertions(+), 25 deletions(-) + +diff --git a/test/data/manifests/rhel_85-x86_64-qcow2-customize.json b/test/data/manifests/rhel_85-x86_64-qcow2-customize.json +index 18524628..c1e1632a 100644 +--- a/test/data/manifests/rhel_85-x86_64-qcow2-customize.json ++++ b/test/data/manifests/rhel_85-x86_64-qcow2-customize.json +@@ -100,17 +100,17 @@ + ] + }, + "filesystem": [ +- { +- "mountpoint": "/", +- "minsize": 131072000 +- }, + { + "mountpoint": "/usr", + "minsize": 2147483648 + }, + { + "mountpoint": "/var", +- "minsize": 131072000 ++ "minsize": 1073741824 ++ }, ++ { ++ "mountpoint": "/", ++ "minsize": 2147483648 + } + ] + } +@@ -477,6 +477,7 @@ + "sha256:53849d779914a944acc126459911030c8ac8310ffcab354c6a7bcc4ef4af5bab", + "sha256:39f86feba904fc4c4a9a04a54576d6d3b4e9af344155aee9e4321c27b4742f0a", + "sha256:8c9c059292e68dfbdec942133c22ef69fb4113166def6ad66903a1973bc9bccb", ++ "sha256:d5130266a054d7cc7cbfe68f84a7dd8d1668518d87361235d12a993bc0750a5d", + "sha256:ee5595a39aa681b5d91f25d5e9415733ac47e92840af4baaaf6d2f802c78f212", + "sha256:47b0a16a1305e23104da6f2f29ee2e7cbede921528e5a35a9df080c085a04d78", + "sha256:1291973fb1c479d3d3dab62d7dbcda052ab998779a0eb2e45427d0e2257d8db4", +@@ -1451,8 +1452,8 @@ + "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33" + }, + { +- "size": 16312220, +- "start": 4659200, ++ "size": 14471068, ++ "start": 6500352, + "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", + "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562" + }, +@@ -1463,7 +1464,7 @@ + "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75" + }, + { +- "size": 256000, ++ "size": 2097152, + "start": 4403200, + "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", + "uuid": "a178892e-e285-4ce1-9114-55780875d64e" +@@ -1506,8 +1507,8 @@ + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.img", +- "start": 4659200, +- "size": 16312220 ++ "start": 6500352, ++ "size": 14471068 + } + } + } +@@ -1539,7 +1540,7 @@ + "options": { + "filename": "disk.img", + "start": 4403200, +- "size": 256000 ++ "size": 2097152 + } + } + } +@@ -1576,8 +1577,8 @@ + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.img", +- "start": 4659200, +- "size": 16312220 ++ "start": 6500352, ++ "size": 14471068 + } + }, + "usr": { +@@ -1593,7 +1594,7 @@ + "options": { + "filename": "disk.img", + "start": 4403200, +- "size": 256000 ++ "size": 2097152 + } + } + }, +@@ -2921,6 +2922,9 @@ + "sha256:d50174632033170dfd1d8125f132962872c0042711e44ed59e91f6d2d26071c0": { + "url": "https://rpmrepo.osbuild.org/v2/mirror/rhvpn/el8/el8-x86_64-baseos-n8.5-20210730/Packages/polkit-libs-0.115-12.el8.x86_64.rpm" + }, ++ "sha256:d5130266a054d7cc7cbfe68f84a7dd8d1668518d87361235d12a993bc0750a5d": { ++ "url": "https://rpmrepo.osbuild.org/v2/mirror/rhvpn/el8/el8-x86_64-baseos-n8.5-20210730/Packages/efibootmgr-16-1.el8.x86_64.rpm" ++ }, + "sha256:d570af0578f5b2c6225f1f2354404f65bccf91c3974e98dcbc0c7b55a61b9b46": { + "url": "https://rpmrepo.osbuild.org/v2/mirror/rhvpn/el8/el8-x86_64-baseos-n8.5-20210730/Packages/grep-3.1-6.el8.x86_64.rpm" + }, +@@ -9354,6 +9358,15 @@ + "remote_location": "https://rpmrepo.osbuild.org/v2/mirror/rhvpn/el8/el8-x86_64-baseos-n8.5-20210730/Packages/efi-filesystem-3-3.el8.noarch.rpm", + "checksum": "sha256:8c9c059292e68dfbdec942133c22ef69fb4113166def6ad66903a1973bc9bccb" + }, ++ { ++ "name": "efibootmgr", ++ "epoch": 0, ++ "version": "16", ++ "release": "1.el8", ++ "arch": "x86_64", ++ "remote_location": "https://rpmrepo.osbuild.org/v2/mirror/rhvpn/el8/el8-x86_64-baseos-n8.5-20210730/Packages/efibootmgr-16-1.el8.x86_64.rpm", ++ "checksum": "sha256:d5130266a054d7cc7cbfe68f84a7dd8d1668518d87361235d12a993bc0750a5d" ++ }, + { + "name": "efivar", + "epoch": 0, +@@ -13168,6 +13181,7 @@ + "e2fsprogs-1.45.6-2.el8.x86_64", + "e2fsprogs-libs-1.45.6-2.el8.x86_64", + "efi-filesystem-3-3.el8.noarch", ++ "efibootmgr-16-1.el8.x86_64", + "efivar-37-4.el8.x86_64", + "efivar-libs-37-4.el8.x86_64", + "elfutils-debuginfod-client-0.185-1.el8.x86_64", +@@ -13603,6 +13617,16 @@ + "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B", + "uuid": "7B77-95E7" + }, ++ { ++ "bootable": false, ++ "fstype": "xfs", ++ "label": "root", ++ "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562", ++ "size": 7409186816, ++ "start": 3328180224, ++ "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", ++ "uuid": "e2d3d0d0-de6b-48f9-b44c-e85ff044c6b1" ++ }, + { + "bootable": false, + "fstype": "xfs", +@@ -13618,20 +13642,10 @@ + "fstype": "xfs", + "label": null, + "partuuid": "A178892E-E285-4CE1-9114-55780875D64E", +- "size": 131072000, ++ "size": 1073741824, + "start": 2254438400, + "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", + "uuid": "fb180daf-48a7-4ee0-b10d-394651850fd4" +- }, +- { +- "bootable": false, +- "fstype": "xfs", +- "label": "root", +- "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562", +- "size": 8351856640, +- "start": 2385510400, +- "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", +- "uuid": "e2d3d0d0-de6b-48f9-b44c-e85ff044c6b1" + } + ], + "passwd": [ +-- +2.31.1 + diff --git a/SPECS/osbuild-composer.spec b/SPECS/osbuild-composer.spec index 76d1f52..1a70302 100644 --- a/SPECS/osbuild-composer.spec +++ b/SPECS/osbuild-composer.spec @@ -4,14 +4,16 @@ %global goipath github.com/osbuild/osbuild-composer -Version: 28 +Version: 33 %gometa %global common_description %{expand: -An image building service based on osbuild -It is inspired by lorax-composer and exposes the same API. -As such, it is a drop-in replacement. +A service for building customized OS artifacts, such as VM images and OSTree +commits, that uses osbuild under the hood. Besides building images for local +usage, it can also upload images directly to cloud. + +It is compatible with composer-cli and cockpit-composer clients. } Name: osbuild-composer @@ -26,7 +28,7 @@ ExcludeArch: i686 License: ASL 2.0 URL: %{gourl} Source0: %{gosource} - +Patch0: 0001-test-rhel85-qcow2-custom-regenerate.patch BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} BuildRequires: systemd @@ -45,6 +47,7 @@ BuildRequires: golang(github.com/coreos/go-systemd/activation) BuildRequires: golang(github.com/deepmap/oapi-codegen/pkg/codegen) BuildRequires: golang(github.com/go-chi/chi) BuildRequires: golang(github.com/google/uuid) +BuildRequires: golang(github.com/jackc/pgx/v4) BuildRequires: golang(github.com/julienschmidt/httprouter) BuildRequires: golang(github.com/getkin/kin-openapi/openapi3) BuildRequires: golang(github.com/kolo/xmlrpc) @@ -52,9 +55,12 @@ BuildRequires: golang(github.com/labstack/echo/v4) BuildRequires: golang(github.com/gobwas/glob) BuildRequires: golang(github.com/google/go-cmp/cmp) BuildRequires: golang(github.com/gophercloud/gophercloud) +BuildRequires: golang(github.com/prometheus/client_golang/prometheus/promhttp) BuildRequires: golang(github.com/stretchr/testify/assert) BuildRequires: golang(github.com/ubccr/kerby) BuildRequires: golang(github.com/vmware/govmomi) +BuildRequires: golang(cloud.google.com/go) +BuildRequires: golang(gopkg.in/ini.v1) %endif Requires: %{name}-core = %{version}-%{release} @@ -91,20 +97,13 @@ Obsoletes: osbuild-composer-koji <= 23 %goprep %endif -%if 0%{?fedora} && 0%{?fedora} <= 32 -# Fedora 32 and older ships different kolo/xmlrpc and azure/azblob APIs. We -# cannot specify build tags in gobuild macro because the macro itself -# specifies build tags and -tags argument cannot be used more than once. -# Therefore, this ugly hack with build tags switcharoo is required. -# Remove when F32 is EOL. - -# Remove the build constraint from the wrappers of the old APIs -sed -i "s$// +build kolo_xmlrpc_oldapi$// +build !kolo_xmlrpc_oldapi$" internal/upload/koji/xmlrpc-response-oldapi.go -sed -i "s$// +build azblob_oldapi$// +build !azblob_oldapi$" internal/upload/azure/page_blob_url_oldapi.go - -# Add a build constraint to the wrappers of the new APIs -sed -i "s$// +build !kolo_xmlrpc_oldapi$// +build kolo_xmlrpc_oldapi$" internal/upload/koji/xmlrpc-response.go -sed -i "s$// +build !azblob_oldapi$// +build azblob_oldapi$" internal/upload/azure/page_blob_url.go +%if 0%{?fedora} >= 34 +# Fedora 34 and newer ships a newer version of github.com/getkin/kin-openapi +# package which has a different API than the older ones. Let's make the auto- +# generated code compatible by applying some sed magic. +# +# Remove when F33 is EOL +sed -i "s/openapi3.Swagger/openapi3.T/;s/openapi3.NewSwaggerLoader().LoadSwaggerFromData/openapi3.NewLoader().LoadFromData/" internal/cloudapi/openapi.gen.go %endif %build @@ -145,6 +144,7 @@ go test -c -tags=integration -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-weldr-te go test -c -tags=integration -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-image-tests %{goipath}/cmd/osbuild-image-tests go test -c -tags=integration -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-auth-tests %{goipath}/cmd/osbuild-auth-tests go test -c -tags=integration -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-koji-tests %{goipath}/cmd/osbuild-koji-tests +go test -c -tags=integration -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-composer-dbjobqueue-tests %{goipath}/cmd/osbuild-composer-dbjobqueue-tests go build -tags=integration -ldflags="${TEST_LDFLAGS}" -o _bin/cloud-cleaner %{goipath}/cmd/cloud-cleaner %endif @@ -178,9 +178,12 @@ install -m 0755 -vp _bin/osbuild-dnf-json-tests %{buildroot}%{_l install -m 0755 -vp _bin/osbuild-image-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp _bin/osbuild-auth-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp _bin/osbuild-koji-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/ +install -m 0755 -vp _bin/osbuild-composer-dbjobqueue-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp _bin/cloud-cleaner %{buildroot}%{_libexecdir}/osbuild-composer-test/ +install -m 0755 -vp tools/define-compose-url.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp tools/provision.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp tools/gen-certs.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/ +install -m 0755 -vp tools/gen-ssh.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp tools/image-info %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp tools/run-koji-container.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp tools/koji-compose.py %{buildroot}%{_libexecdir}/osbuild-composer-test/ @@ -203,6 +206,9 @@ install -m 0644 -vp test/data/cloud-init/* %{buildroot}%{_d install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/composer install -m 0644 -vp test/data/composer/* %{buildroot}%{_datadir}/tests/osbuild-composer/composer/ +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/worker +install -m 0644 -vp test/data/worker/* %{buildroot}%{_datadir}/tests/osbuild-composer/worker/ + install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/repositories install -m 0644 -vp test/data/repositories/* %{buildroot}%{_datadir}/tests/osbuild-composer/repositories/ @@ -219,11 +225,11 @@ install -m 0644 -vp test/data/koji/* %{buildroot}%{_d install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/x509 install -m 0644 -vp test/data/x509/* %{buildroot}%{_datadir}/tests/osbuild-composer/x509/ -%if 0%{?rhel} -install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/vendor -install -m 0644 -vp test/data/vendor/87-podman-bridge.conflist %{buildroot}%{_datadir}/tests/osbuild-composer/vendor/ -install -m 0755 -vp test/data/vendor/dnsname %{buildroot}%{_datadir}/tests/osbuild-composer/vendor/ -%endif +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/openshift +install -m 0644 -vp test/data/openshift/* %{buildroot}%{_datadir}/tests/osbuild-composer/openshift/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/schemas +install -m 0644 -vp internal/jobqueue/dbjobqueue/schemas/* %{buildroot}%{_datadir}/tests/osbuild-composer/schemas/ %endif @@ -273,8 +279,8 @@ The core osbuild-composer binary. This is suitable both for spawning in containe Summary: The worker for osbuild-composer Requires: systemd Requires: qemu-img -Requires: osbuild >= 24 -Requires: osbuild-ostree >= 24 +Requires: osbuild >= 30 +Requires: osbuild-ostree >= 30 # remove in F34 Obsoletes: golang-github-osbuild-composer-worker < %{version}-%{release} @@ -311,7 +317,7 @@ Summary: Integration tests Requires: %{name} = %{version}-%{release} Requires: composer-cli Requires: createrepo_c -Requires: genisoimage +Requires: xorriso Requires: qemu-kvm-core Requires: systemd-container Requires: jq @@ -340,9 +346,15 @@ Requires: virt-install Requires: expect Requires: python3-lxml Requires: httpd +Requires: mod_ssl Requires: openssl -%if 0%{?fedora} +# see https://bugzilla.redhat.com/show_bug.cgi?id=1986333 +%if 0%{?rhel} && 0%{?rhel} != 9 Requires: podman-plugins +%endif +Requires: dnf-plugins-core +Requires: skopeo +%if 0%{?fedora} # koji and ansible are not in RHEL repositories. Depending on them breaks RHEL # gating (see OSCI-1541). The test script must enable EPEL and install those # packages manually. @@ -363,8 +375,16 @@ Integration tests to be run on a pristine-dedicated system to test the osbuild-c %endif - %changelog +* Mon Aug 30 2021 Tom Gundersen - 33-1 +- New upstream release + +* Sun Aug 29 2021 Tom Gundersen - 32-2 +- New upstream release + +* Thu Aug 12 2021 Ondřej Budai - 31-1 +- New upstream release + * Sat Feb 20 2021 Martin Sehnoutka - 28-1 - New upstream release