diff --git a/nixos/modules/programs/amnezia-vpn.nix b/nixos/modules/programs/amnezia-vpn.nix index e2b49ebb6e7b..22db93bde51c 100644 --- a/nixos/modules/programs/amnezia-vpn.nix +++ b/nixos/modules/programs/amnezia-vpn.nix @@ -10,16 +10,24 @@ in { options.programs.amnezia-vpn = { enable = lib.mkEnableOption "The AmneziaVPN client"; + package = lib.mkPackageOption pkgs "amnezia-vpn" { }; }; config = lib.mkIf cfg.enable { - environment.systemPackages = [ pkgs.amnezia-vpn ]; - services.dbus.packages = [ pkgs.amnezia-vpn ]; + environment.systemPackages = [ cfg.package ]; + services.dbus.packages = [ cfg.package ]; services.resolved.enable = true; systemd = { - packages = [ pkgs.amnezia-vpn ]; - services."AmneziaVPN".wantedBy = [ "multi-user.target" ]; + packages = [ cfg.package ]; + services."AmneziaVPN" = { + wantedBy = [ "multi-user.target" ]; + path = with pkgs; [ + procps + iproute2 + sudo + ]; + }; }; }; diff --git a/pkgs/by-name/am/amnezia-vpn/package.nix b/pkgs/by-name/am/amnezia-vpn/package.nix index ed17dc8c903f..8994558d2c03 100644 --- a/pkgs/by-name/am/amnezia-vpn/package.nix +++ b/pkgs/by-name/am/amnezia-vpn/package.nix @@ -12,14 +12,12 @@ shadowsocks-rust, cloak-pt, wireguard-tools, - procps, - iproute2, - sudo, libssh, zlib, tun2socks, xray, nix-update-script, + bash, }: let amnezia-tun2socks = tun2socks.overrideAttrs ( @@ -83,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace client/configurators/openvpn_configurator.cpp \ --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" + --replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "AmneziaVPN" substituteInPlace deploy/installer/config/AmneziaVPN.desktop.in \ --replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "$out/share/pixmaps/AmneziaVPN.png" substituteInPlace deploy/data/linux/AmneziaVPN.service \ @@ -107,31 +105,31 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ + bash + kdePackages.qt5compat + kdePackages.qtremoteobjects + kdePackages.qtsvg libsecret qt6.qtbase qt6.qttools - kdePackages.qtremoteobjects - kdePackages.qtsvg - kdePackages.qt5compat ]; - qtWrapperArgs = [ - ''--prefix PATH : ${ - lib.makeBinPath [ - procps - iproute2 - sudo - ] - }'' - ]; + installPhase = '' + runHook preInstall - postInstall = '' 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/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/ + install -m555 client/AmneziaVPN service/server/AmneziaVPN-service $out/bin/ + install -m555 ../deploy/data/linux/client/bin/update-resolv-conf.sh $out/libexec/ + install -m444 ../AppDir/AmneziaVPN.desktop $out/share/applications/ + install -m444 ../deploy/data/linux/AmneziaVPN.png $out/share/pixmaps/ + install -m444 ../deploy/data/linux/AmneziaVPN.service $out/lib/systemd/system/ + + runHook postInstall + ''; + + postFixup = '' + # Temporary unwrap non-binary executable until qt6.wrapQtAppsHook is fixed + mv $out/libexec/.update-resolv-conf.sh-wrapped $out/libexec/update-resolv-conf.sh ''; passthru = { @@ -149,7 +147,7 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "Amnezia VPN Client"; downloadPage = "https://amnezia.org/en/downloads"; - homepage = "https://amnezia.org/en"; + homepage = "https://github.com/amnezia-vpn/amnezia-client"; license = licenses.gpl3; mainProgram = "AmneziaVPN"; maintainers = with maintainers; [ sund3RRR ];