Blob Blame History Raw
%bcond_without check

# Not interested in packaging lib
# stratisd is supposed to be daemon used through dbus
%global __cargo_is_lib() false

# We want to support dbus
%global __cargo_common_opts %{__cargo_common_opts} --features dbus_enabled

Name:           stratisd
Version:        0.5.0
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
Patch0:         32bit-fix.diff

ExclusiveArch:  %{rust_arches}

BuildRequires:  rust-packaging
BuildRequires:  asciidoc

# [dependencies]
BuildRequires:  (crate(byteorder) >= 1.0.0 with crate(byteorder) < 2.0.0)
BuildRequires:  (crate(chrono) >= 0.4.0 with crate(chrono) < 0.5.0)
BuildRequires:  (crate(clap) >= 2.0.0 with crate(clap) < 3.0.0)
BuildRequires:  (crate(crc) >= 1.0.0 with crate(crc) < 2.0.0)
BuildRequires:  (crate(dbus) >= 0.6.1 with crate(dbus) < 0.7.0)
BuildRequires:  (crate(devicemapper) >= 0.19.0 with crate(devicemapper) < 0.20.0)
BuildRequires:  (crate(env_logger) >= 0.4.0 with crate(env_logger) < 0.5.0)
BuildRequires:  (crate(error-chain) >= 0.11.0 with crate(error-chain) < 0.12.0)
BuildRequires:  (crate(libc) >= 0.2.36 with crate(libc) < 0.3.0)
BuildRequires:  (crate(libudev) >= 0.2.0 with crate(libudev) < 0.3.0)
BuildRequires:  (crate(log) >= 0.3.0 with crate(log) < 0.4.0)
BuildRequires:  (crate(macro-attr) >= 0.2.0 with crate(macro-attr) < 0.3.0)
BuildRequires:  (crate(mnt) >= 0.3.1 with crate(mnt) < 0.4.0)
BuildRequires:  (crate(nix) >= 0.10.0 with crate(nix) < 0.11.0)
BuildRequires:  (crate(rand) >= 0.4.0 with crate(rand) < 0.5.0)
BuildRequires:  (crate(serde) >= 1.0.0 with crate(serde) < 2.0.0)
BuildRequires:  (crate(serde_derive) >= 1.0.0 with crate(serde_derive) < 2.0.0)
BuildRequires:  (crate(serde_json) >= 1.0.0 with crate(serde_json) < 2.0.0)
BuildRequires:  (crate(tempdir) >= 0.3.5 with crate(tempdir) < 0.4.0)
BuildRequires:  ((crate(uuid) >= 0.5.0 with crate(uuid) < 0.6.0) with crate(uuid/serde) with crate(uuid/v4))
%if %{with check}
# [dev-dependencies]
BuildRequires:  (crate(loopdev) >= 0.2.0 with crate(loopdev) < 0.3.0)
BuildRequires:  (crate(quickcheck) >= 0.6.0 with crate(quickcheck) < 0.7.0)
%endif

Requires:       xfsprogs
Requires:       device-mapper-persistent-data

%description
%{summary}.

%prep
%autosetup -p1
%cargo_prep
# Not interested in clippy
sed -i -e "/^clippy/d" Cargo.toml

%build
%cargo_build
make stratisd.8

%install
%cargo_install
%{__install} -Dpm0644 -t %{buildroot}%{_datadir}/dbus-1/system.d stratisd.conf
%{__install} -Dpm0644 -t %{buildroot}%{_datadir}/dbus-1/system-services org.storage.stratis1.service
# Daemon should be really private
mkdir -p %{buildroot}%{_libexecdir}
mv %{buildroot}%{_bindir}/stratisd %{buildroot}%{_libexecdir}/stratisd
%{__install} -Dpm0644 -t %{buildroot}%{_mandir}/man8/ docs/stratisd.8

%if %{with check}
%check
%cargo_test -- --skip real_ --skip loop_ --skip travis_
%endif

%files
%license LICENSE
%doc README.md
%{_libexecdir}/stratisd
%{_datadir}/dbus-1/system.d/stratisd.conf
%{_datadir}/dbus-1/system-services/org.storage.stratis1.service
%{_mandir}/man8/stratisd.8.gz

%changelog
* Tue Mar 13 2018 Andy Grover <agrover@redhat.com> - 0.5.0-2
- Add stratisd manpage

* Thu Mar 08 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.5.0-1
- Update to 0.5.0

* Thu Feb 15 2018 Andy Grover <agrover@redhat.com> - 0.1.5-2
- Require packages that contain binaries that we exec: xfsprogs and
  device-mapper-persistent-data

* Sun Feb 11 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.5-1
- Update to 0.1.5

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Mon Jan 08 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.4-3
- Rebuild for rust-packaging v5

* Mon Jan 08 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.4-2
- Move binary under %%{_libexecdir}
- Add dbus service (so it is activatable)
- Fix rand's version bump

* Sun Jan 07 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.1.4-1
- Initial package