7 libayatana-appindicator,
16 pname = "hiddify-app";
17 version = "2.5.7-unstable-2024-10-30";
18 src = fetchFromGitHub {
21 rev = "0144cddf670df11d1586a0dc76483f4c4f5b4230";
22 hash = "sha256-bjZkc0H0409YxM6AGrhm6gPaKNj/9SiVs0AUPoLJX+o=";
23 fetchSubmodules = true;
25 libcore = buildGoModule rec {
26 inherit pname version src;
28 modRoot = "./libcore";
30 vendorHash = "sha256-a7NFZt4/w2+oaZG3ncaOrrhASxUptcWS/TeaIQrgLe4=";
33 -tags "with_gvisor,with_quic,with_wireguard,with_ech,with_utls,with_clash_api,with_grpc" \
39 sed -i '/import (/a\ \t"os"\n\t"path/filepath"' ./libcore/v2/db/hiddify_db.go
40 substituteInPlace ./libcore/v2/db/hiddify_db.go \
41 --replace-fail 'NewGoLevelDBWithOpts(name, "./data", ' 'NewGoLevelDBWithOpts(name, filepath.Join(os.Getenv("HOME"), ".local", "share", "app.hiddify.com", "data"), '
47 go build ${GO_PUBLIC_FLAGS} -buildmode=c-shared -o bin/lib/libcore.so ./custom
49 cp bin/lib/libcore.so ./lib/libcore.so
50 CGO_LDFLAGS="./lib/libcore.so" go build ${GO_PUBLIC_FLAGS} -o bin/HiddifyCli ./cli/bydll
58 mkdir -p $out/bin $out/lib
59 cp ./bin/HiddifyCli $out/bin/HiddifyCli
60 cp ./lib/libcore.so $out/lib/libcore.so
66 description = "Multi-platform auto-proxy client, supporting Sing-box, X-ray, TUIC, Hysteria, Reality, Trojan, SSH etc";
67 homepage = "https://hiddify.com";
68 mainProgram = "HiddifyCli";
69 license = lib.licenses.cc-by-nc-sa-40;
70 platforms = lib.platforms.linux;
71 maintainers = with lib.maintainers; [ aucub ];
74 sqlite-autoconf = fetchurl {
75 url = "https://sqlite.org/2024/sqlite-autoconf-3460000.tar.gz";
76 hash = "sha256-b45qezNSc3SIFvmztiu9w3Koid6HgtfwSMZTpEdBen0=";
79 flutter.buildFlutterApplication {
80 inherit pname version src;
82 pubspecLock = lib.importJSON ./pubspec.lock.json;
85 libayatana-appindicator
95 customSourceBuilders = {
96 sqlite3_flutter_libs =
97 { version, src, ... }:
98 stdenv.mkDerivation rec {
99 pname = "sqlite3_flutter_libs";
101 inherit (src) passthru;
103 substituteInPlace linux/CMakeLists.txt \
104 --replace-fail "https://sqlite.org/2024/sqlite-autoconf-3460000.tar.gz" "file://${sqlite-autoconf}"
116 substituteInPlace ./linux/my_application.cc \
117 --replace-fail "./hiddify.png" "${placeholder "out"}/share/pixmaps/hiddify.png"
121 cp -r ${libcore}/lib libcore/bin/lib
122 cp ${libcore}/bin/HiddifyCli libcore/bin/HiddifyCli
123 packageRun build_runner build --delete-conflicting-outputs
128 mkdir -p $out/share/pixmaps/
129 cp ./assets/images/source/ic_launcher_border.png $out/share/pixmaps/hiddify.png
137 genericName = "Hiddify";
138 desktopName = "Hiddify";
155 flutterBuildFlags = [
156 "--target lib/main_prod.dart"
160 circle_flags = "sha256-dqORH4yj0jU8r9hP9NTjrlEO0ReHt4wds7BhgRPq57g=";
161 flutter_easy_permission = "sha256-fs2dIwFLmeDrlFIIocGw6emOW1whGi9W7nQ7mHqp8R0=";
162 humanizer = "sha256-zsDeol5l6maT8L8R6RRtHyd7CJn5908nvRXIytxiPqc=";
165 extraWrapProgramArgs = ''
166 --prefix LD_LIBRARY_PATH : "$out/app/${pname}/lib"
170 patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" $out/app/${pname}/lib/lib*.so
174 description = "Multi-platform auto-proxy client, supporting Sing-box, X-ray, TUIC, Hysteria, Reality, Trojan, SSH etc";
175 homepage = "https://hiddify.com";
176 mainProgram = "hiddify";
177 license = lib.licenses.cc-by-nc-sa-40;
178 platforms = lib.platforms.linux;
179 maintainers = with lib.maintainers; [ aucub ];