%define _unpackaged_files_terminate_build 1
%def_disable check
%{!?_systemdgeneratordir: %global _systemdgeneratordir /lib/systemd/system-generators}
%define _libexecdir %_usr/libexec
%def_with tests
%def_with ed25519
%define libsoup3_ver %{get_version libsoup3.0}
%if "%(rpmvercmp %libsoup3_ver 3.0.0)" < "0"
%def_without soup3
%def_with soup
%else
%def_with soup3
%def_without soup
%endif
Name: ostree
Version: 2024.3
Release: alt3
Summary: Linux-based operating system develop/build/deploy tool
License: LGPLv2+
Group: Development/Other
Url: https://github.com/ostreedev/ostree
Vcs: https://github.com/ostreedev/ostree.git
Source: %name-%version.tar
Source1: libglnx.tar
Source2: bsdiff.tar
Source3: composefs.tar
Patch1: %name-%version.patch
Requires: libostree = %EVR
Requires: %_bindir/gpg2
BuildRequires(pre): rpm-macros-systemd rpm-build-gir
# Core requirements
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.66.0
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(libcurl) >= 7.29.0
BuildRequires: pkgconfig(libcrypto) >= 1.0.1
# The tests still require soup
BuildRequires: pkgconfig(libsoup-3.0)
BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: libattr-devel
# The tests require attr
BuildRequires: attr
# Extras
BuildRequires: pkgconfig(libarchive) >= 2.8.0
BuildRequires: pkgconfig(liblzma) >= 5.0.5
BuildRequires: pkgconfig(libselinux) >= 2.1.13
BuildRequires: pkgconfig(mount)
BuildRequires: pkgconfig(fuse)
BuildRequires: pkgconfig(e2p)
BuildRequires: libcap-devel
BuildRequires: pkgconfig(gpgme) >= 1.1.8 pkgconfig(gpg-error)
%{?_with_ed25519:BuildRequires: pkgconfig(libsodium) >= 1.0.14}
BuildRequires: pkgconfig(libsystemd) pkgconfig(systemd)
BuildRequires: /usr/bin/g-ir-scanner
BuildRequires: dracut
BuildRequires: bison
#BuildRequires: libavahi-glib-devel libgjs-devel
# For docs
BuildRequires: gtk-doc
BuildRequires: xsltproc docbook-style-xsl
%description
libostree is a shared library designed primarily for
use by higher level tools to manage host systems (e.g. rpm-ostree),
as well as container tools like flatpak and the atomic CLI.
%package grub2
Summary: GRUB2 integration for OSTree
Group: System/Configuration/Boot and Init
%ifnarch aarch64 %arm
Requires: grub2
%else
Requires: grub2-efi
%endif
Requires: %name
%description grub2
GRUB2 integration for OSTree
%package -n lib%name
Summary: Library files of %name
Group: System/Libraries
License: LGPLv2
%description -n lib%name
Library files of %name.
%package -n lib%name-devel
Summary: Library and header files of %name
Group: Development/C
License: LGPLv2
Requires: lib%name = %version-%release
%description -n lib%name-devel
Development package containing library and header files of %name.
%package -n lib%name-devel-doc
Summary: Development documentation for lib%name
Group: Development/Documentation
BuildArch: noarch
%description -n lib%name-devel-doc
This package contains development documentation for lib%name.
%prep
%setup -a1 -a2 -a3
%patch1 -p1
%ifarch %e2k
# patch against paranoid -Werror
sed -i "/-Werror=/d" configure.ac
%endif
%__subst 's|$(prefix)\(/lib/tmpfiles.d\)|\1|g' Makefile-boot.am
%build
NOCONFIGURE=1 sh -x ./autogen.sh
%configure --disable-silent-rules \
--with-selinux \
--with-curl \
%{subst_with soup3} \
%{subst_with soup} \
%{?_with_ed25519:--with-ed25519-libsodium} \
--enable-gtk-doc \
--with-builtin-grub2-mkconfig \
--without-grub2-mkconfig-path \
%{?with_tests:--enable-installed-tests=exclusive} \
--with-dracut=yesbutnoconf
# --with-dracut \
# hack to fix missed dirname declaration
#echo "#include <libgen.h>" >>config.h
%make_build
%install
%makeinstall_std
%check
%make check
# Needed to enable the service at compose time currently
%post
%systemd_post ostree-remount.service
%preun
%systemd_preun ostree-remount.service
%files
%doc COPYING README.md
#%_sysconfdir/grub.d/15_ostree
%_bindir/%name
%_bindir/rofiles-fuse
%_datadir/%name
%_datadir/bash-completion/completions/%name
#%_sysconfdir/dracut.conf.d/*
%prefix/lib/dracut/modules.d/*
%_systemdgeneratordir/ostree-system-generator
%_unitdir/ostree-*
%_tmpfilesdir/*.conf
%_prefix/lib/%name
%_man1dir/*
%_man5dir/ostree*
%_man8dir/ostree*
#%exclude %_sysconfdir/grub.d/*ostree
#%exclude %_libexecdir/lib%name/grub2*
#%files grub2
#%_sysconfdir/grub.d/*ostree
#%_libexecdir/lib%name/grub2*
%files -n lib%name
%_libdir/*.so.*
%_typelibdir/*.typelib
%files -n lib%name-devel
%_includedir/ostree-1
%_libdir/*.so
%_pkgconfigdir/*.pc
%_girdir/*.gir
%files -n lib%name-devel-doc
%_datadir/gtk-doc/html/%name
%changelog
* Tue Mar 12 2024 Alexey Shabalin <shaba@altlinux.org> 2024.3-alt3
- Build with soup3 for sisyphus, with soup2 for p10
* Mon Feb 26 2024 Ivan Pepelyaev <fl0pp5@altlinux.org> 2024.3-alt2
- add ALT Linux mounts support
* Wed Feb 21 2024 Alexey Shabalin <shaba@altlinux.org> 2024.3-alt1
- 2024.3
* Fri Jan 26 2024 Alexey Shabalin <shaba@altlinux.org> 2024.1-alt1
- 2024.1
* Tue Mar 28 2023 Ilya Kurdyukov <ilyakurdyukov@altlinux.org> 2023.2-alt1.1
- Fixed build for Elbrus
* Fri Mar 24 2023 Alexey Shabalin <shaba@altlinux.org> 2023.2-alt1
- 2023.2
* Wed Jan 11 2023 Alexey Shabalin <shaba@altlinux.org> 2022.7-alt1
- 2022.7
* Sat Jul 30 2022 Alexey Shabalin <shaba@altlinux.org> 2022.5-alt1
- 2022.5
* Wed Jun 15 2022 Alexey Shabalin <shaba@altlinux.org> 2022.4-alt1
- 2022.4
* Mon Mar 28 2022 Alexey Shabalin <shaba@altlinux.org> 2022.2-alt2
- build with ed25519 sign support (ALT#42271)
* Wed Mar 23 2022 Alexey Shabalin <shaba@altlinux.org> 2022.2-alt1
- 2022.2
* Tue Jan 11 2022 Alexey Shabalin <shaba@altlinux.org> 2022.1-alt1
- 2022.1
- define /usr/libexec as %%_libexecdir
- update BR
- add tests package
- build --with-dracut=xyesbutnoconf
- build without avahi support
* Wed Nov 24 2021 Andrey Sokolov <keremet@altlinux.org> 2021.6-alt1
- 2021.6
* Tue Oct 05 2021 Andrey Sokolov <keremet@altlinux.org> 2021.3-alt3
- mount readonly /bin, /sbin, /lib, /lib64, /libx32
* Fri Jul 30 2021 Andrey Sokolov <keremet@altlinux.org> 2021.3-alt2
- add ignition support to grub.cfg generator
* Thu Jul 22 2021 Andrey Sokolov <keremet@altlinux.org> 2021.3-alt1
- GRUB2 configuration file generation using built-in script
- set GRUB timeout to 5
* Fri Jul 09 2021 Andrey Sokolov <keremet@altlinux.org> 2021.2-alt2
- add trivial-httpd command
* Tue Jul 06 2021 Andrey Sokolov <keremet@altlinux.org> 2021.2-alt1
- 2021.2
- remove unused file import.info
* Fri Jul 02 2021 Andrey Sokolov <keremet@altlinux.org> 2020.8-alt2
- add dracut module
* Sun Jan 17 2021 Yuri N. Sedunov <aris@altlinux.org> 2020.8-alt1
- 2020.8
* Thu Jun 25 2020 Yuri N. Sedunov <aris@altlinux.org> 2020.3-alt1
- 2020.3
* Mon Dec 16 2019 Yuri N. Sedunov <aris@altlinux.org> 2019.6-alt1
- 2019.6
* Sun Nov 03 2019 Yuri N. Sedunov <aris@altlinux.org> 2019.5-alt1
- 2019.5
* Tue Apr 30 2019 Yuri N. Sedunov <aris@altlinux.org> 2019.2-alt1
- 2019.2
* Mon Jan 14 2019 Yuri N. Sedunov <aris@altlinux.org> 2019.1-alt1
- 2019.1
* Thu Nov 29 2018 Yuri N. Sedunov <aris@altlinux.org> 2018.9-alt1
- updated to v2018.9-10-g05e8c7ef
* Fri Sep 14 2018 Yuri N. Sedunov <aris@altlinux.org> 2018.8-alt1
- updated to v2018.8-7-ge4e6d85e
* Wed Aug 29 2018 Yuri N. Sedunov <aris@altlinux.org> 2018.7-alt2
- rebuilt with openssl-1.1
* Mon Jul 23 2018 Yuri N. Sedunov <aris@altlinux.org> 2018.7-alt1
- updated to v2018.7-2-g93da568
- some spec cleanup
* Fri Jun 08 2018 Vitaly Lipatov <lav@altlinux.ru> 2018.5-alt2
- enable gtk-doc build
- enable build with libcurl, openssl, selinux
* Fri Jun 08 2018 Vitaly Lipatov <lav@altlinux.ru> 2018.5-alt1
- new version (2018.5) with rpmgs script
* Sat Feb 24 2018 Vitaly Lipatov <lav@altlinux.ru> 2018.2-alt1
- new version 2018.2 (with rpmrb script)
* Wed Feb 07 2018 Vitaly Lipatov <lav@altlinux.ru> 2018.1-alt1
- new version 2018.1 (with rpmrb script)
* Sun Dec 24 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.14-alt1
- new version 2017.14 (with rpmrb script)
* Sat Dec 09 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.13-alt1
- new version 2017.13 (with rpmrb script)
* Sun Oct 08 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.12-alt1
- new version 2017.12 (with rpmrb script)
* Sat Oct 07 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.11-alt1
- new version 2017.11 (with rpmrb script)
* Sat Jul 22 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.8-alt1
- new version 2017.8 (with rpmrb script)
* Tue May 09 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.5-alt1
- new version 2017.5 (with rpmrb script)
* Wed Mar 15 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.3-alt1
- new version 2017.3 (with rpmrb script)
* Sun Jan 29 2017 Vitaly Lipatov <lav@altlinux.ru> 2017.1-alt1
- new version 2017.1 (with rpmrb script)
* Tue Jan 03 2017 Vitaly Lipatov <lav@altlinux.ru> 2016.15-alt1
- new version 2016.15 (with rpmrb script)
* Mon Dec 05 2016 Vitaly Lipatov <lav@altlinux.ru> 2016.12-alt1
- new version 2016.12 (with rpmrb script)
* Sat Sep 24 2016 Vitaly Lipatov <lav@altlinux.ru> 2016.10-alt1
- new version 2016.10 (with rpmrb script)
* Sat Sep 24 2016 Vitaly Lipatov <lav@altlinux.ru> 2016.8-alt1
- new version (2016.8) with rpmgs script
* Fri Apr 26 2013 Igor Vlasenko <viy@altlinux.ru> 2013.2-alt1_1
- initial fc import