update zen

This commit is contained in:
zack 2024-10-08 22:16:26 -04:00
parent a836ceec24
commit 03078ce8fa
No known key found for this signature in database
GPG key ID: 5F873416BCF59F35
6 changed files with 405 additions and 128 deletions

18
flake.lock generated
View file

@ -104,17 +104,17 @@
"systems": "systems_5"
},
"locked": {
"lastModified": 1716933162,
"narHash": "sha256-r2f8PSutFSGZ41ktTnW89s6BhuDfXmi18bHFq1u9Vog=",
"owner": "zackartz",
"repo": "zmio",
"rev": "6af9d01d6905b67572caa0fe803e31c10fd995dc",
"type": "github"
"lastModified": 1726333295,
"narHash": "sha256-oKYJ0AjaaMnlX0wayT1TKPqHDeLI0hph4pfPLsrognY=",
"ref": "refs/heads/main",
"rev": "04422a6a54de7aa4172e428d363c5f6068c486ef",
"revCount": 24,
"type": "git",
"url": "https://git.zoeys.computer/zoey/web"
},
"original": {
"owner": "zackartz",
"repo": "zmio",
"type": "github"
"type": "git",
"url": "https://git.zoeys.computer/zoey/web"
}
},
"catppuccin": {

View file

@ -34,7 +34,7 @@
inputs.nixpkgs.follows = "nixpkgs";
};
blog.url = "github:zackartz/zmio";
blog.url = "git+https://git.zoeys.computer/zoey/web";
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.3.0";

View file

@ -0,0 +1,370 @@
{
buildNpmPackage,
buildPackages,
fetchFromGitHub,
fetchurl,
lib,
overrideCC,
stdenv,
# build time
autoconf,
cargo,
dump_syms,
git,
gnum4,
nodejs,
patchelf,
pkg-config,
pkgsBuildBuild,
pkgsCross,
python3,
runCommand,
rsync,
rustc,
rust-cbindgen,
rustPlatform,
unzip,
vips,
wrapGAppsHook3,
writeShellScript,
# runtime
alsa-lib,
atk,
cairo,
cups,
dbus,
dbus-glib,
ffmpeg,
fontconfig,
freetype,
gdk-pixbuf,
gtk3,
glib,
icu73,
jemalloc,
libGL,
libGLU,
libdrm,
libevent,
libffi,
libglvnd,
libjack2,
libjpeg,
libkrb5,
libnotify,
libpng,
libpulseaudio,
libstartup_notification,
libva,
libvpx,
libwebp,
libxkbcommon,
libxml2,
makeWrapper,
mesa,
nasm,
nspr,
nss_latest,
pango,
pciutils,
pipewire,
sndio,
udev,
xcb-util-cursor,
xorg,
zlib,
# Generic changes the compatibility mode of the final binaries.
#
# Enabling generic will make the browser compatible with more devices at the
# cost of disabling hardware-specific optimizations. It is highly recommended
# to leave `generic` disabled.
generic ? false,
debugBuild ? false,
# On 32bit platforms, we disable adding "-g" for easier linking.
enableDebugSymbols ? !stdenv.hostPlatform.is32bit,
alsaSupport ? stdenv.hostPlatform.isLinux,
ffmpegSupport ? true,
gssSupport ? true,
jackSupport ? stdenv.hostPlatform.isLinux,
jemallocSupport ? !stdenv.hostPlatform.isMusl,
pipewireSupport ? waylandSupport && webrtcSupport,
pulseaudioSupport ? stdenv.hostPlatform.isLinux,
sndioSupport ? stdenv.hostPlatform.isLinux,
waylandSupport ? true,
privacySupport ? false,
# WARNING: NEVER set any of the options below to `true` by default.
# Set to `!privacySupport` or `false`.
crashreporterSupport ? !privacySupport && !stdenv.hostPlatform.isRiscV && !stdenv.hostPlatform.isMusl,
geolocationSupport ? !privacySupport,
webrtcSupport ? !privacySupport,
}: let
surfer = buildNpmPackage {
pname = "surfer";
version = "1.4.21";
src = fetchFromGitHub {
owner = "zen-browser";
repo = "surfer";
rev = "7f6da82ec44d210875b9a9c40b2169df0c88ff44";
hash = "sha256-QfckIXxg5gUNvoofM39ZEiKkYV62ZJduHKVd171HQBw=";
};
patches = [./surfer-dont-check-update.patch];
npmDepsHash = "sha256-p0RVqn0Yfe0jxBcBa/hYj5g9XSVMFhnnZT+au+bMs18=";
makeCacheWritable = true;
SHARP_IGNORE_GLOBAL_LIBVIPS = false;
nativeBuildInputs = [pkg-config];
buildInputs = [vips];
};
llvmPackages0 = rustc.llvmPackages;
llvmPackagesBuildBuild0 = pkgsBuildBuild.rustc.llvmPackages;
llvmPackages = llvmPackages0.override {
bootBintoolsNoLibc = null;
bootBintools = null;
};
llvmPackagesBuildBuild = llvmPackagesBuildBuild0.override {
bootBintoolsNoLibc = null;
bootBintools = null;
};
buildStdenv = overrideCC llvmPackages.stdenv (
llvmPackages.stdenv.cc.override {bintools = buildPackages.rustc.llvmPackages.bintools;}
);
wasiSysRoot = runCommand "wasi-sysroot" {} ''
mkdir -p "$out"/lib/wasm32-wasi
for lib in ${pkgsCross.wasi32.llvmPackages.libcxx}/lib/*; do
ln -s "$lib" "$out"/lib/wasm32-wasi
done
'';
firefox-l10n = fetchFromGitHub {
owner = "mozilla-l10n";
repo = "firefox-l10n";
rev = "cb528e0849a41c961f7c1ecb9e9604fc3167e03e";
hash = "sha256-KQtSLDDPo6ffQwNs937cwccMasUJ/bnBFjY4LxrNGFg=";
};
in
buildStdenv.mkDerivation rec {
pname = "zen-browser-unwrapped";
version = "1.0.1-a.7";
src = fetchFromGitHub {
owner = "zen-browser";
repo = "desktop";
rev = "2345563879de10bec3f94ad60408f63e7d2e5780";
leaveDotGit = true;
fetchSubmodules = true;
hash = lib.fakeHash;
};
firefoxVersion = (lib.importJSON "${src}/surfer.json").version.version;
firefoxSrc = fetchurl {
url = "mirror://mozilla/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.xz";
hash = "sha256-AnIloemwdPAHLiLHJkzyew0jZMZ1w8qBGqbCX7Abn3A=";
};
SURFER_COMPAT = generic;
nativeBuildInputs =
[
autoconf
cargo
git
gnum4
llvmPackagesBuildBuild.bintools
makeWrapper
nasm
nodejs
pkg-config
python3
rsync
rust-cbindgen
rustPlatform.bindgenHook
rustc
surfer
unzip
wrapGAppsHook3
lib.custom.pkgs-unstable.xorg.xvfb
]
++ lib.optionals crashreporterSupport [
dump_syms
patchelf
];
buildInputs =
[
atk
cairo
cups
dbus
dbus-glib
ffmpeg
fontconfig
freetype
gdk-pixbuf
gtk3
glib
icu73
libGL
libGLU
libevent
libffi
libglvnd
libjpeg
libnotify
libpng
libstartup_notification
libva
libvpx
libwebp
libxml2
mesa
nspr
nss_latest
pango
pciutils
pipewire
udev
xcb-util-cursor
xorg.libX11
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXft
xorg.libXi
xorg.libXrender
xorg.libXt
xorg.libXtst
xorg.pixman
xorg.xorgproto
xorg.libxcb
xorg.libXrandr
xorg.libXcomposite
xorg.libXfixes
xorg.libXScrnSaver
zlib
]
++ lib.optional alsaSupport alsa-lib
++ lib.optional jackSupport libjack2
++ lib.optional pulseaudioSupport libpulseaudio
++ lib.optional sndioSupport sndio
++ lib.optional gssSupport libkrb5
++ lib.optional jemallocSupport jemalloc
++ lib.optionals waylandSupport [
libdrm
libxkbcommon
];
configureScript = writeShellScript "configureMozconfig" ''
for flag in $@; do
echo "ac_add_options $flag" >> mozconfig
done
'';
configureFlags =
[
"--disable-bootstrap"
"--disable-updater"
"--enable-default-toolkit=cairo-gtk3${lib.optionalString waylandSupport "-wayland"}"
"--enable-system-pixman"
"--with-distribution-id=org.nixos"
"--with-libclang-path=${llvmPackagesBuildBuild.libclang.lib}/lib"
"--with-system-ffi"
"--with-system-icu"
"--with-system-jpeg"
"--with-system-libevent"
"--with-system-libvpx"
"--with-system-nspr"
"--with-system-nss"
"--with-system-png" # needs APNG support
"--with-system-webp"
"--with-system-zlib"
"--with-wasi-sysroot=${wasiSysRoot}"
"--host=${buildStdenv.buildPlatform.config}"
"--target=${buildStdenv.hostPlatform.config}"
]
++ [
(lib.enableFeature alsaSupport "alsa")
(lib.enableFeature ffmpegSupport "ffmpeg")
(lib.enableFeature geolocationSupport "necko-wifi")
(lib.enableFeature gssSupport "negotiateauth")
(lib.enableFeature jackSupport "jack")
(lib.enableFeature jemallocSupport "jemalloc")
(lib.enableFeature pulseaudioSupport "pulseaudio")
(lib.enableFeature sndioSupport "sndio")
(lib.enableFeature webrtcSupport "webrtc")
# --enable-release adds -ffunction-sections & LTO that require a big amount
# of RAM, and the 32-bit memory space cannot handle that linking
(lib.enableFeature (!debugBuild && !stdenv.hostPlatform.is32bit) "release")
(lib.enableFeature enableDebugSymbols "debug-symbols")
];
preConfigure = ''
export LLVM_PROFDATA=llvm-profdata
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
export WASM_CC=${pkgsCross.wasi32.stdenv.cc}/bin/${pkgsCross.wasi32.stdenv.cc.targetPrefix}cc
export WASM_CXX=${pkgsCross.wasi32.stdenv.cc}/bin/${pkgsCross.wasi32.stdenv.cc.targetPrefix}c++
export ZEN_RELEASE=1
surfer ci --brand alpha --display-version ${version}
export HOME="$TMPDIR"
git config --global user.email "nixbld@localhost"
git config --global user.name "nixbld"
install -D ${firefoxSrc} .surfer/engine/firefox-${firefoxVersion}.source.tar.xz
surfer download
surfer import
patchShebangs engine/mach engine/build engine/tools
'';
preBuild = ''
cp -r ${firefox-l10n} l10n/firefox-l10n
for lang in $(cat ./l10n/supported-languages); do
rsync -av --progress l10n/firefox-l10n/"$lang"/ l10n/"$lang" --exclude .git
done
sh scripts/copy-language-pack.sh en-US
for lang in $(cat ./l10n/supported-languages); do
sh scripts/copy-language-pack.sh "$lang"
done
Xvfb :2 -screen 0 1024x768x24 &
export DISPLAY=:2
'';
buildPhase = ''
runHook preBuild
surfer build
runHook postBuild
'';
preInstall = ''
cd engine/obj-*
'';
meta = {
mainProgram = "zen";
description = "Firefox based browser with a focus on privacy and customization";
homepage = "https://www.zen-browser.app/";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [matthewpi];
platforms = lib.platforms.unix;
};
enableParallelBuilding = true;
requiredSystemFeatures = ["big-parallel"];
passthru = {
binaryName = meta.mainProgram;
inherit alsaSupport;
inherit jackSupport;
inherit pipewireSupport;
inherit sndioSupport;
inherit nspr;
inherit ffmpegSupport;
inherit gssSupport;
inherit gtk3;
inherit wasiSysRoot;
};
}

View file

@ -0,0 +1,19 @@
diff --git a/src/index.ts b/src/index.ts
index 3d41389..f6bfb95 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -19,7 +19,6 @@ import { resolve } from 'node:path'
import { errorHandler, config as configInited, versionFormatter } from './utils'
import { commands } from './cmds'
import { BIN_NAME, ENGINE_DIR } from './constants'
-import { updateCheck } from './middleware/update-check'
import { registerCommand } from './middleware/register-command'
import { log } from './log'
@@ -83,7 +82,6 @@ async function middleware(command: commander.Command) {
// If the program is verbose, store that fact within the logger
log.isDebug = program.opts().verbose
- await updateCheck()
registerCommand(command.name())
}

View file

@ -1,95 +1,8 @@
{
pkgs ? import <nixpkgs> {},
lib,
}: let
wrapFirefox,
custom,
}:
wrapFirefox custom.zen-browser-unwrapped {
pname = "zen-browser";
version = "1.0.1-a.5";
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
]
++ (with pkgs.xorg; [
libxcb
libX11
libXcursor
libXrandr
libXi
libXext
libXcomposite
libXdamage
libXfixes
libXScrnSaver
]);
in
pkgs.stdenv.mkDerivation {
inherit version pname;
src = builtins.fetchTarball {
url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-specific.tar.bz2";
sha256 = "sha256:0rj8x0b7vnl6zj8mky9qip54l1cp8rpy0465gr28zsjnjhp7qyak";
};
desktopSrc = ./.;
phases = ["installPhase" "fixupPhase"];
nativeBuildInputs = [pkgs.makeWrapper pkgs.copyDesktopItems pkgs.wrapGAppsHook];
installPhase = ''
mkdir -p $out/bin && cp -r $src/* $out/bin
install -D $desktopSrc/zen.desktop $out/share/applications/zen.desktop
install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen.png
'';
fixupPhase = ''
chmod 755 $out/bin/*
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/zen
wrapProgram $out/bin/zen --set LD_LIBRARY_PATH "${pkgs.lib.makeLibraryPath runtimeLibs}" \
--set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/zen-bin
wrapProgram $out/bin/zen-bin --set LD_LIBRARY_PATH "${pkgs.lib.makeLibraryPath runtimeLibs}" \
--set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/glxtest
wrapProgram $out/bin/glxtest --set LD_LIBRARY_PATH "${pkgs.lib.makeLibraryPath runtimeLibs}"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/updater
wrapProgram $out/bin/updater --set LD_LIBRARY_PATH "${pkgs.lib.makeLibraryPath runtimeLibs}"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/vaapitest
wrapProgram $out/bin/vaapitest --set LD_LIBRARY_PATH "${pkgs.lib.makeLibraryPath runtimeLibs}"
'';
meta.mainProgram = "zen";
}
libName = "zen";
}

View file

@ -1,25 +0,0 @@
[Desktop Entry]
Name=Zen Browser
Exec=zen %u
Icon=zen
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=zen-alpha
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer;
Actions=new-window;new-private-window;profilemanager;
[Desktop Action new-window]
Name=Open a New Window
Exec=zen %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=zen --private-window %u
[Desktop Action profilemanager]
Name=Open the Profile Manager
Exec=zen --ProfileManager %u