Standalone firefox package without need of xulrunner

This commit is contained in:
Jan Horak 2014-01-09 10:56:01 +01:00
parent b75e322ff0
commit 875d0c0e87
12 changed files with 572 additions and 57 deletions

View File

@ -2,13 +2,15 @@
ac_add_options --prefix="$PREFIX" ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR" 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-jpeg
ac_add_options --with-system-zlib ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-libvpx ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --with-pthreads ac_add_options --with-pthreads
ac_add_options --disable-strip
ac_add_options --disable-tests ac_add_options --disable-tests
ac_add_options --disable-mochitest
ac_add_options --disable-installer ac_add_options --disable-installer
ac_add_options --enable-xinerama ac_add_options --enable-xinerama
ac_add_options --enable-default-toolkit=cairo-gtk2 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-pango
ac_add_options --enable-svg ac_add_options --enable-svg
ac_add_options --enable-canvas ac_add_options --enable-canvas
ac_add_options --disable-javaxpcom
ac_add_options --enable-startup-notification 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-safe-browsing
ac_add_options --enable-extensions=default
ac_add_options --enable-libnotify ac_add_options --enable-libnotify
ac_add_options --disable-necko-wifi ac_add_options --disable-necko-wifi
ac_add_options --enable-startup-notification
ac_add_options --disable-cpp-exceptions ac_add_options --disable-cpp-exceptions
ac_add_options --enable-shared-js
ac_add_options --disable-updater ac_add_options --disable-updater
ac_add_options --enable-url-classifier ac_add_options --enable-url-classifier
ac_add_options --enable-gio ac_add_options --enable-gio
ac_add_options --disable-gnomevfs ac_add_options --disable-gnomevfs
ac_add_options --enable-chrome-format=omni ac_add_options --enable-chrome-format=omni
ac_add_options --with-system-libxul ac_add_options --enable-pulseaudio
ac_add_options --disable-gstreamer ac_add_options --enable-gstreamer
export BUILD_OFFICIAL=1 export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1 export MOZILLA_OFFICIAL=1

View File

@ -1,6 +1,11 @@
pref("app.update.auto", false); pref("app.update.auto", false);
pref("app.update.enabled", false); pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", 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.backspace_action", 2);
pref("browser.display.use_system_colors", true); pref("browser.display.use_system_colors", true);
pref("browser.download.folderList", 1); pref("browser.download.folderList", 1);

View File

@ -1,6 +1,20 @@
# Use system nss/nspr? # Use system nspr/nss?
%define system_nss 1 %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 # Separated plugins are supported on x86(64) only
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64
%define separated_plugins 1 %define separated_plugins 1
@ -13,13 +27,33 @@
%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html %define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
%define firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} %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
%global xulrunner_version 26.0 %if %{?system_nss}
%global xulrunner_version_max 26.1 %global nspr_version 4.10.2
%global xulrunner_release 1 %global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
%global alpha_version 0 %global nss_version 3.15.2
%global beta_version 0 %global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
%global rc_version 0 %endif
%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 mozappdir %{_libdir}/%{name}
%global langpackdir %{mozappdir}/langpacks %global langpackdir %{mozappdir}/langpacks
@ -35,8 +69,7 @@
%if %{alpha_version} > 0 %if %{alpha_version} > 0
%global pre_version a%{alpha_version} %global pre_version a%{alpha_version}
%global pre_name alpha%{alpha_version} %global tarballdir mozilla-beta
%global tarballdir mozilla-alpha
%endif %endif
%if %{beta_version} > 0 %if %{beta_version} > 0
%global pre_version b%{beta_version} %global pre_version b%{beta_version}
@ -48,12 +81,6 @@
%global pre_name rc%{rc_version} %global pre_name rc%{rc_version}
%global tarballdir mozilla-release %global tarballdir mozilla-release
%endif %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 Summary: Mozilla Firefox Web browser
Name: firefox Name: firefox
@ -75,14 +102,26 @@ Source23: firefox.1
#Build patches #Build patches
Patch0: firefox-install-dir.patch Patch0: firefox-install-dir.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 patches # Fedora specific patches
Patch14: firefox-5.0-asciidel.patch # Unable to install addons from https pages
Patch15: firefox-15.0-enable-addons.patch Patch204: rhbz-966424.patch
Patch16: firefox-duckduckgo.patch Patch214: firefox-5.0-asciidel.patch
Patch215: firefox-15.0-enable-addons.patch
Patch216: firefox-duckduckgo.patch
# Upstream patches # Upstream patches
Patch20: mozilla-938730.patch Patch300: mozilla-837563.patch
Patch301: mozilla-938730.patch
Patch302: mozilla-885002.patch
%if %{official_branding} %if %{official_branding}
# Required by Mozilla Corporation # Required by Mozilla Corporation
@ -92,22 +131,82 @@ Patch20: mozilla-938730.patch
# Not yet approved by Mozillla Corporation # Not yet approved by Mozillla Corporation
%endif %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: desktop-file-utils
BuildRequires: system-bookmarks 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 Requires: system-bookmarks
Obsoletes: mozilla <= 37:1.7.13 Obsoletes: mozilla <= 37:1.7.13
Provides: webclient Provides: webclient
Conflicts: xulrunner%{?_isa} > %{xulrunner_version_max}
%description %description
Mozilla Firefox is an open-source web browser, designed for standards Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability. 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. # ignored during this compare.
%patch0 -p1 %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. # For branding specific patches.
# Fedora patches # Fedora patches
%patch14 -p1 -b .asciidel %patch204 -p1 -b .966424
%patch15 -p2 -b .addons %patch214 -p1 -b .asciidel
%patch16 -p1 -b .duckduckgo %patch215 -p2 -b .addons
%patch216 -p1 -b .duckduckgo
# Upstream patches # Upstream patches
%patch20 -p1 -b .938730 %patch300 -p1 -b .837563
%patch301 -p1 -b .938730
%patch302 -p1 -b .885002
%if %{official_branding} %if %{official_branding}
# Required by Mozilla Corporation # Required by Mozilla Corporation
@ -137,22 +246,34 @@ cd %{tarballdir}
# Not yet approved by Mozilla Corporation # Not yet approved by Mozilla Corporation
%endif %endif
%{__rm} -f .mozconfig %{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig %{__cp} %{SOURCE10} .mozconfig
%if %{official_branding} %if %{official_branding}
%{__cat} %{SOURCE11} >> .mozconfig %{__cat} %{SOURCE11} >> .mozconfig
%endif %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 %if %{?system_sqlite}
MOZILLA_SDK_PATH=`pkg-config --variable=sdkdir libxul` echo "ac_add_options --enable-system-sqlite" >> .mozconfig
if [ -z "$MOZILLA_SDK_PATH" ]; then %else
echo "XulRunner SDK is not available!" echo "ac_add_options --disable-system-sqlite" >> .mozconfig
exit 1 %endif
else
echo "XulRunner SDK path: $MOZILLA_SDK_PATH" %if %{?system_cairo}
echo "ac_add_options --with-libxul-sdk=$MOZILLA_SDK_PATH" >> .mozconfig echo "ac_add_options --enable-system-cairo" >> .mozconfig
fi %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} %if !%{?separated_plugins}
echo "ac_add_options --disable-ipc" >> .mozconfig echo "ac_add_options --disable-ipc" >> .mozconfig
@ -165,36 +286,70 @@ echo "ac_add_options --disable-elf-hack" >> .mozconfig
%if %{?debug_build} %if %{?debug_build}
echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --enable-debug" >> .mozconfig
echo "ac_add_options --disable-optimize" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig
echo "ac_add_options --enable-dtrace" >> .mozconfig
%else %else
echo "ac_add_options --disable-debug" >> .mozconfig echo "ac_add_options --disable-debug" >> .mozconfig
echo "ac_add_options --enable-optimize" >> .mozconfig echo "ac_add_options --enable-optimize" >> .mozconfig
%endif %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 # s390(x) fails to start with jemalloc enabled
%ifarch s390 s390x %ifarch s390 s390x
echo "ac_add_options --disable-jemalloc" >> .mozconfig echo "ac_add_options --disable-jemalloc" >> .mozconfig
%endif %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 %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} 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 # Mozilla builds with -Wall with exception of a few warnings which show up
# everywhere in the code; so, don't override that. # everywhere in the code; so, don't override that.
# #
# Disable C++ exceptions since Mozilla code is not exception-safe # Disable C++ exceptions since Mozilla code is not exception-safe
# #
MOZ_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | \ MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-Wall//')
%{__sed} -e 's/-Wall//')
#rhbz#1037063 #rhbz#1037063
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
%if %{?debug_build} %if %{?debug_build}
@ -208,6 +363,7 @@ MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif %endif
export CFLAGS=$MOZ_OPT_FLAGS export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS=$MOZ_OPT_FLAGS export CXXFLAGS=$MOZ_OPT_FLAGS
export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}' export PREFIX='%{_prefix}'
export LIBDIR='%{_libdir}' export LIBDIR='%{_libdir}'
@ -215,15 +371,22 @@ export LIBDIR='%{_libdir}'
MOZ_SMP_FLAGS=-j1 MOZ_SMP_FLAGS=-j1
# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, # 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. # 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" ] && \ [ -z "$RPM_BUILD_NCPUS" ] && \
RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 [ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4
[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8
%endif %endif
export LDFLAGS="-Wl,-rpath,%{mozappdir}" #export LDFLAGS="-Wl,-rpath,%{mozappdir}"
make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" 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 # Copy over the LICENSE
%{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT/%{mozappdir} %{__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 # Enable crash reporter for Firefox application
%if %{enable_mozilla_crashreporter} %if %{enable_mozilla_crashreporter}
sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" $RPM_BUILD_ROOT/%{mozappdir}/application.ini 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/omni.ja
%{mozappdir}/webapprt/webapprt.ini %{mozappdir}/webapprt/webapprt.ini
%if %{enable_mozilla_crashreporter} %if %{enable_mozilla_crashreporter}
%{mozappdir}/crashreporter
%{mozappdir}/crashreporter.ini
%{mozappdir}/Throbber-small.gif
%{mozappdir}/browser/crashreporter-override.ini %{mozappdir}/browser/crashreporter-override.ini
%endif %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
#--------------------------------------------------------------------- #---------------------------------------------------------------------

144
mozilla-837563.patch Normal file
View File

@ -0,0 +1,144 @@
# HG changeset patch
# User Matthew Gregan <kinetik@flim.org>
# 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

30
mozilla-885002.patch Normal file
View File

@ -0,0 +1,30 @@
# HG changeset patch
# Parent d8fd5706493e19bcb85443316a4c180849f5d247
# User Steve Singer <steve@ssinger.info>
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<int32_t*>(&v));
+ return reinterpret_cast<uintptr_t>(v);
}
};
private:
int64_t BlockIndexToOffset(int32_t aBlockIndex) {
return static_cast<int64_t>(aBlockIndex) * BLOCK_SIZE;
}

35
mozilla-build-arm.patch Normal file
View File

@ -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 <stdint.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
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,

22
mozilla-build.patch Normal file
View File

@ -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)

23
rhbz-966424.patch Normal file
View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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

View File

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