%global srcname heartwood %global _description %{summary}. %global debug_package %{nil} Name: radicle Version: 1.4.0 Release: %autorelease Summary: Radicle is a sovereign {code forge} built on Git License: Apache-2.0|MIT URL: https://radicle.xyz/ Source0: https://files.radicle.xyz/releases/%{version}/%{srcname}-%{version}.tar.gz Source1: %{name}-%{version}-vendor.tar.gz BuildRequires: rustc BuildRequires: cargo BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: pkgconfig BuildRequires: asciidoctor BuildRequires: openssl-devel BuildRequires: sqlite-devel BuildRequires: libgit2-devel %description %{_description} %prep # Extract source tarball manually since it doesn't have a top-level directory tar -xzf %{SOURCE0} # Extract vendor tarball for offline build tar -xzf %{SOURCE1} # Configure cargo to use vendored dependencies mkdir -p .cargo cat > .cargo/config.toml << EOF [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" EOF # Ensure vendor directory is in the right place ls -la vendor/ || echo "Vendor directory not found" %build cargo build --release --offline %install mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_mandir}/man1 # Install man pages scripts/build-man-pages.sh %{buildroot}%{_mandir}/man1 *.adoc # Install binaries from individual crates cargo install --path crates/radicle-cli --root %{buildroot}/%{_prefix} --force --offline cargo install --path crates/radicle-node --root %{buildroot}/%{_prefix} --force --offline cargo install --path crates/radicle-remote-helper --root %{buildroot}/%{_prefix} --force --offline # cleanup rm -f %{buildroot}/%{_prefix}/.crates* %files %license LICENSE-APACHE LICENSE-MIT %doc README.md CHANGELOG.md CONTRIBUTING.md %{_bindir}/rad %{_bindir}/radicle-node %{_bindir}/git-remote-rad %{_mandir}/man1/*.1* %changelog %autochangelog