@ -1,40 +1,49 @@
{ stdenv , lib , llvmPackages , gnChromium , ninja , which , nodejs , fetchpatch , fetchurl
# default dependencies
, gnutar , bzip2 , flac , speex , libopus
{ stdenv , lib , fetchurl , fetchpatch
# Channel data:
, channel , upstream-info
# Native build inputs:
, ninja , pkg-config
, python2 , python3 , perl
, gnutar , which
, llvmPackages
# postPatch:
, pkgsBuildHost
# configurePhase:
, gnChromium
# Build inputs:
, libpng
, bzip2 , flac , speex , libopus
, libevent , expat , libjpeg , snappy
, libpng , libcap
, xdg-utils , yasm , nasm , minizip , libwebp
, libusb1 , pciutils , nss , re2
, python2 , python3 , perl , pkg-config
, nspr , systemd , libkrb5
, libcap
, xdg-utils , minizip , libwebp
, libusb1 , re2
, ffmpeg , libxslt , libxml2
, nasm
, nspr , n ss, systemd
, util-linux , alsa-lib
, bison , gperf
, bison , gperf , libkrb5
, glib , gtk3 , dbus-glib
, glibc
, libXScrnSaver , libXcursor , libXtst , libxshmfence , libGLU , libGL
, protobuf , speechd , libXdamage , cups
, ffmpeg , libxslt , libxml2 , at-spi2-core
, jre8
, mesa
, pciutils , protobuf , speechd , libXdamage , at-spi2-core
, pipewire
, libva
, libdrm , wayland , mesa , libxkbcommon # Ozone
, libdrm , wayland , libxkbcommon # Ozone
, curl
# postPatch:
, glibc # gconv + locale
# optional dependencies
, libgcrypt ? null # gnomeSupport || cupsSupport
# package customization
# Package customization:
, gnomeSupport ? false , gnome2 ? null
, gnomeKeyringSupport ? false , libgnome-keyring3 ? null
, cupsSupport ? true , cups ? null
, proprietaryCodecs ? true
, cupsSupport ? true
, pulseSupport ? false , libpulseaudio ? null
, ungoogled ? false , ungoogled-chromium
, channel
, upstream-info
# Optional dependencies:
, libgcrypt ? null # gnomeSupport || cupsSupport
} :
buildFun :
@ -91,17 +100,6 @@ let
withCustomModes = true ;
} ;
defaultDependencies = [
( libpng . override { apngSupport = false ; } ) # https://bugs.chromium.org/p/chromium/issues/detail?id=752403
bzip2 flac speex opusWithCustomModes
libevent expat libjpeg snappy
libcap
xdg-utils minizip libwebp
libusb1 re2
ffmpeg libxslt libxml2
nasm
] ;
# build paths and release info
packageName = extraAttrs . packageName or extraAttrs . name ;
buildType = " R e l e a s e " ;
@ -136,12 +134,20 @@ let
nativeBuildInputs = [
ninja pkg-config
python2WithPackages python3WithPackages perl nodejs
python2WithPackages python3WithPackages perl
gnutar which
llvmPackages . bintools
] ;
buildInputs = defaultDependencies ++ [
buildInputs = [
( libpng . override { apngSupport = false ; } ) # https://bugs.chromium.org/p/chromium/issues/detail?id=752403
bzip2 flac speex opusWithCustomModes
libevent expat libjpeg snappy
libcap
xdg-utils minizip libwebp
libusb1 re2
ffmpeg libxslt libxml2
nasm
nspr nss systemd
util-linux alsa-lib
bison gperf libkrb5
@ -153,14 +159,16 @@ let
libva
libdrm wayland mesa . drivers libxkbcommon
curl
] ++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals gnomeSupport [ gnome2 . GConf libgcrypt ]
] ++ optionals gnomeSupport [ gnome2 . GConf libgcrypt ]
++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals cupsSupport [ libgcrypt cups ]
++ optional pulseSupport libpulseaudio ;
patches = [
./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed)
./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
# Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed):
./patches/no-build-timestamps.patch
# For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags:
./patches/widevine-79.patch
# Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
./patches/fix-missing-atspi2-dependency.patch
] ++ lib . optionals ( versionRange " 9 1 " " 9 4 . 0 . 4 5 8 3 . 0 " ) [
@ -239,8 +247,8 @@ let
patchShebangs .
# Link to our own Node.js and Java (required during the build):
mkdir - p third_party/node/linux/node-linux-x64/bin
ln - s " $ ( c o m m a n d - v n o d e ) " third_party/node/linux/node-linux-x64/bin/node
ln - s " ${ jre8 } / b i n / j a v a " third_party/jdk/current/bin /
ln - s " ${ pkgsBuildHost . nodejs } / b i n / n o d e " third_party/node/linux/node-linux-x64/bin/node
ln - s " ${ pkgsBuildHost . jre8 } / b i n / j a v a " third_party/jdk/current/bin /
# Allow building against system libraries in official builds
sed - i ' s/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD / ' tools/generate_shim_headers/generate_shim_headers.py
@ -272,9 +280,9 @@ let
google_api_key = " A I z a S y D G i 1 5 Z w l 1 1 U N e 6 Y - 5 X W _ u p s f y w 3 1 q w Z P I " ;
# Optional features:
use_cups = cupsSupport ;
use_gio = gnomeSupport ;
use_gnome_keyring = gnomeKeyringSupport ;
use_cups = cupsSupport ;
# Feature overrides:
# Native Client support was deprecated in 2020 and support will end in June 2021: