Blob Blame History Raw
# Generated by rust2rpm 19
%bcond_without check

%global crate zram-generator

Name:           rust-%{crate}
Version:        1.1.2
Release:        %autorelease
Summary:        Systemd unit generator for zram swap devices

# Upstream license specification: MIT
License:        MIT
URL:            https://crates.io/crates/zram-generator
Source:         %{crates_source}
Source1:        zram-generator.conf

ExclusiveArch:  %{rust_arches}

BuildRequires:  rust-packaging

%global _description %{expand:
This is a systemd unit generator that enables swap on zram.
(With zram, there is no physical swap device. Part of the available RAM
is used to store compressed pages, essentially trading CPU cycles for memory.)

To activate, install %{crate}-defaults subpackage.}

%description %{_description}

%package     -n %{crate}
Summary:        %{summary}
# MIT
# MIT or ASL 2.0
License:        MIT
Recommends:     %{_sbindir}/zramctl

%description -n %{crate} %{_description}

%files       -n %{crate}
%license LICENSE
%doc zram-generator.conf.example
%doc README.md
%{_systemdgeneratordir}/zram-generator
%{_unitdir}/systemd-zram-setup@.service
%{_mandir}/man8/zram-generator.8*
%{_mandir}/man5/zram-generator.conf.5*

%package     -n %{crate}-defaults
Summary:        Default configuration for %{crate}
Requires:       %{crate} = %{version}-%{release}
Obsoletes:      zram < 0.4-2
BuildArch:      noarch

%description -n %{crate}-defaults
%{summary}.

%files       -n %{crate}-defaults
%{_prefix}/lib/systemd/zram-generator.conf

%package        devel
Summary:        %{summary}
BuildArch:      noarch

%description    devel %{_description}

This package contains library source intended for building other packages which
use the "%{crate}" crate.

%files          devel
%license LICENSE
%doc README.md
%{cargo_registry}/%{crate}-%{version_no_tilde}/

%package     -n %{name}+default-devel
Summary:        %{summary}
BuildArch:      noarch

%description -n %{name}+default-devel %{_description}

This package contains library source intended for building other packages
which use "default" feature of "%{crate}" crate.

%files       -n %{name}+default-devel
%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml

%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
cp -a %{S:1} .
%cargo_prep

%generate_buildrequires
%cargo_generate_buildrequires
echo '/usr/bin/make'
echo '/usr/bin/ronn'
echo 'systemd-rpm-macros'

%build
export SYSTEMD_UTIL_DIR=%{_systemd_util_dir}
export LC_ALL=C.UTF-8
%cargo_build
%make_build SYSTEMD_SYSTEM_UNIT_DIR=%{_unitdir} SYSTEMD_SYSTEM_GENERATOR_DIR=%{_systemdgeneratordir} \
  systemd-service man

%install
export SYSTEMD_UTIL_DIR=%{_systemd_util_dir}
%cargo_install

rm %{buildroot}%{_bindir}/zram-generator
%make_install SYSTEMD_SYSTEM_UNIT_DIR=%{_unitdir} SYSTEMD_SYSTEM_GENERATOR_DIR=%{_systemdgeneratordir} \
  NOBUILD=1

install -Dpm0644 -t %{buildroot}%{_prefix}/lib/systemd %{SOURCE1}

%if %{with check}
%check
export SYSTEMD_UTIL_DIR=%{_systemd_util_dir}
%cargo_test

: ==============================================================================
%{buildroot}%{_systemdgeneratordir}/zram-generator --help
: ==============================================================================
%{buildroot}%{_systemdgeneratordir}/zram-generator --help | grep -q %{_systemd_util_dir}/systemd-makefs
%endif

%changelog
%autochangelog