%bcond_without check %global udevdir %(pkg-config --variable=udevdir udev) %global dracutdir %(pkg-config --variable=dracutdir dracut) Name: stratisd Version: 3.7.0~202405031858git6a9f7b32 Release: D%{?dist} Summary: Daemon that manages block devices to create filesystems License: MPL-2.0 URL: https://github.com/stratis-storage/stratisd Source0: stratisd-stratisd-v3.7.0~202405031858git6a9f7b32.tar.gz Source1: stratisd-3.7.0~202405031858git6a9f7b32-vendor.tar.gz ExclusiveArch: %{rust_arches} %if 0%{?rhel} ExcludeArch: i686 %endif %if 0%{?rhel} BuildRequires: rust-toolset %else BuildRequires: rust-packaging %endif BuildRequires: rust-srpm-macros BuildRequires: systemd-devel BuildRequires: dbus-devel BuildRequires: libblkid-devel BuildRequires: cryptsetup-devel BuildRequires: clang BuildRequires: glibc-static BuildRequires: device-mapper-devel BuildRequires: %{_bindir}/a2x # Required to calculate install directories BuildRequires: systemd BuildRequires: dracut Requires: xfsprogs Requires: device-mapper-persistent-data Requires: systemd-libs Requires: dbus-libs Requires: cryptsetup-libs Requires: libblkid # stratisd does not require clevis; it can be used in restricted environments # where clevis is not available. # If using encryption via clevis, stratisd requires the instance of clevis # that it uses to have been built in an environment with cryptsetup >= 2.6.0. Recommends: clevis-luks >= 18 %if 0%{?rhel} Provides: bundled(crate(aho-corasick)) = 1.0.2 Provides: bundled(crate(anstream)) = 0.6.13 Provides: bundled(crate(anstream)) = 0.3.2 Provides: bundled(crate(anstyle)) = 1.0.6 Provides: bundled(crate(anstyle-parse)) = 0.2.1 Provides: bundled(crate(anstyle-query)) = 1.0.0 Provides: bundled(crate(assert_cmd)) = 2.0.11 Provides: bundled(crate(assert_matches)) = 1.5.0 Provides: bundled(crate(async-trait)) = 0.1.68 Provides: bundled(crate(autocfg)) = 1.1.0 Provides: bundled(crate(bit-set)) = 0.5.3 Provides: bundled(crate(bit-vec)) = 0.6.3 Provides: bundled(crate(bitflags)) = 2.4.0 Provides: bundled(crate(bitflags)) = 1.3.2 Provides: bundled(crate(block-buffer)) = 0.10.4 Provides: bundled(crate(bstr)) = 1.5.0 Provides: bundled(crate(byteorder)) = 1.4.3 Provides: bundled(crate(cc)) = 1.0.79 Provides: bundled(crate(cexpr)) = 0.6.0 Provides: bundled(crate(cfg-if)) = 1.0.0 Provides: bundled(crate(cfg-if)) = 0.1.10 Provides: bundled(crate(cfg_aliases)) = 0.1.1 Provides: bundled(crate(chrono)) = 0.4.26 Provides: bundled(crate(clang-sys)) = 1.6.1 Provides: bundled(crate(clap)) = 4.3.5 Provides: bundled(crate(clap_builder)) = 4.3.5 Provides: bundled(crate(clap_lex)) = 0.5.0 Provides: bundled(crate(colorchoice)) = 1.0.0 Provides: bundled(crate(cpufeatures)) = 0.2.8 Provides: bundled(crate(crc)) = 3.0.1 Provides: bundled(crate(crc-catalog)) = 2.2.0 Provides: bundled(crate(crypto-common)) = 0.1.6 Provides: bundled(crate(data-encoding)) = 2.4.0 Provides: bundled(crate(dbus)) = 0.9.7 Provides: bundled(crate(dbus-tree)) = 0.9.2 Provides: bundled(crate(devicemapper)) = 0.34.2 Provides: bundled(crate(devicemapper-sys)) = 0.3.0 Provides: bundled(crate(difflib)) = 0.4.0 Provides: bundled(crate(digest)) = 0.10.7 Provides: bundled(crate(doc-comment)) = 0.3.3 Provides: bundled(crate(either)) = 1.8.1 Provides: bundled(crate(env_filter)) = 0.1.0 Provides: bundled(crate(env_logger)) = 0.11.2 Provides: bundled(crate(errno)) = 0.3.1 Provides: bundled(crate(fastrand)) = 1.9.0 Provides: bundled(crate(float-cmp)) = 0.9.0 Provides: bundled(crate(futures)) = 0.3.28 Provides: bundled(crate(futures-channel)) = 0.3.28 Provides: bundled(crate(futures-core)) = 0.3.28 Provides: bundled(crate(futures-executor)) = 0.3.28 Provides: bundled(crate(futures-io)) = 0.3.28 Provides: bundled(crate(futures-macro)) = 0.3.28 Provides: bundled(crate(futures-sink)) = 0.3.28 Provides: bundled(crate(futures-task)) = 0.3.28 Provides: bundled(crate(futures-util)) = 0.3.28 Provides: bundled(crate(generic-array)) = 0.14.7 Provides: bundled(crate(getrandom)) = 0.2.10 Provides: bundled(crate(glob)) = 0.3.1 Provides: bundled(crate(humantime)) = 2.1.0 Provides: bundled(crate(iana-time-zone)) = 0.1.57 Provides: bundled(crate(io-lifetimes)) = 1.0.11 Provides: bundled(crate(iocuddle)) = 0.1.1 Provides: bundled(crate(is-terminal)) = 0.4.7 Provides: bundled(crate(itertools)) = 0.12.0 Provides: bundled(crate(itertools)) = 0.10.5 Provides: bundled(crate(itoa)) = 1.0.6 Provides: bundled(crate(lazy_static)) = 1.4.0 Provides: bundled(crate(lazycell)) = 1.3.0 Provides: bundled(crate(libblkid-rs)) = 0.3.2 Provides: bundled(crate(libblkid-rs-sys)) = 0.3.0 Provides: bundled(crate(libc)) = 0.2.153 Provides: bundled(crate(libcryptsetup-rs)) = 0.9.3 Provides: bundled(crate(libcryptsetup-rs-sys)) = 0.4.0 Provides: bundled(crate(libdbus-sys)) = 0.2.5 Provides: bundled(crate(libloading)) = 0.7.4 Provides: bundled(crate(libm)) = 0.2.7 Provides: bundled(crate(libmount)) = 0.1.15 Provides: bundled(crate(libudev)) = 0.3.0 Provides: bundled(crate(libudev-sys)) = 0.1.4 Provides: bundled(crate(linux-raw-sys)) = 0.3.8 Provides: bundled(crate(log)) = 0.4.19 Provides: bundled(crate(loopdev-3)) = 0.5.1 Provides: bundled(crate(memchr)) = 2.5.0 Provides: bundled(crate(memoffset)) = 0.9.0 Provides: bundled(crate(minimal-lexical)) = 0.2.1 Provides: bundled(crate(mio)) = 0.8.8 Provides: bundled(crate(nix)) = 0.28.0 Provides: bundled(crate(nix)) = 0.14.1 Provides: bundled(crate(nom)) = 7.1.3 Provides: bundled(crate(normalize-line-endings)) = 0.3.0 Provides: bundled(crate(num-traits)) = 0.2.15 Provides: bundled(crate(num_cpus)) = 1.15.0 Provides: bundled(crate(once_cell)) = 1.19.0 Provides: bundled(crate(pin-project-lite)) = 0.2.9 Provides: bundled(crate(pin-utils)) = 0.1.0 Provides: bundled(crate(pkg-config)) = 0.3.27 Provides: bundled(crate(ppv-lite86)) = 0.2.17 Provides: bundled(crate(predicates)) = 3.0.3 Provides: bundled(crate(predicates-core)) = 1.0.6 Provides: bundled(crate(predicates-tree)) = 1.0.9 Provides: bundled(crate(pretty-hex)) = 0.4.1 Provides: bundled(crate(proc-macro2)) = 1.0.66 Provides: bundled(crate(proptest)) = 1.2.0 Provides: bundled(crate(quick-error)) = 1.2.3 Provides: bundled(crate(quote)) = 1.0.28 Provides: bundled(crate(rand)) = 0.8.5 Provides: bundled(crate(rand_chacha)) = 0.3.1 Provides: bundled(crate(rand_core)) = 0.6.4 Provides: bundled(crate(rand_xorshift)) = 0.3.0 Provides: bundled(crate(regex)) = 1.8.4 Provides: bundled(crate(regex-automata)) = 0.1.10 Provides: bundled(crate(regex-syntax)) = 0.7.2 Provides: bundled(crate(regex-syntax)) = 0.6.29 Provides: bundled(crate(retry)) = 2.0.0 Provides: bundled(crate(rustc-hash)) = 1.1.0 Provides: bundled(crate(rustix)) = 0.37.25 Provides: bundled(crate(rusty-fork)) = 0.3.0 Provides: bundled(crate(ryu)) = 1.0.13 Provides: bundled(crate(semver)) = 1.0.17 Provides: bundled(crate(serde)) = 1.0.188 Provides: bundled(crate(serde_derive)) = 1.0.188 Provides: bundled(crate(serde_json)) = 1.0.97 Provides: bundled(crate(sha2)) = 0.10.7 Provides: bundled(crate(shlex)) = 1.3.0 Provides: bundled(crate(signal-hook-registry)) = 1.4.1 Provides: bundled(crate(slab)) = 0.4.8 Provides: bundled(crate(socket2)) = 0.4.9 Provides: bundled(crate(strsim)) = 0.10.0 Provides: bundled(crate(syn)) = 2.0.29 Provides: bundled(crate(syn)) = 1.0.109 Provides: bundled(crate(tempfile)) = 3.6.0 Provides: bundled(crate(termios)) = 0.3.3 Provides: bundled(crate(termtree)) = 0.4.1 Provides: bundled(crate(tokio)) = 1.28.2 Provides: bundled(crate(tokio-macros)) = 2.1.0 Provides: bundled(crate(typenum)) = 1.16.0 Provides: bundled(crate(unarray)) = 0.1.4 Provides: bundled(crate(unicode-ident)) = 1.0.9 Provides: bundled(crate(utf8parse)) = 0.2.1 Provides: bundled(crate(uuid)) = 1.3.4 Provides: bundled(crate(version_check)) = 0.9.4 Provides: bundled(crate(void)) = 1.0.2 Provides: bundled(crate(wait-timeout)) = 0.2.0 %endif %description %{summary}. This package should not be used in production. %package dracut Summary: Dracut modules for use with stratisd ExclusiveArch: %{rust_arches} %if 0%{?rhel} ExcludeArch: i686 %endif Requires: stratisd Requires: dracut >= 051 Requires: systemd %description dracut %{summary}. This package should not be used in production. %package tools Summary: Tools that support Stratis operation ExclusiveArch: %{rust_arches} %if 0%{?rhel} ExcludeArch: i686 %endif Requires: stratisd %description tools %{summary}. This package should not be used in production. %prep %autosetup -n stratisd-stratisd-v%{version} %{?rhel:-a1} %if 0%{?rhel} >= 10 %cargo_prep -v vendor %elif 0%{?rhel} && 0%{?rhel} < 10 %cargo_prep -V 1 %else %cargo_prep %generate_buildrequires %cargo_generate_buildrequires -f engine,dbus_enabled,min,systemd_compat,extras,udev_scripts %endif %build %if 0%{?rhel} && 0%{?rhel} < 10 %{__cargo} build %{?_smp_mflags} --release --bin=stratisd %{__cargo} build %{?_smp_mflags} --release --bin=stratis-min --bin=stratisd-min --bin=stratis-utils --no-default-features --features engine,min,systemd_compat %{__cargo} rustc %{?_smp_mflags} --release --bin=stratis-str-cmp --no-default-features --features udev_scripts -- -Ctarget-feature=+crt-static %{__cargo} rustc %{?_smp_mflags} --release --bin=stratis-base32-decode --no-default-features --features udev_scripts -- -Ctarget-feature=+crt-static %{__cargo} build %{?_smp_mflags} --release --bin=stratisd-tools --no-default-features --features engine,extras,min %else %{cargo_license -f engine,dbus_enabled,min,systemd_compat,extras,udev_scripts} > LICENSE.dependencies %{__cargo} build %{?__cargo_common_opts} --release --bin=stratisd %{__cargo} build %{?__cargo_common_opts} --release --bin=stratis-min --bin=stratisd-min --bin=stratis-utils --no-default-features --features engine,min,systemd_compat %{__cargo} rustc %{?__cargo_common_opts} --release --bin=stratis-str-cmp --no-default-features --features udev_scripts -- -Ctarget-feature=+crt-static %{__cargo} rustc %{?__cargo_common_opts} --release --bin=stratis-base32-decode --no-default-features --features udev_scripts -- -Ctarget-feature=+crt-static %{__cargo} build %{?__cargo_common_opts} --release --bin=stratisd-tools --no-default-features --features engine,extras,min %endif a2x -f manpage docs/stratisd.txt a2x -f manpage docs/stratis-dumpmetadata.txt %if 0%{?rhel} >= 10 %{cargo_vendor_manifest} %endif %install %make_install DRACUTDIR=%{dracutdir} PROFILEDIR=release %if %{with check} %check %if 0%{?rhel} && 0%{?rhel} < 10 %cargo_test --no-run %else %cargo_test -- --no-run %endif %endif %post %systemd_post stratisd.service %preun %systemd_preun stratisd.service %postun %systemd_postun_with_restart stratisd.service %files %license LICENSE %if !(0%{?rhel} && 0%{?rhel} < 10) %license LICENSE.dependencies %endif %if 0%{?rhel} >= 10 %license cargo-vendor.txt %endif %doc README.md %{_libexecdir}/stratisd %dir %{_datadir}/dbus-1 %dir %{_datadir}/dbus-1/system.d %{_datadir}/dbus-1/system.d/stratisd.conf %{_mandir}/man8/stratisd.8* %{_unitdir}/stratisd.service %{_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 %{_bindir}/stratis-decode-dm %{_systemd_util_dir}/stratis-fstab-setup %files dracut %license LICENSE %{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 %{_systemd_util_dir}/system-generators/stratis-clevis-setup-generator %{_systemd_util_dir}/system-generators/stratis-setup-generator %files tools %license LICENSE %{_bindir}/stratisd-tools %{_bindir}/stratis-dumpmetadata %{_mandir}/man8/stratis-dumpmetadata.8* %changelog * Fri Mar 22 2233 Stratis Team - 77.77.77-77 - Update to 77.77.77-77