Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / networking / qv2ray / default.nix
blob50143013b88f0065b68e99d2d6d613ba39dacafb
1 { lib
2 , stdenv
3 , mkDerivation
4 , fetchFromGitHub
5 , symlinkJoin
6 , qttools
7 , cmake
8 , clang_8
9 , grpc
10 , protobuf
11 , openssl
12 , pkg-config
13 , c-ares
14 , libGL
15 , zlib
16 , curl
17 , v2ray
18 , v2ray-geoip, v2ray-domain-list-community
19 , assets ? [ v2ray-geoip v2ray-domain-list-community ]
22 mkDerivation rec {
23   pname = "qv2ray";
24   version = "unstable-2023-07-11";
26   src = fetchFromGitHub {
27     owner = "Qv2ray";
28     repo = "Qv2ray";
29     rev = "b3080564809dd8aef864a54ca1b79f0984fe986b";
30     hash = "sha256-LwBjuX5x3kQcdEfPLEirWpkMqOigkhNoh/VNmBfPAzw=";
31     fetchSubmodules = true;
32   };
34   postPatch = lib.optionals stdenv.isDarwin ''
35     substituteInPlace cmake/platforms/macos.cmake \
36       --replace \''${QV2RAY_QtX_DIR}/../../../bin/macdeployqt macdeployqt
37   '';
39   assetsDrv = symlinkJoin {
40     name = "v2ray-assets";
41     paths = assets;
42   };
44   cmakeFlags = [
45     "-DQV2RAY_DISABLE_AUTO_UPDATE=on"
46     "-DQV2RAY_USE_V5_CORE=on"
47     "-DQV2RAY_TRANSLATION_PATH=${placeholder "out"}/share/qv2ray/lang"
48     "-DQV2RAY_DEFAULT_VASSETS_PATH='${assetsDrv}/share/v2ray'"
49     "-DQV2RAY_DEFAULT_VCORE_PATH='${v2ray}/bin/v2ray'"
50   ];
52   preConfigure = ''
53     export _QV2RAY_BUILD_INFO_="Qv2ray Nixpkgs"
54     export _QV2RAY_BUILD_EXTRA_INFO_="(Nixpkgs build) nixpkgs"
55   '';
57   buildInputs = [
58     libGL
59     zlib
60     grpc
61     protobuf
62     openssl
63     c-ares
64   ];
66   nativeBuildInputs = [
67     cmake
68     pkg-config
69     qttools
70     curl
71     # The default clang_7 will result in reproducible ICE.
72   ] ++ lib.optional (stdenv.isDarwin) clang_8;
74   meta = with lib; {
75     description = "An GUI frontend to v2ray";
76     homepage = "https://github.com/Qv2ray/Qv2ray";
77     license = licenses.gpl3Plus;
78     maintainers = with maintainers; [ poscat rewine ];
79     platforms = platforms.all;
80     # never built on aarch64-darwin, x86_64-darwin since update to unstable-2022-09-25
81     broken = stdenv.isDarwin;
82   };