Commit Graph

124 Commits

Author SHA1 Message Date
Martin Weinelt
63e8aa549c
firefox: 84.0.2 -> 85.0 2021-01-28 04:09:15 +01:00
Bernardo Meurer
9fcf3e5c25
Merge pull request #109598 from S-NA/wip/firefox-aarch64-lto
firefox: limit disable-elf-hack to arm, x86{,_64}
2021-01-17 08:03:35 +00:00
Ben Siraphob
5d566c43b4 pkgs/applications: pkgconfig -> pkg-config 2021-01-16 23:49:59 -08:00
S. Nordin Abouzahra
00b75b7024 firefox: limit disable-elf-hack to arm, x86{,_64}
This is a follow up to #106617 which brought LTO support but broke the
AArch64 Firefox builds.
2021-01-16 22:26:40 -05:00
S. Nordin Abouzahra
dbe008a52a firefox: remove python2 dependency
Python 2 is no longer required to build Firefox.
2021-01-13 08:06:48 -05:00
S. Nordin Abouzahra
7415d0589d firefox: overhaul LTO
Enable LTO support on Linux by default again.

Add patch to fix dependentlibs.list generation under LTO. This is
necessary for fixing firefox-wayland crashing when built with LTO.

Add makeFlags which set ar, ranlib, and nm to be llvm-ar, llvm-ranlib
and llvm-nm when building with llvm-based LTO. (bmo#1480005)
2021-01-13 08:06:48 -05:00
S. Nordin Abouzahra
40b4eb1c52 firefox: simplify NIX_LDFLAGS usage
This was required to solve the XPCOMGlueLoad error when building with
LTO. However, it turns out libxul.so is supposed to have some libraries
that are reported as not found by ldd. Setting the RPATH worked around
the error as it forced dependency resolution but failed to fix the real
issue of broken generation of dependentlibs.list.

The libraries that are reported as not found by ldd are supposed to be
dlopened through the logic found in nsXPCOMGlue.cpp. However since the
generation of dependentlibs.list is broken under LTO this did not
happen. Instead of pulling libwayland-client.so from the GTK libraries
it found the stub library first (libmozwayland.so). The stub library
causes (as it should) wl_display_connect to always return NULL which is
the cause of the segmentation fault and LTO breaking wayland support.

Remove the hardcoded path used for the XPCOMGlueLoad error workaround
in NIX_LDFLAGS. libunwind is still unfortunately needed. Once the issue
of the generation of dependentlibs.list being borked is fixed it should
remedy the wayland crash issue on LTO.
2021-01-13 08:06:47 -05:00
S. Nordin Abouzahra
a277fca1c4 firefox: remove patchelf usage
Firefox has a number of optional dependencies that get dlopened.
Instead of using patchelf to set the RPATH use LD_LIBRARY_PATH.
The motivation for this is we already set LD_LIBRARY_PATH in the
wrapper on Linux.
2021-01-13 08:06:46 -05:00
S. Nordin Abouzahra
80e863c52c firefox: clean up optionals
Change `lib.optionals a [ b ]` to `lib.optional a b`.
2021-01-13 08:06:45 -05:00
S. Nordin Abouzahra
96c34702e9 firefox: restrict system NSPR workaround
It only affected FF80 so place an upper bound restriction. See
bmo#1661096 for details.

This fixes substituteStream() warnings about missing patterns which
appeared in the logs.
2021-01-13 08:06:45 -05:00
S. Nordin Abouzahra
c6f113a3f4 firefox: remove superfluous NIX_CFLAGS_COMPILE
It was added for nspr and nss back in the 55.0.3 to 56.0 upgrade. It
also served as a workaround for an undeclared gio-unix-2.0 dependency.
Sometime afterwards nspr was removed, leaving just the two. Since then,
upstream has added a declaration for gio-unix-2.0 (in FF62). As for the
nss include it seemingly has no purpose since current firefox builds
with it removed.
2021-01-13 08:06:44 -05:00
Martin Weinelt
445cb38134
Merge pull request #106815 from mayflower/firefox-pipewire-fix-106812
firefox-wayland: fix ScreenCast #106812
2020-12-25 19:35:47 +01:00
Christian Albrecht
5a7530e762
firefox-wayland: fix screen sharing using pipewire
After the fedora patches for screen sharing using pipewire got updated
for Firefox 83 (pipewire was inlined there), the nixpkgs buildInput
pipewire got stripped from the resulting firefox binary and so firefox
was unable to actually get the shared stream from the running pipewire
service.

Adding pipewire to the firefox binary with `patchelf --add-needed`
makes it atually get the stream from the service.

Fixes: #106812
2020-12-16 22:30:32 +01:00
ajs124
26e0135eed firefox: 83.0 -> 84.0 2020-12-16 17:49:31 +01:00
Andreas Rammhold
1d0225adc0
firefox: move the no-buildconfig-ffx76 patch into common
This patch has been used on all our flavors for some time now. We can
just move it to the common expression.
2020-11-30 10:09:05 +01:00
Frederik Rietdijk
29f1edf2f3 thunderbird, firefox, firefox-esr: set big-parallel
Firefox and Thunder time out nearly everytime. Hopefully giving them
more resources will prevent this from happening.
2020-11-29 11:45:08 +01:00
Guillaume Girol
a7f06aa7b5
Merge pull request #103930 from yvesf/firefox-disable-lto-issue-reference
firefox: fix wayland-lto issue reference number
2020-11-24 20:36:54 +00:00
Andreas Rammhold
c1cfe8b84e
firefox: fallback to nss_3_53 when version is below 83 2020-11-18 20:13:23 +01:00
Andreas Rammhold
398cdab5ce
firefox: prepare pipewire patches for firefox 83 2020-11-18 20:13:23 +01:00
Yves Fischer
794b8f9a9e firefox: fix wayland-lto issue reference number 2020-11-15 20:22:04 +01:00
Vladimír Čunát
eb3fd61bb6
firefox-esr: fix build by using older rust
It's probably the same issue as with thunderbird.
2020-11-07 14:54:38 +01:00
S. Nordin Abouzahra
57ea265674 firefox: place alsaLib in lib search patch
libcubeb has dlopened libraries for awhile now. In nixpkgs there was
support for the PulseAudio backend doing this, however the ALSA backend
support was missed and caused issue #79310 (no sound with ALSA). This
gives ALSA users the ability to hear sound once again.
2020-10-29 22:21:12 -04:00
Andreas Rammhold
bca15c82d8 firefox: disable LTO by default due to segfaults with wayland
As discussed in #101429 firefox 82 started crashing when used with
wayland. A brief investigation showed that this appears to be rooted
within the LTO support that was recently added to the package. For the
time being, until someone figures out where the crashes are coming from,
we can just disable LTO.
2020-10-23 02:51:46 +02:00
Andreas Rammhold
ae2f5cccbb firefox: 81.0.2 -> 82.0 2020-10-20 16:29:07 +02:00
S. Nordin Abouzahra
aecd9ab1e4 firefox: disable LTO on Darwin
LTO in general is broken on Darwin (see #19312).
2020-10-08 23:29:13 -04:00
S. Nordin Abouzahra
214c833589 firefox: let LTO on Darwin select its own linker 2020-10-08 21:55:23 -04:00
S. Nordin Abouzahra
4f12bddea6
firefox: add ltoSupport and enable it by default 2020-10-07 16:03:02 +02:00
Andreas Rammhold
a5a01d56a2
firefox: ensure pipewire is only enabled with wayland & webrtc
This ensures that we aren't applying any of the experiemental pipewire
patches when the dependencies aren't enabled. As of now pipewire only
works with wayland and webrtc. If either of them are not activated we
can't build with pipewireSupport and we should not.
2020-10-06 23:08:00 +02:00
taku0
0669cd9d3f firefox: 80.0.1 -> 81.0 2020-09-22 13:48:54 +09:00
Cole Mickens
31e54cdde3 firefox: enable pipewire+webrtc for wayland users 2020-09-20 21:42:39 -04:00
ajs124
264693f9d7 firefox-esr-68: drop 2020-09-10 02:12:22 +02:00
Stig Palmquist
c408178cab firefox: 79.0 -> 80.0 2020-08-29 19:18:36 +02:00
Michael Hoang
b979b12128 firefox: fix libXScrnSaver dynamic dependency 2020-08-21 19:12:43 +10:00
Vladimír Čunát
60d89e5793
Merge branch 'master' into staging 2020-07-29 18:40:28 +02:00
Vladimír Čunát
2b7c0dcdaa
Merge branch 'staging-next'
Rebuild on Hydra seems OK-ish.
mongodb.nix needed some conflict resolution (scons versions);
all four versions seem to build fine.
2020-07-25 16:18:40 +02:00
michaelgrahamevans
253f73bd80
firefox: fix typo in comment in common.nix 2020-07-24 09:49:43 +02:00
Jörg Thalheim
96092dc936
stdenv: make -nostdinc work as intended
Right now we add glibc to search path also -nostdinc was provided,
which breaks projects providing their own gcc.
2020-07-23 08:39:46 +01:00
ajs124
d4e479aae7
firefox: 77.0.1 -> 78.0.1 (security)
Close #92043 (original PR).
2020-07-19 13:01:58 +02:00
John Ericson
fa54dd346f
Merge pull request #85189 from Ericson2314/cxx-wrapper-debt
C++ compilers: Be sane with standard libraries
2020-06-22 10:38:34 -04:00
John Ericson
f3f7612a40 C++ Compilers: Systematize handling of standard libraries 2020-06-22 04:24:44 +00:00
Jan Tojnar
987a5c1e14
firefox: remove libIDL dependency
It has not been used for ages:

https://bugzilla.mozilla.org/show_bug.cgi?id=687766
2020-06-20 23:33:39 +02:00
ajs124
dd334ebabb firefox: 76.0.1 -> 77.0.1 2020-06-04 13:30:40 +02:00
ajs124
785cdcddd7 nss: 3.52 -> 3.52.1 2020-06-04 13:30:40 +02:00
aszlig
8fb49973ce
firefox: Add patch to fix AES GCM IV bit size
Regression introduced by bce5268a21.

The bit size of the initialisation vector for AES GCM has been
introduced in NSS version 3.52 in the CK_GCM_PARMS struct via the
ulIvBits field.

Unfortunately, Firefox 68.8.0 and 76.0 do not set this field and thus it
gets initialised to zero, which in turn causes IV generation to fail.

I found out about this because WebRTC stopped working after updating to
NSS 3.52 and so I started bisecting.

Since there wasn't an obvious error in Firefox hinting towards NSS but
instead just the video stream ended up as a "null" stream, I didn't
suspect the NSS update to be the culprit at first. So I verified a few
times and then also started bisecting the actual commit in NSS that
caused the issue.

This turned out to be the problematic change:

https://phabricator.services.mozilla.com/D63241

> One notable change was caused by an inconsistancy between the spec and
> the released headers in PKCS#11 v2.40. CK_GCM_PARAMS had an extra
> field in the header that was not in the spec. OASIS considers the
> header file to be normative, so PKCS#11 v3.0 resolved the issue in
> favor of the header file definition.

Since the test I've used[1] was a bit flaky, I still didn't believe the
result of the bisect to be accurate, but after running the test several
times leading same results I dug through the above change line by line
to get more clues.

It fortunately didn't take that long to stumble upon the ulIvBits change
(which is actually documented in the NSS 3.52 release notes[4], but I
managed to blatantly ignore it for some reason) and started checking the
Firefox source tree for changes regarding that field.

Initialisation of that new field has been introduced[2] in preparation
for the 76 release, but subsequently got reverted[3] prior to the
release, because Firefox 76 is expected to be shipped with NSS 3.51,
which didn't have the ulIvBits field.

The patch I'm adding here is just a reintroduction of that change,
because we're using NSS 3.52. Not initialising that field will break
WebRTC and WebCrypto, which I think the former seems to gain in
popularity these days ;-)

Tested the change against the mentioned VM test[1] and also by testing
manually using Jitsi Meet and Nextcloud Talk.

[1]: https://github.com/aszlig/avonc/tree/884315838b6f0ebb32b/tests/talk
[2]: https://hg.mozilla.org/mozilla-central/rev/3ed30e6b6de1
[3]: https://hg.mozilla.org/mozilla-central/rev/665137da70ee
[4]: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.52_release_notes

Signed-off-by: aszlig <aszlig@nix.build>
2020-05-13 02:23:12 +02:00
John Ericson
204d710405 treewide: Get rid of -dumpmachine in favor of static info 2020-04-13 19:26:19 -04:00
Andreas Rammhold
9de3c9749c
firefox: prepare for version 75 2020-04-07 13:27:27 +02:00
Andreas Rammhold
ea8362e315
firefox: 73.0.1 -> 74.0 (#82276)
https://www.mozilla.org/en-US/firefox/74.0/releasenotes/

Co-authored-by: Daniel Frank <git@danielfrank.net>
2020-03-12 14:47:56 +01:00
Samuel Dionne-Riel
d4446c563d firefox: Fix AArch64 build
* The 'arm.patch' patch doesn't apply anymore.
 * The 'build-arm-libopus.patch' patch isn't required anymore.
 * See the mozilla phabricator link for the added patch.

Additionally, we are now *always* undconditionally applying all patches
to all architectures. That is, unless they have undesirable
side-effects, but those might not be fit for inclusion.

By applying all patches all the time, they'll be removed or replaced
when they stop applying.
2020-03-09 13:37:30 -04:00
Andreas Rammhold
187d6912a8 firefox: prepare for 73.0 2020-02-11 01:19:26 +01:00
Florian Klink
94b2596540 firefox: simplify derivation
with firefox 64 being the latest version, and the removal of
"tor-browser/icecat-like" variants, we can greatly simplify the common
firefox derivation.
2020-02-09 22:33:33 +01:00