v2ray: simplify nix

This commit is contained in:
Serval 2020-09-08 03:23:12 +08:00
parent 4ac99e76bc
commit 32940aeec4
No known key found for this signature in database
GPG key ID: 4A2AAAA382F8294C
2 changed files with 55 additions and 60 deletions

View file

@ -1,8 +1,8 @@
{ callPackage, fetchFromGitHub, fetchurl
{ lib, fetchFromGitHub, fetchurl, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests
, assetOverrides ? {}
, ... } @ args:
}:
callPackage ./generic.nix (rec {
let
version = "4.27.5";
src = fetchFromGitHub {
@ -35,4 +35,55 @@ callPackage ./generic.nix (rec {
} // assetOverrides;
} // args)
assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
inherit name path;
}) assets);
core = buildGoModule rec {
pname = "v2ray-core";
inherit version src;
inherit vendorSha256;
doCheck = false;
buildPhase = ''
runHook preBuild
go build -o v2ray v2ray.com/core/main
go build -o v2ctl v2ray.com/core/infra/control/main
runHook postBuild
'';
installPhase = ''
install -Dm755 v2ray v2ctl -t $out/bin
'';
};
in runCommand "v2ray-${version}" {
inherit version;
buildInputs = [ assetsDrv core ];
nativeBuildInputs = [ makeWrapper ];
meta = {
homepage = "https://www.v2ray.com/en/index.html";
description = "A platform for building proxies to bypass network restrictions";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ servalcatty ];
};
passthru = {
updateScript = ./update.sh;
tests = {
simple-vmess-proxy-test = nixosTests.v2ray;
};
};
} ''
for file in ${core}/bin/*; do
makeWrapper "$file" "$out/bin/$(basename "$file")" \
--set-default V2RAY_LOCATION_ASSET ${assetsDrv}
done
''

View file

@ -1,56 +0,0 @@
{ lib, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests
# Version specific args
, version, src, assets, vendorSha256
, ... }:
let
assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
inherit name path;
}) assets);
core = buildGoModule rec {
pname = "v2ray-core";
inherit version src;
inherit vendorSha256;
doCheck = false;
buildPhase = ''
runHook preBuild
go build -o v2ray v2ray.com/core/main
go build -o v2ctl v2ray.com/core/infra/control/main
runHook postBuild
'';
installPhase = ''
install -Dm755 v2ray v2ctl -t $out/bin
'';
};
in runCommand "v2ray-${version}" {
inherit version;
buildInputs = [ assetsDrv core ];
nativeBuildInputs = [ makeWrapper ];
meta = {
homepage = "https://www.v2ray.com/en/index.html";
description = "A platform for building proxies to bypass network restrictions";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ servalcatty ];
};
passthru.tests = {
simple-vmess-proxy-test = nixosTests.v2ray;
};
} ''
for file in ${core}/bin/*; do
makeWrapper "$file" "$out/bin/$(basename "$file")" \
--set-default V2RAY_LOCATION_ASSET ${assetsDrv}
done
''