diff --git a/.gitignore b/.gitignore index 978d442..241f013 100644 --- a/.gitignore +++ b/.gitignore @@ -116,3 +116,183 @@ /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 diff --git a/Bug-1238661_fix-mozillaSignalTrampoline-to-work-.patch b/Bug-1238661_fix-mozillaSignalTrampoline-to-work-.patch deleted file mode 100644 index 1e358a8..0000000 --- a/Bug-1238661_fix-mozillaSignalTrampoline-to-work-.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 firefox-60.0/mfbt/LinuxSignal.h ---- firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 2018-04-27 08:55:38.848241768 +0200 -+++ firefox-60.0/mfbt/LinuxSignal.h 2018-04-27 09:06:47.946769859 +0200 -@@ -22,7 +22,7 @@ - void* aContext) { - asm volatile("nop; nop; nop; nop" : : : "memory"); - -- asm volatile("b %0" : : "X"(H) : "memory"); -+ asm volatile("bx %0" : : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory"); - } - - # define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline) diff --git a/README.md b/README.md new file mode 100644 index 0000000..f490435 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +[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. diff --git a/build-aarch64-skia.patch b/build-aarch64-skia.patch deleted file mode 100644 index a00ee70..0000000 --- a/build-aarch64-skia.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -up firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old firefox-68.0/gfx/skia/skia/include/private/SkHalf.h ---- firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old 2019-07-11 12:33:40.471936951 +0200 -+++ firefox-68.0/gfx/skia/skia/include/private/SkHalf.h 2019-07-11 12:33:50.527913736 +0200 -@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_ - - static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) { - Sk4h hs = Sk4h::Load(&rgba); --#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) -+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) - float32x4_t fs; - asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...) - : [fs] "=w" (fs) // =w: write-only NEON register -@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_ - } - - static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) { --#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) -+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) - float32x4_t vec = fs.fVec; - asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec) - : [vec] "+w" (vec)); // +w: read-write NEON register - -diff -up firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h ---- firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old 2019-07-11 12:39:08.694166900 +0200 -+++ firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2019-07-11 12:39:21.572136328 +0200 -@@ -830,7 +830,7 @@ SI F from_half(U16 h) { - } - - SI U16 to_half(F f) { --#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. -+#if 0 // defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. - return vcvt_f16_f32(f); - - #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) -diff -up firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h ---- firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old 2019-07-11 12:38:45.285222428 +0200 -+++ firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2019-07-11 12:38:57.414193679 +0200 -@@ -163,7 +163,7 @@ SI F F_from_Half(U16 half) { - __attribute__((no_sanitize("unsigned-integer-overflow"))) - #endif - SI U16 Half_from_F(F f) { --#if defined(USING_NEON_F16C) -+#if 0 // defined(USING_NEON_F16C) - return (U16)vcvt_f16_f32(f); - #elif defined(__AVX512F__) - return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION ); diff --git a/build-arm-libopus.patch b/build-arm-libopus.patch deleted file mode 100644 index 1b3f31b..0000000 --- a/build-arm-libopus.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old firefox-66.0/media/libopus/silk/arm/arm_silk_map.c ---- firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old 2019-03-12 21:07:35.356677522 +0100 -+++ firefox-66.0/media/libopus/silk/arm/arm_silk_map.c 2019-03-12 21:07:42.937693394 +0100 -@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE. - # include "config.h" - #endif - --#include "main_FIX.h" -+#include "fixed/main_FIX.h" - #include "NSQ.h" - #include "SigProc_FIX.h" - diff --git a/build-disable-elfhack.patch b/build-disable-elfhack.patch deleted file mode 100644 index a80c551..0000000 --- a/build-disable-elfhack.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-65.0/toolkit/moz.configure.disable-elfhack firefox-65.0/toolkit/moz.configure ---- firefox-65.0/toolkit/moz.configure.disable-elfhack 2019-01-28 14:16:48.530345132 +0100 -+++ firefox-65.0/toolkit/moz.configure 2019-01-28 14:18:03.231029682 +0100 -@@ -1036,7 +1036,7 @@ with only_when('--enable-compile-environ - help='{Enable|Disable} elf hacks') - - set_config('USE_ELF_HACK', -- depends_if('--enable-elf-hack')(lambda _: True)) -+ depends_if('--enable-elf-hack')(lambda _: False)) - - - @depends(check_build_environment) diff --git a/firefox-nss-addon-hack.patch b/firefox-nss-addon-hack.patch new file mode 100644 index 0000000..0322707 --- /dev/null +++ b/firefox-nss-addon-hack.patch @@ -0,0 +1,19 @@ +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) { diff --git a/firefox-pipewire.patch b/firefox-pipewire.patch deleted file mode 100644 index 7233a73..0000000 --- a/firefox-pipewire.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -up firefox-68.0/config/system-headers.mozbuild.firefox-pipewire firefox-68.0/config/system-headers.mozbuild ---- firefox-68.0/config/system-headers.mozbuild.firefox-pipewire 2019-07-01 22:30:26.000000000 +0200 -+++ firefox-68.0/config/system-headers.mozbuild 2019-07-08 15:26:15.397161627 +0200 -@@ -314,6 +314,7 @@ system_headers = [ - 'Gestalt.h', - 'getopt.h', - 'gio/gio.h', -+ 'gio/gunixfdlist.h', - 'glibconfig.h', - 'glib.h', - 'glib-object.h', -@@ -607,6 +608,7 @@ system_headers = [ - 'Pgenerr.h', - 'PGenErr.h', - 'Ph.h', -+ 'pipewire/pipewire.h', - 'pixman.h', - 'pk11func.h', - 'pk11pqg.h', -diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build ---- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire 2019-07-01 22:30:33.000000000 +0200 -+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build 2019-07-08 15:26:15.397161627 +0200 -@@ -194,6 +194,28 @@ if CONFIG["OS_TARGET"] == "Linux": - "/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc" - ] - -+# PipeWire specific files -+if CONFIG["OS_TARGET"] == "Linux": -+ -+ DEFINES["WEBRTC_USE_PIPEWIRE"] = "1" -+ -+ OS_LIBS += [ -+ "rt", -+ "pipewire-0.2", -+ "glib-2.0", -+ "gio-2.0", -+ "gobject-2.0" -+ ] -+ -+ CXXFLAGS += CONFIG['TK_CFLAGS'] -+ -+ UNIFIED_SOURCES += [ -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc" -+ ] -+ -+ - if CONFIG["OS_TARGET"] == "NetBSD": - - DEFINES["USE_X11"] = "1" -diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h ---- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire 2019-07-08 16:42:13.936254926 +0200 -+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h 2019-07-08 16:42:17.509264974 +0200 -@@ -141,7 +141,7 @@ class DesktopCaptureOptions { - bool disable_effects_ = true; - bool detect_updated_region_ = false; - #if defined(WEBRTC_USE_PIPEWIRE) -- bool allow_pipewire_ = false; -+ bool allow_pipewire_ = true; - #endif - }; - diff --git a/icecat-68.4.0-build-icu-big-endian.patch b/icecat-68.4.0-build-icu-big-endian.patch deleted file mode 100644 index c9d16d8..0000000 --- a/icecat-68.4.0-build-icu-big-endian.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up a/build/autoconf/icu.orig.m4 b/build/autoconf/icu.m4 ---- a/build/autoconf/icu.orig.m4 2016-12-09 09:11:01.227317790 +0100 -+++ b/build/autoconf/icu.m4 2016-12-09 09:18:40.608712247 +0100 -@@ -78,7 +78,7 @@ - # 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" - fi - - AC_SUBST(MOZ_ICU_VERSION) diff --git a/icecat-68.4.0-mozilla-1526653_arm_disable_wasm.patch b/icecat-68.4.0-mozilla-1526653_arm_disable_wasm.patch deleted file mode 100644 index 86d0c08..0000000 --- a/icecat-68.4.0-mozilla-1526653_arm_disable_wasm.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp -index 636537f847862ef693dd6582e2783de4e3d403c5..383c380f04ceb6a111dbfe9a046e3454a56e31b4 100644 ---- a/js/src/wasm/WasmSignalHandlers.cpp -+++ b/js/src/wasm/WasmSignalHandlers.cpp -@@ -248,7 +248,16 @@ using mozilla::DebugOnly; - #endif - - #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS --# include -+struct user_vfp { -+ unsigned long long fpregs[32]; -+ unsigned long fpscr; -+}; -+ -+struct user_vfp_exc { -+ unsigned long fpexc; -+ unsigned long fpinst; -+ unsigned long fpinst2; -+}; - #endif - - #if defined(ANDROID) - diff --git a/icecat-GLIBCXX-fix-for-GCC-12.patch b/icecat-GLIBCXX-fix-for-GCC-12.patch new file mode 100644 index 0000000..8fdc264 --- /dev/null +++ b/icecat-GLIBCXX-fix-for-GCC-12.patch @@ -0,0 +1,45 @@ +From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= +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 + + diff --git a/icecat-fix_addon_installation.patch b/icecat-fix_addon_installation.patch deleted file mode 100644 index 5cc140d..0000000 --- a/icecat-fix_addon_installation.patch +++ /dev/null @@ -1,36 +0,0 @@ -# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error). ---- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm -+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm -@@ -627,8 +627,30 @@ - throw new Error(`Extension is signed with an invalid id (${addon.id})`); - } - } -- if (!addon.id && aLocation.isTemporary) { -- addon.id = generateTemporaryInstallID(aPackage.file); -+ if (!addon.id) { -+ if (aInstallLocation.name == KEY_APP_TEMPORARY) { -+ addon.id = generateTemporaryInstallID(aZipReader.file); -+ } else { -+ try { -+ let sigInput = aZipReader.getInputStream("META-INF/cose.sig"); -+ let sigBinary = Cc['@mozilla.org/binaryinputstream;1'] -+ .createInstance(Ci.nsIBinaryInputStream); -+ sigBinary.setInputStream(sigInput); -+ var sig = '' -+ var sigCount; -+ while ((sigCount = sigBinary.available()) > 0) { -+ sig += sigBinary.readBytes(sigCount); -+ } -+ let sigMatch = sig.match(/\{\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\}/g) -+ if (sigMatch && sigMatch.length == 1) { -+ addon.id = sigMatch[0] -+ } else { -+ logger.warn("Failed to find addon id"); -+ } -+ } catch (e) { -+ logger.warn("Failed to process META-INF/cose.sig"); -+ } -+ } - } - } - diff --git a/icecat-fix_installer.patch b/icecat-fix_installer.patch deleted file mode 100644 index cefa8e5..0000000 --- a/icecat-fix_installer.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- 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 -@@ -610,11 +610,11 @@ - @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/chrome/icons/default/default64.png --@RESPATH@/browser/chrome/icons/default/default128.png -+#@RESPATH@/browser/chrome/icons/default/default16.png -+#@RESPATH@/browser/chrome/icons/default/default32.png -+#@RESPATH@/browser/chrome/icons/default/default48.png -+@RESPATH@/browser/chrome/icons/default/default64.png -+@RESPATH@/browser/chrome/icons/default/default128.png - #endif - @RESPATH@/browser/features/* - diff --git a/icecat-fix_jar.patch b/icecat-fix_jar.patch deleted file mode 100644 index 9a64fab..0000000 --- a/icecat-fix_jar.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 -@@ -14,7 +14,7 @@ - @AB_CD@.jar: - % locale browser @AB_CD@ %locale/browser/ - # bookmarks.html is produced by LOCALIZED_GENERATED_FILES. -- locale/browser/bookmarks.html (bookmarks.html) -+ locale/browser/bookmarks.html (generic/profile/bookmarks.html.in) - - locale/browser/accounts.properties (%chrome/browser/accounts.properties) - locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties) diff --git a/icecat-gcc-always-inline.patch b/icecat-gcc-always-inline.patch new file mode 100644 index 0000000..d7af60f --- /dev/null +++ b/icecat-gcc-always-inline.patch @@ -0,0 +1,14 @@ +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 diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh index 98e58f8..3c0c445 100755 --- a/icecat-lang_download.sh +++ b/icecat-lang_download.sh @@ -1,6 +1,6 @@ #!/bin/bash -VERSION=68.9.0 +VERSION=140.7.0 URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/ for u in $URL; do @@ -17,6 +17,7 @@ done # mv "${FILE}" "${newfile}" ; #done #popd +rm -f icecat-*-langpacks.tar.gz tar -zcvf icecat-${VERSION}-langpacks.tar.gz langpacks rm -rf langpacks exit 0 diff --git a/icecat-libevent_linkflag.patch b/icecat-libevent_linkflag.patch deleted file mode 100644 index 918c7e4..0000000 --- a/icecat-libevent_linkflag.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- old-configure.orig.in 2019-03-02 21:49:16.000000000 +0100 -+++ old-configure.in 2019-03-04 12:14:23.842685662 +0100 -@@ -1715,7 +1715,7 @@ - MOZ_SYSTEM_LIBEVENT= - elif test -z "$MOZ_SYSTEM_LIBEVENT"; then - CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS" -- LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS" -+ LDFLAGS="-L${LIBDIR} $LDFLAGS" - MOZ_CHECK_HEADER(event.h, - [if test ! -f "${LIBEVENT_DIR}/include/event.h"; then - AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include]) -@@ -1724,7 +1724,7 @@ - AC_CHECK_LIB(event, event_init, - [MOZ_SYSTEM_LIBEVENT=1 - MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include" -- MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"], -+ MOZ_LIBEVENT_LIBS="-L${LIBDIR} -levent"], - [MOZ_SYSTEM_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=]) - fi - CFLAGS=$_SAVE_CFLAGS diff --git a/icecat-mozconfig-common b/icecat-mozconfig-common index ceab223..bb3300d 100644 --- a/icecat-mozconfig-common +++ b/icecat-mozconfig-common @@ -2,17 +2,15 @@ export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 -export MOZ_TELEMETRY_REPORTING=1 +export MOZ_TELEMETRY_REPORTING= 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 --prefix="$PREFIX" ac_add_options --libdir="$LIBDIR" ac_add_options --enable-necko-wifi -ac_add_options --enable-startup-notification ac_add_options --disable-updater ac_add_options --enable-chrome-format=omni ac_add_options --enable-release -# Workaround for mozbz#1341234 -ac_add_options BINDGEN_CFLAGS="$(pkg-config nspr pixman-1 --cflags)" diff --git a/icecat-wayland.desktop b/icecat-wayland.desktop deleted file mode 100644 index 44e6c47..0000000 --- a/icecat-wayland.desktop +++ /dev/null @@ -1,23 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=GNU IceCat on Wayland -Comment=Browse the World Wide Web -GenericName=Web Browser -Keywords=Internet;WWW;Browser;Web;Explorer; -Exec=icecat-wayland --name icecat-wayland %u -Icon=icecat -Terminal=false -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 on Wayland -Actions=new-window;new-private-window; - -[Desktop Action new-window] -Name=Open a New Window -Exec=icecat-wayland --name icecat-wayland --new-window %u - -[Desktop Action new-private-window] -Name=Open a New Private Window -Exec=icecat-wayland --private-window --name icecat-wayland %u diff --git a/icecat-wayland.sh.in b/icecat-wayland.sh.in deleted file mode 100644 index d04465c..0000000 --- a/icecat-wayland.sh.in +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# -# Run GNU IceCat under Wayland -# - -export MOZ_ENABLE_WAYLAND=1 -exec /__PREFIX__/bin/icecat "$@" diff --git a/icecat-x11.desktop b/icecat-x11.desktop deleted file mode 100644 index 4887034..0000000 --- a/icecat-x11.desktop +++ /dev/null @@ -1,338 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=GNU IceCat on X11 -Comment=Browse the World Wide Web -Comment[ar]=تصفح الشبكة العنكبوتية العالمية -Comment[ast]=Restola pela Rede -Comment[bn]=ইন্টারনেট ব্রাউজ করুন -Comment[ca]=Navegueu per la web -Comment[cs]=Prohlížení stránek World Wide Webu -Comment[da]=Surf på internettet -Comment[de]=Im Internet surfen -Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) -Comment[es]=Navegue por la web -Comment[et]=Lehitse veebi -Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید -Comment[fi]=Selaa Internetin WWW-sivuja -Comment[fr]=Naviguer sur le Web -Comment[gl]=Navegar pola rede -Comment[he]=גלישה ברחבי האינטרנט -Comment[hr]=Pretražite web -Comment[hu]=A világháló böngészése -Comment[it]=Esplora il web -Comment[ja]=ウェブを閲覧します -Comment[ko]=웹을 돌아 다닙니다 -Comment[ku]=Li torê bigere -Comment[lt]=Naršykite internete -Comment[nb]=Surf på nettet -Comment[nl]=Verken het internet -Comment[nn]=Surf på nettet -Comment[no]=Surf på nettet -Comment[pl]=Przeglądanie stron WWW -Comment[pt]=Navegue na Internet -Comment[pt_BR]=Navegue na Internet -Comment[ro]=Navigați pe Internet -Comment[ru]=Доступ в Интернет -Comment[sk]=Prehliadanie internetu -Comment[sl]=Brskajte po spletu -Comment[sv]=Surfa på webben -Comment[tr]=İnternet'te Gezinin -Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ -Comment[uk]=Перегляд сторінок Інтернету -Comment[vi]=Để duyệt các trang web -Comment[zh_CN]=浏览互联网 -Comment[zh_TW]=瀏覽網際網路 -GenericName=Web Browser -GenericName[ar]=متصفح ويب -GenericName[ast]=Restolador Web -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[ca]=Navegador web -GenericName[cs]=Webový prohlížeč -GenericName[da]=Webbrowser -GenericName[el]=Περιηγητής διαδικτύου -GenericName[es]=Navegador web -GenericName[et]=Veebibrauser -GenericName[fa]=مرورگر اینترنتی -GenericName[fi]=WWW-selain -GenericName[fr]=Navigateur Web -GenericName[gl]=Navegador Web -GenericName[he]=דפדפן אינטרנט -GenericName[hr]=Web preglednik -GenericName[hu]=Webböngésző -GenericName[it]=Browser web -GenericName[ja]=ウェブ・ブラウザ -GenericName[ko]=웹 브라우저 -GenericName[ku]=Geroka torê -GenericName[lt]=Interneto naršyklė -GenericName[nb]=Nettleser -GenericName[nl]=Webbrowser -GenericName[nn]=Nettlesar -GenericName[no]=Nettleser -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador Web -GenericName[ro]=Navigator Internet -GenericName[ru]=Веб-браузер -GenericName[sk]=Internetový prehliadač -GenericName[sl]=Spletni brskalnik -GenericName[sv]=Webbläsare -GenericName[tr]=Web Tarayıcı -GenericName[ug]=توركۆرگۈ -GenericName[uk]=Веб-браузер -GenericName[vi]=Trình duyệt Web -GenericName[zh_CN]=网络浏览器 -GenericName[zh_TW]=網路瀏覽器 -Keywords=Internet;WWW;Browser;Web;Explorer; -Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب; -Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador; -Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer; -Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer; -Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet; -Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen; -Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;IceCat;Φιρεφοχ;Ιντερνετ; -Keywords[es]=Explorador;Internet;WWW; -Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa; -Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur; -Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה; -Keywords[hr]=Internet;WWW;preglednik;Web; -Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer; -Keywords[it]=Internet;WWW;Browser;Web;Navigatore; -Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk; -Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ; -Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside; -Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online; -Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador; -Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador; -Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис; -Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer; -Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet; -Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara; -Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд; -Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web; -Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;IceCat;ff;互联网;网站; -Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐; -Exec=icecat-x11 --name icecat-x11 %u -Icon=icecat -Terminal=false -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 on X11 -Actions=new-window;new-private-window; - -[Desktop Action new-window] -Name=Open a New Window -Name[ach]=Dirica manyen -Name[af]=Nuwe venster -Name[an]=Nueva finestra -Name[ar]=نافذة جديدة -Name[as]=নতুন উইন্ডো -Name[ast]=Ventana nueva -Name[az]=Yeni Pəncərə -Name[be]=Новае акно -Name[bg]=Нов прозорец -Name[bn-BD]=নতুন উইন্ডো (N) -Name[bn-IN]=নতুন উইন্ডো -Name[br]=Prenestr nevez -Name[brx]=गोदान उइन्ड'(N) -Name[bs]=Novi prozor -Name[ca]=Finestra nova -Name[cak]=K'ak'a' tzuwäch -Name[cs]=Nové okno -Name[cy]=Ffenestr Newydd -Name[da]=Nyt vindue -Name[de]=­Neues Fenster -Name[dsb]=Nowe wokno -Name[el]=Νέο παράθυρο -Name[en-GB]=New Window -Name[en-US]=New Window -Name[en-ZA]=New Window -Name[eo]=Nova fenestro -Name[es-AR]=Nueva ventana -Name[es-CL]=Nueva ventana -Name[es-ES]=Nueva ventana -Name[es-MX]=Nueva ventana -Name[et]=Uus aken -Name[eu]=Leiho berria -Name[fa]=پنجره جدید‌ -Name[ff]=Henorde Hesere -Name[fi]=Uusi ikkuna -Name[fr]=­Nouvelle fenêtre -Name[fy-NL]=Nij finster -Name[ga-IE]=Fuinneog Nua -Name[gd]=Uinneag ùr -Name[gl]=Nova xanela -Name[gn]=Ovetã pyahu -Name[gu-IN]=નવી વિન્ડો -Name[he]=חלון חדש -Name[hi-IN]=नया विंडो -Name[hr]=Novi prozor -Name[hsb]=Nowe wokno -Name[hu]=Új ablak -Name[hy-AM]=Նոր Պատուհան -Name[id]=Jendela Baru -Name[is]=Nýr gluggi -Name[it]=Nuova finestra­ -Name[ja]=新しいウィンドウ -Name[ja-JP-mac]=新規ウインドウ -Name[ka]=ახალი ფანჯარა -Name[kk]=Жаңа терезе -Name[km]=បង្អួច​​​ថ្មី -Name[kn]=ಹೊಸ ಕಿಟಕಿ -Name[ko]=새 창 -Name[kok]=नवें जनेल -Name[ks]=نئئ وِنڈو -Name[lij]=Neuvo barcon -Name[lo]=ຫນ້າຕ່າງໃຫມ່ -Name[lt]=Naujas langas -Name[ltg]=Jauns lūgs -Name[lv]=Jauns logs -Name[mai]=नव विंडो -Name[mk]=Нов прозорец -Name[ml]=പുതിയ ജാലകം -Name[mr]=नवीन पटल -Name[ms]=Tetingkap Baru -Name[my]=ဝင်းဒိုးအသစ် -Name[nb-NO]=Nytt vindu -Name[ne-NP]=नयाँ सञ्झ्याल -Name[nl]=Nieuw venster -Name[nn-NO]=Nytt vindauge -Name[or]=ନୂତନ ୱିଣ୍ଡୋ -Name[pa-IN]=ਨਵੀਂ ਵਿੰਡੋ -Name[pl]=Nowe okno -Name[pt-BR]=Nova janela -Name[pt-PT]=Nova janela -Name[rm]=Nova fanestra -Name[ro]=Fereastră nouă -Name[ru]=Новое окно -Name[sat]=नावा विंडो (N) -Name[si]=නව කවුළුවක් -Name[sk]=Nové okno -Name[sl]=Novo okno -Name[son]=Zanfun taaga -Name[sq]=Dritare e Re -Name[sr]=Нови прозор -Name[sv-SE]=Nytt fönster -Name[ta]=புதிய சாளரம் -Name[te]=కొత్త విండో -Name[th]=หน้าต่างใหม่ -Name[tr]=Yeni pencere -Name[tsz]=Eraatarakua jimpani -Name[uk]=Нове вікно -Name[ur]=نیا دریچہ -Name[uz]=Yangi oyna -Name[vi]=Cửa sổ mới -Name[wo]=Palanteer bu bees -Name[xh]=Ifestile entsha -Name[zh-CN]=新建窗口 -Name[zh-TW]=開新視窗 -Exec=icecat --new-window %u - -[Desktop Action new-private-window] -Name=Open a New Private Window -Name[ach]=Dirica manyen me mung -Name[af]=Nuwe privaatvenster -Name[an]=Nueva finestra privada -Name[ar]=نافذة خاصة جديدة -Name[as]=নতুন ব্যক্তিগত উইন্ডো -Name[ast]=Ventana privada nueva -Name[az]=Yeni Məxfi Pəncərə -Name[be]=Новае акно адасаблення -Name[bg]=Нов прозорец за поверително сърфиране -Name[bn-BD]=নতুন ব্যক্তিগত উইন্ডো -Name[bn-IN]=নতুন ব্যক্তিগত উইন্ডো -Name[br]=Prenestr merdeiñ prevez nevez -Name[brx]=गोदान प्राइभेट उइन्ड' -Name[bs]=Novi privatni prozor -Name[ca]=Finestra privada nova -Name[cak]=K'ak'a' ichinan tzuwäch -Name[cs]=Nové anonymní okno -Name[cy]=Ffenestr Breifat Newydd -Name[da]=Nyt privat vindue -Name[de]=Neues privates Fenster -Name[dsb]=Nowe priwatne wokno -Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης -Name[en-GB]=New Private Window -Name[en-US]=New Private Window -Name[en-ZA]=New Private Window -Name[eo]=Nova privata fenestro -Name[es-AR]=Nueva ventana privada -Name[es-CL]=Nueva ventana privada -Name[es-ES]=Nueva ventana privada -Name[es-MX]=Nueva ventana privada -Name[et]=Uus privaatne aken -Name[eu]=Leiho pribatu berria -Name[fa]=پنجره ناشناس جدید -Name[ff]=Henorde Suturo Hesere -Name[fi]=Uusi yksityinen ikkuna -Name[fr]=Nouvelle fenêtre de navigation privée -Name[fy-NL]=Nij priveefinster -Name[ga-IE]=Fuinneog Nua Phríobháideach -Name[gd]=Uinneag phrìobhaideach ùr -Name[gl]=Nova xanela privada -Name[gn]=Ovetã ñemi pyahu -Name[gu-IN]=નવી ખાનગી વિન્ડો -Name[he]=חלון פרטי חדש -Name[hi-IN]=नयी निजी विंडो -Name[hr]=Novi privatni prozor -Name[hsb]=Nowe priwatne wokno -Name[hu]=Új privát ablak -Name[hy-AM]=Սկսել Գաղտնի դիտարկում -Name[id]=Jendela Mode Pribadi Baru -Name[is]=Nýr huliðsgluggi -Name[it]=Nuova finestra anonima -Name[ja]=新しいプライベートウィンドウ -Name[ja-JP-mac]=新規プライベートウインドウ -Name[ka]=ახალი პირადი ფანჯარა -Name[kk]=Жаңа жекелік терезе -Name[km]=បង្អួច​ឯកជន​ថ្មី -Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ -Name[ko]=새 사생활 보호 모드 -Name[kok]=नवो खाजगी विंडो -Name[ks]=نْو پرایوٹ وینڈو& -Name[lij]=Neuvo barcon privou -Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ -Name[lt]=Naujas privataus naršymo langas -Name[ltg]=Jauns privatais lūgs -Name[lv]=Jauns privātais logs -Name[mai]=नया निज विंडो (W) -Name[mk]=Нов приватен прозорец -Name[ml]=പുതിയ സ്വകാര്യ ജാലകം -Name[mr]=नवीन वैयक्तिक पटल -Name[ms]=Tetingkap Persendirian Baharu -Name[my]=New Private Window -Name[nb-NO]=Nytt privat vindu -Name[ne-NP]=नयाँ निजी सञ्झ्याल -Name[nl]=Nieuw privévenster -Name[nn-NO]=Nytt privat vindauge -Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ -Name[pa-IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ -Name[pl]=Nowe okno prywatne -Name[pt-BR]=Nova janela privativa -Name[pt-PT]=Nova janela privada -Name[rm]=Nova fanestra privata -Name[ro]=Fereastră privată nouă -Name[ru]=Новое приватное окно -Name[sat]=नावा निजेराक् विंडो (W ) -Name[si]=නව පුද්ගලික කවුළුව (W) -Name[sk]=Nové okno v režime Súkromné prehliadanie -Name[sl]=Novo zasebno okno -Name[son]=Sutura zanfun taaga -Name[sq]=Dritare e Re Private -Name[sr]=Нови приватан прозор -Name[sv-SE]=Nytt privat fönster -Name[ta]=புதிய தனிப்பட்ட சாளரம் -Name[te]=కొత్త ఆంతరంగిక విండో -Name[th]=หน้าต่างส่วนตัวใหม่ -Name[tr]=Yeni gizli pencere -Name[tsz]=Juchiiti eraatarakua jimpani -Name[uk]=Приватне вікно -Name[ur]=نیا نجی دریچہ -Name[uz]=Yangi maxfiy oyna -Name[vi]=Cửa sổ riêng tư mới -Name[wo]=Panlanteeru biir bu bees -Name[xh]=Ifestile yangasese entsha -Name[zh-CN]=新建隐私浏览窗口 -Name[zh-TW]=新增隱私視窗 -Exec=icecat --private-window %u diff --git a/icecat-x11.sh.in b/icecat-x11.sh.in deleted file mode 100644 index e80fad2..0000000 --- a/icecat-x11.sh.in +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# -# Run GNU IceCat on X11 backend -# - -export MOZ_DISABLE_WAYLAND=1 -exec /__PREFIX__/bin/icecat "$@" diff --git a/icecat.appdata.xml b/icecat.appdata.xml index 49f4021..ad0171c 100644 --- a/icecat.appdata.xml +++ b/icecat.appdata.xml @@ -11,7 +11,7 @@

- GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR browser. + GNU IceCat is the GNU version of the Firefox ESR browser.

Its main advantage is an ethical one: it is entirely free software: @@ -33,14 +33,6 @@ HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure

  • - Onion Browser Button - Easily browse the internet using TOR proxy with just one click -
  • -
  • - ViewTube - Watch videos from video sharing websites with extra options -
  • -
  • 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. @@ -55,16 +47,16 @@ http://www.gnu.org/software/gnuzilla/ - https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat681.png + https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1021.png - https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat682.png + https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1022.png - https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat683.png + https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1023.png - https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat684.png + https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1024.png sagitter_at_fedoraproject.org diff --git a/icecat.metainfo.xml b/icecat.metainfo.xml deleted file mode 100644 index 691082e..0000000 --- a/icecat.metainfo.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - mozilla-requestpolicy - icecat.desktop - mozilla-requestpolicy - Extension that gives you control over cross-site requests - https://requestpolicycontinued.github.io/ - https://github.com/requestpolicycontinued/requestpolicy/issues - CC0-1.0 - GPL-3.0+ and LGPL-3.0+ - diff --git a/icecat.sh.in b/icecat.sh.in index e4c1a24..a269749 100644 --- a/icecat.sh.in +++ b/icecat.sh.in @@ -39,12 +39,12 @@ cmdname=`basename $0` MOZ_ARCH=$(uname -m) case $MOZ_ARCH in x86_64 | s390x | sparc64) - MOZ_LIB_DIR="/usr/lib64" - SECONDARY_LIB_DIR="/usr/lib" + MOZ_LIB_DIR="/__PREFIX__/lib64" + SECONDARY_LIB_DIR="/__PREFIX__/lib" ;; * ) - MOZ_LIB_DIR="/usr/lib" - SECONDARY_LIB_DIR="/usr/lib64" + MOZ_LIB_DIR="/__PREFIX__/lib" + SECONDARY_LIB_DIR="/__PREFIX__/lib64" ;; esac @@ -64,22 +64,35 @@ 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/run-icecat.sh" +MOZ_LAUNCHER="$MOZ_DIST_BIN/icecat" +GETENFORCE_FILE="/usr/sbin/getenforce" ## -## Enable X11 backend by default? +## Enable Wayland backend? ## -if __DEFAULT_WAYLAND__ && ! [ $MOZ_DISABLE_WAYLAND ]; then +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" == "/usr/lib64" ]; then +if [ "$MOZ_LIB_DIR" == "/__PREFIX__/lib64" ]; then MOZ_GRE_CONF=/etc/gre.d/gre64.conf fi export MOZ_GRE_CONF @@ -168,11 +181,19 @@ 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? - /usr/bin/pidof icecat > /dev/null 2>&1 + /__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 @@ -192,8 +213,8 @@ if [ $MOZILLA_DOWN -ne 0 ]; then CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} # Try with a local variant first, then without a local variant - SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` - MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` + 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=$* @@ -248,13 +269,11 @@ do ;; esac done - -# Run the browser -debugging=0 -if [ $debugging = 1 ] -then - echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" -fi + +## 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_LAUNCHER $script_args $MOZ_PROGRAM "$@" +exec $MOZ_PROGRAM "$@" diff --git a/icecat.spec b/icecat.spec index 36d5eac..6e50c61 100644 --- a/icecat.spec +++ b/icecat.spec @@ -1,109 +1,109 @@ +### Naming ### # Set to true if it's going to be submitted as update %global release_build 1 -# Set to true if it's going to be submitted as release candidate -%global release_candidate 0 +# Set new source-code build version for Fedora and, not necessarily, for upstream too +%global redhat_ver rh1 -# Exclude ARM builds for rhbz #1658940 -# Exclude s390x for https://pagure.io/koji/issue/1974 -ExcludeArch: %{arm} s390x +ExcludeArch: %{ix86} %{arm} -# Active/Deactive language files handling -%global build_langpacks 1 +# Bundled cbindgen makes build slow. +# Enable only if system cbindgen is not available. +%global use_bundled_cbindgen 0 -%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html - -# Define installation directories -%global icecatappdir %{_libdir}/%{name} -%global icecat_ver %{name}-%{version} -%global icecat_devel %{name}-devel-%{version} - -# Define language files directory -%global langpackdir %{icecatappdir}/langpacks - -%global toolkit_gtk3 1 +#################### +### Optimization ### # Builds for debugging %global debug_build 0 +# Downgrade optimization +%global less_optbuild 0 + +# Build PGO+LTO on x86_64 and aarch64 only +%ifarch x86_64 %{arm64} +%if 0%{?release_build} +%global build_with_pgo 1 +%global pgo_wayland 1 +%global launch_wayland_compositor 1 +%else +%global build_with_pgo 0 +%global pgo_wayland 0 +%global launch_wayland_compositor 0 +%endif +%endif + +#################### + +# Active/Deactive language files handling +%bcond_without langpacks + +%if %{with langpacks} +%bcond_without langpacks_subpkg +%endif + +# Define installation directories +%global icecatappdir %{_libdir}/%{name} +# Define language files directory +%global langpackdir %{icecatappdir}/langpacks + +%global icecat_ver %{name}-%{version} +%global icecat_devel %{name}-devel-%{version} + +%global toolkit_gtk3 1 + # Big endian platforms -%ifarch ppc64 s390x +%ifarch s390x %{power64} # Javascript Intl API is not supported on big endian platforms right now: # https://bugzilla.mozilla.org/show_bug.cgi?id=1322212 %global big_endian 1 %endif -# Use system sqlite? -%global system_sqlite 1 - -%if 0%{?system_sqlite} -%global sqlite_version 3.28.0 -# The actual sqlite version (see #480989): -%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) +%if 0%{?fedora} +%global system_nss 1 +%else +%global system_nss 0 %endif - -# Use system libicu? -%global system_libicu 1 - -# Use system nspr/nss? -%global system_nss 1 - -%if 0%{?system_nss} -%global nspr_version 4.21 +%if %{?system_nss} +%global nspr_version 4.32 %global nspr_build_version %{nspr_version} -%global nss_version 3.50 +%global nss_version 3.100 %global nss_build_version %{nss_version} %endif # Audio backends %bcond_without pulseaudio -%bcond_without jack %bcond_with alsa %global with_vpx 1 -%if 0%{?with_vpx} +%if %{?with_vpx} %global libvpx_version 1.8.2 %endif -%global wayland_backend_default 1 -%global disable_elfhack 1 - -# Use mozilla hardening option? -%global hardened_build 1 - -# cbingen -%global use_bundled_cbindgen 1 - # Use clang? -%global build_with_clang 0 +%bcond_without toolchain_clang -# Set new source-code build version -# This tag indicates a new rebuild for Fedora -%global redhat_ver rh2 - -# Set extra version tag -# This tag comes from Mozilla's releases -%if 0%{?release_candidate} -%global extra_ver .rc1 -%else -%global extra_ver %{nil} +%if %{with toolchain_clang} +%global toolchain clang %endif -%if !%{release_build} -%global pre_tag .test -%endif +# https://bugzilla.redhat.com/show_bug.cgi?id=1908792 +# https://bugzilla.redhat.com/show_bug.cgi?id=2255254 +%global __provides_exclude_from ^%{icecatappdir} +%global __requires_exclude ^(%%(find %{buildroot}%{icecatappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -)) -Name: icecat -Version: 68.9.0 -Release: 1%{extra_ver}.%{redhat_ver}%{?pre_tag}%{?dist} +Name: icecat +Epoch: 4 +Version: 140.7.0 +Release: %autorelease -e %{redhat_ver} Summary: GNU version of Firefox browser # Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included -License: (MPLv1.1 or GPLv2+ or LGPLv2+) and GPLv3+ and MIT and BSD and ISC and ASL 2.0 and MPLv2.0 -URL: http://www.gnu.org/software/gnuzilla/ +License: (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND GPL-3.0-or-later AND MIT AND BSD-4-Clause-UC AND ISC AND Apache-2.0 AND MPL-2.0 +URL: http://www.gnu.org/software/gnuzilla/ ## Source archive created by scripts based on Gnuzilla files. -## Modified files are hosted in a dedicated fork repository: +## All modified files are hosted in a dedicated fork repository: ## https://gitlab.com/anto.trande/icecat Source0: %{name}-%{version}-%{redhat_ver}.tar.bz2 @@ -111,7 +111,7 @@ Source2: %{name}.png Source3: %{name}-mozconfig-common # Language files downloaded by source7 script -%if 0%{?build_langpacks} +%if %{with langpacks} Source4: %{name}-%{version}-langpacks.tar.gz %endif @@ -124,66 +124,27 @@ Source5: %{name}-COPYING-licensefiles.tar.gz Source7: %{name}-lang_download.sh # Desktop files -Source9: %{name}-wayland.desktop Source10: %{name}.appdata.xml -Source11: %{name}.metainfo.xml -Source12: %{name}-wayland.sh.in Source13: %{name}.sh.in Source14: %{name}.desktop -Source15: %{name}-x11.sh.in -Source16: %{name}-x11.desktop # cbingen Source17: cbindgen-vendor.tar.xz - Source18: node-stdout-nonblocking-wrapper - -# Build patches -# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error). -Patch1: %{name}-fix_addon_installation.patch -Patch2: %{name}-libevent_linkflag.patch -Patch3: mozilla-build-arm.patch -Patch5: rhbz-1219542-s390-build.patch - -# Unrecognized file? -Patch7: %{name}-fix_jar.patch - -# Fix files list for installer -Patch8: %{name}-fix_installer.patch - -Patch26: %{name}-68.4.0-build-icu-big-endian.patch - -Patch40: build-aarch64-skia.patch -Patch41: build-disable-elfhack.patch -Patch44: build-arm-libopus.patch -Patch45: %{name}-68.4.0-mozilla-1526653_arm_disable_wasm.patch +Source19: run-wayland-compositor # Fedora specific patches -Patch219: rhbz-1173156.patch +Patch221: firefox-nss-addon-hack.patch +Patch224: %{name}-GLIBCXX-fix-for-GCC-12.patch # ARM run-time patch Patch226: rhbz-1354671.patch -# Upstream patches -Patch414: Bug-1238661_fix-mozillaSignalTrampoline-to-work-.patch - -# Patches for compatibility with Rust-1.39 -Patch419: mozilla-1564873.patch -# - # Fix crash on ppc64le (mozilla#1512162) Patch423: mozilla-1512162.patch -Patch424: mozilla-1566876-webrtc-ind.patch -Patch425: mozilla-1568569.patch -# Wayland specific upstream patches -Patch565: firefox-pipewire.patch -Patch575: mozilla-1548475.patch -Patch576: mozilla-1562827.patch -Patch578: mozilla-1567434-1.patch -Patch579: mozilla-1567434-2.patch -Patch580: mozilla-1573813.patch -# +# PGO/LTO patches +Patch603: %{name}-gcc-always-inline.patch BuildRequires: alsa-lib-devel BuildRequires: autoconf213 @@ -196,11 +157,12 @@ BuildRequires: cbindgen BuildRequires: ccache BuildRequires: dbus-devel BuildRequires: dbus-glib-devel +BuildRequires: dbus-x11 BuildRequires: dconf BuildRequires: desktop-file-utils BuildRequires: dos2unix BuildRequires: gcc, gcc-c++ -BuildRequires: fedora-bookmarks +BuildRequires: make BuildRequires: freetype-devel BuildRequires: gdk-pixbuf2 BuildRequires: glib2-devel @@ -212,11 +174,10 @@ BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel BuildRequires: hunspell-devel BuildRequires: ImageMagick, autotrace -BuildRequires: java-1.8.0-openjdk-headless BuildRequires: intltool BuildRequires: libappstream-glib +BuildRequires: libavcodec-free-devel BuildRequires: libevent-devel -BuildRequires: libicu-devel BuildRequires: libjpeg-turbo-devel BuildRequires: libjpeg-devel BuildRequires: libX11-devel @@ -227,7 +188,7 @@ BuildRequires: libXinerama-devel BuildRequires: libffi-devel BuildRequires: libnotify-devel BuildRequires: libpng-devel -%if 0%{?with_vpx} +%if %{?with_vpx} BuildRequires: libvpx-devel >= %{libvpx_version} %endif BuildRequires: libzip-devel @@ -235,16 +196,20 @@ BuildRequires: mesa-libGL-devel BuildRequires: nodejs BuildRequires: nasm >= 1.13 BuildRequires: strace -%if 0%{?system_nss} + +%if %{?system_nss} BuildRequires: pkgconfig(nspr) >= %{nspr_version} BuildRequires: pkgconfig(nss) >= %{nss_version} BuildRequires: nss-static >= %{nss_version} %endif -BuildRequires: openjpeg-devel BuildRequires: pango-devel +BuildRequires: pciutils-libs BuildRequires: pipewire-devel -BuildRequires: python2-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3.11-devel +BuildRequires: python3-orjson BuildRequires: perl-interpreter BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(libstartup-notification-1.0) @@ -253,151 +218,138 @@ BuildRequires: pkgconfig(libcurl) %if %{with pulseaudio} BuildRequires: pulseaudio-libs-devel %endif -%if %{with jack} -BuildRequires: jack-audio-connection-kit-devel -%endif -BuildRequires: yasm BuildRequires: llvm -BuildRequires: llvm-devel -BuildRequires: clang -BuildRequires: clang-libs -BuildRequires: clang-devel -%if 0%{?build_with_clang} -BuildRequires: lld +%if 0%{?fedora} >= 42 || 0%{?rhel} >= 10 +BuildRequires: clang19 +BuildRequires: clang19-libs +BuildRequires: llvm19-devel +BuildRequires: compiler-rt19 +%global llvm_suffix -19 +%else +BuildRequires: clang17 +BuildRequires: clang17-libs +BuildRequires: llvm17-devel +BuildRequires: compiler-rt17 +%global llvm_suffix -17 +%endif +%if "%toolchain" == "clang" +BuildRequires: lld %endif BuildRequires: rust +BuildRequires: rustfmt -%if 0%{?system_sqlite} -BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version} -Requires: sqlite >= %{sqlite_build_version} +%if 0%{?pgo_wayland} +BuildRequires: xorg-x11-server-Xvfb +BuildRequires: mutter +BuildRequires: gsettings-desktop-schemas +BuildRequires: gnome-settings-daemon +BuildRequires: mesa-dri-drivers +BuildRequires: mesa-libEGL +BuildRequires: xorg-x11-server-Xwayland +BuildRequires: dbus-x11 +BuildRequires: gnome-keyring +%endif + +%if 0%{?big_endian} +BuildRequires: icu %endif Requires: dconf Requires: mozilla-filesystem Requires: p11-kit-trust -%if 0%{?system_nss} +%if %{?system_nss} Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif -Requires: fedora-bookmarks -Suggests: mozilla-ublock-origin +%if 0%{?fedora} +BuildRequires: fedora-bookmarks +Requires: fedora-bookmarks +%endif + +Suggests: mozilla-ublock-origin Provides: webclient -Provides: mozilla-https-everywhere = 20191107 %description -GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR. +GNU IceCat 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" of Richard Stallman + "The JavaScript Trap" 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. - * HTTPS Everywhere - HTTPS Everywhere is an extension that encrypts your communications with - many major websites, making your browsing more secure + * 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. - * Onion Browser Button - Easily browse the internet using TOR proxy with just one click + * 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. - * ViewTube - Watch videos from video sharing websites with extra options - -%if 0%{?wayland_backend_default} -%package x11 -Summary: GNU IceCat X11 launcher -Requires: %{name} -%description x11 -The %{name}-x11 package contains launcher and desktop file -to run GNU IceCat native on X11. -%else -%package wayland -Summary: GNU IceCat Wayland launcher -Requires: %{name} -%description wayland -The icecat-wayland package contains launcher and desktop file -to run GNU IceCat native on Wayland. +%if %{with langpacks_subpkg} +%package langpacks +Summary: IceCat langpacks +Requires: %{name} = 4:%{version}-%{release} +%description langpacks +The icecat-langpacks package contains all the localization +and translations langpack add-ons. +%files langpacks -f %{name}.lang +%dir %{langpackdir} %endif %prep %autosetup -N -n %{name}-%{version} -# Fix permissions -find . -type f -name "*.h" -exec chmod 0644 '{}' \; -find . -type f -name "*.cpp" -exec chmod 0644 '{}' \; -find . -type f -name "*.cc" -exec chmod 0644 '{}' \; -find . -type f -name "*.c" -exec chmod 0644 '{}' \; - # Copy license files tar -xf %{SOURCE5} -%patch1 -p1 -b .fix_addon_installation -%patch2 -p0 -b .libevent_linkflag -%patch3 -p1 -b .arm -%ifarch s390 -%patch5 -p1 -b .rhbz-1219542-s390 -%endif -%patch7 -p0 -b .fix_jar -%patch8 -p0 -b .fix_installer - -%ifarch aarch64 -%patch40 -p1 -b .aarch64-skia -%endif -%if 0%{?disable_elfhack} -%patch41 -p1 -b .disable-elfhack -%endif - # Fedora patches -%patch219 -p1 -b .rhbz-1173156 +%if 0%{?fedora} +%patch -P 221 -p 1 -b .firefox-nss-addon-hack +%endif +%patch -P 224 -p 1 -b .glibcxx -# ARM run-time patch -%ifarch aarch64 -%patch226 -p1 -b .1354671 +# ARM64 +%ifarch %{arm64} +%patch -P 226 -p 1 -b .1354671 %endif -%ifarch %{arm} -%patch414 -p1 -b .Bug-1238661---fix-mozillaSignalTrampoline-to-work -%patch44 -p1 -b .build-arm-libopus -%patch45 -p1 -b .mozilla-1526653_arm +%ifarch %{power64} +%patch -P 423 -p 1 -b .1512162 %endif - -# Patch for big endian platforms only -%if 0%{?big_endian} -%patch26 -p1 -b .icu -%endif - -%patch419 -p1 -b .mozilla-1564873 - -%patch423 -p1 -b .mozilla-1596503 -%patch424 -p1 -b .mozilla-1566876-webrtc-ind -%patch425 -p1 -b .mozilla-1568569 - -# Wayland specific upstream patches -%patch565 -p1 -b .firefox-pipewire -%patch575 -p1 -b .mozilla-1548475 -%patch576 -p1 -b .mozilla-1562827 -%patch578 -p1 -b .mozilla-1567434-1 -%patch579 -p1 -b .mozilla-1567434-2 -%patch580 -p1 -b .mozilla-1573813 +%patch -P 603 -p1 -b .inline # Remove default configuration and copy the customized one rm -f .mozconfig cp -p %{SOURCE3} .mozconfig -# Disable signature checking for extensions that are bundled with IceCat -echo "ac_add_options --with-unsigned-addon-scopes=app" >> .mozconfig +# Disable signature checking for extensions that are bundled with IceCat. +# Add these options to allow loading unsigned add-ons in app and system scopes. +echo "ac_add_options --with-unsigned-addon-scopes=app,system" >> .mozconfig +echo "ac_add_options --allow-addon-sideload" >> .mozconfig echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig echo "ac_add_options --enable-official-branding" >> .mozconfig echo "ac_add_options --disable-webrtc" >> .mozconfig -%if %{with pulseaudio} -echo "ac_add_options --enable-pulseaudio" >> .mozconfig +# Hide DRM Content option +# This option does not work on other architectures +%ifarch x86_64 +echo "ac_add_options --disable-eme" >> .mozconfig %endif -%if %{with jack} -echo "ac_add_options --enable-jack" >> .mozconfig +%if %{with pulseaudio} +echo "ac_add_options --enable-pulseaudio" >> .mozconfig %endif %if %{with alsa} @@ -408,69 +360,34 @@ echo "ac_add_options --enable-alsa" >> .mozconfig echo "ac_add_options --disable-jemalloc" >> .mozconfig %endif -%if 0%{?system_nss} +%if %{?system_nss} echo "ac_add_options --with-system-nspr" >> .mozconfig echo "ac_add_options --with-system-nss" >> .mozconfig +echo 'ac_add_options BINDGEN_CFLAGS="%(pkg-config nspr pixman-1 --cflags)"' >> .mozconfig %else echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif -%if 0%{?system_libicu} -echo "ac_add_options --with-system-icu" >> .mozconfig -%else -echo "ac_add_options --without-system-icu" >> .mozconfig -%endif -echo "ac_add_options --disable-system-cairo" >> .mozconfig +# Workaround for mozbz#1341234 +echo "ac_add_options --allow-addon-sideload" >> .mozconfig echo "ac_add_options --enable-system-pixman" >> .mozconfig -%if 0%{?system_sqlite} -echo "ac_add_options --enable-system-sqlite" >> .mozconfig -%else -echo "ac_add_options --disable-system-sqlite" >> .mozconfig -%endif -echo "ac_add_options --with-system-zlib" >> .mozconfig -echo "ac_add_options --with-system-bz2" >> .mozconfig -echo "ac_add_options --with-system-libevent=%{_prefix}" >> .mozconfig -echo "ac_add_options --enable-llvm-hacks" >> .mozconfig +echo "ac_add_options --with-system-libevent" >> .mozconfig %if %{?with_vpx} echo "ac_add_options --with-system-libvpx" >> .mozconfig %else echo "ac_add_options --without-system-libvpx" >> .mozconfig %endif -echo "ac_add_options --disable-libjpeg-turbo" >> .mozconfig + echo "ac_add_options --with-system-jpeg" >> .mozconfig -echo "ac_add_options --disable-crashreporter" >> .mozconfig -%ifnarch %{power64} aarch64 s390x %{arm} -echo "ac_add_options --disable-eme" >> .mozconfig -%endif - -# This option works on these architectures only -%ifarch %{ix86} x86_64 %{arm} -echo "ac_add_options --disable-elf-hack" >> .mozconfig -%endif - -%ifarch aarch64 ppc64 s390x %{arm} %{ix86} -#echo "ac_add_options --disable-skia" >> .mozconfig -%endif +echo "ac_add_options --enable-ffmpeg" >> .mozconfig +echo "ac_add_options --enable-av1" >> .mozconfig %if 0%{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig -echo "ac_add_options --enable-dtrace" >> .mozconfig +echo "ac_add_options --enable-rust-debug" >> .mozconfig %else %global optimize_flags "none" -%ifnarch s390x -%define optimize_flags "-g -O2" -%endif -%ifarch %{arm} -# ARMv7 need that (rhbz#1426850) -%define optimize_flags "-g -O2 -fno-schedule-insns" -%endif -%ifarch s390x -%define optimize_flags "-g1 -O1 -fno-schedule-insns" -%endif -%ifarch ppc64le aarch64 -%define optimize_flags "-g -O2" -%endif %if %{?optimize_flags} != "none" echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig %else @@ -478,36 +395,38 @@ echo 'ac_add_options --enable-optimize' >> .mozconfig %endif echo "ac_add_options --disable-debug" >> .mozconfig %endif -%ifarch %{arm} -echo "ac_add_options --enable-linker=gold" >> .mozconfig -# mzbz #1436511 -echo "ac_add_options --disable-av1" >> .mozconfig -%endif - echo "ac_add_options --disable-strip" >> .mozconfig echo "ac_add_options --disable-install-strip" >> .mozconfig echo "ac_add_options --disable-tests" >> .mozconfig +echo "ac_add_options --disable-crashreporter" >> .mozconfig # Localization -%if 0%{?build_langpacks} +%if %{with langpacks} echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig %endif -echo "ac_add_options --disable-rust-tests" >> .mozconfig -echo "ac_add_options --disable-gtest-in-build" >> .mozconfig - -%if 0%{?hardened_build} -echo "ac_add_options --enable-hardening" >> .mozconfig +%if "%toolchain" == "clang" +echo "ac_add_options --with-libclang-path=`llvm-config%{?llvm_suffix} --libdir`" >> .mozconfig %endif -%ifarch s390 s390x -echo "ac_add_options --disable-ion" >> .mozconfig +%ifarch s390x %{arm64} +echo "ac_add_options --disable-jit" >> .mozconfig +%endif + +%if 0%{?build_with_pgo} +echo "ac_add_options MOZ_PGO=1" >> .mozconfig +echo "ac_add_options --enable-lto" >> .mozconfig +%else +echo "ac_add_options --disable-lto" >> .mozconfig %endif echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig # Remove executable bit to make brp-mangle-shebangs happy. chmod -x third_party/rust/itertools/src/lib.rs +chmod a-x third_party/rust/ash/src/extensions/ext/*.rs +chmod a-x third_party/rust/ash/src/extensions/khr/*.rs +chmod a-x third_party/rust/ash/src/extensions/nv/*.rs # Remove unrecognized files find extensions/gnu -name cose.manifest -delete @@ -517,7 +436,6 @@ find extensions/gnu -name cose.manifest -delete %build # cbindgen %if 0%{?use_bundled_cbindgen} - mkdir -p my_rust_vendor cd my_rust_vendor %{__tar} xf %{SOURCE17} @@ -531,24 +449,31 @@ replace-with = "vendored-sources" directory = "`pwd`/my_rust_vendor" EOL +# note: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml` +pushd .cargo +mv config config.toml +popd + env CARGO_HOME=.cargo cargo install cbindgen export PATH=`pwd`/.cargo/bin:$PATH -%endif - -echo "Generate big endian version of config/external/icu/data/icud58l.dat" -%if 0%{?big_endian} - ./mach python intl/icu_sources_data.py . - ls -l config/external/icu/data - rm -f config/external/icu/data/icudt*l.dat +%else +export CBINDGEN=/usr/bin/cbindgen %endif mkdir %{_buildrootdir}/bin || : cp %{SOURCE18} %{_buildrootdir}/bin || : # Update the various config.guess to upstream release for aarch64 support -find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' +find ./ -path ./third_party/rust -prune -o -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') +%if %{?less_optbuild} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2/-O1/') +%endif +%if %{?debug_build} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2/-O0/') +%endif + #rhbz#1037063 # -Werror=format-security causes build failures when -Wno-format is explicitly given # for some sources @@ -557,117 +482,118 @@ MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') # Workaround for mozbz#1531309 MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//') -# Use hardened build? -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" - -%if %{?debug_build} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') -%endif -%ifarch s390x %{arm} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/' -e 's/-O2/-O1/') +%ifarch s390x +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') # If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which # overrides the -g1 from line above and breaks building on s390 # (OOM when linking, rhbz#1238225) export MOZ_DEBUG_FLAGS=" " %endif -%if !0%{?build_with_clang} -%ifarch s390x %{power64} aarch64 %{ix86} -MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--print-memory-usage" -%endif -%ifarch %{arm} -MOZ_LINK_FLAGS="-Wl,-fuse-ld=gold -Wl,--no-keep-memory -Wl,--no-map-whole-files -Wl,--no-mmap-output-file" -%endif -%endif -%ifarch %{arm} %{ix86} -export RUSTFLAGS="-Cdebuginfo=0" -export MOZ_RUST_DEFAULT_FLAGS="-Cdebuginfo=0 -Copt-level=0" -%endif -export CFLAGS=$MOZ_OPT_FLAGS -export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS=$MOZ_LINK_FLAGS +# We don't want firefox to use CK_GCM_PARAMS_V3 in nss +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" + +%if "%toolchain" != "clang" +%ifarch s390x %{power64} %{arm64} +MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" +%endif +%endif + +%ifarch s390x +export RUSTFLAGS="-Cdebuginfo=0" +%endif + +# error "STL code can only be used with -fno-exceptions" +CXXFLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-fexceptions/-fno-exceptions/') +export CXXFLAGS="$CXXFLAGS" +export CXXFLAGS="$CXXFLAGS -fpermissive -std=gnu++17" + +export CFLAGS="$MOZ_OPT_FLAGS -std=gnu17" +export LDFLAGS="%{__global_ldflags} $MOZ_LINK_FLAGS -L%{_libdir} -L%{icecatappdir}" export PREFIX='%{_prefix}' export LIBDIR='%{_libdir}' -export PKG_CONFIG='%{_bindir}/pkg-config' -export PYTHON='%{__python2}' +export PKG_CONFIG="`which pkg-config`" +export PYTHON='%{__python3}' -%if 0%{?build_with_clang} -export LLVM_PROFDATA="llvm-profdata" -export AR="llvm-ar" -export NM="llvm-nm" -export RANLIB="llvm-ranlib" +%if "%toolchain" == "clang" +echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig +echo "export AR=\"llvm-ar\"" >> .mozconfig +echo "export NM=\"llvm-nm\"" >> .mozconfig +echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig echo "ac_add_options --enable-linker=lld" >> .mozconfig +echo "export CC=clang%{?llvm_suffix}" >> .mozconfig +echo "export CXX=clang++%{?llvm_suffix}" >> .mozconfig %else -export CC=gcc -export CXX=g++ -export AR="gcc-ar" -export NM="gcc-nm" -export RANLIB="gcc-ranlib" +echo "export CC=gcc" >> .mozconfig +echo "export CXX=g++" >> .mozconfig +echo "export AR=\"gcc-ar\"" >> .mozconfig +echo "export NM=\"gcc-nm\"" >> .mozconfig +echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig %endif -MOZ_SMP_FLAGS=-j1 -# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, -# however builds tend to fail on other arches when building in parallel. -%ifarch x86_64 %{power64} aarch64 -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 -[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 +%if 0%{?build_with_pgo} +echo "ac_add_options MOZ_PGO=1" >> .mozconfig +# PGO build doesn't work with ccache +export CCACHE_DISABLE=1 %endif -export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" -export MOZ_OPTIMIZE_FLAGS=" -freorder-blocks -fno-reorder-functions" -export STRIP=/bin/true -MOZ_RUN_GTEST=0 ./mach -v build +# Require 4 GB of RAM per CPU core +%global _smp_tasksize_proc 4096 +%if %{?less_optbuild} +echo "mk_add_options MOZ_MAKE_FLAGS=\"-j1\"" >> .mozconfig +%else +echo "mk_add_options MOZ_MAKE_FLAGS=\"-j%{_smp_build_ncpus}\"" >> .mozconfig +%endif + +echo "mk_add_options MOZ_SERVICES_SYNC=1" >> .mozconfig +echo "export STRIP=/bin/true" >> .mozconfig + +%if 0%{?launch_wayland_compositor} +cp -p %{SOURCE19} . +. ./run-wayland-compositor +%endif + +%if %{?debug_build} +export CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true +%endif + +#Use python 3.11 for mach +sed -i -e 's|#!/usr/bin/env python3|#!/usr/bin/env python3.11|' mach + +./mach build -v 2>&1 | cat - || exit 1 + +%if 0%{?build_with_pgo} +kill $MUTTER_PID +%endif %install # set up our default bookmarks +%if 0%{?fedora} +%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html cp -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html +%endif %make_install -C objdir ##Resize IceCat icon for i in 16 22 24 32 36 48 64 72 96 128 256 ; do - mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps - convert -geometry ${i} %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.png + mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps + convert -geometry ${i} %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.png done ##desktop file installation -mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications -desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE14} +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE14} -# set up the IceCat start script -%if 0%{?wayland_backend_default} -%global wayland_default true -%else -%global wayland_default false -%endif - -rm -rf $RPM_BUILD_ROOT%{_bindir}/%{name} -%{__sed} -e 's/__DEFAULT_WAYLAND__/%{wayland_default}/' \ - -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE13} > %{buildroot}%{_bindir}/%{name} +rm -rf %{buildroot}%{_bindir}/%{name} +%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE13} > %{buildroot}%{_bindir}/%{name} chmod 755 %{buildroot}%{_bindir}/%{name} - -%if 0%{?wayland_backend_default} -%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE15} > %{buildroot}%{_bindir}/%{name}-x11 -chmod 755 %{buildroot}%{_bindir}/%{name}-x11 -desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE16} -%else -%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE12} > %{buildroot}%{_bindir}/%{name}-wayland -chmod 755 %{buildroot}%{_bindir}/%{name}-wayland -desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE9} -%endif # -##Install man page -mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 -install -p -m 644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/ - ##Extract langpacks, make any mods needed, repack the langpack, and install it. -%if 0%{?build_langpacks} echo > %{name}.lang -mkdir -p $RPM_BUILD_ROOT%{langpackdir} +%if %{with langpacks} +mkdir -p %{buildroot}%{langpackdir} tar xf %{SOURCE4} for langpack in `ls langpacks/*.xpi`; do language=`basename $langpack .xpi` @@ -680,7 +606,7 @@ tar xf %{SOURCE4} zip -qq -r9mX ../${extensionID}.xpi * cd - - install -p -m 644 ${extensionID}.xpi $RPM_BUILD_ROOT%{langpackdir} + install -p -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir} language=`echo $language | sed -e 's/-/_/g'` echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang done @@ -690,7 +616,7 @@ rm -rf %{name}-langpacks function create_default_langpack() { language_long=$1 language_short=$2 -cd $RPM_BUILD_ROOT%{langpackdir} +cd %{buildroot}%{langpackdir} ln -s langpack-$language_long@icecat.mozilla.org.xpi langpack-$language_short@icecat.mozilla.org.xpi cd - echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@icecat.mozilla.org.xpi" >> %{name}.lang @@ -725,20 +651,19 @@ ln -sf %{icecatappdir}/%{name}-bin ${RPM_BUILD_ROOT}%{icecatappdir}/%{name} # Use the system hunspell dictionaries rm -rf ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries -ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries - -# Copy over run-icecat.sh -cp -p build/unix/run-%{name}.sh %{buildroot}%{icecatappdir}/ +ln -s %{_datadir}/hunspell ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries # Remove unused directories -rm -rf $RPM_BUILD_ROOT%{_libdir}/%{icecat_devel} -rm -rf $RPM_BUILD_ROOT%{_datadir}/idl/%{icecat_ver} -rm -rf $RPM_BUILD_ROOT%{_includedir}/%{icecat_ver} -rm -rf $RPM_BUILD_ROOT%{icecatappdir}/removed-files +rm -rf %{buildroot}%{_libdir}/%{icecat_devel} +rm -rf %{buildroot}%{_datadir}/idl/%{icecat_ver} +rm -rf %{buildroot}%{_includedir}/%{icecat_ver} +rm -rf %{buildroot}%{icecatappdir}/removed-files -mkdir -p $RPM_BUILD_ROOT%{_metainfodir} -install -pm 644 %{SOURCE10} $RPM_BUILD_ROOT%{_metainfodir}/ -install -pm 644 %{SOURCE11} $RPM_BUILD_ROOT%{_metainfodir}/ +# Remove gtk2 support as flash plugin is no longer supported +rm -rf %{buildroot}%{icecatappdir}/gtk2 + +mkdir -p %{buildroot}%{_metainfodir} +install -pm 644 %{SOURCE10} %{buildroot}%{_metainfodir}/ # Moves defaults/preferences to browser/defaults/preferences %pretrans -p @@ -760,23 +685,24 @@ if (posix.stat("%{icecatappdir}/browser/defaults/preferences", "type") == "link" end %check -appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.xml +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop -%if 0%{?build_langpacks} -%files -f %{name}.lang -%else +%if %{with langpacks_subpkg} %files +%dir %{langpackdir} +%else +%files -f %{name}.lang %endif %doc README.* AUTHORS -%license LICENSE LEGAL COPYING-* +%license LICENSE COPYING-* %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*x*/apps/%{name}*.png %{_metainfodir}/*.appdata.xml -%{_metainfodir}/%{name}.metainfo.xml -%{_mandir}/man1/%{name}* %dir %{icecatappdir} +%{icecatappdir}/glxtest +%{icecatappdir}/vaapitest %{icecatappdir}/browser/ %{icecatappdir}/defaults/ %{icecatappdir}/dictionaries @@ -785,786 +711,12 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{icecatappdir}/*.so %{icecatappdir}/*.ini %{icecatappdir}/omni.ja -%{icecatappdir}/run-icecat.sh %{icecatappdir}/dependentlibs.list -%{icecatappdir}/plugin-container %{icecatappdir}/pingsender %{icecatappdir}/gmp-clearkey/ -%{icecatappdir}/chrome.manifest -%{icecatappdir}/gtk2/*.so -%if !%{?system_nss} -%{icecatappdir}/libfreeblpriv3.chk -%{icecatappdir}/libnssdbm3.chk -%{icecatappdir}/libsoftokn3.chk -%endif -%if 0%{?build_langpacks} -%dir %{langpackdir} -%endif - -%if 0%{?wayland_backend_default} -%files x11 -%{_bindir}/%{name}-x11 -%{_datadir}/applications/%{name}-x11.desktop -%else -%files wayland -%{_bindir}/%{name}-wayland -%{_datadir}/applications/%{name}-wayland.desktop +%ifarch %{arm64} riscv64 +%{icecatappdir}/v4l2test %endif %changelog -* Tue Jun 02 2020 Antonio Trande - 68.9.0-1.rh2 -- Mozilla release 68.9.0ESR - -* Thu May 28 2020 Antonio Trande - 68.9.0-0.1.rc1.rh1 -- Mozilla release candidate 68.9.0ESR build1 - -* Wed May 20 2020 Antonio Trande - 68.8.0-5.rh1 -- Explicit perl-interpreter BR dependency - -* Sat May 16 2020 Pete Walter - 68.8.0-4.rh1 -- Rebuild for ICU 67 - -* Sat May 16 2020 Pete Walter - 68.8.0-3.rh1 -- Rebuild for ICU 67 -- Remove libgen references - -* Fri May 08 2020 Peter Robinson - 68.8.0-2.rh1 -- Don't exclude aarch64 architecture - -* Tue May 05 2020 Antonio Trande - 68.8.0-1.rh1 -- Mozilla release 68.8.0ESR -- Exclude s390x architecture - -* Tue Apr 07 2020 Antonio Trande - 68.7.0-1.rh1 -- Mozilla release 68.7.0ESR - -* Sun Mar 29 2020 Antonio Trande - 68.6.0-4.rh4 -- Remove libgen addon - -* Sat Mar 21 2020 Antonio Trande - 68.6.0-3.rh3 -- Source code archive regenerated -- HTTPS-everywhere updated to the 2020.3.16 - -* Wed Mar 11 2020 Antonio Trande - 68.6.0-2.rh2 -- Remove useless build dependency - -* Tue Mar 10 2020 Antonio Trande - 68.6.0-1.rh2 -- Mozilla release 68.6.0ESR - -* Sat Mar 07 2020 Antonio Trande - 68.6.0-0.1.rc1.rh1 -- Mozilla release candidate 68.6.0ESR - -* Mon Feb 10 2020 Antonio Trande - 68.5.0-1.rh1 -- Mozilla release 68.5.0ESR (Mozilla release) - -* Wed Jan 29 2020 Fedora Release Engineering - 68.4.1-2.rh1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild -- Undefine strict symbol checks on s390x - -* Sat Jan 11 2020 Antonio Trande - 68.4.1-1.rh1 -- Mozilla release 68.4.1ESR (release build) - -* Wed Jan 08 2020 Antonio Trande - 68.4.0-2.rh2 -- Mozilla release 68.4.0ESR (release build) - -* Tue Jan 07 2020 Antonio Trande - 68.4.0-1.rh2.test -- Mozilla release 68.4.0ESR -- Test build for ARM and s390x -- Patched for mzbz#1526653 to disable wasm on ARM -- Add --disable-av1 build option for ARM - -* Fri Jan 03 2020 Antonio Trande - 68.4.0-0.2.rc1.rh1 -- New rebuild of source archive (extensions updated) -- Use rh prefix instead of gnu - -* Wed Jan 01 2020 Antonio Trande - 68.4.0-0.1.rc1.gnu1 -- Mozilla release candidate 68.4.0ESR -- Fix rhbz#1785956 - -* Thu Dec 05 2019 Antonio Trande - 68.3.0-2.gnu1 -- Appdata file updated -- Description updated - -* Wed Dec 04 2019 Antonio Trande - 68.3.0-1.gnu1 -- Mozilla release 68.3.0ESR -- Patch for cbindgen/rust-1.39 - -* Wed Nov 27 2019 Antonio Trande - 68.3.0-0.1.rc2.gnu1 -- Mozilla release candidate 68.3.0ESR - -* Fri Nov 22 2019 Antonio Trande - 68.2.0-4.gnu3.test -- Build release 68.2.0-gnu3 -- Undo latest change -- Patched for rust-1.39+ - -* Sun Nov 10 2019 Antonio Trande - 68.2.0-3.gnu2 -- Do not remove cose.manifest files - -* Fri Nov 08 2019 Antonio Trande - 68.2.0-2.gnu2 -- Build release 68.2.0-gnu2 -- HTTPS-Everywhere 2019_11_7 -- Use always system vpx (Fedora 30+) -- Patched for Mozilla bug #1556602 - -* Tue Oct 22 2019 Antonio Trande - 68.2.0-1.gnu1 -- Mozilla release 68.2.0ESR - -* Tue Sep 03 2019 Antonio Trande - 68.1.0-1.gnu1 -- Mozilla release 68.1.0ESR -- Incorporate Wayland patches from Firefox 68 - -* Sun Sep 01 2019 Antonio Trande - 68.0.2-5.gnu3 -- Rebuild after retiring of Python2 - -* Fri Aug 23 2019 Antonio Trande - 68.0.2-4.gnu3 -- Enable langpacks - -* Wed Aug 21 2019 Antonio Trande - 68.0.2-3.gnu3 -- gnu3 build release - -* Mon Aug 19 2019 Antonio Trande - 68.0.2-2.gnu2 -- WebRTC always disabled -- Do not build langpacks -- gnu2 build release -- Disable MOZ_SERVICES_SYNC - -* Thu Aug 15 2019 Antonio Trande - 68.0.2-1.gnu1 -- Mozilla release 68.0.2ESR -- Import cbindgen stuff from Firefox package -- Do not use sqlite from system - -* Sun Jul 28 2019 Antonio Trande - 60.8.0-6.gnu1 -- Add patch to fix the addon installation - -* Thu Jul 25 2019 Fedora Release Engineering - 60.8.0-6.gnu1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jul 23 2019 Antonio Trande - 60.8.0-5.gnu1 -- Enable WebRTC on ppc64le - -* Fri Jul 12 2019 Antonio Trande - 60.8.0-4.gnu1 -- Remove redundant Python2 dependencies - -* Thu Jul 11 2019 Antonio Trande - 60.8.0-3.gnu1 -- Remove filtering of private libraries -- Enable webrtc on %%{ix86} x86_64 only - -* Wed Jul 10 2019 Antonio Trande - 60.8.0-2.gnu1 -- Use mozilla-1512162.patch on Fedora 30+ only (GCC-9) - -* Tue Jul 09 2019 Antonio Trande - 60.8.0-1.gnu1 -- Mozilla release 60.8.0ESR - -* Sat Jun 22 2019 Antonio Trande - 60.7.2-1.gnu1 -- Mozilla release 60.7.2ESR - -* Wed Jun 19 2019 Antonio Trande - 60.7.1-1.gnu1 -- Mozilla release 60.7.1ESR -- Do not list Git-tracked icecat.rpmlintrc as source - -* Tue May 28 2019 Antonio Trande - 60.7.0-2.gnu2 -- Build release 60.7.0-gnu2 - -* Mon May 20 2019 Antonio Trande - 60.7.0-1.gnu1 -- Mozilla release 60.7.0ESR - -* Sun May 12 2019 Antonio Trande - 60.6.3-2.gnu2 -- Build release 60.6.3-gnu2 - -* Thu May 09 2019 Antonio Trande - 60.6.3-1.gnu1 -- Mozilla release 60.6.3ESR (bugfix mozb #1549249) - -* Mon May 06 2019 Antonio Trande - 60.6.2-1.gnu1 -- Mozilla release 60.6.2ESR (bugfix mozb #1549061) - -* Sat Apr 06 2019 Antonio Trande - 60.6.1-2.gnu2 -- Source archive rebuilt (gnu2) -- Update extensions -- Use bundled https-everywhere extension - -* Fri Mar 22 2019 Antonio Trande - 60.6.1-1 -- Mozilla release 60.6.1ESR -- Wayland backend made default starting from Fedora 31 (rhbz#1691852) - -* Thu Mar 21 2019 Antonio Trande - 60.6.0-2 -- Patched for building with newer glibc (2.29.9000-4) (mozilla #1533969) -- Excluded on ARM (rhbz #1658940) -- Language files re-based - -* Tue Mar 19 2019 Antonio Trande - 60.6.0-1 -- Mozilla release 60.6.0ESR -- Enable languages - -* Sun Mar 03 2019 Antonio Trande - 60.5.2-1 -- Mozilla release 60.5.2ESR -- Disable Werror-format-security flags -- Enable linker=gold on ARM -- Try to fix libevent LD path - -* Thu Feb 14 2019 Antonio Trande - 60.5.1-1 -- Mozilla release 60.5.1ESR -- Conditional macro for libvpx support - -* Tue Feb 05 2019 Björn Esser - 60.5.0-2 -- rebuilt (libvpx) - -* Tue Jan 29 2019 Antonio Trande - 60.5.0-1 -- Mozilla release 60.5.0ESR - -* Sun Jan 13 2019 Antonio Trande - 60.4.0-2 -- Make Wayland support default on fedora 30+ -- Enable Wayland support -- Drop old patches -- Backported Wayland related code from Firefox 63 -- Added fix for mozbz#1507475 - crash when display changes - -* Wed Dec 12 2018 Antonio Trande - 60.4.0-1 -- Upstream release 60.4.0ESR - -* Tue Nov 13 2018 Caolán McNamara - 60.3.0-4 -- rebuild for hunspell-1.7.0 - -* Sat Nov 10 2018 Antonio Trande - 60.3.0-3 -- Rebuild with latest changes from Gnuzilla - -* Wed Oct 31 2018 Antonio Trande - 60.3.0-2 -- Drop UserAgent patch (rhbz#1644898) - -* Wed Oct 24 2018 Antonio Trande - 60.3.0-1 -- Upstream release 60.3.0ESR - -* Wed Oct 03 2018 Antonio Trande - 60.2.2-2 -- Drop UserAgent patch (rhbz#1644898) - -* Wed Oct 03 2018 Antonio Trande - 60.2.2-1 -- Upstream release 60.2.2ESR - -* Fri Sep 28 2018 Antonio Trande - 60.2.1-1 -- Upstream release 60.2.1 - -* Fri Sep 14 2018 Antonio Trande - 60.2.0-0.1 -- Pre-release 60.2.0ESR -- Integrate firefox patches for wayland (disabled) -- Setting of upstream patches for ESR60 -- Manpage updated -- Include languages -- Use options to reduce memory requirements at ld runtime on ix86 - -* Sun Aug 05 2018 Antonio Trande - 52.9.0-1 -- Update to 52.9.0 - -* Fri Jul 13 2018 Fedora Release Engineering - 52.8.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jul 10 2018 Pete Walter - 52.8.1-2 -- Rebuild for ICU 62 - -* Thu Jun 07 2018 Antonio Trande - 52.8.1-1 -- Update to 52.8.1 -- Add icecat.rpmlintrc - -* Wed Jun 06 2018 Antonio Trande - 52.8.0-3 -- Source tarball re-created without non-free code - -* Tue Jun 5 2018 Tom Callaway - 52.8.0-2 -- remove non-free files from tarball - -* Sat May 12 2018 Antonio Trande - 52.8.0-1 -- Update to 52.8.0 - -* Mon Apr 30 2018 Pete Walter - 52.7.3-2 -- Rebuild for ICU 61.1 - -* Tue Mar 27 2018 Antonio Trande - 52.7.3-1 -- Update to 52.7.3 - -* Tue Mar 20 2018 Antonio Trande - 52.7.2-1 -- Update to 52.7.2 - -* Sat Mar 10 2018 Antonio Trande - 52.7.0-1 -- Update to 52.7.0 - -* Tue Feb 27 2018 Antonio Trande - 52.6.0-7 -- HTTPS Everywhere updated to 2018.1.11 -- "goteo.org payments with free JS" updated to 1.1 -- "LibreJS compatible Pay.gov" updated to 1.3 -- "Reveal hidden HTML" updated to 1.6 -- Enabled WebRTC, but prevent leaking the LAN ip - -* Sun Feb 18 2018 Antonio Trande - 52.6.0-6 -- Add gcc gcc-c++ BR - -* Sun Feb 18 2018 Antonio Trande - 52.6.0-5 -- Rebuild for libevent-2.1.8 - -* Wed Feb 07 2018 Fedora Release Engineering - 52.6.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sun Jan 28 2018 Antonio Trande - 52.6.0-3 -- Rebuild for libvpx again - -* Fri Jan 26 2018 Tom Callaway - 52.6.0-2 -- rebuild for new libvpx - -* Wed Jan 24 2018 Antonio Trande - 52.6.0-1 -- Update to 52.6.0 - -* Thu Jan 11 2018 Igor Gnatenko - 52.5.3-4 -- Remove obsolete scriptlets - -* Sun Jan 07 2018 Antonio Trande - 52.5.3-3 -- Set build against NSS-3.34/NSPR-4.17.0 at least - -* Sun Jan 07 2018 Antonio Trande - 52.5.3-2 -- Patched for mozilla bug-1427870 - -* Sun Dec 31 2017 Antonio Trande - 52.5.3-1 -- Update to 52.5.3 -- Use 'with-l10n' option - -* Fri Dec 29 2017 Antonio Trande - 52.5.2-1 -- Update to 52.5.2 -- WebRTC is always disabled -- Add JACK audio backend (bz#1528742) - -* Thu Dec 21 2017 Antonio Trande - 52.3.0-4 -- Appdata file moved into metainfo data directory - -* Mon Dec 04 2017 Caolán McNamara - 52.3.0-3 -- rebuild for hunspell-1.5.2 - -* Sat Sep 02 2017 Antonio Trande - 52.3.0-2 -- Enable language files - -* Wed Aug 16 2017 Antonio Trande - 52.3.0-1 -- Update to 52.3.0 - -* Thu Aug 03 2017 Antonio Trande - 52.2.1-1 -- Update to 52.2.1 -- ICU source code patched to work on big-endian architectures - -* Wed Jul 26 2017 Fedora Release Engineering - 52.1.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon May 15 2017 Fedora Release Engineering - 52.1.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Sat May 06 2017 Antonio Trande - 52.1.0-2 -- Fix language files - -* Sat May 06 2017 Jens Lody - 52.1.0-1 -- Update to 52.1.0 -- Remove obsolete firefox-debug.patch -- Spec-file: fix typo in description - -* Sun Apr 16 2017 Antonio Trande - 52.0.2-3 -- Enable languages - -* Fri Apr 14 2017 Antonio Trande - 52.0.2-2 -- Update to 52.0.2 -- Add patch for mozbz#1158076 - enable dark theme by pref - -* Sun Mar 26 2017 Antonio Trande - 52.0.1-5 -- Skia support disabled on ARM/ix86 builds (failed for memory exhausted) - -* Sun Mar 26 2017 Antonio Trande - 52.0.1-4 -- Downgrade optimization level on ARM builds (failed for memory exhausted) -- Use one job with Make on ix86 - -* Wed Mar 22 2017 Antonio Trande - 52.0.1-3 -- Added fix for mozbz#1158076 - -* Mon Mar 20 2017 Antonio Trande - 52.0.1-2 -- Set cflags/libs options for NSS/NSPR -- Add --disable-elf-hack - -* Sun Mar 19 2017 Antonio Trande - 52.0.1-1 -- Update to 52.0.1 -- All patches synchronized with firefox - -* Mon Mar 06 2017 Jens Lody - 45.7.0-8 -- aarch64build-fix (taken from mozjs45) -- include aarch64 again - -* Sun Mar 05 2017 Antonio Trande - 45.7.0-7 -- Build with language files -- Use new source archive -- Exclude aarch64 - -* Sun Mar 05 2017 Jens Lody - 45.7.0-6 -- do not set debug-build-flag - -* Sun Mar 05 2017 Jens Lody - 45.7.0-5 -- (Re-)add language-download.script and make Source-tag unconditional. -- Fix debug build. - -* Sat Feb 18 2017 Antonio Trande - 45.7.0-3 -- Optimization flags disabled on arm/arm64 - -* Thu Feb 16 2017 Jens Lody - - 45.7.0-3 -- Fix gcc7 build, with backport of fix for mozb#1269171 - -* Fri Feb 10 2017 Fedora Release Engineering - 45.7.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Sat Feb 04 2017 Antonio Trande - 45.7.0-1 -- Update to 45.7.0 - -* Sat Jan 21 2017 Antonio Trande - 45.5.1-7 -- Test for trying ICU patch - -* Fri Jan 20 2017 Antonio Trande - 45.5.1-6 -- System ICU disabled on Fedora > 25 - -* Fri Jan 20 2017 Antonio Trande - 45.5.1-5 -- Patched to make compatible with NSS 3.28.1 (bz#1414987) - -* Thu Jan 05 2017 Antonio Trande - 45.5.1-4 -- Conformed to new rules for scriptlets - -* Tue Dec 13 2016 Caolán McNamara - 45.5.1-3 -- rebuild for hunspell-1.5.4 - -* Fri Dec 02 2016 Antonio Trande - 45.5.1-2 -- Keep workaround for bz#1332926 - -* Fri Dec 02 2016 Antonio Trande - 45.5.1-1 -- Update to 45.5.1 - -* Sun Nov 27 2016 Antonio Trande - 45.3.0-0.6.beta -- Debug build -- Debug builds patched (mozb#1013882) -- Patched for removing unnecessary warns - -* Sun Sep 04 2016 Antonio Trande - 45.3.0-0.5.beta -- Drop obsolete patch - -* Sat Sep 03 2016 Antonio Trande - 45.3.0-0.4.beta -- Use MOZ_SMP_FLAGS instead of MOZ_MAKE_FLAGS - -* Thu Sep 01 2016 Antonio Trande - 45.3.0-0.3.beta -- Update desktop file's translations -- Enable jemalloc - -* Thu Sep 01 2016 Antonio Trande - 45.3.0-0.2.beta -- Disable optimization on ARM - -* Mon Aug 29 2016 Antonio Trande - 45.3.0-0.1.beta -- Update to 45.3.0 (beta) -- Drop old patches -- Reset default compiler flags -- Filtering private libraries - -* Fri Jul 22 2016 Tom Callaway - 38.8.0-13 -- rebuild for libvpx 1.6.0 - -* Wed Jun 29 2016 Antonio Trande - 38.8.0-12 -- Optimization level increased to -O1 - -* Tue Jun 28 2016 Antonio Trande - 38.8.0-11 -- Fix appadata file's tags - -* Sun Jun 26 2016 Antonio Trande - 38.8.0-10 -- Rebuild with newest icecat-38.8.0-gnu2 source archive (24 June) - -* Sun Jun 26 2016 Jens Lody - 38.8.0-9 -- Workaround for #1332926 - -* Sat Jun 18 2016 Antonio Trande - 38.8.0-8 -- Set MOZ_SMP_FLAGS - -* Sat Jun 18 2016 Antonio Trande - 38.8.0-7 -- Undo latest change - -* Sat Jun 18 2016 Antonio Trande - 38.8.0-6 -- Set C++14 standard flag - -* Fri Jun 17 2016 Antonio Trande - 38.8.0-5 -- Set C++ standard flag - -* Fri Jun 17 2016 Antonio Trande - 38.8.0-4 -- Disable install stripping -- Disable builds for debugging - -* Fri Jun 17 2016 Antonio Trande - 38.8.0-3 -- Enable builds for debugging - -* Fri May 13 2016 Antonio Trande - 38.8.0-2 -- Remove additional flag - -* Fri May 13 2016 Antonio Trande - 38.8.0-1 -- Update to 38.8.0 - -* Mon Apr 18 2016 Caolán McNamara - 38.7.1-4 -- rebuild for hunspell 1.4.0 - -* Fri Apr 15 2016 David Tardon - 38.7.1-3 -- rebuild for ICU 57.1 - -* Sat Apr 09 2016 Antonio Trande - 38.7.1-2 -- Downgrade optimization level on ARM - -* Fri Apr 08 2016 Antonio Trande - 38.7.1-1 -- Update to 38.7.1 - -* Thu Feb 04 2016 Antonio Trande - 38.6.0-1 -- Update to 38.6.0 -- Patched for GCC6 builds -- Cut off Provides bundled libraries except xulrunner - -* Thu Feb 04 2016 Fedora Release Engineering - 38.5.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Jan 04 2016 Antonio Trande - 38.5.2-4 -- Fix description of appdata file - -* Mon Jan 04 2016 Antonio Trande - 38.5.2-3 -- Fix validating of desktop file - -* Sun Jan 03 2016 Antonio Trande - 38.5.2-2 -- .desktop .appdata and .metainfo files renamed (bz#1295234) - -* Fri Jan 01 2016 Antonio Trande - 38.5.2-1 -- Update to 38.5.2 - -* Fri Dec 18 2015 Antonio Trande - 38.5.0-1 -- Update to 38.5.0 - -* Tue Dec 08 2015 Antonio Trande - 38.4.0-3 -- Force -fstack-protector-all flag (bz#1283307) - -* Tue Dec 1 2015 Tom Callaway - 38.4.0-2 -- rebuild for libvpx 1.5.0 - -* Tue Nov 17 2015 Antonio Trande - 38.4.0-1 -- Update to 38.4.0 - -* Tue Nov 03 2015 Antonio Trande - 38.3.0-12 -- ARM neon support disabled on aarch64 - -* Sat Oct 31 2015 Antonio Trande - 38.3.0-11 -- Rebuild for ICU 56 - -* Wed Oct 28 2015 Antonio Trande - 38.3.0-10 -- Rebuild with RPM_LD_FLAGS - -* Wed Oct 28 2015 David Tardon - 38.3.0-9 -- rebuild for ICU 56.1 - -* Tue Oct 20 2015 Antonio Trande - 38.3.0-8 -- Active hardened_build - -* Tue Oct 13 2015 Antonio Trande - 38.3.0-7 -- Rebuilt with updated Addons - -* Mon Oct 12 2015 Antonio Trande - 38.3.0-6 -- Fixed header files directory for freetype-2.6.1 - -* Mon Oct 12 2015 Antonio Trande - 38.3.0-5 -- Languages packaged - -* Tue Oct 06 2015 Antonio Trande - 38.3.0-4 -- WebRTC disabled on extra arches - -* Tue Oct 06 2015 Antonio Trande - 38.3.0-3 -- Updated appdata and manpage files - -* Mon Oct 05 2015 Antonio Trande - 38.3.0-2 -- Disabled crashreporter on F22+ - -* Sat Oct 03 2015 Antonio Trande - 38.3.0-1 -- Update to 38.3.0 -- Patches updated -- Language files not packaged -- Build defined for Gtk3 - -* Thu Aug 13 2015 Antonio Trande - 31.8.0-5 -- Added backported patch for CVE-2015-4473_4482_4488_4489_4491_4492 vulnerabilities - -* Thu Aug 13 2015 Antonio Trande - 31.8.0-4 -- Added backported patch for CVE-2015-4495 vulnerability - -* Tue Jul 21 2015 Antonio Trande - 31.8.0-3 -- Fixed on secondary arches - -* Mon Jul 20 2015 Antonio Trande - 31.8.0-2 -- Un-bundle libvpx-1.4 - -* Fri Jul 17 2015 Antonio Trande - 31.8.0-1 -- Update to 31.8.0 - -* Sun Jul 12 2015 Antonio Trande - 31.7.0-8 -- Packaged IceCat 31.7 in Fedora 21 - -* Fri Jul 03 2015 Antonio Trande - 31.7.0-7 -- Fix .metainfo.xml file - -* Thu Jul 02 2015 Antonio Trande - 31.7.0-6 -- Added .metainfo.xml file - -* Thu Jun 18 2015 Antonio Trande - 31.7.0-5 -- Added options --enable-tree-freetype --enable-stdcxx-compat -- Added patch for Freetype-2.6 headers - -* Wed Jun 17 2015 Fedora Release Engineering - 31.7.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sun Jun 14 2015 Antonio Trande - 31.7.0-3 -- Re-built locale files -- Re-organized mozconfig options -- Compiled with ccache - -* Wed Jun 10 2015 Antonio Trande - 31.7.0-2 -- Unpacked files found - -* Mon Jun 08 2015 Antonio Trande - 31.7.0-1 -- Update to 31.7.0 -- Make sure locale works for langpacks -- Set default bookmarks -- Made appdata file -- devel package obsoleted - -* Mon May 04 2015 Antonio Trande - 31.6.0-6 -- Required VPX from system for < F23 - -* Sun May 03 2015 Antonio Trande - 31.6.0-5 -- libvpx-1.3.0 bundled only in >= F23 - -* Tue Apr 07 2015 Antonio Trande - 31.6.0-4 -- Disable optimization flags (when GCC5 compiles) on ARM - -* Tue Apr 07 2015 Antonio Trande - 31.6.0-3 -- Compiled against bundle libvpx-1.3.0 - -* Mon Apr 06 2015 Tom Callaway - 31.6.0-2 -- Rebuild for libvpx 1.4.0 - -* Sat Apr 04 2015 Antonio Trande - 31.6.0-1 -- Update to 31.6.0 - -* Mon Mar 16 2015 Antonio Trande - 31.5.0-2 -- New rebuild to fix profile's storage problem - -* Thu Mar 12 2015 Antonio Trande - 31.5.0-1 -- Update to 31.5.0 -- Patched to fix Mozilla Bug1021171 -- crashreporter disabled on > F21 -- Improved .desktop file - -* Wed Feb 04 2015 Petr Machata - 31.4.0-5 -- Bump for rebuild. - -* Mon Feb 02 2015 Antonio Trande - 31.4.0-4 -- Desktop file missing %%u (bz#1188078) - -* Sat Jan 31 2015 Antonio Trande - 31.4.0-3 -- Annulled the user-agent string customization - -* Thu Jan 29 2015 Antonio Trande - 31.4.0-2 -- Added %%license macro - -* Thu Jan 29 2015 Antonio Trande - 31.4.0-1 -- Update to 31.4.0 -- Added MPLv2.0 license of HTML5-video-everywhere extension -- Description updated - -* Mon Jan 26 2015 David Tardon - 31.2.0-8 -- rebuild for ICU 54.1 - -* Wed Jan 21 2015 Antonio Trande - 31.2.0-7 -- Package now requires system-bookmarks (bz#1184297) - -* Wed Nov 26 2014 Antonio Trande - 31.2.0-6 -- libjpeg-turbo unbundled (bz#1164815) - -* Thu Nov 06 2014 Antonio Trande - 31.2.0-5 -- Added -Wno-error=declaration-after-statement -- Built against GStreamer-1.0 -- Package compiled against bundled JPEG - -* Sat Oct 25 2014 Antonio Trande - 31.2.0-4 -- Removed -fexceptions flags from Fedora optflags - -* Thu Oct 23 2014 Antonio Trande - 31.2.0-3 -- Added -Wformat-security flags -- Added special link flags for ARM - -* Wed Oct 22 2014 Antonio Trande - 31.2.0-2 -- Fixed compiler flags - -* Tue Oct 21 2014 Antonio Trande - 31.2.0-1 -- Update to 31.2.0 -- Added 'configure' options -- Built against system NSS/NSPR - -* Thu Oct 16 2014 Antonio Trande - 31.1.1-1 -- Update to 31.1.1 -- New bundled files (bz#1153135) -- Static sub-package is not built anymore -- Man-page updated -- Spyblock addon included - -* Tue Aug 26 2014 Antonio Trande - 24.0-14 -- Added "Provides: webclient" -- Installed manpage file - -* Tue Aug 19 2014 Antonio Trande - 24.0-13 -- Removed system xulrunner conditional -- Ghosted all .xpi language files (handled by %%find_lang) -- Added BSD, ISC, MIT, Apache2.0 licenses - -* Sat Aug 09 2014 Antonio Trande - 24.0-12 -- Removed HTTPS-everywhere RequestPolicy extensions (patch7) - -* Thu Jul 24 2014 Antonio Trande - 24.0-11 -- Remove precompiled .egg files -- Remove bundled jar/class files -- Delete chrpaths -- Added 'Public Domain' license -- Added a patch for using system Python Virtualenv (patch6) - -* Wed Jul 16 2014 Antonio Trande - 24.0-10 -- Added freetype2 system-headers list for Fedora>=21 (patch5) - -* Fri Apr 04 2014 Antonio Trande - 24.0-9 -- Defined other bundled() Provides - -* Sat Mar 29 2014 Antonio Trande - 24.0-8 -- Use system nspr - -* Wed Mar 26 2014 Antonio Trande - 24.0-7 -- Removed much more bundled files (added related BR packages) -- Build browser and xulrunner -- Added freetype2 reference patch - -* Thu Feb 27 2014 Antonio Trande - 24.0-6 -- Sources patched to use system ogg/opus/vorbis libraries -- Build browser alone - -* Wed Feb 05 2014 Antonio Trande - 24.0-5 -- Fix some executable permissions -- Added some tricks -- Build browser and xulrunner -- Defined a conditional macro for xulrunner -- Built a static sub-package -- Added COPYING separated license files -- Added bundled() Provides - -* Mon Jan 27 2014 Antonio Trande - 24.0-4 -- Build browser alone -- Added libffi/libpng linkage from system to .mozconfig file -- Added a patch to exclude APNG support missing error for libpng -- Added libpng-devel BR - -* Tue Jan 14 2014 Antonio Trande - 24.0-3 -- Removed bundled files -- Added nspr/nss Requires - -* Wed Jan 08 2014 Antonio Trande - 24.0-2 -- Timestamp preserving for the 'install' commands -- Added a comment interpretation to the License tag -- Defined all command calls in normal mode - -* Sun Jan 05 2014 Antonio Trande - 24.0-1 -- Initial package - +%autochangelog diff --git a/mozilla-1512162.patch b/mozilla-1512162.patch index 99a0b14..02e9585 100644 --- a/mozilla-1512162.patch +++ b/mozilla-1512162.patch @@ -1,7 +1,6 @@ -diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp ---- firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200 -+++ firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200 -@@ -1092,7 +1092,7 @@ class MOZ_STACK_CLASS CallMethodHelper f +--- 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; @@ -10,7 +9,7 @@ diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68 MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath(); -@@ -1139,7 +1139,7 @@ class MOZ_STACK_CLASS CallMethodHelper f +@@ -1102,7 +1102,7 @@ ~CallMethodHelper(); @@ -19,25 +18,3 @@ diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68 // Trace implementation so we can put our CallMethodHelper in a Rooted. void trace(JSTracer* aTrc); -@@ -1157,6 +1157,10 @@ bool XPCWrappedNative::CallMethod(XPCCal - return helper.get().Call(); - } - -+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) -+// Work around a compiler bug on ppc64le (bug 1512162). -+__attribute__ ((noinline,noclone)) -+#endif - bool CallMethodHelper::Call() { - mCallContext.SetRetVal(JS::UndefinedValue()); - -@@ -1315,6 +1319,10 @@ bool CallMethodHelper::GetOutParamSource - return true; - } - -+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) -+// Work around a compiler bug on ppc64le (bug 1512162). -+__attribute__ ((noinline,noclone)) -+#endif - bool CallMethodHelper::GatherAndConvertResults() { - // now we iterate through the native params to gather and convert results - uint8_t paramCount = mMethodInfo->GetParamCount(); diff --git a/mozilla-1548475.patch b/mozilla-1548475.patch deleted file mode 100644 index b325683..0000000 --- a/mozilla-1548475.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp ---- a/dom/plugins/base/nsPluginHost.cpp -+++ b/dom/plugins/base/nsPluginHost.cpp -@@ -105,6 +105,10 @@ - # include "windows.h" - # include "winbase.h" - #endif -+#if (MOZ_WIDGET_GTK) -+# include -+# include -+#endif - - #include "npapi.h" - -@@ -358,9 +362,15 @@ - mOverrideInternalTypes = - Preferences::GetBool("plugin.override_internal_types", false); - -- mPluginsDisabled = Preferences::GetBool("plugin.disable", false); -- -- Preferences::AddStrongObserver(this, "plugin.disable"); -+ bool waylandBackend = false; -+#if MOZ_WIDGET_GTK -+ waylandBackend = !GDK_IS_X11_DISPLAY(gdk_display_get_default()); -+#endif -+ mPluginsDisabled = -+ Preferences::GetBool("plugin.disable", false) || waylandBackend; -+ if (!waylandBackend) { -+ Preferences::AddStrongObserver(this, "plugin.disable"); -+ } - - nsCOMPtr obsService = - mozilla::services::GetObserverService(); - diff --git a/mozilla-1562827.patch b/mozilla-1562827.patch deleted file mode 100644 index 497133c..0000000 --- a/mozilla-1562827.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff -up firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.cpp ---- firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 2019-09-02 15:16:15.031528276 +0200 -+++ firefox-69.0/widget/gtk/nsWindow.cpp 2019-09-02 15:16:15.037528254 +0200 -@@ -818,7 +818,6 @@ void nsWindow::SetParent(nsIWidget* aNew - if (mParent) { - mParent->RemoveChild(this); - } -- - mParent = aNewParent; - - GtkWidget* oldContainer = GetMozContainerWidget(); -@@ -830,88 +829,73 @@ void nsWindow::SetParent(nsIWidget* aNew - return; - } - -+ nsWindow* newParent = static_cast(aNewParent); -+ GdkWindow* newParentWindow = nullptr; -+ GtkWidget* newContainer = nullptr; - if (aNewParent) { - aNewParent->AddChild(this); -- ReparentNativeWidget(aNewParent); -+ newParentWindow = newParent->mGdkWindow; -+ newContainer = newParent->GetMozContainerWidget(); - } else { - // aNewParent is nullptr, but reparent to a hidden window to avoid - // destroying the GdkWindow and its descendants. - // An invisible container widget is needed to hold descendant - // GtkWidgets. -- GtkWidget* newContainer = EnsureInvisibleContainer(); -- GdkWindow* newParentWindow = gtk_widget_get_window(newContainer); -- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow, -- oldContainer); -- } --} -- --bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); } -- --void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) { -- MOZ_ASSERT(aNewParent, "null widget"); -- NS_ASSERTION(!mIsDestroyed, ""); -- NS_ASSERTION(!static_cast(aNewParent)->mIsDestroyed, ""); -- -- GtkWidget* oldContainer = GetMozContainerWidget(); -- if (!oldContainer) { -- // The GdkWindows have been destroyed so there is nothing else to -- // reparent. -- MOZ_ASSERT(gdk_window_is_destroyed(mGdkWindow), -- "live GdkWindow with no widget"); -- return; -+ newContainer = EnsureInvisibleContainer(); -+ newParentWindow = gtk_widget_get_window(newContainer); - } -- MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow), -- "destroyed GdkWindow with widget"); - -- auto* newParent = static_cast(aNewParent); -- GdkWindow* newParentWindow = newParent->mGdkWindow; -- GtkWidget* newContainer = newParent->GetMozContainerWidget(); -- GtkWindow* shell = GTK_WINDOW(mShell); -- -- if (shell && gtk_window_get_transient_for(shell)) { -- GtkWindow* topLevelParent = -- GTK_WINDOW(gtk_widget_get_toplevel(newContainer)); -- gtk_window_set_transient_for(shell, topLevelParent); -- } -- -- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow, -- oldContainer); --} -- --void nsWindow::ReparentNativeWidgetInternal(nsIWidget* aNewParent, -- GtkWidget* aNewContainer, -- GdkWindow* aNewParentWindow, -- GtkWidget* aOldContainer) { -- if (!aNewContainer) { -+ if (!newContainer) { - // The new parent GdkWindow has been destroyed. -- MOZ_ASSERT(!aNewParentWindow || gdk_window_is_destroyed(aNewParentWindow), -+ MOZ_ASSERT(!newParentWindow || gdk_window_is_destroyed(newParentWindow), - "live GdkWindow with no widget"); - Destroy(); - } else { -- if (aNewContainer != aOldContainer) { -- MOZ_ASSERT(!gdk_window_is_destroyed(aNewParentWindow), -+ if (newContainer != oldContainer) { -+ MOZ_ASSERT(!gdk_window_is_destroyed(newParentWindow), - "destroyed GdkWindow with widget"); -- SetWidgetForHierarchy(mGdkWindow, aOldContainer, aNewContainer); -+ SetWidgetForHierarchy(mGdkWindow, oldContainer, newContainer); - -- if (aOldContainer == gInvisibleContainer) { -+ if (oldContainer == gInvisibleContainer) { - CheckDestroyInvisibleContainer(); - } - } - -- if (!mIsTopLevel) { -- gdk_window_reparent(mGdkWindow, aNewParentWindow, -- DevicePixelsToGdkCoordRoundDown(mBounds.x), -- DevicePixelsToGdkCoordRoundDown(mBounds.y)); -- } -+ gdk_window_reparent(mGdkWindow, newParentWindow, -+ DevicePixelsToGdkCoordRoundDown(mBounds.x), -+ DevicePixelsToGdkCoordRoundDown(mBounds.y)); -+ mToplevelParentWindow = GTK_WINDOW(gtk_widget_get_toplevel(newContainer)); - } - -- auto* newParent = static_cast(aNewParent); - bool parentHasMappedToplevel = newParent && newParent->mHasMappedToplevel; - if (mHasMappedToplevel != parentHasMappedToplevel) { - SetHasMappedToplevel(parentHasMappedToplevel); - } - } - -+bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); } -+ -+void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) { -+ MOZ_ASSERT(aNewParent, "null widget"); -+ MOZ_ASSERT(!mIsDestroyed, ""); -+ MOZ_ASSERT(!static_cast(aNewParent)->mIsDestroyed, ""); -+ MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow), -+ "destroyed GdkWindow with widget"); -+ -+ MOZ_ASSERT( -+ !mParent, -+ "nsWindow::ReparentNativeWidget() works on toplevel windows only."); -+ -+ auto* newParent = static_cast(aNewParent); -+ GtkWindow* newParentWidget = GTK_WINDOW(newParent->GetGtkWidget()); -+ GtkWindow* shell = GTK_WINDOW(mShell); -+ -+ if (shell && gtk_window_get_transient_for(shell)) { -+ gtk_window_set_transient_for(shell, newParentWidget); -+ mToplevelParentWindow = newParentWidget; -+ } -+} -+ - void nsWindow::SetModal(bool aModal) { - LOG(("nsWindow::SetModal [%p] %d\n", (void*)this, aModal)); - if (mIsDestroyed) return; -diff -up firefox-69.0/widget/gtk/nsWindow.h.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.h diff --git a/mozilla-1564873.patch b/mozilla-1564873.patch deleted file mode 100644 index de159c1..0000000 --- a/mozilla-1564873.patch +++ /dev/null @@ -1,184 +0,0 @@ - -# HG changeset patch -# User Emilio Cobos Álvarez -# Date 1574168632 0 -# Node ID 82e4062e839a57c0dbcb08df9965883c162eb8d1 -# Parent ff37a98047d63550c77052e7dfecbda14b188e0d -Bug 1564873 - Fix straight-forward uses of mem::uninitialized in webrender. r=nical - -Differential Revision: https://phabricator.services.mozilla.com/D53359 - -diff --git a/gfx/wr/webrender/src/platform/unix/font.rs b/gfx/wr/webrender/src/platform/unix/font.rs ---- a/gfx/wr/webrender/src/platform/unix/font.rs -+++ b/gfx/wr/webrender/src/platform/unix/font.rs -@@ -530,26 +530,26 @@ impl FontContext { - // Get the bounding box for a glyph, accounting for sub-pixel positioning. - fn get_bounding_box( - &self, - slot: FT_GlyphSlot, - font: &FontInstance, - glyph: &GlyphKey, - scale: f32, - ) -> FT_BBox { -- let mut cbox: FT_BBox = unsafe { mem::uninitialized() }; -+ // Get the estimated bounding box from FT (control points). -+ let mut cbox = FT_BBox { xMin: 0, yMin: 0, xMax: 0, yMax: 0 }; - -- // Get the estimated bounding box from FT (control points). - unsafe { - FT_Outline_Get_CBox(&(*slot).outline, &mut cbox); -+ } - -- // For spaces and other non-printable characters, early out. -- if (*slot).outline.n_contours == 0 { -- return cbox; -- } -+ // For spaces and other non-printable characters, early out. -+ if unsafe { (*slot).outline.n_contours } == 0 { -+ return cbox; - } - - self.pad_bounding_box(font, &mut cbox); - - // Offset the bounding box by subpixel positioning. - // Convert to 26.6 fixed point format for FT. - let (dx, dy) = font.get_subpx_offset(glyph); - let (dx, dy) = ( -@@ -713,17 +713,17 @@ impl FontContext { - (dx / scale as f64 * 64.0 + 0.5) as FT_Pos, - -(dy / scale as f64 * 64.0 + 0.5) as FT_Pos, - ); - - // Move the outline curves to be at the origin, taking - // into account the subpixel positioning. - unsafe { - let outline = &(*slot).outline; -- let mut cbox: FT_BBox = mem::uninitialized(); -+ let mut cbox = FT_BBox { xMin: 0, yMin: 0, xMax: 0, yMax: 0 }; - FT_Outline_Get_CBox(outline, &mut cbox); - self.pad_bounding_box(font, &mut cbox); - FT_Outline_Translate( - outline, - dx - ((cbox.xMin + dx) & !63), - dy - ((cbox.yMin + dy) & !63), - ); - } -diff --git a/gfx/wr/webrender/src/prim_store/gradient.rs b/gfx/wr/webrender/src/prim_store/gradient.rs ---- a/gfx/wr/webrender/src/prim_store/gradient.rs -+++ b/gfx/wr/webrender/src/prim_store/gradient.rs -@@ -18,7 +18,7 @@ - use crate::prim_store::{PrimKeyCommonData, PrimTemplateCommonData, PrimitiveStore}; - use crate::prim_store::{NinePatchDescriptor, PointKey, SizeKey, InternablePrimitive}; - use crate::render_task::RenderTaskCacheEntryHandle; --use std::{hash, ops::{Deref, DerefMut}, mem}; -+use std::{hash, ops::{Deref, DerefMut}}; - use crate::util::pack_as_float; - - /// The maximum number of stops a gradient may have to use the fast path. -@@ -575,22 +575,32 @@ pub const GRADIENT_DATA_TABLE_BEGIN: usi - // The exclusive bound of the gradient data table - pub const GRADIENT_DATA_TABLE_END: usize = GRADIENT_DATA_LAST_STOP; - // The number of entries in the gradient data table. - pub const GRADIENT_DATA_TABLE_SIZE: usize = 128; - - // The number of entries in a gradient data: GRADIENT_DATA_TABLE_SIZE + first stop entry + last stop entry - pub const GRADIENT_DATA_SIZE: usize = GRADIENT_DATA_TABLE_SIZE + 2; - --#[derive(Debug)] -+/// An entry in a gradient data table representing a segment of the gradient -+/// color space. -+#[derive(Debug, Copy, Clone)] - #[repr(C)] --// An entry in a gradient data table representing a segment of the gradient color space. --pub struct GradientDataEntry { -- pub start_color: PremultipliedColorF, -- pub end_color: PremultipliedColorF, -+struct GradientDataEntry { -+ start_color: PremultipliedColorF, -+ end_color: PremultipliedColorF, -+} -+ -+impl GradientDataEntry { -+ fn white() -> Self { -+ Self { -+ start_color: PremultipliedColorF::WHITE, -+ end_color: PremultipliedColorF::WHITE, -+ } -+ } - } - - // TODO(gw): Tidy this up to be a free function / module? - struct GradientGpuBlockBuilder {} - - impl GradientGpuBlockBuilder { - /// Generate a color ramp filling the indices in [start_idx, end_idx) and interpolating - /// from start_color to end_color. -@@ -657,17 +667,17 @@ impl GradientGpuBlockBuilder { - // within the segment of the gradient space represented by that entry. To lookup a gradient result, - // first the entry index is calculated to determine which two colors to interpolate between, then - // the offset within that entry bucket is used to interpolate between the two colors in that entry. - // This layout preserves hard stops, as the end color for a given entry can differ from the start - // color for the following entry, despite them being adjacent. Colors are stored within in BGRA8 - // format for texture upload. This table requires the gradient color stops to be normalized to the - // range [0, 1]. The first and last entries hold the first and last color stop colors respectively, - // while the entries in between hold the interpolated color stop values for the range [0, 1]. -- let mut entries: [GradientDataEntry; GRADIENT_DATA_SIZE] = unsafe { mem::uninitialized() }; -+ let mut entries = [GradientDataEntry::white(); GRADIENT_DATA_SIZE]; - - if reverse_stops { - // Fill in the first entry (for reversed stops) with the first color stop - GradientGpuBlockBuilder::fill_colors( - GRADIENT_DATA_LAST_STOP, - GRADIENT_DATA_LAST_STOP + 1, - &cur_color, - &cur_color, -@@ -692,23 +702,16 @@ impl GradientGpuBlockBuilder { - ); - cur_idx = next_idx; - } - - cur_color = next_color; - } - if cur_idx != GRADIENT_DATA_TABLE_BEGIN { - error!("Gradient stops abruptly at {}, auto-completing to white", cur_idx); -- GradientGpuBlockBuilder::fill_colors( -- GRADIENT_DATA_TABLE_BEGIN, -- cur_idx, -- &PremultipliedColorF::WHITE, -- &cur_color, -- &mut entries, -- ); - } - - // Fill in the last entry (for reversed stops) with the last color stop - GradientGpuBlockBuilder::fill_colors( - GRADIENT_DATA_FIRST_STOP, - GRADIENT_DATA_FIRST_STOP + 1, - &cur_color, - &cur_color, -@@ -742,23 +745,16 @@ impl GradientGpuBlockBuilder { - ); - cur_idx = next_idx; - } - - cur_color = next_color; - } - if cur_idx != GRADIENT_DATA_TABLE_END { - error!("Gradient stops abruptly at {}, auto-completing to white", cur_idx); -- GradientGpuBlockBuilder::fill_colors( -- cur_idx, -- GRADIENT_DATA_TABLE_END, -- &PremultipliedColorF::WHITE, -- &cur_color, -- &mut entries, -- ); - } - - // Fill in the last entry with the last color stop - GradientGpuBlockBuilder::fill_colors( - GRADIENT_DATA_LAST_STOP, - GRADIENT_DATA_LAST_STOP + 1, - &cur_color, - &cur_color, - - diff --git a/mozilla-1566876-webrtc-ind.patch b/mozilla-1566876-webrtc-ind.patch deleted file mode 100644 index 598f58f..0000000 --- a/mozilla-1566876-webrtc-ind.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -3504,12 +3504,6 @@ - mBounds = aRect; - ConstrainSize(&mBounds.width, &mBounds.height); - -- // eWindowType_child is not supported on Wayland. Just switch to toplevel -- // as a workaround. -- if (!mIsX11Display && mWindowType == eWindowType_child) { -- mWindowType = eWindowType_toplevel; -- } -- - // figure out our parent window - GtkWidget* parentMozContainer = nullptr; - GtkContainer* parentGtkContainer = nullptr; -@@ -3543,6 +3537,18 @@ - topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer)); - } - -+ if (!mIsX11Display) { -+ if (mWindowType == eWindowType_child) { -+ // eWindowType_child is not supported on Wayland. Just switch to toplevel -+ // as a workaround. -+ mWindowType = eWindowType_toplevel; -+ } else if (mWindowType == eWindowType_popup && !topLevelParent) { -+ // Workaround for Wayland where the popup windows always need to have -+ // parent window. For example webrtc ui is a popup window without parent. -+ mWindowType = eWindowType_toplevel; -+ } -+ } -+ - // ok, create our windows - switch (mWindowType) { - case eWindowType_dialog: - diff --git a/mozilla-1567434-1.patch b/mozilla-1567434-1.patch deleted file mode 100644 index 631645b..0000000 --- a/mozilla-1567434-1.patch +++ /dev/null @@ -1,205 +0,0 @@ -diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h ---- a/widget/gtk/nsWindow.h -+++ b/widget/gtk/nsWindow.h -@@ -487,6 +487,7 @@ - GtkWidget* mShell; - MozContainer* mContainer; - GdkWindow* mGdkWindow; -+ GtkWindow* mToplevelParentWindow; - bool mWindowShouldStartDragging = false; - PlatformCompositorWidgetDelegate* mCompositorWidgetDelegate; - -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -401,6 +401,7 @@ - mContainer = nullptr; - mGdkWindow = nullptr; - mShell = nullptr; -+ mToplevelParentWindow = nullptr; - mCompositorWidgetDelegate = nullptr; - mHasMappedToplevel = false; - mIsFullyObscured = false; -@@ -1144,6 +1145,8 @@ - nsWindow* window = - static_cast(gVisibleWaylandPopupWindows->data); - if (window->mPopupType != ePopupTypeTooltip) break; -+ LOG(("nsWindow::HideWaylandTooltips [%p] hidding tooltip [%p].\n", -+ (void*)this, window)); - window->HideWaylandWindow(); - gVisibleWaylandPopupWindows = g_list_delete_link( - gVisibleWaylandPopupWindows, gVisibleWaylandPopupWindows); -@@ -1172,9 +1175,12 @@ - // before we open another one on that level. It means that every open - // popup needs to have an unique parent. - GtkWidget* nsWindow::ConfigureWaylandPopupWindows() { -+ LOG(("nsWindow::ConfigureWaylandPopupWindows [%p]\n", (void*)this)); -+ - // Check if we're already configured. - if (gVisibleWaylandPopupWindows && - g_list_find(gVisibleWaylandPopupWindows, this)) { -+ LOG(("...[%p] is already configured.\n", (void*)this)); - return GTK_WIDGET(gtk_window_get_transient_for(GTK_WINDOW(mShell))); - } - -@@ -1182,9 +1188,15 @@ - // as it's short lived temporary window. - HideWaylandTooltips(); - -- GtkWindow* parentWidget = nullptr; -+ GtkWindow* parentWidget = mToplevelParentWindow; - if (gVisibleWaylandPopupWindows) { -+ LOG(("... there's visible active popup [%p]\n", -+ gVisibleWaylandPopupWindows->data)); -+ - if (mPopupType == ePopupTypeTooltip) { -+ LOG(("...[%p] is tooltip, parent [%p]\n", (void*)this, -+ gVisibleWaylandPopupWindows->data)); -+ - // Attach tooltip window to the latest popup window - // to have both visible. - nsWindow* window = -@@ -1200,12 +1212,19 @@ - // nsWindow::Create()) or we're toplevel popup without parent. - // In both cases just use parent which was passed to nsWindow::Create(). - if (!menuPopupFrame) { -- return GTK_WIDGET(gtk_window_get_transient_for(GTK_WINDOW(mShell))); -+ LOG(("...[%p] menuPopupFrame = null, using given parent widget [%p]\n", -+ (void*)this, parentWidget)); -+ return GTK_WIDGET(parentWidget); - } - - nsWindow* parentWindow = - static_cast(menuPopupFrame->GetParentMenuWidget()); -+ LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow)); -+ - if (!parentWindow) { -+ LOG(("...[%p] using active/visible popups as a parent [%p]\n", -+ (void*)this, gVisibleWaylandPopupWindows->data)); -+ - // We're toplevel popup menu attached to another menu. Just use our - // latest popup as a parent. - parentWindow = -@@ -1234,10 +1253,10 @@ - } - } - -+ MOZ_ASSERT(parentWidget, "Missing parent widget for wayland popup!"); - if (parentWidget) { -+ LOG(("...[%p] set parent widget [%p]\n", (void*)this, parentWidget)); - gtk_window_set_transient_for(GTK_WINDOW(mShell), parentWidget); -- } else { -- parentWidget = gtk_window_get_transient_for(GTK_WINDOW(mShell)); - } - gVisibleWaylandPopupWindows = - g_list_prepend(gVisibleWaylandPopupWindows, this); -@@ -1248,9 +1267,11 @@ - static void NativeMoveResizeWaylandPopupCallback( - GdkWindow* window, const GdkRectangle* flipped_rect, - const GdkRectangle* final_rect, gboolean flipped_x, gboolean flipped_y, -- void* unused) { -- LOG(("%s flipped %d %d\n", __FUNCTION__, flipped_rect->x, flipped_rect->y)); -- LOG(("%s final %d %d\n", __FUNCTION__, final_rect->x, final_rect->y)); -+ void* aWindow) { -+ LOG(("%s [%p] flipped %d %d\n", __FUNCTION__, aWindow, flipped_rect->x, -+ flipped_rect->y)); -+ LOG(("%s [%p] final %d %d\n", __FUNCTION__, aWindow, final_rect->x, -+ final_rect->y)); - } - #endif - -@@ -1264,6 +1285,8 @@ - // Compositor may be confused by windows with width/height = 0 - // and positioning such windows leads to Bug 1555866. - if (!AreBoundsSane()) { -+ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] Bounds are not sane\n", -+ (void*)this)); - return; - } - -@@ -1277,6 +1300,8 @@ - // - gdk_window_move_to_rect() is not available - // - the widget doesn't have a valid GdkWindow - if (!sGdkWindowMoveToRect || !gdkWindow) { -+ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] use gtk_window_move()\n", -+ (void*)this)); - gtk_window_move(GTK_WINDOW(mShell), aPosition->x, aPosition->y); - return; - } -@@ -1302,8 +1327,12 @@ - } - LOG((" request result %d %d\n", rect.x, rect.y)); - #ifdef DEBUG -- g_signal_connect(gdkWindow, "moved-to-rect", -- G_CALLBACK(NativeMoveResizeWaylandPopupCallback), this); -+ if (!g_signal_handler_find( -+ gdkWindow, G_SIGNAL_MATCH_FUNC, 0, 0, nullptr, -+ FuncToGpointer(NativeMoveResizeWaylandPopupCallback), this)) { -+ g_signal_connect(gdkWindow, "moved-to-rect", -+ G_CALLBACK(NativeMoveResizeWaylandPopupCallback), this); -+ } - #endif - - GdkGravity rectAnchor = GDK_GRAVITY_NORTH_WEST; -@@ -3508,7 +3537,6 @@ - GtkWidget* parentMozContainer = nullptr; - GtkContainer* parentGtkContainer = nullptr; - GdkWindow* parentGdkWindow = nullptr; -- GtkWindow* topLevelParent = nullptr; - nsWindow* parentnsWindow = nullptr; - GtkWidget* eventWidget = nullptr; - bool drawToContainer = false; -@@ -3534,7 +3562,8 @@ - - // get the toplevel window just in case someone needs to use it - // for setting transients or whatever. -- topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer)); -+ mToplevelParentWindow = -+ GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer)); - } - - if (!mIsX11Display) { -@@ -3542,7 +3571,7 @@ - // eWindowType_child is not supported on Wayland. Just switch to toplevel - // as a workaround. - mWindowType = eWindowType_toplevel; -- } else if (mWindowType == eWindowType_popup && !topLevelParent) { -+ } else if (mWindowType == eWindowType_popup && !mToplevelParentWindow) { - // Workaround for Wayland where the popup windows always need to have - // parent window. For example webrtc ui is a popup window without parent. - mWindowType = eWindowType_toplevel; -@@ -3677,7 +3706,7 @@ - gdk_get_program_class()); - gtk_window_set_type_hint(GTK_WINDOW(mShell), - GDK_WINDOW_TYPE_HINT_DIALOG); -- gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent); -+ gtk_window_set_transient_for(GTK_WINDOW(mShell), mToplevelParentWindow); - } else if (mWindowType == eWindowType_popup) { - gtk_window_set_wmclass(GTK_WINDOW(mShell), "Popup", - gdk_get_program_class()); -@@ -3730,10 +3759,11 @@ - } - gtk_window_set_type_hint(GTK_WINDOW(mShell), gtkTypeHint); - -- if (topLevelParent) { -+ if (mToplevelParentWindow) { - LOG(("nsWindow::Create [%p] Set popup parent %p\n", (void*)this, -- topLevelParent)); -- gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent); -+ mToplevelParentWindow)); -+ gtk_window_set_transient_for(GTK_WINDOW(mShell), -+ mToplevelParentWindow); - } - - // We need realized mShell at NativeMove(). -@@ -4011,7 +4041,8 @@ - #endif - } - -- LOG(("nsWindow [%p]\n", (void*)this)); -+ LOG(("nsWindow [%p] %s\n", (void*)this, -+ mWindowType == eWindowType_toplevel ? "Toplevel" : "Popup")); - if (mShell) { - LOG(("\tmShell %p mContainer %p mGdkWindow %p 0x%lx\n", mShell, mContainer, - mGdkWindow, mIsX11Display ? gdk_x11_window_get_xid(mGdkWindow) : 0)); - diff --git a/mozilla-1567434-2.patch b/mozilla-1567434-2.patch deleted file mode 100644 index 966118a..0000000 --- a/mozilla-1567434-2.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -1208,6 +1208,7 @@ - if (frame) { - menuPopupFrame = do_QueryFrame(frame); - } -+ - // The popup is not fully created yet (we're called from - // nsWindow::Create()) or we're toplevel popup without parent. - // In both cases just use parent which was passed to nsWindow::Create(). -@@ -1217,10 +1218,22 @@ - return GTK_WIDGET(parentWidget); - } - -+ LOG(("...[%p] is %s\n", (void*)this, -+ menuPopupFrame->IsContextMenu() ? "context menu" : "popup")); -+ - nsWindow* parentWindow = - static_cast(menuPopupFrame->GetParentMenuWidget()); - LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow)); - -+ // If the popup is a regular menu but GetParentMenuWidget() returns -+ // nullptr which means it's connected non-menu parent -+ // (bookmark toolbar for instance). -+ // In this case use a parent given at nsWindow::Create(). -+ if (!parentWindow && !menuPopupFrame->IsContextMenu()) { -+ parentWindow = -+ get_window_for_gtk_widget(GTK_WIDGET(mToplevelParentWindow)); -+ } -+ - if (!parentWindow) { - LOG(("...[%p] using active/visible popups as a parent [%p]\n", - (void*)this, gVisibleWaylandPopupWindows->data)); - diff --git a/mozilla-1568569.patch b/mozilla-1568569.patch deleted file mode 100644 index ab6225a..0000000 --- a/mozilla-1568569.patch +++ /dev/null @@ -1,73 +0,0 @@ -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -3238,16 +3238,18 @@ void nsWindow::OnWindowStateEvent(GtkWid - // We don't care about anything but changes in the maximized/icon/fullscreen - // states - if ((aEvent->changed_mask & - (GDK_WINDOW_STATE_ICONIFIED | GDK_WINDOW_STATE_MAXIMIZED | - GDK_WINDOW_STATE_FULLSCREEN)) == 0) { - return; - } - -+ nsSizeMode lastSizeState = mSizeState; -+ - if (aEvent->new_window_state & GDK_WINDOW_STATE_ICONIFIED) { - LOG(("\tIconified\n")); - mSizeState = nsSizeMode_Minimized; - #ifdef ACCESSIBILITY - DispatchMinimizeEventAccessible(); - #endif // ACCESSIBILITY - } else if (aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) { - LOG(("\tFullscreen\n")); -@@ -3261,16 +3263,28 @@ void nsWindow::OnWindowStateEvent(GtkWid - } else { - LOG(("\tNormal\n")); - mSizeState = nsSizeMode_Normal; - #ifdef ACCESSIBILITY - DispatchRestoreEventAccessible(); - #endif // ACCESSIBILITY - } - -+ // Fullscreen video playback may generate bogus alpha values which blends -+ // with desktop background in fullscreen video playback (Bug 1568569). -+ // As a workaround enable to draw mShell background in fullscreen mode -+ // if we draw to mContainer. -+ if (gtk_widget_get_has_window(GTK_WIDGET(mContainer))) { -+ if (mSizeState == nsSizeMode_Fullscreen) { -+ gtk_widget_set_app_paintable(mShell, FALSE); -+ } else if (lastSizeState == nsSizeMode_Fullscreen) { -+ gtk_widget_set_app_paintable(mShell, TRUE); -+ } -+ } -+ - if (mWidgetListener) { - mWidgetListener->SizeModeChanged(mSizeState); - if (aEvent->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) { - mWidgetListener->FullscreenChanged(aEvent->new_window_state & - GDK_WINDOW_STATE_FULLSCREEN); - } - } - -@@ -3787,16 +3801,21 @@ nsresult nsWindow::Create(nsIWidget* aPa - eventWidget = (drawToContainer) ? container : mShell; - - // Prevent GtkWindow from painting a background to avoid flickering. - gtk_widget_set_app_paintable(eventWidget, TRUE); - - gtk_widget_add_events(eventWidget, kEvents); - if (drawToContainer) { - gtk_widget_add_events(mShell, GDK_PROPERTY_CHANGE_MASK); -+ // Don't paint mShell background when we draw to mContainer. -+ // Otherwise we see mShell backround to shine through -+ // mContainer (Bug 1507608). -+ // But it may also lead to various bugs where mContainer has unintended -+ // transparent parts which blend with underlying desktop (Bug 1516224). - gtk_widget_set_app_paintable(mShell, TRUE); - } - if (mTransparencyBitmapForTitlebar) { - moz_container_force_default_visual(mContainer); - } - - // If we draw to mContainer window then configure it now because - // gtk_container_add() realizes the child widget. diff --git a/mozilla-1573813.patch b/mozilla-1573813.patch deleted file mode 100644 index e9fca07..0000000 --- a/mozilla-1573813.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp ---- a/widget/gtk/nsWindow.cpp -+++ b/widget/gtk/nsWindow.cpp -@@ -6577,11 +6577,22 @@ - } - - gint nsWindow::GdkScaleFactor() { -+ // For popup windows with parent window we need to get scale factor of the -+ // parent window. Otherwise the scale factor of the popup is not updated -+ // during it's hidden. -+ GdkWindow* scaledGdkWindow = mGdkWindow; -+ if (mToplevelParentWindow) { -+ scaledGdkWindow = gtk_widget_get_window(GTK_WIDGET(mToplevelParentWindow)); -+ // Fallback for windows which parent has been unrealized. -+ if (!scaledGdkWindow) { -+ scaledGdkWindow = mGdkWindow; -+ } -+ } - // Available as of GTK 3.10+ - static auto sGdkWindowGetScaleFactorPtr = - (gint(*)(GdkWindow*))dlsym(RTLD_DEFAULT, "gdk_window_get_scale_factor"); -- if (sGdkWindowGetScaleFactorPtr && mGdkWindow) -- return (*sGdkWindowGetScaleFactorPtr)(mGdkWindow); -+ if (sGdkWindowGetScaleFactorPtr && scaledGdkWindow) -+ return (*sGdkWindowGetScaleFactorPtr)(scaledGdkWindow); - return ScreenHelperGTK::GetGTKMonitorScaleFactor(); - } - - diff --git a/mozilla-build-arm.patch b/mozilla-build-arm.patch deleted file mode 100644 index e390a28..0000000 --- a/mozilla-build-arm.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 --git a/rhbz-1173156.patch b/rhbz-1173156.patch deleted file mode 100644 index 9750861..0000000 --- a/rhbz-1173156.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up a/extensions/auth/nsAuthSambaNTLM.cpp.old b/extensions/auth/nsAuthSambaNTLM.cpp ---- a/extensions/auth/nsAuthSambaNTLM.cpp.old 2014-11-25 12:23:22.000000000 +0100 -+++ b/extensions/auth/nsAuthSambaNTLM.cpp 2014-12-23 15:26:36.606674625 +0100 -@@ -161,7 +161,7 @@ - const char* username = PR_GetEnv("USER"); - if (!username) return NS_ERROR_FAILURE; - -- const char* const args[] = {"ntlm_auth", -+ const char* const args[] = {"/usr/bin/ntlm_auth", - "--helper-protocol", - "ntlmssp-client-1", - "--use-cached-creds", diff --git a/rhbz-1219542-s390-build.patch b/rhbz-1219542-s390-build.patch deleted file mode 100644 index f94e43a..0000000 --- a/rhbz-1219542-s390-build.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 firefox-55.0/js/src/old-configure.in ---- firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 2017-07-31 18:20:48.000000000 +0200 -+++ firefox-55.0/js/src/old-configure.in 2017-08-02 14:31:32.190243669 +0200 -@@ -541,7 +541,7 @@ case "$host" in - - *-linux*|*-kfreebsd*-gnu|*-gnu*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" -- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" -+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}" - ;; - - *) -@@ -617,8 +617,8 @@ case "$target" in - - *-*linux*) - if test "$GNU_CC" -o "$GNU_CXX"; then -- MOZ_PGO_OPTIMIZE_FLAGS="-O3" -- MOZ_OPTIMIZE_FLAGS="-O3" -+ MOZ_PGO_OPTIMIZE_FLAGS="-O1" -+ MOZ_OPTIMIZE_FLAGS="-O1" - if test -z "$CLANG_CC"; then - MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" - fi diff --git a/rhbz-1354671.patch b/rhbz-1354671.patch index 1f867eb..9770fa6 100644 --- a/rhbz-1354671.patch +++ b/rhbz-1354671.patch @@ -1,12 +1,11 @@ -diff -up firefox-65.0/layout/base/PresShell.h.1354671 firefox-65.0/layout/base/PresShell.h ---- firefox-65.0/layout/base/PresShell.h.1354671 2019-01-29 11:50:08.516649643 +0100 -+++ firefox-65.0/layout/base/PresShell.h 2019-01-29 11:51:48.930258629 +0100 -@@ -205,7 +205,7 @@ class nsIPresShell : public nsStubDocume +--- 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. */ - 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); - return result; + #define FRAME_ID(classname, ...) \ + static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \ + size_t(eArenaObjectID_##classname), \ diff --git a/run-wayland-compositor b/run-wayland-compositor new file mode 100755 index 0000000..23ead19 --- /dev/null +++ b/run-wayland-compositor @@ -0,0 +1,60 @@ +#!/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." + + diff --git a/sources b/sources index a8a1d25..889ba13 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -SHA512 (cbindgen-vendor.tar.xz) = 562433358bcce81852e5e013068a0961be61785917094b3c0c93df34bc4a060eea6e89d86951f76e9e3d9644a56cf756f7278c8fa85b8a4a8b8c8b58c16a8b7c -SHA512 (icecat-68.9.0-langpacks.tar.gz) = d3f1acf7505193e587338ffdf3d542dad9b04289d3a87de16e5a36a77624d5ad9d4a3366166fdf2e58066b0bf3bb86adbd66f241f3080a5a395960da806a2f94 -SHA512 (icecat-68.9.0-rh2.tar.bz2) = 080e9765850ece232f1888a2c59f8a65ffeeeea7aeeb9b4fdc6dd6c88bdc3dda2fd0b5585b61c5cbb57d860b85ede59f3c2c6d75be80cb58aaf0b0d501603af5 +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-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c SHA512 (icecat.png) = a3cec16cb15a27c3c91b53e2c534e78b07911011ff1331e450c0baf8e13b76da7cea2a90e5d75191fa88cfbfd40a0a7f3e553e92b64d0043dadd5ad5edfdf81c