From a9eb94f822e7c0f3d0933cf6e53fd82f3eebd09b Mon Sep 17 00:00:00 2001 From: Joseph Marrero Corchado Date: Thu, 23 Jan 2025 21:32:14 -0500 Subject: [PATCH] Rebase to rpm-ostree 2025.2 Resolves: #RHEL-68131 --- .gitignore | 1 + rpm-ostree.spec | 72 ++++++++++++++++++++++++++++++++++++++++++++----- sources | 2 +- 3 files changed, 68 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 8ac2cd0..d5855b3 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,4 @@ /rpm-ostree-2024.7.tar.xz /rpm-ostree-2024.9.tar.xz /rpm-ostree-2025.1.tar.xz +/rpm-ostree-2025.2.tar.xz diff --git a/rpm-ostree.spec b/rpm-ostree.spec index ee611c8..6d67614 100644 --- a/rpm-ostree.spec +++ b/rpm-ostree.spec @@ -1,28 +1,45 @@ # The canonical copy of this spec file is upstream at: -# https://github.com/coreos/rpm-ostree/blob/main/packaging/rpm-ostree.spec.in +# https://github.com/coreos/rpm-ostree/blob/main/packaging/rpm-ostree.spec Summary: Hybrid image/package system Name: rpm-ostree -Version: 2025.1 +Version: 2025.2 Release: 1%{?dist} -License: LGPLv2+ +License: LGPL-2.0-or-later URL: https://github.com/coreos/rpm-ostree # This tarball is generated via "cd packaging && make -f Makefile.dist-packaging dist-snapshot" # in the upstream git. It also contains vendored Rust sources. Source0: https://github.com/coreos/rpm-ostree/releases/download/v%{version}/rpm-ostree-%{version}.tar.xz -ExclusiveArch: %{rust_arches} +# See https://github.com/coreos/fedora-coreos-tracker/issues/1716 +# ostree not on i686 for RHEL 10 +# https://github.com/containers/composefs/pull/229#issuecomment-1838735764 +%if 0%{?fedora} || 0%{?rhel} >= 10 +ExcludeArch: %{ix86} +%endif BuildRequires: make +%if 0%{?rhel} +BuildRequires: rust-toolset +%else BuildRequires: rust-packaging BuildRequires: cargo BuildRequires: rust +%endif # Enable ASAN + UBSAN %bcond_with sanitizers # Embedded unit tests %bcond_with bin_unit_tests +# Don't add the ostree-container binaries; this version +# conditional needs to be kept in sync with the bootc one. +%if 0%{?rhel} >= 10 || 0%{?fedora} > 41 + %bcond_with ostree_ext +%else + %bcond_without ostree_ext +%endif + # This is copied from the libdnf spec %if 0%{?rhel} && ! 0%{?centos} %bcond_without rhsm @@ -56,6 +73,8 @@ BuildRequires: pkgconfig(libarchive) BuildRequires: pkgconfig(libsystemd) BuildRequires: libcap-devel BuildRequires: libattr-devel +# Needed by the ostree-ext crate +BuildRequires: libzstd-devel # We currently interact directly with librepo (libdnf below also pulls it in, # but duplicating to be clear) @@ -126,11 +145,24 @@ Requires: librepo%{?_isa} >= %{librepo_version} # rpm-ostree wraps more of ostree (such as `ostree admin unlock` etc.) Requires: ostree Requires: bubblewrap +# We have been building with fuse but changed to fuse3 on: +# https://src.fedoraproject.org/rpms/rpm-ostree/c/3c602a23787fd2df873c0b18df3133c9fec4b66a +# However our code is just calling fuse's fusermount. +# We are updating our spec and code based on the discusion on: +# https://github.com/coreos/rpm-ostree/pull/5047 +%if %{defined rhel} && 0%{?rhel} < 10 Requires: fuse +%else +Requires: fuse3 +%endif # For container functionality # https://github.com/coreos/rpm-ostree/issues/3286 -Recommends: skopeo +Requires: skopeo +Requires: bootc +%if %{without ostree_ext} +Requires: ostree-cli(ostree-container) +%endif Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -156,7 +188,7 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} The %{name}-devel package includes the header files for %{name}-libs. %prep -%autosetup -Sgit -n %{name}-%{version} +%autosetup -Sgit -n %{name}-%{version} -p1 %if 0%{?__isa_bits} == 32 sed -ie 's,^lto = true,lto = false,' Cargo.toml %endif @@ -173,9 +205,19 @@ export RUSTFLAGS="%{build_rustflags}" %{?with_rhsm:--enable-featuresrs=rhsm} %make_build +%if 0%{?fedora} || 0%{?rhel} >= 10 +%cargo_license_summary +%{cargo_license} > LICENSE.dependencies +%cargo_vendor_manifest +# https://pagure.io/fedora-rust/rust-packaging/issue/33 +sed -i -e '/https:\/\//d' cargo-vendor.txt +%endif %install %make_install INSTALL="install -p -c" +%if %{without ostree_ext} +rm -vrf $RPM_BUILD_ROOT/usr/libexec/libostree/ext +%endif find $RPM_BUILD_ROOT -name '*.la' -delete # I try to do continuous delivery via rpmdistro-gitoverlay while @@ -213,7 +255,9 @@ $PYTHON autofiles.py > files \ '%{_prefix}/lib/systemd/system/*' \ '%{_prefix}/lib/kernel/install.d/*' \ '%{_libexecdir}/rpm-ostree*' \ +%if %{with ostree_ext} '%{_libexecdir}/libostree/ext/*' \ +%endif '%{_datadir}/polkit-1/actions/*.policy' \ '%{_datadir}/dbus-1/system-services/*' \ '%{_datadir}/bash-completion/completions/*' @@ -230,21 +274,37 @@ $PYTHON autofiles.py > files.devel \ '%{_datadir}/gtk-doc/html/*' \ '%{_datadir}/gir-1.0/*-1.0.gir' +# Setup rpm-ostree-countme.timer according to presets %post +%systemd_post rpm-ostree-countme.timer # Only enable on rpm-ostree based systems and manually force unit enablement to # explicitly ignore presets for this security fix if [ -e /run/ostree-booted ]; then ln -snf /usr/lib/systemd/system/rpm-ostree-fix-shadow-mode.service /usr/lib/systemd/system/multi-user.target.wants/ fi +%preun +%systemd_preun rpm-ostree-countme.timer + +%postun +%systemd_postun_with_restart rpm-ostree-countme.timer + %files -f files %doc COPYING.GPL COPYING.LGPL LICENSE README.md %files libs -f files.lib +%if 0%{?fedora} || 0%{?rhel} >= 10 +%license LICENSE.dependencies +%license cargo-vendor.txt +%endif %files devel -f files.devel %changelog +* Thu Jan 23 2025 Joseph Marrero - 2025.2-1 +- Rebase to 2025.2 + Resolves: #RHEL-68131 + * Mon Jan 20 2025 Joseph Marrero - 2025.1-1 - Rebase to 2025.1 Resolves: #RHEL-68131 diff --git a/sources b/sources index 8ebdae5..01a3bb1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rpm-ostree-2025.1.tar.xz) = 49ff51e5e94ab5d735540a52fcba657021de949e601501a58eb374f7e07faf3716a3cb758824cc88ffa6e7e2723d4d8085b92a641d5fdc7e43eb38e041ba1217 +SHA512 (rpm-ostree-2025.2.tar.xz) = 1aa52ee46f604f2bbff7e3d4bdb9d246dda2a24457cf971a5c7f5786f7c78356b0f1bada00ca7db9988e8cbfe8c943bad27ef731370c284876694030eef310be