154 lines
4.8 KiB
Nix
154 lines
4.8 KiB
Nix
{pkgs ? import <nixpkgs>, ...}: let
|
|
name = "beta";
|
|
|
|
variant =
|
|
{
|
|
beta.x86_64-linux = rec {
|
|
version = "1.7.4b";
|
|
sha1 = "5259fa7cbd661f137c5a84d34e48882074a1a20e";
|
|
url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-x86_64.tar.bz2";
|
|
sha256 = "sha256-hiGb2oyAueKa6Xs6BvtEmgPTRlOXvJ5YDseS8kZ1VbQ=";
|
|
};
|
|
beta.aarch64-linux = rec {
|
|
version = "1.7.4b";
|
|
sha1 = "5259fa7cbd661f137c5a84d34e48882074a1a20e";
|
|
url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-aarch64.tar.bz2";
|
|
sha256 = "sha256-/fdgw97Ocg7AYGchHhXSWhFOS0bMb5GVAgZDw6/yh3I=";
|
|
};
|
|
}
|
|
.${name}
|
|
.${pkgs.system};
|
|
|
|
runtimeLibs = with pkgs;
|
|
[
|
|
libGL
|
|
libGLU
|
|
libevent
|
|
libffi
|
|
libjpeg
|
|
libpng
|
|
libstartup_notification
|
|
libvpx
|
|
libwebp
|
|
stdenv.cc.cc
|
|
fontconfig
|
|
libxkbcommon
|
|
zlib
|
|
freetype
|
|
gtk3
|
|
libxml2
|
|
dbus
|
|
xcb-util-cursor
|
|
alsa-lib
|
|
libpulseaudio
|
|
pango
|
|
atk
|
|
cairo
|
|
gdk-pixbuf
|
|
glib
|
|
udev
|
|
libva
|
|
mesa
|
|
libnotify
|
|
cups
|
|
pciutils
|
|
ffmpeg
|
|
libglvnd
|
|
pipewire
|
|
speechd
|
|
]
|
|
++ (with pkgs.xorg; [
|
|
libxcb
|
|
libX11
|
|
libXcursor
|
|
libXrandr
|
|
libXi
|
|
libXext
|
|
libXcomposite
|
|
libXdamage
|
|
libXfixes
|
|
libXScrnSaver
|
|
]);
|
|
|
|
policiesJson = pkgs.writeText "firefox-policies.json" (builtins.toJSON {
|
|
# https://mozilla.github.io/policy-templates/#disableappupdates
|
|
policies = {
|
|
DisableAppUpdate = true;
|
|
};
|
|
});
|
|
|
|
desktopFile =
|
|
if name == "beta"
|
|
then "zen.desktop"
|
|
else "zen_${name}.desktop";
|
|
in
|
|
pkgs.stdenv.mkDerivation {
|
|
inherit (variant) version;
|
|
|
|
pname = "zen-browser";
|
|
|
|
src = builtins.fetchTarball {inherit (variant) url sha256;};
|
|
desktopSrc = ./.;
|
|
|
|
phases = ["installPhase" "fixupPhase"];
|
|
|
|
nativeBuildInputs = with pkgs; [makeWrapper copyDesktopItems wrapGAppsHook];
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/{bin,opt/zen,lib/zen-${variant.version}/distribution} && cp -r $src/* $out/opt/zen
|
|
ln -s $out/opt/zen/zen $out/bin/zen
|
|
ln -s ${policiesJson} "$out/lib/zen-${variant.version}/distribution/policies.json"
|
|
ln -s $out/bin/zen $out/bin/zen-${name}
|
|
|
|
install -D $desktopSrc/zen-${name}.desktop $out/share/applications/${desktopFile}
|
|
|
|
install -D $src/browser/chrome/icons/default/default16.png $out/share/icons/hicolor/16x16/apps/zen-${name}.png
|
|
install -D $src/browser/chrome/icons/default/default32.png $out/share/icons/hicolor/32x32/apps/zen-${name}.png
|
|
install -D $src/browser/chrome/icons/default/default48.png $out/share/icons/hicolor/48x48/apps/zen-${name}.png
|
|
install -D $src/browser/chrome/icons/default/default64.png $out/share/icons/hicolor/64x64/apps/zen-${name}.png
|
|
install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen-${name}.png
|
|
'';
|
|
|
|
fixupPhase = ''
|
|
chmod 755 $out/bin/zen $out/opt/zen/*
|
|
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen
|
|
wrapProgram $out/opt/zen/zen --set LD_LIBRARY_PATH "${
|
|
pkgs.lib.makeLibraryPath runtimeLibs
|
|
}" \
|
|
--set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
|
|
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen-bin
|
|
wrapProgram $out/opt/zen/zen-bin --set LD_LIBRARY_PATH "${
|
|
pkgs.lib.makeLibraryPath runtimeLibs
|
|
}" \
|
|
--set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
|
|
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/glxtest
|
|
wrapProgram $out/opt/zen/glxtest --set LD_LIBRARY_PATH "${
|
|
pkgs.lib.makeLibraryPath runtimeLibs
|
|
}"
|
|
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/updater
|
|
wrapProgram $out/opt/zen/updater --set LD_LIBRARY_PATH "${
|
|
pkgs.lib.makeLibraryPath runtimeLibs
|
|
}"
|
|
|
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/vaapitest
|
|
wrapProgram $out/opt/zen/vaapitest --set LD_LIBRARY_PATH "${
|
|
pkgs.lib.makeLibraryPath runtimeLibs
|
|
}"
|
|
'';
|
|
|
|
meta = {
|
|
inherit desktopFile;
|
|
|
|
description = "Experience tranquillity while browsing the web without people tracking you!";
|
|
homepage = "https://zen-browser.app";
|
|
downloadPage = "https://zen-browser.app/download/";
|
|
changelog = "https://github.com/zen-browser/desktop/releases";
|
|
platforms = pkgs.lib.platforms.linux;
|
|
mainProgram = "zen";
|
|
};
|
|
}
|