diff --git a/pkgs/by-name/ra/rathole/0001-no-more-vergen.patch b/pkgs/by-name/ra/rathole/0001-no-more-vergen.patch new file mode 100644 index 000000000000..9e6285cfb487 --- /dev/null +++ b/pkgs/by-name/ra/rathole/0001-no-more-vergen.patch @@ -0,0 +1,22 @@ +diff --git a/Cargo.toml b/Cargo.toml +index e7a944e..e6bae43 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -7,7 +7,6 @@ description = "A reverse proxy for NAT traversal" + license = "Apache-2.0" + repository = "https://github.com/rapiz1/rathole" + readme = "README.md" +-build = "build.rs" + include = ["src/**/*", "LICENSE", "README.md", "build.rs"] + + [features] +@@ -130,9 +129,4 @@ p12 = { version = "0.6.3", optional = true } + openssl = { version = "0.10", features = ["vendored"], optional = true } + + [build-dependencies] +-vergen = { version = "7.4.2", default-features = false, features = [ +- "build", +- "git", +- "cargo", +-] } + anyhow = "1.0" diff --git a/pkgs/by-name/ra/rathole/package.nix b/pkgs/by-name/ra/rathole/package.nix index e58c023ee090..e7834483e8bc 100644 --- a/pkgs/by-name/ra/rathole/package.nix +++ b/pkgs/by-name/ra/rathole/package.nix @@ -3,13 +3,13 @@ stdenv, fetchFromGitHub, rustPlatform, + rustc, pkg-config, openssl, nixosTests, - darwin, }: -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage rec { pname = "rathole"; version = "0.5.0-unstable-2024-06-06"; @@ -20,19 +20,48 @@ rustPlatform.buildRustPackage { hash = "sha256-C0/G4JOZ4pTAvcKZhRHsGvlLlwAyWBQ0rMScLvaLSuA="; }; + # Get rid of git dependency on vergen. No reason to require libgit2-sys as + # well as libz-sys. Vendored c libraries for libgit2/zlib fail to build on + # darwin and using libs from nixpkgs seems excessive. + patches = [ + ./0001-no-more-vergen.patch + ]; + + # Build script is only needed for vergen and does nothing when not in a git + # repo. + postPatch = '' + rm build.rs + ''; + useFetchCargoVendor = true; cargoHash = "sha256-IgPDe8kuWzJ6nF2DceUbN7fw0eGkoYhu1IGMdlSMFos="; nativeBuildInputs = [ pkg-config ]; - buildInputs = - [ - openssl - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [ CoreServices ]); + buildInputs = [ + openssl + ]; __darwinAllowLocalNetworking = true; + nativeCheckInputs = [ openssl ]; + preCheck = '' + patchShebangs examples/tls/create_self_signed_cert.sh + (cd examples/tls && chmod +x create_self_signed_cert.sh && ./create_self_signed_cert.sh) + ''; + + env = { + VERGEN_BUILD_TIMESTAMP = "0"; + VERGEN_BUILD_SEMVER = version; + VERGEN_GIT_COMMIT_TIMESTAMP = "0"; + VERGEN_GIT_BRANCH = "main"; + VERGEN_RUSTC_SEMVER = rustc.version; + VERGEN_RUSTC_CHANNEL = "stable"; + VERGEN_CARGO_PROFILE = "release"; + VERGEN_CARGO_FEATURES = ""; + VERGEN_CARGO_TARGET_TRIPLE = "${stdenv.hostPlatform.rust.rustcTarget}"; + }; + passthru.tests = { inherit (nixosTests) rathole; };