Merge pull request #79115 from flokli/simplify-firefox
firefoxPackages.*: remove unsupported packages, clean up derivation
This commit is contained in:
commit
1b2b9dac5c
|
@ -1,39 +0,0 @@
|
||||||
{ stdenv, fetchgit, unzip, firefox-esr-52, makeWrapper }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pkgname = "conkeror";
|
|
||||||
version = "1.0.4";
|
|
||||||
name = "${pkgname}-${version}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = git://repo.or.cz/conkeror.git;
|
|
||||||
rev = "refs/tags/${version}";
|
|
||||||
sha256 = "10c57wqybp9kcjpkb01wxq0h3vafcdb1g5kb4k8sb2zajg59afv8";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ unzip makeWrapper ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/libexec/conkeror
|
|
||||||
cp -r * $out/libexec/conkeror
|
|
||||||
|
|
||||||
makeWrapper ${firefox-esr-52}/bin/firefox $out/bin/conkeror \
|
|
||||||
--add-flags "-app $out/libexec/conkeror/application.ini"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "A keyboard-oriented, customizable, extensible web browser";
|
|
||||||
longDescription = ''
|
|
||||||
Conkeror is a keyboard-oriented, highly-customizable, highly-extensible
|
|
||||||
web browser based on Mozilla XULRunner, written mainly in JavaScript,
|
|
||||||
and inspired by exceptional software such as Emacs and vi. Conkeror
|
|
||||||
features a sophisticated keyboard system, allowing users to run commands
|
|
||||||
and interact with content in powerful and novel ways. It is
|
|
||||||
self-documenting, featuring a powerful interactive help system.
|
|
||||||
'';
|
|
||||||
homepage = http://conkeror.org/;
|
|
||||||
license = with licenses; [ mpl11 gpl2 lgpl21 ];
|
|
||||||
maintainers = with maintainers; [ astsmtl ];
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ pname, ffversion, meta, updateScript ? null
|
{ pname, ffversion, meta, updateScript ? null
|
||||||
, src, unpackPhase ? null, patches ? []
|
, src, unpackPhase ? null, patches ? []
|
||||||
, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? []
|
, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [] }:
|
||||||
, isIceCatLike ? false, icversion ? null
|
|
||||||
, isTorBrowserLike ? false, tbversion ? null }:
|
|
||||||
|
|
||||||
{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip, libIDL
|
{ lib, stdenv, pkgconfig, pango, perl, python2, python3, zip, libIDL
|
||||||
, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
|
, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
|
||||||
|
@ -27,16 +25,14 @@
|
||||||
|
|
||||||
## privacy-related options
|
## privacy-related options
|
||||||
|
|
||||||
, privacySupport ? isTorBrowserLike || isIceCatLike
|
, privacySupport ? false
|
||||||
|
|
||||||
# WARNING: NEVER set any of the options below to `true` by default.
|
# WARNING: NEVER set any of the options below to `true` by default.
|
||||||
# Set to `!privacySupport` or `false`.
|
# Set to `!privacySupport` or `false`.
|
||||||
|
|
||||||
# webrtcSupport breaks the aarch64 build on version >= 60, fixed in 63.
|
# webrtcSupport breaks the aarch64 build on version >= 60, fixed in 63.
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1434589
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1434589
|
||||||
, webrtcSupport ? !privacySupport && (!stdenv.isAarch64 || !(
|
, webrtcSupport ? !privacySupport
|
||||||
lib.versionAtLeast ffversion "60" && lib.versionOlder ffversion "63"
|
|
||||||
))
|
|
||||||
, geolocationSupport ? !privacySupport
|
, geolocationSupport ? !privacySupport
|
||||||
, googleAPISupport ? geolocationSupport
|
, googleAPISupport ? geolocationSupport
|
||||||
, crashreporterSupport ? false
|
, crashreporterSupport ? false
|
||||||
|
@ -79,7 +75,7 @@ let
|
||||||
default-toolkit = if stdenv.isDarwin then "cairo-cocoa"
|
default-toolkit = if stdenv.isDarwin then "cairo-cocoa"
|
||||||
else "cairo-gtk${if gtk3Support then "3${lib.optionalString waylandSupport "-wayland"}" else "2"}";
|
else "cairo-gtk${if gtk3Support then "3${lib.optionalString waylandSupport "-wayland"}" else "2"}";
|
||||||
|
|
||||||
binaryName = if isIceCatLike then "icecat" else "firefox";
|
binaryName = "firefox";
|
||||||
binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName;
|
binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName;
|
||||||
|
|
||||||
browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName;
|
browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName;
|
||||||
|
@ -87,21 +83,17 @@ let
|
||||||
execdir = if stdenv.isDarwin
|
execdir = if stdenv.isDarwin
|
||||||
then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS"
|
then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS"
|
||||||
else "/bin";
|
else "/bin";
|
||||||
|
in
|
||||||
|
|
||||||
browserVersion = if isIceCatLike then icversion
|
stdenv.mkDerivation ({
|
||||||
else if isTorBrowserLike then tbversion
|
name = "${pname}-unwrapped-${ffversion}";
|
||||||
else ffversion;
|
version = ffversion;
|
||||||
|
|
||||||
browserPatches = [
|
inherit src unpackPhase meta;
|
||||||
|
|
||||||
|
patches = [
|
||||||
./env_var_for_system_dir.patch
|
./env_var_for_system_dir.patch
|
||||||
]
|
] ++ lib.optionals (stdenv.isAarch64) [
|
||||||
++ lib.optional (lib.versionAtLeast ffversion "63" && lib.versionOlder ffversion "68.3.0")
|
|
||||||
(fetchpatch { # https://bugzilla.mozilla.org/show_bug.cgi?id=1500436#c29
|
|
||||||
name = "write_error-parallel_make.diff";
|
|
||||||
url = "https://hg.mozilla.org/mozilla-central/raw-diff/562655fe/python/mozbuild/mozbuild/action/node.py";
|
|
||||||
sha256 = "11d7rgzinb4mwl7yzhidjkajynmxgmffr4l9isgskfapyax9p88y";
|
|
||||||
})
|
|
||||||
++ lib.optionals (stdenv.isAarch64 && lib.versionAtLeast ffversion "66" && lib.versionOlder ffversion "67") [
|
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = "https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/09c7fa0dc1d87922e3b464c0fa084df1227fca79/extra/firefox/arm.patch";
|
url = "https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/09c7fa0dc1d87922e3b464c0fa084df1227fca79/extra/firefox/arm.patch";
|
||||||
sha256 = "1vbpih23imhv5r3g21m3m541z08n9n9j1nvmqax76bmyhn7mxp32";
|
sha256 = "1vbpih23imhv5r3g21m3m541z08n9n9j1nvmqax76bmyhn7mxp32";
|
||||||
|
@ -117,15 +109,6 @@ let
|
||||||
})
|
})
|
||||||
++ patches;
|
++ patches;
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
name = "${pname}-unwrapped-${version}";
|
|
||||||
version = browserVersion;
|
|
||||||
|
|
||||||
inherit src unpackPhase meta;
|
|
||||||
|
|
||||||
patches = browserPatches;
|
|
||||||
|
|
||||||
# Ignore trivial whitespace changes in patches, this fixes compatibility of
|
# Ignore trivial whitespace changes in patches, this fixes compatibility of
|
||||||
# ./env_var_for_system_dir.patch with Firefox >=65 without having to track
|
# ./env_var_for_system_dir.patch with Firefox >=65 without having to track
|
||||||
|
@ -141,16 +124,14 @@ stdenv.mkDerivation (rec {
|
||||||
xorg.libXext sqlite unzip makeWrapper
|
xorg.libXext sqlite unzip makeWrapper
|
||||||
libevent libstartup_notification libvpx /* cairo */
|
libevent libstartup_notification libvpx /* cairo */
|
||||||
icu libpng jemalloc glib
|
icu libpng jemalloc glib
|
||||||
|
nasm
|
||||||
|
# >= 66 requires nasm for the AV1 lib dav1d
|
||||||
|
# yasm can potentially be removed in future versions
|
||||||
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1501796
|
||||||
|
# https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ
|
||||||
|
nspr nss
|
||||||
]
|
]
|
||||||
++ lib.optionals (!isTorBrowserLike) [ nspr nss ]
|
|
||||||
++ lib.optional (lib.versionOlder ffversion "53") libXdamage
|
|
||||||
++ lib.optional (lib.versionOlder ffversion "61") hunspell
|
|
||||||
|
|
||||||
# >= 66 requires nasm for the AV1 lib dav1d
|
|
||||||
# yasm can potentially be removed in future versions
|
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1501796
|
|
||||||
# https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ
|
|
||||||
++ lib.optional (lib.versionAtLeast ffversion "66") nasm
|
|
||||||
++ lib.optional alsaSupport alsaLib
|
++ lib.optional alsaSupport alsaLib
|
||||||
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
|
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
|
||||||
++ lib.optional gtk3Support gtk3
|
++ lib.optional gtk3Support gtk3
|
||||||
|
@ -162,27 +143,33 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = toString ([
|
NIX_CFLAGS_COMPILE = toString ([
|
||||||
"-I${glib.dev}/include/gio-unix-2.0"
|
"-I${glib.dev}/include/gio-unix-2.0"
|
||||||
]
|
|
||||||
++ lib.optionals (!isTorBrowserLike) [
|
|
||||||
"-I${nss.dev}/include/nss"
|
"-I${nss.dev}/include/nss"
|
||||||
]
|
]
|
||||||
++ lib.optional (pname == "firefox-esr" && lib.versionAtLeast ffversion "68"
|
++ lib.optional (pname == "firefox-esr" && lib.versionOlder ffversion "69")
|
||||||
&& lib.versionOlder ffversion "69")
|
|
||||||
"-Wno-error=format-security");
|
"-Wno-error=format-security");
|
||||||
|
|
||||||
postPatch = lib.optionalString (lib.versionAtLeast ffversion "63.0" && !isTorBrowserLike) ''
|
postPatch = ''
|
||||||
substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h'
|
substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h'
|
||||||
'' + lib.optionalString (lib.versionAtLeast ffversion "68") ''
|
|
||||||
rm -rf obj-x86_64-pc-linux-gnu
|
rm -rf obj-x86_64-pc-linux-gnu
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
[ autoconf213 which gnused pkgconfig perl python2 cargo rustc ]
|
[
|
||||||
|
autoconf213
|
||||||
|
cargo
|
||||||
|
gnused
|
||||||
|
llvmPackages.llvm # llvm-objdump
|
||||||
|
nodejs
|
||||||
|
perl
|
||||||
|
pkgconfig
|
||||||
|
python2
|
||||||
|
python3
|
||||||
|
rust-cbindgen
|
||||||
|
rustc
|
||||||
|
which
|
||||||
|
]
|
||||||
++ lib.optional gtk3Support wrapGAppsHook
|
++ lib.optional gtk3Support wrapGAppsHook
|
||||||
++ lib.optionals stdenv.isDarwin [ xcbuild rsync ]
|
++ lib.optionals stdenv.isDarwin [ xcbuild rsync ]
|
||||||
++ lib.optional (lib.versionAtLeast ffversion "61.0") python3
|
|
||||||
++ lib.optionals (lib.versionAtLeast ffversion "63.0") [ rust-cbindgen nodejs ]
|
|
||||||
++ lib.optionals (lib.versionAtLeast ffversion "67.0") [ llvmPackages.llvm ] # llvm-objdump is required in version >=67.0
|
|
||||||
++ extraNativeBuildInputs;
|
++ extraNativeBuildInputs;
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -190,14 +177,8 @@ stdenv.mkDerivation (rec {
|
||||||
rm -f configure
|
rm -f configure
|
||||||
rm -f js/src/configure
|
rm -f js/src/configure
|
||||||
rm -f .mozconfig*
|
rm -f .mozconfig*
|
||||||
'' + (if lib.versionAtLeast ffversion "58"
|
# this will run autoconf213
|
||||||
# this will run autoconf213
|
|
||||||
then ''
|
|
||||||
configureScript="$(realpath ./mach) configure"
|
configureScript="$(realpath ./mach) configure"
|
||||||
'' else ''
|
|
||||||
make -f client.mk configure-files
|
|
||||||
configureScript="$(realpath ./configure)"
|
|
||||||
'') + lib.optionalString (lib.versionAtLeast ffversion "53") ''
|
|
||||||
export MOZCONFIG=$(pwd)/mozconfig
|
export MOZCONFIG=$(pwd)/mozconfig
|
||||||
|
|
||||||
# Set C flags for Rust's bindgen program. Unlike ordinary C
|
# Set C flags for Rust's bindgen program. Unlike ordinary C
|
||||||
|
@ -214,23 +195,16 @@ stdenv.mkDerivation (rec {
|
||||||
$NIX_CFLAGS_COMPILE"
|
$NIX_CFLAGS_COMPILE"
|
||||||
|
|
||||||
echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
|
echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
|
||||||
'' + lib.optionalString googleAPISupport ''
|
'' + (lib.optionalString googleAPISupport ''
|
||||||
# Google API key used by Chromium and Firefox.
|
# Google API key used by Chromium and Firefox.
|
||||||
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
|
# Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
|
||||||
# please get your own set of keys.
|
# please get your own set of keys.
|
||||||
echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga
|
echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga
|
||||||
# 60.5+ & 66+ did split the google API key arguments: https://bugzilla.mozilla.org/show_bug.cgi?id=1531176
|
# 60.5+ & 66+ did split the google API key arguments: https://bugzilla.mozilla.org/show_bug.cgi?id=1531176
|
||||||
${if (lib.versionAtLeast ffversion "60.6" && lib.versionOlder ffversion "61") || (lib.versionAtLeast ffversion "66") then ''
|
configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga")
|
||||||
configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga")
|
configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga")
|
||||||
configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga")
|
'') + ''
|
||||||
'' else ''
|
# AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
|
||||||
configureFlagsArray+=("--with-google-api-keyfile=$TMPDIR/ga")
|
|
||||||
''}
|
|
||||||
'' + lib.optionalString (lib.versionOlder ffversion "58") ''
|
|
||||||
cd obj-*
|
|
||||||
''
|
|
||||||
# AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
|
|
||||||
+ lib.optionalString (lib.versionAtLeast ffversion "64") ''
|
|
||||||
unset AS
|
unset AS
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -255,32 +229,15 @@ stdenv.mkDerivation (rec {
|
||||||
"--enable-jemalloc"
|
"--enable-jemalloc"
|
||||||
"--disable-gconf"
|
"--disable-gconf"
|
||||||
"--enable-default-toolkit=${default-toolkit}"
|
"--enable-default-toolkit=${default-toolkit}"
|
||||||
]
|
|
||||||
++ lib.optional (lib.versionOlder ffversion "64") "--disable-maintenance-service"
|
|
||||||
++ lib.optional (stdenv.isDarwin && lib.versionAtLeast ffversion "61") "--disable-xcode-checks"
|
|
||||||
++ lib.optional (lib.versionOlder ffversion "61") "--enable-system-hunspell"
|
|
||||||
++ lib.optionals (lib.versionAtLeast ffversion "56") [
|
|
||||||
"--with-libclang-path=${llvmPackages.libclang}/lib"
|
"--with-libclang-path=${llvmPackages.libclang}/lib"
|
||||||
"--with-clang-path=${llvmPackages.clang}/bin/clang"
|
"--with-clang-path=${llvmPackages.clang}/bin/clang"
|
||||||
]
|
|
||||||
++ lib.optionals (lib.versionAtLeast ffversion "57" && lib.versionOlder ffversion "69") [
|
|
||||||
"--enable-webrender=build"
|
|
||||||
]
|
|
||||||
|
|
||||||
# TorBrowser patches these
|
|
||||||
++ lib.optionals (!isTorBrowserLike) [
|
|
||||||
"--with-system-nspr"
|
"--with-system-nspr"
|
||||||
"--with-system-nss"
|
"--with-system-nss"
|
||||||
]
|
]
|
||||||
|
++ lib.optional (stdenv.isDarwin) "--disable-xcode-checks"
|
||||||
# and wants these
|
++ lib.optionals (lib.versionOlder ffversion "69") [
|
||||||
++ lib.optionals isTorBrowserLike ([
|
"--enable-webrender=build"
|
||||||
"--with-tor-browser-version=${tbversion}"
|
]
|
||||||
"--with-distribution-id=org.torproject"
|
|
||||||
"--enable-signmar"
|
|
||||||
"--enable-verify-mar"
|
|
||||||
"--enable-bundled-fonts"
|
|
||||||
])
|
|
||||||
|
|
||||||
++ flag alsaSupport "alsa"
|
++ flag alsaSupport "alsa"
|
||||||
++ flag pulseaudioSupport "pulseaudio"
|
++ flag pulseaudioSupport "pulseaudio"
|
||||||
|
@ -290,11 +247,6 @@ stdenv.mkDerivation (rec {
|
||||||
++ flag crashreporterSupport "crashreporter"
|
++ flag crashreporterSupport "crashreporter"
|
||||||
++ lib.optional drmSupport "--enable-eme=widevine"
|
++ lib.optional drmSupport "--enable-eme=widevine"
|
||||||
|
|
||||||
++ lib.optionals (lib.versionOlder ffversion "60") ([]
|
|
||||||
++ flag geolocationSupport "mozril-geoloc"
|
|
||||||
++ flag safeBrowsingSupport "safe-browsing"
|
|
||||||
)
|
|
||||||
|
|
||||||
++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
|
++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
|
||||||
else [ "--disable-debug" "--enable-release"
|
else [ "--disable-debug" "--enable-release"
|
||||||
"--enable-optimize"
|
"--enable-optimize"
|
||||||
|
@ -302,29 +254,16 @@ stdenv.mkDerivation (rec {
|
||||||
++ lib.optional enableOfficialBranding "--enable-official-branding"
|
++ lib.optional enableOfficialBranding "--enable-official-branding"
|
||||||
++ extraConfigureFlags;
|
++ extraConfigureFlags;
|
||||||
|
|
||||||
# Before 58 we have to run `make -f client.mk configure-files` at
|
postConfigure = ''
|
||||||
# the top level, and then run `./configure` in the obj-* dir (see
|
|
||||||
# above), but in 58 we have to instead run `./mach configure` at the
|
|
||||||
# top level and then run `make` in obj-*. (We can also run the
|
|
||||||
# `make` at the top level in 58, but then we would have to `cd` to
|
|
||||||
# `make install` anyway. This is ugly, but simple.)
|
|
||||||
postConfigure = lib.optionalString (lib.versionAtLeast ffversion "58") ''
|
|
||||||
cd obj-*
|
cd obj-*
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = lib.optionalString isTorBrowserLike ''
|
|
||||||
buildFlagsArray=("MOZ_APP_DISPLAYNAME=Tor Browser")
|
|
||||||
'';
|
|
||||||
|
|
||||||
makeFlags = lib.optionals enableOfficialBranding [
|
makeFlags = lib.optionals enableOfficialBranding [
|
||||||
"MOZILLA_OFFICIAL=1"
|
"MOZILLA_OFFICIAL=1"
|
||||||
"BUILD_OFFICIAL=1"
|
"BUILD_OFFICIAL=1"
|
||||||
]
|
]
|
||||||
++ extraMakeFlags;
|
++ extraMakeFlags;
|
||||||
|
|
||||||
RUSTFLAGS = if (lib.versionAtLeast ffversion "67"/*somewhere betwween ESRs*/)
|
|
||||||
then null else "--cap-lints warn";
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
doCheck = false; # "--disable-tests" above
|
doCheck = false; # "--disable-tests" above
|
||||||
|
|
||||||
|
@ -355,10 +294,9 @@ stdenv.mkDerivation (rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit version updateScript;
|
inherit updateScript;
|
||||||
|
version = ffversion;
|
||||||
isFirefox3Like = true;
|
isFirefox3Like = true;
|
||||||
inherit isIceCatLike;
|
|
||||||
inherit isTorBrowserLike;
|
|
||||||
gtk = gtk2;
|
gtk = gtk2;
|
||||||
inherit nspr;
|
inherit nspr;
|
||||||
inherit ffmpegSupport;
|
inherit ffmpegSupport;
|
||||||
|
@ -366,12 +304,12 @@ stdenv.mkDerivation (rec {
|
||||||
inherit execdir;
|
inherit execdir;
|
||||||
inherit browserName;
|
inherit browserName;
|
||||||
} // lib.optionalAttrs gtk3Support { inherit gtk3; };
|
} // lib.optionalAttrs gtk3Support { inherit gtk3; };
|
||||||
|
|
||||||
} //
|
} //
|
||||||
# the build system verifies checksums of the bundled rust sources
|
# the build system verifies checksums of the bundled rust sources
|
||||||
# ./third_party/rust is be patched by our libtool fixup code in stdenv
|
# ./third_party/rust is be patched by our libtool fixup code in stdenv
|
||||||
# unfortunately we can't just set this to `false` when we do not want it.
|
# unfortunately we can't just set this to `false` when we do not want it.
|
||||||
# See https://github.com/NixOS/nixpkgs/issues/77289 for more details
|
# See https://github.com/NixOS/nixpkgs/issues/77289 for more details
|
||||||
|
|
||||||
lib.optionalAttrs (lib.versionAtLeast ffversion "72") {
|
lib.optionalAttrs (lib.versionAtLeast ffversion "72") {
|
||||||
# Ideally we would figure out how to tell the build system to not
|
# Ideally we would figure out how to tell the build system to not
|
||||||
# care about changed hashes as we are already doing that when we
|
# care about changed hashes as we are already doing that when we
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, callPackage, fetchurl, fetchFromGitHub, overrideCC, gccStdenv, gcc6 }:
|
{ config, lib, callPackage, fetchurl, fetchFromGitHub, overrideCC, gccStdenv, gcc6 }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
@ -40,64 +40,6 @@ rec {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Do not remove. This is the last version of Firefox that supports
|
|
||||||
# the old plugins. While this package is unsafe to use for browsing
|
|
||||||
# the web, there are many old useful plugins targeting offline
|
|
||||||
# activities (e.g. ebook readers, syncronous translation, etc) that
|
|
||||||
# will probably never be ported to WebExtensions API.
|
|
||||||
firefox-esr-52 = (common rec {
|
|
||||||
pname = "firefox-esr";
|
|
||||||
ffversion = "52.9.0esr";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
|
||||||
sha512 = "bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# this one is actually an omnipresent bug
|
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
|
|
||||||
./fix-pa-context-connect-retval.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = firefox.meta // {
|
|
||||||
description = "A web browser built from Firefox Extended Support Release source tree";
|
|
||||||
knownVulnerabilities = [ "Support ended in August 2018." ];
|
|
||||||
};
|
|
||||||
}).override {
|
|
||||||
stdenv = overrideCC gccStdenv gcc6; # gcc7 fails with "undefined reference to `__divmoddi4'"
|
|
||||||
gtk3Support = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
firefox-esr-60 = common rec {
|
|
||||||
pname = "firefox-esr";
|
|
||||||
ffversion = "60.9.0esr";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
|
|
||||||
sha512 = "4baea5c9c4eff257834bbaee6d7786f69f7e6bacd24ca13c2705226f4a0d88315ab38c650b2c5e9c76b698f2debc7cea1e5a99cb4dc24e03c48a24df5143a3cf";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./no-buildconfig-ffx65.patch
|
|
||||||
|
|
||||||
# this one is actually an omnipresent bug
|
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
|
|
||||||
./fix-pa-context-connect-retval.patch
|
|
||||||
|
|
||||||
missing-documentation-patch
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = firefox.meta // {
|
|
||||||
description = "A web browser built from Firefox Extended Support Release source tree";
|
|
||||||
knownVulnerabilities = [ "Support ended around October 2019." ];
|
|
||||||
};
|
|
||||||
updateScript = callPackage ./update.nix {
|
|
||||||
attrPath = "firefox-esr-60-unwrapped";
|
|
||||||
versionSuffix = "esr";
|
|
||||||
versionKey = "ffversion";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
firefox-esr-68 = common rec {
|
firefox-esr-68 = common rec {
|
||||||
pname = "firefox-esr";
|
pname = "firefox-esr";
|
||||||
ffversion = "68.4.2esr";
|
ffversion = "68.4.2esr";
|
||||||
|
@ -119,86 +61,23 @@ rec {
|
||||||
versionKey = "ffversion";
|
versionKey = "ffversion";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
} // lib.optionalAttrs (config.allowAliases or true) {
|
||||||
|
#### ALIASES
|
||||||
|
#### remove after 20.03 branchoff
|
||||||
|
|
||||||
} // (let
|
firefox-esr-52 = throw ''
|
||||||
|
firefoxPackages.firefox-esr-52 was removed as it's an unsupported ESR with
|
||||||
|
open security issues. If you need it because you need to run some plugins
|
||||||
|
not having been ported to WebExtensions API, import it from an older
|
||||||
|
nixpkgs checkout still containing it.
|
||||||
|
'';
|
||||||
|
firefox-esr-60 = throw "firefoxPackages.firefox-esr-60 was removed as it's an unsupported ESR with open security issues.";
|
||||||
|
|
||||||
iccommon = args: common (args // {
|
icecat = throw "firefoxPackages.icecat was removed as even its latest upstream version is based on an unsupported ESR release with open security issues.";
|
||||||
pname = "icecat";
|
icecat-52 = throw "firefoxPackages.icecat was removed as even its latest upstream version is based on an unsupported ESR release with open security issues.";
|
||||||
isIceCatLike = true;
|
|
||||||
|
|
||||||
meta = (args.meta or {}) // {
|
|
||||||
description = "The GNU version of the Firefox web browser";
|
|
||||||
longDescription = ''
|
|
||||||
GNUzilla is the GNU version of the Mozilla suite, and GNU
|
|
||||||
IceCat is the GNU version of the Firefox web browser.
|
|
||||||
|
|
||||||
Notable differences from mainline Firefox:
|
|
||||||
|
|
||||||
- entirely free software, no non-free plugins, addons,
|
|
||||||
artwork,
|
|
||||||
- no telemetry, no "studies",
|
|
||||||
- sane privacy and security defaults (for instance, unlike
|
|
||||||
Firefox, IceCat does _zero_ network requests on startup by
|
|
||||||
default, which means that with IceCat you won't need to
|
|
||||||
unplug your Ethernet cable each time you want to create a
|
|
||||||
new browser profile without announcing that action to a
|
|
||||||
bunch of data-hungry corporations),
|
|
||||||
- all essential privacy and security settings can be
|
|
||||||
configured directly from the main screen,
|
|
||||||
- optional first party isolation (like TorBrowser),
|
|
||||||
- comes with HTTPS Everywhere (like TorBrowser), Tor Browser
|
|
||||||
Button (like TorBrowser Bundle), LibreJS, and SpyBlock
|
|
||||||
plugins out of the box.
|
|
||||||
|
|
||||||
This package can be installed together with Firefox and
|
|
||||||
TorBrowser, it will use distinct binary names and profile
|
|
||||||
directories.
|
|
||||||
'';
|
|
||||||
homepage = "https://www.gnu.org/software/gnuzilla/";
|
|
||||||
platforms = lib.platforms.unix;
|
|
||||||
license = with lib.licenses; [ mpl20 gpl3Plus ];
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
in {
|
|
||||||
|
|
||||||
icecat = iccommon rec {
|
|
||||||
ffversion = "60.3.0";
|
|
||||||
icversion = "${ffversion}-gnu1";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://gnu/gnuzilla/${ffversion}/icecat-${icversion}.tar.bz2";
|
|
||||||
sha256 = "0icnl64nxcyf7dprpdpygxhabsvyhps8c3ixysj9bcdlj9q34ib1";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./no-buildconfig.patch
|
|
||||||
missing-documentation-patch
|
|
||||||
];
|
|
||||||
meta.knownVulnerabilities = [ "Support ended around October 2019." ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Similarly to firefox-esr-52 above.
|
|
||||||
icecat-52 = iccommon rec {
|
|
||||||
ffversion = "52.6.0";
|
|
||||||
icversion = "${ffversion}-gnu1";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://gnu/gnuzilla/${ffversion}/icecat-${icversion}.tar.bz2";
|
|
||||||
sha256 = "09fn54glqg1aa93hnz5zdcy07cps09dbni2b4200azh6nang630a";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# this one is actually an omnipresent bug
|
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
|
|
||||||
./fix-pa-context-connect-retval.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
meta.knownVulnerabilities = [ "Support ended in August 2018." ];
|
|
||||||
};
|
|
||||||
|
|
||||||
tor-browser-7-5 = throw "firefoxPackages.tor-browser-7-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
|
tor-browser-7-5 = throw "firefoxPackages.tor-browser-7-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
|
||||||
tor-browser-8-5 = throw "firefoxPackages.tor-browser-8-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
|
tor-browser-8-5 = throw "firefoxPackages.tor-browser-8-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
|
||||||
tor-browser = throw "firefoxPackages.tor-browser was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
|
tor-browser = throw "firefoxPackages.tor-browser was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
|
||||||
|
|
||||||
})
|
}
|
||||||
|
|
|
@ -117,6 +117,18 @@ mapAliases ({
|
||||||
firefox-esr-wrapper = firefox-esr; # 2016-01
|
firefox-esr-wrapper = firefox-esr; # 2016-01
|
||||||
firefox-wrapper = firefox; # 2016-01
|
firefox-wrapper = firefox; # 2016-01
|
||||||
firefoxWrapper = firefox; # 2015-09
|
firefoxWrapper = firefox; # 2015-09
|
||||||
|
firefox-esr-52 = firefoxPackages.firefox-esr-52; # 2020-02, remove after 20.03 branchoff
|
||||||
|
firefox-esr-52-unwrapped = firefoxPackages.firefox-esr-52; # 2020-02, remove after 20.03 branchoff
|
||||||
|
firefox-esr-60 = firefoxPackages.firefox-esr-60; # 2020-02, remove after 20.03 branchoff
|
||||||
|
firefox-esr-60-unwrapped = firefoxPackages.firefox-esr-60; # 2020-02, remove after 20.03 branchoff
|
||||||
|
icecat = firefoxPackages.icecat; # 2020-02, remove after 20.03 branchoff
|
||||||
|
icecat-unwrapped = firefoxPackages.icecat; # 2020-02, remove after 20.03 branchoff
|
||||||
|
conkeror-unwrapped = conkeror; # 2020-02, remove after 20.03 branchoff
|
||||||
|
conkeror = throw ''
|
||||||
|
Conkeror doesn't work with any secure firefox release.
|
||||||
|
Please move to some of the alternatives at http://conkeror.org/Alternatives
|
||||||
|
''; # 2020-02, remove after 20.03 branchoff
|
||||||
|
|
||||||
firestr = throw "firestr has been removed."; # added 2019-12-08
|
firestr = throw "firestr has been removed."; # added 2019-12-08
|
||||||
flameGraph = flamegraph; # added 2018-04-25
|
flameGraph = flamegraph; # added 2018-04-25
|
||||||
font-awesome-ttf = font-awesome; # 2018-02-25
|
font-awesome-ttf = font-awesome; # 2018-02-25
|
||||||
|
|
|
@ -18493,9 +18493,6 @@ in
|
||||||
|
|
||||||
comical = callPackage ../applications/graphics/comical { };
|
comical = callPackage ../applications/graphics/comical { };
|
||||||
|
|
||||||
conkeror-unwrapped = callPackage ../applications/networking/browsers/conkeror { };
|
|
||||||
conkeror = wrapFirefox conkeror-unwrapped { };
|
|
||||||
|
|
||||||
containerd = callPackage ../applications/virtualization/containerd { };
|
containerd = callPackage ../applications/virtualization/containerd { };
|
||||||
|
|
||||||
convchain = callPackage ../tools/graphics/convchain {};
|
convchain = callPackage ../tools/graphics/convchain {};
|
||||||
|
@ -19113,18 +19110,11 @@ in
|
||||||
});
|
});
|
||||||
|
|
||||||
firefox-unwrapped = firefoxPackages.firefox;
|
firefox-unwrapped = firefoxPackages.firefox;
|
||||||
firefox-esr-52-unwrapped = firefoxPackages.firefox-esr-52;
|
|
||||||
firefox-esr-60-unwrapped = firefoxPackages.firefox-esr-60;
|
|
||||||
firefox-esr-68-unwrapped = firefoxPackages.firefox-esr-68;
|
firefox-esr-68-unwrapped = firefoxPackages.firefox-esr-68;
|
||||||
icecat-unwrapped = firefoxPackages.icecat;
|
|
||||||
|
|
||||||
firefox = wrapFirefox firefox-unwrapped { };
|
firefox = wrapFirefox firefox-unwrapped { };
|
||||||
firefox-wayland = wrapFirefox firefox-unwrapped { gdkWayland = true; };
|
firefox-wayland = wrapFirefox firefox-unwrapped { gdkWayland = true; };
|
||||||
firefox-esr-52 = wrapFirefox firefox-esr-52-unwrapped { };
|
|
||||||
firefox-esr-60 = wrapFirefox firefox-esr-60-unwrapped { };
|
|
||||||
firefox-esr-68 = wrapFirefox firefox-esr-68-unwrapped { };
|
firefox-esr-68 = wrapFirefox firefox-esr-68-unwrapped { };
|
||||||
firefox-esr = firefox-esr-68;
|
firefox-esr = firefox-esr-68;
|
||||||
icecat = wrapFirefox icecat-unwrapped { };
|
|
||||||
|
|
||||||
firefox-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
|
firefox-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
|
||||||
channel = "release";
|
channel = "release";
|
||||||
|
|
Loading…
Reference in a new issue