mullvad-browser 12.0.4 -> 102.9.0esr-12.0-2-build1 https://github.com/mullvad/mullvad-browser/releases attrpath: mullvad-browser Checking auto update branch... No auto update branch exists Old version 12.0.4" not present in master derivation file with contents: { 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.10.0esr-12.0-2-build2"; version = "12.0.5"; 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-Ezs2pjJNGOinMIskBDwpj70eKSkfcV6ZCKb60I5J23w="; }; }; 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 <mozilla.cfg <fonts,$MB_IN_STORE/fonts," 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 ''; installPhase = '' runHook preInstall # Install distribution customizations install -Dvm644 ${distributionIni} $out/share/mullvad-browser/distribution/distribution.ini install -Dvm644 ${policiesJson} $out/share/mullvad-browser/distribution/policies.json runHook postInstall ''; 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 ]; }; }