Compare commits

..

12 commits

Author SHA1 Message Date
sagitter
e019f792a1 Merge branch 'master' into f25 2017-09-02 14:19:27 +02:00
sagitter
b4b0b6da48 Update to 52.3.0 2017-08-16 23:20:42 +02:00
sagitter
c645e5ec0b Update to 52.2.1 2017-08-03 22:32:01 +02:00
sagitter
c4fa76f0cc Update to 52.1.0 2017-05-06 23:11:41 +02:00
Jens Lody
222cf1e34a Merge branch 'master' into f25 2017-05-06 13:03:22 +02:00
sagitter
4bf3c7a730 Enable languages 2017-04-16 17:52:06 +02:00
sagitter
9ae1e22783 Update to 52.0.2 2017-04-15 15:09:51 +02:00
sagitter
842e7ec93c Merge branch 'master' into f25 2017-03-29 18:52:53 +02:00
sagitter
07e6a80de0 Update to 52.0.1 2017-03-27 10:53:43 +02:00
sagitter
7c4b184a7b Merge branch 'master' into f25 2017-03-26 01:19:03 +01:00
sagitter
2f8060bed2 Merge branch 'master' into f25 2017-02-05 13:46:16 +01:00
Kai Engert
d8cb95fc52 rebuild, no changes 2017-01-20 21:37:10 +01:00
46 changed files with 3465 additions and 1393 deletions

251
.gitignore vendored
View file

@ -45,254 +45,3 @@
/icecat-52.2.1-gnu1.tar.bz2
/icecat-52.3.0-gnu1.tar.bz2
/icecat-52.3.0-langpacks.tar.gz
/icecat-52.5.2-gnu1.tar.bz2
/icecat-52.5.3-gnu1.tar.bz2
/icecat-52.6.0-gnu1.tar.bz2
/icecat-52.7.0-gnu1.tar.bz2
/icecat-52.7.2-gnu1.tar.bz2
/icecat-52.7.3-gnu1.tar.bz2
/icecat-52.8.0-gnu1.tar.bz2
/icecat-52.8.0-gnu1-clean.tar.bz2
/icecat-52.8.0-gnu2.tar.bz2
/icecat-52.8.1-gnu1.tar.bz2
/icecat-52.9.0-gnu1.tar.bz2
/icecat-60.2.0-gnu1.tar.bz2
/icecat-60.2.0-langpacks.tar.gz
/icecat-60.2.1-gnu1.tar.bz2
/icecat-60.2.2-gnu1.tar.bz2
/icecat-60.3.0-gnu1.tar.bz2
/icecat-60.4.0-gnu1.tar.bz2
/icecat-60.5.0-gnu1.tar.bz2
/icecat-60.5.1-gnu1.tar.bz2
/icecat-60.5.2-gnu1.tar.bz2
/icecat-60.6.0-gnu1.tar.bz2
/icecat-60.6.0-langpacks.tar.gz
/icecat-60.6.1-gnu1.tar.bz2
/icecat-60.6.1-langpacks.tar.gz
/icecat-60.6.1-gnu2.tar.bz2
/icecat-60.6.2-gnu1.tar.bz2
/icecat-60.6.3-gnu1.tar.bz2
/icecat-60.6.3-langpacks.tar.gz
/icecat-60.6.3-gnu2.tar.bz2
/icecat-60.7.0-gnu1.tar.bz2
/icecat-60.7.0-langpacks.tar.gz
/icecat-60.7.0-gnu2.tar.bz2
/icecat-60.7.1-gnu1.tar.bz2
/icecat-60.7.1-langpacks.tar.gz
/icecat-60.7.2-gnu1.tar.bz2
/icecat-60.7.2-langpacks.tar.gz
/icecat-60.8.0-gnu1.tar.bz2
/icecat-60.8.0-langpacks.tar.gz
/cbindgen-vendor.tar.xz
/icecat-68.0.2-gnu1.tar.bz2
/icecat-68.0.2-langpacks.tar.gz
/icecat-68.0.2-gnu2.tar.bz2
/icecat-68.0.2-gnu3.tar.bz2
/icecat-68.1.0-gnu1.tar.bz2
/icecat-68.1.0-langpacks.tar.gz
/icecat-68.2.0-gnu1.tar.bz2
/icecat-68.2.0-langpacks.tar.gz
/icecat-68.2.0-gnu2.tar.bz2
/icecat-68.3.0-gnu1.tar.bz2
/icecat-68.3.0-langpacks.tar.gz
/icecat-68.4.0-gnu1.tar.bz2
/icecat-68.4.0-rh1.tar.bz2
/icecat-68.4.0-langpacks.tar.gz
/icecat-68.4.0-rh2.tar.bz2
/icecat-68.4.1-langpacks.tar.gz
/icecat-68.4.1-rh1.tar.bz2
/icecat-68.5.0-langpacks.tar.gz
/icecat-68.5.0-rh1.tar.bz2
/icecat-68.6.0-rh1.tar.bz2
/icecat-68.6.0-langpacks.tar.gz
/icecat-68.6.0-rh2.tar.bz2
/icecat-68.6.0-rh3.tar.bz2
/icecat-68.6.0-rh4.tar.bz2
/icecat-68.7.0-langpacks.tar.gz
/icecat-68.7.0-rh1.tar.bz2
/icecat.png
/icecat-68.8.0-langpacks.tar.gz
/icecat-68.8.0-rh1.tar.bz2
/icecat-68.9.0-rh1.tar.bz2
/icecat-68.9.0-rh2.tar.bz2
/icecat-68.9.0-langpacks.tar.gz
/icecat-78.0-langpacks.tar.gz
/icecat-78.0-rh1.tar.bz2
/icecat-78.0.1-langpacks.tar.gz
/icecat-78.0.1-rh1.tar.bz2
/icecat-78.2.0-rh1.tar.bz2
/icecat-78.2.0-langpacks.tar.gz
/icecat-78.2.0-rh2.tar.bz2
/icecat-78.2.0-rh3.tar.bz2
/icecat-78.2.0-rh4.tar.bz2
/icecat-78.2.0-rh5.tar.bz2
/icecat-78.2.0-rh6.tar.bz2
/icecat-78.3.0-langpacks.tar.gz
/icecat-78.3.0-rh1.tar.bz2
/icecat-78.3.1-langpacks.tar.gz
/icecat-78.3.1-rh1.tar.bz2
/icecat-78.4.0-langpacks.tar.gz
/icecat-78.4.0-rh1.tar.bz2
/icecat-78.5.0-langpacks.tar.gz
/icecat-78.5.0-rh1.tar.bz2
/icecat-78.5.0-rh2.tar.bz2
/icecat-78.6.0-langpacks.tar.gz
/icecat-78.6.0-rh1.tar.bz2
/icecat-78.6.1-langpacks.tar.gz
/icecat-78.6.1-rh1.tar.bz2
/icecat-78.7.0-langpacks.tar.gz
/icecat-78.7.0-rh1.tar.bz2
/icecat-78.7.0-rh2.tar.bz2
/icecat-78.7.1-langpacks.tar.gz
/icecat-78.7.1-rh1.tar.bz2
/icecat-78.8.0-langpacks.tar.gz
/icecat-78.8.0-rh1.tar.bz2
/icecat-78.9.0-langpacks.tar.gz
/icecat-78.9.0-rh1.tar.bz2
/icecat-78.10.0-langpacks.tar.gz
/icecat-78.10.0-rh1.tar.bz2
/icecat-78.10.1-langpacks.tar.gz
/icecat-78.10.1-rh1.tar.bz2
/icecat-78.11.0-langpacks.tar.gz
/icecat-78.11.0-rh1.tar.bz2
/icecat-78.12.0-langpacks.tar.gz
/icecat-78.12.0-rh1.tar.bz2
/icecat-78.12.0-rh2.tar.bz2
/icecat-78.13.0-rh1.tar.bz2
/icecat-78.13.0-rh2.tar.bz2
/icecat-78.13.0-langpacks.tar.gz
/icecat-78.13.0-rh3.tar.bz2
/icecat-78.14.0-langpacks.tar.gz
/icecat-78.14.0-rh1.tar.bz2
/icecat-78.15.0-langpacks.tar.gz
/icecat-78.15.0-rh1.tar.bz2
/icecat-91.2.0-langpacks.tar.gz
/icecat-91.2.0-rh1.tar.bz2
/icecat-91.3.0-langpacks.tar.gz
/icecat-91.3.0-rh1.tar.bz2
/icecat-91.4.0-langpacks.tar.gz
/icecat-91.4.0-rh1.tar.bz2
/icecat-91.4.1-langpacks.tar.gz
/icecat-91.4.1-rh1.tar.bz2
/icecat-91.5.0-langpacks.tar.gz
/icecat-91.5.0-rh1.tar.bz2
/icecat-91.6.0-langpacks.tar.gz
/icecat-91.6.0-rh1.tar.bz2
/icecat-91.6.1-langpacks.tar.gz
/icecat-91.6.1-rh1.tar.bz2
/icecat-91.7.0-langpacks.tar.gz
/icecat-91.7.0-rh1.tar.bz2
/icecat-91.7.1-langpacks.tar.gz
/icecat-91.7.1-rh1.tar.bz2
/icecat-91.8.0-langpacks.tar.gz
/icecat-91.8.0-rh1.tar.bz2
/icecat-91.9.0-langpacks.tar.gz
/icecat-91.9.0-rh1.tar.bz2
/icecat-91.9.1-langpacks.tar.gz
/icecat-91.9.1-rh1.tar.bz2
/icecat-91.10.0-langpacks.tar.gz
/icecat-91.10.0-rh1.tar.bz2
/icecat-91.10.0-rh2.tar.bz2
/icecat-91.10.0-rh3.tar.bz2
/icecat-91.11.0-langpacks.tar.gz
/icecat-91.11.0-rh1.tar.bz2
/icecat-91.12.0-langpacks.tar.gz
/icecat-91.12.0-rh1.tar.bz2
/icecat-91.13.0-langpacks.tar.gz
/icecat-91.13.0-rh1.tar.bz2
/icecat-102.2.0-langpacks.tar.gz
/icecat-102.2.0-rh1.tar.bz2
/icecat-102.3.0-langpacks.tar.gz
/icecat-102.3.0-rh1.tar.bz2
/icecat-102.4.0-langpacks.tar.gz
/icecat-102.4.0-rh1.tar.bz2
/icecat-102.5.0-langpacks.tar.gz
/icecat-102.5.0-rh1.tar.bz2
/icecat-102.6.0-langpacks.tar.gz
/icecat-102.6.0-rh1.tar.bz2
/icecat-102.7.0-langpacks.tar.gz
/icecat-102.7.0-rh1.tar.bz2
/icecat-102.8.0-langpacks.tar.gz
/icecat-102.8.0-rh1.tar.bz2
/icecat-102.9.0-langpacks.tar.gz
/icecat-102.9.0-rh1.tar.bz2
/icecat-102.10.0-langpacks.tar.gz
/icecat-102.10.0-rh1.tar.bz2
/icecat-102.11.0-langpacks.tar.gz
/icecat-102.11.0-rh1.tar.bz2
/icecat-102.11.0-rh2.tar.bz2
/icecat-102.12.0-langpacks.tar.gz
/icecat-102.12.0-rh1.tar.bz2
/icecat-102.13.0-langpacks.tar.gz
/icecat-102.13.0-rh1.tar.bz2
/icecat-102.14.0-langpacks.tar.gz
/icecat-102.14.0-rh1.tar.bz2
/icecat-102.15.0-langpacks.tar.gz
/icecat-102.15.0-rh1.tar.bz2
/icecat-115.3.1-langpacks.tar.gz
/icecat-115.3.1-rh1.tar.bz2
/icecat-115.3.1-rh2.tar.bz2
/icecat-115.4.0-langpacks.tar.gz
/icecat-115.4.0-rh1.tar.bz2
/icecat-115.4.0-rh2.tar.bz2
/icecat-115.5.0-langpacks.tar.gz
/icecat-115.5.0-rh1.tar.bz2
/icecat-115.6.0-langpacks.tar.gz
/icecat-115.6.0-rh1.tar.bz2
/icecat-115.7.0-langpacks.tar.gz
/icecat-115.7.0-rh1.tar.bz2
/icecat-115.8.0-langpacks.tar.gz
/icecat-115.8.0-rh1.tar.bz2
/icecat-115.9.0-langpacks.tar.gz
/icecat-115.9.0-rh1.tar.bz2
/icecat-115.10.0-langpacks.tar.gz
/icecat-115.10.0-rh1.tar.bz2
/icecat-115.11.0-langpacks.tar.gz
/icecat-115.11.0-rh1.tar.bz2
/icecat-115.12.0-langpacks.tar.gz
/icecat-115.12.0-rh1.tar.bz2
/icecat-115.13.0-langpacks.tar.gz
/icecat-115.13.0-rh1.tar.bz2
/icecat-115.14.0-langpacks.tar.gz
/icecat-115.14.0-rh1.tar.bz2
/icecat-115.15.0-langpacks.tar.gz
/icecat-115.15.0-rh1.tar.bz2
/icecat-115.16.0-langpacks.tar.gz
/icecat-115.16.0-rh1.tar.bz2
/icecat-115.16.1-langpacks.tar.gz
/icecat-115.16.1-rh1.tar.bz2
/icecat-115.17.0-langpacks.tar.gz
/icecat-115.17.0-rh1.tar.bz2
/icecat-115.18.0-langpacks.tar.gz
/icecat-115.18.0-rh1.tar.bz2
/icecat-115.18.0-rh2.tar.bz2
/icecat-115.19.0-langpacks.tar.gz
/icecat-115.19.0-rh1.tar.bz2
/icecat-115.20.0-langpacks.tar.gz
/icecat-115.20.0-rh1.tar.bz2
/icecat-115.21.0-langpacks.tar.gz
/icecat-115.21.0-rh1.tar.bz2
/icecat-115.22.0-langpacks.tar.gz
/icecat-115.22.0-rh1.tar.bz2
/icecat-115.23.0-langpacks.tar.gz
/icecat-115.23.0-rh1.tar.bz2
/icecat-115.23.1-langpacks.tar.gz
/icecat-115.23.1-rh1.tar.bz2
/icecat-115.24.0-langpacks.tar.gz
/icecat-115.24.0-rh1.tar.bz2
/icecat-128.12.0-langpacks.tar.gz
/icecat-128.12.0-rh1.tar.bz2
/icecat-128.13.0-langpacks.tar.gz
/icecat-128.13.0-rh1.tar.bz2
/icecat-128.14.0-langpacks.tar.gz
/icecat-128.14.0-rh1.tar.bz2
/icecat-140.3.0-langpacks.tar.gz
/icecat-140.3.0-rh1.tar.bz2
/icecat-140.4.0-langpacks.tar.gz
/icecat-140.4.0-rh1.tar.bz2
/icecat-140.5.0-langpacks.tar.gz
/icecat-140.5.0-rh1.tar.bz2
/icecat-140.6.0-langpacks.tar.gz
/icecat-140.6.0-rh1.tar.bz2
/icecat-140.7.0-langpacks.tar.gz
/icecat-140.7.0-rh1.tar.bz2

View file

@ -1,41 +0,0 @@
[GNU IceCat](https://www.gnu.org/software/gnuzilla/) is the GNU version of the Firefox ESR browser.
Extensions included to this version of IceCat:
* LibreJS
GNU LibreJS aims to address the JavaScript problem described in the article
"[The JavaScript Trap](https://www.gnu.org/philosophy/javascript-trap.html)" of Richard Stallman.
* JShelter
Mitigates potential threats from JavaScript, including fingerprinting,
tracking, and data collection. Slightly modifies the results of API calls,
differently on different domains, so that the cross-site fingerprint is not
stable. Applies security counter-measures that are likely not to break web pages.
Allows fine-grained control over the restrictions and counter-measures applied
to each domain.
* A set of companion extensions for LibreJS by Nathan Nichols
are pre-installed, and provide workarounds to use some services at USPS,
RSF.org, SumOfUs.org, pay.gov, McDonalds, goteo.org and Google Docs
without using nonfree JavaScript.
* A series of configuration changes and tweaks were applied to ensure that
IceCat does not initiate network connections that the user has not explicitly
requested. This implies not downloading feeds, updates, blacklists or any
other similar data needed during startup.
Origin of the name
The name “IceCat” was coined to show our relationship to the Mozilla Firefox browser. Ice isn't Fire and a Cat isn't a Fox, so it is clearly a different package (we don't want Mozilla blamed for our mistakes, nor cause confusion with their trademarks), but is equally clearly intimately related (of course nearly all of the work comes from the Mozilla foundation effort, so we want to give credit).
The gNewSense BurningDog browser and the Debian IceWeasel browser are similarly derived from Firefox, also with the intent of being free software. Technically, however, these projects are maintained entirely independently of IceCat. (Previously, this GNU browser project was also named IceWeasel, but that proved confusing.)
About GNU and the GNU Philosophy
The [GNU Project](https://www.gnu.org/) was launched in 1984 to develop a complete Unix-like operating system which is [free software—free as in freedom, not price](https://www.gnu.org/philosophy/free-sw.html). Its principal sponsor is the [Free Software Foundation](https://www.fsf.org/).
The [free software philosophy](https://www.gnu.org/philosophy/philosophy.html) is the root and motivation of the guidelines and goals of the whole free software movement, a worldwide community.

View file

@ -0,0 +1,12 @@
diff -up mozilla-aurora/build/autoconf/icu.m4.icu-endian mozilla-aurora/build/autoconf/icu.m4
--- mozilla-aurora/build/autoconf/icu.m4.icu-endian 2016-12-09 09:11:01.227317790 +0100
+++ mozilla-aurora/build/autoconf/icu.m4 2016-12-09 09:18:40.608712247 +0100
@@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then
# TODO: the l is actually endian-dependent
# We could make this set as 'l' or 'b' for little or big, respectively,
# but we'd need to check in a big-endian version of the file.
- ICU_DATA_FILE="icudt${version}l.dat"
+ ICU_DATA_FILE="icudt${version}b.dat"
dnl We won't build ICU data as a separate file when building
dnl JS standalone so that embedders don't have to deal with it.

View file

@ -0,0 +1,44 @@
diff -up firefox-52.0/dom/u2f/U2F.cpp.prbool firefox-52.0/dom/u2f/U2F.cpp
--- firefox-52.0/dom/u2f/U2F.cpp.prbool 2017-03-03 13:42:22.613691228 +0100
+++ firefox-52.0/dom/u2f/U2F.cpp 2017-03-03 13:48:20.864647727 +0100
@@ -4,6 +4,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "prtypes.h"
#include "hasht.h"
#include "mozilla/dom/CallbackFunction.h"
#include "mozilla/dom/ContentChild.h"
diff -up firefox-52.0/security/certverifier/CTLogVerifier.cpp.prbool firefox-52.0/security/certverifier/CTLogVerifier.cpp
--- firefox-52.0/security/certverifier/CTLogVerifier.cpp.prbool 2017-01-16 17:16:51.000000000 +0100
+++ firefox-52.0/security/certverifier/CTLogVerifier.cpp 2017-03-03 13:42:22.613691228 +0100
@@ -7,6 +7,7 @@
#include "CTLogVerifier.h"
#include "CTSerialization.h"
+#include "prtypes.h"
#include "hasht.h"
#include "mozilla/ArrayUtils.h"
#include "mozilla/Assertions.h"
diff -up firefox-52.0/security/certverifier/CTObjectsExtractor.cpp.prbool firefox-52.0/security/certverifier/CTObjectsExtractor.cpp
--- firefox-52.0/security/certverifier/CTObjectsExtractor.cpp.prbool 2017-01-16 17:16:51.000000000 +0100
+++ firefox-52.0/security/certverifier/CTObjectsExtractor.cpp 2017-03-03 13:42:22.613691228 +0100
@@ -6,6 +6,7 @@
#include "CTObjectsExtractor.h"
+#include "prtypes.h"
#include "hasht.h"
#include "mozilla/Assertions.h"
#include "mozilla/Casting.h"
diff -up firefox-52.0/security/certverifier/OCSPCache.h.prbool firefox-52.0/security/certverifier/OCSPCache.h
--- firefox-52.0/security/certverifier/OCSPCache.h.prbool 2017-02-27 17:11:06.000000000 +0100
+++ firefox-52.0/security/certverifier/OCSPCache.h 2017-03-03 13:42:22.613691228 +0100
@@ -25,6 +25,7 @@
#ifndef mozilla_psm_OCSPCache_h
#define mozilla_psm_OCSPCache_h
+#include "prtypes.h"
#include "hasht.h"
#include "mozilla/Mutex.h"
#include "mozilla/Vector.h"

21
firefox-fedora-ua.patch Normal file
View file

@ -0,0 +1,21 @@
diff -up firefox-35.0.1/mozilla-release/media/webrtc/trunk/Makefile.old firefox-35.0.1/mozilla-release/media/webrtc/trunk/Makefile
diff -up firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp.old firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp
--- firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp.old 2015-01-23 07:00:06.000000000 +0100
+++ firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp 2015-02-09 16:40:42.983220596 +0100
@@ -607,7 +607,7 @@ nsHttpHandler::BuildUserAgent()
mUserAgent.SetCapacity(mLegacyAppName.Length() +
mLegacyAppVersion.Length() +
#ifndef UA_SPARE_PLATFORM
- mPlatform.Length() +
+ mPlatform.Length() + 8 +
#endif
mOscpu.Length() +
mMisc.Length() +
@@ -631,6 +631,7 @@ nsHttpHandler::BuildUserAgent()
if (!mPlatform.IsEmpty()) {
mUserAgent += mPlatform;
mUserAgent.AppendLiteral("; ");
+ mUserAgent.AppendLiteral("Fedora; ");
}
#endif
if (!mCompatDevice.IsEmpty()) {

12
firefox-install-dir.patch Normal file
View file

@ -0,0 +1,12 @@
diff -up firefox-45.0/firefox-45.0/config/baseconfig.mk.orig firefox-45.0/firefox-45.0/config/baseconfig.mk
--- firefox-45.0/config/baseconfig.mk.orig 2016-03-02 13:26:31.981927073 +0100
+++ firefox-45.0/config/baseconfig.mk 2016-03-02 13:30:09.044756473 +0100
@@ -4,7 +4,7 @@
# whether a normal build is happening or whether the check is running.
includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+installdir = $(libdir)/$(MOZ_APP_NAME)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
ifeq (.,$(DEPTH))
DIST = dist

View file

@ -1,19 +0,0 @@
diff -up firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp
--- firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack 2021-01-11 12:12:02.585514543 +0100
+++ firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp 2021-01-11 12:47:50.345984582 +0100
@@ -1619,6 +1619,15 @@ SECStatus InitializeNSS(const nsACString
return srv;
}
+ /* Sets the NSS_USE_ALG_IN_ANY_SIGNATURE bit.
+ * does not change NSS_USE_ALG_IN_CERT_SIGNATURE,
+ * so policy will still disable use of sha1 in
+ * certificate related signature processing. */
+ srv = NSS_SetAlgorithmPolicy(SEC_OID_SHA1, NSS_USE_ALG_IN_ANY_SIGNATURE, 0);
+ if (srv != SECSuccess) {
+ NS_WARNING("Unable to use SHA1 for Add-ons, expect broken/disabled Add-ons. See https://bugzilla.redhat.com/show_bug.cgi?id=1908018 for details.");
+ }
+
if (nssDbConfig == NSSDBConfig::ReadWrite) {
UniquePK11SlotInfo slot(PK11_GetInternalKeySlot());
if (!slot) {

View file

@ -1,45 +0,0 @@
From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Fri, 4 Mar 2022 12:00:26 +0100
Subject: [PATCH] GLIBCXX fix for GCC 12?
---
build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp
index 0180f6bcfa998..8d7a542ff11f0 100644
--- a/build/unix/stdc++compat/stdc++compat.cpp
+++ b/build/unix/stdc++compat/stdc++compat.cpp
@@ -24,6 +24,7 @@
GLIBCXX_3.4.27 is from gcc 10
GLIBCXX_3.4.28 is from gcc 10
GLIBCXX_3.4.29 is from gcc 11
+ GLIBCXX_3.4.30 is from gcc 12
This file adds the necessary compatibility tricks to avoid symbols with
version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with
@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); }
} // namespace std
#endif
+#if _GLIBCXX_RELEASE >= 12
+namespace std {
+
+/* This avoids the GLIBCXX_3.4.30 symbol version. */
+void __attribute__((weak))
+__glibcxx_assert_fail(const char* __file, int __line, const char* __function,
+ const char* __condition) {
+ MOZ_CRASH();
+}
+
+} // namespace std
+#endif
+
/* While we generally don't build with exceptions, we have some host tools
* that do use them. libstdc++ from GCC 5.0 added exception constructors with
* char const* argument. Older versions only have a constructor with
--
2.35.1

View file

@ -0,0 +1,77 @@
--- browser/installer/package-manifest.orig.in 2017-03-24 21:09:39.027022000 +0100
+++ browser/installer/package-manifest.in 2017-03-24 23:07:21.881504771 +0100
@@ -74,9 +74,9 @@
#endif
#ifndef MOZ_SYSTEM_NSPR
#ifndef MOZ_FOLD_LIBS
-@BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
-@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
-@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
+#@BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
+#@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
+#@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
#endif
#endif
#ifdef XP_MACOSX
@@ -622,9 +622,9 @@
@RESPATH@/chrome/recording.manifest
@RESPATH@/chrome/recording/*
#ifdef MOZ_GTK
-@RESPATH@/browser/chrome/icons/default/default16.png
-@RESPATH@/browser/chrome/icons/default/default32.png
-@RESPATH@/browser/chrome/icons/default/default48.png
+#@RESPATH@/browser/branding/official/default16.png
+#@RESPATH@/browser/branding/official/default32.png
+#@RESPATH@/browser/branding/official/default48.png
#endif
@RESPATH@/browser/features/*
@@ -642,7 +642,7 @@
#ifdef XP_UNIX
#ifndef XP_MACOSX
; shell icons
-@RESPATH@/browser/icons/*.png
+#@RESPATH@/browser/icons/*.png
#ifdef MOZ_UPDATER
; updater icon
@RESPATH@/icons/updater.png
--- browser/installer/allowed-dupes.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/installer/allowed-dupes.mn 2017-03-24 23:15:37.026964374 +0100
@@ -110,6 +110,37 @@
browser/features/flyweb@mozilla.org/chrome/skin/windows/icon-64-anchored.png
browser/features/flyweb@mozilla.org/chrome/skin/windows/icon-64.png
browser/icons/mozicon128.png
+#
+browser/extensions/abouticecat@gnu.org/defaults/preferences/preferences.js
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/lib/settings/settings.js
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/docs/addon-warning.md
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/docs/content-policy.md
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-userstyles.css
+browser/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/bootstrap.js
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/data/assets/images/README
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/data/widget/images/README
+browser/chrome/browser/content/browser/aboutaccounts/images/fox.png
+browser/extensions/spyblock@gnu.org/chrome/content/ui/ext/common.js
+browser/extensions/spyblock@gnu.org/lib/ext_common.js
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/data/widget/images/librejs-64.png
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/icon.png
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/data/images/gnu-icon.png
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/notification-box/data/gnu-icon.png
+browser/extensions/html5-video-everywhere@lejenome.me/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-break/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-dailymotion/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-facebook/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-metacafe/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-vimeo/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-youtube/LICENSE
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/data/licenses/mpl-2.0.txt
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/notification-box/LICENSE
+browser/extensions/spyblock@gnu.org/chrome/content/ui/skin/abp-128.png
+browser/extensions/spyblock@gnu.org/chrome/skin/abp-icon-big.png
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/COPYING
+browser/extensions/jid1-KtlZuoiikVfFew@jetpack/data/licenses/gpl-3.0.txt
+#
chrome.manifest
chrome/en-US/locale/en-US/browser/overrides/AccessFu.properties
chrome/en-US/locale/en-US/browser/overrides/about.dtd

11
icecat-fix_jar.patch Normal file
View file

@ -0,0 +1,11 @@
--- browser/locales/jar.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/locales/jar.mn 2017-03-22 19:49:57.602190867 +0100
@@ -6,7 +6,7 @@
@AB_CD@.jar:
% locale browser @AB_CD@ %locale/browser/
-* locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
+ locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
locale/browser/aboutAccounts.dtd (%chrome/browser/aboutAccounts.dtd)
locale/browser/aboutDialog.dtd (%chrome/browser/aboutDialog.dtd)
locale/browser/aboutPrivateBrowsing.dtd (%chrome/browser/aboutPrivateBrowsing.dtd)

View file

@ -1,14 +0,0 @@
diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline firefox-114.0.2/gfx/wr/swgl/src/gl.cc
--- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22 11:08:53.294593327 +0200
+++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734 +0200
@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF
}
#else
-// GCC is slower when dealing with always_inline, especially in debug builds.
-// When using Clang, use always_inline more aggressively.
-# if defined(__clang__) || defined(NDEBUG)
+# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG)
# define ALWAYS_INLINE __attribute__((always_inline)) inline
# else
# define ALWAYS_INLINE inline

View file

@ -1,23 +1,17 @@
#!/bin/bash
VERSION=140.7.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
URL=http://ftp.gnu.org/gnu/gnuzilla/52.3.0/langpacks/
for u in $URL; do
mkdir -p langpacks && pushd langpacks
wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
popd
mkdir -p langpacks && cd langpacks
wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
rm -f icecat-52.3.0.ja-JP-mac.langpack.xpi icecat-52.3.0.compare-locales.langpack.xpi
done
#pushd langpacks
#for u in `ls *.xpi`; do
# mv $u icecat-${VERSION}.$u
#done
#find . -type f -name '*.xpi' | while read FILE ; do
# newfile="$(echo ${FILE} |sed -e 's/.xpi/.langpack.xpi/g')" ;
# mv "${FILE}" "${newfile}" ;
#done
#popd
rm -f icecat-*-langpacks.tar.gz
tar -zcvf icecat-${VERSION}-langpacks.tar.gz langpacks
find . -type f -name '*.xpi' | while read FILE ; do
newfile="$(echo ${FILE} |sed -e 's/52.3.0.//g' -e 's/icecat-//g')" ;
mv "${FILE}" "${newfile}" ;
done
cd ..
tar -zcvf icecat-52.3.0-langpacks.tar.gz langpacks
rm -rf langpacks
exit 0

12
icecat-locale.patch Normal file
View file

@ -0,0 +1,12 @@
--- intl/icu/source/i18n/digitlst.orig.cpp 2017-07-25 16:08:42.000000000 +0000
+++ intl/icu/source/i18n/digitlst.cpp 2017-08-03 19:20:54.808813010 +0000
@@ -64,7 +64,7 @@
# if U_PLATFORM_USES_ONLY_WIN32_API || U_PLATFORM == U_PF_CYGWIN
# include <locale.h>
# else
-# include <xlocale.h>
+# include <c++/v1/support/xlocale/xlocale.h>
# endif
#endif

View file

@ -2,15 +2,36 @@
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=
export MOZ_TELEMETRY_REPORTING=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
ac_add_options --without-wasm-sandboxed-libraries
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --enable-system-hunspell
ac_add_options --with-pthreads
ac_add_options --disable-strip
ac_add_options --disable-tests
#ac_add_options --enable-libnotify
ac_add_options --enable-necko-wifi
ac_add_options --enable-startup-notification
#ac_add_options --disable-cpp-exceptions
ac_add_options --disable-updater
ac_add_options --enable-url-classifier
ac_add_options --enable-gio
#ac_add_options --disable-gnomevfs
ac_add_options --enable-chrome-format=omni
ac_add_options --enable-pulseaudio
ac_add_options --with-system-icu
ac_add_options --enable-release
ac_add_options --enable-pie

11
icecat-noHTTP-RP.patch Normal file
View file

@ -0,0 +1,11 @@
--- browser/installer/package-manifest.orig.in 2013-10-16 04:14:45.000000000 +0200
+++ browser/installer/package-manifest.in 2014-08-10 11:06:54.346330524 +0200
@@ -612,7 +612,7 @@
@RESPATH@/browser/extensions/LibrejsDrive@0xbeef.coffee/*
@RESPATH@/browser/extensions/LCSP@0xbeef.coffee/*
@RESPATH@/browser/extensions/jid1-KtlZuoiikVfFew@jetpack/*
-@RESPATH@/browser/extensions/https-everywhere-eff@eff.org/*
+##@RESPATH@/browser/extensions/https-everywhere-eff@eff.org/*
@RESPATH@/browser/extensions/FreeUSPS@0xbeef.coffee/*
@RESPATH@/browser/extensions/DMCAreg@0xbeef.coffee/*
@RESPATH@/browser/extensions/abouticecat@gnu.org/*

View file

@ -0,0 +1,12 @@
--- gfx/angle/moz.orig.build 2016-08-29 02:17:57.000000000 +0200
+++ gfx/angle/moz.build 2016-09-01 13:09:17.936098501 +0200
@@ -124,8 +124,7 @@
]
else:
CXXFLAGS += [
- '-Wno-shadow-compatible-local',
- '-Wno-shadow-local',
+ '-Wno-shadow',
]
if CONFIG['MOZ_DIRECTX_SDK_PATH'] and not CONFIG['MOZ_HAS_WINSDK_WITH_D3D']:

13
icecat-virtualenv.patch Normal file
View file

@ -0,0 +1,13 @@
--- python/mozbuild/mozbuild/virtualenv.orig.py 2014-10-07 21:44:49.000000000 +0200
+++ python/mozbuild/mozbuild/virtualenv.py 2014-10-11 12:34:19.292241319 +0200
@@ -56,8 +56,7 @@
@property
def virtualenv_script_path(self):
"""Path to virtualenv's own populator script."""
- return os.path.join(self.topsrcdir, 'python', 'virtualenv',
- 'virtualenv.py')
+ return '/usr/bin/virtualenv'
@property
def bin_path(self):

139
icecat.1 Normal file
View file

@ -0,0 +1,139 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
.TH ICECAT "15" "Aug 2017" "IceCat 52.3.0" "User Commands"
.SH NAME
IceCat \- GNU version of Firefox browser
.SH SYNOPSIS
.B icecat
[ \fI\,options \/\fR... ] [\fI\,URL\/\fR]
.SH DESCRIPTION
GNUzilla is the GNU version of the Mozilla suite, and GNU IceCat is the GNU version of the Firefox browser. Its main advantage is an ethical one: it is entirely free software. While the Firefox source code from the Mozilla project is free software, they distribute and recommend non-free software as plug-ins and addons.
In addition, GNU IceCat includes some privacy protection features, included in a separate addon:
Some sites refer to zero-size images on other hosts to keep track of cookies. When IceCat detects this mechanism it blocks cookies from the site hosting the zero-length image file. (It is possible to re-enable such a site by removing it from the blocked hosts list.)
Other sites rewrite the host name in links redirecting the user to another site, mainly to "spy" on clicks. When this behavior is detected, IceCat shows a message alerting the user.
Origin of the name
The name IceCat was coined to show our relationship to the Mozilla Firefox browser. Ice isn't Fire and a Cat isn't a Fox, so it is clearly a different package (we don't want Mozilla blamed for our mistakes, nor cause confusion with their trademarks), but is equally clearly intimately related (of course nearly all of the work comes from the Mozilla foundation effort, so we want to give credit).
The gNewSense BurningDog browser and the Debian IceWeasel browser are similarly derived from Firefox, also with the intent of being free software. Technically, however, these projects are maintained entirely independently of IceCat. (Previously, this GNU browser project was also named IceWeasel, but that proved confusing.)
Extensions included to this version of IceCat:
- LibreJS
GNU LibreJS aims to address the JavaScript problem described in Richard
Stallman's article The JavaScript Trap.
- SpyBlock
Blocks privacy trackers while in normal browsing mode, and all third party
requests when in private browsing mode. Based on Adblock Plus.
- AboutIceCat
Adds a custom "about:icecat" homepage with links to information about the
free software and privacy features in IceCat, and check-boxes to enable
and disable the ones more prone to break websites.
- HTML5-video-everywhere
Uses the native video player to play embedded videos from different sources
- Fingerprinting countermeasures: Fingerprinting is a series of techniques
allowing to uniquely identify a browser based on specific characterisics of
that particular instance (like what fonts are available in that machine).
Unlike cookies the user cannot opt-out of being tracked this way,
so the browser has to avoid giving away that kind of hints.
`icecat' generates a man page out of `--help' and `--version' output.
.IP
where options include:
.PP
X11 options
.TP
\fB\-\-display\fR=\fI\,DISPLAY\/\fR
X display to use
.TP
\fB\-\-sync\fR
Make X calls synchronous
.HP
\fB\-\-g\-fatal\-warnings\fR Make all warnings fatal
.PP
IceCat options
.TP
\fB\-h\fR or \fB\-\-help\fR
Print this message.
.TP
\fB\-v\fR or \fB\-\-version\fR
Print IceCat version.
.TP
\fB\-P\fR <profile>
Start with <profile>.
.TP
\fB\-\-profile\fR <path>
Start with profile at <path>.
.TP
\fB\-\-migration\fR
Start with migration wizard.
.TP
\fB\-\-ProfileManager\fR
Start with ProfileManager.
.TP
\fB\-\-no\-remote\fR
Do not accept or send remote commands; implies \fB\-\-new\-instance\fR.
.TP
\fB\-\-new\-instance\fR
Open new instance, not a new window in running instance.
.HP
\fB\-\-UILocale\fR <locale> Start with <locale> resources as UI Locale.
.TP
\fB\-\-safe\-mode\fR
Disables extensions and themes for this session.
.TP
\fB\-\-jsconsole\fR
Open the Browser Console.
.TP
\fB\-\-jsdebugger\fR
Open the Browser Toolbox.
.TP
\fB\-\-devtools\fR
Open DevTools on initial load.
.TP
\fB\-\-start\-debugger\-server\fR [port|path] Start the debugger server on a TCP port or Unix domain socket path.
Defaults to TCP port 6000.
.TP
\fB\-\-browser\fR
Open a browser window.
.HP
\fB\-\-new\-window\fR <url> Open <url> in a new window.
.TP
\fB\-\-new\-tab\fR <url>
Open <url> in a new tab.
.HP
\fB\-\-private\-window\fR <url> Open <url> in a new private window.
.TP
\fB\-\-preferences\fR
Open Preferences dialog.
.TP
\fB\-\-search\fR <term>
Search <term> with your default search engine.
.HP
\fB\-\-recording\fR <file> Record drawing for a given URL.
.HP
\fB\-\-recording\-output\fR <file> Specify destination file for a drawing recording.
.HP
\fB\-\-setDefaultBrowser\fR Set this app as the default browser.
.PP
Gnuzilla IceCat 52.3.0
.SH FILES
/usr/bin/icecat - icecat executable
/usr/lib(64)/icecat-52.3.0/icecat-bin - icecat executable
.SH BUGS
To report a bug, please mail to bug-gnuzilla@gnu.org
.SH VERSION
52.3.0
.SH AUTHORS
For a full list of the people who are credited with making a contribution to Mozilla, see http://www.mozilla.org/credits/ .
.SH "SEE ALSO"
https://www.gnu.org/software/gnuzilla/

View file

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id type="desktop">icecat.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<summary>GNU version of Firefox browser</summary>
<name>GNU IceCat</name>
<project_license>(MPL-1.1 or GPL-2.0+ or LGPL-2.0+) and GPL-3.0+ and MIT and BSD and ISC and ASL-2.0 and MPL-2.0</project_license>
<categories>
<category>Internet</category>
<category>Web Browser</category>
</categories>
<description>
<p>
GNU IceCat is the GNU version of the Firefox ESR browser.
</p>
<p>
Its main advantage is an ethical one: it is entirely free software:
while the Firefox source code from the Mozilla project is free software,
they distribute and recommend non-free software as plug-ins and addons.
Also their trademark license restricts distribution in several ways incompatible with freedom 0.
</p>
<p>
Extensions included to this version of IceCat:
</p>
<ul>
<li>
LibreJS
GNU LibreJS aims to address the JavaScript problem described in Richard
Stallman's article The JavaScript Trap
</li>
<li>
HTTPS Everywhere
HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
</li>
<li>
A set of companion extensions for LibreJS by Nathan Nichols (https://addons.mozilla.org/en-US/firefox/user/NateN1222/)
are pre-installed, and provide workarounds to use some services at USPS, RSF.org, SumOfUs.org, pay.gov, McDonald's, goteo.org
and Google Docs without using nonfree JavaScript.
</li>
<li>
A series of configuration changes and tweaks were applied to ensure that IceCat does not initiate network connections
that the user has not explicitly requested. This implies not downloading feeds, updates, blacklists or any other similar
data needed during startup.
</li>
</ul>
</description>
<url type="homepage">http://www.gnu.org/software/gnuzilla/</url>
<screenshots>
<screenshot type="default">
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1021.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1022.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1023.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1024.png</image>
</screenshot>
</screenshots>
<updatecontact>sagitter_at_fedoraproject.org</updatecontact>
</component>

View file

@ -1,6 +1,6 @@
[Desktop Entry]
Version=1.0
Name=GNU IceCat
Name=Icecat
Comment=Browse the World Wide Web
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
Comment[ast]=Restola pela Rede
@ -118,7 +118,8 @@ Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
Categories=Network;WebBrowser;
StartupNotify=true
Name[en_US]=GNU IceCat
StartupWMClass=icecat
Name[en_US]=Icecat
Actions=new-window;new-private-window;
[Desktop Action new-window]

BIN
icecat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View file

@ -1,54 +0,0 @@
# Whitelisting errors
# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
# https://src.fedoraproject.org/rpms/python3/blob/master/f/python3.rpmlintrc
# Edited by sagitter (sagitter@fedoraproject.org)
# KNOWN BUGS:
#
# TESTS:
##### SRPMs #####
# ifarch applied patches are okay
# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
addFilter(r'(%ifarch-applied-patch) Patch*')
# Different file size due to the signature of the source code tarbz archive
addFilter(r'file-size-mismatch')
addFilter(r'(invalid-url) Source0')
addFilter(r'(invalid-url) Source4')
addFilter(r'(invalid-url) Source5')
addFilter(r'(invalid-url) Source17')
addFilter(r'(strange-permission) icecat-lang_download.sh')
addFilter(r'(strange-permission) node-stdout-nonblocking-wrapper')
# ERRORS:
##### RPMs #####
# chroot function (??)
addFilter(r'(missing-call-to-chdir-with-chroot) /usr/lib64/icecat/libmozsandbox.so')
addFilter(r'(missing-call-to-setgroups-before-setuid) /usr/lib64/icecat/libxul.so')
addFilter(r'(missing-call-to-chdir-with-chroot) /usr/lib/icecat/libmozsandbox.so')
addFilter(r'(missing-call-to-setgroups-before-setuid) /usr/lib/icecat/libxul.so')
# Expected on FF browser
# https://support.mozilla.org/en-US/questions/1045418
addFilter(r'(zero-length) /usr/lib(64)?/icecat/chrome.manifest')
addFilter(r'(zero-length) /usr/lib(64)?/icecat/browser/chrome.manifest')
addFilter(r'E:library-not-linked-against-libc /usr/lib64/icecat/gtk2/libmozgtk.so')
addFilter(r'E:library-not-linked-against-libc /usr/lib64/icecat/libmozgtk.so')
addFilter(r'E:library-not-linked-against-libc /usr/lib/icecat/gtk2/libmozgtk.so')
addFilter(r'E:library-not-linked-against-libc /usr/lib/icecat/libmozgtk.so')
# False positive
addFilter(r'(dangling-symlink) /usr/lib(64)?/icecat/dictionaries /usr/share/myspell')
addFilter(r'(unversioned-explicit-provides) webclient')
# WARNINGS:
##### RPMs #####
addFilter(r'(no-manual-page-for-binary) icecat-wayland')
addFilter(r'(no-manual-page-for-binary) icecat-x11')

View file

@ -1,279 +0,0 @@
#!/bin/bash
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
##
## Usage:
##
## $ icecat
##
## This script is meant to run a mozilla program from the mozilla
## rpm installation.
##
## The script will setup all the environment voodoo needed to make
## mozilla work.
cmdname=`basename $0`
##
## Variables
##
MOZ_ARCH=$(uname -m)
case $MOZ_ARCH in
x86_64 | s390x | sparc64)
MOZ_LIB_DIR="/__PREFIX__/lib64"
SECONDARY_LIB_DIR="/__PREFIX__/lib"
;;
* )
MOZ_LIB_DIR="/__PREFIX__/lib"
SECONDARY_LIB_DIR="/__PREFIX__/lib64"
;;
esac
MOZ_FIREFOX_FILE="icecat"
if [ ! -r $MOZ_LIB_DIR/icecat/$MOZ_FIREFOX_FILE ]; then
if [ ! -r $SECONDARY_LIB_DIR/icecat/$MOZ_FIREFOX_FILE ]; then
echo "Error: $MOZ_LIB_DIR/icecat/$MOZ_FIREFOX_FILE not found"
if [ -d $SECONDARY_LIB_DIR ]; then
echo " $SECONDARY_LIB_DIR/icecat/$MOZ_FIREFOX_FILE not found"
fi
exit 1
fi
MOZ_LIB_DIR="$SECONDARY_LIB_DIR"
fi
MOZ_DIST_BIN="$MOZ_LIB_DIR/icecat"
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
MOZ_LAUNCHER="$MOZ_DIST_BIN/icecat"
GETENFORCE_FILE="/usr/sbin/getenforce"
##
## Enable Wayland backend?
##
if ! [ $MOZ_DISABLE_WAYLAND ] && [ "$WAYLAND_DISPLAY" ]; then
if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
## Enable Wayland on KDE/Sway
##
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
fi
##
## Use D-Bus remote exclusively when there's Wayland display.
##
if [ "$WAYLAND_DISPLAY" ]; then
export MOZ_DBUS_REMOTE=1
fi
##
## Set MOZ_GRE_CONF
##
MOZ_GRE_CONF=/etc/gre.d/gre.conf
if [ "$MOZ_LIB_DIR" == "/__PREFIX__/lib64" ]; then
MOZ_GRE_CONF=/etc/gre.d/gre64.conf
fi
export MOZ_GRE_CONF
##
## Set MOZILLA_FIVE_HOME
##
MOZILLA_FIVE_HOME="$MOZ_DIST_BIN"
export MOZILLA_FIVE_HOME
##
## Make sure that we set the plugin path
##
MOZ_PLUGIN_DIR="plugins"
if [ "$MOZ_PLUGIN_PATH" ]
then
MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/icecat/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR
else
MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/icecat/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR
fi
export MOZ_PLUGIN_PATH
##
## Set MOZ_APP_LAUNCHER for gnome-session
##
export MOZ_APP_LAUNCHER="/__PREFIX__/bin/icecat"
##
## Set FONTCONFIG_PATH for Xft/fontconfig
##
FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft"
export FONTCONFIG_PATH
##
## In order to better support certain scripts (such as Indic and some CJK
## scripts), Fedora builds its Firefox, with permission from the Mozilla
## Corporation, with the Pango system as its text renderer. This change
## may negatively impact performance on some pages. To disable the use of
## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching
## Firefox.
##
#
# MOZ_DISABLE_PANGO=1
# export MOZ_DISABLE_PANGO
#
##
## Disable the GNOME crash dialog, Moz has it's own
##
GNOME_DISABLE_CRASH_DIALOG=1
export GNOME_DISABLE_CRASH_DIALOG
##
## Disable the SLICE allocator (rhbz#1014858)
##
export G_SLICE=always-malloc
##
## Enable Xinput2 (mozbz#1207973)
##
export MOZ_USE_XINPUT2=1
# OK, here's where all the real work gets done
##
## To disable the use of IceCat localization, set MOZ_DISABLE_LANGPACKS=1
## in your environment before launching Firefox.
##
#
# MOZ_DISABLE_LANGPACKS=1
# export MOZ_DISABLE_LANGPACKS
#
##
## Automatically installed langpacks are tracked by .fedora-langpack-install
## config file.
##
FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install"
# MOZ_DISABLE_LANGPACKS disables language packs completely
MOZILLA_DOWN=0
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then
# Is icecat running?
/__PREFIX__/pidof icecat > /dev/null 2>&1
MOZILLA_DOWN=$?
fi
fi
# When IceCat is not running, restore SELinux labels for profile files
# (rhbz#1731371)
if [ $MOZILLA_DOWN -ne 0 ]; then
if [ -x $GETENFORCE_FILE ] && [ `getenforce` != "Disabled" ]; then
(restorecon -vr ~/.mozilla/icecat/* &)
fi
fi
# Modify language pack configuration only when icecat is not running
# and language packs are not disabled
if [ $MOZILLA_DOWN -ne 0 ]; then
# Clear already installed langpacks
mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR
if [ -f $FEDORA_LANGPACK_CONFIG ]; then
rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1
rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1
# remove all empty langpacks dirs while they block installation of langpacks
rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1
fi
# Get locale from system
CURRENT_LOCALE=$LC_ALL
CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES}
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
# Try with a local variant first, then without a local variant
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"`
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"`
function create_langpack_link() {
local language=$*
local langpack=langpack-${language}@icecat.mozilla.org.xpi
if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then
rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
# If the target file is a symlink (the fallback langpack),
# install the original file instead of the fallback one
if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then
langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack`
fi
ln -s $MOZ_LANGPACKS_DIR/$langpack \
$MOZ_EXTENSIONS_PROFILE_DIR/$langpack
echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG
return 0
fi
return 1
}
create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true
fi
# BEAST fix (rhbz#1005611)
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
export NSS_SSL_CBC_RANDOM_IV
# Prepare command line arguments
script_args=""
pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
case "$1" in
-g | --debug)
script_args="$script_args -g"
debugging=1
shift
;;
-d | --debugger)
if [ $# -gt 1 ]; then
script_args="$script_args -d $2"
shift 2
else
shift
fi
;;
*)
# Move the unrecognized argument to the end of the list.
arg="$1"
shift
set -- "$@" "$arg"
pass_arg_count=`expr $pass_arg_count + 1`
;;
esac
done
## Allow downgrade because during distro upgrade the build time can be
## older in newer version than the previous one.
##
export MOZ_ALLOW_DOWNGRADE=1
exec $MOZ_PROGRAM "$@"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,30 @@
diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
--- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang 2017-01-16 17:16:52.000000000 +0100
+++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2017-01-18 12:35:29.380394216 +0100
@@ -2852,6 +2852,11 @@ this.XPIProvider = {
this.addAddonsToCrashReporter();
}
+ // Save locale settings to compare it later to check whenever some addon
+ // changed it.
+ var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
+
try {
AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
@@ -2880,6 +2885,14 @@ this.XPIProvider = {
AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
}
+ var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
+ if (currentLocale != previousLocale) {
+ // We have to flush string cache if the locale was changed during loading
+ // of addons
+ Services.obs.notifyObservers(null, "chrome-flush-caches", null);
+ }
+
// Let these shutdown a little earlier when they still have access to most
// of XPCOM
Services.obs.addObserver({

51
mozilla-1158076-1.patch Normal file
View file

@ -0,0 +1,51 @@
diff -up firefox-52.0.2/modules/libpref/init/all.js.1158076-1 firefox-52.0.2/modules/libpref/init/all.js
--- firefox-52.0.2/modules/libpref/init/all.js.1158076-1 2017-03-31 09:44:28.377647329 +0200
+++ firefox-52.0.2/modules/libpref/init/all.js 2017-03-31 09:46:02.847234586 +0200
@@ -4646,6 +4646,8 @@ pref("gfx.apitrace.enabled",false);
pref("gfx.content.use-native-pushlayer", true);
#ifdef MOZ_WIDGET_GTK
pref("gfx.xrender.enabled",false);
+pref("widget.chrome.allow-gtk-dark-theme", false);
+pref("widget.content.allow-gtk-dark-theme", false);
#endif
#endif
diff -up firefox-52.0.2/widget/gtk/nsLookAndFeel.cpp.1158076-1 firefox-52.0.2/widget/gtk/nsLookAndFeel.cpp
--- firefox-52.0.2/widget/gtk/nsLookAndFeel.cpp.1158076-1 2017-03-31 09:44:28.374647342 +0200
+++ firefox-52.0.2/widget/gtk/nsLookAndFeel.cpp 2017-03-31 09:44:35.125617758 +0200
@@ -1134,16 +1134,27 @@ nsLookAndFeel::Init()
// with wrong color theme, see Bug 972382
GtkSettings *settings = gtk_settings_get_for_screen(gdk_screen_get_default());
- // Disable dark theme because it interacts poorly with widget styling in
- // web content (see bug 1216658).
- // To avoid triggering reload of theme settings unnecessarily, only set the
- // setting when necessary.
const gchar* dark_setting = "gtk-application-prefer-dark-theme";
- gboolean dark;
- g_object_get(settings, dark_setting, &dark, nullptr);
+ gboolean darkThemeDefault;
+ g_object_get(settings, dark_setting, &darkThemeDefault, nullptr);
- if (dark && !PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME")) {
- g_object_set(settings, dark_setting, FALSE, nullptr);
+ // Dark themes interacts poorly with widget styling (see bug 1216658).
+ // We disable dark themes by default for all processes (chrome, web content)
+ // but allow user to overide it by prefs.
+ if (darkThemeDefault) {
+ bool allowDarkTheme;
+ if (XRE_IsContentProcess()) {
+ allowDarkTheme =
+ mozilla::Preferences::GetBool("widget.content.allow-gtk-dark-theme",
+ false);
+ } else {
+ allowDarkTheme = (PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME") != nullptr) ||
+ mozilla::Preferences::GetBool("widget.chrome.allow-gtk-dark-theme",
+ false);
+ }
+ if (!allowDarkTheme) {
+ g_object_set(settings, dark_setting, FALSE, nullptr);
+ }
}
// Scrollbar colors

184
mozilla-1158076-2.patch Normal file
View file

@ -0,0 +1,184 @@
diff --git a/widget/gtk/nsLookAndFeel.h b/widget/gtk/nsLookAndFeel.h
--- a/widget/gtk/nsLookAndFeel.h
+++ b/widget/gtk/nsLookAndFeel.h
@@ -76,13 +76,14 @@ protected:
nscolor sTextSelectedBackground;
nscolor sMozScrollbar;
#if (MOZ_WIDGET_GTK == 3)
nscolor sInfoBarText;
#endif
char16_t sInvisibleCharacter;
float sCaretRatio;
bool sMenuSupportsDrag;
+ bool mInitialized;
- void Init();
+ void EnsureInit();
};
#endif
diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
--- a/widget/gtk/nsLookAndFeel.cpp
+++ b/widget/gtk/nsLookAndFeel.cpp
@@ -45,19 +45,19 @@ using mozilla::LookAndFeel;
(int)((c).blue*255), (int)((c).alpha*255)))
nsLookAndFeel::nsLookAndFeel()
: nsXPLookAndFeel(),
#if (MOZ_WIDGET_GTK == 2)
mStyle(nullptr),
#endif
mDefaultFontCached(false), mButtonFontCached(false),
- mFieldFontCached(false), mMenuFontCached(false)
+ mFieldFontCached(false), mMenuFontCached(false),
+ mInitialized(false)
{
- Init();
}
nsLookAndFeel::~nsLookAndFeel()
{
#if (MOZ_WIDGET_GTK == 2)
g_object_unref(mStyle);
#endif
}
@@ -219,16 +219,18 @@ GetBorderColors(GtkStyleContext* aContex
*aDarkColor = GDK_RGBA_TO_NS_RGBA(darkColor);
return ret;
}
#endif
nsresult
nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
{
+ EnsureInit();
+
#if (MOZ_WIDGET_GTK == 3)
GdkRGBA gdk_color;
#endif
nsresult res = NS_OK;
switch (aID) {
// These colors don't seem to be used for anything anymore in Mozilla
// (except here at least TextSelectBackground and TextSelectForeground)
@@ -670,16 +672,21 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
break;
}
res = nsXPLookAndFeel::GetIntImpl(aID, aResult);
if (NS_SUCCEEDED(res))
return res;
res = NS_OK;
+ // We use delayed initialization by EnsureInit() here
+ // to make sure mozilla::Preferences is available (Bug 115807).
+ // eIntID_UseAccessibilityTheme is requested before user preferences
+ // are read, and so EnsureInit(), which depends on preference values,
+ // is deliberately delayed until required.
switch (aID) {
case eIntID_CaretBlinkTime:
{
GtkSettings *settings;
gint blink_time;
gboolean blink;
settings = gtk_settings_get_default ();
@@ -832,16 +839,17 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
case eIntID_IMESelectedRawTextUnderlineStyle:
case eIntID_IMESelectedConvertedTextUnderline:
aResult = NS_STYLE_TEXT_DECORATION_STYLE_NONE;
break;
case eIntID_SpellCheckerUnderlineStyle:
aResult = NS_STYLE_TEXT_DECORATION_STYLE_WAVY;
break;
case eIntID_MenuBarDrag:
+ EnsureInit();
aResult = sMenuSupportsDrag;
break;
case eIntID_ScrollbarButtonAutoRepeatBehavior:
aResult = 1;
break;
case eIntID_SwipeAnimationEnabled:
aResult = 0;
break;
@@ -872,16 +880,17 @@ nsLookAndFeel::GetFloatImpl(FloatID aID,
switch (aID) {
case eFloatID_IMEUnderlineRelativeSize:
aResult = 1.0f;
break;
case eFloatID_SpellCheckerUnderlineRelativeSize:
aResult = 1.0f;
break;
case eFloatID_CaretAspectRatio:
+ EnsureInit();
aResult = sCaretRatio;
break;
default:
aResult = -1.0;
res = NS_ERROR_FAILURE;
}
return res;
}
@@ -1052,21 +1061,25 @@ nsLookAndFeel::GetFontImpl(FontID aID, n
}
aFontName = *cachedFontName;
aFontStyle = *cachedFontStyle;
return true;
}
void
-nsLookAndFeel::Init()
+nsLookAndFeel::EnsureInit()
{
GdkColor colorValue;
GdkColor *colorValuePtr;
+ if (mInitialized)
+ return;
+ mInitialized = true;
+
#if (MOZ_WIDGET_GTK == 2)
NS_ASSERTION(!mStyle, "already initialized");
// GtkInvisibles come with a refcount that is not floating
// (since their initialization code calls g_object_ref_sink) and
// their destroy code releases that reference (which means they
// have to be explicitly destroyed, since calling unref enough
// to cause destruction would lead to *another* unref).
// However, this combination means that it's actually still ok
@@ -1445,16 +1458,17 @@ nsLookAndFeel::Init()
gtk_widget_destroy(window);
}
// virtual
char16_t
nsLookAndFeel::GetPasswordCharacterImpl()
{
+ EnsureInit();
return sInvisibleCharacter;
}
void
nsLookAndFeel::RefreshImpl()
{
nsXPLookAndFeel::RefreshImpl();
@@ -1463,15 +1477,15 @@ nsLookAndFeel::RefreshImpl()
mFieldFontCached = false;
mMenuFontCached = false;
#if (MOZ_WIDGET_GTK == 2)
g_object_unref(mStyle);
mStyle = nullptr;
#endif
- Init();
+ mInitialized = false;
}
bool
nsLookAndFeel::GetEchoPasswordImpl() {
return false;
}

185
mozilla-1158076.patch Normal file
View file

@ -0,0 +1,185 @@
diff -up firefox-52.0/modules/libpref/init/all.js.1158076 firefox-52.0/modules/libpref/init/all.js
--- firefox-52.0/modules/libpref/init/all.js.1158076 2017-03-22 10:05:22.318067553 +0100
+++ firefox-52.0/modules/libpref/init/all.js 2017-03-22 10:07:15.360555913 +0100
@@ -4646,6 +4646,7 @@ pref("gfx.apitrace.enabled",false);
pref("gfx.content.use-native-pushlayer", true);
#ifdef MOZ_WIDGET_GTK
pref("gfx.xrender.enabled",false);
+pref("widget.allow-gtk-dark-theme", false);
#endif
#endif
diff -up firefox-52.0/widget/gtk/mozgtk/mozgtk.c.1158076 firefox-52.0/widget/gtk/mozgtk/mozgtk.c
--- firefox-52.0/widget/gtk/mozgtk/mozgtk.c.1158076 2017-03-22 10:05:22.313067576 +0100
+++ firefox-52.0/widget/gtk/mozgtk/mozgtk.c 2017-03-22 10:08:34.122199432 +0100
@@ -522,6 +522,7 @@ STUB(gdk_x11_display_get_type)
STUB(gtk_box_new)
STUB(gtk_cairo_should_draw_window)
STUB(gtk_cairo_transform_to_window)
+STUB(gtk_css_provider_get_named)
STUB(gtk_combo_box_text_append)
STUB(gtk_drag_set_icon_surface)
STUB(gtk_get_major_version)
@@ -548,6 +549,7 @@ STUB(gtk_scale_new)
STUB(gtk_scrollbar_new)
STUB(gtk_style_context_add_class)
STUB(gtk_style_context_add_region)
+STUB(gtk_style_context_add_provider_for_screen)
STUB(gtk_style_context_get)
STUB(gtk_style_context_get_background_color)
STUB(gtk_style_context_get_border)
@@ -573,6 +575,7 @@ STUB(gtk_style_context_set_path)
STUB(gtk_style_context_set_parent)
STUB(gtk_style_context_set_state)
STUB(gtk_style_properties_lookup_property)
+STUB(gtk_style_provider_get_type)
STUB(gtk_tree_view_column_get_button)
STUB(gtk_widget_get_preferred_size)
STUB(gtk_widget_get_state_flags)
diff -up firefox-52.0/widget/gtk/nsLookAndFeel.cpp.1158076 firefox-52.0/widget/gtk/nsLookAndFeel.cpp
--- firefox-52.0/widget/gtk/nsLookAndFeel.cpp.1158076 2017-03-22 10:05:22.314067571 +0100
+++ firefox-52.0/widget/gtk/nsLookAndFeel.cpp 2017-03-22 10:07:56.914367838 +0100
@@ -50,9 +50,9 @@ nsLookAndFeel::nsLookAndFeel()
mStyle(nullptr),
#endif
mDefaultFontCached(false), mButtonFontCached(false),
- mFieldFontCached(false), mMenuFontCached(false)
+ mFieldFontCached(false), mMenuFontCached(false),
+ mInitialized(false)
{
- Init();
}
nsLookAndFeel::~nsLookAndFeel()
@@ -224,6 +224,8 @@ GetBorderColors(GtkStyleContext* aContex
nsresult
nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
{
+ EnsureInit();
+
#if (MOZ_WIDGET_GTK == 3)
GdkRGBA gdk_color;
#endif
@@ -675,6 +677,8 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
return res;
res = NS_OK;
+ // We use delayed initialization by EnsureInit() here
+ // to ensure mozilla::Preferences is available (see Bug 1158076).
switch (aID) {
case eIntID_CaretBlinkTime:
{
@@ -837,6 +841,7 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
aResult = NS_STYLE_TEXT_DECORATION_STYLE_WAVY;
break;
case eIntID_MenuBarDrag:
+ EnsureInit();
aResult = sMenuSupportsDrag;
break;
case eIntID_ScrollbarButtonAutoRepeatBehavior:
@@ -877,6 +882,7 @@ nsLookAndFeel::GetFloatImpl(FloatID aID,
aResult = 1.0f;
break;
case eFloatID_CaretAspectRatio:
+ EnsureInit();
aResult = sCaretRatio;
break;
default:
@@ -1057,11 +1063,15 @@ nsLookAndFeel::GetFontImpl(FontID aID, n
}
void
-nsLookAndFeel::Init()
+nsLookAndFeel::EnsureInit()
{
GdkColor colorValue;
GdkColor *colorValuePtr;
+ if (mInitialized)
+ return;
+ mInitialized = true;
+
#if (MOZ_WIDGET_GTK == 2)
NS_ASSERTION(!mStyle, "already initialized");
// GtkInvisibles come with a refcount that is not floating
@@ -1133,17 +1143,40 @@ nsLookAndFeel::Init()
// ask Gtk to create it explicitly. Otherwise we may end up
// with wrong color theme, see Bug 972382
GtkSettings *settings = gtk_settings_get_for_screen(gdk_screen_get_default());
+ bool e10sActive = mozilla::BrowserTabsRemoteAutostart();
+
+ if (!e10sActive || XRE_IsContentProcess()) {
+ // Disable dark theme in processes with web content because it
+ // interacts poorly with widget styling (see bug 1216658).
+ // To avoid triggering reload of theme settings unnecessarily, only set the
+ // setting when necessary.
+ const gchar* dark_setting = "gtk-application-prefer-dark-theme";
+ gboolean dark;
+ g_object_get(settings, dark_setting, &dark, nullptr);
+
+ bool allowDarkEnv = PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME") != nullptr;
+ bool allowDarkPref =
+ mozilla::Preferences::GetBool("widget.allow-gtk-dark-theme", false);
- // Disable dark theme because it interacts poorly with widget styling in
- // web content (see bug 1216658).
- // To avoid triggering reload of theme settings unnecessarily, only set the
- // setting when necessary.
- const gchar* dark_setting = "gtk-application-prefer-dark-theme";
- gboolean dark;
- g_object_get(settings, dark_setting, &dark, nullptr);
+ if (dark && !allowDarkEnv && !allowDarkPref) {
+ g_object_set(settings, dark_setting, FALSE, nullptr);
+ }
- if (dark && !PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME")) {
- g_object_set(settings, dark_setting, FALSE, nullptr);
+ // Allow Gtk+ theme override for web content only.
+ if (e10sActive) {
+ auto contentThemeName =
+ mozilla::Preferences::GetCString("widget.content-gtk-theme");
+ if (!contentThemeName.IsEmpty()) {
+ // TODO: It should be enough to change theme by "gtk-theme-name"
+ // settings but that does not have any effect here. Maybe we
+ // call it too late?
+ GtkCssProvider *styleProvider =
+ gtk_css_provider_get_named(contentThemeName, NULL);
+ gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
+ GTK_STYLE_PROVIDER(styleProvider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+ }
}
// Scrollbar colors
@@ -1439,6 +1472,7 @@ nsLookAndFeel::Init()
char16_t
nsLookAndFeel::GetPasswordCharacterImpl()
{
+ EnsureInit();
return sInvisibleCharacter;
}
@@ -1457,7 +1491,7 @@ nsLookAndFeel::RefreshImpl()
mStyle = nullptr;
#endif
- Init();
+ mInitialized = false;
}
bool
diff -up firefox-52.0/widget/gtk/nsLookAndFeel.h.1158076 firefox-52.0/widget/gtk/nsLookAndFeel.h
--- firefox-52.0/widget/gtk/nsLookAndFeel.h.1158076 2016-05-12 19:13:34.000000000 +0200
+++ firefox-52.0/widget/gtk/nsLookAndFeel.h 2017-03-22 10:06:36.461731972 +0100
@@ -84,8 +84,9 @@ protected:
char16_t sInvisibleCharacter;
float sCaretRatio;
bool sMenuSupportsDrag;
+ bool mInitialized;
- void Init();
+ void EnsureInit();
};
#endif

96
mozilla-1170092.patch Normal file
View file

@ -0,0 +1,96 @@
diff -up firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2016-03-15 23:37:54.000000000 +0100
+++ firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp 2016-03-21 16:10:42.540417899 +0100
@@ -245,8 +245,20 @@ nsresult nsReadConfig::openAndEvaluateJS
return rv;
rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
- if (NS_FAILED(rv))
- return rv;
+ if (NS_FAILED(rv)) {
+ // Look for cfg file in /etc/<application>/pref
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(jsFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref"));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = jsFile->AppendNative(nsDependentCString(aFileName));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
} else {
nsAutoCString location("resource://gre/defaults/autoconfig/");
diff -up firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 firefox-45.0.1/modules/libpref/Preferences.cpp
--- firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 2016-03-21 16:10:42.540417899 +0100
+++ firefox-45.0.1/modules/libpref/Preferences.cpp 2016-03-21 16:13:29.145888710 +0100
@@ -1214,6 +1214,8 @@ static nsresult pref_InitInitialObjects(
// - jar:$gre/omni.jar!/defaults/preferences/*.js
// Thus, in omni.jar case, we always load app-specific default preferences
// from omni.jar, whether or not $app == $gre.
+ // At very end load configuration from system config location:
+ // - /etc/firefox/pref/*.js
nsZipFind *findPtr;
nsAutoPtr<nsZipFind> find;
diff -up firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp
--- firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 2016-03-15 23:37:46.000000000 +0100
+++ firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp 2016-03-21 16:12:06.498655156 +0100
@@ -51,6 +51,7 @@
#endif
#ifdef XP_UNIX
#include <ctype.h>
+#include "nsIXULAppInfo.h"
#endif
#ifdef XP_IOS
#include "UIKitDirProvider.h"
@@ -457,6 +458,20 @@ nsXREDirProvider::GetFile(const char* aP
}
}
}
+#if defined(XP_UNIX)
+ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) {
+ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/");
+ nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
+ if (!appInfo)
+ return NS_ERROR_NOT_AVAILABLE;
+ nsCString appName;
+ appInfo->GetName(appName);
+ ToLowerCase(appName);
+ sysConfigDir.Append(appName);
+ return NS_NewNativeLocalFile(sysConfigDir, false, aFile);
+ }
+#endif
+
if (NS_FAILED(rv) || !file)
return NS_ERROR_FAILURE;
@@ -753,6 +768,14 @@ nsXREDirProvider::GetFilesInternal(const
LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories);
LoadDirsIntoArray(mAppBundleDirectories,
kAppendPrefDir, directories);
+ // Add /etc/<application>/pref/ directory if it exists
+ nsCOMPtr<nsIFile> systemPrefDir;
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, getter_AddRefs(systemPrefDir));
+ if (NS_SUCCEEDED(rv)) {
+ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref"));
+ if (NS_SUCCEEDED(rv))
+ directories.AppendObject(systemPrefDir);
+ }
rv = NS_NewArrayEnumerator(aResult, directories);
}
diff -up firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h
--- firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2016-03-15 23:37:47.000000000 +0100
+++ firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h 2016-03-21 16:10:42.541417902 +0100
@@ -67,6 +67,7 @@
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_EXT_PREFS_DEFAULTS_DIR_LIST "ExtPrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR "PrefDOverride" // Directory for per-profile defaults
+#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration
#define NS_APP_USER_PROFILE_50_DIR "ProfD"
#define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD"

28
mozilla-1196777.patch Normal file
View file

@ -0,0 +1,28 @@
# HG changeset patch
# User Martin Stransky <stransky@redhat.com>
# Parent 4e3ad95d689a5beabf3c1f41d958794fe00e3767
Bug 1196777 - Ask GDK to receive focus events, r=?karlt
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -142,17 +142,18 @@ const gint kEvents = GDK_EXPOSURE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
#if GTK_CHECK_VERSION(3,4,0)
GDK_SMOOTH_SCROLL_MASK |
GDK_TOUCH_MASK |
#endif
GDK_SCROLL_MASK |
GDK_POINTER_MOTION_MASK |
- GDK_PROPERTY_CHANGE_MASK;
+ GDK_PROPERTY_CHANGE_MASK |
+ GDK_FOCUS_CHANGE_MASK;
/* utility functions */
static bool is_mouse_in_window(GdkWindow* aWindow,
gdouble aMouseX, gdouble aMouseY);
static nsWindow *get_window_for_gtk_widget(GtkWidget *widget);
static nsWindow *get_window_for_gdk_window(GdkWindow *window);
static GtkWidget *get_gtk_widget_for_gdk_window(GdkWindow *window);
static GdkCursor *get_gtk_cursor(nsCursor aCursor);

12
mozilla-1253216.patch Normal file
View file

@ -0,0 +1,12 @@
diff -up firefox-48.0/js/src/jit/AtomicOperations.h.old firefox-48.0/js/src/jit/AtomicOperations.h
--- firefox-48.0/js/src/jit/AtomicOperations.h.old 2016-07-27 09:42:43.148175449 +0200
+++ firefox-48.0/js/src/jit/AtomicOperations.h 2016-07-27 09:41:13.000000000 +0200
@@ -340,7 +340,7 @@ AtomicOperations::isLockfree(int32_t siz
# elif defined(__aarch64__)
# include "jit/arm64/AtomicOperations-arm64.h"
# else
-# include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
+# include "jit/none/AtomicOperations-ppc.h"
# endif
#elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64)
# include "jit/x86-shared/AtomicOperations-x86-shared.h"

View file

@ -1,20 +0,0 @@
--- a/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
+++ b/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
@@ -1055,7 +1055,7 @@
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
MutableHandleValue srcp) const;
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
+ bool GatherAndConvertResults();
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
@@ -1102,7 +1102,7 @@
~CallMethodHelper();
- MOZ_ALWAYS_INLINE bool Call();
+ bool Call();
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);

11
mozilla-256180.patch Normal file
View file

@ -0,0 +1,11 @@
--- layout/generic/nsIFrame.h.old 2016-07-11 13:41:39.688276559 +0200
+++ layout/generic/nsIFrame.h 2016-07-11 13:42:12.791406976 +0200
@@ -13,7 +13,7 @@
#error This header/class should only be used within GNU code. It should not be used by extensions.
#endif
-#define MAX_REFLOW_DEPTH 200
+#define MAX_REFLOW_DEPTH 1000
/* nsIFrame is in the process of being deCOMtaminated, i.e., this file is eventually
going to be eliminated, and all callers will use nsFrame instead. At the moment

120
mozilla-440908.patch Normal file
View file

@ -0,0 +1,120 @@
diff -up firefox-50.0/modules/libpref/prefapi.cpp.440908 firefox-50.0/modules/libpref/prefapi.cpp
--- firefox-50.0/modules/libpref/prefapi.cpp.440908 2016-10-31 21:15:26.000000000 +0100
+++ firefox-50.0/modules/libpref/prefapi.cpp 2016-11-10 10:32:48.796115692 +0100
@@ -997,8 +997,8 @@ void PREF_ReaderCallback(void *clo
PrefValue value,
PrefType type,
bool isDefault,
- bool isStickyDefault)
-
+ bool isStickyDefault,
+ bool isLocked)
{
uint32_t flags = 0;
if (isDefault) {
@@ -1010,4 +1010,6 @@ void PREF_ReaderCallback(void *clo
flags |= kPrefForceSet;
}
pref_HashPref(pref, value, type, flags);
+ if (isLocked)
+ PREF_LockPref(pref, true);
}
diff -up firefox-50.0/modules/libpref/prefapi.h.440908 firefox-50.0/modules/libpref/prefapi.h
--- firefox-50.0/modules/libpref/prefapi.h.440908 2016-11-10 10:32:48.796115692 +0100
+++ firefox-50.0/modules/libpref/prefapi.h 2016-11-10 10:34:58.013159112 +0100
@@ -243,8 +243,8 @@ void PREF_ReaderCallback( void *closure,
PrefValue value,
PrefType type,
bool isDefault,
- bool isStickyDefault);
-
+ bool isStickyDefault,
+ bool isLocked);
/*
* Callback whenever we change a preference
diff -up firefox-50.0/modules/libpref/prefread.cpp.440908 firefox-50.0/modules/libpref/prefread.cpp
--- firefox-50.0/modules/libpref/prefread.cpp.440908 2016-09-05 22:12:58.000000000 +0200
+++ firefox-50.0/modules/libpref/prefread.cpp 2016-11-10 10:32:48.796115692 +0100
@@ -43,6 +43,7 @@ enum {
#define BITS_PER_HEX_DIGIT 4
static const char kUserPref[] = "user_pref";
+static const char kLockPref[] = "lockPref";
static const char kPref[] = "pref";
static const char kPrefSticky[] = "sticky_pref";
static const char kTrue[] = "true";
@@ -146,7 +147,7 @@ pref_DoCallback(PrefParseState *ps)
break;
}
(*ps->reader)(ps->closure, ps->lb, value, ps->vtype, ps->fdefault,
- ps->fstickydefault);
+ ps->fstickydefault, ps->flock);
return true;
}
@@ -215,6 +216,7 @@ PREF_ParseBuf(PrefParseState *ps, const
ps->vtype = PrefType::Invalid;
ps->fdefault = false;
ps->fstickydefault = false;
+ ps->flock = false;
}
switch (c) {
case '/': /* begin comment block or line? */
@@ -225,11 +227,14 @@ PREF_ParseBuf(PrefParseState *ps, const
break;
case 'u': /* indicating user_pref */
case 's': /* indicating sticky_pref */
+ case 'l': /* indicating lockPref */
case 'p': /* indicating pref */
if (c == 'u') {
ps->smatch = kUserPref;
} else if (c == 's') {
ps->smatch = kPrefSticky;
+ } else if (c == 'l') {
+ ps->smatch = kLockPref;
} else {
ps->smatch = kPref;
}
@@ -277,8 +282,10 @@ PREF_ParseBuf(PrefParseState *ps, const
/* name parsing */
case PREF_PARSE_UNTIL_NAME:
if (c == '\"' || c == '\'') {
- ps->fdefault = (ps->smatch == kPref || ps->smatch == kPrefSticky);
+ ps->fdefault = (ps->smatch == kPref || ps->smatch == kPrefSticky
+ || ps->smatch == kLockPref);
ps->fstickydefault = (ps->smatch == kPrefSticky);
+ ps->flock = (ps->smatch == kLockPref);
ps->quotechar = c;
ps->nextstate = PREF_PARSE_UNTIL_COMMA; /* return here when done */
state = PREF_PARSE_QUOTED_STRING;
diff -up firefox-50.0/modules/libpref/prefread.h.440908 firefox-50.0/modules/libpref/prefread.h
--- firefox-50.0/modules/libpref/prefread.h.440908 2016-09-05 22:12:58.000000000 +0200
+++ firefox-50.0/modules/libpref/prefread.h 2016-11-10 10:32:48.796115692 +0100
@@ -34,7 +34,8 @@ typedef void (*PrefReader)(void *c
PrefValue val,
PrefType type,
bool defPref,
- bool stickyPref);
+ bool stickyPref,
+ bool lockPref);
/**
* Report any errors or warnings we encounter during parsing.
@@ -62,6 +63,7 @@ typedef struct PrefParseState {
PrefType vtype; /* PREF_STRING,INT,BOOL */
bool fdefault; /* true if (default) pref */
bool fstickydefault; /* true if (sticky) pref */
+ bool flock; /* true if pref to be locked */
} PrefParseState;
/**
@@ -90,7 +92,7 @@ void PREF_InitParseState(PrefParseState
*
* @param ps
* PrefParseState instance.
- */
+ */
void PREF_FinalizeParseState(PrefParseState *ps);
/**

38
mozilla-build-arm.patch Normal file
View file

@ -0,0 +1,38 @@
diff -up firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h
--- firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm 2017-03-03 13:53:52.480754536 +0100
+++ firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h 2017-03-03 13:56:01.476018102 +0100
@@ -203,6 +203,10 @@
#define SK_ARM_HAS_CRC32
#endif
+#if defined(__aarch64__)
+ #undef SK_ARM_HAS_NEON
+#endif
+
//////////////////////////////////////////////////////////////////////
#if !defined(SKIA_IMPLEMENTATION)
diff -up firefox-52.0/media/webrtc/trunk/webrtc/build/common.gypi.arm firefox-52.0/media/webrtc/trunk/webrtc/build/common.gypi
--- firefox-52.0/media/webrtc/trunk/webrtc/build/common.gypi.arm 2016-09-05 22:12:57.000000000 +0200
+++ firefox-52.0/media/webrtc/trunk/webrtc/build/common.gypi 2017-03-03 13:53:52.480754536 +0100
@@ -312,20 +312,6 @@
'defines': [
'WEBRTC_ARCH_ARM',
],
- 'conditions': [
- ['arm_version>=7', {
- 'defines': ['WEBRTC_ARCH_ARM_V7',
- 'WEBRTC_BUILD_NEON_LIBS'],
- 'conditions': [
- ['arm_neon==1', {
- 'defines': ['WEBRTC_ARCH_ARM_NEON',],
- }],
- ['arm_neon==0 and arm_neon_optional==1', {
- 'defines': ['WEBRTC_DETECT_ARM_NEON',],
- }],
- ],
- }],
- ],
}],
['os_bsd==1', {
'defines': [

View file

@ -1,2 +0,0 @@
#!/bin/sh
exec /usr/bin/node "$@" 2>&1 | cat -

12
rhbz-1173156.patch Normal file
View file

@ -0,0 +1,12 @@
diff -up firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp.old firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp
--- firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp.old 2014-11-25 12:23:22.000000000 +0100
+++ firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp 2014-12-23 15:26:36.606674625 +0100
@@ -174,7 +174,7 @@ nsAuthSambaNTLM::SpawnNTLMAuthHelper()
return NS_ERROR_FAILURE;
const char* const args[] = {
- "ntlm_auth",
+ "/usr/bin/ntlm_auth",
"--helper-protocol", "ntlmssp-client-1",
"--use-cached-creds",
"--username", username,

View file

@ -1,11 +1,16 @@
--- firefox-78.0/layout/base/PresShell.orig.h 2020-06-26 20:10:50.168878803 +0200
+++ firefox-78.0/layout/base/PresShell.h 2020-06-26 23:13:24.174571951 +0200
@@ -257,7 +257,7 @@
* to the same aSize value. AllocateFrame is infallible and will abort
* on out-of-memory.
@@ -, +, @@
---
layout/base/nsIPresShell.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/layout/base/nsIPresShell.h
+++ a/layout/base/nsIPresShell.h
@@ -224,7 +224,7 @@ public:
* to the same aSize value. AllocateFrame returns zero-filled memory.
* AllocateFrame is infallible and will abort on out-of-memory.
*/
- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
+ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
#define FRAME_ID(classname, ...) \
static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \
size_t(eArenaObjectID_##classname), \
- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize)
+ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize)
{
void* result = mFrameArena.AllocateByFrameID(aID, aSize);
RecordAlloc(result);
--

View file

@ -0,0 +1,72 @@
diff --git a/security/certverifier/CertVerifier.cpp b/security/certverifier/CertVerifier.cpp
--- a/security/certverifier/CertVerifier.cpp
+++ b/security/certverifier/CertVerifier.cpp
@@ -120,16 +120,20 @@ IsCertChainRootBuiltInRoot(const UniqueC
}
CERTCertificate* root = rootNode->cert;
if (!root) {
return Result::FATAL_ERROR_LIBRARY_FAILURE;
}
return IsCertBuiltInRoot(root, result);
}
+// The term "builtin root" traditionally refers to a root CA certificate that
+// has been added to the NSS trust store, because it has been approved
+// for inclusion according to the Mozilla CA policy, and might be accepted
+// by Mozilla applications as an issuer for certificates seen on the public web.
Result
IsCertBuiltInRoot(CERTCertificate* cert, bool& result)
{
result = false;
#ifdef DEBUG
nsCOMPtr<nsINSSComponent> component(do_GetService(PSM_COMPONENT_CONTRACTID));
if (!component) {
return Result::FATAL_ERROR_LIBRARY_FAILURE;
@@ -142,25 +146,38 @@ IsCertBuiltInRoot(CERTCertificate* cert,
return Success;
}
#endif // DEBUG
AutoSECMODListReadLock lock;
for (SECMODModuleList* list = SECMOD_GetDefaultModuleList(); list;
list = list->next) {
for (int i = 0; i < list->module->slotCount; i++) {
PK11SlotInfo* slot = list->module->slots[i];
- // PK11_HasRootCerts should return true if and only if the given slot has
- // an object with a CKA_CLASS of CKO_NETSCAPE_BUILTIN_ROOT_LIST, which
- // should be true only of the builtin root list.
- // If we can find a copy of the given certificate on the slot with the
- // builtin root list, that certificate must be a builtin.
- if (PK11_IsPresent(slot) && PK11_HasRootCerts(slot) &&
- PK11_FindCertInSlot(slot, cert, nullptr) != CK_INVALID_HANDLE) {
- result = true;
- return Success;
+ // We're searching for the "builtin root module", which is a module that
+ // contains an object with a CKA_CLASS of CKO_NETSCAPE_BUILTIN_ROOT_LIST.
+ // We use PK11_HasRootCerts() to identify a module with that property.
+ // In the past, we exclusively used the PKCS#11 module named nssckbi,
+ // which is provided by the NSS library.
+ // Nowadays, some distributions use a replacement module, which contains
+ // the builtin roots, but which also contains additional CA certificates,
+ // such as CAs trusted in a local deployment.
+ // We want to be able to distinguish between these two categories,
+ // because a CA, which may issue certificates for the public web,
+ // is expected to comply with additional requirements.
+ // If the certificate has attribute CKA_NSS_MOZILLA_CA_POLICY set to true,
+ // then we treat it as a "builtin root".
+ if (PK11_IsPresent(slot) && PK11_HasRootCerts(slot)) {
+ CK_OBJECT_HANDLE handle = PK11_FindCertInSlot(slot, cert, nullptr);
+ if (handle != CK_INVALID_HANDLE &&
+ PK11_HasAttributeSet(slot, handle, CKA_NSS_MOZILLA_CA_POLICY,
+ false)) {
+ // Attribute was found, and is set to true
+ result = true;
+ break;
+ }
}
}
}
return Success;
}
static Result
BuildCertChainForOneKeyUsage(NSSCertDBTrustDomain& trustDomain, Input certDER,

View file

@ -0,0 +1,37 @@
diff -up ./CertVerifier.cpp.ignoreBuiltinStatus ./CertVerifier.cpp
--- ./security/certverifier/CertVerifier.cpp.ignoreBuiltinStatus 2016-10-31 21:15:28.000000000 +0100
+++ ./security/certverifier/CertVerifier.cpp 2016-12-16 21:35:32.155105623 +0100
@@ -65,6 +65,9 @@ InitCertVerifierLog()
Result
IsCertChainRootBuiltInRoot(const UniqueCERTCertList& chain, bool& result)
{
+ result = false;
+ return Success;
+#if 0
if (!chain || CERT_LIST_EMPTY(chain)) {
return Result::FATAL_ERROR_LIBRARY_FAILURE;
}
@@ -77,12 +80,15 @@ IsCertChainRootBuiltInRoot(const UniqueC
return Result::FATAL_ERROR_LIBRARY_FAILURE;
}
return IsCertBuiltInRoot(root, result);
+#endif
}
Result
IsCertBuiltInRoot(CERTCertificate* cert, bool& result)
{
result = false;
+ return Success;
+#if 0
#ifdef DEBUG
nsCOMPtr<nsINSSComponent> component(do_GetService(PSM_COMPONENT_CONTRACTID));
if (!component) {
@@ -114,6 +120,7 @@ IsCertBuiltInRoot(CERTCertificate* cert,
}
}
return Success;
+#endif
}
static Result

14
rhbz-966424.patch Normal file
View file

@ -0,0 +1,14 @@
diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm
--- firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200
+++ firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200
@@ -174,7 +174,9 @@ this.checkCert =
}
function isBuiltinToken(tokenName) {
- return tokenName == "Builtin Object Token";
+ return tokenName == "Builtin Object Token" ||
+ tokenName == "Default Trust" ||
+ tokenName == "System Trust";
}
/**

View file

@ -1,60 +0,0 @@
#!/usr/bin/bash
# Run wayland compositor and set WAYLAND_DISPLAY env variable
set -x
echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc
echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc
echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc
# Turn off the screen saver and screen locking
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.screensaver lock-delay 3600
# Disable the screen saver
# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to
# store secrets. Firefox uses libsecret to store a key that protects sensitive information like
# credit card numbers.
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
# if not found, launch a new one
eval `dbus-launch --sh-syntax`
fi
if [ -z "$XDG_RUNTIME_DIR" ]; then
export XDG_RUNTIME_DIR=$HOME
fi
export WAYLAND_DISPLAY=icecat-pgo-wayland-0
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
rm -f $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY
rm -f $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY.lock
fi
echo "Launch mutter for $WAYLAND_DISPLAY"
mutter --headless --virtual-monitor 1920x1080 --wayland-display=$WAYLAND_DISPLAY --no-x11 & MUTTER_PID=$!
export MUTTER_PID
echo "Mutter PID $MUTTER_PID"
echo "Waiting for mutter to start..."
sleep 5
retry_count=0
max_retries=5
until [ $retry_count -gt $max_retries ]; do
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
retry_count=$(($max_retries + 1))
else
retry_count=$(($retry_count + 1))
echo "Waiting for Mutter, retry: $retry_count"
sleep 2
fi
done
if [ ! -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
echo "Mutter failed to start!"
exit 1
fi
echo "Mutter is running, $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY is here."

View file

@ -1,5 +1,3 @@
SHA512 (cbindgen-vendor.tar.xz) = 647dcadf3507bd05262613d03ff18a8c876bcbb4e83ce59f911128ae020ac16695298987c6c14f8b7a7aee5bb096740c6885c0a854d8b26431fc9a8ff864c369
SHA512 (icecat-140.7.0-langpacks.tar.gz) = a4618e3272b48be4307c79222bdd55f321aefb6d6ba08beb10178d0b95530bc4130cf86901d0906e714bd75106ad8513957fe3ad335431c8faf5b2d9767e17de
SHA512 (icecat-140.7.0-rh1.tar.bz2) = 7a19f7928322bea905828e6a4e981395687f1b649e37518a8000bcfcb29446b424ee592f708d0c7c93ebeb901820752785f883a937e9361e9f172a0a9bacb603
SHA512 (icecat-52.3.0-gnu1.tar.bz2) = 7eb7a555983a9ef8db7afa873c77081a6c60953c92f4c07c35e386acee6aaeecf39e4bef6408f6aced248a7a4b9c55038d680e93555f49d1a4eca8153efbc428
SHA512 (icecat-52.3.0-langpacks.tar.gz) = 175c4630d3e94fbfc7ab2e7f820571664f93a2b2b8eae71491b47c3108df810e6d5ce2e0d3d534bfd1b45810ea0108c03900be0f7196f7b4c8718e40444d7724
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
SHA512 (icecat.png) = a3cec16cb15a27c3c91b53e2c534e78b07911011ff1331e450c0baf8e13b76da7cea2a90e5d75191fa88cfbfd40a0a7f3e553e92b64d0043dadd5ad5edfdf81c

1159
widget-rebase.patch Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
diff -up firefox-48.0/memory/mozjemalloc/jemalloc.c.jemalloc-ppc firefox-48.0/memory/mozjemalloc/jemalloc.c
--- firefox-48.0/memory/mozjemalloc/jemalloc.c.jemalloc-ppc 2016-07-26 10:51:46.385434384 +0200
+++ firefox-48.0/memory/mozjemalloc/jemalloc.c 2016-07-26 10:53:49.061023106 +0200
@@ -1090,7 +1090,7 @@ static const bool config_recycle = false
* controlling the malloc behavior are defined as compile-time constants
* for best performance and cannot be altered at runtime.
*/
-#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__aarch64__)
+#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__aarch64__) && !(defined(__powerpc__))
#define MALLOC_STATIC_SIZES 1
#endif

View file

@ -0,0 +1,12 @@
diff -up xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp.s390-inlines xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp
--- xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp.s390-inlines 2013-10-23 16:04:01.773093979 +0200
+++ xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp 2013-10-23 16:04:44.551134551 +0200
@@ -4,6 +4,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "jscntxtinlines.h"
+
#include "vm/SPSProfiler.h"
#include "mozilla/DebugOnly.h"