rathole: get rid of vergen

Fixes build on darwin. Drops legacy darwin SDK pattern (which is a no-op).
This commit is contained in:
Sergei Zimmerman
2025-02-21 20:18:29 +00:00
parent 3218ced8b8
commit c2dd438510
2 changed files with 52 additions and 7 deletions
@@ -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"
+30 -7
View File
@@ -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,16 +20,27 @@ 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;
@@ -39,6 +50,18 @@ rustPlatform.buildRustPackage {
(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;
};