warpgate: init at 0.17.0

This commit is contained in:
Lemon Lam
2025-08-05 12:52:51 +08:00
parent 30a713c7b3
commit 16c01fbc4d
4 changed files with 121 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
diff --git a/.cargo/config.toml b/.cargo/config.toml
index 8ab4225..8e0c812 100644
--- a/.cargo/config.toml
+++ b/.cargo/config.toml
@@ -1,8 +1,5 @@
# https://github.com/rust-lang/cargo/issues/5376#issuecomment-2163350032
[target.'cfg(all())']
rustflags = [
- "--cfg", "tokio_unstable",
- "-Zremap-cwd-prefix=/reproducible-cwd",
- "--remap-path-prefix=$HOME=/reproducible-home",
- "--remap-path-prefix=$PWD=/reproducible-pwd",
+ "--cfg", "tokio_unstable"
]

View File

@@ -0,0 +1,14 @@
diff --git a/warpgate-common/src/version.rs b/warpgate-common/src/version.rs
index 07db547..2a7967f 100644
--- a/warpgate-common/src/version.rs
+++ b/warpgate-common/src/version.rs
@@ -1,8 +1,3 @@
-use git_version::git_version;
-
pub fn warpgate_version() -> &'static str {
- git_version!(
- args = ["--tags", "--always", "--dirty=-modified"],
- fallback = "unknown"
- )
+ "v@version@"
}

View File

@@ -0,0 +1,78 @@
{
lib,
replaceVars,
fetchurl,
fetchFromGitHub,
rustPlatform,
buildNpmPackage,
openapi-generator-cli,
nixosTests,
}:
rustPlatform.buildRustPackage (
finalAttrs:
let
warpgate-web = buildNpmPackage {
pname = "${finalAttrs.pname}-web";
version = finalAttrs.version;
src = finalAttrs.src;
sourceRoot = "${finalAttrs.src.name}/warpgate-web";
patches = [ ./web-ui-package-json.patch ];
npmDepsHash = "sha256-1zCxKAH2IAKSFdL8Pyd8dJi0i8Y5mgYcWNKVpiQszc0=";
nativeBuildInputs = [ openapi-generator-cli ];
preBuild = "rm node_modules/.bin/openapi-generator-cli";
installPhase = ''
runHook preInstall
cp -R dist $out
runHook postInstall
'';
};
in
{
pname = "warpgate";
version = "0.17.0";
src = fetchFromGitHub {
owner = "warp-tech";
repo = "warpgate";
tag = "v${finalAttrs.version}";
hash = "sha256-nr0z8c0o5u4Rqs9pFUaxnasRHUhwT3qQe5+JNV+LObg=";
};
cargoHash = "sha256-pIr5Z7rp+dYOuKYnlsBdya6MqAdL0U2gUhwXvLfmM34=";
patches = [
(replaceVars ./hardcode-version.patch { inherit (finalAttrs) version; })
./disable-rust-reproducible-build.patch
];
buildFeatures = [
"postgres"
"mysql"
"sqlite"
];
preBuild = ''ln -rs "${warpgate-web}" warpgate-web/dist'';
# skip check, project included tests require python stuff and docker
doCheck = false;
passthru.tests = {
inherit (nixosTests) warpgate;
};
meta = {
description = "Smart SSH, HTTPS, MySQL and Postgres bastion that requires no additional client-side software";
homepage = "https://warpgate.null.page";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
mainProgram = "warpgate";
maintainers = with lib.maintainers; [ alemonmk ];
};
}
)

View File

@@ -0,0 +1,15 @@
diff --git a/package.json b/package.json
index 54125c3..6942dfb 100644
--- a/package.json
+++ b/package.json
@@ -12,8 +12,8 @@
"postinstall": "npm run openapi:client:gateway && npm run openapi:client:admin",
"openapi:schema:gateway": "cargo run -p warpgate-protocol-http > src/gateway/lib/openapi-schema.json",
"openapi:schema:admin": "cargo run -p warpgate-admin > src/admin/lib/openapi-schema.json",
- "openapi:client:gateway": "openapi-generator-cli generate -g typescript-fetch -i src/gateway/lib/openapi-schema.json -o src/gateway/lib/api-client -p npmName=warpgate-gateway-api-client -p useSingleRequestParameter=true && cd src/gateway/lib/api-client && npm i typescript@5 && npm i && npx tsc --target esnext --module esnext && rm -rf src tsconfig.json",
- "openapi:client:admin": "openapi-generator-cli generate -g typescript-fetch -i src/admin/lib/openapi-schema.json -o src/admin/lib/api-client -p npmName=warpgate-admin-api-client -p useSingleRequestParameter=true && cd src/admin/lib/api-client && npm i typescript@5 && npm i && npx tsc --target esnext --module esnext && rm -rf src tsconfig.json",
+ "openapi:client:gateway": "openapi-generator-cli generate -g typescript-fetch -i src/gateway/lib/openapi-schema.json -o src/gateway/lib/api-client -p npmName=warpgate-gateway-api-client -p useSingleRequestParameter=true && ln -sr node_modules src/gateway/lib/api-client/node_modules && cd src/gateway/lib/api-client && npx tsc --target esnext --module esnext && rm -rf src tsconfig.json",
+ "openapi:client:admin": "openapi-generator-cli generate -g typescript-fetch -i src/admin/lib/openapi-schema.json -o src/admin/lib/api-client -p npmName=warpgate-admin-api-client -p useSingleRequestParameter=true && ln -sr node_modules src/admin/lib/api-client/node_modules && cd src/admin/lib/api-client && npx tsc --target esnext --module esnext && rm -rf src tsconfig.json",
"openapi:tests-sdk": "openapi-generator-cli generate -g python -i src/admin/lib/openapi-schema.json -o ../tests/api_sdk",
"openapi": "npm run openapi:schema:admin && npm run openapi:schema:gateway && npm run openapi:client:admin && npm run openapi:client:gateway"
},