diff options
Diffstat (limited to 'pkgs/tools/networking/v2ray')
-rw-r--r-- | pkgs/tools/networking/v2ray/default.nix | 79 | ||||
-rw-r--r-- | pkgs/tools/networking/v2ray/generic.nix | 52 | ||||
-rwxr-xr-x | pkgs/tools/networking/v2ray/update.sh | 12 |
3 files changed, 71 insertions, 72 deletions
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix index ab3f5eb3ef4..8c82c379c38 100644 --- a/pkgs/tools/networking/v2ray/default.nix +++ b/pkgs/tools/networking/v2ray/default.nix @@ -1,38 +1,89 @@ -{ callPackage, fetchFromGitHub, fetchurl +{ lib, fetchFromGitHub, fetchurl, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests , assetOverrides ? {} -, ... } @ args: +}: -callPackage ./generic.nix (rec { - version = "4.26.0"; +let + version = "4.41.0"; src = fetchFromGitHub { - owner = "v2ray"; + owner = "v2fly"; repo = "v2ray-core"; rev = "v${version}"; - sha256 = "069wm0n44i4l9pnrhwf60ssld65p6gfj4wfc68hrhj4zi4jvlyds"; + sha256 = "1300gl6y94i1488ja6kic0m5fa2qxakbdc06qd0lgkg6inzbm6gz"; }; - vendorSha256 = "1520h69z0inbsrw5505cxbinqakvwcrdx3pisrwnp9lv4jsrzzsr"; + vendorSha256 = "sha256-oHKXDzufvTzOzBqFjBzu3vCwTF/FJMomopY3cUktwiM="; assets = { # MIT licensed "geoip.dat" = let - geoipRev = "202007080004"; - geoipSha256 = "1j4qg831dhxdy7brgxn4ca69cvwr3zsgizidlzasbkdn2rwai17y"; + geoipRev = "202106240309"; + geoipSha256 = "0ypydpgvizf9pfdxna3f6fqn1svsrkac0p3j9s63y55gbqpglacq"; in fetchurl { - url = "https://github.com/v2ray/geoip/releases/download/${geoipRev}/geoip.dat"; + url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat"; sha256 = geoipSha256; }; # MIT licensed "geosite.dat" = let - geositeRev = "20200708125309"; - geositeSha256 = "1pr4137ri3v3r880yx5sqf2p7qfn8g7s555q51x3smkjzkyrskcy"; + geositeRev = "20210626145509"; + geositeSha256 = "0skhwwlzlyh8rvzyblg1l2xw1bawqs12i6zw5sv3d55pnw7wmf2z"; in fetchurl { - url = "https://github.com/v2ray/domain-list-community/releases/download/${geositeRev}/dlc.dat"; + url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat"; sha256 = geositeSha256; }; } // 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 = '' + buildFlagsArray=(-v -p $NIX_BUILD_CORES -ldflags="-s -w") + runHook preBuild + go build "''${buildFlagsArray[@]}" -o v2ray ./main + go build "''${buildFlagsArray[@]}" -o v2ctl -tags confonly ./infra/control/main + runHook postBuild + ''; + + installPhase = '' + install -Dm755 v2ray v2ctl -t $out/bin + ''; + + meta = { + homepage = "https://www.v2fly.org/en_US/"; + description = "A platform for building proxies to bypass network restrictions"; + license = with lib.licenses; [ mit ]; + maintainers = with lib.maintainers; [ servalcatty ]; + }; + }; + +in runCommand "v2ray-${version}" { + inherit src version; + inherit (core) meta; + + nativeBuildInputs = [ makeWrapper ]; + + passthru = { + inherit core; + 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 +'' diff --git a/pkgs/tools/networking/v2ray/generic.nix b/pkgs/tools/networking/v2ray/generic.nix deleted file mode 100644 index 4499e91425f..00000000000 --- a/pkgs/tools/networking/v2ray/generic.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, linkFarm, buildGoModule, runCommand, makeWrapper - -# 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 ]; - }; - -} '' - for file in ${core}/bin/*; do - makeWrapper "$file" "$out/bin/$(basename "$file")" \ - --set-default V2RAY_LOCATION_ASSET ${assetsDrv} - done -'' diff --git a/pkgs/tools/networking/v2ray/update.sh b/pkgs/tools/networking/v2ray/update.sh index 56a148444c7..f645b8ea093 100755 --- a/pkgs/tools/networking/v2ray/update.sh +++ b/pkgs/tools/networking/v2ray/update.sh @@ -14,7 +14,7 @@ echo "Current version:" >&2 echo "core: $old_core_rev, geoip: $old_geoip_rev, geosite: $old_geosite_rev" >&2 function fetch_latest_rev { - curl "https://api.github.com/repos/v2ray/$1/releases" | + curl "https://api.github.com/repos/v2fly/$1/releases" | jq '.[0].tag_name' --raw-output } @@ -28,7 +28,7 @@ echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2 if [[ $core_rev != $old_core_rev ]]; then echo "Prefetching core..." >&2 { read hash; read store_path; } < <( - nix-prefetch-url --unpack --print-path "https://github.com/v2ray/v2ray-core/archive/v$core_rev.zip" + nix-prefetch-url --unpack --print-path "https://github.com/v2fly/v2ray-core/archive/v$core_rev.zip" ) sed --in-place \ @@ -40,7 +40,7 @@ fi if [[ $geoip_rev != $old_geoip_rev ]]; then echo "Prefetching geoip..." >&2 - hash=$(nix-prefetch-url "https://github.com/v2ray/geoip/releases/download/$geoip_rev/geoip.dat") + hash=$(nix-prefetch-url "https://github.com/v2fly/geoip/releases/download/$geoip_rev/geoip.dat") sed --in-place \ -e "s/\bgeoipRev = \".*\"/geoipRev = \"$geoip_rev\"/" \ -e "s/\bgeoipSha256 = \".*\"/geoipSha256 = \"$hash\"/" \ @@ -49,7 +49,7 @@ fi if [[ $geosite_rev != $old_geosite_rev ]]; then echo "Prefetching geosite..." >&2 - hash=$(nix-prefetch-url "https://github.com/v2ray/domain-list-community/releases/download/$geosite_rev/dlc.dat") + hash=$(nix-prefetch-url "https://github.com/v2fly/domain-list-community/releases/download/$geosite_rev/dlc.dat") sed --in-place \ -e "s/\bgeositeRev = \".*\"/geositeRev = \"$geosite_rev\"/" \ -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \ @@ -61,11 +61,11 @@ set +o pipefail vendorSha256=$( nix-build "$nixpkgs" -A v2ray --no-out-link 2>&1 | tee /dev/stderr | - sed -nE 's/.*got:\s*sha256:(\w+)$/\1/p' + sed -nE 's/.*got:\s*(sha256\S+)$/\1/p' ) [[ "$vendorSha256" ]] sed --in-place \ - -e "s/vendorSha256 = \".*\"/vendorSha256 = \"$vendorSha256\"/" \ + -e "s#vendorSha256 = \".*\"#vendorSha256 = \"$vendorSha256\"#" \ "$version_nix" echo "vendorSha256 updated" >&2 |