Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

15 changed files with 2817 additions and 615 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

105
.gitignore vendored
View File

@ -1 +1,104 @@
SOURCES/osbuild-composer-101.tar.gz
/osbuild-composer-8.tar.gz
/osbuild-composer-9.tar.gz
/osbuild-composer-10.tar.gz
/osbuild-composer-11.tar.gz
/osbuild-composer-12.tar.gz
/osbuild-composer-13.tar.gz
/osbuild-composer-14.tar.gz
/osbuild-composer-15.tar.gz
/osbuild-composer-16.tar.gz
/osbuild-composer-17.tar.gz
/osbuild-composer-18.tar.gz
/osbuild-composer-19.tar.gz
/osbuild-composer-20.tar.gz
/osbuild-composer-22.tar.gz
/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
/osbuild-composer-28.tar.gz
/osbuild-composer-29.tar.gz
/osbuild-composer-30.tar.gz
/osbuild-composer-31.tar.gz
/osbuild-composer-35.tar.gz
/osbuild-composer-36.tar.gz
/osbuild-composer-37.tar.gz
/osbuild-composer-38.tar.gz
/osbuild-composer-39.tar.gz
/osbuild-composer-40.tar.gz
/osbuild-composer-41.tar.gz
/osbuild-composer-42.tar.gz
/osbuild-composer-43.tar.gz
/osbuild-composer-44.tar.gz
/osbuild-composer-45.tar.gz
/osbuild-composer-46.tar.gz
/osbuild-composer-47.tar.gz
/osbuild-composer-48.tar.gz
/osbuild-composer-46.1.tar.gz
/osbuild-composer-46.2.tar.gz
/osbuild-composer-49.tar.gz
/osbuild-composer-50.tar.gz
/osbuild-composer-46.3.tar.gz
/osbuild-composer-51.tar.gz
/osbuild-composer-53.tar.gz
/osbuild-composer-54.tar.gz
/osbuild-composer-55.tar.gz
/osbuild-composer-56.tar.gz
/osbuild-composer-57.tar.gz
/osbuild-composer-58.tar.gz
/osbuild-composer-59.tar.gz
/osbuild-composer-60.tar.gz
/osbuild-composer-61.tar.gz
/osbuild-composer-62.tar.gz
/osbuild-composer-63.tar.gz
/osbuild-composer-63.1.tar.gz
/osbuild-composer-62.1.tar.gz
/osbuild-composer-64.tar.gz
/osbuild-composer-65.tar.gz
/osbuild-composer-66.tar.gz
/osbuild-composer-67.tar.gz
/osbuild-composer-68.tar.gz
/osbuild-composer-69.tar.gz
/osbuild-composer-70.tar.gz
/osbuild-composer-71.tar.gz
/osbuild-composer-72.tar.gz
/osbuild-composer-73.tar.gz
/osbuild-composer-74.tar.gz
/osbuild-composer-75.tar.gz
/osbuild-composer-76.tar.gz
/osbuild-composer-77.tar.gz
/osbuild-composer-78.tar.gz
/osbuild-composer-79.tar.gz
/osbuild-composer-80.tar.gz
/osbuild-composer-82.tar.gz
/osbuild-composer-83.tar.gz
/osbuild-composer-84.tar.gz
/osbuild-composer-85.tar.gz
/osbuild-composer-86.tar.gz
/osbuild-composer-87.tar.gz
/osbuild-composer-88.tar.gz
/osbuild-composer-89.tar.gz
/osbuild-composer-90.tar.gz
/osbuild-composer-91.tar.gz
/osbuild-composer-92.tar.gz
/osbuild-composer-88.2.tar.gz
/osbuild-composer-93.tar.gz
/osbuild-composer-94.tar.gz
/osbuild-composer-95.tar.gz
/osbuild-composer-96.tar.gz
/osbuild-composer-98.tar.gz
/osbuild-composer-99.tar.gz
/osbuild-composer-100.tar.gz
/osbuild-composer-106.tar.gz
/osbuild-composer-108.tar.gz
/osbuild-composer-109.tar.gz
/osbuild-composer-113.tar.gz
/osbuild-composer-114.tar.gz
/osbuild-composer-115.tar.gz
/osbuild-composer-116.tar.gz
/osbuild-composer-117.tar.gz
/osbuild-composer-118.tar.gz
/osbuild-composer-123.tar.gz
/osbuild-composer-124.tar.gz
/osbuild-composer-125.tar.gz

View File

@ -1 +0,0 @@
0feb86b5dcd146ce5b87816ae482eb50ed507c16 SOURCES/osbuild-composer-101.tar.gz

54
.packit.yaml Normal file
View File

@ -0,0 +1,54 @@
# https://packit.dev/docs/configuration/
specfile_path: osbuild-composer.spec
files_to_sync:
- osbuild-composer.spec
- .packit.yaml
copy_upstream_release_description: true
upstream_tag_template: v{version}
srpm_build_deps: []
actions:
get-current-version: bash -c "git describe --tags --abbrev=0 | sed 's|v||'"
post-upstream-clone: "./tools/rpm_spec_add_provides_bundle.sh"
# Handle only releases without a "dot" (e.g. v88.2), since "dot" releases should never be released to Fedora
upstream_tag_include: 'v\d+'
jobs:
- job: bodhi_update
trigger: commit
dist_git_branches:
- fedora-branched # rawhide updates are created automatically
- job: koji_build
trigger: commit
dist_git_branches:
- fedora-all
- job: propose_downstream
trigger: release
dist_git_branches:
- fedora-all
- job: copr_build
trigger: pull_request
targets: &build_targets
- centos-stream-8-aarch64
- centos-stream-8-x86_64
- centos-stream-9-aarch64
- centos-stream-9-x86_64
- fedora-all-aarch64
- fedora-all-s390x
- fedora-all-ppc64le
- fedora-all
- rhel-8-aarch64
- rhel-8-x86_64
- rhel-9-aarch64
- rhel-9-x86_64
- job: copr_build
trigger: commit
branch: main
owner: "@osbuild" # copr repo namespace
project: osbuild-composer # copr repo name so you can consume the builds
targets: *build_targets

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# osbuild-composer
The osbuild-composer package

3
README.packit Normal file
View File

@ -0,0 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 0.90.0.post1.dev9+g1f0325d1.

View File

@ -1,613 +0,0 @@
# Do not build with tests by default
# Pass --with tests to rpmbuild to override
%bcond_with tests
# When --with relax_requires is specified osbuild-composer-tests
# will require osbuild-composer only by name, excluding version/release
# This is used internally during nightly pipeline testing!
%bcond_with relax_requires
# The minimum required osbuild version
%global min_osbuild_version 109
%global goipath github.com/osbuild/osbuild-composer
Version: 101
%gometa
%global common_description %{expand:
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
Release: 1%{?dist}
Summary: An image building service based on osbuild
# osbuild-composer doesn't have support for building i686 and armv7hl images
ExcludeArch: i686 armv7hl
# Upstream license specification: Apache-2.0
License: Apache-2.0
URL: %{gourl}
Source0: %{gosource}
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
BuildRequires: systemd
BuildRequires: krb5-devel
BuildRequires: python3-docutils
BuildRequires: make
# Build requirements of 'theproglottis/gpgme' package
BuildRequires: gpgme-devel
BuildRequires: libassuan-devel
# Build requirements of 'github.com/containers/storage' package
BuildRequires: device-mapper-devel
%if 0%{?fedora}
BuildRequires: systemd-rpm-macros
BuildRequires: git
# Build requirements of 'github.com/containers/storage' package
BuildRequires: btrfs-progs-devel
# DO NOT REMOVE the BUNDLE_START and BUNDLE_END markers as they are used by 'tools/rpm_spec_add_provides_bundle.sh' to generate the Provides: bundled list
# BUNDLE_START
# BUNDLE_END
%endif
Requires: %{name}-core = %{version}-%{release}
Requires: %{name}-worker = %{version}-%{release}
Requires: systemd
Provides: weldr
%description
%{common_description}
%prep
%if 0%{?rhel}
%forgeautosetup -p1
%else
%goprep -k
%endif
%build
export GOFLAGS="-buildmode=pie"
%if 0%{?rhel}
GO_BUILD_PATH=$PWD/_build
install -m 0755 -vd $(dirname $GO_BUILD_PATH/src/%{goipath})
ln -fs $PWD $GO_BUILD_PATH/src/%{goipath}
cd $GO_BUILD_PATH/src/%{goipath}
install -m 0755 -vd _bin
export PATH=$PWD/_bin${PATH:+:$PATH}
export GOPATH=$GO_BUILD_PATH:%{gopath}
export GOFLAGS+=" -mod=vendor"
%endif
%if 0%{?fedora}
# Fedora disables Go modules by default, but we want to use them.
# Undefine the macro which disables it to use the default behavior.
%undefine gomodulesmode
%endif
# btrfs-progs-devel is not available on RHEL
%if 0%{?rhel}
GOTAGS="exclude_graphdriver_btrfs"
%endif
# Set the commit hash so that composer can report what source version
# was used to build it. This has to be set explicitly when calling rpmbuild,
# this script will not attempt to automatically discover it.
%if %{?commit:1}0
export LDFLAGS="${LDFLAGS} -X 'github.com/osbuild/osbuild-composer/internal/common.GitRev=%{commit}'"
%endif
export LDFLAGS="${LDFLAGS} -X 'github.com/osbuild/osbuild-composer/internal/common.RpmVersion=%{name}-%{?epoch:%epoch:}%{version}-%{release}.%{_arch}'"
%gobuild ${GOTAGS:+-tags=$GOTAGS} -o _bin/osbuild-composer %{goipath}/cmd/osbuild-composer
%gobuild ${GOTAGS:+-tags=$GOTAGS} -o _bin/osbuild-worker %{goipath}/cmd/osbuild-worker
%gobuild ${GOTAGS:+-tags=$GOTAGS} -o _bin/osbuild-jobsite-manager %{goipath}/cmd/osbuild-jobsite-manager
%gobuild ${GOTAGS:+-tags=$GOTAGS} -o _bin/osbuild-jobsite-builder %{goipath}/cmd/osbuild-jobsite-builder
make man
%if %{with tests} || 0%{?rhel}
# Build test binaries with `go test -c`, so that they can take advantage of
# golang's testing package. The golang rpm macros don't support building them
# directly. Thus, do it manually, taking care to also include a build id.
#
# On Fedora, also turn off go modules and set the path to the one into which
# the golang-* packages install source code.
%if 0%{?fedora}
export GO111MODULE=off
export GOPATH=%{gobuilddir}:%{gopath}
%endif
TEST_LDFLAGS="${LDFLAGS:-} -B 0x$(od -N 20 -An -tx1 -w100 /dev/urandom | tr -d ' ')"
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-composer-cli-tests %{goipath}/cmd/osbuild-composer-cli-tests
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-dnf-json-tests %{goipath}/cmd/osbuild-dnf-json-tests
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-weldr-tests %{goipath}/internal/client/
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-image-tests %{goipath}/cmd/osbuild-image-tests
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-auth-tests %{goipath}/cmd/osbuild-auth-tests
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-koji-tests %{goipath}/cmd/osbuild-koji-tests
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-composer-dbjobqueue-tests %{goipath}/cmd/osbuild-composer-dbjobqueue-tests
go test -c -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-service-maintenance-tests %{goipath}/cmd/osbuild-service-maintenance
go build -tags="integration${GOTAGS:+,$GOTAGS}" -ldflags="${TEST_LDFLAGS}" -o _bin/osbuild-mock-openid-provider %{goipath}/cmd/osbuild-mock-openid-provider
%endif
%install
install -m 0755 -vd %{buildroot}%{_libexecdir}/osbuild-composer
install -m 0755 -vp _bin/osbuild-composer %{buildroot}%{_libexecdir}/osbuild-composer/
install -m 0755 -vp _bin/osbuild-worker %{buildroot}%{_libexecdir}/osbuild-composer/
install -m 0755 -vp _bin/osbuild-jobsite-manager %{buildroot}%{_libexecdir}/osbuild-composer/
install -m 0755 -vp _bin/osbuild-jobsite-builder %{buildroot}%{_libexecdir}/osbuild-composer/
# Only include repositories for the distribution and release
install -m 0755 -vd %{buildroot}%{_datadir}/osbuild-composer/repositories
# CentOS also defines rhel so we check for centos first
%if 0%{?centos}
# CentOS 9 supports building for CentOS 8 and later
%if 0%{?centos} >= 9
install -m 0644 -vp repositories/centos-* %{buildroot}%{_datadir}/osbuild-composer/repositories/
%else
# CentOS 8 only supports building for CentOS 8
install -m 0644 -vp repositories/centos-%{centos}* %{buildroot}%{_datadir}/osbuild-composer/repositories/
install -m 0644 -vp repositories/centos-stream-%{centos}* %{buildroot}%{_datadir}/osbuild-composer/repositories/
%endif
%else
%if 0%{?rhel}
# RHEL 9 supports building for RHEL 8 and later
%if 0%{?rhel} >= 9
install -m 0644 -vp repositories/rhel-* %{buildroot}%{_datadir}/osbuild-composer/repositories/
%else
# RHEL 8 only supports building for 8
install -m 0644 -vp repositories/rhel-%{rhel}* %{buildroot}%{_datadir}/osbuild-composer/repositories/
%endif
%endif
%endif
# Fedora can build for all included fedora releases
%if 0%{?fedora}
install -m 0644 -vp repositories/fedora-* %{buildroot}%{_datadir}/osbuild-composer/repositories/
%endif
install -m 0755 -vd %{buildroot}%{_unitdir}
install -m 0644 -vp distribution/*.{service,socket} %{buildroot}%{_unitdir}/
install -m 0755 -vd %{buildroot}%{_sysusersdir}
install -m 0644 -vp distribution/osbuild-composer.conf %{buildroot}%{_sysusersdir}/
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
install -m 0755 -vp _bin/osbuild-composer-cli-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp _bin/osbuild-weldr-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp _bin/osbuild-dnf-json-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/
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/osbuild-service-maintenance-tests %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp _bin/osbuild-mock-openid-provider %{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/
install -m 0755 -vp tools/libvirt_test.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp tools/s3_test.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp tools/generic_s3_test.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp tools/generic_s3_https_test.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp tools/run-mock-auth-servers.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vp tools/set-env-variables.sh %{buildroot}%{_libexecdir}/osbuild-composer-test/
install -m 0755 -vd %{buildroot}%{_libexecdir}/tests/osbuild-composer
install -m 0755 -vp test/cases/*.sh %{buildroot}%{_libexecdir}/tests/osbuild-composer/
install -m 0755 -vd %{buildroot}%{_libexecdir}/tests/osbuild-composer/api
install -m 0755 -vp test/cases/api/*.sh %{buildroot}%{_libexecdir}/tests/osbuild-composer/api/
install -m 0755 -vd %{buildroot}%{_libexecdir}/tests/osbuild-composer/api/common
install -m 0755 -vp test/cases/api/common/*.sh %{buildroot}%{_libexecdir}/tests/osbuild-composer/api/common/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/ansible
install -m 0644 -vp test/data/ansible/* %{buildroot}%{_datadir}/tests/osbuild-composer/ansible/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/azure
install -m 0644 -vp test/data/azure/* %{buildroot}%{_datadir}/tests/osbuild-composer/azure/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/manifests
install -m 0644 -vp test/data/manifests/* %{buildroot}%{_datadir}/tests/osbuild-composer/manifests/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init
install -m 0644 -vp test/data/cloud-init/* %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init/
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/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/kerberos
install -m 0644 -vp test/data/kerberos/* %{buildroot}%{_datadir}/tests/osbuild-composer/kerberos/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/keyring
install -m 0644 -vp test/data/keyring/id_rsa.pub %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/
install -m 0600 -vp test/data/keyring/id_rsa %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/koji
install -m 0644 -vp test/data/koji/* %{buildroot}%{_datadir}/tests/osbuild-composer/koji/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/x509
install -m 0644 -vp test/data/x509/* %{buildroot}%{_datadir}/tests/osbuild-composer/x509/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/schemas
install -m 0644 -vp pkg/jobqueue/dbjobqueue/schemas/* %{buildroot}%{_datadir}/tests/osbuild-composer/schemas/
install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/upgrade8to9
install -m 0644 -vp test/data/upgrade8to9/* %{buildroot}%{_datadir}/tests/osbuild-composer/upgrade8to9/
%endif
%check
export GOFLAGS="-buildmode=pie"
%if 0%{?rhel}
export GOFLAGS+=" -mod=vendor -tags=exclude_graphdriver_btrfs"
export GOPATH=$PWD/_build:%{gopath}
# cd inside GOPATH, otherwise go with GO111MODULE=off ignores vendor directory
cd $PWD/_build/src/%{goipath}
%gotest ./...
%else
%gocheck
%endif
%post
%systemd_post osbuild-composer.service osbuild-composer.socket osbuild-composer-api.socket osbuild-composer-prometheus.socket osbuild-remote-worker.socket
%preun
%systemd_preun osbuild-composer.service osbuild-composer.socket osbuild-composer-api.socket osbuild-composer-prometheus.socket osbuild-remote-worker.socket
%postun
%systemd_postun_with_restart osbuild-composer.service osbuild-composer.socket osbuild-composer-api.socket osbuild-composer-prometheus.socket osbuild-remote-worker.socket
%files
%license LICENSE
%doc README.md
%{_mandir}/man7/%{name}.7*
%{_unitdir}/osbuild-composer.service
%{_unitdir}/osbuild-composer.socket
%{_unitdir}/osbuild-composer-api.socket
%{_unitdir}/osbuild-composer-prometheus.socket
%{_unitdir}/osbuild-local-worker.socket
%{_unitdir}/osbuild-remote-worker.socket
%{_sysusersdir}/osbuild-composer.conf
%package core
Summary: The core osbuild-composer binary
Requires: osbuild-depsolve-dnf >= %{min_osbuild_version}
Provides: %{name}-dnf-json = %{version}-%{release}
Obsoletes: %{name}-dnf-json < %{version}-%{release}
%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
%{_datadir}/osbuild-composer/
%package worker
Summary: The worker for osbuild-composer
Requires: systemd
Requires: qemu-img
Requires: osbuild >= %{min_osbuild_version}
Requires: osbuild-ostree >= %{min_osbuild_version}
Requires: osbuild-lvm2 >= %{min_osbuild_version}
Requires: osbuild-luks2 >= %{min_osbuild_version}
Requires: osbuild-depsolve-dnf >= %{min_osbuild_version}
Provides: %{name}-dnf-json = %{version}-%{release}
Obsoletes: %{name}-dnf-json < %{version}-%{release}
%description worker
The worker for osbuild-composer
%files worker
%{_libexecdir}/osbuild-composer/osbuild-worker
%{_libexecdir}/osbuild-composer/osbuild-jobsite-manager
%{_libexecdir}/osbuild-composer/osbuild-jobsite-builder
%{_unitdir}/osbuild-worker@.service
%{_unitdir}/osbuild-remote-worker@.service
%post worker
%systemd_post osbuild-worker@.service osbuild-remote-worker@.service
%preun worker
# systemd_preun uses systemctl disable --now which doesn't work well with template services.
# See https://github.com/systemd/systemd/issues/15620
# The following lines mimicks its behaviour by running two commands.
# The scriptlet is supposed to run only when the package is being removed.
if [ $1 -eq 0 ] && [ -d /run/systemd/system ]; then
# disable and stop all the worker services
systemctl --no-reload disable osbuild-worker@.service osbuild-remote-worker@.service
systemctl stop "osbuild-worker@*.service" "osbuild-remote-worker@*.service"
fi
%postun worker
# restart all the worker services
%systemd_postun_with_restart "osbuild-worker@*.service" "osbuild-remote-worker@*.service"
%if %{with tests} || 0%{?rhel}
%package tests
Summary: Integration tests
%if %{with relax_requires}
Requires: %{name}
%else
Requires: %{name} = %{version}-%{release}
%endif
Requires: composer-cli
Requires: createrepo_c
Requires: xorriso
Requires: qemu-kvm-core
Requires: systemd-container
Requires: jq
Requires: unzip
Requires: container-selinux
Requires: dnsmasq
Requires: krb5-workstation
Requires: podman
Requires: python3
Requires: sssd-krb5
Requires: libvirt-client libvirt-daemon
Requires: libvirt-daemon-config-network
Requires: libvirt-daemon-config-nwfilter
Requires: libvirt-daemon-driver-interface
Requires: libvirt-daemon-driver-network
Requires: libvirt-daemon-driver-nodedev
Requires: libvirt-daemon-driver-nwfilter
Requires: libvirt-daemon-driver-qemu
Requires: libvirt-daemon-driver-secret
Requires: libvirt-daemon-driver-storage
Requires: libvirt-daemon-driver-storage-disk
Requires: libvirt-daemon-kvm
Requires: qemu-img
Requires: qemu-kvm
Requires: rpmdevtools
Requires: virt-install
Requires: expect
Requires: python3-lxml
Requires: httpd
Requires: mod_ssl
Requires: openssl
Requires: firewalld
Requires: podman-plugins
Requires: dnf-plugins-core
Requires: skopeo
Requires: make
Requires: python3-pip
%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.
Requires: koji
Requires: ansible
%endif
%ifarch %{arm}
Requires: edk2-aarch64
%endif
%description tests
Integration tests to be run on a pristine-dedicated system to test the osbuild-composer package.
%files tests
%{_libexecdir}/osbuild-composer-test/
%{_libexecdir}/tests/osbuild-composer/
%{_datadir}/tests/osbuild-composer/
%endif
%changelog
* Mon Feb 26 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 101-1
- New upstream release
* Wed Feb 07 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 100-1
- New upstream release
* Wed Jan 24 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 99-1
- New upstream release
* Wed Jan 10 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 98-1
- New upstream release
* Wed Dec 13 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 96-1
- New upstream release
* Wed Nov 29 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 95-1
- New upstream release
* Wed Nov 15 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 94-1
- New upstream release
* Wed Nov 01 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 93-1
- New upstream release
* Wed Oct 18 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 92-1
- New upstream release
* Wed Oct 04 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 91-1
- New upstream release
* Thu Sep 21 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 90-1
- New upstream release
* Wed Sep 06 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 89-1
- New upstream release
* Thu Aug 24 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 88-1
- New upstream release
* Wed Aug 09 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 87-1
- New upstream release
* Wed Jul 26 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 86-1
- New upstream release
* Fri Jul 14 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 85-1
- New upstream release
* Wed Jun 14 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 84-1
- New upstream release
* Wed May 17 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 82-1
- New upstream release
* Wed Apr 19 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 80-1
- New upstream release
* Wed Apr 05 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 79-1
- New upstream release
* Wed Mar 08 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 77-1
- New upstream release
* Wed Feb 22 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 75-1
- New upstream release
* Wed Feb 08 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 74-1
- New upstream release
* Wed Jan 25 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 73-1
- New upstream release
* Wed Jan 11 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 72-1
- New upstream release
* Wed Dec 28 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 71-1
- New upstream release
* Wed Dec 14 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 70-1
- New upstream release
* Wed Nov 30 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 69-1
- New upstream release
* Wed Nov 16 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 68-1
- New upstream release
* Wed Nov 02 2022 imagebuilder-bots+imagebuilder-bot@redhat.com <imagebuilder-bot> - 67-1
- New upstream release
* Mon Aug 29 2022 Ondřej Budai <ondrej@budai.cz> - 62-1
- New upstream release
* Wed Aug 24 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 60-1
- New upstream release
* Thu Aug 11 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 59-1
- New upstream release
* Thu Jul 28 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 58-1
- New upstream release
* Mon Jul 18 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 57-1
- New upstream release
* Wed Jun 15 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 55-1
- New upstream release
* Wed Jun 01 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 54-1
- New upstream release
* Mon May 23 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 53-1
- New upstream release
* Wed May 04 2022 Ondřej Budai <ondrej@budai.cz> - 51-1
- New upstream release
* Tue Mar 01 2022 Ondřej Budai <ondrej@budai.cz> - 46-1
- New upstream release
* Sat Feb 19 2022 Ondřej Budai <ondrej@budai.cz> - 45-1
- New upstream release
* Mon Feb 14 2022 Thomas Lavocat <tlavocat@redhat.com> - 44-1
- New upstream release
* Mon Feb 07 2022 Thomas Lavocat <tlavocat@redhat.com> - 43-1
- New upstream release
* Tue Jan 18 2022 Thomas Lavocat <tlavocat@redhat.com> - 42-1
- New upstream release
* Thu Dec 09 2021 Ondřej Budai <ondrej@budai.cz> - 40-1
- New upstream release
* Fri Oct 15 2021 Achilleas Koutsou <achilleas@redhat.com> - 37-1
- New upstream release
* Fri Oct 15 2021 Achilleas Koutsou <achilleas@redhat.com> - 36-1
- New upstream release
* Mon Aug 30 2021 Tom Gundersen <teg@jklm.no> - 33-1
- New upstream release
* Sun Aug 29 2021 Tom Gundersen <teg@jklm.no> - 32-2
- New upstream release
* Thu Aug 12 2021 Ondřej Budai <ondrej@budai.cz> - 31-1
- New upstream release
* Sat Feb 20 2021 Martin Sehnoutka <msehnout@redhat.com> - 28-1
- New upstream release
* Fri Feb 05 2021 Ondrej Budai <obudai@redhat.com> - 27-1
- New upstream release
* Thu Dec 17 2020 Ondrej Budai <obudai@redhat.com> - 26-1
- New upstream release
* Mon Nov 30 2020 Ondrej Budai <obudai@redhat.com> - 25-1
- New upstream release 25 (rhbz#1883481)
* Thu Sep 03 2020 Tom Gundersen <tgunders@redhat.com> - 20.1-1
- New upstream release 20.1 (rhbz#1872370)
* Sun Aug 23 2020 Tom Gundersen <tgunders@redhat.com> - 20-1
- New upstream release 20 (rhbz#1871184 and rhbz#1871179)
* Thu Aug 13 2020 Tom Gundersen <tgunders@redhat.com> - 19-1
- New upstream release 19 (rhbz#1866015 and rhbz#1866013)
* Thu Jul 09 2020 Ondrej Budai <obudai@redhat.com> - 17-1
- New upstream release 17 (rhbz#1831653)
- Obsolete lorax-composer in favor of osbuild-composer (rhbz#1836844)
* Mon Jun 29 2020 Ondrej Budai <obudai@redhat.com> - 16-1
- New upstream release 16 (rhbz#1831653)
* Fri Jun 12 2020 Ondrej Budai <obudai@redhat.com> - 15-1
- New upstream release 15 (rhbz#1831653)
* Thu Jun 04 2020 Ondrej Budai <obudai@redhat.com> - 14-1
- New upstream release 14 (rhbz#1831653)
* Thu May 28 2020 Ondrej Budai <obudai@redhat.com> - 13-1
- New upstream release 13 (rhbz#1831653)
* Tue May 05 2020 Ondrej Budai <obudai@redhat.com> - 11-1
- Initial package (renamed from golang-github-osbuild-composer) (rhbz#1771887)

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

2579
osbuild-composer.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
summary: Run integration tests
prepare:
how: install
package:
- osbuild-composer-tests
execute:
script: ./tests/scripts/run_tests.sh ./tests/
duration: 24h

11
plans/unit-tests.fmf Normal file
View File

@ -0,0 +1,11 @@
summary: Run unit tests from source
discover:
how: fmf
dist-git-source: true
dist-git-remove-fmf-root: true
filter: tag:unit-test
execute:
how: tmt
provision:
hardware:
memory: ">= 8 GB"

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (osbuild-composer-125.tar.gz) = 4a39321e7215ea8d221c6ff6fbbbc944d42edb4017343e8da0177a723f34938181c0d339fe4ca2afebf47bdaff175f4293ec7a518db554029d2f2f41233cebb0

19
tests/scripts/run_tests.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
set -euxo pipefail
TOPDIR=$1
# Print some information about the machine
df -h
free -h
rpm -qa
find /etc/yum.repos.d -type f -print -exec cat {} \;
# Run only basic smoke tests.
# Our test-suite is currently very thorough and it builds a lot of images.
# On some runs, TFT was able to build one image for 25 minutes. Our test
# suite builds more than 25 images which means that the full test-suite
# can run for more than 10 hours. That's just too slow and since we are also
# able to run downstream tests on our much faster upstream infrastructure.
# I think that it's enough to do just smoke tests here.
/usr/libexec/tests/osbuild-composer/base_tests.sh

View File

@ -0,0 +1,4 @@
summary: Run osbuild-composer unit tests from dist-git sources
tag: unit-test
duration: 1h
test: ./run-unit-tests.sh

View File

@ -0,0 +1,24 @@
#!/usr/bin/bash
set -euxo pipefail
source /etc/os-release
# Move to the checked out git repo with the test plans
# this should be the root of the dist-git repo
cd "${TMT_TREE}"
# install all test dependencies
sudo dnf install -y rpmdevtools
sudo dnf builddep -y osbuild-composer.spec
# Move to the directory with sources
cd "${TMT_SOURCE_DIR}"
# Extract the Source0 basename without extension
SRC_DIR=$(spectool --source 0 osbuild-composer.spec | sed 's/.\+\(osbuild-composer-[0-9]\+\)\.tar\.gz/\1/')
# Move to the extracted sources directory (patches are applied by default)
cd "${SRC_DIR}"
GOFLAGS="-mod=vendor -tags=exclude_graphdriver_btrfs" go test ./...