Sync from SUSE:SLFO:Main libostree revision 869e5d322e72f97a793996a26e5a6b25

This commit is contained in:
Adrian Schröter 2025-02-20 09:44:19 +01:00
parent e922315ff5
commit 6f446d08fc
5 changed files with 275 additions and 52 deletions

BIN
libostree-2023.2.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
libostree-2025.1.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,227 @@
-------------------------------------------------------------------
Sun Jan 19 16:40:49 UTC 2025 - Andreas Stieger <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <dimstar@opensuse.org>
- Drop rcFOO symlinks (PED-266).
-------------------------------------------------------------------
Fri Sep 27 06:01:32 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- 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 <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <andreas.stieger@gmx.de>
- 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 <alarrosa@suse.com>
- 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 <luc14n0@opensuse.org>
- 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 <luc14n0@opensuse.org>
- 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 <alarrosa@suse.com>
- 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 <fcrozat@suse.com>

View File

@ -1,7 +1,8 @@
#
# spec file for package libostree
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# 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)
%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

View File

@ -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.