From aaed67deeae18be66c28ea765f59510701c7509c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 15 Oct 2020 22:34:39 +0200 Subject: [PATCH] RHEL 9.0.0 Alpha bootstrap The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/osbuild#3ed31ee037b425d9d9e3c9b64bfad7a1b9ad6999 --- .gitignore | 22 ++++ .packit.yaml | 37 +++++++ README.md | 3 + README.packit | 3 + gating.yaml | 12 ++ osbuild.spec | 283 ++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + tests/tests.yml | 19 ++++ 8 files changed, 380 insertions(+) create mode 100644 .packit.yaml create mode 100644 README.md create mode 100644 README.packit create mode 100644 gating.yaml create mode 100644 osbuild.spec create mode 100644 sources create mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore index e69de29..1fb490b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,22 @@ +/1.tar.gz +/2.tar.gz +/3.tar.gz +/4.tar.gz +/5.tar.gz +/6.tar.gz +/7.tar.gz +/osbuild-8.tar.gz +/osbuild-9.tar.gz +/osbuild-10.tar.gz +/osbuild-11.tar.gz +/osbuild-12.tar.gz +/osbuild-13.tar.gz +/osbuild-14.tar.gz +/osbuild-15.tar.gz +/osbuild-16.tar.gz +/osbuild-17.tar.gz +/osbuild-18.tar.gz +/osbuild-19.tar.gz +/osbuild-20.tar.gz +/osbuild-21.tar.gz +/osbuild-22.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..2045f18 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,37 @@ +# we have the specfile in the root of our repository +specfile_path: osbuild.spec +# 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 +jobs: + # 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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..aa1c977 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# osbuild + +The osbuild package \ No newline at end of file diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..a050a5f --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.7.2.dev96+g8ed72cd. diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f2c6454 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,12 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/osbuild.spec b/osbuild.spec new file mode 100644 index 0000000..2fe80a0 --- /dev/null +++ b/osbuild.spec @@ -0,0 +1,283 @@ +%global forgeurl https://github.com/osbuild/osbuild +%global selinuxtype targeted + +Version: 22 + +%forgemeta + +%global pypi_name osbuild +%global pkgdir %{_prefix}/lib/%{pypi_name} + +Name: %{pypi_name} +Release: 1%{?dist} +License: ASL 2.0 + +URL: %{forgeurl} + +Source0: %{forgesource} +BuildArch: noarch +Summary: A build system for OS images + +BuildRequires: make +BuildRequires: python3-devel +BuildRequires: python3-docutils + +Requires: bash +Requires: bubblewrap +Requires: coreutils +Requires: curl +Requires: dnf +Requires: e2fsprogs +Requires: glibc +Requires: policycoreutils +Requires: qemu-img +Requires: systemd +Requires: tar +Requires: util-linux +Requires: python3-%{pypi_name} = %{version}-%{release} +Requires: (%{name}-selinux if selinux-policy-%{selinuxtype}) + +# Turn off dependency generators for assemblers, runners and stages. +# They run in a container, so there's no reason to generate dependencies +# from them. As of 2020-03-25 this filters out python3.6 dependency generated +# by rhel runner. +%global __requires_exclude_from ^%{pkgdir}/(assemblers|runners|stages)/.*$ + +%{?python_enable_dependency_generator} + +%description +A build system for OS images + +%package -n python3-%{pypi_name} +Summary: %{summary} +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +A build system for OS images + +%package ostree +Summary: OSTree support +Requires: %{name} = %{version}-%{release} +Requires: ostree +Requires: rpm-ostree + +%description ostree +Contains the necessary stages, assembler and source +to build OSTree based images. + +%package selinux +Summary: SELinux policies +Requires: %{name} = %{version}-%{release} +BuildRequires: selinux-policy +BuildRequires: selinux-policy-devel +%{?selinux_requires} + +%description selinux +Contains the necessary SELinux policies that allows +osbuild to use labels unknown to the host inside the +containers it uses to build OS artifacts. + +%prep +%forgesetup + +%build +%py3_build +make man + +# SELinux +make -f /usr/share/selinux/devel/Makefile osbuild.pp +bzip2 -9 osbuild.pp + +%pre +%selinux_relabel_pre -s %{selinuxtype} + +%install +%py3_install + +mkdir -p %{buildroot}%{pkgdir}/stages +install -p -m 0755 $(find stages -type f) %{buildroot}%{pkgdir}/stages/ + +mkdir -p %{buildroot}%{pkgdir}/assemblers +install -p -m 0755 $(find assemblers -type f) %{buildroot}%{pkgdir}/assemblers/ + +mkdir -p %{buildroot}%{pkgdir}/runners +install -p -m 0755 $(find runners -type f -or -type l) %{buildroot}%{pkgdir}/runners + +mkdir -p %{buildroot}%{pkgdir}/sources +install -p -m 0755 $(find sources -type f) %{buildroot}%{pkgdir}/sources + +# mount point for bind mounting the osbuild library +mkdir -p %{buildroot}%{pkgdir}/osbuild + +# schemata +mkdir -p %{buildroot}%{_datadir}/osbuild/schemas +install -p -m 0755 $(find schemas/*.json) %{buildroot}%{_datadir}/osbuild/schemas +ln -s %{_datadir}/osbuild/schemas %{buildroot}%{pkgdir}/schemas + +# documentation +mkdir -p %{buildroot}%{_mandir}/man1 +mkdir -p %{buildroot}%{_mandir}/man5 +install -p -m 0644 -t %{buildroot}%{_mandir}/man1/ docs/*.1 +install -p -m 0644 -t %{buildroot}%{_mandir}/man5/ docs/*.5 + +# SELinux +install -D -m 644 -t %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype} %{name}.pp.bz2 +install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_selinux.8 + +%check +exit 0 +# We have some integration tests, but those require running a VM, so that would +# be an overkill for RPM check script. + +%files +%license LICENSE +%{_bindir}/osbuild +%{_mandir}/man1/%{name}.1* +%{_mandir}/man5/%{name}-manifest.5* +%{_datadir}/osbuild/schemas +%{pkgdir} +# the following files are in the ostree sub-package +%exclude %{pkgdir}/assemblers/org.osbuild.ostree.commit +%exclude %{pkgdir}/sources/org.osbuild.ostree +%exclude %{pkgdir}/stages/org.osbuild.ostree +%exclude %{pkgdir}/stages/org.osbuild.rpm-ostree + +%files -n python3-%{pypi_name} +%license LICENSE +%doc README.md NEWS.md +%{python3_sitelib}/%{pypi_name}-*.egg-info/ +%{python3_sitelib}/%{pypi_name}/ + +%files ostree +%{pkgdir}/assemblers/org.osbuild.ostree.commit +%{pkgdir}/sources/org.osbuild.ostree +%{pkgdir}/stages/org.osbuild.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} + +%post selinux +%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 + +%postun selinux +if [ $1 -eq 0 ]; then + %selinux_modules_uninstall -s %{selinuxtype} %{name} +fi + +%posttrans selinux +%selinux_relabel_post -s %{selinuxtype} + +%changelog +* Mon Oct 12 2020 Christian Kellner - 22-1 +- Upstream release 22 + +* Thu Sep 10 2020 Christian Kellner - 21-1 +- Upstream reelase 21 + +* Thu Aug 13 2020 Christian Kellner - 20-1 +- Upstream reelase 20 + +* Fri Aug 7 2020 Christian Kellner - 19-1 +- Upstream release 19 +- Drop no-floats-in-sources.patch included in release 19 +- bubblewrap replaced systemd-nspawn for sandboxing; change the + requirements accordingly. + +* Tue Jul 28 2020 Fedora Release Engineering - 18-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jun 26 2020 Christian Kellner - 18-2 +- Add patch to not pass floats to curl in the files source + https://github.com/osbuild/osbuild/pull/459 + +* Tue Jun 23 2020 Christian Kellner - 18-1 +- Upstream release 18 +- All RHEL runners now use platform-python. + +* Wed Jun 10 2020 Christian Kellner - 17-1 +- new upstream relaese 17 +- Add custom SELinux policy that lets osbuild set labels inside + the build root that are unknown to the host. + +* Thu Jun 4 2020 Christian Kellner - 16-1 +- new upstream release 16 +- Drop sources-fix-break-when-secrets-is-None.patch included in + the new upstream reelase. + +* Wed May 27 2020 Miro Hrončok - 15-4 +- Rebuilt for Python 3.9 + +* Tue May 26 2020 Christian Kellner - 15-3 +- 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 + +* Tue May 26 2020 Miro Hrončok - 15-2 +- Rebuilt for Python 3.9 + +* Thu May 21 2020 Christian Kellner - 15-1 +- new upstream release 15 + +* Wed May 6 2020 Christian Kellner - 14-2 +- Install schemata to /osbuild/schemas and include a + symlink to it in /usr/lib/osbuild/schemas + +* Wed May 6 2020 Christian Kellner - 14-1 +- new upstream release 14 +- The directories /usr/lib/osbuild/{assemblers, stages}/osbuild + got removed. Changes to osbuild made them obsolete. + +* Wed Apr 15 2020 Christian Kellner - 12-1 +- new upstream release 12 +- Specify the exact version in the 'python3-osbuild' requirement + to avoid the library and the main binary being out of sync. +- osbuild-ostree sub-package with the necessary bits to create + OSTree based images + +* Thu Apr 2 2020 Christian Kellner - 11-1 +- new upstream release 11 +- Turn of dependency generator for internal components + +* Thu Mar 19 2020 Christian Kellner - 10-1 +- new upstream release 10 +- build and include man pages, this adds 'make' and 'python3-docutils' + to the build requirements +- add NEWS.md file with the release notes + +* Thu Mar 5 2020 Christian Kellner - 9-1 +- new upstream release: 9 +- Remove host runner link, it now is being auto-detected +- Cleanup use of mixed use of spaces/tabs + +* Wed Jan 29 2020 Fedora Release Engineering - 7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 16 2019 Packit Service - 7-1 +- new upstream release: 7 + +* Sat Nov 30 2019 Tom Gundersen - 6-1 +- new upstream release: 6 + +* Wed Oct 30 2019 Lars Karlitski - 5-1 +- new upstream release: 5 + +* Wed Oct 16 2019 Tom Gundersen - 4-1 +- new upstream release: 4 + +* Fri Oct 04 2019 Lars Karlitski - 3-1 +- new upstream release: 3 + +* Wed Sep 18 2019 Martin Sehnoutka - 2-1 +- new upstream release: 2 + +* Mon Aug 19 2019 Miro Hrončok - 1-3 +- Rebuilt for Python 3.8 + +* Mon Jul 29 2019 Martin Sehnoutka - 1-2 +- update upstream URL to the new Github organization + +* Wed Jul 17 2019 Martin Sehnoutka - 1-1 +- Initial package diff --git a/sources b/sources new file mode 100644 index 0000000..2aa174b --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (osbuild-22.tar.gz) = 76b2efb083b2c372251b20185f76d59336fd3ddb4dfcf9b33f825a9f93c5dd2449ae2321fcdca1d9d3b0fc9f4547e5850d11b7137e92793d766c6e9383cb2703 diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..74272b3 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,19 @@ +--- +- 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/samples/base-qcow2.json