stratisd/SPECS/stratisd.spec

233 lines
7.9 KiB
RPMSpec

%bcond_without check
# A daemon that manages a pool of block devices to create flexible filesystems
%global __cargo_is_lib() false
%global udevdir %(pkg-config --variable=udevdir udev)
%global dracutdir %(pkg-config --variable=dracutdir dracut)
Name: stratisd
Version: 2.4.2
Release: 2%{?dist}
Summary: Daemon that manages block devices to create filesystems
License: MPLv2.0
URL: https://github.com/stratis-storage/stratisd
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: %{url}/releases/download/v%{version}/%{name}-%{version}-vendor.tar.gz
ExclusiveArch: %{rust_arches}
ExcludeArch: i686
BuildRequires: rust-toolset
BuildRequires: systemd-devel
BuildRequires: dbus-devel
BuildRequires: libblkid-devel
BuildRequires: cryptsetup-devel
BuildRequires: clang
BuildRequires: dracut
BuildRequires: %{_bindir}/a2x
Requires: xfsprogs
Requires: device-mapper-persistent-data
Requires: systemd-libs
Requires: dbus-libs
Requires: cryptsetup >= 2.3.0
Recommends: clevis-luks >= 15
%description
%{summary}.
%package dracut
Summary: Dracut modules for use with stratisd
ExclusiveArch: ${rust_arches}
Requires: stratisd
Requires: dracut >= 049-136
Requires: plymouth
%description dracut
This package contains dracut modules to be used with stratisd
to enable using Stratis filesystems as the root filesystem for
a Linux install.
%prep
%setup -q -n %{name}-%{version}
# Source1 is vendored dependencies
%cargo_prep -V 1
%build
%cargo_build --bin=stratisd
%cargo_build --bin=stratis-min --bin=stratisd-min --bin=stratis-utils --no-default-features --features min,systemd_compat
a2x -f manpage docs/stratisd.txt
%install
%{__install} -Dpm0644 -t %{buildroot}%{_datadir}/dbus-1/system.d stratisd.conf
# Daemon should be really private
mkdir -p %{buildroot}/developer_tools
%{__install} -Dpm0755 -t %{buildroot}%{_libexecdir} target/release/stratisd
%{__install} -Dpm0644 -t %{buildroot}%{_mandir}/man8 docs/stratisd.8
%{__install} -Dpm0644 -t %{buildroot}%{_udevrulesdir} udev/61-stratisd.rules
%{__install} -Dpm0644 -t %{buildroot}%{_unitdir} systemd/stratisd.service
%{__install} -Dpm0644 -t %{buildroot}%{dracutdir}/dracut.conf.d dracut/90-stratis.conf
mkdir -p %{buildroot}%{dracutdir}/modules.d/90stratis
%{__install} -Dpm0755 -t %{buildroot}%{dracutdir}/modules.d/90stratis dracut/90stratis/module-setup.sh
%{__install} -Dpm0755 -t %{buildroot}%{dracutdir}/modules.d/90stratis dracut/90stratis/stratis-rootfs-setup
%{__install} -Dpm0644 -t %{buildroot}%{dracutdir}/modules.d/90stratis dracut/90stratis/stratisd-min.service
%{__install} -Dpm0644 -t %{buildroot}%{dracutdir}/modules.d/90stratis dracut/90stratis/61-stratisd.rules
mkdir -p %{buildroot}%{dracutdir}/modules.d/90stratis-clevis
%{__install} -Dpm0755 -t %{buildroot}%{dracutdir}/modules.d/90stratis-clevis dracut/90stratis-clevis/module-setup.sh
%{__install} -Dpm0755 -t %{buildroot}%{dracutdir}/modules.d/90stratis-clevis dracut/90stratis-clevis/stratis-clevis-rootfs-setup
%{__install} -Dpm0644 -t %{buildroot}%{_unitdir} systemd/stratisd-min-postinitrd.service
%{__install} -Dpm0644 -t %{buildroot}%{_unitdir} systemd/stratis-fstab-setup\@.service
mkdir -p %{buildroot}%{udevdir}
cp target/release/stratis-utils target/release/stratis-str-cmp
%{__install} -Dpm0755 -t %{buildroot}%{udevdir} target/release/stratis-str-cmp
ln %{buildroot}%{udevdir}/stratis-str-cmp %{buildroot}%{udevdir}/stratis-base32-decode
mkdir -p %{buildroot}%{_bindir}
ln %{buildroot}%{udevdir}/stratis-str-cmp %{buildroot}%{_bindir}/stratis-predict-usage
mkdir -p %{buildroot}%{_systemdgeneratordir}
ln %{buildroot}%{udevdir}/stratis-str-cmp %{buildroot}%{_systemdgeneratordir}/stratis-clevis-setup-generator
ln %{buildroot}%{udevdir}/stratis-str-cmp %{buildroot}%{_systemdgeneratordir}/stratis-setup-generator
%{__install} -Dpm0755 -t %{buildroot}%{_bindir} target/release/stratis-min
%{__install} -Dpm0755 -t %{buildroot}%{_libexecdir} target/release/stratisd-min
%{__install} -Dpm0755 -t %{buildroot}%{_usr}/lib/systemd systemd/stratis-fstab-setup
%if %{with check}
%check
%cargo_test -- --skip real_ --skip loop_ --skip travis_
%endif
%post
%systemd_post stratisd.service
%preun
%systemd_preun stratisd.service
%postun
%systemd_postun_with_restart stratisd.service
%files
%license LICENSE
%doc README.md
%{_libexecdir}/stratisd
%dir %{_datadir}/dbus-1
%{_datadir}/dbus-1/system.d/stratisd.conf
%{_mandir}/man8/stratisd.8*
%{_unitdir}/stratisd.service
%config %{_udevrulesdir}/61-stratisd.rules
%{udevdir}/stratis-str-cmp
%{udevdir}/stratis-base32-decode
%{_bindir}/stratis-predict-usage
%{_unitdir}/stratisd-min-postinitrd.service
%{_unitdir}/stratis-fstab-setup@.service
%{_bindir}/stratis-min
%{_libexecdir}/stratisd-min
%{_usr}/lib/systemd/stratis-fstab-setup
%files dracut
%license LICENSE
%{dracutdir}/dracut.conf.d/90-stratis.conf
%{dracutdir}/modules.d/90stratis-clevis/module-setup.sh
%{dracutdir}/modules.d/90stratis-clevis/stratis-clevis-rootfs-setup
%{dracutdir}/modules.d/90stratis/61-stratisd.rules
%{dracutdir}/modules.d/90stratis/module-setup.sh
%{dracutdir}/modules.d/90stratis/stratis-rootfs-setup
%{dracutdir}/modules.d/90stratis/stratisd-min.service
%{_systemdgeneratordir}/stratis-clevis-setup-generator
%{_systemdgeneratordir}/stratis-setup-generator
%changelog
* Fri Aug 20 2021 Bryan Gurney <bgurney@redhat.com> - 2.4.2-2
- Add stratisd to requires for stratisd-dracut
- Resolves: rhbz#1995916
* Wed Jun 02 2021 Bryan Gurney <bgurney@redhat.com> - 2.4.2-1
- Update to 2.4.2
- Resolves: rhbz#1931671
- Ensure that binaries are installed with proper features enabled
- Split dracut modules out to subpackage
- Add additional dependencies in dracut module
* Wed May 12 2021 Bryan Gurney <bgurney@redhat.com> - 2.4.0-3
- Update to 2.4.0
- Resolves: rhbz#1931671
- Improve stratis by adding Multi-threading
- Resolves: rhbz#1927485
- Dump stratis configuration on demand or in debug
- Resolves: rhbz#1735475
- Add noalign option to XFS creation on MDV
- Resolves: rhbz#1908318
- Cap thinpool metadata device size at devicemapper-set limit
- Resolves: rhbz#1707461
* Tue Dec 08 2020 Dennis Keefe <dkeefe@redhat.com> - 2.3.0-2
- Update to 2.3.0
- Resolves: rhbz#1885328
- Stratis devices inhabit an existing root directory path
- Resolves: rhbz#1798244
- Add Clevis Support
- Resolves: rhbz#1868100
- Improve stratisd log levels
- Resolves: rhbz#1757976
* Sat Jun 06 2020 Dennis Keefe <dkeefe@redhat.com> - 2.1.0-1
- Update to 2.1.0
- Resolves: rhbz#1791473
- Update Stratis RPM Spec File
- Resolves: rhbz#1828487
- Support per-pool encryption of the devices that form a pool's data tier
- Resolves: rhbz#1768580
- Improve systemd unit file description
- Resolves: rhbz#1756525
* Tue Nov 12 2019 Dennis Keefe <dkeefe@redhat.com> - 2.0.0-4
- Update to 2.0.0
- Resolves: rhbz#1760906
- Fix a bug where last update time for variable length metadata was not set
properly on startup:
- Resolves: rhbz#1720399
- Specify path of PID file as "/run/stratisd.pid" instead of
"/var/run/stratisd.pid".
- Resolves: rhbz#1754649
- For a particular log entry, reduce log level from INFO to DEBUG and make the
log message more detailed:
- Resolves: rhbz#1680052
* Mon Jun 3 2019 Dennis Keefe <dkeefe@redhat.com> - 1.0.4-2
- update to 1.0.4
* Wed Jan 9 2019 Andy Grover <agrover@redhat.com> - 1.0.3-1
- Update to 1.0.3
* Tue Dec 11 2018 Andy Grover <agrover@redhat.com> - 1.0.2-1
- Update to 1.0.2
* Tue Nov 6 2018 Andy Grover <agrover@redhat.com> - 1.0.1-1
- Update to 1.0.1
* Mon Oct 8 2018 Andy Grover <agrover@redhat.com> - 1.0.0-2
- Fix for non-Dbus activation
* Tue Oct 2 2018 Andy Grover <agrover@redhat.com> - 1.0.0-1
- Update to 1.0.0
* Wed Aug 08 2018 Josh Stone <jistone@redhat.com> - 0.5.5-2
- Rebuild with rust-toolset-1.26
* Thu Aug 2 2018 Andy Grover <agrover@redhat.com> - 0.5.5-1
- Update to 0.5.5
* Fri Jul 13 2018 Andy Grover <agrover@redhat.com> - 0.5.4-1
- Update to 0.5.4
* Thu May 24 2018 Andy Grover <agrover@redhat.com> - 0.5.2-1
- Initial packaging for RHEL 8
- Update to 0.5.2