# Generated by rust2rpm 25 %bcond_without check Name: bpfman Version: 0.5.4 Release: %autorelease Summary: EBPF Program Manager SourceLicense: Apache-2.0 License: Apache-2.0 # LICENSE.dependencies contains a full license breakdown URL: https://bpfman.io Source0: https://github.com/bpfman/bpfman/archive/refs/tags/v%{version}.tar.gz Source1: https://dmellado.fedorapeople.org/bpfman/bpfman-%{version}-vendor.tar.xz BuildRequires: cargo-rpm-macros >= 25 BuildRequires: systemd-rpm-macros BuildRequires: openssl-devel BuildRequires: pkgconfig(zlib) 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 # Remove references to p434 curve in fiat-crypto sed -i '/^pub mod p434_64;/d' vendor/fiat-crypto-0.2.9/src/lib.rs %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 oci_utils::image_manager::tests::image_pull_failure --skip oci_utils::image_manager::tests::image_pull_and_bytecode_verify --skip oci_utils::image_manager::tests::private_image_pull_and_bytecode_verify --skip oci_utils::image_manager::tests::image_pull_policy_never_failure %endif %changelog %autochangelog