Change:
Project description The Mullvad Browser is a privacy-focused web browser developed in a collaboration between and the . It’s designed to minimize tracking and fingerprinting. You could say it’s a Tor Browser to use without the Tor Network. Instead, you can use it with a trustworthy VPN. The idea is to provide one more alternative – beside the Tor Network – to browse the internet with more privacy. To get as many people as possible to fight the big data gathering of today. To free the internet from mass surveillance. Metadata homepage URL: source URL: license: free platforms: linux, darwin
that would be awesome! Lookin' forward to test it
Thank you very much,

Discussion:
<ins> { lib , stdenv , fetchurl , makeDesktopItem , copyDesktopItems , makeWrapper , writeText # Common run-time dependencies , zlib # libxul run-time dependencies , atk , cairo , dbus , dbus-glib , fontconfig , freetype , gdk-pixbuf , glib , gtk3 , libxcb , libX11 , libXext , libXrender , libXt , libXtst , mesa , pango , pciutils , libnotifySupport ? stdenv.isLinux , libnotify , audioSupport ? mediaSupport , pulseaudioSupport ? mediaSupport , libpulseaudio , apulse , alsa-lib # Media support (implies audio support) , mediaSupport ? true , ffmpeg # Extra preferences , extraPrefs ? "" }: let libPath = lib.makeLibraryPath ( [ alsa-lib atk cairo dbus dbus-glib fontconfig freetype gdk-pixbuf glib gtk3 libxcb libX11 libXext libXrender libXt libXtst mesa # for libgbm pango pciutils stdenv.cc.cc stdenv.cc.libc zlib ] ++ lib.optionals libnotifySupport [ libnotify ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ] ++ lib.optionals mediaSupport [ ffmpeg ] ); tag = "mullvad-browser-102.9.0esr-12.0-2-build1"; version = "12.0.4"; lang = "ALL"; srcs = { x86_64-linux = fetchurl { url = "https://github.com/mullvad/mullvad-browser/releases/download/${tag}/mullvad-browser-linux64-${version}_${lang}.tar.xz"; hash = "sha256-q4dTKNQkcqaRwiF25iVOQSvwVLA3tJRlQ4DzC3tuG5A="; }; }; distributionIni = writeText "distribution.ini" (lib.generators.toINI {} { # Some light branding indicating this build uses our distro preferences Global = { id = "nixos"; version = "1.0"; about = "Mullvad Browser for NixOS"; }; }); policiesJson = writeText "policies.json" (builtins.toJSON { policies.DisableAppUpdate = true; }); in stdenv.mkDerivation rec { pname = "mullvad-browser"; inherit version; src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}"); nativeBuildInputs = [ copyDesktopItems makeWrapper ]; preferLocalBuild = true; allowSubstitutes = false; desktopItems = [(makeDesktopItem { name = "mullvadbrowser"; exec = "mullvad-browser %U"; icon = "mullvad-browser"; desktopName = "Mullvad Browser"; genericName = "Web Browser"; comment = meta.description; categories = [ "Network" "WebBrowser" "Security" ]; })]; buildPhase = '' runHook preBuild # For convenience ... MB_IN_STORE=$out/share/mullvad-browser # Unpack & enter mkdir -p "$MB_IN_STORE" tar xf "$src" -C "$MB_IN_STORE" --strip-components=2 pushd "$MB_IN_STORE" patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "mullvadbrowser.real" # mullvadbrowser is a wrapper that checks for a more recent libstdc++ & appends it to the ld path mv mullvadbrowser.real mullvadbrowser # store state at `~/.mullvad` instead of relative to executable touch "$MB_IN_STORE/system-install" # Add bundled libraries to libPath. libPath=${libPath}:$MB_IN_STORE # apulse uses a non-standard library path.  For now special-case it. ${lib.optionalString (audioSupport && !pulseaudioSupport) '' libPath=${apulse}/lib/apulse:$libPath ''} # Prepare for autoconfig. # # See https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment cat >defaults/pref/autoconfig.js <<EOF // pref("general.config.filename", "mozilla.cfg"); pref("general.config.obscure_value", 0); EOF # Hard-coded Firefox preferences. cat >mozilla.cfg <<EOF // First line must be a comment // Reset pref that captures store paths. clearPref("extensions.xpiState"); // Stop obnoxious first-run redirection. lockPref("noscript.firstRunRedirection", false); // Allow sandbox access to sound devices if using ALSA directly ${if (audioSupport && !pulseaudioSupport) then '' pref("security.sandbox.content.write_path_whitelist", "/dev/snd/"); '' else '' clearPref("security.sandbox.content.write_path_whitelist"); ''} ${lib.optionalString (extraPrefs != "") '' ${extraPrefs} ''} EOF # FONTCONFIG_FILE is required to make fontconfig read the MB # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 # indicates the system fonts.conf being used instead. FONTCONFIG_FILE=$MB_IN_STORE/fontconfig/fonts.conf sed -i "$FONTCONFIG_FILE"  -e "s,<dir>fonts</dir>,<dir>$MB_IN_STORE/fonts</dir>," mkdir -p $out/bin makeWrapper "$MB_IN_STORE/mullvadbrowser" "$out/bin/mullvad-browser"  --prefix LD_LIBRARY_PATH : "$libPath"  --set FONTCONFIG_FILE "$FONTCONFIG_FILE"  --set-default MOZ_ENABLE_WAYLAND 1 # Easier access to docs mkdir -p $out/share/doc ln -s $MB_IN_STORE/Data/Docs $out/share/doc/mullvad-browser # Install icons for i in 16 32 48 64 128; do mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps/ ln -s $out/share/mullvad-browser/browser/chrome/icons/default/default$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/mullvad-browser.png done # Check installed apps echo "Checking mullvad-browser wrapper ..." $out/bin/mullvad-browser --version >/dev/null runHook postBuild ''; postInstall = '' # Install distribution customizations install -Dvm644 ${distributionIni} $out/share/mullvad-browser/distribution/distribution.ini install -Dvm644 ${policiesJson} $out/share/mullvad-browser/distribution/policies.json ''; meta = with lib; { description = "Privacy-focused browser made in a collaboration between The Tor Project and Mullvad"; homepage = "https://www.mullvad.net/en/browser"; changelog = "https://github.com/mullvad/mullvad-browser/releases/tag/${tag}"; platforms = attrNames srcs; maintainers = with maintainers; [ felschr ]; # MPL2.0+, GPL+, &c.  While it's not entirely clear whether # the compound is "libre" in a strict sense (some components place certain # restrictions on redistribution), it's free enough for our purposes. license = with licenses; [ mpl20 lgpl21Plus lgpl3Plus free ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; }; } </ins>

mullvad-vpn = callPackage ../applications/networking/mullvad-vpn { }; <ins> mullvad-browser = callPackage ../applications/networking/browsers/mullvad-browser { }; </ins> mycorrhiza = callPackage ../servers/mycorrhiza { }; napalm = with python3Packages; toPythonApplication (