%global _build_id_links none %global debug_package %{nil} %undefine source_date_epoch_from_changelog %global upstream_version 0.3.5 %global software_name hid2pcsc Name: %{software_name} Version: %{upstream_version} Release: 1%{?dist} Summary: PC/SC IFD handler for proprietary HID smart card readers License: MIT URL: https://git.sudolife.dev:8443/eos/hid2pcsc # Source0 unpacks to hid2pcsc-%%{upstream_version}/ (archive prefix set by # the vendoring workflow). Same filename/layout as the Debian orig tarball. Source0: %{software_name}_%{upstream_version}.orig.tar.gz # Vendored crates (Debian orig-vendor component: contents of vendor/ only). Source1: %{software_name}_%{upstream_version}.orig-vendor.tar.gz BuildRequires: tar, rust >= 1.78.0, cargo >= 1.78.0, gcc, pkgconfig, pcsc-lite-devel # %%{_udevrulesdir}; not in the minimal mock/COPR buildroot (0.2.1 failed # there with "File must begin with /"). BuildRequires: systemd-rpm-macros # pcscd loads libhid2pcsc.so as a USB hotplug driver; no extra service. Requires: pcsc-lite %description hid2pcsc is a PC/SC IFD handler for proprietary USB-HID smart card readers (DeCard T10, 0471:a112/a120; Huada HD-100, 072f:90d5). pcscd loads it as a USB hotplug driver and creates one reader per attached device, each with a contact and a contactless slot; no extra daemon runs. %prep %autosetup -p1 -n %{software_name}-%{upstream_version} # Use vendored crates to minimize network access during build. mkdir -p vendor tar -xf %{SOURCE1} -C vendor if [ ! -d vendor ]; then echo "ERROR: vendor/ directory not found." >&2 exit 1 fi %build export CARGO_HOME="$PWD/.cargo-home" export RUSTFLAGS="-C link-arg=-Wl,--as-needed" cargo build --release --frozen --offline %global usbdropdir %(pkg-config --variable=usbdropdir libpcsclite) %install sh dist/install-bundle.sh %{buildroot} %{usbdropdir} %{_udevrulesdir} %{_bindir} %post udevadm control --reload >/dev/null 2>&1 || : %postun udevadm control --reload >/dev/null 2>&1 || : %files %license LICENSE %doc README.md %{usbdropdir}/ifd-%{software_name}.bundle %{_udevrulesdir}/70-%{software_name}.rules %{_bindir}/%{software_name} %changelog