{ 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 , coreutils , gnugrep }: 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 = "2023.3"; src = fetchurl { url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb"; sha256 = "sha256-+XK9xUeSs93egmtsQ7qATug/n9taeQkmc4ZgObPYvn4="; }; nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ]; buildInputs = deps; dontBuild = true; dontConfigure = true; unpackPhase = "dpkg-deb -x $src ."; runtimeDependencies = [ (lib.getLib systemd) libGL libnotify libappindicator wayland ]; 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 -sf $out/share/mullvad/resources/mullvad-problem-report $out/bin/mullvad-problem-report wrapProgram $out/bin/mullvad-vpn \ --set MULLVAD_DISABLE_UPDATE_NOTIFICATION 1 \ --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]} 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 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"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.gpl3Only; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ Br1ght0ne ymarkus ataraxiasjel ]; }; }