diff --git a/.firefox.metadata b/.firefox.metadata index 795b7e6..3129be2 100644 --- a/.firefox.metadata +++ b/.firefox.metadata @@ -1,6 +1,7 @@ -511960dd78451a06c9df76509635aeec05b2051a SOURCES/Python-2.7.8.tgz -467bdb846d67c01aed9e521fe0ef280065a50c3c SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm -38571ff21e6f93c24b4fca0dd87196fb53ede504 SOURCES/firefox-52.8.0esr.source.tar.xz -44444cc6217a7bbd4deedeba9f0a51349b1eb498 SOURCES/firefox-langpacks-52.8.0esr-20180509.tar.xz -e5ba84786af5d0e0e23b1a9112c76821ef23306c SOURCES/gcc48-4.8.2-16.el5.src.rpm +18a8f30a0356c751b8d0ea6f76e764cab13ee046 SOURCES/Python-2.7.13.tar.xz +e7b9c954fdba527404b9b371f25890ec03d6a0ad SOURCES/firefox-60.1.0esr.source.tar.xz +188ce061988d69a7ffd629a19a3780eb62b6a40a SOURCES/firefox-langpacks-60.1.0esr-20180622.tar.xz +6724218efbb1f3fa14541cb2f255970b98446a45 SOURCES/firefox-symbolic.svg +a7a6297b01578ad0f45c966816c46ce3f97e286b SOURCES/gtk3-private-3.22.26-1.el6.src.rpm +e188ab1a444697bc649e223c28389d82ca94c472 SOURCES/libffi-3.0.13-18.el7_3.src.rpm 77fd30f7ebc12a629a31c1e252cec06af55a71fe SOURCES/yasm-1.2.0-3.el5.src.rpm diff --git a/.gitignore b/.gitignore index 54d7176..1122ae7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ -SOURCES/Python-2.7.8.tgz -SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm -SOURCES/firefox-52.8.0esr.source.tar.xz -SOURCES/firefox-langpacks-52.8.0esr-20180509.tar.xz -SOURCES/gcc48-4.8.2-16.el5.src.rpm +SOURCES/Python-2.7.13.tar.xz +SOURCES/firefox-60.1.0esr.source.tar.xz +SOURCES/firefox-langpacks-60.1.0esr-20180622.tar.xz +SOURCES/firefox-symbolic.svg +SOURCES/gtk3-private-3.22.26-1.el6.src.rpm +SOURCES/libffi-3.0.13-18.el7_3.src.rpm SOURCES/yasm-1.2.0-3.el5.src.rpm diff --git a/README.debrand b/README.debrand deleted file mode 100644 index 01c46d2..0000000 --- a/README.debrand +++ /dev/null @@ -1,2 +0,0 @@ -Warning: This package was configured for automatic debranding, but the changes -failed to apply. diff --git a/SOURCES/build-aarch64-skia.patch b/SOURCES/build-aarch64-skia.patch new file mode 100644 index 0000000..1ecad24 --- /dev/null +++ b/SOURCES/build-aarch64-skia.patch @@ -0,0 +1,12 @@ +diff -up firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp +--- firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia 2018-06-20 09:19:11.411939714 +0200 ++++ firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp 2018-06-20 09:23:36.831919894 +0200 +@@ -686,7 +686,7 @@ SI F from_half(U16 h) { + } + + SI U16 to_half(F f) { +-#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. ++#if 0 && defined(__aarch64__) && !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 --git a/SOURCES/build-big-endian.patch b/SOURCES/build-big-endian.patch new file mode 100644 index 0000000..e8ec439 --- /dev/null +++ b/SOURCES/build-big-endian.patch @@ -0,0 +1,84 @@ +diff -up firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h +--- firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian 2018-04-09 22:50:48.000000000 +0200 ++++ firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h 2018-04-18 11:51:38.748680174 +0200 +@@ -54,18 +54,19 @@ static inline U8CPU SkUnitScalarClampToB + * + * Here we enforce this constraint. + */ +- ++/* + #ifdef SK_CPU_BENDIAN + #define SK_RGBA_R32_SHIFT 24 + #define SK_RGBA_G32_SHIFT 16 + #define SK_RGBA_B32_SHIFT 8 + #define SK_RGBA_A32_SHIFT 0 + #else ++*/ + #define SK_RGBA_R32_SHIFT 0 + #define SK_RGBA_G32_SHIFT 8 + #define SK_RGBA_B32_SHIFT 16 + #define SK_RGBA_A32_SHIFT 24 +-#endif ++/*#endif*/ + + #define SkGetPackedA32(packed) ((uint32_t)((packed) << (24 - SK_A32_SHIFT)) >> 24) + #define SkGetPackedR32(packed) ((uint32_t)((packed) << (24 - SK_R32_SHIFT)) >> 24) +diff -up firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h +--- firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian 2018-04-09 22:50:48.000000000 +0200 ++++ firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h 2018-04-18 11:51:38.748680174 +0200 +@@ -84,7 +84,8 @@ enum SkColorType { + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + kN32_SkColorType = kRGBA_8888_SkColorType, + #else +- #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order" ++ //#error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order" ++ kN32_SkColorType = kBGRA_8888_SkColorType + #endif + }; + +diff -up firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h +--- firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian 2018-04-09 22:50:48.000000000 +0200 ++++ firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h 2018-04-18 11:51:38.748680174 +0200 +@@ -344,15 +344,13 @@ enum GrPixelConfig { + static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; + + // Aliases for pixel configs that match skia's byte order. +-#ifndef SK_CPU_LENDIAN +- #error "Skia gpu currently assumes little endian" +-#endif + #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; + #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) + static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig; + #else +- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." ++ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig; ++ static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig; + #endif + + /** +diff -up firefox-60.0/gfx/skia/skia/src/core/SkColorData.h.big-endian firefox-60.0/gfx/skia/skia/src/core/SkColorData.h +--- firefox-60.0/gfx/skia/skia/src/core/SkColorData.h.big-endian 2018-04-18 13:42:06.980476156 +0200 ++++ firefox-60.0/gfx/skia/skia/src/core/SkColorData.h 2018-04-18 13:42:50.493520552 +0200 +@@ -31,18 +31,19 @@ + * + * Here we enforce this constraint. + */ +- ++/* + #ifdef SK_CPU_BENDIAN + #define SK_BGRA_B32_SHIFT 24 + #define SK_BGRA_G32_SHIFT 16 + #define SK_BGRA_R32_SHIFT 8 + #define SK_BGRA_A32_SHIFT 0 + #else ++*/ + #define SK_BGRA_B32_SHIFT 0 + #define SK_BGRA_G32_SHIFT 8 + #define SK_BGRA_R32_SHIFT 16 + #define SK_BGRA_A32_SHIFT 24 +-#endif ++//#endif + + #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) + #error "can't define PMCOLOR to be RGBA and BGRA" diff --git a/SOURCES/build-debug-qcms.patch b/SOURCES/build-debug-qcms.patch new file mode 100644 index 0000000..a65223a --- /dev/null +++ b/SOURCES/build-debug-qcms.patch @@ -0,0 +1,12 @@ +diff -up firefox-60.0/gfx/qcms/transform-altivec.c.debug firefox-60.0/gfx/qcms/transform-altivec.c +--- firefox-60.0/gfx/qcms/transform-altivec.c.debug 2018-05-15 09:26:43.603043100 +0200 ++++ firefox-60.0/gfx/qcms/transform-altivec.c 2018-05-15 09:28:57.302385632 +0200 +@@ -30,7 +30,7 @@ + static const ALIGN float floatScaleX4 = FLOATSCALE; + static const ALIGN float clampMaxValueX4 = CLAMPMAXVAL; + +-inline vector float load_aligned_float(float *dataPtr) ++static vector float load_aligned_float(float *dataPtr) + { + vector float data = vec_lde(0, dataPtr); + vector unsigned char moveToStart = vec_lvsl(0, dataPtr); diff --git a/SOURCES/build-gdk-version.patch b/SOURCES/build-gdk-version.patch new file mode 100644 index 0000000..a25b255 --- /dev/null +++ b/SOURCES/build-gdk-version.patch @@ -0,0 +1,19 @@ +diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in.gdk-version mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in +--- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in.gdk-version 2018-03-10 03:54:17.000000000 +0100 ++++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in 2018-03-28 13:11:06.294873487 +0200 +@@ -61,6 +61,7 @@ CAIRO_VERSION=1.10 + GTK2_VERSION=2.18.0 + GTK3_VERSION=3.4.0 + GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4 ++GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4 + WINDRES_VERSION=2.14.90 + W32API_VERSION=3.14 + GCONF_VERSION=1.2.1 +@@ -2173,6 +2174,7 @@ if test "$COMPILE_ENVIRONMENT"; then + dnl GDK_VERSION_MIN_REQUIRED is not set here as GDK3 deprecated warnings + dnl are suppressed by widget/gtk/compat-gtk3/gdk/gdkversionmacros.h. + AC_DEFINE_UNQUOTED(GDK_VERSION_MAX_ALLOWED,$GDK_VERSION_MAX_ALLOWED) ++ AC_DEFINE_UNQUOTED(GDK_VERSION_MIN_REQUIRED,$GDK_VERSION_MIN_REQUIRED) + GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 + fi + if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then diff --git a/SOURCES/build-icu-big-endian.patch b/SOURCES/build-icu-big-endian.patch index 68fbea1..c26a4d4 100644 --- a/SOURCES/build-icu-big-endian.patch +++ b/SOURCES/build-icu-big-endian.patch @@ -1,6 +1,6 @@ -diff -up mozilla-aurora/build/autoconf/icu.m4.icu-endian mozilla-aurora/build/autoconf/icu.m4 ---- mozilla-aurora/build/autoconf/icu.m4.icu-endian 2016-12-09 09:11:01.227317790 +0100 -+++ mozilla-aurora/build/autoconf/icu.m4 2016-12-09 09:18:40.608712247 +0100 +diff -up firefox-60.0/build/autoconf/icu.m4.icu firefox-60.0/build/autoconf/icu.m4 +--- firefox-60.0/build/autoconf/icu.m4.icu 2018-04-17 15:11:54.100644119 +0200 ++++ firefox-60.0/build/autoconf/icu.m4 2018-04-17 15:12:50.740686636 +0200 @@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then # TODO: the l is actually endian-dependent # We could make this set as 'l' or 'b' for little or big, respectively, @@ -8,5 +8,5 @@ diff -up mozilla-aurora/build/autoconf/icu.m4.icu-endian mozilla-aurora/build/au - ICU_DATA_FILE="icudt${version}l.dat" + ICU_DATA_FILE="icudt${version}b.dat" - dnl We won't build ICU data as a separate file when building - dnl JS standalone so that embedders don't have to deal with it. + MOZ_ICU_DATA_ARCHIVE= + fi diff --git a/SOURCES/build-jit-atomic-always-lucky.patch b/SOURCES/build-jit-atomic-always-lucky.patch new file mode 100644 index 0000000..31bc5ec --- /dev/null +++ b/SOURCES/build-jit-atomic-always-lucky.patch @@ -0,0 +1,30 @@ +diff -up firefox-57.0b5/js/src/jit/AtomicOperations.h.jit-atomic-lucky firefox-57.0b5/js/src/jit/AtomicOperations.h +--- firefox-57.0b5/js/src/jit/AtomicOperations.h.jit-atomic-lucky 2017-10-06 12:34:02.338973607 +0200 ++++ firefox-57.0b5/js/src/jit/AtomicOperations.h 2017-10-06 12:38:24.632622215 +0200 +@@ -415,7 +415,7 @@ AtomicOperations::isLockfreeJS(int32_t s + #elif defined(__s390__) || defined(__s390x__) + # include "jit/none/AtomicOperations-feeling-lucky.h" + #else +-# error "No AtomicOperations support provided for this platform" ++# include "jit/none/AtomicOperations-feeling-lucky.h" + #endif + + #endif // jit_AtomicOperations_h +diff -up firefox-57.0b5/js/src/jit/none/AtomicOperations-feeling-lucky.h.jit-atomic-lucky firefox-57.0b5/js/src/jit/none/AtomicOperations-feeling-lucky.h +--- firefox-57.0b5/js/src/jit/none/AtomicOperations-feeling-lucky.h.jit-atomic-lucky 2017-09-19 06:18:28.000000000 +0200 ++++ firefox-57.0b5/js/src/jit/none/AtomicOperations-feeling-lucky.h 2017-10-06 12:34:02.338973607 +0200 +@@ -79,6 +79,14 @@ + # define GNUC_COMPATIBLE + #endif + ++#ifdef __s390__ ++# define GNUC_COMPATIBLE ++#endif ++ ++#ifdef __s390x__ ++# define GNUC_COMPATIBLE ++#endif ++ + // The default implementation tactic for gcc/clang is to use the newer + // __atomic intrinsics added for use in C++11 . Where that + // isn't available, we use GCC's older __sync functions instead. diff --git a/SOURCES/build-missing-getrandom.patch b/SOURCES/build-missing-getrandom.patch deleted file mode 100644 index 3a4adde..0000000 --- a/SOURCES/build-missing-getrandom.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up firefox-52.0b8/js/src/jsmath.cpp.missing-getrandom firefox-52.0b8/js/src/jsmath.cpp ---- firefox-52.0b8/js/src/jsmath.cpp.missing-getrandom 2017-02-22 08:09:21.764353407 +0100 -+++ firefox-52.0b8/js/src/jsmath.cpp 2017-02-22 08:10:36.939330775 +0100 -@@ -78,7 +78,7 @@ - static_assert(GETRANDOM_NR == SYS_getrandom, - "GETRANDOM_NR should match the actual SYS_getrandom value"); - # endif --# else -+# elif defined(GETRANDOM_NR) - # define SYS_getrandom GETRANDOM_NR - # endif - -@@ -721,7 +721,7 @@ js::GenerateRandomSeed() - seed = (static_cast(arc4random()) << 32) | arc4random(); - #elif defined(XP_UNIX) - bool done = false; --# if defined(__linux__) -+# if defined(__linux__) && defined(SYS_getrandom) - // Try the relatively new getrandom syscall first. It's the preferred way - // on Linux as /dev/urandom may not work inside chroots and is harder to - // sandbox (see bug 995069). diff --git a/SOURCES/build-mozconfig-fix.patch b/SOURCES/build-mozconfig-fix.patch new file mode 100644 index 0000000..91dffb1 --- /dev/null +++ b/SOURCES/build-mozconfig-fix.patch @@ -0,0 +1,12 @@ +diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py +--- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix 2018-03-13 17:22:19.018466884 +0100 ++++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py 2018-03-13 17:23:57.379559640 +0100 +@@ -446,7 +446,7 @@ class MozconfigLoader(object): + value = value[1:] + + # Lines with a quote not ending in a quote are multi-line. +- if has_quote and not value.endswith("'"): ++ if has_quote and not value.endswith(("'", ";")): + in_variable = name + current.append(value) + continue diff --git a/SOURCES/build-nss-prbool.patch b/SOURCES/build-nss-prbool.patch deleted file mode 100644 index 491b2e1..0000000 --- a/SOURCES/build-nss-prbool.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up firefox-52.0esr/security/certverifier/CTLogVerifier.cpp.nss-prbool firefox-52.0esr/security/certverifier/CTLogVerifier.cpp ---- firefox-52.0esr/security/certverifier/CTLogVerifier.cpp.nss-prbool 2017-02-28 02:56:03.000000000 +0100 -+++ firefox-52.0esr/security/certverifier/CTLogVerifier.cpp 2017-03-01 11:34:15.623577628 +0100 -@@ -7,6 +7,7 @@ - #include "CTLogVerifier.h" - - #include "CTSerialization.h" -+#include "prtypes.h" - #include "hasht.h" - #include "mozilla/ArrayUtils.h" - #include "mozilla/Assertions.h" -diff -up firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp.nss-prbool firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp ---- firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp.nss-prbool 2017-03-01 12:09:16.649945106 +0100 -+++ firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp 2017-03-01 12:09:35.749939355 +0100 -@@ -4,6 +4,7 @@ - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -+#include "prtypes.h" - #include "mozilla/Casting.h" - #include "nsSSLStatus.h" - #include "nsIClassInfoImpl.h" diff --git a/SOURCES/build-nss-version.patch b/SOURCES/build-nss-version.patch index 42f375d..734005d 100644 --- a/SOURCES/build-nss-version.patch +++ b/SOURCES/build-nss-version.patch @@ -1,12 +1,12 @@ -diff -up firefox-52.0esr/old-configure.in.nss-ver firefox-52.0esr/old-configure.in ---- firefox-52.0esr/old-configure.in.nss-ver 2017-03-01 10:12:54.668047060 +0100 -+++ firefox-52.0esr/old-configure.in 2017-03-01 10:13:01.733044933 +0100 -@@ -2123,7 +2123,7 @@ MOZ_ARG_WITH_BOOL(system-nss, +diff -up firefox-60.1.0/old-configure.in.nss-version firefox-60.1.0/old-configure.in +--- firefox-60.1.0/old-configure.in.nss-version 2018-06-20 14:24:55.204158540 +0200 ++++ firefox-60.1.0/old-configure.in 2018-06-20 14:30:19.517004230 +0200 +@@ -1768,7 +1768,7 @@ MOZ_ARG_WITH_BOOL(system-nss, _USE_SYSTEM_NSS=1 ) if test -n "$_USE_SYSTEM_NSS"; then -- AM_PATH_NSS(3.28.6, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -+ AM_PATH_NSS(3.28.4, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) +- AM_PATH_NSS(3.36.4, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) ++ AM_PATH_NSS(3.36.0, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) fi - if test -n "$MOZ_SYSTEM_NSS"; then + if test -z "$MOZ_SYSTEM_NSS"; then diff --git a/SOURCES/build-s390-atomic.patch b/SOURCES/build-s390-atomic.patch deleted file mode 100644 index 3624b98..0000000 --- a/SOURCES/build-s390-atomic.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up mozilla-aurora/js/src/jit/AtomicOperations.h.s390-atomic mozilla-aurora/js/src/jit/AtomicOperations.h ---- mozilla-aurora/js/src/jit/AtomicOperations.h.s390-atomic 2016-11-15 12:22:38.000000000 +0100 -+++ mozilla-aurora/js/src/jit/AtomicOperations.h 2016-12-08 15:36:11.792439891 +0100 -@@ -341,6 +341,9 @@ AtomicOperations::isLockfree(int32_t siz - # include "jit/none/AtomicOperations-ppc.h" - # elif defined(__aarch64__) - # include "jit/arm64/AtomicOperations-arm64.h" -+# elif defined(__s390__) -+ // Also works with ppc atomic operations -+# include "jit/none/AtomicOperations-ppc.h" - # else - # include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always - # endif diff --git a/SOURCES/build-s390-missing-include.patch b/SOURCES/build-s390-missing-include.patch deleted file mode 100644 index 59157e6..0000000 --- a/SOURCES/build-s390-missing-include.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h.s390-build-includes-fix firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h ---- firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h.s390-build-includes-fix 2017-04-12 09:31:39.419402551 +0200 -+++ firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h 2017-04-12 09:31:53.392340589 +0200 -@@ -11,6 +11,7 @@ - #include "mozilla/ErrorResult.h" - #include "mozilla/dom/BindingDeclarations.h" - #include "nsCycleCollectionParticipant.h" -+#include "mozilla/dom/FileSystemDirectoryEntry.h" - #include "nsWrapperCache.h" - - namespace mozilla { diff --git a/SOURCES/distribution.ini b/SOURCES/distribution.ini new file mode 100644 index 0000000..8bf461e --- /dev/null +++ b/SOURCES/distribution.ini @@ -0,0 +1,9 @@ +[Global] +id=redhat +version=1.0 +about=Mozilla Firefox for Red Hat Enterprise Linux + +[Preferences] +app.distributor=redhat +app.distributor.channel=redhat +app.partner.fedora=redhat diff --git a/SOURCES/find-external-requires b/SOURCES/find-external-requires deleted file mode 100755 index d79db1d..0000000 --- a/SOURCES/find-external-requires +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# Finds requirements provided outside of the current file set - -filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"` - -provides=`echo $filelist | /usr/lib/rpm/find-provides` - -{ -for f in $filelist ; do - echo $f | /usr/lib/rpm/find-requires | while read req ; do - found=0 - for p in $provides ; do - if [ "$req" = "$p" ]; then - found=1 - fi - done - if [ "$found" = "0" ]; then - echo $req - fi - done -done -} | sort -u \ No newline at end of file diff --git a/SOURCES/firefox-default.patch b/SOURCES/firefox-default.patch deleted file mode 100644 index 641337b..0000000 --- a/SOURCES/firefox-default.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff -up mozilla-aurora/browser/components/preferences/in-content/advanced.xul.default mozilla-aurora/browser/components/preferences/in-content/advanced.xul ---- mozilla-aurora/browser/components/preferences/in-content/advanced.xul.default 2016-11-15 12:21:37.000000000 +0100 -+++ mozilla-aurora/browser/components/preferences/in-content/advanced.xul 2016-12-08 10:51:04.049353573 +0100 -@@ -75,7 +75,7 @@ - type="bool"/> - - --#ifdef MOZ_UPDATER -+#ifdef 0 - -@@ -116,7 +116,7 @@ - type="int"/> - - --#ifdef HAVE_SHELL_SERVICE -+#ifdef 0 - - - #endif -diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp ---- mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default 2016-11-15 12:21:39.000000000 +0100 -+++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp 2016-12-08 10:51:04.049353573 +0100 -@@ -150,8 +150,8 @@ nsGNOMEShellService::GetAppPathFromLaunc - bool - nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const - { -+ nsAutoCString appName; - -- gchar *commandPath; - if (mUseLocaleFilenames) { - gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, - nullptr, nullptr, nullptr); -@@ -160,17 +160,13 @@ nsGNOMEShellService::KeyMatchesAppName(c - return false; - } - -- commandPath = g_find_program_in_path(nativePath); -+ appName.Assign(nativePath); - g_free(nativePath); - } else { -- commandPath = g_find_program_in_path(aKeyValue); -+ appName.Assign(aKeyValue); - } - -- if (!commandPath) -- return false; -- -- bool matches = mAppPath.Equals(commandPath); -- g_free(commandPath); -+ bool matches = mAppPath.Equals(appName); - return matches; - } - -@@ -253,16 +249,7 @@ nsGNOMEShellService::SetDefaultBrowser(b - nsCOMPtr gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID); - nsCOMPtr giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); - if (gconf) { -- nsAutoCString appKeyValue; -- if (mAppIsInPath) { -- // mAppPath is in the users path, so use only the basename as the launcher -- gchar *tmp = g_path_get_basename(mAppPath.get()); -- appKeyValue = tmp; -- g_free(tmp); -- } else { -- appKeyValue = mAppPath; -- } -- -+ nsAutoCString appKeyValue(MOZ_APP_NAME); - appKeyValue.AppendLiteral(" %s"); - - for (unsigned int i = 0; i < ArrayLength(appProtocols); ++i) { -diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default mozilla-aurora/browser/components/shell/nsGNOMEShellService.h ---- mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default 2016-12-08 10:51:04.049353573 +0100 -+++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.h 2016-12-08 10:55:53.754263671 +0100 -@@ -13,7 +13,7 @@ - class nsGNOMEShellService final : public nsIGNOMEShellService - { - public: -- nsGNOMEShellService() : mAppIsInPath(false) { } -+ nsGNOMEShellService() : mAppIsInPath(true) { } - - NS_DECL_ISUPPORTS - NS_DECL_NSISHELLSERVICE -diff -up mozilla-aurora/browser/components/shell/ShellService.jsm.default mozilla-aurora/browser/components/shell/ShellService.jsm ---- mozilla-aurora/browser/components/shell/ShellService.jsm.default 2016-12-08 10:56:51.602245720 +0100 -+++ mozilla-aurora/browser/components/shell/ShellService.jsm 2016-12-08 10:56:58.213243668 +0100 -@@ -48,7 +48,7 @@ let ShellServiceInternal = { - * up and "browser.shell.checkDefaultBrowser" is true, otherwise it - * is false. - */ -- _checkedThisSession: false, -+ _checkedThisSession: true, - get shouldCheckDefaultBrowser() { - // If we've already checked, the browser has been started and this is a - // new window open, and we don't want to check again. diff --git a/SOURCES/firefox-disable-dbus-remote.patch b/SOURCES/firefox-disable-dbus-remote.patch new file mode 100644 index 0000000..33b21cb --- /dev/null +++ b/SOURCES/firefox-disable-dbus-remote.patch @@ -0,0 +1,36 @@ +diff -up firefox-60.1.0/toolkit/components/remote/moz.build.disable-dbus-remote firefox-60.1.0/toolkit/components/remote/moz.build +--- firefox-60.1.0/toolkit/components/remote/moz.build.disable-dbus-remote 2018-06-21 09:29:35.975729500 +0200 ++++ firefox-60.1.0/toolkit/components/remote/moz.build 2018-06-21 09:29:53.863631963 +0200 +@@ -22,11 +22,6 @@ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT'] + 'nsGTKRemoteService.cpp', + 'nsRemoteService.cpp', + ] +- if CONFIG['MOZ_ENABLE_DBUS']: +- SOURCES += [ +- 'nsDBusRemoteService.cpp', +- ] +- CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS'] + + FINAL_LIBRARY = 'xul' + +diff -up firefox-60.1.0/toolkit/components/remote/nsRemoteService.cpp.disable-dbus-remote firefox-60.1.0/toolkit/components/remote/nsRemoteService.cpp +--- firefox-60.1.0/toolkit/components/remote/nsRemoteService.cpp.disable-dbus-remote 2018-06-19 22:35:27.000000000 +0200 ++++ firefox-60.1.0/toolkit/components/remote/nsRemoteService.cpp 2018-06-21 09:30:24.949462465 +0200 +@@ -6,7 +6,7 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #include "nsGTKRemoteService.h" +-#ifdef MOZ_ENABLE_DBUS ++#if 0 // Disable DBus remote + #include "nsDBusRemoteService.h" + #endif + #include "nsRemoteService.h" +@@ -34,7 +34,7 @@ NS_IMPL_ISUPPORTS(nsRemoteService, + NS_IMETHODIMP + nsRemoteService::Startup(const char* aAppName, const char* aProfileName) + { +-#if defined(MOZ_ENABLE_DBUS) ++#if 0 // Disable DBus remote + nsresult rv; + mDBusRemoteService = new nsDBusRemoteService(); + rv = mDBusRemoteService->Startup(aAppName, aProfileName); diff --git a/SOURCES/firefox-enable-addons.patch b/SOURCES/firefox-enable-addons.patch index c1c82bb..15d0707 100644 --- a/SOURCES/firefox-enable-addons.patch +++ b/SOURCES/firefox-enable-addons.patch @@ -1,13 +1,13 @@ -diff -up mozilla-aurora/browser/app/profile/firefox.js.addons mozilla-aurora/browser/app/profile/firefox.js ---- mozilla-aurora/browser/app/profile/firefox.js.addons 2015-03-12 13:21:14.000000000 +0100 -+++ mozilla-aurora/browser/app/profile/firefox.js 2015-03-12 14:25:39.974909169 +0100 -@@ -65,7 +65,8 @@ pref("extensions.hotfix.certs.1.sha1Fing +diff -up firefox-55.0/browser/app/profile/firefox.js.addons firefox-55.0/browser/app/profile/firefox.js +--- firefox-55.0/browser/app/profile/firefox.js.addons 2017-08-02 10:58:30.566363833 +0200 ++++ firefox-55.0/browser/app/profile/firefox.js 2017-08-02 10:59:15.377216959 +0200 +@@ -65,7 +65,8 @@ pref("extensions.systemAddon.update.url" // Disable add-ons that are not installed by the user in all scopes by default. // See the SCOPE constants in AddonManager.jsm for values to use here. -pref("extensions.autoDisableScopes", 15); +pref("extensions.autoDisableScopes", 0); +pref("extensions.showMismatchUI", false); + // Scopes to scan for changes at startup. + pref("extensions.startupScanScopes", 0); - // Dictionary download preference - pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/"); diff --git a/SOURCES/firefox-enable-plugins.patch b/SOURCES/firefox-enable-plugins.patch deleted file mode 100644 index a1ee8c5..0000000 --- a/SOURCES/firefox-enable-plugins.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js.plugins firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js ---- firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js.plugins 2014-09-11 13:47:45.000000000 +0200 -+++ firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js 2014-09-11 14:42:26.036810267 +0200 -@@ -657,7 +657,7 @@ pref("plugins.click_to_play", true); - - pref("plugins.hideMissingPluginsNotification", false); - --pref("plugin.default.state", 1); -+pref("plugin.default.state", 2); - - // Plugins bundled in XPIs are enabled by default. - pref("plugin.defaultXpi.state", 2); -@@ -665,7 +665,7 @@ pref("plugin.defaultXpi.state", 2); - // Flash is enabled by default, and Java is click-to-activate by default on - // all channels. - pref("plugin.state.flash", 2); --pref("plugin.state.java", 1); -+pref("plugin.state.java", 2); - - // Whitelist Requests - diff --git a/SOURCES/firefox-fedora-ua.patch b/SOURCES/firefox-fedora-ua.patch new file mode 100644 index 0000000..a5b7866 --- /dev/null +++ b/SOURCES/firefox-fedora-ua.patch @@ -0,0 +1,21 @@ +diff -up firefox-35.0.1/mozilla-release/media/webrtc/trunk/Makefile.old firefox-35.0.1/mozilla-release/media/webrtc/trunk/Makefile +diff -up firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp.old firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp +--- firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp.old 2015-01-23 07:00:06.000000000 +0100 ++++ firefox-35.0.1/mozilla-release/netwerk/protocol/http/nsHttpHandler.cpp 2015-02-09 16:40:42.983220596 +0100 +@@ -607,7 +607,7 @@ nsHttpHandler::BuildUserAgent() + mUserAgent.SetCapacity(mLegacyAppName.Length() + + mLegacyAppVersion.Length() + + #ifndef UA_SPARE_PLATFORM +- mPlatform.Length() + ++ mPlatform.Length() + 8 + + #endif + mOscpu.Length() + + mMisc.Length() + +@@ -631,6 +631,7 @@ nsHttpHandler::BuildUserAgent() + if (!mPlatform.IsEmpty()) { + mUserAgent += mPlatform; + mUserAgent.AppendLiteral("; "); ++ mUserAgent.AppendLiteral("Fedora; "); + } + #endif + if (!mCompatDevice.IsEmpty()) { diff --git a/SOURCES/firefox-install-dir.patch b/SOURCES/firefox-install-dir.patch deleted file mode 100644 index c962fa5..0000000 --- a/SOURCES/firefox-install-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mozilla-aurora/config/baseconfig.mk.orig mozilla-aurora/config/baseconfig.mk ---- mozilla-aurora/config/baseconfig.mk.orig 2014-05-06 13:17:17.000000000 +0200 -+++ mozilla-aurora/config/baseconfig.mk 2014-05-27 17:13:05.215503107 +0200 -@@ -4,7 +4,7 @@ - # whether a normal build is happening or whether the check is running. - includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) - idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) --installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -+installdir = $(libdir)/$(MOZ_APP_NAME) - sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) - ifndef TOP_DIST - TOP_DIST = dist diff --git a/SOURCES/firefox-mozconfig b/SOURCES/firefox-mozconfig old mode 100755 new mode 100644 index ff2a6a4..7501abc --- a/SOURCES/firefox-mozconfig +++ b/SOURCES/firefox-mozconfig @@ -1,28 +1,29 @@ . $topsrcdir/browser/config/mozconfig -ac_add_options --disable-crashreporter -ac_add_options --disable-libjpeg-turbo -ac_add_options --disable-necko-wifi + +ac_add_options --enable-default-toolkit=cairo-gtk3 + +ac_add_options --prefix="$PREFIX" +ac_add_options --libdir="$LIBDIR" +ac_add_options --with-system-zlib +ac_add_options --with-system-bz2 +ac_add_options --with-pthreads ac_add_options --disable-strip ac_add_options --disable-tests -ac_add_options --disable-updater -ac_add_options --enable-default-toolkit=cairo-gtk2 -ac_add_options --enable-extensions=default -ac_add_options --enable-release -ac_add_options --enable-safe-browsing +#ac_add_options --enable-libnotify +ac_add_options --enable-necko-wifi ac_add_options --enable-startup-notification -ac_add_options --libdir="$LIBDIR" -ac_add_options --prefix="$PREFIX" +ac_add_options --disable-updater +ac_add_options --enable-chrome-format=omni +ac_add_options --enable-pulseaudio +ac_add_options --with-system-icu ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key -ac_add_options --without-system-libvpx -ac_add_options --with-pthreads -ac_add_options --with-system-zlib -ac_add_options --enable-system-hunspell -ac_add_options --with-system-jpeg +ac_add_options --with-google-api-keyfile=../google-api-key +ac_add_options --enable-release +ac_add_options --enable-pie + export BUILD_OFFICIAL=1 -export CFLAGS="$CFLAGS -gdwarf-2" -export CXXFLAGS="$CXXFLAGS -gdwarf-2" export MOZILLA_OFFICIAL=1 - +export MOZ_TELEMETRY_REPORTING=1 mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir diff --git a/SOURCES/firefox-ppc64le.patch b/SOURCES/firefox-ppc64le.patch deleted file mode 100644 index 45fe1bc..0000000 --- a/SOURCES/firefox-ppc64le.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -up firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h.ppc64le firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h ---- firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h.ppc64le 2015-02-20 03:01:40.000000000 +0100 -+++ firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h 2015-03-06 15:52:58.298050379 +0100 -@@ -90,6 +90,13 @@ - #endif - - ////////////////////////////////////////////////////////////////////// -+#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN) -+ #if defined(__BIG_ENDIAN__) -+ #define SK_CPU_BENDIAN -+ #elif defined(__LITTLE_ENDIAN__) -+ #define SK_CPU_LENDIAN -+ #endif -+#endif - - #if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN) - #if defined(__sparc) || defined(__sparc__) || \ -diff -up firefox-36.0/mozilla-release/js/src/jsdtoa.cpp.ppc64le firefox-36.0/mozilla-release/js/src/jsdtoa.cpp ---- firefox-36.0/mozilla-release/js/src/jsdtoa.cpp.ppc64le 2015-02-20 03:01:49.000000000 +0100 -+++ firefox-36.0/mozilla-release/js/src/jsdtoa.cpp 2015-03-06 15:54:38.348048226 +0100 -@@ -52,6 +52,7 @@ static inline void dtoa_free(void* p) { - #define MALLOC dtoa_malloc - #define FREE dtoa_free - #include "dtoa.c" -+#undef CONST - - /* Mapping of JSDToStrMode -> js_dtoa mode */ - static const uint8_t dtoaModes[] = { diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js index 02113f4..d902ab3 100644 --- a/SOURCES/firefox-redhat-default-prefs.js +++ b/SOURCES/firefox-redhat-default-prefs.js @@ -1,27 +1,33 @@ pref("app.update.auto", false); pref("app.update.enabled", false); pref("app.update.autoInstallEnabled", false); +pref("general.smoothScroll", true); +pref("intl.locale.matchOS", true); +pref("toolkit.storage.synchronous", 0); +pref("toolkit.networkmanager.disable", false); +pref("offline.autoDetect", true); pref("browser.backspace_action", 2); pref("browser.display.use_system_colors", true); pref("browser.download.folderList", 1); pref("browser.link.open_external", 3); pref("browser.shell.checkDefaultBrowser", false); -pref("general.smoothScroll", true); -pref("general.useragent.vendor", "Red Hat"); -pref("general.useragent.vendorSub", "FIREFOX_RPM_VR"); -pref("intl.locale.matchOS", true); -pref("storage.nfs_filesystem", false); -pref("dom.ipc.plugins.enabled.nswrapper*", false); pref("network.manage-offline-status", true); -pref("toolkit.networkmanager.disable", false); -pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html"); -pref("toolkit.storage.synchronous", 0); -pref("startup.homepage_override_url", "http://www.redhat.com"); -pref("startup.homepage_welcome_url", "http://www.redhat.com"); pref("extensions.shownSelectionUI", true); -/* Workaround for rhbz#1110291 */ -pref("network.negotiate-auth.allow-insecure-ntlm-v1", true); -/* Workaround for mozbz#1063315 */ -pref("security.use_mozillapkix_verification", false); +pref("ui.SpellCheckerUnderlineStyle", 1); +pref("startup.homepage_override_url", ""); +pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=http://start.fedoraproject.org/"); +pref("browser.newtabpage.pinned", '[{"url":"http://start.fedoraproject.org/","title":"Fedora Project - Start Page"}]'); pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); -pref("browser.tabs.remote.autostart", false); +pref("media.gmp-gmpopenh264.provider.enabled",false); +pref("media.gmp-gmpopenh264.autoupdate",false); +pref("media.gmp-gmpopenh264.enabled",false); +pref("media.gmp-gmpopenh264.enabled",false); +pref("plugins.notifyMissingFlash", false); +/* See https://bugzilla.redhat.com/show_bug.cgi?id=1226489 */ +pref("browser.display.use_system_colors", false); +pref("layers.use-image-offscreen-surfaces", false); +/* Allow sending credetials to all https:// sites */ +pref("network.negotiate-auth.trusted-uris", "https://"); +pref("security.use_sqldb", false); +/* Use OS settings for UI language */ +pref("intl.locale.requested", ""); diff --git a/SOURCES/firefox.1 b/SOURCES/firefox.1 index 62bbe08..4311322 100644 --- a/SOURCES/firefox.1 +++ b/SOURCES/firefox.1 @@ -1,10 +1,10 @@ -.TH FIREFOX 1 "August 07, 2001" firefox "Linux User's Manual" +.TH FIREFOX 1 "November 30, 2017" firefox "Linux User's Manual" .SH NAME firefox \- a Web browser for X11 derived from the Mozilla browser .SH SYNOPSIS .B firefox -[\fIOPTIONS\fR] [\fIURL\fR] +[\fIOPTIONS\fR ...] [\fIURL\fR] .B firefox-bin [\fIOPTIONS\fR] [\fIURL\fR] @@ -20,22 +20,6 @@ environment for the actual executable, \fBfirefox-bin\fR. .SH OPTIONS A summary of the options supported by \fBfirefox\fR is included below. -.SS "GTK options" -\fB\-\-gdk-debug=\fR\fIFLAGS\fR -Gdk debugging flags to set -.TP -\fB\-\-gdk-no-debug=\fR\fIFLAGS\fR -Gdk debugging flags to unset -.TP -\fB\-\-gtk-debug=\fR\fIFLAGS\fR -Gtk+ debugging flags to set -.TP -\fB\-\-gtk-no-debug=\fR\fIFLAGS\fR -Gtk+ debugging flags to unset -.TP -\fB\-\-gtk-module=\fR\fIMODULE\fR -Load an additional Gtk module - .SS "X11 options" .TP .BI \-\-display= DISPLAY @@ -44,13 +28,6 @@ X display to use .B \--sync Make X calls synchronous .TP -.B \-\-no-xshm -Don't use X shared memory extension -.TP -.BI \-\-xim-preedit= STYLE -.TP -.BI \-\-xim-status= STYLE -.TP .B \-\-g-fatal-warnings Make all warnings fatal @@ -60,79 +37,105 @@ Make all warnings fatal Show summary of options. .TP .B \-v, \-version -Print \fB/usr/bin/firefox-bin\fR version. -.TP -\fB\-CreateProfile\fR \fIprofile\fR -Create \fIprofile\fR. +Print Firefox version. .TP \fB\-P\fR \fIprofile\fR Start with \fIprofile\fR. .TP -.B \-ProfileManager -Start with profile manager. +\fB\-\-profile\fR \fIpath\fR +Start with profile at \fIpath\fR. .TP -\fB\-remote\fR \fIcommand\fR -Execute \fIcommand\fR in an already running Firefox process. For more info, -see: \fIhttp://www.mozilla.org/unix/remote.html\fR +\fB\-\-migration\fR +Start with migration wizard. .TP -.B \-jsconsole -Start with Javascript Console +.B \-\-ProfileManager +Start with ProfileManager. .TP -\fB\-chrome\fR \fIurl\fR -Load the specified chrome. +\fB\-\-no\-remote\fR +Do not accept or send remote commands; implies \fB--new-instance\fR. .TP -\fB\-no\-remote\fR -Don't connect to any other running instances of \fBfirefox\fR. Use this if you want to run \fBfirefox\fR -in an entirely new process. By default, \fBfirefox\fR will delegate a command to an already running instance. +\fB\-\-new\-instance\fR +Open new instance, not a new window in running instance. .TP -\fB\-safe\-mode\fR -Start \fBfirefox\fR in safe-mode. This disables all third-party extensions, and may be necessary if -you are having problems with an extension you installed. +\fB\-\-UILocale\fR \fIlocale\fR +Start with \fIlocale\fR resources as UI Locale. .TP -\fB\-new\-tab\fR \fIurl\fR -Open \fIurl\fR in a new tab. +\fB\-\-save\-mode\fR +Disables extensions and themes for this session. +.TP +\fB\-\-headless\fR +Run without a GUI. +.TP +\fB\-\-marionette\fR +Enable remote control server. .TP -\fB\-new\-window\fR \fIurl\fR +\fB\-\-browser\fR +Open a browser window. +.TP +\fB\-\-new-window\fR \fIurl\fR Open \fIurl\fR in a new window. .TP -\fB\-preferences\fR -Open the preferences dialog. +\fB\-\-new-tab\fR \fIurl\fR +Open \fIurl\fR in a new tab. .TP -\fB\-private\fR -Start \fBfirefox\fR in private browsing mode. +\fB\-\-private-window\fR \fIurl\fR +Open \fIurl\fR in a new private window. .TP -\fB\-private\-toggle\fR -Toggle private browsing mode. +\fB\-\-preferences\fR +Open Preferences dialog. .TP -\fB\-setDefaultBrowser\fR -Set \fBfirefox\fR as the default web browser. +\fB\-\-screenshot\fR [\fIpath\fR] +Save screenshot to \fIpath\fR or in working directory. .TP -\fB\-search\fR \fIterm\fR -Search for \fIterm\fR with your default search engine. +\fB\-\-window-size\fR \fIwidth\fR[,\fIheight\fR] +Width and optionally height of screenshot. .TP -\fB\-migration\fR -Start with migration wizard. +\fB\-\-search\fR \fIterm\fR +Search \fIterm\fR with your default search engine. .TP -\fB\-new-instance\fR -Open new instance, not a new window in running instance. + + +\fB\-\-jsconsole\fR +Open the Browser Console. +.TP +\fB\-\-jsdebugger\fR +Open the Browser Toolbox. +.TP +\fB\-\-wait-for-jsdebugger\fR +Spin event loop until JS debugger connects. Enables debugging (some) application startup code paths. Only has an effect when \fI--jsdebugger\fR is also supplied. +.TP +\fB\-\-devtools\fR +Open DevTools on initial load. +.TP +\fB\-\-start-debugger-server\fR [ws:][\fIport\fR|\fIpath\fR] +Start the debugger server on a TCP port or Unix domain socket path. Defaults to TCP port 6000. Use WebSocket protocol if ws: prefix is specified. +.TP +\fB\-\-recording\fR \fIfile\fR +Record drawing for a given URL. +.TP +\fB\-\-recording-output\fR \fIfile\fR +Specify destination file for a drawing recording. +.TP +\fB\-\-setDefaultBrowser\fR +Set this app as the default browser. .SH FILES \fI/usr/bin/firefox\fR - shell script wrapping \fBfirefox\fR .br -\fI/usr/lib/mozilla/firefox-bin\fR - \fBfirefox\fR +\fI/usr/lib64/firefox/firefox-bin\fR - \fBfirefox\fR executable .SH VERSION -1.0 +57.0 .SH BUGS To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR -.SH "SEE ALSO" -.BR mozilla(1) - .SH AUTHORS .TP .B The Mozilla Organization .I http://www.mozilla.org/about.html +.TP +.B Tobias Girstmair +.I https://gir.st/ diff --git a/SOURCES/firefox.desktop b/SOURCES/firefox.desktop index bac6399..f13e600 100644 --- a/SOURCES/firefox.desktop +++ b/SOURCES/firefox.desktop @@ -1,28 +1,6 @@ [Desktop Entry] Version=1.0 -Name=Firefox Web Browser -Name[ca]=Navegador web Firefox -Name[cs]=Firefox Webový prohlížeč -Name[es]=Navegador Firefox -Name[fa]=مرورگر اینترنتی Firefox -Name[fi]=Firefox-selain -Name[fr]=Navigateur web Firefox -Name[hu]=Firefox webböngésző -Name[it]=Web browser Firefox -Name[ja]=Firefox Web ブラウザー -Name[ko]=Firefox 웹 브라우저 -Name[nb]=Firefox Nettleser -Name[nl]=Firefox webbrowser -Name[nn]=Firefox Nettlesar -Name[no]=Firefox Nettleser -Name[pl]=Przeglądarka WWW Firefox -Name[pt]=Firefox Navegador Web -Name[pt_BR]=Navegador Firefox -Name[ru]=Веб-браузер Firefox -Name[sk]=Internetový prehliadač Firefox -Name[sv]=Webbläsaren Firefox -Name[zh_CN]=火狐浏览器 -Name[zh_TW]=Firefox 網頁瀏覽器 +Name=Firefox GenericName=Web Browser GenericName[ca]=Navegador web GenericName[cs]=Webový prohlížeč @@ -71,3 +49,224 @@ Type=Application MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; StartupNotify=true Categories=Network;WebBrowser; +Keywords=web;browser;internet; +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=firefox %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=firefox --private-window %u + diff --git a/SOURCES/firefox.sh.in b/SOURCES/firefox.sh.in new file mode 100644 index 0000000..d16f8cb --- /dev/null +++ b/SOURCES/firefox.sh.in @@ -0,0 +1,258 @@ +#!/bin/bash +# +# The contents of this file are subject to the Netscape Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# + +## +## Usage: +## +## $ firefox +## +## This script is meant to run a mozilla program from the mozilla +## rpm installation. +## +## The script will setup all the environment voodoo needed to make +## mozilla work. + +cmdname=`basename $0` + +## +## Variables +## +MOZ_ARCH=$(uname -m) +case $MOZ_ARCH in + x86_64 | s390x | sparc64) + MOZ_LIB_DIR="/usr/lib64" + SECONDARY_LIB_DIR="/usr/lib" + ;; + * ) + MOZ_LIB_DIR="/usr/lib" + SECONDARY_LIB_DIR="/usr/lib64" + ;; +esac + +MOZ_FIREFOX_FILE="firefox" + +if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + if [ -d $SECONDARY_LIB_DIR ]; then + echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + fi + exit 1 + fi + MOZ_LIB_DIR="$SECONDARY_LIB_DIR" +fi +MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" +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-mozilla.sh" + +## +## Set MOZ_GRE_CONF +## +MOZ_GRE_CONF=/etc/gre.d/gre.conf +if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then + MOZ_GRE_CONF=/etc/gre.d/gre64.conf +fi +export MOZ_GRE_CONF + +## +## Set MOZILLA_FIVE_HOME +## +MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" + +export MOZILLA_FIVE_HOME + +## +## Make sure that we set the plugin path +## +MOZ_PLUGIN_DIR="plugins" + +if [ "$MOZ_PLUGIN_PATH" ] +then + MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +else + MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +fi +export MOZ_PLUGIN_PATH + +## +## Set MOZ_APP_LAUNCHER for gnome-session +## +export MOZ_APP_LAUNCHER="/usr/bin/firefox" + +## +## Set FONTCONFIG_PATH for Xft/fontconfig +## +FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" +export FONTCONFIG_PATH + +## +## In order to better support certain scripts (such as Indic and some CJK +## scripts), Fedora builds its Firefox, with permission from the Mozilla +## Corporation, with the Pango system as its text renderer. This change +## may negatively impact performance on some pages. To disable the use of +## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching +## Firefox. +## +# +# MOZ_DISABLE_PANGO=1 +# export MOZ_DISABLE_PANGO +# + +## +## Disable the GNOME crash dialog, Moz has it's own +## +GNOME_DISABLE_CRASH_DIALOG=1 +export GNOME_DISABLE_CRASH_DIALOG + +## +## Disable the SLICE allocator (rhbz#1014858) +## +export G_SLICE=always-malloc + +## +## Enable Xinput2 (mozbz#1207973) +## +export MOZ_USE_XINPUT2=1 + +# OK, here's where all the real work gets done + + +## +## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 +## in your environment before launching Firefox. +## +# +# MOZ_DISABLE_LANGPACKS=1 +# export MOZ_DISABLE_LANGPACKS +# + +## +## Automatically installed langpacks are tracked by .fedora-langpack-install +## config file. +## +FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" + +# Since Firefox 60 the installation of individual langpack cannot be done by +# copying xpi file to the home directory, because the langpack is loaded +# as to the available languages after the language has been decided and +# for the first run it won't be in language according to the locale. +# +# The current workaround is to put all langpacks to the location +# for system wide extensions. So we set MOZ_DISABLE_LANGPACKS=1 for this moment +export MOZ_DISABLE_LANGPACKS=1 +# MOZ_DISABLE_LANGPACKS disables language packs completely +MOZILLA_DOWN=0 +if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then + if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then + # Is firefox running? + /usr/bin/pidof firefox > /dev/null 2>&1 + MOZILLA_DOWN=$? + fi +fi + +# Modify language pack configuration only when firefox is not running +# and language packs are not disabled +if [ $MOZILLA_DOWN -ne 0 ]; then + + # Clear already installed langpacks + mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR + if [ -f $FEDORA_LANGPACK_CONFIG ]; then + rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 + rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 + # remove all empty langpacks dirs while they block installation of langpacks + rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 + fi + + # Get locale from system + CURRENT_LOCALE=$LC_ALL + CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} + CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} + + # Try with a local variant first, then without a local variant + SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` + MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` + + function create_langpack_link() { + local language=$* + local langpack=langpack-${language}@firefox.mozilla.org.xpi + if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then + rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + # If the target file is a symlink (the fallback langpack), + # install the original file instead of the fallback one + if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then + langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` + fi + ln -s $MOZ_LANGPACKS_DIR/$langpack \ + $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG + return 0 + fi + return 1 + } + + create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true +fi + +# BEAST fix (rhbz#1005611) +NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} +export NSS_SSL_CBC_RANDOM_IV + +# Prepare command line arguments +script_args="" +pass_arg_count=0 +while [ $# -gt $pass_arg_count ] +do + case "$1" in + -g | --debug) + script_args="$script_args -g" + debugging=1 + shift + ;; + -d | --debugger) + if [ $# -gt 1 ]; then + script_args="$script_args -d $2" + shift 2 + else + shift + fi + ;; + *) + # Move the unrecognized argument to the end of the list. + arg="$1" + shift + set -- "$@" "$arg" + pass_arg_count=`expr $pass_arg_count + 1` + ;; + esac +done + +# Run the browser +debugging=0 +if [ $debugging = 1 ] +then + echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" +fi + + +exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/firefox.sh.in.rhel6 b/SOURCES/firefox.sh.in.rhel6 deleted file mode 100644 index 1eb2d25..0000000 --- a/SOURCES/firefox.sh.in.rhel6 +++ /dev/null @@ -1,256 +0,0 @@ -#!/bin/bash -# -# The contents of this file are subject to the Netscape Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/NPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is Netscape -# Communications Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. -# -# Contributor(s): -# - -## -## Usage: -## -## $ firefox -## -## This script is meant to run a mozilla program from the mozilla -## rpm installation. -## -## The script will setup all the environment voodoo needed to make -## mozilla work. - -cmdname=`basename $0` - -## -## Variables -## -MOZ_ARCH=$(uname -m) -case $MOZ_ARCH in - x86_64 | s390x | sparc64) - MOZ_LIB_DIR="/usr/lib64" - SECONDARY_LIB_DIR="/usr/lib" - ;; - * ) - MOZ_LIB_DIR="/usr/lib" - SECONDARY_LIB_DIR="/usr/lib64" - ;; -esac - -MOZ_FIREFOX_FILE="firefox" - -if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then - if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then - echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" - if [ -d $SECONDARY_LIB_DIR ]; then - echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" - fi - exit 1 - fi - MOZ_LIB_DIR="$SECONDARY_LIB_DIR" -fi -MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" -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-mozilla.sh" - -## -## Set MOZ_GRE_CONF -## -MOZ_GRE_CONF=/etc/gre.d/gre.conf -if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then - MOZ_GRE_CONF=/etc/gre.d/gre64.conf -fi -export MOZ_GRE_CONF - -## -## Set MOZILLA_FIVE_HOME -## -MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" - -export MOZILLA_FIVE_HOME - -## -## Select the propper plugin dir -## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped -## -if [ -x "/usr/bin/mozilla-plugin-config" ] -then - MOZ_PLUGIN_DIR="plugins-wrapped" -else - MOZ_PLUGIN_DIR="plugins" -fi - -## -## Make sure that we set the plugin path -## -if [ "$MOZ_PLUGIN_PATH" ] -then - MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR -else - MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR -fi -export MOZ_PLUGIN_PATH - -## -## Set MOZ_APP_LAUNCHER for gnome-session -## -export MOZ_APP_LAUNCHER="/usr/bin/firefox" - -## -## If plugins are wrapped, check them -## -if [ -x "/usr/bin/mozilla-plugin-config" ] -then - /usr/bin/mozilla-plugin-config -fi - -## -## Set FONTCONFIG_PATH for Xft/fontconfig -## -FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" -export FONTCONFIG_PATH - -## -## In order to better support certain scripts (such as Indic and some CJK -## scripts), Fedora builds its Firefox, with permission from the Mozilla -## Corporation, with the Pango system as its text renderer. This change -## may negatively impact performance on some pages. To disable the use of -## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching -## Firefox. -## -# -# MOZ_DISABLE_PANGO=1 -# export MOZ_DISABLE_PANGO -# - -## -## Disable the GNOME crash dialog, Moz has it's own -## -GNOME_DISABLE_CRASH_DIALOG=1 -export GNOME_DISABLE_CRASH_DIALOG - -# OK, here's where all the real work gets done - - -## -## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 -## in your environment before launching Firefox. -## -# -# MOZ_DISABLE_LANGPACKS=1 -# export MOZ_DISABLE_LANGPACKS -# - -## -## Automatically installed langpacks are tracked by .fedora-langpack-install -## config file. -## -FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" - -# MOZ_DISABLE_LANGPACKS disables language packs completely -MOZILLA_DOWN=0 -if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then - if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then - # Is firefox running? - /usr/bin/pidof firefox > /dev/null 2>&1 - MOZILLA_DOWN=$? - fi -fi - -# Modify language pack configuration only when firefox is not running -# and language packs are not disabled -if [ $MOZILLA_DOWN -ne 0 ]; then - - # Clear already installed langpacks - mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR - if [ -f $FEDORA_LANGPACK_CONFIG ]; then - rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 - rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 - # remove all empty langpacks dirs while they block installation of langpacks - rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 - fi - - # Get locale from system - CURRENT_LOCALE=$LC_ALL - CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} - CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} - - # Try with a local variant first, then without a local variant - SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` - MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` - - function create_langpack_link() { - local language=$* - local langpack=langpack-${language}@firefox.mozilla.org.xpi - if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then - rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - # If the target file is a symlink (the fallback langpack), - # install the original file instead of the fallback one - if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then - langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` - fi - ln -s $MOZ_LANGPACKS_DIR/$langpack \ - $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG - return 0 - fi - return 1 - } - - create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true -fi - -# BEAST fix (rhbz#1005611) -NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} -export NSS_SSL_CBC_RANDOM_IV - -# Prepare command line arguments -script_args="" -pass_arg_count=0 -while [ $# -gt $pass_arg_count ] -do - case "$1" in - -g | --debug) - script_args="$script_args -g" - debugging=1 - shift - ;; - -d | --debugger) - if [ $# -gt 1 ]; then - script_args="$script_args -d $2" - shift 2 - else - shift - fi - ;; - *) - # Move the unrecognized argument to the end of the list. - arg="$1" - shift - set -- "$@" "$arg" - pass_arg_count=`expr $pass_arg_count + 1` - ;; - esac -done - -# Run the browser -debugging=0 -if [ $debugging = 1 ] -then - echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" -fi - -exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/firefox.sh.in.rhel7 b/SOURCES/firefox.sh.in.rhel7 deleted file mode 100644 index 385a05c..0000000 --- a/SOURCES/firefox.sh.in.rhel7 +++ /dev/null @@ -1,261 +0,0 @@ -#!/bin/bash -# -# The contents of this file are subject to the Netscape Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/NPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is Netscape -# Communications Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. -# -# Contributor(s): -# - -## -## Usage: -## -## $ firefox -## -## This script is meant to run a mozilla program from the mozilla -## rpm installation. -## -## The script will setup all the environment voodoo needed to make -## mozilla work. - -cmdname=`basename $0` - -## -## Variables -## -MOZ_ARCH=$(uname -m) -case $MOZ_ARCH in - x86_64 | s390x | sparc64) - MOZ_LIB_DIR="/usr/lib64" - SECONDARY_LIB_DIR="/usr/lib" - ;; - * ) - MOZ_LIB_DIR="/usr/lib" - SECONDARY_LIB_DIR="/usr/lib64" - ;; -esac - -MOZ_FIREFOX_FILE="firefox" - -if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then - if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then - echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" - if [ -d $SECONDARY_LIB_DIR ]; then - echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" - fi - exit 1 - fi - MOZ_LIB_DIR="$SECONDARY_LIB_DIR" -fi -MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" -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-mozilla.sh" - -## -## Set MOZ_GRE_CONF -## -MOZ_GRE_CONF=/etc/gre.d/gre.conf -if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then - MOZ_GRE_CONF=/etc/gre.d/gre64.conf -fi -export MOZ_GRE_CONF - -## -## Set MOZILLA_FIVE_HOME -## -MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" - -export MOZILLA_FIVE_HOME - -## -## Select the propper plugin dir -## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped -## -if [ -x "/usr/bin/mozilla-plugin-config" ] -then - MOZ_PLUGIN_DIR="plugins-wrapped" -else - MOZ_PLUGIN_DIR="plugins" -fi - -## -## Make sure that we set the plugin path -## -if [ "$MOZ_PLUGIN_PATH" ] -then - MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR -else - MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR -fi -export MOZ_PLUGIN_PATH - -## -## Set MOZ_APP_LAUNCHER for gnome-session -## -export MOZ_APP_LAUNCHER="/usr/bin/firefox" - -## -## If plugins are wrapped, check them -## -if [ -x "/usr/bin/mozilla-plugin-config" ] -then - /usr/bin/mozilla-plugin-config -fi - -## -## Set FONTCONFIG_PATH for Xft/fontconfig -## -FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" -export FONTCONFIG_PATH - -## -## In order to better support certain scripts (such as Indic and some CJK -## scripts), Fedora builds its Firefox, with permission from the Mozilla -## Corporation, with the Pango system as its text renderer. This change -## may negatively impact performance on some pages. To disable the use of -## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching -## Firefox. -## -# -# MOZ_DISABLE_PANGO=1 -# export MOZ_DISABLE_PANGO -# - -## -## Disable the GNOME crash dialog, Moz has it's own -## -GNOME_DISABLE_CRASH_DIALOG=1 -export GNOME_DISABLE_CRASH_DIALOG - -## -## Disable the SLICE allocator (rhbz#1014858) -## -export G_SLICE=always-malloc - -# OK, here's where all the real work gets done - - -## -## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 -## in your environment before launching Firefox. -## -# -# MOZ_DISABLE_LANGPACKS=1 -# export MOZ_DISABLE_LANGPACKS -# - -## -## Automatically installed langpacks are tracked by .fedora-langpack-install -## config file. -## -FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" - -# MOZ_DISABLE_LANGPACKS disables language packs completely -MOZILLA_DOWN=0 -if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then - if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then - # Is firefox running? - /usr/bin/pidof firefox > /dev/null 2>&1 - MOZILLA_DOWN=$? - fi -fi - -# Modify language pack configuration only when firefox is not running -# and language packs are not disabled -if [ $MOZILLA_DOWN -ne 0 ]; then - - # Clear already installed langpacks - mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR - if [ -f $FEDORA_LANGPACK_CONFIG ]; then - rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 - rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 - # remove all empty langpacks dirs while they block installation of langpacks - rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 - fi - - # Get locale from system - CURRENT_LOCALE=$LC_ALL - CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} - CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} - - # Try with a local variant first, then without a local variant - SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` - MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` - - function create_langpack_link() { - local language=$* - local langpack=langpack-${language}@firefox.mozilla.org.xpi - if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then - rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - # If the target file is a symlink (the fallback langpack), - # install the original file instead of the fallback one - if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then - langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` - fi - ln -s $MOZ_LANGPACKS_DIR/$langpack \ - $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG - return 0 - fi - return 1 - } - - create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true -fi - -# BEAST fix (rhbz#1005611) -NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} -export NSS_SSL_CBC_RANDOM_IV - -# Prepare command line arguments -script_args="" -pass_arg_count=0 -while [ $# -gt $pass_arg_count ] -do - case "$1" in - -g | --debug) - script_args="$script_args -g" - debugging=1 - shift - ;; - -d | --debugger) - if [ $# -gt 1 ]; then - script_args="$script_args -d $2" - shift 2 - else - shift - fi - ;; - *) - # Move the unrecognized argument to the end of the list. - arg="$1" - shift - set -- "$@" "$arg" - pass_arg_count=`expr $pass_arg_count + 1` - ;; - esac -done - -# Run the browser -debugging=0 -if [ $debugging = 1 ] -then - echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" -fi - -exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/google-api-key b/SOURCES/google-api-key new file mode 100644 index 0000000..b95d189 --- /dev/null +++ b/SOURCES/google-api-key @@ -0,0 +1 @@ +AIzaSyBPGXa4AYD4FC3HJK7LnIKxm4fDusVuuco diff --git a/SOURCES/gtk3-private-3.22.26-1-files.inc b/SOURCES/gtk3-private-3.22.26-1-files.inc new file mode 100644 index 0000000..cf89c66 --- /dev/null +++ b/SOURCES/gtk3-private-3.22.26-1-files.inc @@ -0,0 +1,53 @@ +%dir %{gtk3_install_path}/bin +%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} +%{gtk3_install_path}/bin/gdk-pixbuf-thumbnailer +%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} +%{gtk3_install_path}/bin/glib-compile-schemas +%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} +%{gtk3_install_path}/bin/gtk-update-icon-cache +%{gtk3_install_path}/bin/fc-cache + +%{gtk3_install_path}/etc + +%dir %{gtk3_install_path}/%{_lib} +%{gtk3_install_path}/%{_lib}/libatk-1.0.so.* +%{gtk3_install_path}/%{_lib}/libatk-bridge-2.0.so.* +%{gtk3_install_path}/%{_lib}/libatspi.so.* +%{gtk3_install_path}/%{_lib}/libcairo.so.* +%{gtk3_install_path}/%{_lib}/libcairo-gobject.so.* +%{gtk3_install_path}/%{_lib}/libfontconfig.so.* +%{gtk3_install_path}/%{_lib}/libfreetype.so.* +%{gtk3_install_path}/%{_lib}/libgdk-3.so.* +%{gtk3_install_path}/%{_lib}/libgdk_pixbuf-2.0.so.* +%{gtk3_install_path}/%{_lib}/libgio-2.0.so.* +%{gtk3_install_path}/%{_lib}/libglib-2.0.so.* +%{gtk3_install_path}/%{_lib}/libgmodule-2.0.so.* +%{gtk3_install_path}/%{_lib}/libgobject-2.0.so.* +%{gtk3_install_path}/%{_lib}/libgthread-2.0.so.* +%{gtk3_install_path}/%{_lib}/libgtk-3.so.* +%{gtk3_install_path}/%{_lib}/libharfbuzz.so.* +%{gtk3_install_path}/%{_lib}/libpango-1.0.so.* +%{gtk3_install_path}/%{_lib}/libpangocairo-1.0.so.* +%{gtk3_install_path}/%{_lib}/libpangoft2-1.0.so.* +%{gtk3_install_path}/%{_lib}/libpcre.so.* +%{gtk3_install_path}/%{_lib}/librsvg-2.so.* +%dir %{gtk3_install_path}/%{_lib}/cairo +%{gtk3_install_path}/%{_lib}/cairo/cairo-fdr.so.* +%{gtk3_install_path}/%{_lib}/cairo/cairo-sphinx.so.* +%{gtk3_install_path}/%{_lib}/cairo/libcairo-trace.so.* +%{gtk3_install_path}/%{_lib}/gdk-pixbuf-2.0 +%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gdk-pixbuf-2.0/2.10.0/loaders.cache +%{gtk3_install_path}/%{_lib}/gio +%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gio/modules/giomodule.cache +%{gtk3_install_path}/%{_lib}/gtk-3.0 + +%{gtk3_install_path}/libexec + +%{gtk3_install_path}/share +%ghost %attr(644, root, root) %{gtk3_install_path}/share/icons/Adwaita/icon-theme.cache +%ghost %attr(644, root, root) %{gtk3_install_path}/share/icons/hicolor/icon-theme.cache +%ghost %attr(644, root, root) %{gtk3_install_path}/share/glib-2.0/schemas/gschemas.compiled + +%{gtk3_install_path}/var +%dir %{gtk3_install_path}/var/cache/fontconfig + diff --git a/SOURCES/gtk3-private-3.22.26-1-post.inc b/SOURCES/gtk3-private-3.22.26-1-post.inc new file mode 100644 index 0000000..04acf06 --- /dev/null +++ b/SOURCES/gtk3-private-3.22.26-1-post.inc @@ -0,0 +1,23 @@ +# adwaita-icon-theme +touch --no-create %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || : +touch --no-create %{gtk3_install_path}/share/icons/hicolor &>/dev/null || : +%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} --update-cache || : + +# glib2 +%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} %{gtk3_install_path}/%{_lib}/gio/modules + +# gtk3 +%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} --update-cache +%{gtk3_install_path}/bin/glib-compile-schemas %{gtk3_install_path}/share/glib-2.0/schemas &> /dev/null || : + +# fontconfig +umask 0022 + +# Force regeneration of all fontconfig cache files +# The check for existance is needed on dual-arch installs (the second +# copy of fontconfig might install the binary instead of the first) +# The HOME setting is to avoid problems if HOME hasn't been reset +# FIXME hardcoded version ! +if [ -x %{gtk3_install_path}/bin/fc-cache ] && %{gtk3_install_path}/bin/fc-cache --version 2>&1 | grep -q 2.10.95 ; then + HOME=/root %{gtk3_install_path}/bin/fc-cache -f +fi diff --git a/SOURCES/gtk3-private-3.22.26-1-posttrans.inc b/SOURCES/gtk3-private-3.22.26-1-posttrans.inc new file mode 100644 index 0000000..8c5f2d7 --- /dev/null +++ b/SOURCES/gtk3-private-3.22.26-1-posttrans.inc @@ -0,0 +1,3 @@ +%{gtk3_install_path}/gtk-update-icon-cache %{gtk3_install_path}/share/icons/hicolor &>/dev/null || : +# adwaita +%{gtk3_install_path}/gtk-update-icon-cache %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || : diff --git a/SOURCES/gtk3-private-3.22.26-1-postun.inc b/SOURCES/gtk3-private-3.22.26-1-postun.inc new file mode 100644 index 0000000..3b5df73 --- /dev/null +++ b/SOURCES/gtk3-private-3.22.26-1-postun.inc @@ -0,0 +1,27 @@ +# adwaita +if [ $1 -eq 0 ] ; then + touch --no-create %{gtk3_install_path}/share/icons/Adwaita &>/dev/null + touch --no-create %{gtk3_install_path}/share/icons/hicolor &>/dev/null + %{gtk3_install_path}/bin/gtk-update-icon-cache %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || : + %{gtk3_install_path}/bin/gtk-update-icon-cache %{gtk3_install_path}/share/icons/hicolor &>/dev/null || : +fi + +# gdk-pixbuf2 +if [ $1 -gt 0 ]; then + %{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} --update-cache || : +fi + +# glib2 +[ ! -x %{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} ] || \ +%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} %{gtk3_install_path}/%{_lib}/gio/modules + +# gtk3 +if [ $1 -gt 0 ]; then + %{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} --update-cache +fi + +if [ $1 -eq 0 ] ; then + rm -rf %{gtk3_install_path}/var/cache/fontconfig/* &>/dev/null || : +fi + +%{gtk3_install_path}/bin/glib-compile-schemas %{gtk3_install_path}/share/glib-2.0/schemas &> /dev/null || : diff --git a/SOURCES/gtk3-private-3.22.26-1-requires-provides-filter.inc b/SOURCES/gtk3-private-3.22.26-1-requires-provides-filter.inc new file mode 100644 index 0000000..f5fa495 --- /dev/null +++ b/SOURCES/gtk3-private-3.22.26-1-requires-provides-filter.inc @@ -0,0 +1,26 @@ +%filter_provides_in %{gtk3_install_path}/%{_lib} +%filter_requires_in %{gtk3_install_path}/%{_lib} + +%filter_from_requires /libgdk-3.*/d +%filter_from_requires /libatk-1.0.so.*/d +%filter_from_requires /libatk-bridge-2.0.so.*/d +%filter_from_requires /libatspi.so.*/d +%filter_from_requires /libcairo.so.*/d +%filter_from_requires /libcairo-gobject.so.*/d +%filter_from_requires /libfontconfig.so.*/d +%filter_from_requires /libfreetype.so.*/d +%filter_from_requires /libgdk-3.so.*/d +%filter_from_requires /libgdk_pixbuf-2.0.so.*/d +%filter_from_requires /libgio-2.0.so.*/d +%filter_from_requires /libglib-2.0.so.*/d +%filter_from_requires /libgmodule-2.0.so.*/d +%filter_from_requires /libgobject-2.0.so.*/d +%filter_from_requires /libgthread-2.0.so.*/d +%filter_from_requires /libgtk-3.so.*/d +%filter_from_requires /libharfbuzz.so.*/d +%filter_from_requires /libpango-1.0.so.*/d +%filter_from_requires /libpangocairo-1.0.so.*/d +%filter_from_requires /libpangoft2-1.0.so.*/d +%filter_from_requires /libpcre.so.*/d + +# Don't forget to call %%filter_setup from the consumer! diff --git a/SOURCES/gtk3-private-3.22.26-1-setup-flags-env.inc b/SOURCES/gtk3-private-3.22.26-1-setup-flags-env.inc new file mode 100644 index 0000000..eb54164 --- /dev/null +++ b/SOURCES/gtk3-private-3.22.26-1-setup-flags-env.inc @@ -0,0 +1,34 @@ +%if "%{name}" == "gtk3-private" + function prepend_buildroot_include_path_to_compiler_flags() { + export CFLAGS="-I%{_buildrootdir}%{gtk3_install_path}/$@ $CFLAGS" \ + export CXXFLAGS="-I%{_buildrootdir}%{gtk3_install_path}/$@ $CXXFLAGS" + } + + prepend_buildroot_include_path_to_compiler_flags include + prepend_buildroot_include_path_to_compiler_flags include/glib-2.0 + prepend_buildroot_include_path_to_compiler_flags include/glib-2.0 + prepend_buildroot_include_path_to_compiler_flags include/gio-unix-2.0 + prepend_buildroot_include_path_to_compiler_flags %{_lib}/glib-2.0/include + prepend_buildroot_include_path_to_compiler_flags include/freetype2 + prepend_buildroot_include_path_to_compiler_flags include/fontconfig + prepend_buildroot_include_path_to_compiler_flags include/harfbuzz + prepend_buildroot_include_path_to_compiler_flags include/gdk-pixbuf-2.0 + prepend_buildroot_include_path_to_compiler_flags include/atk-1.0 + prepend_buildroot_include_path_to_compiler_flags include/at-spi-2.0 + prepend_buildroot_include_path_to_compiler_flags include/at-spi2-atk/2.0 + prepend_buildroot_include_path_to_compiler_flags include/cairo + prepend_buildroot_include_path_to_compiler_flags include/pango-1.0 + prepend_buildroot_include_path_to_compiler_flags include/librsvg-2.0 + prepend_buildroot_include_path_to_compiler_flags include/cairo + prepend_buildroot_include_path_to_compiler_flags include/gtk-3.0 + prepend_buildroot_include_path_to_compiler_flags include/gtk-3.0/unix-print + prepend_buildroot_include_path_to_compiler_flags include/librsvg-2.0 +%else + sed -i 's@%{gtk3_install_path}@%{_buildrootdir}%{gtk3_install_path}@g' %{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig/*.pc +%endif + +export LDFLAGS="-L%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS" +export LDFLAGS="-Wl,-rpath,%{gtk3_install_path}/%{_lib} $LDFLAGS" +export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS" + +export PKG_CONFIG_PATH=%{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig diff --git a/SOURCES/mozilla-1152515.patch b/SOURCES/mozilla-1152515.patch deleted file mode 100644 index 4be1ca7..0000000 --- a/SOURCES/mozilla-1152515.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/security/pkix/lib/pkixder.cpp b/security/pkix/lib/pkixder.cpp ---- a/security/pkix/lib/pkixder.cpp -+++ b/security/pkix/lib/pkixder.cpp -@@ -466,28 +466,63 @@ TimeChoice(Reader& tagged, uint8_t expec - if (rv != Success) { - return rv; - } - - uint8_t b; - if (input.Read(b) != Success) { - return Result::ERROR_INVALID_DER_TIME; - } -- if (b != 'Z') { -+ -+ unsigned int hourOffset = 0; -+ unsigned int minuteOffset = 0; -+ bool allowOffset = false; -+ bool haveOffset = false; -+ bool offsetIsPositive = false; -+ -+ if (getenv("PKIX_ALLOW_CERT_UTCTIME_OFFSET") != 0) { -+ allowOffset = true; -+ } -+ -+ if (allowOffset && (b == '+' || b == '-')) { -+ haveOffset = true; -+ rv = ReadTwoDigits(input, 0u, 23u, hourOffset); -+ if (rv != Success) { -+ return rv; -+ } -+ rv = ReadTwoDigits(input, 0u, 59u, minuteOffset); -+ if (rv != Success) { -+ return rv; -+ } -+ if (b == '+') { -+ offsetIsPositive = true; -+ } -+ } else if (b != 'Z') { - return Result::ERROR_INVALID_DER_TIME; - } - if (End(input) != Success) { - return Result::ERROR_INVALID_DER_TIME; - } - - uint64_t totalSeconds = (static_cast(days) * 24u * 60u * 60u) + - (static_cast(hours) * 60u * 60u) + - (static_cast(minutes) * 60u) + - seconds; - -+ if (haveOffset) { -+ uint64_t offsetInSeconds = -+ (static_cast(hourOffset) * 60u * 60u) + -+ (static_cast(minuteOffset) * 60u); -+ if (offsetIsPositive) { -+ totalSeconds -= offsetInSeconds; -+ } else { -+ totalSeconds += offsetInSeconds; -+ } -+ } -+ - time = TimeFromElapsedSecondsAD(totalSeconds); - return Success; - } - - Result - IntegralBytes(Reader& input, uint8_t tag, - IntegralValueRestriction valueRestriction, - /*out*/ Input& value, diff --git a/SOURCES/mozilla-1170092-etc-conf.patch b/SOURCES/mozilla-1170092-etc-conf.patch deleted file mode 100644 index 2b10f06..0000000 --- a/SOURCES/mozilla-1170092-etc-conf.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -up firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp ---- firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2016-03-15 23:37:54.000000000 +0100 -+++ firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp 2016-03-21 16:10:42.540417899 +0100 -@@ -245,8 +245,20 @@ nsresult nsReadConfig::openAndEvaluateJS - return rv; - - rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); -- if (NS_FAILED(rv)) -- return rv; -+ if (NS_FAILED(rv)) { -+ // Look for cfg file in /etc//pref -+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, -+ getter_AddRefs(jsFile)); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref")); -+ NS_ENSURE_SUCCESS(rv, rv); -+ rv = jsFile->AppendNative(nsDependentCString(aFileName)); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); -+ NS_ENSURE_SUCCESS(rv, rv); -+ } - - } else { - nsAutoCString location("resource://gre/defaults/autoconfig/"); -diff -up firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 firefox-45.0.1/modules/libpref/Preferences.cpp ---- firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 2016-03-21 16:10:42.540417899 +0100 -+++ firefox-45.0.1/modules/libpref/Preferences.cpp 2016-03-21 16:13:29.145888710 +0100 -@@ -1214,6 +1214,8 @@ static nsresult pref_InitInitialObjects( - // - jar:$gre/omni.jar!/defaults/preferences/*.js - // Thus, in omni.jar case, we always load app-specific default preferences - // from omni.jar, whether or not $app == $gre. -+ // At very end load configuration from system config location: -+ // - /etc/firefox/pref/*.js - - nsZipFind *findPtr; - nsAutoPtr find; -diff -up firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp ---- firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 2016-03-15 23:37:46.000000000 +0100 -+++ firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp 2016-03-21 16:12:06.498655156 +0100 -@@ -51,6 +51,7 @@ - #endif - #ifdef XP_UNIX - #include -+#include "nsIXULAppInfo.h" - #endif - #ifdef XP_IOS - #include "UIKitDirProvider.h" -@@ -457,6 +458,20 @@ nsXREDirProvider::GetFile(const char* aP - } - } - } -+#if defined(XP_UNIX) -+ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { -+ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/"); -+ nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); -+ if (!appInfo) -+ return NS_ERROR_NOT_AVAILABLE; -+ nsCString appName; -+ appInfo->GetName(appName); -+ ToLowerCase(appName); -+ sysConfigDir.Append(appName); -+ return NS_NewNativeLocalFile(sysConfigDir, false, aFile); -+ } -+#endif -+ - if (NS_FAILED(rv) || !file) - return NS_ERROR_FAILURE; - -@@ -753,6 +768,14 @@ nsXREDirProvider::GetFilesInternal(const - LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); - LoadDirsIntoArray(mAppBundleDirectories, - kAppendPrefDir, directories); -+ // Add /etc//pref/ directory if it exists -+ nsCOMPtr systemPrefDir; -+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, getter_AddRefs(systemPrefDir)); -+ if (NS_SUCCEEDED(rv)) { -+ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref")); -+ if (NS_SUCCEEDED(rv)) -+ directories.AppendObject(systemPrefDir); -+ } - - rv = NS_NewArrayEnumerator(aResult, directories); - } -diff -up firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h ---- firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2016-03-15 23:37:47.000000000 +0100 -+++ firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h 2016-03-21 16:10:42.541417902 +0100 -@@ -67,6 +67,7 @@ - #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" - #define NS_EXT_PREFS_DEFAULTS_DIR_LIST "ExtPrefDL" - #define NS_APP_PREFS_OVERRIDE_DIR "PrefDOverride" // Directory for per-profile defaults -+#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration - - #define NS_APP_USER_PROFILE_50_DIR "ProfD" - #define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD" diff --git a/SOURCES/mozilla-1170092.patch b/SOURCES/mozilla-1170092.patch new file mode 100644 index 0000000..9e8906f --- /dev/null +++ b/SOURCES/mozilla-1170092.patch @@ -0,0 +1,96 @@ +diff -up firefox-58.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-58.0/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-58.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2018-01-11 21:17:03.000000000 +0100 ++++ firefox-58.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2018-01-23 13:59:45.446495820 +0100 +@@ -239,9 +239,20 @@ nsresult nsReadConfig::openAndEvaluateJS + return rv; + + rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); +- if (NS_FAILED(rv)) +- return rv; ++ if (NS_FAILED(rv)) { ++ // Look for cfg file in /etc//pref ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, ++ getter_AddRefs(jsFile)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = jsFile->AppendNative(nsDependentCString(aFileName)); ++ NS_ENSURE_SUCCESS(rv, rv); + ++ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); ++ NS_ENSURE_SUCCESS(rv, rv); ++ } + } else { + nsAutoCString location("resource://gre/defaults/autoconfig/"); + location += aFileName; +diff -up firefox-58.0/modules/libpref/Preferences.cpp.1170092 firefox-58.0/modules/libpref/Preferences.cpp +--- firefox-58.0/modules/libpref/Preferences.cpp.1170092 2018-01-23 13:59:45.447495817 +0100 ++++ firefox-58.0/modules/libpref/Preferences.cpp 2018-01-23 14:02:51.456987774 +0100 +@@ -4402,6 +4402,8 @@ pref_InitInitialObjects() + // + // Thus, in the omni.jar case, we always load app-specific default + // preferences from omni.jar, whether or not `$app == $gre`. ++ // At very end load configuration from system config location: ++ // - /etc/firefox/pref/*.js + + nsresult rv; + nsZipFind* findPtr; +diff -up firefox-58.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-58.0/toolkit/xre/nsXREDirProvider.cpp +--- firefox-58.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2018-01-11 21:17:06.000000000 +0100 ++++ firefox-58.0/toolkit/xre/nsXREDirProvider.cpp 2018-01-23 13:59:45.447495817 +0100 +@@ -59,6 +59,7 @@ + #endif + #ifdef XP_UNIX + #include ++#include "nsIXULAppInfo.h" + #endif + #ifdef XP_IOS + #include "UIKitDirProvider.h" +@@ -554,6 +555,20 @@ nsXREDirProvider::GetFile(const char* aP + } + } + } ++#if defined(XP_UNIX) ++ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { ++ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/"); ++ nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); ++ if (!appInfo) ++ return NS_ERROR_NOT_AVAILABLE; ++ nsCString appName; ++ appInfo->GetName(appName); ++ ToLowerCase(appName); ++ sysConfigDir.Append(appName); ++ return NS_NewNativeLocalFile(sysConfigDir, false, aFile); ++ } ++#endif ++ + if (NS_FAILED(rv) || !file) + return NS_ERROR_FAILURE; + +@@ -887,6 +902,14 @@ nsXREDirProvider::GetFilesInternal(const + LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); + LoadDirsIntoArray(mAppBundleDirectories, + kAppendPrefDir, directories); ++ // Add /etc//pref/ directory if it exists ++ nsCOMPtr systemPrefDir; ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, getter_AddRefs(systemPrefDir)); ++ if (NS_SUCCEEDED(rv)) { ++ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref")); ++ if (NS_SUCCEEDED(rv)) ++ directories.AppendObject(systemPrefDir); ++ } + + rv = NS_NewArrayEnumerator(aResult, directories); + } +diff -up firefox-58.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-58.0/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-58.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2018-01-23 13:59:45.447495817 +0100 ++++ firefox-58.0/xpcom/io/nsAppDirectoryServiceDefs.h 2018-01-23 14:02:02.871120476 +0100 +@@ -59,6 +59,7 @@ + #define NS_APP_PREFS_50_FILE "PrefF" + #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" + #define NS_APP_PREFS_OVERRIDE_DIR "PrefDOverride" // Directory for per-profile defaults ++#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration + + #define NS_APP_USER_PROFILE_50_DIR "ProfD" + #define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD" diff --git a/SOURCES/mozilla-1196777.patch b/SOURCES/mozilla-1196777.patch new file mode 100644 index 0000000..ba5e4b7 --- /dev/null +++ b/SOURCES/mozilla-1196777.patch @@ -0,0 +1,28 @@ +# HG changeset patch +# User Martin Stransky +# Parent 4e3ad95d689a5beabf3c1f41d958794fe00e3767 +Bug 1196777 - Ask GDK to receive focus events, r=?karlt + +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -142,17 +142,18 @@ const gint kEvents = GDK_EXPOSURE_MASK | + GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | + #if GTK_CHECK_VERSION(3,4,0) + GDK_SMOOTH_SCROLL_MASK | + GDK_TOUCH_MASK | + #endif + GDK_SCROLL_MASK | + GDK_POINTER_MOTION_MASK | +- GDK_PROPERTY_CHANGE_MASK; ++ GDK_PROPERTY_CHANGE_MASK | ++ GDK_FOCUS_CHANGE_MASK; + + /* utility functions */ + static bool is_mouse_in_window(GdkWindow* aWindow, + gdouble aMouseX, gdouble aMouseY); + static nsWindow *get_window_for_gtk_widget(GtkWidget *widget); + static nsWindow *get_window_for_gdk_window(GdkWindow *window); + static GtkWidget *get_gtk_widget_for_gdk_window(GdkWindow *window); + static GdkCursor *get_gtk_cursor(nsCursor aCursor); diff --git a/SOURCES/mozilla-1324096.patch b/SOURCES/mozilla-1324096.patch deleted file mode 100644 index 4a2691e..0000000 --- a/SOURCES/mozilla-1324096.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/security/certverifier/CertVerifier.cpp b/security/certverifier/CertVerifier.cpp ---- a/security/certverifier/CertVerifier.cpp -+++ b/security/certverifier/CertVerifier.cpp -@@ -120,16 +120,20 @@ IsCertChainRootBuiltInRoot(const UniqueC - } - CERTCertificate* root = rootNode->cert; - if (!root) { - return Result::FATAL_ERROR_LIBRARY_FAILURE; - } - return IsCertBuiltInRoot(root, result); - } - -+// The term "builtin root" traditionally refers to a root CA certificate that -+// has been added to the NSS trust store, because it has been approved -+// for inclusion according to the Mozilla CA policy, and might be accepted -+// by Mozilla applications as an issuer for certificates seen on the public web. - Result - IsCertBuiltInRoot(CERTCertificate* cert, bool& result) - { - result = false; - #ifdef DEBUG - nsCOMPtr component(do_GetService(PSM_COMPONENT_CONTRACTID)); - if (!component) { - return Result::FATAL_ERROR_LIBRARY_FAILURE; -@@ -142,25 +146,38 @@ IsCertBuiltInRoot(CERTCertificate* cert, - return Success; - } - #endif // DEBUG - AutoSECMODListReadLock lock; - for (SECMODModuleList* list = SECMOD_GetDefaultModuleList(); list; - list = list->next) { - for (int i = 0; i < list->module->slotCount; i++) { - PK11SlotInfo* slot = list->module->slots[i]; -- // PK11_HasRootCerts should return true if and only if the given slot has -- // an object with a CKA_CLASS of CKO_NETSCAPE_BUILTIN_ROOT_LIST, which -- // should be true only of the builtin root list. -- // If we can find a copy of the given certificate on the slot with the -- // builtin root list, that certificate must be a builtin. -- if (PK11_IsPresent(slot) && PK11_HasRootCerts(slot) && -- PK11_FindCertInSlot(slot, cert, nullptr) != CK_INVALID_HANDLE) { -- result = true; -- return Success; -+ // We're searching for the "builtin root module", which is a module that -+ // contains an object with a CKA_CLASS of CKO_NETSCAPE_BUILTIN_ROOT_LIST. -+ // We use PK11_HasRootCerts() to identify a module with that property. -+ // In the past, we exclusively used the PKCS#11 module named nssckbi, -+ // which is provided by the NSS library. -+ // Nowadays, some distributions use a replacement module, which contains -+ // the builtin roots, but which also contains additional CA certificates, -+ // such as CAs trusted in a local deployment. -+ // We want to be able to distinguish between these two categories, -+ // because a CA, which may issue certificates for the public web, -+ // is expected to comply with additional requirements. -+ // If the certificate has attribute CKA_NSS_MOZILLA_CA_POLICY set to true, -+ // then we treat it as a "builtin root". -+ if (PK11_IsPresent(slot) && PK11_HasRootCerts(slot)) { -+ CK_OBJECT_HANDLE handle = PK11_FindCertInSlot(slot, cert, nullptr); -+ if (handle != CK_INVALID_HANDLE && -+ PK11_HasAttributeSet(slot, handle, CKA_NSS_MOZILLA_CA_POLICY, -+ false)) { -+ // Attribute was found, and is set to true -+ result = true; -+ break; -+ } - } - } - } - return Success; - } - - static Result - BuildCertChainForOneKeyUsage(NSSCertDBTrustDomain& trustDomain, Input certDER, diff --git a/SOURCES/mozilla-1353817.patch b/SOURCES/mozilla-1353817.patch new file mode 100644 index 0000000..dc8d8f8 --- /dev/null +++ b/SOURCES/mozilla-1353817.patch @@ -0,0 +1,27 @@ +From 1cc652f5525f458b0b4ceb12af24bf5a4367db32 Mon Sep 17 00:00:00 2001 +From: Nicolas Dufresne +Date: Tue, 23 May 2017 13:09:48 -0400 +Subject: [PATCH] Bug 1353817: Include SkNx_neon.h for ARM64 too + +This fixes build errors as arm_neon.h was missing along with some +missing converters. +--- + gfx/skia/skia/src/core/SkNx.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gfx/skia/skia/src/core/SkNx.h b/gfx/skia/skia/src/core/SkNx.h +index 6bca856..b0427aa 100644 +--- a/gfx/skia/skia/src/core/SkNx.h ++++ b/gfx/skia/skia/src/core/SkNx.h +@@ -299,7 +299,7 @@ typedef SkNx<4, uint32_t> Sk4u; + // Include platform specific specializations if available. + #if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2 + #include "../opts/SkNx_sse.h" +-#elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON) ++#elif !defined(SKNX_NO_SIMD) && (defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64)) + #include "../opts/SkNx_neon.h" + #else + +-- +2.9.4 + diff --git a/SOURCES/mozilla-1436242.patch b/SOURCES/mozilla-1436242.patch new file mode 100644 index 0000000..570b7c5 --- /dev/null +++ b/SOURCES/mozilla-1436242.patch @@ -0,0 +1,56 @@ + +# HG changeset patch +# User Jed Davis +# Date 1526943705 21600 +# Node ID 6bb3adfa15c6877f7874429462dad88f8c978c4f +# Parent 4c71c8454879c841871ecf3afb7dbdc96bad97fc +Bug 1436242 - Avoid undefined behavior in IPC fd-passing code. r=froydnj + +MozReview-Commit-ID: 3szIPUssgF5 + +diff --git a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc +--- a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc ++++ b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc +@@ -418,20 +418,37 @@ bool Channel::ChannelImpl::ProcessIncomi + const int* fds; + unsigned num_fds; + unsigned fds_i = 0; // the index of the first unused descriptor + + if (input_overflow_fds_.empty()) { + fds = wire_fds; + num_fds = num_wire_fds; + } else { +- const size_t prev_size = input_overflow_fds_.size(); +- input_overflow_fds_.resize(prev_size + num_wire_fds); +- memcpy(&input_overflow_fds_[prev_size], wire_fds, +- num_wire_fds * sizeof(int)); ++ // This code may look like a no-op in the case where ++ // num_wire_fds == 0, but in fact: ++ // ++ // 1. wire_fds will be nullptr, so passing it to memcpy is ++ // undefined behavior according to the C standard, even though ++ // the memcpy length is 0. ++ // ++ // 2. prev_size will be an out-of-bounds index for ++ // input_overflow_fds_; this is undefined behavior according to ++ // the C++ standard, even though the element only has its ++ // pointer taken and isn't accessed (and the corresponding ++ // operation on a C array would be defined). ++ // ++ // UBSan makes #1 a fatal error, and assertions in libstdc++ do ++ // the same for #2 if enabled. ++ if (num_wire_fds > 0) { ++ const size_t prev_size = input_overflow_fds_.size(); ++ input_overflow_fds_.resize(prev_size + num_wire_fds); ++ memcpy(&input_overflow_fds_[prev_size], wire_fds, ++ num_wire_fds * sizeof(int)); ++ } + fds = &input_overflow_fds_[0]; + num_fds = input_overflow_fds_.size(); + } + + // The data for the message we're currently reading consists of any data + // stored in incoming_message_ followed by data in input_buf_ (followed by + // other messages). + + diff --git a/SOURCES/mozilla-build-arm.patch b/SOURCES/mozilla-build-arm.patch new file mode 100644 index 0000000..e390a28 --- /dev/null +++ b/SOURCES/mozilla-build-arm.patch @@ -0,0 +1,14 @@ +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/SOURCES/rhbz-1354671.patch b/SOURCES/rhbz-1354671.patch new file mode 100644 index 0000000..6ee89b7 --- /dev/null +++ b/SOURCES/rhbz-1354671.patch @@ -0,0 +1,12 @@ +diff -up firefox-53.0/layout/base/nsIPresShell.h.1354671 firefox-53.0/layout/base/nsIPresShell.h +--- firefox-53.0/layout/base/nsIPresShell.h.1354671 2017-04-27 13:07:43.808653320 +0200 ++++ firefox-53.0/layout/base/nsIPresShell.h 2017-04-27 13:09:40.404427641 +0200 +@@ -212,7 +212,7 @@ public: + * 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); diff --git a/SOURCES/rhbz-1423012.patch b/SOURCES/rhbz-1423012.patch deleted file mode 100644 index f5344c2..0000000 --- a/SOURCES/rhbz-1423012.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up firefox-52.0b8/gfx/2d/HelpersCairo.h.old firefox-52.0b8/gfx/2d/HelpersCairo.h ---- firefox-52.0b8/gfx/2d/HelpersCairo.h.old 2017-03-02 09:23:01.230766731 -0500 -+++ firefox-52.0b8/gfx/2d/HelpersCairo.h 2017-03-02 09:23:49.711930251 -0500 -@@ -239,9 +239,9 @@ CairoFormatToGfxFormat(cairo_format_t fo - { - switch (format) { - case CAIRO_FORMAT_ARGB32: -- return SurfaceFormat::A8R8G8B8_UINT32; -+ return SurfaceFormat::B8G8R8A8; - case CAIRO_FORMAT_RGB24: -- return SurfaceFormat::X8R8G8B8_UINT32; -+ return SurfaceFormat::B8G8R8X8; - case CAIRO_FORMAT_A8: - return SurfaceFormat::A8; - case CAIRO_FORMAT_RGB16_565: diff --git a/SOURCES/rhbz-1503632-nss.patch b/SOURCES/rhbz-1503632-nss.patch new file mode 100644 index 0000000..f9f5e4d --- /dev/null +++ b/SOURCES/rhbz-1503632-nss.patch @@ -0,0 +1,28 @@ +diff --git a/security/certverifier/NSSCertDBTrustDomain.cpp b/security/certverifier/NSSCertDBTrustDomain.cpp +--- a/security/certverifier/NSSCertDBTrustDomain.cpp ++++ b/security/certverifier/NSSCertDBTrustDomain.cpp +@@ -1057,22 +1057,20 @@ InitializeNSS(const nsACString& dir, boo + // "/usr/lib/nss/libnssckbi.so". + uint32_t flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE; + if (readOnly) { + flags |= NSS_INIT_READONLY; + } + if (!loadPKCS11Modules) { + flags |= NSS_INIT_NOMODDB; + } +- nsAutoCString dbTypeAndDirectory("sql:"); +- dbTypeAndDirectory.Append(dir); + MOZ_LOG(gCertVerifierLog, LogLevel::Debug, +- ("InitializeNSS(%s, %d, %d)", dbTypeAndDirectory.get(), readOnly, ++ ("InitializeNSS(%s, %d, %d)", PromiseFlatCString(dir).get(), readOnly, + loadPKCS11Modules)); +- SECStatus srv = NSS_Initialize(dbTypeAndDirectory.get(), "", "", ++ SECStatus srv = NSS_Initialize(PromiseFlatCString(dir).get(), "", "", + SECMOD_DB, flags); + if (srv != SECSuccess) { + return srv; + } + + if (!readOnly) { + UniquePK11SlotInfo slot(PK11_GetInternalKeySlot()); + if (!slot) { diff --git a/SOURCES/rhbz-966424.patch b/SOURCES/rhbz-966424.patch deleted file mode 100644 index c4c332e..0000000 --- a/SOURCES/rhbz-966424.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/toolkit/modules/CertUtils.jsm -+++ b/toolkit/modules/CertUtils.jsm -@@ -170,17 +170,19 @@ this.checkCert = - issuerCert = issuerCert.QueryInterface(Ci.nsIX509Cert3); - var tokenNames = issuerCert.getAllTokenNames({}); - - if (!tokenNames || !tokenNames.some(isBuiltinToken)) - throw new Ce(certNotBuiltInErr, Cr.NS_ERROR_ABORT); - } - - function isBuiltinToken(tokenName) { -- return tokenName == "Builtin Object Token"; -+ return tokenName == "Builtin Object Token" || -+ tokenName == "Default Trust" || -+ tokenName == "System Trust"; - } - - /** - * This class implements nsIBadCertListener. Its job is to prevent "bad cert" - * security dialogs from being shown to the user. It is better to simply fail - * if the certificate is bad. See bug 304286. - * - * @param aAllowNonBuiltInCerts (optional) diff --git a/SOURCES/webrtc-arch-cpu.patch b/SOURCES/webrtc-arch-cpu.patch deleted file mode 100644 index 29fd578..0000000 --- a/SOURCES/webrtc-arch-cpu.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/media/webrtc/trunk/build/build_config.h -+++ b/media/webrtc/trunk/build/build_config.h -@@ -123,7 +123,9 @@ - #define ARCH_CPU_PPC_FAMILY 1 - #define ARCH_CPU_PPC64 1 - #define ARCH_CPU_64_BITS 1 -+#ifndef _LITTLE_ENDIAN - #define ARCH_CPU_BIG_ENDIAN 1 -+#endif - #elif defined(__ppc__) || defined(__powerpc__) - #define ARCH_CPU_PPC_FAMILY 1 - #define ARCH_CPU_PPC 1 -@@ -156,6 +158,9 @@ - #elif defined(__alpha__) - #define ARCH_CPU_ALPHA 1 - #define ARCH_CPU_64_BITS 1 -+#elif defined(__aarch64__) -+#define ARCH_CPU_AARCH64 1 -+#define ARCH_CPU_64_BITS 1 - #else - #error Please add support for your architecture in build/build_config.h - #endif diff --git a/SOURCES/xulrunner-24.0-jemalloc-ppc.patch b/SOURCES/xulrunner-24.0-jemalloc-ppc.patch index d0c3d8c..75aed9a 100644 --- a/SOURCES/xulrunner-24.0-jemalloc-ppc.patch +++ b/SOURCES/xulrunner-24.0-jemalloc-ppc.patch @@ -1,12 +1,12 @@ -diff -up mozilla-aurora/memory/mozjemalloc/jemalloc.c.jemalloc-ppc.patch mozilla-aurora/memory/mozjemalloc/jemalloc.c ---- mozilla-aurora/memory/mozjemalloc/jemalloc.c.jemalloc-ppc.patch 2016-11-18 08:56:32.242742746 +0100 -+++ mozilla-aurora/memory/mozjemalloc/jemalloc.c 2016-11-18 08:59:51.809071876 +0100 -@@ -1096,7 +1096,7 @@ static const bool config_recycle = false - * controlling the malloc behavior are defined as compile-time constants - * for best performance and cannot be altered at runtime. - */ --#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__aarch64__) -+#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__aarch64__) && !defined(__powerpc__) - #define MALLOC_STATIC_SIZES 1 +diff -up firefox-60.0/memory/build/mozjemalloc.cpp.ppc-jemalloc firefox-60.0/memory/build/mozjemalloc.cpp +--- firefox-60.0/memory/build/mozjemalloc.cpp.ppc-jemalloc 2018-06-06 14:39:28.454371053 +0200 ++++ firefox-60.0/memory/build/mozjemalloc.cpp 2018-06-06 14:39:40.242397928 +0200 +@@ -180,7 +180,7 @@ using namespace mozilla; + // Debug builds are opted out too, for test coverage. + #ifndef MOZ_DEBUG + #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \ +- !defined(__aarch64__) ++ !defined(__aarch64__) && !defined(__powerpc__) + #define MALLOC_STATIC_PAGESIZE 1 + #endif #endif - diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec index 4e407d7..5890ea3 100644 --- a/SPECS/firefox.spec +++ b/SPECS/firefox.spec @@ -1,499 +1,572 @@ -%define system_nss 1 -%global nspr_version 4.13.1 -%global nss_version 3.28.4-11 -%define system_sqlite 0 -%define sqlite_version 3.8.4.2 -%define system_ffi 1 -%define ffi_version 3.0.9 -%define use_bundled_yasm 1 -%define use_bundled_python 0 -%define python_version 2.7.8 -%define use_bundled_gcc 0 -%define gcc_version 4.8.2-16 -%define cairo_version 1.10.2 -%define freetype_version 2.1.9 -%define system_jpeg 1 -%define system_libatomic 0 -%define with_intl_api 1 -%define use_baselinejit 1 -%define official_branding 1 -%define use_gtk3 0 - - -%define debug_build 0 -# This is for local builds or builds in mock with --no-clean -# It skips building of gcc, binutils and yasm rpms when they exists, it just installs -# them and doesn't delete them to allow recycling them in next build. -# SHOULD ALWAYS BE 0 WHEN BUILDING IN BREW -%define do_not_clean_rpms 0 - -# Configure and override build options for various platforms and RHEL versions -# ============================================================================ - -# RHEL7 -%if 0%{?rhel} == 7 -%ifarch s390x -%define use_bundled_gcc 1 +# Use system nspr/nss? FIXME +%global system_nss 1 +%define use_bundled_ffi 0 + +# Don't use system hunspell for now +%global system_hunspell 0 +%global system_sqlite 0 + +%if 0%{?rhel} > 6 +%global system_ffi 1 +%else +%global system_ffi 0 %endif +%if 0%{?rhel} < 8 +%global use_dts 1 %endif -# RHEL6 -%if 0%{?rhel} == 6 -%define use_bundled_python 1 -%define use_bundled_gcc 1 -%define use_bundled_yasm 1 -%define system_ffi 0 -%define use_bundled_binutils 1 -%endif +%global use_rustts 1 +%global dts_version 7 +%global rst_version 7 + +# Use system cairo? +%global system_cairo 0 + +# Use system libvpx? +%global system_libvpx 0 -# Require libatomic for ppc -%ifarch ppc -%define system_libatomic 1 +# Use system libicu? +%if 0%{?fedora} > 27 +%global system_libicu 0 +%else +%global system_libicu 0 %endif + # Big endian platforms -%ifarch ppc ppc64 s390 s390x +%ifarch ppc64 s390x # Javascript Intl API is not supported on big endian platforms right now: # https://bugzilla.mozilla.org/show_bug.cgi?id=1322212 -%define with_intl_api 1 -%define big_endian 1 +%global big_endian 1 %endif -# ============================================================================ +# Hardened build? +%global hardened_build 1 -# Avoid patch failures -%define _default_patch_fuzz 2 +%global system_jpeg 1 +%ifarch %{ix86} x86_64 +%global run_tests 0 +%else +%global run_tests 0 +%endif + +# Build as a debug package? +%global debug_build 0 + +%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html +%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} +# Minimal required versions +%global cairo_version 1.13.1 +%global freetype_version 2.1.9 +%if %{?system_libvpx} +%global libvpx_version 1.4.0 +%endif + +%if %{?system_nss} +%global nspr_version 4.19.0 +# NSS/NSPR quite often ends in build override, so as requirement the version +# we're building against could bring us some broken dependencies from time to time. +#%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) +%global nspr_build_version %{nspr_version} +%global nss_version 3.36.0 +#%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) +%global nss_build_version %{nss_version} +%endif -%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html -%define firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} -%define mozappdir %{_libdir}/%{name} -%define build_langpacks 1 -%define langpackdir %{mozappdir}/langpacks %if %{?system_sqlite} +%global sqlite_version 3.8.4.2 # The actual sqlite version (see #480989): %global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) %endif +%define bundled_python_version 2.7.13 +%define use_bundled_yasm 1 + +# GTK3 bundling +%define avoid_bundled_rebuild 0 +%if 0%{?rhel} == 6 +%define bundle_gtk3 1 +# In-tree libffi is able to build on following platforms, we have to bundle it for the rest +%ifnarch x86_64 i686 aarch64 +%define use_bundled_ffi 1 +%endif +%endif + +%define gtk3_nvr 3.22.26-1 +%define gtk3_install_path %{mozappdir}/bundled + +%if 0%{?bundle_gtk3} +# We could use %%include, but in %%files, %%post and other sections, but in these +# sections it could lead to syntax errors about unclosed %%if. Work around it by +# using the following macro +%define include_file() %{expand:%(cat '%1')} +%endif + + +%global mozappdir %{_libdir}/%{name} +%global mozappdirdev %{_libdir}/%{name}-devel-%{version} +%global langpackdir %{mozappdir}/distribution/extensions +%global tarballdir %{name}-%{version} +%global pre_version esr + +%global official_branding 1 +%global build_langpacks 1 + +%global enable_mozilla_crashreporter 0 +%if !%{debug_build} +%ifarch %{ix86} x86_64 +%global enable_mozilla_crashreporter 0 +%endif +%endif + Summary: Mozilla Firefox Web browser Name: firefox -Version: 52.8.0 -Release: 1%{?dist} -URL: http://www.mozilla.org/projects/firefox/ +Version: 60.1.0 +Release: 4%{?pre_tag}%{?dist} +URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ -Group: Applications/Internet - -%define ext_version esr -%define tarballdir firefox-%{version}%{?ext_version} +%if 0%{?rhel} == 7 +ExcludeArch: s390 ppc +%endif +%if 0%{?rhel} == 6 +ExclusiveArch: i686 x86_64 ppc64 s390x +%endif -# From ftp://archive.mozilla.org/pub/firefox/releases/%{version}%{?ext_version}/source -Source0: firefox-%{version}%{?ext_version}.source.tar.xz +Source0: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz %if %{build_langpacks} -Source1: firefox-langpacks-%{version}%{?ext_version}-20180509.tar.xz +Source1: firefox-langpacks-%{version}%{?pre_version}-20180622.tar.xz %endif Source10: firefox-mozconfig Source12: firefox-redhat-default-prefs.js Source20: firefox.desktop -Source600: firefox.sh.in.rhel6 -Source700: firefox.sh.in.rhel7 +Source21: firefox.sh.in Source23: firefox.1 Source24: mozilla-api-key -Source100: find-external-requires -Source200: https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz -Source300: gcc48-%{gcc_version}.el5.src.rpm +Source25: firefox-symbolic.svg +Source26: distribution.ini +Source27: google-api-key + +Source200: gtk3-private-%{gtk3_nvr}.el6.src.rpm +Source201: gtk3-private-%{gtk3_nvr}-post.inc +Source202: gtk3-private-%{gtk3_nvr}-postun.inc +Source203: gtk3-private-%{gtk3_nvr}-posttrans.inc +Source204: gtk3-private-%{gtk3_nvr}-files.inc +Source205: gtk3-private-%{gtk3_nvr}-setup-flags-env.inc +Source206: gtk3-private-%{gtk3_nvr}-requires-provides-filter.inc Source301: yasm-1.2.0-3.el5.src.rpm -Source302: devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm +Source303: libffi-3.0.13-18.el7_3.src.rpm +#Python 2.7 +Source100: https://www.python.org/ftp/python/%{bundled_python_version}/Python-%{bundled_python_version}.tar.xz # Build patches -Patch0: firefox-install-dir.patch -Patch5: xulrunner-24.0-jemalloc-ppc.patch -Patch6: webrtc-arch-cpu.patch -Patch8: firefox-ppc64le.patch -#ALREADY Patch19: mozilla-1319374-skia-endian.patch -Patch20: build-s390-atomic.patch -Patch21: build-icu-big-endian.patch -Patch22: build-missing-getrandom.patch -Patch23: build-nss-version.patch -Patch24: build-nss-prbool.patch -Patch25: build-s390-missing-include.patch - -# RHEL patches -Patch101: firefox-default.patch -# TODO code changed a lot, need to test it -Patch102: firefox-enable-addons.patch -Patch103: rhbz-966424.patch -Patch106: firefox-enable-plugins.patch -Patch110: mozilla-1170092-etc-conf.patch -Patch111: rhbz-1173156.patch -Patch112: mozilla-256180.patch -Patch114: rhbz-1423012.patch -Patch116: mozilla-1005640-accept-lang.patch +Patch3: mozilla-build-arm.patch +Patch4: build-mozconfig-fix.patch +Patch5: build-gdk-version.patch +Patch6: build-nss-version.patch +Patch26: build-icu-big-endian.patch +# Also fixes s390x: https://bugzilla.mozilla.org/show_bug.cgi?id=1376268 +Patch29: build-big-endian.patch +# Always feel lucky for unsupported platforms: +# https://bugzilla.mozilla.org/show_bug.cgi?id=1347128 +Patch37: build-jit-atomic-always-lucky.patch +Patch40: build-aarch64-skia.patch +Patch41: build-debug-qcms.patch +Patch43: xulrunner-24.0-jemalloc-ppc.patch +Patch44: firefox-disable-dbus-remote.patch + +# Fedora/RHEL specific patches +Patch215: firefox-enable-addons.patch +Patch219: rhbz-1173156.patch +Patch221: firefox-fedora-ua.patch +Patch224: mozilla-1170092.patch +Patch225: mozilla-1005640-accept-lang.patch +#ARM run-time patch +Patch226: rhbz-1354671.patch +Patch230: rhbz-1503632-nss.patch # Upstream patches -# Skia support for big endian platforms, since patch got review- I think we can delete that: -#Patch201: mozilla-1005535.patch -# Kaie's patch, we'll most likely need this one -Patch202: mozilla-1152515.patch -Patch203: mozilla-1324096.patch +Patch402: mozilla-1196777.patch +Patch406: mozilla-256180.patch +Patch413: mozilla-1353817.patch +Patch415: mozilla-1436242.patch -# RHEL7 patches +# Debian patches -# RHEL6 patches -# HOPEFULY fixed Patch401: build-el6-harfbuzz-old-glib.patch - -# --------------------------------------------------- -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) - -BuildRequires: desktop-file-utils +%if %{?system_nss} +BuildRequires: pkgconfig(nspr) >= %{nspr_version} +BuildRequires: pkgconfig(nss) >= %{nss_version} +BuildRequires: nss-static >= %{nss_version} +%endif +%if %{?system_cairo} +BuildRequires: pkgconfig(cairo) >= %{cairo_version} +%endif +BuildRequires: pkgconfig(libpng) +BuildRequires: xz +BuildRequires: libXt-devel BuildRequires: mesa-libGL-devel +Requires: liberation-fonts-common +Requires: liberation-sans-fonts +%if %{?system_jpeg} +BuildRequires: libjpeg-devel +%endif BuildRequires: zip BuildRequires: bzip2-devel -BuildRequires: zlib-devel -BuildRequires: libIDL-devel -%if %{?use_gtk3} -BuildRequires: gtk3-devel -%else -BuildRequires: gtk2-devel -%endif -BuildRequires: gnome-vfs2-devel -BuildRequires: libgnome-devel -BuildRequires: libgnomeui-devel +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(libIDL-2.0) +BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: krb5-devel -BuildRequires: pango-devel -BuildRequires: freetype-devel >= %{freetype_version} -BuildRequires: libXt-devel -BuildRequires: libXrender-devel -BuildRequires: startup-notification-devel -BuildRequires: alsa-lib-devel -BuildRequires: libnotify-devel -BuildRequires: autoconf213 -BuildRequires: mesa-libGL-devel +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(freetype2) >= %{freetype_version} +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(xrender) +%if %{?system_hunspell} +BuildRequires: hunspell-devel +%endif +BuildRequires: pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(dri) +BuildRequires: pkgconfig(libcurl) +BuildRequires: dbus-glib-devel +%if %{?system_libvpx} +BuildRequires: libvpx-devel >= %{libvpx_version} +%endif BuildRequires: autoconf213 -BuildRequires: xz -%if ! %{use_bundled_yasm}0 -BuildRequires: yasm +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(gconf-2.0) + +%if 0%{?use_dts} +BuildRequires: devtoolset-%{dts_version}-gcc-c++ +BuildRequires: devtoolset-%{dts_version}-gcc +BuildRequires: devtoolset-%{dts_version}-binutils +BuildRequires: devtoolset-%{dts_version}-libatomic-devel +%if 0%{?rhel} > 6 +BuildRequires: llvm-toolset-%{dts_version} +BuildRequires: llvm-toolset-%{dts_version}-llvm-devel %endif -%if %{?system_sqlite} -BuildRequires: sqlite-devel >= %{sqlite_version} -Requires: sqlite >= %{sqlite_build_version} %endif -%if %{?system_nss} -BuildRequires: nspr-devel >= %{nspr_version} -BuildRequires: nss-devel >= %{nss_version} -Requires: nspr >= %{nspr_version} -Requires: nss >= %{nss_version} +%if 0%{?use_rustts} +BuildRequires: rust-toolset-%{rst_version}-cargo +BuildRequires: rust-toolset-%{rst_version}-rust %endif -%if %{?system_sqlite} -BuildRequires: sqlite-devel >= %{sqlite_version} -Requires: sqlite >= %{sqlite_build_version} +%if 0%{?rhel} == 8 +BuildRequires: llvm-toolset-%{dts_version} +BuildRequires: llvm-toolset-%{dts_version}-llvm-devel %endif -%if %{?system_ffi} -BuildRequires: libffi-devel >= %{ffi_version} -Requires: libffi >= %{ffi_version} +%if 0%{?rhel} == 6 +# Needed for Python in RHEL6 +BuildRequires: openssl-devel %endif -BuildRequires: libpng-devel -BuildRequires: libjpeg-devel -BuildRequires: hunspell-devel -%if %{system_libatomic} -BuildRequires: libatomic -Requires: libatomic + +%if 0%{?bundle_gtk3} +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: cups-devel +BuildRequires: dbus-devel +BuildRequires: desktop-file-utils +BuildRequires: expat-devel +BuildRequires: fontpackages-devel +BuildRequires: gamin-devel +BuildRequires: gettext-devel +BuildRequires: git +BuildRequires: intltool +BuildRequires: jasper-devel +BuildRequires: libepoxy-devel +BuildRequires: libcroco-devel +BuildRequires: libffi-devel +BuildRequires: libpng-devel +BuildRequires: libtiff-devel +BuildRequires: libtool +BuildRequires: libxml2-devel +BuildRequires: libX11-devel +BuildRequires: libXcomposite-devel +BuildRequires: libXcursor-devel +BuildRequires: libXinerama-devel +BuildRequires: libXevie-devel +BuildRequires: libXrandr-devel +BuildRequires: libXrender-devel +BuildRequires: libXtst-devel +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libEGL-devel +BuildRequires: pixman-devel +BuildRequires: rest-devel +BuildRequires: readline-devel +%else +BuildRequires: gtk3-devel +BuildRequires: glib2-devel %endif -# RHEL7 requires -%if 0%{?rhel} == 7 -Requires: redhat-indexhtml -BuildRequires: pulseaudio-libs-devel -BuildRequires: system-bookmarks Requires: mozilla-filesystem -Requires: liberation-fonts-common -Requires: liberation-sans-fonts -BuildRequires: dbus-glib-devel >= 0.60 +Requires: p11-kit-trust +%if %{?system_nss} +Requires: nspr >= %{nspr_build_version} +Requires: nss >= %{nss_build_version} +%endif +BuildRequires: python2-devel + +%if 0%{?fedora} > 25 +# For early testing of rhbz#1400293 mozbz#1324096 on F26 and Rawhide, +# temporarily require the specific NSS build with the backports. +# Can be removed after firefox is changed to require NSS 3.30. +BuildRequires: nss-devel >= 3.29.1-2.1 +Requires: nss >= 3.29.1-2.1 %endif -# RHEL6 requires -%if 0%{?rhel} == 6 BuildRequires: desktop-file-utils BuildRequires: system-bookmarks -Requires: system-bookmarks Requires: redhat-indexhtml -Requires: mozilla-filesystem -Requires: gtk2 >= 2.24 -BuildRequires: pulseaudio-libs-devel -BuildRequires: system-bookmarks -Requires: mozilla-filesystem -Requires: liberation-fonts-common -Requires: liberation-sans-fonts +%if %{?system_sqlite} +BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version} +Requires: sqlite >= %{sqlite_build_version} %endif -Obsoletes: mozilla <= 37:1.7.13 -Obsoletes: firefox < 38.0 -Conflicts: firefox < 38.0 -Provides: webclient -%if %{use_bundled_python} -BuildRequires: openssl-devel +%if %{?run_tests} +BuildRequires: xorg-x11-server-Xvfb %endif -# GCC 4.8 BuildRequires -# ================================================================================== -%if %{use_bundled_gcc} -%ifarch s390x -%global multilib_32_arch s390 -%endif -%ifarch sparc64 -%global multilib_32_arch sparcv9 -%endif -%ifarch ppc64 -%global multilib_32_arch ppc -%endif -%ifarch x86_64 -%if 0%{?rhel} >= 6 -%global multilib_32_arch i686 -%else -%global multilib_32_arch i386 -%endif +%if %{?system_ffi} + %if !%{use_bundled_ffi}0 +BuildRequires: pkgconfig(libffi) + %endif %endif -%global multilib_64_archs sparc64 ppc64 s390x x86_64 - -%if 0%{?rhel} >= 6 -# Need binutils which support --build-id >= 2.17.50.0.17-3 -# Need binutils which support %gnu_unique_object >= 2.19.51.0.14 -# Need binutils which support .cfi_sections >= 2.19.51.0.14-33 -BuildRequires: binutils >= 2.19.51.0.14-33 -# While gcc doesn't include statically linked binaries, during testing -# -static is used several times. -BuildRequires: glibc-static -%else -# Don't have binutils which support --build-id >= 2.17.50.0.17-3 -# Don't have binutils which support %gnu_unique_object >= 2.19.51.0.14 -# Don't have binutils which support .cfi_sections >= 2.19.51.0.14-33 -BuildRequires: binutils >= 2.17.50.0.2-8 -%endif -BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils -BuildRequires: /usr/bin/pod2man -%if 0%{?rhel} >= 7 -BuildRequires: texinfo-tex -%endif -#BuildRequires: systemtap-sdt-devel >= 1.3 -# For VTA guality testing -BuildRequires: gdb -# Make sure pthread.h doesn't contain __thread tokens -# Make sure glibc supports stack protector -# Make sure glibc supports DT_GNU_HASH -BuildRequires: glibc-devel >= 2.4.90-13 -%if 0%{?rhel} >= 6 -BuildRequires: elfutils-devel >= 0.147 -BuildRequires: elfutils-libelf-devel >= 0.147 -%else -BuildRequires: elfutils-devel >= 0.72 -%endif -%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha -# Make sure glibc supports TFmode long double -BuildRequires: glibc >= 2.3.90-35 -%endif -%ifarch %{multilib_64_archs} sparcv9 ppc -# Ensure glibc{,-devel} is installed for both multilib arches -BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so -%endif -%ifarch ia64 -BuildRequires: libunwind >= 0.98 -%endif -# Need .eh_frame ld optimizations -# Need proper visibility support -# Need -pie support -# Need --as-needed/--no-as-needed support -# On ppc64, need omit dot symbols support and --non-overlapping-opd -# Need binutils that owns /usr/bin/c++filt -# Need binutils that support .weakref -# Need binutils that supports --hash-style=gnu -# Need binutils that support mffgpr/mftgpr -#%if 0%{?rhel} >= 6 -## Need binutils which support --build-id >= 2.17.50.0.17-3 -## Need binutils which support %gnu_unique_object >= 2.19.51.0.14 -## Need binutils which support .cfi_sections >= 2.19.51.0.14-33 -#Requires: binutils >= 2.19.51.0.14-33 -#%else -## Don't have binutils which support --build-id >= 2.17.50.0.17-3 -## Don't have binutils which support %gnu_unique_object >= 2.19.51.0.14 -## Don't have binutils which support .cfi_sections >= 2.19.51.0.14-33 -#Requires: binutils >= 2.17.50.0.2-8 -#%endif -## Make sure gdb will understand DW_FORM_strp -#Conflicts: gdb < 5.1-2 -#Requires: glibc-devel >= 2.2.90-12 -#%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha -## Make sure glibc supports TFmode long double -#Requires: glibc >= 2.3.90-35 -#%endif -#Requires: libgcc >= 4.1.2-43 -#Requires: libgomp >= 4.4.4-13 -#%if 0%{?rhel} == 6 -#Requires: libstdc++ >= 4.4.4-13 -#%else -#Requires: libstdc++ = 4.1.2 -#%endif -##FIXME gcc version -#Requires: libstdc++-devel = %{version}-%{release} -BuildRequires: gmp-devel >= 4.1.2-8 -%if 0%{?rhel} >= 6 -BuildRequires: mpfr-devel >= 2.2.1 -%endif -%if 0%{?rhel} >= 7 -BuildRequires: libmpc-devel >= 0.8.1 -%endif - -%endif # bundled gcc BuildRequires -# ================================================================================== -# Override internal dependency generator to avoid showing libraries provided by this package -# in dependencies: -AutoProv: 0 -%define _use_internal_dependency_generator 0 -%define __find_requires %{SOURCE100} +Obsoletes: mozilla <= 37:1.7.13 +Provides: webclient %description Mozilla Firefox is an open-source web browser, designed for standards compliance, performance and portability. +%if %{enable_mozilla_crashreporter} +%global moz_debug_prefix %{_prefix}/lib/debug +%global moz_debug_dir %{moz_debug_prefix}%{mozappdir} +%global uname_m %(uname -m) +%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip +%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name} +%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list +%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo +%package -n %{crashreporter_pkg_name} +Summary: Debugging symbols used by Mozilla's crash reporter servers +%description -n %{crashreporter_pkg_name} +This package provides debug information for Firefox, for use by +Mozilla's crash reporter servers. If you are trying to locally +debug %{name}, you want to install %{name}-debuginfo instead. +%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list +%endif + +%if %{run_tests} +%global testsuite_pkg_name mozilla-%{name}-testresults +%package -n %{testsuite_pkg_name} +Summary: Results of testsuite +%description -n %{testsuite_pkg_name} +This package contains results of tests executed during build. +%files -n %{testsuite_pkg_name} +/test_results +%endif + #--------------------------------------------------------------------- %prep -%setup -q -c -cd %{tarballdir} - -# Build patches -# We have to keep original patch backup extension to go thru configure without problems with tests -%patch0 -p1 -b .orig -%patch5 -p1 -b .jemalloc-ppc.patch -%patch6 -p1 -b .webrtc-arch-cpu -%patch8 -p2 -b .ppc64le -#ALREADY %patch19 -p1 -b .skia-endian -%patch20 -p1 -b .s390-atomic -%patch22 -p1 -b .missing-getrandom -%patch23 -p1 -b .nss-version -%patch24 -p1 -b .nss-prbool -%patch25 -p1 -b .s390-missing-include - -# RPM specific patches -%patch101 -p1 -b .default -%patch102 -p1 -b .addons -%patch103 -p1 -b .rhbz-966424 -%patch106 -p2 -b .plugins -%patch110 -p1 -b .moz-1170092-etc-conf -%patch111 -p2 -b .rhbz-1173156 -%patch112 -p1 -b .mozbz-256180 -%patch114 -p1 -b .rhbz-1423012 -%patch116 -p1 -b .mozbz-1005640-accept-lang +%setup -q -T -c -n python -a 100 +%setup -q -n %{tarballdir} +# Build patches, can't change backup suffix from default because during build +# there is a compare of config and js/config directories and .orig suffix is +# ignored during this compare. + +%patch29 -p1 -b .big-endian +%patch37 -p1 -b .jit-atomic-lucky +%patch40 -p1 -b .aarch64-skia +%if %{?debug_build} +%patch41 -p1 -b .build-debug-qcms +%endif +%patch43 -p1 -b .jemalloc-ppc +# Disable DBus remote on RHEL6 as it does not build here. +%if 0%{?rhel} == 6 +%patch44 -p1 -b .disable-dbus-remote +%endif -# Upstream patches -#%patch201 -p1 -b .mozbz-1005535 see Patch201 comment -%patch202 -p1 -b .mozbz-1152515 -%patch203 -p1 -b .mozbz-1324096 +%patch3 -p1 -b .arm +%patch4 -p1 -b .build-mozconfig-fix +%patch5 -p1 -b .gdk-version +%patch6 -p1 -b .nss-version + +# Fedora patches +%patch215 -p1 -b .addons +%patch219 -p2 -b .rhbz-1173156 +%patch221 -p2 -b .fedora-ua +%patch224 -p1 -b .1170092 +%patch225 -p1 -b .1005640-accept-lang + +# This ensures no migration of certdb to sqlite on the RHEL6 and RHEL7. +# This needs to stay for the future releases +%if 0%{?rhel} < 8 +%patch230 -p1 -b .1503632-nss +%endif -# RHEL7 only patches -%if %{?rhel} == 7 +#ARM run-time patch +%ifarch aarch64 +%patch226 -p1 -b .1354671 %endif -#%if %{?rhel} == 6 -#HOPEFULY FIXED %patch401 -p1 -b .harfbuzz-old-glib -#%endif +%patch402 -p1 -b .1196777 +%patch406 -p1 -b .256180 +%patch413 -p1 -b .1353817 +%patch415 -p1 -b .1436242 # Patch for big endian platforms only %if 0%{?big_endian} -%patch21 -p1 -b .s390-atomic +%patch26 -p1 -b .icu %endif %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig +%if %{official_branding} +echo "ac_add_options --enable-official-branding" >> .mozconfig +%endif %{__cp} %{SOURCE24} mozilla-api-key +%{__cp} %{SOURCE27} google-api-key -function add_to_mozconfig() { - mozconfig_entry=$1 - echo "ac_add_options --$1" >> .mozconfig -} +%if %{?system_nss} +echo "ac_add_options --with-system-nspr" >> .mozconfig +echo "ac_add_options --with-system-nss" >> .mozconfig +%else +echo "ac_add_options --without-system-nspr" >> .mozconfig +echo "ac_add_options --without-system-nss" >> .mozconfig +%endif -# Modify mozconfig file -%if %{official_branding} - add_to_mozconfig "enable-official-branding" +%if %{?system_sqlite} +echo "ac_add_options --enable-system-sqlite" >> .mozconfig +%else +echo "ac_add_options --disable-system-sqlite" >> .mozconfig %endif -%if %{?use_gtk3} - add_to_mozconfig "enable-default-toolkit=cairo-gtk3" +%if %{?system_cairo} +echo "ac_add_options --enable-system-cairo" >> .mozconfig %else - add_to_mozconfig "enable-default-toolkit=cairo-gtk2" +echo "ac_add_options --disable-system-cairo" >> .mozconfig %endif -%if %{?system_sqlite} - add_to_mozconfig "enable-system-sqlite" +%if 0%{?use_bundled_ffi} +echo "ac_add_options --enable-system-ffi" >> .mozconfig +%endif +%if 0%{?system_ffi} +echo "ac_add_options --enable-system-ffi" >> .mozconfig +%endif + +%ifarch %{arm} +echo "ac_add_options --disable-elf-hack" >> .mozconfig +%endif + +%if %{?system_hunspell} +echo "ac_add_options --enable-system-hunspell" >> .mozconfig %else - add_to_mozconfig "disable-system-sqlite" +echo "ac_add_options --disable-system-hunspell" >> .mozconfig %endif -%if %{?system_nss} - add_to_mozconfig "with-system-nspr" - add_to_mozconfig "with-system-nss" +%if %{?debug_build} +echo "ac_add_options --enable-debug" >> .mozconfig +echo "ac_add_options --disable-optimize" >> .mozconfig +%else +%global optimize_flags "none" +# Fedora 26 (gcc7) needs to disable default build flags (mozbz#1342344) +%if 0%{?fedora} > 25 +%ifnarch s390 s390x +%global optimize_flags "-g -O2" +%endif +%endif +%ifarch armv7hl +# ARMv7 need that (rhbz#1426850) +%global optimize_flags "-g -O2 -fno-schedule-insns" +%endif +%ifarch ppc64le aarch64 +%global optimize_flags "-g -O2" +%endif +%if %{optimize_flags} != "none" +echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig %else - add_to_mozconfig "without-system-nspr" - add_to_mozconfig "without-system-nss" +echo 'ac_add_options --enable-optimize' >> .mozconfig +%endif +echo "ac_add_options --disable-debug" >> .mozconfig %endif -# RHEL 7 mozconfig changes: -%if 0%{rhel} >= 6 - add_to_mozconfig "enable-startup-notification" - add_to_mozconfig "enable-jemalloc" +# Second arches fail to start with jemalloc enabled +%ifnarch %{ix86} x86_64 +echo "ac_add_options --disable-jemalloc" >> .mozconfig %endif -# RHEL 6 -%if 0%{rhel} == 6 - # Disable dbus, because we're unable to build with its support in brew - add_to_mozconfig "disable-dbus" - # ctypes require system libffi for these platforms and RHEL6 does not have libffi >= 3.0.9 available - %ifarch ppc64 ppc64le ppc s390 s390x - add_to_mozconfig "disable-ctypes" - %endif +%ifnarch %{ix86} x86_64 +echo "ac_add_options --disable-webrtc" >> .mozconfig %endif -%ifarch aarch64 ppc64 ppc64le ppc s390 s390x - add_to_mozconfig "disable-ion" +%if !%{enable_mozilla_crashreporter} +echo "ac_add_options --disable-crashreporter" >> .mozconfig %endif -%ifarch aarch64 ppc ppc64 s390 s390x - add_to_mozconfig "disable-skia" +%if %{?run_tests} +echo "ac_add_options --enable-tests" >> .mozconfig %endif -# Debug build flags -%if %{?debug_build} - add_to_mozconfig "enable-debug" - add_to_mozconfig "disable-optimize" +%if !%{?system_jpeg} +echo "ac_add_options --without-system-jpeg" >> .mozconfig %else - add_to_mozconfig "disable-debug" - add_to_mozconfig "enable-optimize" +echo "ac_add_options --with-system-jpeg" >> .mozconfig %endif -%if %{?with_intl_api} - add_to_mozconfig "with-intl-api" +%if %{?system_libvpx} +echo "ac_add_options --with-system-libvpx" >> .mozconfig %else - add_to_mozconfig "without-intl-api" +echo "ac_add_options --without-system-libvpx" >> .mozconfig %endif -#TODO reconsider this, really needed for RHEL7 or even RHEL6? Disabling this -#also require to disable-fmp4 and most likely disable-eme -#Disabled due to rhbz#1330898 -#add_to_mozconfig "disable-ffmpeg" -#TODO what's this? -#FIXME RTTI?? RHEL5/6 -# ac_add_options --enable-cpp-rtti -# RHEL7: ac_add_options --with-system-bz2 -# RHEL5: never been there, but is it usable --enable-gnomeui ???? +%if %{?system_libicu} +echo "ac_add_options --with-system-icu" >> .mozconfig +%else +echo "ac_add_options --without-system-icu" >> .mozconfig +%endif +%ifarch s390 s390x +echo "ac_add_options --disable-ion" >> .mozconfig +%endif -%if %{use_bundled_python} - # Prepare Python 2.7 sources - tar xf %{SOURCE200} +%ifarch %{ix86} +echo "ac_add_options --disable-stylo" >> .mozconfig +%endif +%if 0%{?rhel} == 6 +echo "ac_add_options --disable-stylo" >> .mozconfig %endif +# Remove executable bit to make brp-mangle-shebangs happy. +chmod -x third_party/rust/itertools/src/lib.rs + #--------------------------------------------------------------------- %build +#GTK3 >> +%if ! 0%{?avoid_bundled_rebuild} + rm -rf %{_buildrootdir}/* +%endif +export PATH="%{_buildrootdir}/bin:$PATH" + +function install_rpms_to_current_dir() { + PACKAGE_RPM=$(eval echo $1) + PACKAGE_DIR=%{_rpmdir} + + if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then + # Hack for tps tests + ARCH_STR=%{_arch} + %ifarch i386 i686 + ARCH_STR="i?86" + %endif + PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" + fi + + for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM) + do + echo "$package" + rpm2cpio "$package" | cpio -idu + done +} + function build_bundled_package() { PACKAGE_RPM=$1 PACKAGE_FILES=$2 @@ -501,7 +574,7 @@ function build_bundled_package() { PACKAGE_DIR="%{_topdir}/RPMS" PACKAGE_ALREADY_BUILD=0 - %if %{do_not_clean_rpms} + %if %{?avoid_bundled_rebuild} if ls $PACKAGE_DIR/$PACKAGE_RPM; then PACKAGE_ALREADY_BUILD=1 fi @@ -526,7 +599,7 @@ function build_bundled_package() { echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "===============================" rpm2cpio $PACKAGE_DIR/$PACKAGE_RPM | cpio -iduv # Clean rpms to avoid including them to package - %if ! %{do_not_clean_rpms}0 + %if ! 0%{?avoid_bundled_rebuild} rm -f $PACKAGE_FILES %endif @@ -543,55 +616,71 @@ function build_bundled_package() { build_bundled_package 'yasm-1*.rpm' 'yasm-*.rpm' '%{SOURCE301}' %endif -# Install local binutils if needed -# ====================================== -%if 0%{?use_bundled_binutils} - build_bundled_package 'binutils-2*.rpm' 'binutils*.rpm' '%{SOURCE302}' -%endif -# Install local GCC if needed -# ====================================== -%if %{use_bundled_gcc} - build_bundled_package 'gcc48-%{gcc_version}*.rpm' 'gcc48-*.rpm' '%{SOURCE300}' - export CXX=g++ +%if 0%{?bundle_gtk3} + %if ! 0%{?avoid_bundled_rebuild} + rpm -ivh %{SOURCE200} + rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/gtk3-private.spec + %endif + rm -rf %{_buildrootdir}/* + pushd %{_buildrootdir} + install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm + install_rpms_to_current_dir gtk3-private-devel-%{gtk3_nvr}*.rpm + install_rpms_to_current_dir gtk3-private-rpm-scripts-%{gtk3_nvr}*.rpm + popd %endif +# If needed build the bundled python 2.7 and put it in the PATH +if [ $(python --version 2>&1 | awk '{ print substr ($2, 0, 3) }') = "2.6" ]; then + pushd %{_builddir}/python/Python-%{bundled_python_version} + #if ! 0%{?avoid_bundled_rebuild} + # Build Python 2.7 and set environment + ./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib" + #endif + make %{?_smp_mflags} install V=1 + popd +fi -# Install local Python if needed -# ====================================== -%if %{use_bundled_python} - echo "Rebuilding Python"; echo "===============================" - pushd %{tarballdir} - - # Build Python 2.7 and set environment - BUILD_DIR=`pwd`/python_build - cd Python-%{python_version} - ./configure --prefix=$BUILD_DIR --exec-prefix=$BUILD_DIR - make - make install - cd - - - PATH=$BUILD_DIR/bin:$PATH - export PATH +%if 0%{?bundle_gtk3} +# gtk3-private-3.22.26.el6-1-requires-provides-filter.inc +%include_file %{SOURCE206} +%endif +%if 0%{use_bundled_ffi} + # Install libraries to the predefined location to later add them to the Firefox libraries + rpm -ivh %{SOURCE303} + rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/libffi.spec + pushd %{_buildrootdir} + install_rpms_to_current_dir 'libffi*.rpm' popd -%endif # bundled Python + %filter_from_requires /libffi.so.6/d +%endif +%filter_setup + +# GTK3 << %if %{?system_sqlite} - # Do not proceed with build if the sqlite require would be broken: - # make sure the minimum requirement is non-empty, ... - sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 - # ... and that major number of the computed build-time version matches: - case "%{sqlite_build_version}" in - "$sqlite_version"*) ;; - *) exit 1 ;; - esac +# Do not proceed with build if the sqlite require would be broken: +# make sure the minimum requirement is non-empty, ... +sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 +# ... and that major number of the computed build-time version matches: +case "%{sqlite_build_version}" in + "$sqlite_version"*) ;; + *) exit 1 ;; +esac %endif -echo "Building Firefox"; echo "===============================" -cd %{tarballdir} +# We need to disable exit on error temporarily for the following scripts: +set +e +%if 0%{?use_dts} +source scl_source enable devtoolset-%{dts_version} +%endif +%if 0%{?use_rustts} +source scl_source enable rust-toolset-%{rst_version} +%endif -# Hack for missing shell when building in brew on RHEL6 and RHEL5 -%if 0%{?rhel} <= 6 +set -e +# Hack for missing shell when building in brew on RHEL6 +%if 0%{?rhel} == 6 export SHELL=/bin/sh %endif @@ -602,131 +691,259 @@ echo "Generate big endian version of config/external/icu/data/icud58l.dat" rm -f config/external/icu/data/icudt*l.dat %endif - -# 1. Mozilla builds with -Wall with exception of a few warnings which show up -# everywhere in the code; so, don't override that. -# 2. -Werror=format-security causes build failures when -Wno-format is explicitly given -# for some sources -MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive -Wformat-security -Wformat -Werror=format-security" | %{__sed} -e 's/-Wall//') - -# TODO check if necessery +# Update the various config.guess to upstream release for aarch64 support +find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' + +# -fpermissive is needed to build with gcc 4.6+ which has become stricter +# +# Mozilla builds with -Wall with exception of a few warnings which show up +# everywhere in the code; so, don't override that. +# +# Disable C++ exceptions since Mozilla code is not exception-safe +# +MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') +#rhbz#1037063 +# -Werror=format-security causes build failures when -Wno-format is explicitly given +# for some sources +# Explicitly force the hardening flags for Firefox so it passes the checksec test; +# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" +%if 0%{?fedora} > 23 +# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045) +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks" +%endif +# Use hardened build? +%if %{?hardened_build} +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" +%endif +%if %{?debug_build} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') +%endif %ifarch s390 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 - -# Avoid failing builds because OOM killer on some arches -%ifarch s390 %{arm} ppc -MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" -%endif - -%if %{rhel} == 6 - %if %{system_libatomic} - MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -l:libatomic.so.1" - %endif +%ifarch s390 %{arm} ppc aarch64 i686 +MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif - -%if %{?debug_build} - MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') +%ifarch %{arm} +export RUSTFLAGS="-Cdebuginfo=0" %endif - -export CFLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-fpermissive//') +export CFLAGS=$MOZ_OPT_FLAGS export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS="-Wl,--verbose $MOZ_LINK_FLAGS" +export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' export LIBDIR='%{_libdir}' 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 %{ix86} x86_64 ppc ppc64 ppc64le 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 +%endif + +%if 0%{?bundle_gtk3} +# gtk3-private-setup-flags-env.inc +%include_file %{SOURCE205} +%endif + +#make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1" +export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" +export MOZ_SERVICES_SYNC="1" +export STRIP=/bin/true +./mach build -v + +# create debuginfo for crash-stats.mozilla.com +%if %{enable_mozilla_crashreporter} +#cd %{moz_objdir} +make -C objdir buildsymbols +%endif -MOZ_APP_DIR=%{_libdir}/%{name} +%if %{?run_tests} +%if %{?system_nss} +ln -s /usr/bin/certutil objdir/dist/bin/certutil +ln -s /usr/bin/pk12util objdir/dist/bin/pk12util -make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" +%endif +mkdir test_results +./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true +./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true +./mach --log-no-times cppunittest &> test_results/cppunittest || true +xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true +./mach --log-no-times gtest &> test_results/gtest || true +xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true +# not working right now ./mach marionette-test &> test_results/marionette-test || true +xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true +xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true +xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true +xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true +xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true +xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true +xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true +xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true +./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true +xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true +%if %{?system_nss} +rm -f objdir/dist/bin/certutil +rm -f objdir/dist/bin/pk12util +%endif +%endif #--------------------------------------------------------------------- %install -# Hack for missing shell when building in brew on RHEL6 and RHEL5 -%if 0%{?rhel} <= 6 +%if 0%{?rhel} == 6 export SHELL=/bin/sh %endif -cd %{tarballdir} -%{__rm} -rf $RPM_BUILD_ROOT +%if 0%{?bundle_gtk3} +function install_rpms_to_current_dir() { + PACKAGE_RPM=$(eval echo $1) + PACKAGE_DIR=%{_rpmdir} + + if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then + # Hack for tps tests + ARCH_STR=%{_arch} + %ifarch i386 i686 + ARCH_STR="i?86" + %endif + PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" + fi + + for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM) + do + echo "$package" + rpm2cpio "$package" | cpio -idu + done +} + +pushd %{buildroot} +# Install gtk3-private again to the buildroot, but without devel subpackage +install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm +install_rpms_to_current_dir gtk3-private-rpm-scripts-%{gtk3_nvr}*.rpm +popd +%endif + +# Install bundled libffi +%if %{use_bundled_ffi} + pushd %{buildroot} + install_rpms_to_current_dir libffi-3*.rpm + popd +%endif # set up our default bookmarks -%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/defaults/profile/bookmarks.html +%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html # Make sure locale works for langpacks %{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF pref("general.useragent.locale", "chrome://global/locale/intl.properties"); EOF +DESTDIR=%{buildroot} make -C objdir install -DESTDIR=$RPM_BUILD_ROOT make -C objdir install - -%{__mkdir_p} $RPM_BUILD_ROOT{%{_libdir},%{_bindir},%{_datadir}/applications} +%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications} -desktop-file-install \ - --dir $RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category WebBrowser \ - --add-category Network \ - %{SOURCE20} +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20} -# Set up the firefox start script, unfortunatelly it is different for each RHEL -rm -rf $RPM_BUILD_ROOT%{_bindir}/firefox -FIREFOX_SH_SOURCE=%{SOURCE700} -%if %{rhel} == 6 - FIREFOX_SH_SOURCE=%{SOURCE600} -%endif -cp $FIREFOX_SH_SOURCE $RPM_BUILD_ROOT%{_bindir}/firefox -%{__chmod} 755 $RPM_BUILD_ROOT%{_bindir}/firefox +# set up the firefox start script +%{__rm} -rf %{buildroot}%{_bindir}/firefox +%{__cat} %{SOURCE21} > %{buildroot}%{_bindir}/firefox +%{__chmod} 755 %{buildroot}%{_bindir}/firefox -# Installing man page -%{__install} -p -D -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_mandir}/man1/firefox.1 +%{__install} -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/firefox.1 -%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/firefox-config +%{__rm} -f %{buildroot}/%{mozappdir}/firefox-config +%{__rm} -f %{buildroot}/%{mozappdir}/update-settings.ini for s in 16 22 24 32 48 256; do - %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps + %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps %{__cp} -p browser/branding/official/default${s}.png \ - $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png + %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png done -echo > ../%{name}.lang +# Install hight contrast icon +%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +%{__cp} -p %{SOURCE25} \ + %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps + +# Register as an application to be visible in the software center +# +# NOTE: It would be *awesome* if this file was maintained by the upstream +# project, translated and installed into the right place during `make install`. +# +# See http://www.freedesktop.org/software/appstream/docs/ for more details. +# +%{__mkdir_p} %{buildroot}%{_datadir}/appdata +cat > %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml < + + + + firefox.desktop + CC0-1.0 + +

+ Bringing together all kinds of awesomeness to make browsing better for you. + Get to your favorite sites quickly – even if you don’t remember the URLs. + Type your term into the location bar (aka the Awesome Bar) and the autocomplete + function will include possible matches from your browsing history, bookmarked + sites and open tabs. +

+ +
+ http://www.mozilla.org/ + + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/a.png + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/b.png + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/c.png + + +
+EOF + +echo > %{name}.lang %if %{build_langpacks} # Extract langpacks, make any mods needed, repack the langpack, and install it. -%{__mkdir_p} $RPM_BUILD_ROOT%{langpackdir} -%{__xz} -dc %{SOURCE1} | %{__tar} xf - +%{__mkdir_p} %{buildroot}%{langpackdir} +%{__tar} xf %{SOURCE1} for langpack in `ls firefox-langpacks/*.xpi`; do language=`basename $langpack .xpi` extensionID=langpack-$language@firefox.mozilla.org %{__mkdir_p} $extensionID - unzip $langpack -d $extensionID + unzip -qq $langpack -d $extensionID find $extensionID -type f | xargs chmod 644 cd $extensionID - zip -r9mX ../${extensionID}.xpi * + zip -qq -r9mX ../${extensionID}.xpi * cd - - %{__install} -m 644 ${extensionID}.xpi $RPM_BUILD_ROOT%{langpackdir} + %{__install} -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir} language=`echo $language | sed -e 's/-/_/g'` - echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> ../%{name}.lang + echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang done %{__rm} -rf firefox-langpacks # Install langpack workaround (see #707100, #821169) function create_default_langpack() { - language_long=$1 - language_short=$2 - cd $RPM_BUILD_ROOT%{langpackdir} - ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi - cd - - echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> ../%{name}.lang +language_long=$1 +language_short=$2 +cd %{buildroot}%{langpackdir} +ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi +cd - +echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> %{name}.lang } # Table of fallbacks for each language @@ -747,58 +964,55 @@ create_default_langpack "zh-TW" "zh" %endif # build_langpacks # Keep compatibility with the old preference location. -%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/defaults/preferences -%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults +%{__mkdir_p} %{buildroot}%{mozappdir}/defaults/preferences +%{__mkdir_p} %{buildroot}%{mozappdir}/browser/defaults ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences - -# Install default ones -%{__cp} %{SOURCE12} ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js -# Modify preset preferences -%if %{use_baselinejit} - echo 'pref("javascript.options.baselinejit", true);' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js -%else - echo '/* Workaround for rhbz#1134876 */' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js - echo 'pref("javascript.options.baselinejit", false);' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js -%endif +# Default preferences +%{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js # System config dir -%{__mkdir_p} $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/pref +%{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref # System extensions -%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/mozilla/extensions/%{firefox_app_id} -%{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/%{firefox_app_id} +%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_app_id} +%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_app_id} # Copy over the LICENSE -%{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT/%{mozappdir} +%{__install} -p -c -m 644 LICENSE %{buildroot}/%{mozappdir} + +# Use the system hunspell dictionaries +%{__rm} -rf %{buildroot}%{mozappdir}/dictionaries +ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries + +# Enable crash reporter for Firefox application +%if %{enable_mozilla_crashreporter} +sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" %{buildroot}/%{mozappdir}/application.ini +# Add debuginfo for crash-stats.mozilla.com +%{__mkdir_p} %{buildroot}/%{moz_debug_dir} +%{__cp} objdir/dist/%{symbols_file_name} %{buildroot}/%{moz_debug_dir} +%endif -# Use the system dictionaries for system hunspell -%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries -ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries +%if %{run_tests} +# Add debuginfo for crash-stats.mozilla.com +%{__mkdir_p} %{buildroot}/test_results +%{__cp} test_results/* %{buildroot}/test_results +%endif -# Clean firefox-devel debuginfo -rm -rf %{_prefix}/lib/debug/lib/%{name}-devel-* -rm -rf %{_prefix}/lib/debug/lib64/%{name}-devel-* -#--------------------------------------------------------------------- +# Copy over run-mozilla.sh +%{__cp} build/unix/run-mozilla.sh %{buildroot}%{mozappdir} -%clean -%{__rm} -rf $RPM_BUILD_ROOT +# Add distribution.ini +%{__mkdir_p} %{buildroot}%{mozappdir}/distribution +%{__cp} %{SOURCE26} %{buildroot}%{mozappdir}/distribution +# Remove copied libraries to speed up build +rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozjs.so +rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozalloc.so +rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libxul.so #--------------------------------------------------------------------- -%post -update-desktop-database &> /dev/null || : -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -if [ -x %{_bindir}/gtk-update-icon-cache ]; then - %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : -fi -%postun -if [ $1 -eq 0 ] ; then - touch --no-create %{_datadir}/icons/hicolor &>/dev/null - gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi -update-desktop-database &> /dev/null || : %preun # is it a final removal? @@ -806,105 +1020,165 @@ if [ $1 -eq 0 ]; then %{__rm} -rf %{mozappdir}/components %{__rm} -rf %{mozappdir}/extensions %{__rm} -rf %{mozappdir}/plugins + %{__rm} -rf %{langpackdir} fi +%clean +rm -rf %{_srcrpmdir}/gtk3-private-%{gtk3_nvr}*.src.rpm +find %{_rpmdir} -name "gtk3-private-*%{gtk3_nvr}*.rpm" -delete +rm -rf %{_srcrpmdir}/libffi*.src.rpm +find %{_rpmdir} -name "libffi*.rpm" -delete + +%post +update-desktop-database &> /dev/null || : +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%if 0%{?bundle_gtk3} +# gtk3-private-post.inc +%include_file %{SOURCE201} +%endif + +%postun +update-desktop-database &> /dev/null || : +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi +%if 0%{?bundle_gtk3} +# gtk3-private-postun.inc +%include_file %{SOURCE202} +%endif + %posttrans gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%if 0%{?bundle_gtk3} +# gtk3-private-posttrans.inc +%include_file %{SOURCE203} +%endif %files -f %{name}.lang -%defattr(-,root,root,-) %{_bindir}/firefox +%{mozappdir}/firefox +%{mozappdir}/firefox-bin %doc %{_mandir}/man1/* +%dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}/* -%dir %{_datadir}/mozilla/extensions/%{firefox_app_id} -%dir %{_libdir}/mozilla/extensions/%{firefox_app_id} -%{_datadir}/icons/hicolor/16x16/apps/firefox.png -%{_datadir}/icons/hicolor/48x48/apps/firefox.png -%{_datadir}/icons/hicolor/22x22/apps/firefox.png -%{_datadir}/icons/hicolor/24x24/apps/firefox.png -%{_datadir}/icons/hicolor/256x256/apps/firefox.png -%{_datadir}/icons/hicolor/32x32/apps/firefox.png -%{_datadir}/applications/%{name}.desktop +%dir %{_datadir}/mozilla/extensions/* +%dir %{_libdir}/mozilla/extensions/* +%{_datadir}/appdata/*.appdata.xml +%{_datadir}/applications/*.desktop %dir %{mozappdir} %doc %{mozappdir}/LICENSE %{mozappdir}/browser/chrome %{mozappdir}/browser/chrome.manifest -%{mozappdir}/browser/features/aushelper@mozilla.org.xpi -%{mozappdir}/browser/features/e10srollout@mozilla.org.xpi -%{mozappdir}/browser/features/firefox@getpocket.com.xpi -%{mozappdir}/browser/features/webcompat@mozilla.org.xpi -#gone %{mozappdir}/browser/features/disableSHA1rollout@mozilla.org.xpi -#gone %dir %{mozappdir}/browser/components -#gone %{mozappdir}/browser/components/*.so -#gone %{mozappdir}/browser/components/*.manifest +%{mozappdir}/defaults/preferences/* +%{mozappdir}/browser/defaults/preferences +%{mozappdir}/browser/features/*.xpi +%{mozappdir}/distribution/distribution.ini +# That's Windows only +%ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi %attr(644, root, root) %{mozappdir}/browser/blocklist.xml %dir %{mozappdir}/browser/extensions -%{mozappdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi -# gone %{mozappdir}/browser/features/loop@mozilla.org.xpi -%dir %{mozappdir}/langpacks -%{mozappdir}/browser/icons +%{mozappdir}/browser/extensions/* +%if %{build_langpacks} +%dir %{langpackdir} +%endif %{mozappdir}/browser/omni.ja -%{mozappdir}/firefox -%{mozappdir}/firefox-bin +%{mozappdir}/chrome.manifest %{mozappdir}/run-mozilla.sh %{mozappdir}/application.ini -%{mozappdir}/defaults/preferences/* -%{mozappdir}/browser/defaults/preferences +%{mozappdir}/pingsender %exclude %{mozappdir}/removed-files -# gone %{mozappdir}/webapprt-stub -# gone %dir %{mozappdir}/webapprt -# g %{mozappdir}/webapprt/omni.ja -# g %{mozappdir}/webapprt/webapprt.ini -%{mozappdir}/dictionaries +%{_datadir}/icons/hicolor/16x16/apps/firefox.png +%{_datadir}/icons/hicolor/22x22/apps/firefox.png +%{_datadir}/icons/hicolor/24x24/apps/firefox.png +%{_datadir}/icons/hicolor/256x256/apps/firefox.png +%{_datadir}/icons/hicolor/32x32/apps/firefox.png +%{_datadir}/icons/hicolor/48x48/apps/firefox.png +%{_datadir}/icons/hicolor/symbolic/apps/firefox-symbolic.svg +%if %{enable_mozilla_crashreporter} +%{mozappdir}/crashreporter +%{mozappdir}/crashreporter.ini +%{mozappdir}/minidump-analyzer +%{mozappdir}/Throbber-small.gif +%{mozappdir}/browser/crashreporter-override.ini +%endif %{mozappdir}/*.so +%{mozappdir}/gtk2/*.so +%{mozappdir}/defaults/pref/channel-prefs.js +%{mozappdir}/dependentlibs.list +%{mozappdir}/dictionaries %{mozappdir}/omni.ja %{mozappdir}/platform.ini %{mozappdir}/plugin-container -%{mozappdir}/dependentlibs.list -%{mozappdir}/chrome.manifest -%{mozappdir}/fonts/EmojiOneMozilla.ttf %{mozappdir}/gmp-clearkey -%if %{?use_gtk3} -%{mozappdir}/gtk2/*.so +%{mozappdir}/fonts/EmojiOneMozilla.ttf +%if !%{?system_libicu} +#%{mozappdir}/icudt*.dat %endif -%if %{?with_intl_api} -%if 0%{?big_endian} -%{mozappdir}/icudt58b.dat -%else -%{mozappdir}/icudt58l.dat +%if !%{?system_nss} +%{mozappdir}/libfreeblpriv3.chk +%{mozappdir}/libnssdbm3.chk +%{mozappdir}/libsoftokn3.chk +%exclude %{mozappdir}/libnssckbi.so %endif +%if 0%{use_bundled_ffi} +%{mozappdir}/bundled/%{_lib}/libffi.so* +%exclude %{_datadir}/doc/libffi* %endif -%exclude %{mozappdir}/defaults/pref/channel-prefs.js -%if !%{?system_nss} -%{mozappdir}/*.chk + +%if 0%{?bundle_gtk3} +# gtk3-private-files.inc +%include_file %{SOURCE204} %endif -%exclude %{_datadir}/idl/* -%exclude %{_includedir}/* -%exclude %{_libdir}/%{name}-devel-*/* + #--------------------------------------------------------------------- %changelog -* Mon May 14 2018 CentOS Sources - 52.8.0-1.el7.centos -- Apply debranding changes +* Sun Jun 24 2018 Martin Stransky - 60.1.0-4 +- Disabled jemalloc on all second arches + +* Fri Jun 22 2018 Martin Stransky - 60.1.0-3 +- Updated to 60.1.0 ESR build2 + +* Thu Jun 21 2018 Martin Stransky - 60.1.0-2 +- Disabled jemalloc on second arches + +* Wed Jun 20 2018 Martin Stransky - 60.1.0-1 +- Updated to 60.1.0 ESR + +* Wed Jun 13 2018 Jan Horak - 60.0-12 +- Fixing bundled libffi issues +- Readded some requirements + +* Mon Jun 11 2018 Martin Stransky - 60.0-10 +- Added fix for mozilla BZ#1436242 - IPC crashes. -* Wed May 9 2018 Jan Horak - 52.8.0-1 -- Update to 52.8.0 ESR +* Mon Jun 11 2018 Jan Horak - 60.0-9 +- Bundling libffi for the sec-arches +- Added openssl-devel for the Python +- Fixing bundled gtk3 -* Wed Mar 28 2018 Jan Horak - 52.7.3-1 -- Update to 52.7.3 ESR +* Fri May 18 2018 Martin Stransky - 60.0-8 +- Added fix for mozilla BZ#1458492 -* Fri Mar 16 2018 Jan Horak - 52.7.2-1 -- Update to 52.7.2 ESR +* Wed May 16 2018 Martin Stransky - 60.0-7 +- Added patch from rhbz#1498561 to fix ppc64(le) crashes. + +* Wed May 16 2018 Martin Stransky - 60.0-6 +- Disabled jemalloc on second arches + +* Sun May 6 2018 Jan Horak - 60.0-4 +- Update to 60.0 ESR * Thu Mar 8 2018 Jan Horak - 52.7.0-1 - Update to 52.7.0 ESR -* Thu Jan 18 2018 Martin Stransky - 52.6.1-2 -- Update to 52.6.0 ESR +* Mon Jan 29 2018 Martin Stransky - 52.6.0-2 +- Build Firefox for desktop arches only (x86_64 and ppc64le) -* Wed Nov 29 2017 Jan Horak - 52.5.1-1 -- Update to 52.5.1 ESR +* Thu Jan 18 2018 Martin Stransky - 52.6.0-1 +- Update to 52.6.0 ESR * Thu Nov 9 2017 Jan Horak - 52.5.0-1 - Update to 52.5.0 ESR @@ -966,354 +1240,3 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : * Thu Dec 8 2016 Jan Horak - 52.0-0.5 - Firefox Aurora 52 testing build -* Tue Nov 8 2016 Jan Horak - 45.5.0-1 -- Update to 45.5.0 ESR - -* Mon Oct 31 2016 Jan Horak - 45.4.0-3 -- Added upcoming upstream patches mozbz#1018486 - -* Mon Sep 26 2016 Jan Horak - 45.4.0-2 -- Added Laszlo Ersek patch for aarch64 crashes - -* Wed Sep 7 2016 Jan Horak - 45.4.0-1 -- Update to 45.4.0 ESR - -* Wed Jul 27 2016 Jan Horak - 45.3.0-1 -- Update to 45.3.0 ESR - -* Mon Jul 11 2016 Martin Stransky - 45.2.0-3 -- Added fix for mozbz#256180 - -* Mon Jun 20 2016 Martin Stransky - 45.2.0-2 -- Added fix for mozbz#975832, rhbz#1343202 - -* Fri Jun 3 2016 Jan Horak - 45.2.0-1 -- Update to 45.2.0 ESR - -* Tue May 10 2016 Martin Stransky - 45.1.1-2 -- Added fix for mozbz#1270046 - new Samba auth response - -* Wed May 4 2016 Jan Horak - 45.1.1-1 -- Update to 45.1.1 ESR - -* Tue May 3 2016 Martin Stransky - 45.1.0-3 -- Disabled ffmpeg (rhbz#1330898) - -* Fri Apr 29 2016 Jan Horak - 45.1.0-1 -- Fixed some regressions introduced by rebase - -* Thu Apr 21 2016 Jan Horak - 45.1.0-1 -- Update to 45.1.0 ESR - -* Tue Apr 12 2016 Jan Horak - 45.0.2-1 -- Update to 45.0.2 ESR - -* Wed Apr 6 2016 Jan Horak - 45.0.1-1 -- Update to 45.0.1 ESR - -* Mon Apr 4 2016 Martin Stransky - 45.0-5 -- Fixed crashed after start (rhbz#1323744, rhbz#1323738) - -* Mon Apr 4 2016 Jan Horak - 45.0-4 -- Added system-level location for configuring Firefox (rhbz#1206239) - -* Mon Mar 7 2016 Jan Horak - 45.0-3 -- Update to 45.0 ESR - -* Fri Dec 11 2015 Jan Horak - 38.5.0-3 -- Update to 38.5.0 ESR - -* Thu Oct 29 2015 Jan Horak - 38.4.0-1 -- Update to 38.4.0 ESR - -* Tue Sep 15 2015 Jan Horak - 38.3.0-2 -- Update to 38.3.0 ESR - -* Wed Aug 26 2015 Martin Stransky - 38.2.1-1 -- Update to 38.2.1 ESR - -* Fri Aug 7 2015 Jan Horak - 38.2.0-4 -- Update to 38.2.0 ESR - -* Thu Aug 6 2015 Jan Horak - 38.1.1-1 -- Update to 38.1.1 ESR - -* Thu Jun 25 2015 Jan Horak - 38.1.0-1 -- Update to 38.1.0 ESR - -* Thu May 21 2015 Jan Horak - 38.0.1-2 -- Fixed rhbz#1222807 by removing preun section - -* Fri May 15 2015 Martin Stransky - 38.0.1-1 -- Update to 38.0.1 ESR - -* Thu May 14 2015 Martin Stransky - 38.0-4 -- Fixed rhbz#1221286 - After update to Firefox 38 ESR - all RH preferences are gone - -* Thu May 7 2015 Martin Stransky - 38.0-3 -- Enabled system nss -- Removed unused patches - -* Mon May 4 2015 Jan Horak - 38.0-2 -- Update to 38.0 ESR - -* Mon Apr 27 2015 Martin Stransky - 38.0b8-0.11 -- Update to 38.0 Beta 8 - -* Wed Apr 22 2015 Martin Stransky - 38.0b6-0.10 -- Added patch for mozbz#1152515 - -* Tue Apr 21 2015 Martin Stransky - 38.0b6-0.9 -- Update to 38.0 Beta 6 - -* Mon Apr 20 2015 Martin Stransky - 38.0b5-0.8 -- Update to 38.0 Beta 5 - -* Fri Apr 10 2015 Martin Stransky - 38.0b3-0.7 -- Update to 38.0 Beta 3 - -* Fri Apr 10 2015 Martin Stransky - 38.0b1-0.6 -- Added patch for mozbz#1152391 - -* Thu Apr 9 2015 Marcin Juszkiewicz - 38.0b1-0.5 -- Fix build on AArch64 (based on upstream skia changes) - -* Tue Apr 7 2015 Martin Stransky - 38.0b1-0.4 -- Enabled debug build - -* Wed Apr 1 2015 Jan Horak - 38.0b1-1 -- Update to 38.0b1 - -* Wed Feb 18 2015 Martin Stransky - 31.5.0-2 -- Update to 31.5.0 ESR Build 2 - -* Tue Jan 6 2015 Jan Horak - 31.4.0-1 -- Update to 31.4.0 ESR - -* Mon Jan 5 2015 Martin Stransky - 31.3.0-6 -- Fixed Bug 1140385 - [HP HPS 7.1 bug] assertion - "sys_page_size == 0" when starting firefox - -* Fri Dec 19 2014 Martin Stransky - 31.3.0-5 -- Fixed problems with dictionary (mozbz#1097550) -- JS JIT fixes for ppc64le - -* Sat Nov 29 2014 Martin Stransky - 31.3.0-3 -- Fixed geolocation key location - -* Fri Nov 28 2014 Martin Stransky - 31.3.0-2 -- Disable exact rooting for JS - -* Wed Nov 26 2014 Martin Stransky - 31.3.0-1 -- Update to 31.3.0 ESR Build 2 -- Fix for geolocation API (rhbz#1063739) - -* Thu Nov 6 2014 Martin Stransky - 31.2.0-5 -- Enabled gstreamer-1 support (rhbz#1161077) - -* Mon Oct 27 2014 Yaakov Selkowitz - 31.2.0-4 -- Fix webRTC for aarch64, ppc64le (rhbz#1148622) - -* Tue Oct 7 2014 Jan Horak - 31.2.0-3 -- Update to 31.2.0 ESR -- Fix for mozbz#1042889 - -* Wed Oct 1 2014 Martin Stransky - 31.1.0-7 -- Enable WebM on all arches - -* Thu Sep 11 2014 Martin Stransky - 31.1.0-6 -- Enable all NPAPI plugins by default to keep compatibility - with the FF24 line - -* Wed Sep 10 2014 Martin Stransky - 31.1.0-5 -- Added workaround for rhbz#1134876 - -* Mon Sep 8 2014 Martin Stransky - 31.1.0-3 -- Disable mozilla::pkix (mozbz#1063315) -- Enable image cache - -* Mon Sep 8 2014 Martin Stransky - 31.1.0-2 -- A workaround for rhbz#1110291 - -* Thu Aug 28 2014 Martin Stransky - 31.1.0-1 -- Update to 31.1.0 ESR - -* Tue Aug 5 2014 Martin Stransky - 31.0-3 -- Built with system libvpx/WebM - -* Mon Aug 4 2014 Martin Stransky - 31.0-2 -- Built with system nss/nspr - -* Mon Jul 28 2014 Martin Stransky - 31.0-1 -- Update to 31.0 ESR - -* Wed Jun 4 2014 Jan Horak - 24.6.0-1 -- Update to 24.6.0 ESR - -* Wed Apr 23 2014 Martin Stransky - 24.5.0-2 -- Removed unused patches - -* Tue Apr 22 2014 Martin Stransky - 24.5.0-1 -- Update to 24.5.0 ESR - -* Tue Apr 15 2014 Martin Stransky - 24.4.0-3 -- Added a workaround for Bug 1054242 - RHEVM: Extremely high memory - usage in Firefox 24 ESR on RHEL 6.5 - -* Wed Mar 26 2014 Martin Stransky - 24.4.0-2 -- fixed rhbz#1067343 - Broken languagepack configuration - after firefox update - -* Tue Mar 18 2014 Jan Horak - 24.4.0-1 -- Update to 24.4.0 ESR - -* Thu Feb 27 2014 Martin Stransky - 24.3.0-3 -- fixed rhbz#1054832 - Firefox does not support Camellia cipher - -* Mon Feb 3 2014 Jan Horak - 24.3.0-1 -- Update to 24.3.0 ESR - -* Fri Jan 24 2014 Daniel Mach - 24.2.0-3 -- Mass rebuild 2014-01-24 - -* Fri Dec 27 2013 Daniel Mach - 24.2.0-2 -- Mass rebuild 2013-12-27 - -* Mon Dec 9 2013 Martin Stransky - 24.2.0-1 -- Update to 24.2.0 ESR - -* Mon Dec 2 2013 Martin Stransky - 24.1.0-5 -- Fixed mozbz#938730 - avoid mix of memory allocators (crashes) - when using system sqlite - -* Tue Nov 26 2013 Martin Stransky - 24.1.0-4 -- Fixed rhbz#1034541 - No translation being picked up - from langpacks for firefox - -* Fri Nov 8 2013 Martin Stransky - 24.1.0-3 -- Conflicts with old, xulrunner based firefox - -* Thu Nov 7 2013 Martin Stransky - 24.1.0-2 -- Ship dependentlibs.list (rhbz#1027782) -- Nss/nspr dependency update - -* Wed Nov 6 2013 Martin Stransky - 24.1.0-1 -- Update to 24.1.0 ESR - -* Wed Nov 6 2013 Martin Stransky - 24.0-2 -- Build as stand alone browser, without xulrunner - -* Thu Oct 31 2013 Martin Stransky - 24.0-1 -- Update to 24.0 ESR - -* Thu Sep 12 2013 Jan Horak - 17.0.9-1 -- Update to 17.0.9 ESR - -* Thu Aug 29 2013 Martin Stransky - 17.0.8-2 -- Desktop file update -- Spec file tweaks - -* Thu Aug 1 2013 Martin Stransky - 17.0.8-1 -- Update to 17.0.8 ESR - -* Wed Jul 31 2013 Jan Horak - 17.0.7-2 -- Updated manual page - -* Thu Jun 20 2013 Jan Horak - 17.0.7-1 -- Update to 17.0.7 ESR - -* Fri May 17 2013 Jan Horak - 17.0.6-1 -- Update to 17.0.6 ESR - -* Fri May 17 2013 Martin Stransky - 17.0.5-3 -- Removed mozilla prefix from desktop file (rhbz#826960) - -* Thu Apr 18 2013 Martin Stransky - 17.0.5-2 -- Updated XulRunner SDK check - -* Fri Mar 29 2013 Jan Horak - 17.0.5-1 -- Update to 17.0.5 ESR - -* Thu Mar 14 2013 Martin Stransky - 17.0.4-2 -- Fixed rhbz#837606 - firefox has no x-scheme-handler/http mime - -* Wed Mar 13 2013 Martin Stransky - 17.0.4-1 -- Update to 17.0.4 ESR -- Added fix for mozbz#239254 - [Linux] Support disk cache on a local path - -* Tue Jan 15 2013 Martin Stransky - 17.0.2-3 -- Added NM preferences - -* Fri Jan 11 2013 Martin Stransky - 17.0.2-2 -- Updated preferences (NFS, nspluginwrapper) - -* Thu Jan 10 2013 Jan Horak - 17.0.2-1 -- Update to 17.0.2 ESR - -* Thu Dec 20 2012 Jan Horak - 17.0.1-1 -- Update to 17.0.1 ESR - -* Mon Oct 8 2012 Jan Horak - 10.0.8-2 -- Update to 10.0.8 ESR - -* Sat Aug 25 2012 Jan Horak - 10.0.7-1 -- Update to 10.0.7 ESR - -* Mon Jul 16 2012 Martin Stransky - 10.0.6-1 -- Update to 10.0.6 ESR - -* Mon Jun 25 2012 Martin Stransky - 10.0.5-4 -- Enabled WebM - -* Mon Jun 25 2012 Martin Stransky - 10.0.5-2 -- Added fix for mozbz#703633, rhbz#818341 - -* Fri Jun 1 2012 Martin Stransky - 10.0.5-1 -- Update to 10.0.5 ESR - -* Sun Apr 22 2012 Martin Stransky - 10.0.4-1 -- Update to 10.0.4 ESR - -* Tue Mar 6 2012 Martin Stransky - 10.0.3-1 -- Update to 10.0.3 ESR - -* Thu Feb 9 2012 Jan Horak - 10.0.1-1 -- Update to 10.0.1 ESR - -* Tue Feb 7 2012 Martin Stransky - 10.0-3 -- Update to 10.0 ESR - -* Mon Jan 30 2012 Martin Stransky - 10.0-1 -- Update to 10.0 - -* Mon Sep 26 2011 Martin Stransky - 7.0-5 -- Update to 7.0 - -* Tue Sep 20 2011 Jan Horak - 7.0-4 -- Update to 7.0 Beta 6 - -* Tue Sep 13 2011 Martin Stransky - 7.0-2 -- Update to 7.0 Beta 4 - -* Mon Jul 11 2011 Martin Stransky - 5.0-1 -- Update to 5.0 - -* Mon Jun 13 2011 Jan Horak - 3.6.18-1 -- Fixed #698313 - "background-repeat" css property isn't rendered well -- Update to 3.6.18 - -* Mon Apr 18 2011 Jan Horak - 3.6.17-1 -- Update to 3.6.17 - -* Tue Mar 8 2011 Jan Horak - 3.6.15-1 -- Update to 3.6.15 - -* Mon Feb 21 2011 Jan Horak - 3.6.14-4 -- Update to build3 - -* Tue Feb 8 2011 Jan Horak - 3.6.14-3 -- Update to build2 - -* Wed Jan 26 2011 Jan Horak - 3.6.14-2 -- Update to 3.6.14