Unverified Commit a79bd496 authored by K900's avatar K900 Committed by GitHub
Browse files

amnezia-vpn: fix openvpn; refactor install and fixup (#394130)

parents 17b84e0b b4fc0f82
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -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
        ];
      };
    };
  };

+21 −23
Original line number Diff line number Diff line
@@ -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 ];