From ae02b6eae86f264a5abd24c41187036057c596cc Mon Sep 17 00:00:00 2001 From: sund3RRR Date: Wed, 15 Jan 2025 22:58:58 +0300 Subject: [PATCH] amnezia-vpn: 4.8.2.3 -> 4.8.3.1 --- pkgs/by-name/am/amnezia-vpn/package.nix | 37 ++++++++-------- pkgs/by-name/am/amnezia-vpn/router.patch | 54 ------------------------ 2 files changed, 19 insertions(+), 72 deletions(-) delete mode 100644 pkgs/by-name/am/amnezia-vpn/router.patch diff --git a/pkgs/by-name/am/amnezia-vpn/package.nix b/pkgs/by-name/am/amnezia-vpn/package.nix index 865b4a94526b..71a817827730 100644 --- a/pkgs/by-name/am/amnezia-vpn/package.nix +++ b/pkgs/by-name/am/amnezia-vpn/package.nix @@ -7,7 +7,6 @@ kdePackages, qt6, libsecret, - xdg-utils, amneziawg-go, openvpn, shadowsocks-rust, @@ -20,6 +19,7 @@ zlib, tun2socks, xray, + nix-update-script, }: let amnezia-tun2socks = tun2socks.overrideAttrs ( @@ -35,13 +35,6 @@ let }; vendorHash = "sha256-VvOaTJ6dBFlbGZGxnHy2sCtds1tyhu6VsPewYpsDBiM="; - - ldflags = [ - "-w" - "-s" - "-X github.com/amnezia-vpn/amnezia-tun2socks/v2/internal/version.Version=v${finalAttrs.version}" - "-X github.com/amnezia-vpn/amnezia-tun2socks/v2/internal/version.GitCommit=v${finalAttrs.version}" - ]; } ); @@ -63,18 +56,16 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "amnezia-vpn"; - version = "4.8.2.3"; + version = "4.8.3.1"; src = fetchFromGitHub { owner = "amnezia-vpn"; repo = "amnezia-client"; tag = finalAttrs.version; - hash = "sha256-bCWPyRW2xnnopcwfPHgQrdP85Ct0CDufJRQ1PvCAiDE="; + hash = "sha256-U/fVO9GcSdxFg5r57vX5Ylgu6CMjG4GKyInIgBNUiEw="; fetchSubmodules = true; }; - patches = [ ./router.patch ]; - postPatch = '' substituteInPlace client/platforms/linux/daemon/wireguardutilslinux.cpp \ @@ -82,8 +73,7 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace client/utilities.cpp \ --replace-fail 'return Utils::executable("../../client/bin/openvpn", true);' 'return Utils::executable("${openvpn}/bin/openvpn", false);' \ --replace-fail 'return Utils::executable("../../client/bin/tun2socks", true);' 'return Utils::executable("${amnezia-tun2socks}/bin/amnezia-tun2socks", false);' \ - --replace-fail 'return Utils::usrExecutable("wg-quick");' 'return Utils::executable("${wireguard-tools}/bin/wg-quick", false);' \ - --replace-fail 'QProcess::execute(QString("pkill %1").arg(name));' 'return QProcess::execute(QString("pkill -f %1").arg(name)) == 0;' + --replace-fail 'return Utils::usrExecutable("wg-quick");' 'return Utils::executable("${wireguard-tools}/bin/wg-quick", false);' substituteInPlace client/protocols/xrayprotocol.cpp \ --replace-fail 'return Utils::executable(QString("xray"), true);' 'return Utils::executable(QString("${amnezia-xray}/bin/xray"), false);' substituteInPlace client/protocols/openvpnovercloakprotocol.cpp \ @@ -91,11 +81,10 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace client/protocols/shadowsocksvpnprotocol.cpp \ --replace-fail 'return Utils::executable(QString("/ss-local"), true);' 'return Utils::executable(QString("${shadowsocks-rust}/bin/sslocal"), false);' substituteInPlace client/configurators/openvpn_configurator.cpp \ - --replace-fail ".arg(qApp->applicationDirPath());" ".arg(\"$out/local/bin\");" + --replace-fail ".arg(qApp->applicationDirPath());" ".arg(\"$out/libexec\");" substituteInPlace client/ui/qautostart.cpp \ --replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "$out/share/pixmaps/AmneziaVPN.png" substituteInPlace deploy/installer/config/AmneziaVPN.desktop.in \ - --replace-fail "#!/usr/bin/env xdg-open" "#!${xdg-utils}/bin/xdg-open" \ --replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "$out/share/pixmaps/AmneziaVPN.png" substituteInPlace deploy/data/linux/AmneziaVPN.service \ --replace-fail "ExecStart=/opt/AmneziaVPN/service/AmneziaVPN-service.sh" "ExecStart=$out/bin/AmneziaVPN-service" \ @@ -137,14 +126,26 @@ stdenv.mkDerivation (finalAttrs: { ]; postInstall = '' - mkdir -p $out/bin $out/local/bin $out/share/applications $out/share/pixmaps $out/lib/systemd/system + mkdir -p $out/bin $out/libexec $out/share/applications $out/share/pixmaps $out/lib/systemd/system cp client/AmneziaVPN service/server/AmneziaVPN-service $out/bin/ - cp ../deploy/data/linux/client/bin/update-resolv-conf.sh $out/local/bin/ + cp ../deploy/data/linux/client/bin/update-resolv-conf.sh $out/libexec/ cp ../AppDir/AmneziaVPN.desktop $out/share/applications/ cp ../deploy/data/linux/AmneziaVPN.png $out/share/pixmaps/ cp ../deploy/data/linux/AmneziaVPN.service $out/lib/systemd/system/ ''; + passthru = { + inherit amnezia-tun2socks amnezia-xray; + updateScript = nix-update-script { + extraArgs = [ + "--subpackage" + "amnezia-tun2socks" + "--subpackage" + "amnezia-xray" + ]; + }; + }; + meta = with lib; { description = "Amnezia VPN Client"; downloadPage = "https://amnezia.org/en/downloads"; diff --git a/pkgs/by-name/am/amnezia-vpn/router.patch b/pkgs/by-name/am/amnezia-vpn/router.patch deleted file mode 100644 index 3f78af405af2..000000000000 --- a/pkgs/by-name/am/amnezia-vpn/router.patch +++ /dev/null @@ -1,54 +0,0 @@ ---- a/service/server/router_linux.cpp 2025-01-01 11:36:27.615658613 +0300 -+++ b/service/server/router_linux.cpp 2025-01-01 18:07:57.300178080 +0300 -@@ -19,9 +19,27 @@ - #include - #include - #include -+#include -+#include - - #include - -+bool isServiceActive(const QString &serviceName) { -+ QProcess process; -+ process.start("systemctl", { "list-units", "--type=service", "--state=running", "--no-legend" }); -+ process.waitForFinished(); -+ -+ QString output = process.readAllStandardOutput(); -+ QStringList services = output.split('\n', Qt::SkipEmptyParts); -+ -+ for (const QString &service : services) { -+ if (service.contains(serviceName)) { -+ return true; -+ } -+ } -+ return false; -+} -+ - RouterLinux &RouterLinux::Instance() - { - static RouterLinux s; -@@ -158,15 +176,14 @@ - p.setProcessChannelMode(QProcess::MergedChannels); - - //check what the dns manager use -- if (QFileInfo::exists("/usr/bin/nscd") -- || QFileInfo::exists("/usr/sbin/nscd") -- || QFileInfo::exists("/usr/lib/systemd/system/nscd.service")) -- { -- p.start("systemctl restart nscd"); -- } -- else -- { -- p.start("systemctl restart systemd-resolved"); -+ if (isServiceActive("nscd.service")) { -+ qDebug() << "Restarting nscd.service"; -+ p.start("systemctl", { "restart", "nscd" }); -+ } else if (isServiceActive("systemd-resolved.service")) { -+ qDebug() << "Restarting systemd-resolved.service"; -+ p.start("systemctl", { "restart", "systemd-resolved" }); -+ } else { -+ qDebug() << "No suitable DNS manager found."; - } - - p.waitForFinished();