From 875d0c0e871da050a4cfe44c0afae09c1ad739e4 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Jan 09 2014 09:56:01 +0000 Subject: Standalone firefox package without need of xulrunner --- diff --git a/firefox-mozconfig b/firefox-mozconfig index 501a49a..d3d8a48 100644 --- a/firefox-mozconfig +++ b/firefox-mozconfig @@ -2,13 +2,15 @@ ac_add_options --prefix="$PREFIX" ac_add_options --libdir="$LIBDIR" -ac_add_options --with-system-nspr -ac_add_options --with-system-nss ac_add_options --with-system-jpeg ac_add_options --with-system-zlib +ac_add_options --with-system-bz2 ac_add_options --with-system-libvpx +ac_add_options --enable-system-hunspell ac_add_options --with-pthreads +ac_add_options --disable-strip ac_add_options --disable-tests +ac_add_options --disable-mochitest ac_add_options --disable-installer ac_add_options --enable-xinerama ac_add_options --enable-default-toolkit=cairo-gtk2 @@ -18,20 +20,22 @@ ac_add_options --enable-system-cairo ac_add_options --enable-pango ac_add_options --enable-svg ac_add_options --enable-canvas +ac_add_options --disable-javaxpcom ac_add_options --enable-startup-notification -ac_add_options --enable-libxul -ac_add_options --with-system-libxul ac_add_options --enable-safe-browsing +ac_add_options --enable-extensions=default ac_add_options --enable-libnotify ac_add_options --disable-necko-wifi +ac_add_options --enable-startup-notification ac_add_options --disable-cpp-exceptions +ac_add_options --enable-shared-js ac_add_options --disable-updater ac_add_options --enable-url-classifier ac_add_options --enable-gio ac_add_options --disable-gnomevfs ac_add_options --enable-chrome-format=omni -ac_add_options --with-system-libxul -ac_add_options --disable-gstreamer +ac_add_options --enable-pulseaudio +ac_add_options --enable-gstreamer export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 diff --git a/firefox-redhat-default-prefs.js b/firefox-redhat-default-prefs.js index 71a6da8..2de18c1 100644 --- a/firefox-redhat-default-prefs.js +++ b/firefox-redhat-default-prefs.js @@ -1,6 +1,11 @@ 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); diff --git a/firefox.spec b/firefox.spec index 5d6286f..844e2ac 100644 --- a/firefox.spec +++ b/firefox.spec @@ -1,6 +1,20 @@ -# Use system nss/nspr? +# Use system nspr/nss? %define system_nss 1 +# Use system sqlite? +%if 0%{?fedora} < 19 +%define system_sqlite 0 +%define system_ffi 0 +%else +%define system_sqlite 1 +%define system_ffi 1 +%endif + +# Use system cairo? +%define system_cairo 1 + +%define enable_gstreamer 1 + # Separated plugins are supported on x86(64) only %ifarch %{ix86} x86_64 %define separated_plugins 1 @@ -13,13 +27,33 @@ %define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html %define firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} +# Minimal required versions +%global cairo_version 1.10.2 +%global freetype_version 2.1.9 +%global libnotify_version 0.7.0 +%global libvpx_version 1.0.0 + +%if %{?system_nss} +%global nspr_version 4.10.2 +%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) +%global nss_version 3.15.2 +%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) +%endif -%global xulrunner_version 26.0 -%global xulrunner_version_max 26.1 -%global xulrunner_release 1 -%global alpha_version 0 -%global beta_version 0 -%global rc_version 0 +%if %{?system_sqlite} +%global sqlite_version 3.7.13 +# The actual sqlite version (see #480989): +%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) +%endif + +# gecko_dir_ver should be set to the version in our directory names +# alpha_version should be set to the alpha number if using an alpha, 0 otherwise +# beta_version should be set to the beta number if using a beta, 0 otherwise +# rc_version should be set to the RC number if using an RC, 0 otherwise +%global gecko_dir_ver %{version} +%global alpha_version 0 +%global beta_version 0 +%global rc_version 0 %global mozappdir %{_libdir}/%{name} %global langpackdir %{mozappdir}/langpacks @@ -35,8 +69,7 @@ %if %{alpha_version} > 0 %global pre_version a%{alpha_version} -%global pre_name alpha%{alpha_version} -%global tarballdir mozilla-alpha +%global tarballdir mozilla-beta %endif %if %{beta_version} > 0 %global pre_version b%{beta_version} @@ -48,12 +81,6 @@ %global pre_name rc%{rc_version} %global tarballdir mozilla-release %endif -%if %{defined pre_version} -%global xulrunner_verrel %{xulrunner_version}-%{xulrunner_release} -%global pre_tag .%{pre_version} -%else -%global xulrunner_verrel %{xulrunner_version}-%{xulrunner_release} -%endif Summary: Mozilla Firefox Web browser Name: firefox @@ -75,14 +102,26 @@ Source23: firefox.1 #Build patches Patch0: firefox-install-dir.patch - -# Fedora patches -Patch14: firefox-5.0-asciidel.patch -Patch15: firefox-15.0-enable-addons.patch -Patch16: firefox-duckduckgo.patch +Patch2: mozilla-build.patch +Patch3: mozilla-build-arm.patch +Patch14: xulrunner-2.0-chromium-types.patch +Patch17: xulrunner-24.0-gcc47.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3 +Patch18: xulrunner-24.0-jemalloc-ppc.patch +# workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found) +Patch19: xulrunner-24.0-s390-inlines.patch + +# Fedora specific patches +# Unable to install addons from https pages +Patch204: rhbz-966424.patch +Patch214: firefox-5.0-asciidel.patch +Patch215: firefox-15.0-enable-addons.patch +Patch216: firefox-duckduckgo.patch # Upstream patches -Patch20: mozilla-938730.patch +Patch300: mozilla-837563.patch +Patch301: mozilla-938730.patch +Patch302: mozilla-885002.patch %if %{official_branding} # Required by Mozilla Corporation @@ -92,22 +131,82 @@ Patch20: mozilla-938730.patch # Not yet approved by Mozillla Corporation %endif - -# --------------------------------------------------- +%if %{?system_nss} +BuildRequires: nspr-devel >= %{nspr_version} +BuildRequires: nss-devel >= %{nss_version} +BuildRequires: nss-static >= %{nss_version} +%endif +%if %{?system_cairo} +BuildRequires: cairo-devel >= %{cairo_version} +%endif +BuildRequires: libpng-devel +BuildRequires: libjpeg-devel +BuildRequires: zip +BuildRequires: bzip2-devel +BuildRequires: zlib-devel +BuildRequires: libIDL-devel +BuildRequires: gtk2-devel +BuildRequires: krb5-devel +BuildRequires: pango-devel +BuildRequires: freetype-devel >= %{freetype_version} +BuildRequires: libXt-devel +BuildRequires: libXrender-devel +BuildRequires: hunspell-devel +BuildRequires: startup-notification-devel +BuildRequires: alsa-lib-devel +BuildRequires: libnotify-devel >= %{libnotify_version} +BuildRequires: mesa-libGL-devel +BuildRequires: libcurl-devel +BuildRequires: libvpx-devel >= %{libvpx_version} +BuildRequires: autoconf213 +BuildRequires: pulseaudio-libs-devel + +Requires: mozilla-filesystem +%if %{?system_nss} +Requires: nspr >= %{nspr_build_version} +Requires: nss >= %{nss_build_version} +%endif BuildRequires: desktop-file-utils BuildRequires: system-bookmarks -BuildRequires: xulrunner-devel%{?_isa} >= %{xulrunner_verrel} +%if %{?enable_gstreamer} +BuildRequires: gstreamer-devel +BuildRequires: gstreamer-plugins-base-devel +%endif +%if %{?system_sqlite} +BuildRequires: sqlite-devel >= %{sqlite_version} +Requires: sqlite >= %{sqlite_build_version} +%endif + +%if %{?system_ffi} +BuildRequires: libffi-devel +%endif -Requires: xulrunner%{?_isa} >= %{xulrunner_verrel} Requires: system-bookmarks Obsoletes: mozilla <= 37:1.7.13 Provides: webclient -Conflicts: xulrunner%{?_isa} > %{xulrunner_version_max} %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 +Group: Development/Debug +%description -n %{crashreporter_pkg_name} +This package provides debug information for XULRunner, 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 +%defattr(-,root,root) +%endif #--------------------------------------------------------------------- @@ -120,15 +219,25 @@ cd %{tarballdir} # ignored during this compare. %patch0 -p1 +%patch2 -p1 -b .bld +%patch3 -p1 -b .arm +%patch14 -p2 -b .chromium-types +%patch17 -p1 -b .gcc47 +%patch18 -p2 -b .jemalloc-ppc +%patch19 -p2 -b .s390-inlines + # For branding specific patches. # Fedora patches -%patch14 -p1 -b .asciidel -%patch15 -p2 -b .addons -%patch16 -p1 -b .duckduckgo +%patch204 -p1 -b .966424 +%patch214 -p1 -b .asciidel +%patch215 -p2 -b .addons +%patch216 -p1 -b .duckduckgo # Upstream patches -%patch20 -p1 -b .938730 +%patch300 -p1 -b .837563 +%patch301 -p1 -b .938730 +%patch302 -p1 -b .885002 %if %{official_branding} # Required by Mozilla Corporation @@ -137,22 +246,34 @@ cd %{tarballdir} # Not yet approved by Mozilla Corporation %endif - %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig %if %{official_branding} %{__cat} %{SOURCE11} >> .mozconfig %endif +%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 -# Set up SDK path -MOZILLA_SDK_PATH=`pkg-config --variable=sdkdir libxul` -if [ -z "$MOZILLA_SDK_PATH" ]; then - echo "XulRunner SDK is not available!" - exit 1 -else - echo "XulRunner SDK path: $MOZILLA_SDK_PATH" - echo "ac_add_options --with-libxul-sdk=$MOZILLA_SDK_PATH" >> .mozconfig -fi +%if %{?system_sqlite} +echo "ac_add_options --enable-system-sqlite" >> .mozconfig +%else +echo "ac_add_options --disable-system-sqlite" >> .mozconfig +%endif + +%if %{?system_cairo} +echo "ac_add_options --enable-system-cairo" >> .mozconfig +%else +echo "ac_add_options --disable-system-cairo" >> .mozconfig +%endif + +%if %{?system_ffi} +echo "ac_add_options --enable-system-ffi" >> .mozconfig +%endif %if !%{?separated_plugins} echo "ac_add_options --disable-ipc" >> .mozconfig @@ -165,36 +286,70 @@ echo "ac_add_options --disable-elf-hack" >> .mozconfig %if %{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig +echo "ac_add_options --enable-dtrace" >> .mozconfig %else echo "ac_add_options --disable-debug" >> .mozconfig echo "ac_add_options --enable-optimize" >> .mozconfig %endif -%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 - # s390(x) fails to start with jemalloc enabled %ifarch s390 s390x echo "ac_add_options --disable-jemalloc" >> .mozconfig %endif +%ifarch armv7hl +echo "ac_add_options --with-arch=armv7-a" >> .mozconfig +echo "ac_add_options --with-float-abi=hard" >> .mozconfig +echo "ac_add_options --with-fpu=vfpv3-d16" >> .mozconfig +echo "ac_add_options --disable-elf-hack" >> .mozconfig +%endif +%ifarch armv7hnl +echo "ac_add_options --with-arch=armv7-a" >> .mozconfig +echo "ac_add_options --with-float-abi=hard" >> .mozconfig +echo "ac_add_options --with-fpu=neon" >> .mozconfig +echo "ac_add_options --disable-elf-hack" >> .mozconfig +%endif +%ifarch armv5tel +echo "ac_add_options --with-arch=armv5te" >> .mozconfig +echo "ac_add_options --with-float-abi=soft" >> .mozconfig +echo "ac_add_options --disable-elf-hack" >> .mozconfig +%endif + +%ifnarch %{ix86} x86_64 armv7hl armv7hnl +echo "ac_add_options --disable-methodjit" >> .mozconfig +echo "ac_add_options --disable-monoic" >> .mozconfig +echo "ac_add_options --disable-polyic" >> .mozconfig +echo "ac_add_options --disable-tracejit" >> .mozconfig +%endif + +%ifnarch %{ix86} x86_64 armv7hl armv7hnl +echo "ac_add_options --disable-webrtc" >> .mozconfig +%endif + #--------------------------------------------------------------------- %build +%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 +%endif + cd %{tarballdir} +# -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 $RPM_OPT_FLAGS | \ - %{__sed} -e 's/-Wall//') +MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-Wall//') #rhbz#1037063 MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" %if %{?debug_build} @@ -208,6 +363,7 @@ MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif export CFLAGS=$MOZ_OPT_FLAGS export CXXFLAGS=$MOZ_OPT_FLAGS +export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' export LIBDIR='%{_libdir}' @@ -215,15 +371,22 @@ 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 +%ifarch %{ix86} x86_64 ppc ppc64 [ -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 -export LDFLAGS="-Wl,-rpath,%{mozappdir}" -make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" +#export LDFLAGS="-Wl,-rpath,%{mozappdir}" +make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1" + +# create debuginfo for crash-stats.mozilla.com +%if %{enable_mozilla_crashreporter} +#cd %{moz_objdir} +make -C objdir buildsymbols +%endif #--------------------------------------------------------------------- @@ -344,6 +507,10 @@ ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/def # Copy over the LICENSE %{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT/%{mozappdir} +# Use the system hunspell dictionaries +%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries +ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries + # Enable crash reporter for Firefox application %if %{enable_mozilla_crashreporter} sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" $RPM_BUILD_ROOT/%{mozappdir}/application.ini @@ -441,8 +608,25 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{mozappdir}/webapprt/omni.ja %{mozappdir}/webapprt/webapprt.ini %if %{enable_mozilla_crashreporter} +%{mozappdir}/crashreporter +%{mozappdir}/crashreporter.ini +%{mozappdir}/Throbber-small.gif %{mozappdir}/browser/crashreporter-override.ini %endif +%{mozappdir}/*.so +%{mozappdir}/chrome.manifest +%{mozappdir}/components +%{mozappdir}/defaults +%{mozappdir}/dependentlibs.list +%{mozappdir}/dictionaries +%{mozappdir}/mozilla-xremote-client +%{mozappdir}/omni.ja +%{mozappdir}/platform.ini +%{mozappdir}/plugin-container +%{mozappdir}/run-mozilla.sh +%exclude %{_includedir} +%exclude %{_libdir}/firefox-devel-%{version} +%exclude %{_datadir}/idl #--------------------------------------------------------------------- diff --git a/mozilla-837563.patch b/mozilla-837563.patch new file mode 100644 index 0000000..40121a2 --- /dev/null +++ b/mozilla-837563.patch @@ -0,0 +1,144 @@ +# HG changeset patch +# User Matthew Gregan +# Date 1383172648 -46800 +# Thu Oct 31 11:37:28 2013 +1300 +# Node ID 2f6bd7da0756edaad53b601b18cf0c0e27f5f676 +# Parent 0f6219c6fb61f3f5e6775d269a6cf52305021024 +Bug 837563 - Enable libcubeb's PulseAudio backend. r=glandium + +diff --git a/configure.in b/configure.in +--- a/configure.in ++++ b/configure.in +@@ -5522,65 +5522,68 @@ fi + if test -n "$MOZ_TREMOR"; then + AC_DEFINE(MOZ_TREMOR) + fi + + if test -n "$MOZ_OPUS"; then + AC_DEFINE(MOZ_OPUS) + fi + +-dnl ======================================================== +-dnl = Check alsa availability on Linux if using sydneyaudio +-dnl ======================================================== +- +-dnl If using sydneyaudio with Linux, ensure that the alsa library is available ++dnl ==================================================== ++dnl = Check alsa availability on Linux if using libcubeb ++dnl ==================================================== ++ ++dnl If using libcubeb with Linux, ensure that the alsa library is available + if test -n "$MOZ_CUBEB" -a "$OS_TARGET" = "Linux"; then + MOZ_ALSA=1 + fi + + MOZ_ARG_ENABLE_BOOL(alsa, + [ --enable-alsa Enable Alsa support (default on Linux)], +-MOZ_ALSA=1, +-MOZ_ALSA=) ++ MOZ_ALSA=1, ++ MOZ_ALSA=) + + if test -n "$MOZ_ALSA"; then + AC_DEFINE(MOZ_CUBEB) + PKG_CHECK_MODULES(MOZ_ALSA, alsa, , + [echo "$MOZ_ALSA_PKG_ERRORS" + AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])]) + fi + + AC_SUBST(MOZ_ALSA) + AC_SUBST(MOZ_ALSA_CFLAGS) + AC_SUBST(MOZ_ALSA_LIBS) + + dnl ======================================================== +-dnl = Enable PulseAudio +-dnl ======================================================== +- +-MOZ_ARG_ENABLE_BOOL(pulseaudio, +-[ --enable-pulseaudio Enable PulseAudio support (experimental)], +-MOZ_PULSEAUDIO=1, +-MOZ_PULSEAUDIO=) ++dnl = Disable PulseAudio ++dnl ======================================================== ++ ++dnl If using libcubeb with Linux, ensure that the PA library is available ++if test -n "$MOZ_CUBEB" -a "$OS_TARGET" = "Linux" -a -z "$MOZ_B2G"; then ++ MOZ_PULSEAUDIO=1 ++fi ++ ++MOZ_ARG_DISABLE_BOOL(pulseaudio, ++[ --disable-pulseaudio Disable PulseAudio support], ++ MOZ_PULSEAUDIO=, ++ MOZ_PULSEAUDIO=1) + + if test -n "$MOZ_PULSEAUDIO"; then + AC_DEFINE(MOZ_CUBEB) + if test -z "$gonkdir"; then + PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, , + [echo "$MOZ_PULSEAUDIO_PKG_ERRORS" + AC_MSG_ERROR([pulseaudio audio backend requires libpulse development package])]) + else + MOZ_PULSEAUDIO_CFLAGS="-I$gonkdir/external/pulseaudio/pulseaudio/src" +- MOZ_PULSEAUDIO_LIBS="-lpulse" + fi + fi + + AC_SUBST(MOZ_PULSEAUDIO) + AC_SUBST(MOZ_PULSEAUDIO_CFLAGS) +-AC_SUBST(MOZ_PULSEAUDIO_LIBS) + + dnl ======================================================== + dnl = Enable GStreamer + dnl ======================================================== + if test "$OS_TARGET" = "Linux"; then + MOZ_GSTREAMER=1 + fi + +diff --git a/media/webrtc/signaling/test/Makefile.in b/media/webrtc/signaling/test/Makefile.in +--- a/media/webrtc/signaling/test/Makefile.in ++++ b/media/webrtc/signaling/test/Makefile.in +@@ -18,21 +18,16 @@ LIBS = \ + $(NULL) + + ifdef MOZ_CUBEB + ifdef MOZ_ALSA + LIBS += \ + $(MOZ_ALSA_LIBS) \ + $(NULL) + endif +-ifdef MOZ_PULSEAUDIO +-LIBS += \ +- $(MOZ_PULSEAUDIO_LIBS) \ +- $(NULL) +-endif + endif + + ifeq ($(OS_TARGET),Android) + LIBS += \ + $(STLPORT_LDFLAGS) \ + $(STLPORT_LIBS) \ + $(NULL) + CPPFLAGS += \ +diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in +--- a/toolkit/library/Makefile.in ++++ b/toolkit/library/Makefile.in +@@ -428,19 +428,16 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32 + endif + endif + + + ifdef MOZ_CUBEB + ifdef MOZ_ALSA + EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS) + endif +-ifdef MOZ_PULSEAUDIO +-EXTRA_DSO_LDOPTS += $(MOZ_PULSEAUDIO_LIBS) +-endif + endif + + ifdef HAVE_CLOCK_MONOTONIC + EXTRA_DSO_LDOPTS += $(REALTIME_LIBS) + endif + + ifeq (android,$(MOZ_WIDGET_TOOLKIT)) + OS_LIBS += -lGLESv2 diff --git a/mozilla-885002.patch b/mozilla-885002.patch new file mode 100644 index 0000000..e48c89a --- /dev/null +++ b/mozilla-885002.patch @@ -0,0 +1,30 @@ +# HG changeset patch +# Parent d8fd5706493e19bcb85443316a4c180849f5d247 +# User Steve Singer +Bug 885002 - Fix casting on 64 bit Big Endian platforms. + + +diff --git a/content/media/FileBlockCache.h b/content/media/FileBlockCache.h +--- a/content/media/FileBlockCache.h ++++ b/content/media/FileBlockCache.h +@@ -138,19 +138,17 @@ public: + + bool IsEmpty() { + return nsDeque::GetSize() == 0; + } + + private: + int32_t ObjectAt(int32_t aIndex) { + void* v = nsDeque::ObjectAt(aIndex); +- // Ugly hack to work around "casting 64bit void* to 32bit int loses precision" +- // error on 64bit Linux. +- return *(reinterpret_cast(&v)); ++ return reinterpret_cast(v); + } + }; + + private: + int64_t BlockIndexToOffset(int32_t aBlockIndex) { + return static_cast(aBlockIndex) * BLOCK_SIZE; + } + diff --git a/mozilla-build-arm.patch b/mozilla-build-arm.patch new file mode 100644 index 0000000..4f25113 --- /dev/null +++ b/mozilla-build-arm.patch @@ -0,0 +1,35 @@ +diff -up mozilla-release/gfx/layers/BufferUnrotate.cpp.arm mozilla-release/gfx/layers/BufferUnrotate.cpp +--- mozilla-release/gfx/layers/BufferUnrotate.cpp.arm 2013-12-05 17:07:31.000000000 +0100 ++++ mozilla-release/gfx/layers/BufferUnrotate.cpp 2013-12-10 14:47:43.234182482 +0100 +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + void BufferUnrotate(uint8_t* aBuffer, int aByteWidth, int aHeight, + int aByteStride, int aXBoundary, int aYBoundary) +diff -up mozilla-release/gfx/ycbcr/moz.build.arm mozilla-release/gfx/ycbcr/moz.build +--- mozilla-release/gfx/ycbcr/moz.build.arm 2013-12-05 17:07:32.000000000 +0100 ++++ mozilla-release/gfx/ycbcr/moz.build 2013-12-10 14:47:43.235182479 +0100 +@@ -61,7 +61,7 @@ else: + 'yuv_row_other.cpp', + ] + +-if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']: ++if CONFIG['HAVE_ARM_NEON']: + ASFILES += [ + 'yuv_row_arm.s', + ] +diff -up mozilla-release/media/libtheora/lib/moz.build.arm mozilla-release/media/libtheora/lib/moz.build +--- mozilla-release/media/libtheora/lib/moz.build.arm 2013-12-05 17:07:48.000000000 +0100 ++++ mozilla-release/media/libtheora/lib/moz.build 2013-12-12 11:45:41.882119059 +0100 +@@ -8,7 +8,7 @@ MODULE = 'theora' + + LIBRARY_NAME = 'theora' + +-if CONFIG['OS_TEST'] == 'arm' and CONFIG['GNU_AS']: ++if CONFIG['HAVE_ARM_NEON'] and CONFIG['GNU_AS']: + asm_suffix = CONFIG['ASM_SUFFIX'] + ASFILES += [ + 'armbits-gnu.%s' % asm_suffix, diff --git a/mozilla-build.patch b/mozilla-build.patch new file mode 100644 index 0000000..be73cdf --- /dev/null +++ b/mozilla-build.patch @@ -0,0 +1,22 @@ +diff -up mozilla-release/security/build/Makefile.in.build mozilla-release/security/build/Makefile.in +--- mozilla-release/security/build/Makefile.in.build 2013-12-05 17:07:53.000000000 +0100 ++++ mozilla-release/security/build/Makefile.in 2013-12-09 15:10:17.177970414 +0100 +@@ -128,7 +128,6 @@ DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR= + DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR) + DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1 + DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1 +-DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ECC=1 + DEFAULT_GMAKE_FLAGS += NSINSTALL="$(NSINSTALL)" + ifeq ($(OS_ARCH),WINNT) + DEFAULT_GMAKE_FLAGS += INSTALL="$(NSINSTALL) -t" +diff -up mozilla-release/security/manager/ssl/src/Makefile.in.build mozilla-release/security/manager/ssl/src/Makefile.in +--- mozilla-release/security/manager/ssl/src/Makefile.in.build 2013-12-09 15:10:17.177970414 +0100 ++++ mozilla-release/security/manager/ssl/src/Makefile.in 2013-12-09 15:11:02.282047401 +0100 +@@ -6,7 +6,6 @@ + + EXPORT_LIBRARY = 1 + DEFINES += \ +- -DNSS_ENABLE_ECC \ + -DDLL_PREFIX=\"$(DLL_PREFIX)\" \ + -DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \ + $(NULL) diff --git a/rhbz-966424.patch b/rhbz-966424.patch new file mode 100644 index 0000000..c4c332e --- /dev/null +++ b/rhbz-966424.patch @@ -0,0 +1,23 @@ +--- 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/xulrunner-2.0-chromium-types.patch b/xulrunner-2.0-chromium-types.patch new file mode 100644 index 0000000..2b3db8c --- /dev/null +++ b/xulrunner-2.0-chromium-types.patch @@ -0,0 +1,31 @@ +diff -up xulrunner-17.0/mozilla-release/gfx/ycbcr/chromium_types.h.chromium-types xulrunner-17.0/mozilla-release/gfx/ycbcr/chromium_types.h +--- xulrunner-17.0/mozilla-release/gfx/ycbcr/chromium_types.h.chromium-types 2012-11-16 20:56:29.000000000 +0100 ++++ xulrunner-17.0/mozilla-release/gfx/ycbcr/chromium_types.h 2012-11-20 09:19:14.843448418 +0100 +@@ -30,7 +30,11 @@ typedef int16_t int16; + #define ARCH_CPU_ARM_FAMILY 1 + #define ARCH_CPU_ARMEL 1 + #define ARCH_CPU_32_BITS 1 +-#elif defined(__ppc__) || defined(__powerpc) || defined(__PPC__) ++#elif defined(__powerpc64__) ++#define ARCH_CPU_PPC_FAMILY 1 ++#define ARCH_CPU_PPC 1 ++#define ARCH_CPU_64_BITS 1 ++#elif defined(__ppc__) || defined(__powerpc__) || defined(__PPC__) + #define ARCH_CPU_PPC_FAMILY 1 + #define ARCH_CPU_PPC 1 + #define ARCH_CPU_32_BITS 1 +@@ -42,6 +46,14 @@ typedef int16_t int16; + #define ARCH_CPU_SPARC_FAMILY 1 + #define ARCH_CPU_SPARC 1 + #define ARCH_CPU_64_BITS 1 ++#elif defined(__s390x__) ++#define ARCH_CPU_S390_FAMILY 1 ++#define ARCH_CPU_S390 1 ++#define ARCH_CPU_64_BITS 1 ++#elif defined(__s390__) ++#define ARCH_CPU_S390_FAMILY 1 ++#define ARCH_CPU_S390 1 ++#define ARCH_CPU_32_BITS 1 + #else + #warning Please add support for your architecture in chromium_types.h + #endif diff --git a/xulrunner-24.0-gcc47.patch b/xulrunner-24.0-gcc47.patch new file mode 100644 index 0000000..28de75f --- /dev/null +++ b/xulrunner-24.0-gcc47.patch @@ -0,0 +1,13 @@ +diff -up mozilla-release/toolkit/crashreporter/client/Makefile.in.gcc47 mozilla-release/toolkit/crashreporter/client/Makefile.in +--- mozilla-release/toolkit/crashreporter/client/Makefile.in.gcc47 2013-12-09 15:12:50.659231760 +0100 ++++ mozilla-release/toolkit/crashreporter/client/Makefile.in 2013-12-09 15:13:45.448324783 +0100 +@@ -42,6 +42,9 @@ endif + + ifdef MOZ_WIDGET_GTK + ++# Needed for moz_free ++LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc ++ + LIBS += \ + $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/linux/$(LIB_PREFIX)breakpad_linux_common_s.$(LIB_SUFFIX) \ + $(NULL) diff --git a/xulrunner-24.0-jemalloc-ppc.patch b/xulrunner-24.0-jemalloc-ppc.patch new file mode 100644 index 0000000..fe404ca --- /dev/null +++ b/xulrunner-24.0-jemalloc-ppc.patch @@ -0,0 +1,12 @@ +diff -up xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c.jemalloc-ppc xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c +--- xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c.jemalloc-ppc 2013-09-11 01:15:18.000000000 +0200 ++++ xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c 2013-09-13 13:36:34.171680919 +0200 +@@ -1104,7 +1104,7 @@ static unsigned ncpus; + * 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__) ++#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !(defined(__powerpc__)) + #define MALLOC_STATIC_SIZES 1 + #endif + diff --git a/xulrunner-24.0-s390-inlines.patch b/xulrunner-24.0-s390-inlines.patch new file mode 100644 index 0000000..074f8d9 --- /dev/null +++ b/xulrunner-24.0-s390-inlines.patch @@ -0,0 +1,12 @@ +diff -up xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp.s390-inlines xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp +--- xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp.s390-inlines 2013-10-23 16:04:01.773093979 +0200 ++++ xulrunner-25.0/mozilla-release/js/src/vm/SPSProfiler.cpp 2013-10-23 16:04:44.551134551 +0200 +@@ -4,6 +4,8 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + ++#include "jscntxtinlines.h" ++ + #include "vm/SPSProfiler.h" + + #include "mozilla/DebugOnly.h"