nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

143 lines
2.8 KiB
Nix
Raw Normal View History

2023-02-20 11:50:07 +00:00
{ stdenv
, lib
, fetchurl
, dpkg
, alsa-lib
, atk
, cairo
, cups
, dbus
, expat
, fontconfig
, freetype
, gdk-pixbuf
, glib
, pango
, nspr
, nss
, gtk3
, mesa
, libGL
, wayland
, xorg
, autoPatchelfHook
, systemd
, libnotify
, libappindicator
, makeWrapper
2023-02-20 11:50:07 +00:00
, coreutils
, gnugrep
2019-06-18 07:26:35 +00:00
}:
2023-02-20 11:50:07 +00:00
let
deps = [
alsa-lib
2019-06-18 07:26:35 +00:00
atk
cairo
cups
dbus
expat
fontconfig
freetype
2019-05-22 11:03:39 +00:00
gdk-pixbuf
2019-06-18 07:26:35 +00:00
glib
pango
gtk3
libappindicator
2019-06-18 07:26:35 +00:00
libnotify
2021-04-09 11:32:08 +00:00
mesa
2019-06-18 07:26:35 +00:00
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
2021-12-10 11:38:06 +00:00
xorg.libxshmfence
2019-06-18 07:26:35 +00:00
nspr
nss
systemd
];
2023-10-11 10:28:05 +00:00
version = "2023.5";
2023-06-19 02:46:39 +00:00
selectSystem = attrs: attrs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
platform = selectSystem {
x86_64-linux = "amd64";
aarch64-linux = "arm64";
};
hash = selectSystem {
2023-10-11 10:28:05 +00:00
x86_64-linux = "sha256-FpVruI80PmpBo2JrMvgvOg7ou6LceTeit9HbWKgcPa4=";
aarch64-linux = "sha256-NlYh8K5Xbad4xSoZ02yC5fh3SrQzyNyS9uoA73REcpo=";
2023-06-19 02:46:39 +00:00
};
2019-06-18 07:26:35 +00:00
in
2023-06-19 02:46:39 +00:00
stdenv.mkDerivation {
2019-06-18 07:26:35 +00:00
pname = "mullvad-vpn";
2023-06-19 02:46:39 +00:00
inherit version;
2019-06-18 07:26:35 +00:00
src = fetchurl {
2023-06-19 02:46:39 +00:00
url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_${platform}.deb";
inherit hash;
2019-06-18 07:26:35 +00:00
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
makeWrapper
2019-06-18 07:26:35 +00:00
];
buildInputs = deps;
dontBuild = true;
dontConfigure = true;
unpackPhase = "dpkg-deb -x $src .";
runtimeDependencies = [ (lib.getLib systemd) libGL libnotify libappindicator wayland ];
2019-06-18 07:26:35 +00:00
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
2019-10-08 17:27:36 +00:00
ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/
ln -sf $out/share/mullvad/resources/mullvad-problem-report $out/bin/mullvad-problem-report
2019-06-18 07:26:35 +00:00
wrapProgram $out/bin/mullvad-vpn \
--set MULLVAD_DISABLE_UPDATE_NOTIFICATION 1 \
--prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
2023-01-22 00:39:32 +00:00
wrapProgram $out/bin/mullvad-daemon \
--set-default MULLVAD_RESOURCE_DIR "$out/share/mullvad/resources"
sed -i "s|Exec.*$|Exec=$out/bin/mullvad-vpn $U|" $out/share/applications/mullvad-vpn.desktop
2019-06-18 07:26:35 +00:00
runHook postInstall
'';
2023-06-19 02:46:39 +00:00
passthru.updateScript = ./update.sh;
meta = with lib; {
2019-06-18 07:26:35 +00:00
homepage = "https://github.com/mullvad/mullvadvpn-app";
description = "Client for Mullvad VPN";
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.gpl3Only;
2023-06-19 02:46:39 +00:00
platforms = [ "x86_64-linux" "aarch64-linux" ];
2022-11-21 02:03:29 +00:00
maintainers = with maintainers; [ Br1ght0ne ymarkus ataraxiasjel ];
2019-06-18 07:26:35 +00:00
};
}