update zen
This commit is contained in:
parent
a836ceec24
commit
03078ce8fa
6 changed files with 405 additions and 128 deletions
18
flake.lock
generated
18
flake.lock
generated
|
|
@ -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": {
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
370
packages/zen-browser-unwrapped/default.nix
Normal file
370
packages/zen-browser-unwrapped/default.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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())
|
||||
}
|
||||
|
|
@ -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";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue