Compare commits

..

30 commits

Author SHA1 Message Date
Christian Kellner
3c646f0775 28 upstream release
New upstream release with fixes for the oci stage and official
support for the Fedora 35 runner.
2021-04-08 21:42:24 +02:00
Christian Kellner
9469b5a47f Include patch to add Fedora 35 runner
Needed to actually run on rawhide (fedora 35).
2021-03-17 14:20:48 +01:00
Christian Kellner
cea5f05f10 ci: fix and update image test
Use an up-to-date manifest from the upstream osbuild CI test data
and also specify an output directory, so that osbuild is actually
attempting to produce an image.
2021-03-17 14:20:41 +01:00
Christian Kellner
60d5074f71 27 upstream release
Various bug fixes related to the new container and installer stages
introdcued in version 25 and 26.
2021-03-17 14:20:23 +01:00
Christian Kellner
9962c482ea 26 upstream release
Support for building boot isos.
Grub stage gained support for 'saved_entry' to fix grub tooling.
2021-02-20 16:57:21 +01:00
Christian Kellner
9999f9a3e1 gating: actually make an image in the 'image' test
As of some versions ago, osbuild, when neither --output-directory
nor --checkpoints are given, does not actually build anything.
This is obviously not what we want. We want images. So do specify
an output directory.
2021-02-20 16:57:21 +01:00
Christian Kellner
543fa936fe 25 upstream release
New upstream release, with a tech preview of the new manifest
format and new assembler-like stages that are needed to deliver
ostree commits contained in an oci archive.
2021-02-13 18:46:42 +01:00
Christian Kellner
bf1d4d4ec4 24 upstream release
Only disable dependency generator for runners but not other modules.
Include new `Input` binaries.
2021-01-28 07:10:42 +01:00
Christian Kellner
7b50676daa 23 upstream release
Do not mangle shebangs for assemblers, runners & stages.
2020-11-02 10:14:47 +01:00
Christian Kellner
e97cc4a0be 22 upstream release
no spec file changes.
2020-10-12 16:20:49 +02:00
Christian Kellner
7673a6b53d 21 upstream release 2020-09-10 15:16:02 +02:00
Christian Kellner
d156c25f6a 20 upstream release 2020-08-13 18:51:48 +02:00
Christian Kellner
bc974b503e 19 upstream release
Sandboxing mechanism changed from systemd-nspawn to bubblewrap,
change requirements accordingly.
Drop no-floats-in-sources.patch, included in the release.
2020-08-07 14:09:59 +02:00
Christian Kellner
2dd649c19a Add a patch to not use floats in sources
Do not pass floats to curl, because the format of the float is
locale specific (comma vs dot) but curl only likes dots. See
the patch for details.
2020-06-26 14:06:53 +02:00
Christian Kellner
eb55a2ed91 18 upstream release
All RHEL runners use platform-python now.
2020-06-23 20:31:14 +02:00
Christian Kellner
97f0294fad 17 upstream release
Add a custom SELinux policy, shipped in a new osbuild-selinux sub-
package, to allow setting labels unknown to the host.
2020-06-15 15:10:18 +02:00
Christian Kellner
ab731274fa 16 upstream release
Drop sources-fix-break-when-secrets-is-None.patch patch included
upstream.
2020-06-05 10:27:48 +02:00
Christian Kellner
8d98b3a9e1 Patch added to allow new files source format
Add a patch to allow org.osbuild.files source in the new format
but without actually containing the secrets key.
Taken from merged PR: https://github.com/osbuild/osbuild/pull/416
2020-05-26 19:24:07 +02:00
Christian Kellner
4521b200e3 15 upstream release
no spec file changes.
2020-05-21 11:18:34 +02:00
Christian Kellner
7e852a83af gating: don't gate on dist.*
Taskotron is End-of-Life since 2020-04-30 and thus we don't have
any dist.* checks; at least for now. Remove it.

https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/TRQZCXI5IZH3GLJTCO56SMBX5UY6J6LL/
2020-05-21 11:18:34 +02:00
Christian Kellner
9055276fb8 Install schemata
Install schemata to <datadir>/osbuild/schemas and include a
symlink to it in /usr/lib/osbuild/schemas.
This is needed otherwise schema validation will not work.
2020-05-06 21:12:53 +02:00
Christian Kellner
92cab38ab9 14 upstream release
Remove the /usr/lib/osbuild/{assemblers, stages}/osbuild dirs.
NB: Release 13 got skipped since it replaced aforementioned
directories with symlinks and that would have required a
%pretrans script. osbuild was adjusted to use a different
mechanism to locate the osbuild module inside the container
rendering the symlinks (or 'osbuild' directories) obsolete.
2020-05-06 20:38:59 +02:00
Christian Kellner
d2ccc6bc67 tests: adjust image test name
The sample file got renamed: base-rpm-qcow2.json → base-qcow2.json
Do the same in the test or gating will file.
2020-04-15 21:14:07 +02:00
Christian Kellner
48c5a095e3 12 upstream release
Specify the exact version in the 'python3-osbuild' requirement
to avoid the library and the main binary being out of sync.
Add osbuild-ostree sub-package with the necessary bits to create
OSTree based images.
2020-04-15 20:50:47 +02:00
Christian Kellner
0d155515aa gating: drop dist.depcheck
Although mentioned in the docs, this check is obsolete[1] but the
replacement[2] seems to be not running as well, so just drop that
check.

[1] https://fedoraproject.org/wiki/Taskotron/Tasks/dist.depcheck
[2] https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmdeplint
2020-04-02 15:57:29 +02:00
Christian Kellner
e29a02c3a9 tests: try to actually build an image
Run osbuild and try to build one of the samples provided, i.e.
source/samples/base-rpm-qcow2.json.
2020-04-02 15:56:37 +02:00
Christian Kellner
9a1dd6bb50 11 upstream release
Turn of dependency generator for internal components since those
were generating a dependency for python3.6 due to the rhel runner.
2020-04-02 14:08:21 +02:00
Christian Kellner
e8c93925f1 ci: add smoke test and enable gating
Add a simple smoke test that currently just executes osbuild with
the '--help' option to check that it can run at all.
Gate for rawhide (via bodhi_update_push_stable) and for stable
(via bodhi_update_push_testing) on a minimum of dist checks as
well as the smoke test above.
2020-04-02 14:08:13 +02:00
Christian Kellner
104ca312c0 10 upstream release
Following changes:
  - build and include man pages, this adds 'make' and
    'python3-docutils' to the build requirements
  - add NEWS.md file with the release notes

Minor whitespace cleanups and correction of the previous changelog
entry that had the wrong version number.
2020-03-19 10:07:37 +01:00
Christian Kellner
69ddb9d523 9 upstream release
- Remove host runner links, now being auto-detected
- Cleanup spec file to not mix spaces and tabs
2020-03-05 13:45:47 +01:00
21 changed files with 200 additions and 38822 deletions

View file

@ -1 +0,0 @@
1

124
.gitignore vendored
View file

@ -26,127 +26,3 @@
/osbuild-26.tar.gz
/osbuild-27.tar.gz
/osbuild-28.tar.gz
/osbuild-29.tar.gz
/osbuild-30.tar.gz
/osbuild-31.tar.gz
/osbuild-32.tar.gz
/osbuild-33.tar.gz
/osbuild-35.tar.gz
/osbuild-36.tar.gz
/osbuild-37.tar.gz
/osbuild-38.tar.gz
/osbuild-39.tar.gz
/osbuild-40.tar.gz
/osbuild-41.tar.gz
/osbuild-42.tar.gz
/osbuild-43.tar.gz
/osbuild-44.tar.gz
/osbuild-45.tar.gz
/osbuild-46.tar.gz
/osbuild-47.tar.gz
/osbuild-48.tar.gz
/osbuild-49.tar.gz
/osbuild-50.tar.gz
/osbuild-51.tar.gz
/osbuild-52.tar.gz
/osbuild-53.tar.gz
/osbuild-54.tar.gz
/osbuild-55.tar.gz
/osbuild-53.1.tar.gz
/osbuild-56.tar.gz
/osbuild-57.tar.gz
/osbuild-58.tar.gz
/osbuild-59.tar.gz
/osbuild-60.tar.gz
/osbuild-61.tar.gz
/osbuild-62.tar.gz
/osbuild-63.tar.gz
/osbuild-64.tar.gz
/osbuild-65.tar.gz
/osbuild-66.tar.gz
/osbuild-67.tar.gz
/osbuild-68.tar.gz
/osbuild-69.tar.gz
/osbuild-70.tar.gz
/osbuild-71.tar.gz
/osbuild-72.tar.gz
/osbuild-73.tar.gz
/osbuild-74.tar.gz
/osbuild-75.tar.gz
/osbuild-76.tar.gz
/osbuild-77.tar.gz
/osbuild-78.tar.gz
/osbuild-79.tar.gz
/osbuild-80.tar.gz
/osbuild-81.tar.gz
/osbuild-82.tar.gz
/osbuild-83.tar.gz
/osbuild-84.tar.gz
/osbuild-85.tar.gz
/osbuild-86.tar.gz
/osbuild-87.tar.gz
/osbuild-88.tar.gz
/osbuild-89.tar.gz
/osbuild-90.tar.gz
/osbuild-91.tar.gz
/osbuild-92.tar.gz
/osbuild-93.tar.gz
/osbuild-94.tar.gz
/osbuild-95.tar.gz
/osbuild-96.tar.gz
/osbuild-97.tar.gz
/osbuild-98.tar.gz
/osbuild-99.tar.gz
/osbuild-100.tar.gz
/osbuild-101.tar.gz
/osbuild-102.tar.gz
/osbuild-103.tar.gz
/osbuild-104.tar.gz
/osbuild-105.tar.gz
/osbuild-106.tar.gz
/osbuild-109.tar.gz
/osbuild-110.tar.gz
/osbuild-111.tar.gz
/osbuild-112.tar.gz
/osbuild-113.tar.gz
/osbuild-114.tar.gz
/osbuild-115.tar.gz
/osbuild-117.tar.gz
/osbuild-118.tar.gz
/osbuild-119.tar.gz
/osbuild-122.tar.gz
/osbuild-123.tar.gz
/osbuild-124.tar.gz
/osbuild-125.tar.gz
/osbuild-126.tar.gz
/osbuild-129.tar.gz
/osbuild-130.tar.gz
/osbuild-131.tar.gz
/osbuild-132.tar.gz
/osbuild-135.tar.gz
/osbuild-136.tar.gz
/osbuild-137.tar.gz
/osbuild-138.tar.gz
/osbuild-139.tar.gz
/osbuild-140.tar.gz
/osbuild-141.tar.gz
/osbuild-142.tar.gz
/osbuild-143.tar.gz
/osbuild-144.tar.gz
/osbuild-146.tar.gz
/osbuild-147.tar.gz
/osbuild-149.tar.gz
/osbuild-151.tar.gz
/osbuild-152.tar.gz
/osbuild-153.tar.gz
/osbuild-155.tar.gz
/osbuild-156.tar.gz
/osbuild-158.tar.gz
/osbuild-159.tar.gz
/osbuild-161.tar.gz
/osbuild-162.tar.gz
/osbuild-163.tar.gz
/osbuild-164.tar.gz
/osbuild-166.tar.gz
/osbuild-167.tar.gz
/osbuild-169.tar.gz

View file

@ -1,66 +1,37 @@
# https://packit.dev/docs/configuration/
# we have the specfile in the root of our repository
specfile_path: osbuild.spec
files_to_sync:
- osbuild.spec
- .packit.yaml
upstream_package_name: osbuild
# when doing an update in Fedora, we want to copy the spec file and the config file
synced_files:
- osbuild.spec
- .packit.yaml
upstream_project_name: osbuild
downstream_package_name: osbuild
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||'"
# Handle only releases without a "dot" (e.g. v88.2), since "dot" releases should never be released to Fedora
# "dot" releases are used only for "backports" to RHEL.
upstream_tag_include: 'v\d+'
jobs:
- &copr
job: copr_build
trigger: pull_request
targets:
- centos-stream-9-aarch64
- centos-stream-9-s390x
- centos-stream-9-pcc64le
- centos-stream-9-x86_64
- centos-stream-10-aarch64
- centos-stream-10-s390x
- centos-stream-10-ppc64le
- centos-stream-10-x86_64
- epel-8-aarch64
- epel-8-x86_64
- epel-9-aarch64
- epel-9-x86_64
- fedora-all-aarch64
- fedora-all-s390x
- fedora-all-ppc64le
- fedora-all
- <<: *copr
trigger: commit
branch: main
owner: "@osbuild" # copr repo namespace
project: osbuild # copr repo name so you can consume the builds
- <<: *copr
trigger: release
branch: main
owner: "@osbuild" # copr repo namespace
project: osbuild-stable # copr repo name so you can consume the builds
- job: propose_downstream
trigger: release
dist_git_branches:
- fedora-all
- job: koji_build
trigger: commit
dist_git_branches:
- fedora-all
- job: bodhi_update
trigger: commit
dist_git_branches:
- fedora-branched # rawhide updates are created automatically
# trigger a COPR build for push events in open PRs
- job: copr_build
trigger: pull_request
metadata:
targets:
- fedora-30-x86_64
- fedora-31-x86_64
- fedora-rawhide-x86_64
# this is triggered by a commit on src.fedoraproject.org, not Github!
# e.g. in case of mass rebuild or automated changes of spec file (e.g. Python packagers)
# it will create a PR on Github with changes in synchronized files
- job: sync_from_downstream
trigger: commit
# create a PR on src.fedoraproject.org containing updated spec file and new sources (tarball)
# triggered by Github release
- job: propose_downstream
trigger: release
metadata:
dist-git-branch: master
# The same as above only for f31
- job: propose_downstream
trigger: release
metadata:
dist-git-branch: f31
- job: propose_downstream
trigger: release
metadata:
dist-git-branch: f30

View file

@ -1,40 +0,0 @@
From 54c0a2cce45ad385d793d494e62222cd254a866a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hozza?= <thozza@redhat.com>
Date: Wed, 31 Jul 2024 18:12:24 +0200
Subject: [PATCH] Test/dnf4.mark: adjust the test for markings used by DNF5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When I rolled back from using 'dnf4', to check package markings, to
using 'dnf', I didn't verify the test case on Fedora Rawhide with DNF5.
It turns out that the strings reported by DNF5 differ and make the test
case fail. This time I tested the change on Fedora Rawhide with DNF5 and
it works.
Signed-off-by: Tomáš Hozza <thozza@redhat.com>
---
test/run/test_stages.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/test/run/test_stages.py b/test/run/test_stages.py
index dc91bf8f..7fec10c8 100644
--- a/test/run/test_stages.py
+++ b/test/run/test_stages.py
@@ -565,9 +565,11 @@ class TestStages(test.TestBase):
raise
if package == "dnf":
- assert mark == "user"
+ # dnf4 marks packages as 'user', while dnf5 marks them as 'User'
+ assert mark in ("user", "User")
else:
- assert mark == "unknown"
+ # dnf4 marks packages as 'unknown', while dnf5 marks them as 'External User'
+ assert mark in ("unknown", "External User")
@unittest.skipUnless(test.TestBase.has_filesystem_support("btrfs"), "btrfs needed")
def test_btrfs(self):
--
2.45.2

View file

@ -1,3 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 1.14.0.post1.dev2+g6506c7467.
The file was generated using packit 0.7.2.dev96+g8ed72cd.

File diff suppressed because it is too large Load diff

View file

@ -1,10 +0,0 @@
summary: Run osbuild integration tests
prepare:
how: install
package:
- osbuild
discover:
how: fmf
filter: tag:integration-test
execute:
how: tmt

View file

@ -1,13 +0,0 @@
summary: Run osbuild unit tests from dist-git sources
prepare:
how: install
package:
- git
- make
- osbuild
discover:
how: fmf
dist-git-source: true
filter: tag:unit-test
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (osbuild-169.tar.gz) = 981b6dae05d0f1fe0475549b5c72c2adafb656a7b9f3dbdf64fe660fe0852166bf327f654192f7f83583e2d559590b98dac8aba226e8203c3a0af274d51b33cf
SHA512 (osbuild-28.tar.gz) = 855b6db566f9c0011e76d143f83183ae09a00e338ada241fc27f9412b20f37ff36692ec30b28dc9542eb457ea2a4fbd0e351821270b5d79a870f697a686e0d88

View file

@ -1,52 +0,0 @@
#!/usr/bin/bash
set -euxo pipefail
MANIFESTS_DIR=$1
# check that MANIFESTS_DIR is a directory
if [ ! -d "$MANIFESTS_DIR" ]; then
echo "Error: $MANIFESTS_DIR is not a directory"
exit 1
fi
# ensure that we are running on x86_64 architecture
if [ "$(uname -m)" != "x86_64" ]; then
echo "Error: this script is only supported on x86_64 architecture"
exit 1
fi
. /etc/os-release
case "${ID}-${VERSION_ID}" in
fedora-*)
IMAGE_MANIFEST="${MANIFESTS_DIR}/fedora.json"
;;
rhel-8.*)
IMAGE_MANIFEST="${MANIFESTS_DIR}/rhel-8.json"
;;
rhel-9.*)
IMAGE_MANIFEST="${MANIFESTS_DIR}/rhel-9.json"
;;
centos-8)
IMAGE_MANIFEST="${MANIFESTS_DIR}/centos-8.json"
;;
centos-9)
IMAGE_MANIFEST="${MANIFESTS_DIR}/centos-9.json"
;;
centos-10)
IMAGE_MANIFEST="${MANIFESTS_DIR}/centos-10.json"
;;
*)
echo "Error: unsupported OS: ${ID}-${VERSION_ID}"
exit 1
;;
esac
OUTPUT_DIR=/var/tmp/osbuild-output
STORE_DIR=/var/tmp/osbuild-store
sudo mkdir -p "${OUTPUT_DIR}"
sudo mkdir -p "${STORE_DIR}"
# all the images are built with qcow2 format, so export it
EXPORT_PIPELINE="qcow2"
sudo osbuild --output-directory "${OUTPUT_DIR}" --store "${STORE_DIR}" --export "${EXPORT_PIPELINE}" "${IMAGE_MANIFEST}"

View file

@ -1,4 +0,0 @@
summary: Build simple image using osbuild
tag: integration-test
duration: 1h
test: ./build-images.sh ./manifests

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

20
tests/tests.yml Normal file
View file

@ -0,0 +1,20 @@
---
- hosts: localhost
roles:
- role: standard-test-source
tags:
- always
- role: standard-test-basic
tags:
- atomic
- classic
required_packages:
- osbuild
tests:
- smoke:
dir: smoke
run: osbuild --help
- image:
dir: .
run: osbuild source/test/data/manifests/fedora-boot.json --output-directory=/var/tmp/osbuild

View file

@ -1,4 +0,0 @@
summary: Run osbuild unit tests from dist-git sources
tag: unit-test
duration: 4h
test: ./prep-host-environment.sh; sudo chcon $(matchpathcon -n /usr/bin/osbuild) ./run-unit-tests.sh; ./run-unit-tests.sh

View file

@ -1,35 +0,0 @@
#!/usr/bin/bash
# Prepare the host environment for running the osbuild unit tests.
# This includes installing missing dependencies and tools.
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 \
python3-mako \
python3-pip \
rpm-ostree \
dosfstools \
gdisk \
python3-tomli-w
sudo dnf builddep -y osbuild.spec
# Install pytst from pip, because the version in some RHEL / CentOS releases is too old
sudo pip3 install pytest
# Make sure that /usr/lib/systemd/boot/efi/linuxx64.efi.stub is available to enable pe32p tests
case "${ID}-${VERSION_ID}" in
rhel-8.* | centos-8)
sudo dnf install -y systemd-udev
;;
*)
sudo dnf install -y systemd-boot-unsigned
;;
esac

View file

@ -1,55 +0,0 @@
#!/usr/bin/bash
# Execute osbuild unit tests from a checked out dist-git repo
set -euxo pipefail
source /etc/os-release
# The 'test/run/test_assemblers.py::test_tar' test case uses system tar to extract the built tar archive.
# However, files in the tar archive can have SELinux context not present in the system policy. Therefore,
# in order for the system tar to be able to set it when extracting the archive, it must be labeled with
# 'install_exec_t' type.
ORIGINAL_TAR_CONTEXT="$(matchpathcon -n "$(which tar)")"
sudo chcon "system_u:object_r:install_exec_t:s0" "$(which tar)"
function restore_tar_context() {
sudo chcon "${ORIGINAL_TAR_CONTEXT}" "$(which tar)"
}
trap restore_tar_context EXIT
# Run the unit tests
# Note:
# - Ignore the boot test, because it requires qemu-system-x86_64 not available on all distributions.
# - Ignore source code tests, which run linters, since we can't ensure that all linters are available
# and of the same version as in upstream.
# - Explicitly mark btrfs as unsupported on CentOS / RHEL
if [ "${ID}" == "centos" ] || [ "${ID}" == "rhel" ]; then
UNSUPPORTED_FS="--unsupported-fs btrfs"
fi
TEST_SELECTION_EXPR="not (TestBoot and boot)"
# disable some tests on RHEL-8
if ([ "${ID}" == "rhel" ] || [ "${ID}" == "centos" ]) && [ "${VERSION_ID%%.*}" == "8" ]; then
# qemu-img info in RHEL-8 produces "raw" as the image format for "vdi" images, which causes tests to fail. Skip it.
TEST_SELECTION_EXPR="${TEST_SELECTION_EXPR} and not (test_qemu[ext4-vdi] or test_qemu[xfs-vdi])"
TEST_SELECTION_EXPR="${TEST_SELECTION_EXPR} and not (TestStages and test_qemu)"
fi
# Move to the directory with sources
cd "${TMT_SOURCE_DIR}"
# Extract the Source0 basename without extension
SRC_DIR=$(spectool --source 0 osbuild.spec | sed 's/.\+\(osbuild-[0-9]\+\)\.tar\.gz/\1/')
# Move to the extracted sources directory (patches are applied by default)
cd "${SRC_DIR}"
sudo python3 -m pytest \
--rootdir "$(pwd)" \
--ignore "$(pwd)/test/src" \
${UNSUPPORTED_FS:-} \
-k "${TEST_SELECTION_EXPR}" \
-v \
"$(pwd)/test/"