about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix97
1 files changed, 97 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
new file mode 100644
index 000000000000..cf22d8804068
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -0,0 +1,97 @@
+{ stdenv, lib, fetchurl, dpkg
+, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig, freetype
+, gdk-pixbuf, glib, pango, nspr, nss, gtk3, mesa
+, xorg, autoPatchelfHook, systemd, libnotify, libappindicator
+, makeWrapper
+}:
+
+let deps = [
+    alsa-lib
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    pango
+    gtk3
+    libappindicator
+    libnotify
+    mesa
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+    xorg.libxshmfence
+    nspr
+    nss
+    systemd
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "mullvad-vpn";
+  version = "2022.1";
+
+  src = fetchurl {
+    url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
+    sha256 = "0s12y9j75k59kqkcvfflb1v5p3ny7xgc1m5bd635lvql1bv46c3i";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+  ];
+
+  buildInputs = deps;
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  runtimeDependencies = [ (lib.getLib systemd) libnotify libappindicator ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/mullvad $out/bin
+
+    mv usr/share/* $out/share
+    mv usr/bin/* $out/bin
+    mv opt/Mullvad\ VPN/* $out/share/mullvad
+
+    ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/
+    ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon
+    ln -sf $out/share/mullvad/resources/mullvad-problem-report $out/bin/mullvad-problem-report
+
+    wrapProgram $out/bin/mullvad-vpn --set MULLVAD_DISABLE_UPDATE_NOTIFICATION 1
+
+    sed -i "s|Exec.*$|Exec=$out/bin/mullvad-vpn $U|" $out/share/applications/mullvad-vpn.desktop
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mullvad/mullvadvpn-app";
+    description = "Client for Mullvad VPN";
+    changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
+    license = licenses.gpl3Only;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ Br1ght0ne ymarkus flexagoon ];
+  };
+
+}