diff --git a/.gitignore b/.gitignore index 66054c5..cdc5f1b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ /osbuild-composer-23.tar.gz /osbuild-composer-24.tar.gz /osbuild-composer-25.tar.gz +/osbuild-composer-26.tar.gz +/osbuild-composer-27.tar.gz diff --git a/fix-azure-dependency.patch b/fix-azure-dependency.patch new file mode 100644 index 0000000..f16bf68 --- /dev/null +++ b/fix-azure-dependency.patch @@ -0,0 +1,31 @@ +diff --git a/internal/upload/azure/azure.go b/internal/upload/azure/azure.go +index 8e18fe78..a5d8f857 100644 +--- a/internal/upload/azure/azure.go ++++ b/internal/upload/azure/azure.go +@@ -83,7 +83,7 @@ func UploadImage(credentials Credentials, metadata ImageMetadata, fileName strin + + // Create page blob URL. Page blob is required for VM images + blobURL := containerURL.NewPageBlobURL(metadata.ImageName) +- _, err = blobURL.Create(ctx, stat.Size(), 0, azblob.BlobHTTPHeaders{}, azblob.Metadata{}, azblob.BlobAccessConditions{}) ++ _, err = blobURL.Create(ctx, stat.Size(), 0, azblob.BlobHTTPHeaders{}, azblob.Metadata{}, azblob.BlobAccessConditions{}, azblob.PremiumPageBlobAccessTierNone, azblob.BlobTagsMap{}, azblob.ClientProvidedKeyOptions{}) + if err != nil { + return fmt.Errorf("cannot create the blob URL: %v", err) + } +@@ -122,7 +122,7 @@ func UploadImage(credentials Credentials, metadata ImageMetadata, fileName strin + semaphore <- 1 + go func(counter int64, buffer []byte, n int) { + defer wg.Done() +- _, err = blobURL.UploadPages(ctx, counter*azblob.PageBlobMaxUploadPagesBytes, bytes.NewReader(buffer[:n]), azblob.PageBlobAccessConditions{}, nil) ++ _, err = blobURL.UploadPages(ctx, counter*azblob.PageBlobMaxUploadPagesBytes, bytes.NewReader(buffer[:n]), azblob.PageBlobAccessConditions{}, nil, azblob.ClientProvidedKeyOptions{}) + if err != nil { + err = fmt.Errorf("uploading a page failed: %v", err) + // Send the error to the error channel in a non-blocking way. If there is already an error, just discard this one +@@ -144,7 +144,7 @@ func UploadImage(credentials Credentials, metadata ImageMetadata, fileName strin + default: + } + // Check properties, specifically MD5 sum of the blob +- props, err := blobURL.GetProperties(ctx, azblob.BlobAccessConditions{}) ++ props, err := blobURL.GetProperties(ctx, azblob.BlobAccessConditions{}, azblob.ClientProvidedKeyOptions{}) + if err != nil { + return fmt.Errorf("getting the properties of the new blob failed: %v", err) + } diff --git a/osbuild-composer.spec b/osbuild-composer.spec index de906d0..e43663b 100644 --- a/osbuild-composer.spec +++ b/osbuild-composer.spec @@ -4,7 +4,7 @@ %global goipath github.com/osbuild/osbuild-composer -Version: 25 +Version: 27 %gometa @@ -31,6 +31,8 @@ Source0: %{gosource} BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} BuildRequires: systemd BuildRequires: krb5-devel +BuildRequires: python3-docutils +BuildRequires: make %if 0%{?fedora} BuildRequires: systemd-rpm-macros BuildRequires: git @@ -54,9 +56,9 @@ BuildRequires: golang(github.com/ubccr/kerby) BuildRequires: golang(github.com/vmware/govmomi) %endif +Requires: %{name}-core = %{version}-%{release} Requires: %{name}-worker = %{version}-%{release} Requires: systemd -Requires: qemu-img Provides: weldr @@ -89,17 +91,19 @@ Obsoletes: osbuild-composer-koji <= 23 %endif %if 0%{?fedora} && 0%{?fedora} <= 32 -# Fedora 32 and older ships a different kolo/xmlrpc API. We cannot specify -# build tags in gobuild macro because the macro itself specifies build tags. -# and -tags argument cannot be used more than once. +# 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 wrapper of the old API +# 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 wrapper of the new API +# 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 %endif %build @@ -117,6 +121,7 @@ export GOFLAGS=-mod=vendor %gobuild -o _bin/osbuild-composer %{goipath}/cmd/osbuild-composer %gobuild -o _bin/osbuild-worker %{goipath}/cmd/osbuild-worker +make man %if %{with tests} || 0%{?rhel} @@ -160,6 +165,9 @@ install -m 0644 -vp distribution/osbuild-composer.conf %{buildroot}%{_s install -m 0755 -vd %{buildroot}%{_localstatedir}/cache/osbuild-composer/dnf-cache +install -m 0755 -vd %{buildroot}%{_mandir}/man7 +install -m 0644 -vp docs/*.7 %{buildroot}%{_mandir}/man7/ + %if %{with tests} || 0%{?rhel} install -m 0755 -vd %{buildroot}%{_libexecdir}/osbuild-composer-test @@ -171,9 +179,11 @@ install -m 0755 -vp _bin/osbuild-auth-tests %{buildroot}%{_l install -m 0755 -vp _bin/osbuild-koji-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vp _bin/cloud-cleaner %{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/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/ +install -m 0755 -vp tools/libvirt_test.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/ install -m 0755 -vd %{buildroot}%{_libexecdir}/tests/osbuild-composer install -m 0755 -vp test/cases/* %{buildroot}%{_libexecdir}/tests/osbuild-composer/ @@ -239,9 +249,7 @@ cd $PWD/_build/src/%{goipath} %files %license LICENSE %doc README.md -%{_libexecdir}/osbuild-composer/osbuild-composer -%{_libexecdir}/osbuild-composer/dnf-json -%{_datadir}/osbuild-composer/ +%{_mandir}/man7/%{name}.7* %{_unitdir}/osbuild-composer.service %{_unitdir}/osbuild-composer.socket %{_unitdir}/osbuild-composer-api.socket @@ -249,9 +257,21 @@ cd $PWD/_build/src/%{goipath} %{_unitdir}/osbuild-remote-worker.socket %{_sysusersdir}/osbuild-composer.conf +%package core +Summary: The core osbuild-composer binary + +%description core +The core osbuild-composer binary. This is suitable both for spawning in containers and by systemd. + +%files core +%{_libexecdir}/osbuild-composer/osbuild-composer +%{_libexecdir}/osbuild-composer/dnf-json +%{_datadir}/osbuild-composer/ + %package worker Summary: The worker for osbuild-composer Requires: systemd +Requires: qemu-img Requires: osbuild >= 23 Requires: osbuild-ostree >= 23 @@ -298,7 +318,6 @@ Requires: unzip Requires: container-selinux Requires: dnsmasq Requires: krb5-workstation -Requires: koji Requires: podman Requires: python3 Requires: sssd-krb5 @@ -319,11 +338,15 @@ Requires: qemu-kvm Requires: virt-install Requires: expect Requires: python3-lxml -Requires: ansible Requires: httpd Requires: openssl %if 0%{?fedora} Requires: podman-plugins +# 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. +Requires: koji +Requires: ansible %endif %ifarch %{arm} Requires: edk2-aarch64 @@ -340,6 +363,18 @@ Integration tests to be run on a pristine-dedicated system to test the osbuild-c %endif %changelog +* Thu Feb 04 2021 Ondrej Budai - 27-1 +- New upstream release + +* Tue Jan 26 2021 Fedora Release Engineering - 26-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 17 2020 Ondrej Budai - 26-2 +- Fix the compatibility with a new golang-github-azure-storage-blob 0.12 + +* Thu Dec 17 2020 Ondrej Budai - 26-1 +- New upstream release + * Thu Nov 19 2020 Ondrej Budai - 25-1 - New upstream release diff --git a/sources b/sources index 5a5fb2c..6895612 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (osbuild-composer-25.tar.gz) = dcabcd59a361bf5eef3989e413902837b2d69fca58445d617b3c83bdba899048c8a53b04b9bb408207a3f7af505bc6cd703c3048c59ed5c0c74eb8b40b03ea5c +SHA512 (osbuild-composer-27.tar.gz) = 83d2a40fa638f9264a171bae22341eab41b564701cd0d7740e088fc2f1fc1534441118d9d935a9ba56e860c7c0772fedd8576b8eff74cdab2d89627654b8cbf8