Compare commits

..

5 Commits

Author SHA1 Message Date
eabdullin be5c98aa6e Import from AlmaLinux stable repository 2024-05-31 17:59:16 +00:00
eabdullin 726ecd4cca import UBI osbuild-110-1.el8 2024-05-22 14:43:42 +00:00
eabdullin a1fe17344e import UBI osbuild-93-1.el8_9.1 2024-02-12 19:36:27 +00:00
eabdullin 1cd2ea1070 import UBI osbuild-93-1.el8 2023-11-15 04:26:30 +00:00
CentOS Sources 4b3b53483b import osbuild-81-1.el8 2023-05-16 07:17:48 +00:00
4 changed files with 174 additions and 156 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/osbuild-65.tar.gz
SOURCES/osbuild-110.tar.gz

View File

@ -1 +0,0 @@
cc3ac24219b1619c999858d3f61c6a7be8d50732 SOURCES/osbuild-65.tar.gz

View File

@ -1,139 +0,0 @@
diff -aruN osbuild-53/runners/org.osbuild.almalinux86 osbuild-53_alma/runners/org.osbuild.almalinux86
--- osbuild-53/runners/org.osbuild.almalinux86 1970-01-01 02:00:00.000000000 +0200
+++ osbuild-53_alma/runners/org.osbuild.almalinux86 2022-03-24 02:05:32.000000000 +0300
@@ -0,0 +1,83 @@
+#!/usr/libexec/platform-python
+
+import os
+import platform
+import subprocess
+import sys
+
+import osbuild.api
+
+
+def quirks():
+ # Platform specific quirks
+ env = os.environ.copy()
+
+ if platform.machine() == "aarch64":
+ # Work around a bug in qemu-img on aarch64 that can lead to qemu-img
+ # hangs when more then one coroutine is use (which is the default)
+ # See https://bugs.launchpad.net/qemu/+bug/1805256
+ env["OSBUILD_QEMU_IMG_COROUTINES"] = "1"
+
+ return env
+
+
+def ldconfig():
+ # ld.so.conf must exist, or `ldconfig` throws a warning
+ subprocess.run(["touch", "/etc/ld.so.conf"], check=True)
+ subprocess.run(["ldconfig"], check=True)
+
+
+def sysusers():
+ try:
+ subprocess.run(["systemd-sysusers"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, check=True)
+ except subprocess.CalledProcessError as error:
+ sys.stderr.write(error.stdout)
+ sys.exit(1)
+
+
+def tmpfiles():
+ # Allow systemd-tmpfiles to return non-0. Some packages want to create
+ # directories owned by users that are not set up with systemd-sysusers.
+ subprocess.run(["systemd-tmpfiles", "--create"], check=False)
+
+
+def nsswitch():
+ # the default behavior is fine, but using nss-resolve does not
+ # necessarily work in a non-booted container, so make sure that
+ # is not configured.
+ try:
+ os.remove("/etc/nsswitch.conf")
+ except FileNotFoundError:
+ pass
+
+
+def python_alternatives():
+ """/usr/bin/python3 is a symlink to /etc/alternatives/python3, which points
+ to /usr/bin/python3.6 by default. Recreate the link in /etc, so that
+ shebang lines in stages and assemblers work.
+ """
+ os.makedirs("/etc/alternatives", exist_ok=True)
+ try:
+ os.symlink("/usr/bin/python3.6", "/etc/alternatives/python3")
+ except FileExistsError:
+ pass
+
+
+def main():
+ with osbuild.api.exception_handler():
+ ldconfig()
+ sysusers()
+ tmpfiles()
+ nsswitch()
+ python_alternatives()
+
+ env = quirks()
+
+ r = subprocess.run(sys.argv[1:],
+ env=env,
+ check=False)
+ sys.exit(r.returncode)
+
+
+if __name__ == "__main__":
+ main()
diff -aruN osbuild-53/runners/org.osbuild.almalinux90 osbuild-53_alma/runners/org.osbuild.almalinux90
--- osbuild-53/runners/org.osbuild.almalinux90 1970-01-01 02:00:00.000000000 +0200
+++ osbuild-53_alma/runners/org.osbuild.almalinux90 2022-03-24 02:05:32.000000000 +0300
@@ -0,0 +1,48 @@
+#!/usr/bin/python3
+
+import os
+import subprocess
+import sys
+
+import osbuild.api
+
+
+def ldconfig():
+ # ld.so.conf must exist, or `ldconfig` throws a warning
+ subprocess.run(["touch", "/etc/ld.so.conf"], check=True)
+ subprocess.run(["ldconfig"], check=True)
+
+
+def sysusers():
+ try:
+ subprocess.run(["systemd-sysusers"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, check=True)
+ except subprocess.CalledProcessError as error:
+ sys.stderr.write(error.stdout)
+ sys.exit(1)
+
+
+def tmpfiles():
+ # Allow systemd-tmpfiles to return non-0. Some packages want to create
+ # directories owned by users that are not set up with systemd-sysusers.
+ subprocess.run(["systemd-tmpfiles", "--create"], check=False)
+
+
+def nsswitch():
+ # the default behavior is fine, but using nss-resolve does not
+ # necessarily work in a non-booted container, so make sure that
+ # is not configured.
+ try:
+ os.remove("/etc/nsswitch.conf")
+ except FileNotFoundError:
+ pass
+
+
+if __name__ == "__main__":
+ with osbuild.api.exception_handler():
+ ldconfig()
+ sysusers()
+ tmpfiles()
+ nsswitch()
+
+ r = subprocess.run(sys.argv[1:], check=False)
+ sys.exit(r.returncode)

View File

@ -1,7 +1,7 @@
%global forgeurl https://github.com/osbuild/osbuild
%global selinuxtype targeted
Version: 65
Version: 110
%forgemeta
@ -9,8 +9,8 @@ Version: 65
%global pkgdir %{_prefix}/lib/%{pypi_name}
Name: %{pypi_name}
Release: 1%{?dist}.alma
License: ASL 2.0
Release: 1%{?dist}.alma.1
License: Apache-2.0
URL: %{forgeurl}
@ -18,9 +18,6 @@ Source0: %{forgesource}
BuildArch: noarch
Summary: A build system for OS images
# AlmaLinux patch
Patch10000: almalinux_runners.patch
BuildRequires: make
BuildRequires: python3-devel
BuildRequires: python3-docutils
@ -36,11 +33,18 @@ Requires: glibc
Requires: policycoreutils
Requires: qemu-img
Requires: systemd
Requires: skopeo
Requires: tar
Requires: util-linux
Requires: python3-%{pypi_name} = %{version}-%{release}
Requires: (%{name}-selinux if selinux-policy-%{selinuxtype})
# This is required for `osbuild`, for RHEL-10 and above
# the stdlib toml package can be used instead
%if 0%{?rhel} < 10
Requires: python3-tomli
%endif
# Turn off dependency generators for runners. The reason is that runners are
# tailored to the platform, e.g. on RHEL they are using platform-python. We
# don't want to pick up those dependencies on other platform.
@ -103,7 +107,8 @@ to build OSTree based images.
%package selinux
Summary: SELinux policies
Requires: %{name} = %{version}-%{release}
BuildRequires: selinux-policy
Requires: selinux-policy-%{selinuxtype}
Requires(post): selinux-policy-%{selinuxtype}
BuildRequires: selinux-policy-devel
%{?selinux_requires}
@ -117,15 +122,33 @@ Summary: Extra tools and utilities
Requires: %{name} = %{version}-%{release}
Requires: python3-pyyaml
# These are required for `osbuild-dev`, only packaged for Fedora
%if 0%{?fedora}
Requires: python3-rich
Requires: python3-attrs
Requires: python3-typer
%endif
%description tools
Contains additional tools and utilities for development of
manifests and osbuild.
%prep
%forgesetup
%package depsolve-dnf
Summary: Dependency solving support for DNF
Requires: %{name} = %{version}-%{release}
# AlmaLinux patch
%patch10000 -p1 -b .runners
# Fedora 40 and later use libdnf5, RHEL and Fedora < 40 use libdnf
%if 0%{?fedora} >= 40
Requires: python3-libdnf5 >= 5.1.1
%else
Requires: python3-libdnf
%endif
%description depsolve-dnf
Contains depsolving capabilities for package managers.
%prep
%forgeautosetup -p1
%build
%py3_build
@ -135,14 +158,20 @@ make man
make -f /usr/share/selinux/devel/Makefile osbuild.pp
bzip2 -9 osbuild.pp
%pre
%pre selinux
%selinux_relabel_pre -s %{selinuxtype}
%install
%py3_install
ln -rs %{_builddir}/%{name}-%{version}/runners/org.osbuild.rhel82 %{_builddir}/%{name}-%{version}/runners/org.osbuild.almalinux8
%if 0%{?almalinux} >= 9
ln -rs %{_builddir}/%{name}-%{version}/runners/org.osbuild.centos9 %{_builddir}/%{name}-%{version}/runners/org.osbuild.almalinux9
%endif
mkdir -p %{buildroot}%{pkgdir}/stages
install -p -m 0755 $(find stages -type f) %{buildroot}%{pkgdir}/stages/
install -p -m 0755 $(find stages -type f -not -name "test_*.py") %{buildroot}%{pkgdir}/stages/
mkdir -p %{buildroot}%{pkgdir}/assemblers
install -p -m 0755 $(find assemblers -type f) %{buildroot}%{pkgdir}/assemblers/
@ -179,11 +208,24 @@ install -p -m 0644 -t %{buildroot}%{_mandir}/man5/ docs/*.5
# SELinux
install -D -m 0644 -t %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype} %{name}.pp.bz2
install -D -m 0644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_selinux.8
install -D -p -m 0644 selinux/osbuild.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if
# Udev rules
mkdir -p %{buildroot}%{_udevrulesdir}
install -p -m 0755 data/10-osbuild-inhibitor.rules %{buildroot}%{_udevrulesdir}
# Remove `osbuild-dev` on non-fedora systems
%{!?fedora:rm %{buildroot}%{_bindir}/osbuild-dev}
# Install `osbuild-depsolve-dnf` into libexec
mkdir -p %{buildroot}%{_libexecdir}
# Fedora 40 and later use dnf5-json, RHEL and Fedora < 40 use dnf-json
%if 0%{?fedora} >= 40
install -p -m 0755 tools/osbuild-depsolve-dnf5 %{buildroot}%{_libexecdir}/osbuild-depsolve-dnf
%else
install -p -m 0755 tools/osbuild-depsolve-dnf %{buildroot}%{_libexecdir}/osbuild-depsolve-dnf
%endif
%check
exit 0
# We have some integration tests, but those require running a VM, so that would
@ -209,6 +251,7 @@ exit 0
%exclude %{pkgdir}/inputs/org.osbuild.ostree*
%exclude %{pkgdir}/sources/org.osbuild.ostree*
%exclude %{pkgdir}/stages/org.osbuild.ostree*
%exclude %{pkgdir}/stages/org.osbuild.experimental.ostree*
%exclude %{pkgdir}/stages/org.osbuild.rpm-ostree
%files -n python3-%{pypi_name}
@ -231,12 +274,14 @@ exit 0
%{pkgdir}/inputs/org.osbuild.ostree*
%{pkgdir}/sources/org.osbuild.ostree*
%{pkgdir}/stages/org.osbuild.ostree*
%{pkgdir}/stages/org.osbuild.experimental.ostree*
%{pkgdir}/stages/org.osbuild.rpm-ostree
%files selinux
%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%{_mandir}/man8/%{name}_selinux.8.*
%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%{_datadir}/selinux/devel/include/distributed/%{name}.if
%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%post selinux
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
@ -251,12 +296,125 @@ fi
%files tools
%{_bindir}/osbuild-mpp
%{?fedora:%{_bindir}/osbuild-dev}
%files depsolve-dnf
%{_libexecdir}/osbuild-depsolve-dnf
%changelog
* Tue Nov 08 2022 Eduard Abdullin <eabdullin@almalinux.org> - 65-1.alma
* Wed Mar 27 2024 Eduard Abdullin <eabdullin@almalinux.org> - 110-1.alma
- Add AlmaLinux runners
* Mon Feb 26 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 110-1
- New upstream release
* Thu Feb 22 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 109-1
- New upstream release
* Thu Feb 01 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 106-1
- New upstream release
* Wed Jan 31 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 105-1
- New upstream release
* Wed Jan 17 2024 Paweł Poławski <ppolawsk@redhat.com> - 104-2
- Fix unit tests in RHEL CI by backporting upstream fixes
* Tue Jan 16 2024 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 104-1
- New upstream release
* Tue Dec 19 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 101-1
- New upstream release
* Mon Dec 11 2023 Paweł Poławski <ppolawsk@redhat.com> - 100-2
- Change unit-test timeout from 3h to 4h
* Fri Nov 24 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 100-1
- New upstream release
* Wed Sep 27 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 96-1
- New upstream release
* Wed Sep 13 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 95-1
- New upstream release
* Wed Aug 30 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 94-1
- New upstream release
* Wed Aug 23 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 93-1
- New upstream release
* Thu Aug 17 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 92-1
- New upstream release
* Wed Aug 02 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 91-1
- New upstream release
* Thu Jul 20 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 90-1
- New upstream release
* Tue Jun 27 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 89-1
- New upstream release
* Tue Jun 27 2023 Tomáš Hozza <thozza@redhat.com> - 88-3
- Increase unit-test duration to 3h
* Fri Jun 23 2023 Tomáš Hozza <thozza@redhat.com> - 88-2
- Fix unit tests in RHEL CI and rebuild RPM
* Wed Jun 21 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 88-1
- New upstream release
* Wed Jun 07 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 87-1
- New upstream release
* Tue May 30 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 86-1
- New upstream release
* Tue May 30 2023 Tomáš Hozza <thozza@redhat.com> - 85-2
- Backport upstream fixes for unit tests on RHEL-8 (PR#1316, PR#1317)
* Thu May 11 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 85-1
- New upstream release
* Thu Apr 27 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 84-1
- New upstream release
* Wed Mar 29 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 82-1
- New upstream release
* Mon Feb 27 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 81-1
- New upstream release
* Mon Feb 20 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 80-1
- New upstream release
* Wed Feb 15 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 79-1
- New upstream release
* Tue Feb 07 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 78-1
- New upstream release
* Fri Jan 20 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 77-1
- New upstream release
* Thu Jan 19 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 76-1
- New upstream release
* Wed Jan 04 2023 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 75-1
- New upstream release
* Wed Dec 07 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 73-1
- New upstream release
* Wed Nov 23 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 72-1
- New upstream release
* Wed Nov 09 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 71-1
- New upstream release
* Wed Oct 26 2022 imagebuilder-bots+imagebuilder-bot@redhat.com <imagebuilder-bot> - 70-1
- New upstream release
* Fri Aug 26 2022 imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> - 65-1
- New upstream release