From 6f446d08fc1c49c6ee4fd26f6248bc649bd1afb089212267d6fab2f34498a26f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Thu, 20 Feb 2025 09:44:19 +0100 Subject: [PATCH] Sync from SUSE:SLFO:Main libostree revision 869e5d322e72f97a793996a26e5a6b25 --- libostree-2023.2.tar.xz | 3 - libostree-2025.1.tar.xz | 3 + libostree.changes | 224 ++++++++++++++++++++++++++++++++++++ libostree.spec | 89 +++++++------- ostree-grub2-location.patch | 8 +- 5 files changed, 275 insertions(+), 52 deletions(-) delete mode 100644 libostree-2023.2.tar.xz create mode 100644 libostree-2025.1.tar.xz diff --git a/libostree-2023.2.tar.xz b/libostree-2023.2.tar.xz deleted file mode 100644 index 119c2ac..0000000 --- a/libostree-2023.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ceb0788755a0bff5738d44543552fbf883cf71df481baa3ca7288da7a402bb85 -size 2081320 diff --git a/libostree-2025.1.tar.xz b/libostree-2025.1.tar.xz new file mode 100644 index 0000000..df6a378 --- /dev/null +++ b/libostree-2025.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2c312344fd69ae42869f9817e7eb460b8daec81256a0d48afdc4e0ec2f18351 +size 2112364 diff --git a/libostree.changes b/libostree.changes index 3cb6fd8..c59e625 100644 --- a/libostree.changes +++ b/libostree.changes @@ -1,3 +1,227 @@ +------------------------------------------------------------------- +Sun Jan 19 16:40:49 UTC 2025 - Andreas Stieger + +- Update to version 2025.1: + + Add a new --kexec flag to ostree admin upgrade which will cause + the deployment to be loaded into kexec after the upgrade + completes + + If composefs is enabled at build time, always generate a + composefs blob at deployment time + + Configuring the prepare-root config now mostly only affects the + runtime state + +------------------------------------------------------------------- +Sat Dec 21 18:40:13 UTC 2024 - Andreas Stieger + +- Update to version 2024.10: + + composefs: Ensure buffer is suitably aligned for struct + fsverity_digest + + core: Always sort incoming xattrs + + sign-ed25519: Fix error message of validate_length + + rofiles-fuse: when fuse execution fails, rofiles-fuse still + returns exit code 0 + + libostree/deploy: enable composefs by default + + documentation updates + +------------------------------------------------------------------- +Mon Dec 2 17:31:25 UTC 2024 - Andreas Stieger + +- Update to version 2024.9: + + deploy: Don't recompute verity checksums if not enabled + (performance improvement) + + prepare-root: allow sysroot.readonly=true with kernel cmdline + ro + + various bug fixes + +------------------------------------------------------------------- +Tue Oct 15 11:55:40 UTC 2024 - Dominique Leuenberger + +- Drop rcFOO symlinks (PED-266). + +------------------------------------------------------------------- +Fri Sep 27 06:01:32 UTC 2024 - Dominique Leuenberger + +- Update to version 2024.8: + + Adapt to a change in libcurl 8.10.1 that caused ostree to start + crashing. + + switchroot: Stop making /sysroot mount private. + +------------------------------------------------------------------- +Sun Jul 21 18:02:34 UTC 2024 - Andreas Stieger + +- update to 2024.7: + + bugfix for "transient-etc" users + + a new ostree.prepare-root.composefs kernel option that allows + dynamic overrides for the composefs state + + new API to directly create a composefs from an ostree commit + +------------------------------------------------------------------- +Sat May 18 15:38:13 UTC 2024 - Andreas Stieger + +- update to 2024.6: + + prepare-root: Handle non-AB aboot properly + + various bug fixes and developer visible fixes + + ostree-prepare-root.service: add OnFailureJobMode=isolate + + ostree-sysroot-deploy: check if deployments are in the same + stateroot + +------------------------------------------------------------------- +Sun Apr 14 20:24:47 UTC 2024 - Andreas Stieger + +- update to 2024.5: + + sepolicy: Fix publicity mismatch for + ostree_sepolicy_host_enabled + + main: Ignore SIGPIPE when printing version + + otcore: Drop config load print + + bootloader/grub2: Don't do anything if we have static configs + + sysroot: Turn on bootloader-naming-2 by default + + kargs: parse spaces in kargs input and keep quotes + + Ensure boot directory is open before accessing it for early + pruning + + checkout: Always replace existing content with overlay mode + +------------------------------------------------------------------- +Sat Mar 2 19:23:07 UTC 2024 - Andreas Stieger + +- Update to version 2024.4: + + Support for a new root.transient flag that makes / an overlayfs + that is persistent across reboots but not across upgrades + + Expand ostree admin pin command + + root.transient switches to tmpfs + + Composefs recommended to be enabled via + ostree-prepare-root.conf and not the ex-integrity.composefs + + Finalize "deployment finalization locking" feature + + Add ostree admin post-copy + + Speed-up through reflinks + + improvements to system root and bootloader + + Bug fixes, documentation updates, and developer visible fixes + +------------------------------------------------------------------- +Fri Oct 27 19:02:18 UTC 2023 - Andreas Stieger + +- Update to version 2023.7: + + support for a "transient etc" + + HTTP layer now retries requests by default + + a longstanding bug was fixed where ostree would still try to + fetch "loose" objects even when we were doing a delta pull + + Fix variety of clang-analyzer fixes (some false positives, some + real memory leaks, etc) + +------------------------------------------------------------------- +Tue Aug 29 09:53:25 UTC 2023 - Antonio Larrosa + +- Use OpenSSL for ed25519 signatures which automatically uses + OpenSSL for SHA256 too (which is faster according to upstream and + libcurl already links with openssl). Also, openssl is fips + certified unlike libsodium. + +------------------------------------------------------------------- +Fri Aug 25 23:21:50 UTC 2023 - Luciano Santos + +- Update to version 2023.6: + + Signing with ed25519 can now be backed by openssl. + + composefs changes: + - Now enabled at build time (but disabled at runtime) by + default. + - composefs now supports signature verification. Note that + composefs continues to be classified as experimental. + - Configuration format has changed. The old ot-composefs kernel + argument is no longer honored in favor of a configuration + file that should be present in the initramfs. + + ostree-prepare-root other changes: + - A new configuration file in the initramfs is honored: + /etc/ostree/prepare-root.conf. + - This configuration file can also specify the readonly-sysroot + default, which is now recommended. + - The sysroot.readonly flag can now also be configured from + here, and this is recommended. + + ostree admin set-default: A long-overdue CLI verb to change the + default deployment for the next boot. + + sysroot other bugfixes and changes: + - It is now supported to have /usr/etc with an empty /etc. This + is preparatory for supporting a transient /etc. + - Finally fix the global sync timeout at shutdown. + - 'ostree admin deploy' now honors --stateroot as that term is + prefered over --os. + + trivial-httpd: The remnants of the deprecated 'ostree + trivial-httpd' CLI are now completely gone. + +------------------------------------------------------------------- +Fri Jul 7 23:03:35 UTC 2023 - Luciano Santos + +- Update to version 2023.5: + + This is a bugfix release for the recent 2023.4. + + Key bugs fixed: + - Revert "fetcher: Always open tmpfiles in repo location". + - Fix return value of generator on non-ostree systems. + + Other changes: + - lib/deploy: Use off_t not __off_t. + - prepare-root: Adjust to composefs mount struct changes. + +- Changes from version 2023.4: + + Notable bugfixe: fix ostree deployment on 64-bit inode fs + (boo#1214708). + + New Feauture: Composefs. + + HTTP/pull fixes: + - ostree-fetcher-curl: explicitly use HTTP1.1 when HTTP2 is + disabled. + - Increase the metadata size limit to 128MB. + - fetcher: Always open tmpfiles in repo location. + + Other changes: + - lib/deploy: Use fallocate for early prune space check. + - prepare-root: Move sysroot.tmp creation earlier. + - lib/deploy: Disambiguate error messages for early prune space + check. + - lib/deploy: skip fallocate call when requested size is 0. + - test-concurrency: Don't lower timeout. + - pull: Add error prefixing for corrupt checksums. + - Add more error prefixing when parsing commit objects. + + Drop upstream merged 0001-commit-fix-ostree-deployment-on-64-bit-inode-fs.patch + +- Changes from version 2023.3: + + Many fixes and improvements. + + treegen: Require at least one mutation. + + rust: Bump MSRV to 1.64. + + fetcher/soup3: Rewrite without threads. + + fetcher: add libsoup3 backend. + + lib/sysroot-cleanup: Convert bootdir listing to dfd-relative. + + lib/sysroot-cleanup: Make some static utility functions global. + + libotutil: add utility functions for calculating directory + size. + + lib/sysroot-deploy: Nuke finalize-failure.stamp on successful + finalization. + + lib/sysroot-deploy: Add experimental support for automatic + early prune. + +- Define libversion and soversion and replace hard coded values + with them to ease package maintenance. +- Add pkgconfig(libsoup-3.0) >= 3.0.0 build requirement and pass + --with-soup3 to configure. Libcurl needs it for tests and for the + trivial-httpd binary, also we've been waiting for upstream to + port to Soup 3, in order to re-enable it. +- Pass --with-composefs to configure, under the condition of + building with composefs, while defining %bcond_with composefs + (not enabled, by default) for now. +- Switch fuse with fuse3 pkgconfig() module BuildRequires, because + Fuse 3 is preffered over Fuse 2. +- Drop --with-gjs option passed to configure. It's not recognized + anymore, and configure script looks for gjs binary instead, + acting accordingly. +- Add %ghost /run/ostree to the main package files directive. This + directory is created via %{_tmpfilesdir}/ostree-tmpfiles.conf. +- Mark /etc/grub.d/*ostree and /etc/dracut.conf.d/ostree.conf with + %config to instruct RPM those are config files. +- Make the grub2 sub-package as noarch, since it doesn't have any + binaries. +- Refresh ostree-grub2-location.patch with Quilt. + +------------------------------------------------------------------- +Mon Jul 6 16:55:15 UTC 2023 - Antonio Larrosa + +- Add patch from upstream to fix corrupted files when using a large + fs with 64-bit inodes (boo#1214708): + * 0001-commit-fix-ostree-deployment-on-64-bit-inode-fs.patch + ------------------------------------------------------------------- Fri May 12 07:07:37 UTC 2023 - Frederic Crozat diff --git a/libostree.spec b/libostree.spec index 9ace6bc..7a551ad 100644 --- a/libostree.spec +++ b/libostree.spec @@ -1,7 +1,8 @@ # # spec file for package libostree # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 Andreas Stieger # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,10 +18,13 @@ %define _dracutmodulesdir %(pkg-config --variable dracutmodulesdir dracut) -%bcond_without ed25519 -%bcond_with tests +%define libversion 1 +%define soversion 1 +%bcond_with composefs +%bcond_without ed25519 +%bcond_with tests Name: libostree -Version: 2023.2 +Version: 2025.1 Release: 0 Summary: Git for operating system binaries License: LGPL-2.0-or-later @@ -30,9 +34,6 @@ Source: https://github.com/ostreedev/ostree/releases/download/v%{version # PATCH-FIX-OPENSUSE ostree-grub2-location.patch boo#974714 dimstar@opensuse.org -- Fix path to grub-mkconfig_lib Patch0: ostree-grub2-location.patch BuildRequires: bison -%if %{with tests} -BuildRequires: gjs -%endif BuildRequires: gnome-common BuildRequires: gobject-introspection-devel >= 1.34.0 BuildRequires: libattr-devel @@ -40,21 +41,26 @@ BuildRequires: libcap-devel BuildRequires: pkgconfig BuildRequires: pkgconfig(dracut) BuildRequires: pkgconfig(e2p) -BuildRequires: pkgconfig(fuse) >= 2.9.2 +BuildRequires: pkgconfig(fuse3) >= 3.1.1 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.66.0 BuildRequires: pkgconfig(gpgme) >= 1.8.0 BuildRequires: pkgconfig(libarchive) >= 2.8.0 BuildRequires: pkgconfig(libcurl) >= 7.29.0 BuildRequires: pkgconfig(liblzma) >= 5.0.5 +# Using libcurl requires Soup for tests +BuildRequires: pkgconfig(libsoup-3.0) >= 3.0.0 BuildRequires: pkgconfig(libsystemd) -BuildRequires: pkgconfig(mount) >= 2-23.0 +BuildRequires: pkgconfig(mount) >= 2.23.0 BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(zlib) # Package was renamed from ostree to libostree with version 2017.2 Provides: ostree = %{version} Obsoletes: ostree < %{version} +%if %{with tests} +BuildRequires: gjs +%endif %if %{with ed25519} -BuildRequires: pkgconfig(libsodium) >= 1.0.14 +BuildRequires: pkgconfig(openssl) %endif %description @@ -65,11 +71,11 @@ is it a tool for managing full disk images. Instead, it sits between those levels, offering a blend of the advantages (and disadvantages) of both. -%package -n libostree-1-1 +%package -n libostree-%{libversion}-%{soversion} Summary: Git for operating system binaries Group: System/Libraries -%description -n libostree-1-1 +%description -n libostree-%{libversion}-%{soversion} OSTree is a tool for managing bootable, immutable, versioned filesystem trees. While it takes over some of the roles of tradtional "package managers" like dpkg and rpm, it is not a package system; nor @@ -77,11 +83,11 @@ is it a tool for managing full disk images. Instead, it sits between those levels, offering a blend of the advantages (and disadvantages) of both. -%package -n typelib-1_0-OSTree-1_0 +%package -n typelib-1_0-OSTree-%{soversion}_0 Summary: Git for operating system binaries -- GObject bindings Group: System/Libraries -%description -n typelib-1_0-OSTree-1_0 +%description -n typelib-1_0-OSTree-%{soversion}_0 OSTree is a tool for managing bootable, immutable, versioned filesystem trees. While it takes over some of the roles of tradtional "package managers" like dpkg and rpm, it is not a package system; nor @@ -96,6 +102,7 @@ Summary: GRUB2 integration for OSTree Group: System/Boot Provides: ostree-grub2 = %{version} Obsoletes: ostree-grub2 < %{version} +BuildArch: noarch %ifnarch aarch64 Requires: grub2 %else @@ -110,8 +117,8 @@ GRUB2 integration for OSTree Summary: Git for operating system binaries -- Development files # Package was renamed from ostree to libostree with version 2017.2 Group: Development/Languages/C and C++ -Requires: libostree-1-1 = %{version} -Requires: typelib-1_0-OSTree-1_0 = %{version} +Requires: libostree-%{libversion}-%{soversion} = %{version} +Requires: typelib-1_0-OSTree-%{soversion}_0 = %{version} Provides: ostree-devel = %{version} Obsoletes: ostree-devel < %{version} @@ -128,17 +135,16 @@ of both. %build %configure \ +%if %{with composefs} + --with-composefs \ +%endif --with-dracut \ %if %{with ed25519} - --with-ed25519-libsodium \ + --with-openssl \ %endif -%if %{with tests} - --with-gjs=yes \ -%else - --with-gjs=no \ -%endif - --with-curl=yes \ - --with-soup=no \ + --with-curl \ + --without-soup \ + --with-soup3 \ %{nil} %make_build @@ -146,12 +152,7 @@ of both. %make_install find %{buildroot} -type f -name "*.la" -delete -print -# openSUSE rcFOO links -mkdir -p %{buildroot}%{_sbindir} -ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcostree-prepare-root -ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcostree-remount - -%ldconfig_scriptlets -n libostree-1-1 +%ldconfig_scriptlets -n libostree-%{libversion}-%{soversion} %pre %service_add_pre ostree-prepare-root.service @@ -192,6 +193,7 @@ ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcostree-remount %{_mandir}/man1/ostree*.1%{?ext_man} %{_mandir}/man5/ostree.repo*.5%{?ext_man} %{_mandir}/man1/rofiles-fuse.1%{?ext_man} +%{_mandir}/man8/ostree-state-overlay@.service.8%{?ext_man} %{_bindir}/ostree %{_bindir}/rofiles-fuse %{_datadir}/bash-completion/completions/ostree @@ -199,8 +201,6 @@ ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcostree-remount %dir %{_libexecdir}/libostree %{_prefix}/lib/ostree/ostree-prepare-root %{_prefix}/lib/ostree/ostree-remount -# Lost in move to curl, needs soup, but upstream have not yet ported to soup3 -#%%{_libexecdir}/libostree/ostree-trivial-httpd %{_dracutmodulesdir}/98ostree/ %{_unitdir}/ostree-prepare-root.service %{_unitdir}/ostree-remount.service @@ -208,37 +208,38 @@ ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcostree-remount %{_unitdir}/ostree-finalize-staged-hold.service %{_unitdir}/ostree-finalize-staged.path %{_unitdir}/ostree-boot-complete.service +%{_unitdir}/ostree-state-overlay@.service %dir %{_sysconfdir}/dracut.conf.d -%{_sysconfdir}/dracut.conf.d/ostree.conf +%config %{_sysconfdir}/dracut.conf.d/ostree.conf %{_datadir}/ostree/ -%{_sbindir}/rcostree-prepare-root -%{_sbindir}/rcostree-remount %{_systemdgeneratordir}/ostree-system-generator %dir %{_tmpfilesdir} %{_tmpfilesdir}/ostree-tmpfiles.conf +# /run/ostree is generated though ostree-tmpfiles.conf +%ghost /run/ostree %exclude %{_sysconfdir}/grub.d/*ostree %exclude %{_libexecdir}/libostree/grub2* -%files -n libostree-1-1 +%files -n libostree-%{libversion}-%{soversion} %license COPYING -%{_libdir}/libostree-1.so.* +%{_libdir}/libostree-%{libversion}.so.%{soversion}* -%files -n typelib-1_0-OSTree-1_0 +%files -n typelib-1_0-OSTree-%{soversion}_0 %license COPYING -%{_libdir}/girepository-1.0/OSTree-1.0.typelib +%{_libdir}/girepository-1.0/OSTree-%{soversion}.0.typelib %files devel %license COPYING -%{_includedir}/ostree-1/ -%{_libdir}/libostree-1.so -%{_libdir}/pkgconfig/ostree-1.pc -%{_datadir}/gir-1.0/OSTree-1.0.gir +%{_includedir}/ostree-%{libversion}/ +%{_libdir}/libostree-%{libversion}.so +%{_libdir}/pkgconfig/ostree-%{libversion}.pc +%{_datadir}/gir-1.0/OSTree-%{soversion}.0.gir %ifnarch s390 s390x %{arm} %files grub2 %license COPYING %dir %{_sysconfdir}/grub.d/ -%{_sysconfdir}/grub.d/*ostree +%config %{_sysconfdir}/grub.d/*ostree %{_libexecdir}/libostree/grub2* %endif diff --git a/ostree-grub2-location.patch b/ostree-grub2-location.patch index b1443f1..daa03dd 100644 --- a/ostree-grub2-location.patch +++ b/ostree-grub2-location.patch @@ -1,8 +1,6 @@ -Index: libostree-2018.8/src/boot/grub2/grub2-15_ostree -=================================================================== ---- libostree-2018.8.orig/src/boot/grub2/grub2-15_ostree -+++ libostree-2018.8/src/boot/grub2/grub2-15_ostree -@@ -39,7 +39,7 @@ set -e +--- a/src/boot/grub2/grub2-15_ostree ++++ b/src/boot/grub2/grub2-15_ostree +@@ -47,7 +47,7 @@ set -e # it's a lot better than reimplementing the config-generating bits of # OSTree in shell script.