%bcond_without check %include %{_sourcedir}/vendor-licenses.inc %global soversion 0 Name: upki Version: 0.1.0 Release: 1.20260423122629508173.main.24.g34913c4%{?dist} Summary: PKI certificate revocation checker License: %{shrink: (Apache-2.0 OR MIT) AND %{vendor_licenses}} URL: https://github.com/rustls/upki # Base and build sources Source0: upki-0.1.0.tar.gz Source1: upki-vendor.tar.xz # upki configs Source2: config.toml Source3: upki-fetch.sysusers.conf Source4: upki-fetch.tmpfiles.conf Source5: upki-fetch.service Source6: upki-fetch.timer # upki-mirror configs Source7: upki-mirror.service Source8: upki-mirror.timer Source9: upki-mirror.sysusers.conf Source10: upki-mirror.tmpfiles.conf # Documentation Source11: upki.1 Source12: upki-mirror.8 Source13: vendor-licenses.inc %if 0%{?rhel} BuildRequires: rust-toolset %else BuildRequires: cargo-rpm-macros %endif BuildRequires: systemd-rpm-macros %description upki is a PKI certificate revocation checker. It uses CRLite to efficiently verify the revocation status of certificates without requiring online OCSP queries. %package mirror Summary: CRLite mirror population tool for upki # The mirror tool also uses components covered by the vendor licenses License: %{shrink: (Apache-2.0 OR MIT) AND %{vendor_licenses}} %{?systemd_requires} %description mirror This package provides the upki-mirror tool, which is used to populate a local CRLite mirror from Mozilla's CCADB. %package libs Summary: Libraries for upki %description libs This package provides the shared library for upki. %package devel Summary: Development files for upki Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel This package provides the C headers for the upki library. %prep # Extracted folder is repo-name - tag-name, and -a 1 extracts vendor.tar.xz logic %autosetup -n upki-0.1.0 -p1 -a 1 %cargo_prep -v vendor %build # Set SONAME for the shared library to ensure ABI versioning export RUSTFLAGS="-Clink-arg=-Wl,-soname,libupki.so.%{soversion}" %cargo_build # Ensure we generate the license dependencies file %{cargo_license_summary} %{cargo_license} > LICENSE.dependencies %install # Install the binaries install -Dpm 0755 %{_builddir}/%{name}-%{version}/target/rpm/upki %{buildroot}%{_bindir}/upki install -Dpm 0755 %{_builddir}/%{name}-%{version}/target/rpm/upki-mirror %{buildroot}%{_bindir}/upki-mirror # Install the library install -Dpm 0755 %{_builddir}/%{name}-%{version}/target/rpm/libupki.so %{buildroot}%{_libdir}/libupki.so.%{version} ln -s libupki.so.%{version} %{buildroot}%{_libdir}/libupki.so.%{soversion} ln -s libupki.so.%{version} %{buildroot}%{_libdir}/libupki.so # Install the header install -Dpm 0644 upki-ffi/upki.h %{buildroot}%{_includedir}/upki.h # Install the configs install -Dpm 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/xdg/upki/config.toml # Install the systemd units install -Dpm 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/upki-fetch.conf install -Dpm 0644 %{SOURCE4} %{buildroot}%{_tmpfilesdir}/upki-fetch.conf install -Dpm 0644 %{SOURCE5} %{buildroot}%{_unitdir}/upki-fetch.service install -Dpm 0644 %{SOURCE6} %{buildroot}%{_unitdir}/upki-fetch.timer install -Dpm 0644 %{SOURCE7} %{buildroot}%{_unitdir}/upki-mirror.service install -Dpm 0644 %{SOURCE8} %{buildroot}%{_unitdir}/upki-mirror.timer install -Dpm 0644 %{SOURCE9} %{buildroot}%{_sysusersdir}/upki-mirror.conf install -Dpm 0644 %{SOURCE10} %{buildroot}%{_tmpfilesdir}/upki-mirror.conf # Install the manpages install -Dpm 0644 %{SOURCE11} %{buildroot}%{_mandir}/man1/upki.1 install -Dpm 0644 %{SOURCE12} %{buildroot}%{_mandir}/man8/upki-mirror.8 %post mirror %systemd_post upki-mirror.service upki-mirror.timer %preun mirror %systemd_preun upki-mirror.service upki-mirror.timer %postun mirror %systemd_postun_with_restart upki-mirror.service upki-mirror.timer %files %license LICENSE-APACHE LICENSE-MIT LICENSE.dependencies %doc README.md %{_mandir}/man1/upki.1* %{_bindir}/upki %dir %{_sysconfdir}/xdg/upki %config(noreplace) %{_sysconfdir}/xdg/upki/config.toml %{_sysusersdir}/upki-fetch.conf %{_tmpfilesdir}/upki-fetch.conf %{_unitdir}/upki-fetch.service %{_unitdir}/upki-fetch.timer %files mirror %license LICENSE-APACHE LICENSE-MIT LICENSE.dependencies %{_mandir}/man8/upki-mirror.8* %{_bindir}/upki-mirror %{_sysusersdir}/upki-mirror.conf %{_tmpfilesdir}/upki-mirror.conf %{_unitdir}/upki-mirror.service %{_unitdir}/upki-mirror.timer %files libs %license LICENSE-APACHE LICENSE-MIT LICENSE.dependencies %{_libdir}/libupki.so.%{soversion} %{_libdir}/libupki.so.%{version} %files devel %{_libdir}/libupki.so %{_includedir}/upki.h %changelog %autochangelog