# Generated by rust2rpm 25 %bcond_without check Name: bpfman Version: 0.5.4 Release: %autorelease Summary: EBPF Program Manager # License tag must be an "AND" connected list of all licenses for statically linked components License: %{shrink: Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND OpenSSL AND Unicode-DFS-2016 AND Zlib AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT AND BSD-3-Clause) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)} # LICENSE.dependencies contains a full license breakdown URL: https://bpfman.io Source0: https://github.com/bpfman/bpfman/archive/refs/tags/v%{version}.tar.gz # References to code related to the p434 curve have been removed from the vendored sources in Source1 Source1: https://dmellado.fedorapeople.org/bpfman/bpfman-%{version}-vendor.tar.xz BuildRequires: cargo-rpm-macros >= 25 BuildRequires: systemd-rpm-macros # dependency for the bundled openssl-sys crate BuildRequires: openssl-devel # dependency for the bundled libz-sys crate BuildRequires: pkgconfig(zlib) # dependency for the bundled cc crate BuildRequires: gcc %global _description %{expand: bpfman operates as an eBPF manager, focusing on simplifying the deployment and administration of eBPF programs.} %description %{_description} %prep %autosetup -n bpfman-%{version} -p1 -a1 # Source1 is vendored dependencies tar -xf %{SOURCE1} -C vendor/ # License patches on the vendored directory upsets cargo when it tries to verify checksums in those files. # If we just truncate that file list, cargo won't have anything to complain about. find vendor -name .cargo-checksum.json \ -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' # Sometimes Rust sources start with #![...] attributes, and "smart" editors think # it's a shebang and make them executable. Then brp-mangle-shebangs gets upset... find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+' # Patch Cargo.toml for 'ring' to fix the license metadata sed -i 's/license-file = "LICENSE"/license = "ISC AND MIT AND OpenSSL"/' vendor/ring-0.17.8/Cargo.toml %cargo_prep -v vendor %build %cargo_build %{cargo_license_summary} %{cargo_license} > LICENSE.dependencies %{cargo_vendor_manifest} %install install -Dpm 0755 \ -t %{buildroot}%{_sbindir} \ ./target/release/bpfman install -Dpm 0755 \ -t %{buildroot}%{_sbindir} \ ./target/release/bpfman-ns install -Dpm 0755 \ -t %{buildroot}%{_sbindir} \ ./target/release/bpfman-rpc install -Dpm 644 \ -t %{buildroot}%{_unitdir} \ ./scripts/bpfman.socket install -Dpm 644 \ -t %{buildroot}%{_unitdir} \ ./scripts/bpfman.service %post %systemd_post bpfman.service %preun %systemd_preun bpfman.service %postun %systemd_postun_with_restart bpfman.service %files %license LICENSE-APACHE %license LICENSE.dependencies %license cargo-vendor.txt %doc README.md %{_sbindir}/bpfman %{_sbindir}/bpfman-ns %{_sbindir}/bpfman-rpc %{_unitdir}/bpfman.socket %{_unitdir}/bpfman.service %if %{with check} %check # Skip image_pull_* tests as require Internet to pull images from a registry %cargo_test -- -- --skip image_pull_ %endif %changelog %autochangelog