diff options
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 20 | ||||
-rw-r--r-- | fix_mozalloc.patch | 74 | ||||
-rw-r--r-- | rb39193.patch | 23 |
4 files changed, 125 insertions, 14 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Sat May 14 21:27:55 UTC 2016 +# Mon May 16 01:57:22 UTC 2016 pkgbase = firefox-kde-opensuse pkgdesc = Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE pkgver = 46.0.1 - pkgrel = 1 + pkgrel = 2 url = https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox arch = i686 arch = x86_64 @@ -53,16 +53,18 @@ pkgbase = firefox-kde-opensuse source = vendor.js source = kde.js source = firefox-fixed-loading-icon.png - source = http://www.rosenauer.org/hg/mozilla/raw-file//firefox-branded-icons.patch - source = http://www.rosenauer.org/hg/mozilla/raw-file//firefox-kde.patch - source = http://www.rosenauer.org/hg/mozilla/raw-file//firefox-no-default-ualocale.patch - source = http://www.rosenauer.org/hg/mozilla/raw-file//mozilla-kde.patch - source = http://www.rosenauer.org/hg/mozilla/raw-file//mozilla-language.patch - source = http://www.rosenauer.org/hg/mozilla/raw-file//mozilla-nongnome-proxies.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/firefox-branded-icons.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/firefox-kde.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/firefox-no-default-ualocale.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/mozilla-kde.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/mozilla-language.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/mozilla-nongnome-proxies.patch + source = fix_mozalloc.patch source = unity-menubar.patch source = add_missing_pgo_rule.patch source = pgo_fix_missing_kdejs.patch - source = http://www.rosenauer.org/hg/mozilla/raw-file//mozilla-gtk3_20.patch + source = rb39193.patch + source = http://www.rosenauer.org/hg/mozilla/raw-file/32eafb4c7b34/mozilla-gtk3_20.patch md5sums = 3e3b90268b8a634f7c60a25eb3a04c8c md5sums = 3bf79ce63bd0b0c11a9403ecc251c583 md5sums = 9b02198df96be08f2a0a323ac2e6c2a2 @@ -76,9 +78,11 @@ pkgbase = firefox-kde-opensuse md5sums = c6051dc51edf9e6af0270bc333d8a1c2 md5sums = 903307f923a459189a5a6062ff9df38c md5sums = 0c684360f1df4536512d51873c1d243d + md5sums = 0c1ed789c06297659137a2ed2ef769f7 md5sums = 06192dd34d7f6078353d4da5725d1d57 md5sums = fe24f5ea463013bb7f1c12d12dce41b2 md5sums = 3fa8bd22d97248de529780f5797178af + md5sums = 43550e772f110a338d5a42914ee2c3a6 md5sums = e39f1e1f732b55b5ccb007a90b66798c pkgname = firefox-kde-opensuse @@ -14,7 +14,7 @@ _pgo=true _pkgname=firefox pkgname=$_pkgname-kde-opensuse pkgver=46.0.1 -pkgrel=1 +pkgrel=2 pkgdesc="Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE" arch=('i686' 'x86_64') license=('MPL' 'GPL' 'LGPL') @@ -49,11 +49,15 @@ source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/ unity-menubar.patch add_missing_pgo_rule.patch pgo_fix_missing_kdejs.patch + rb39193.patch + fix_mozalloc.patch ) if [ $_gtk3 ] ; then source+=($_patchurl/mozilla-gtk3_20.patch) fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # Note: These are for Arch Linux use ONLY. For your own distribution, please # get your own set of keys. Feel free to contact foutrelis@archlinux.org for @@ -86,7 +90,10 @@ prepare() { echo -n "$_mozilla_api_key" >mozilla-api-key echo "ac_add_options --with-mozilla-api-keyfile=\"$PWD/mozilla-api-key\"" >>.mozconfig - + # Fix mozalloc.h see mozilla Bug #1245076 + patch -Np1 -i "$srcdir/fix_mozalloc.patch" + patch -Np1 -i "$srcdir/rb39193.patch" + msg "Patching for KDE" patch -Np1 -i "$srcdir/mozilla-nongnome-proxies.patch" patch -Np1 -i "$srcdir/mozilla-kde.patch" @@ -113,7 +120,7 @@ prepare() { fi # configure script misdetects the preprocessor without an optimization level # https://bugs.archlinux.org/task/34644 - sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure + # sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure # WebRTC build tries to execute "python" and expects Python 2 mkdir -p "$srcdir/path" @@ -134,8 +141,9 @@ build() { export PATH="$srcdir/path:$PATH" export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/firefox" export PYTHON="/usr/bin/python2" - export CPPFLAGS="$CPPFLAGS -mno-avx" - + export CPPFLAGS="$CPPFLAGS -mno-avx -fno-lifetime-dse -fno-delete-null-pointer-checks -Wnull-dereference -O3" + export CFLAGS="$CFLAGS -mno-avx -fno-lifetime-dse -fno-delete-null-pointer-checks -Wnull-dereference -O3" + if [[ -n $_lowmem || $CARCH == i686 ]]; then LDFLAGS+=" -Wl,--no-keep-memory" fi @@ -198,7 +206,9 @@ md5sums=('3e3b90268b8a634f7c60a25eb3a04c8c' 'c6051dc51edf9e6af0270bc333d8a1c2' '903307f923a459189a5a6062ff9df38c' '0c684360f1df4536512d51873c1d243d' + '0c1ed789c06297659137a2ed2ef769f7' '06192dd34d7f6078353d4da5725d1d57' 'fe24f5ea463013bb7f1c12d12dce41b2' '3fa8bd22d97248de529780f5797178af' + '43550e772f110a338d5a42914ee2c3a6' 'e39f1e1f732b55b5ccb007a90b66798c') diff --git a/fix_mozalloc.patch b/fix_mozalloc.patch new file mode 100644 index 000000000000..d5229a53b61e --- /dev/null +++ b/fix_mozalloc.patch @@ -0,0 +1,74 @@ +# HG changeset patch +# User Mike Hommey <mh+mozilla@glandium.org> +# Date 1457596445 -32400 +# Node ID 55212130f19da3079167a6b0a5a0ed6689c9a71d +# Parent 27c94617d7064d566c24a42e11cd4c7ef725923d +Bug 1245076 - Don't include mozalloc.h from the cstdlib wrapper. r=froydnj + +Our STL wrappers do various different things, one of which is including +mozalloc.h for infallible operator new. mozalloc.h includes stdlib.h, +which, in libstdc++ >= 6 is now itself a wrapper around cstdlib, which +circles back to our STL wrapper. + +But of the things our STL wrappers do, including mozalloc.h is not one +that is necessary for cstdlib. So skip including mozalloc.h in our +cstdlib wrapper. + +Additionally, some C++ sources (in media/mtransport) are including +headers in an extern "C" block, which end up including stdlib.h, which +ends up including cstdlib because really, this is all C++, and our +wrapper pre-includes <new> for mozalloc.h, which fails because templates +don't work inside extern "C". So, don't pre-include <new> when we're not +including mozalloc.h. + + +diff --git a/config/gcc-stl-wrapper.template.h b/config/gcc-stl-wrapper.template.h +--- a/config/gcc-stl-wrapper.template.h ++++ b/config/gcc-stl-wrapper.template.h +@@ -12,33 +12,40 @@ + // compiling ObjC. + #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS) + # error "STL code can only be used with -fno-exceptions" + #endif + + // Silence "warning: #include_next is a GCC extension" + #pragma GCC system_header + ++// Don't include mozalloc for cstdlib. See bug 1245076. ++#ifndef moz_dont_include_mozalloc_for_cstdlib ++# define moz_dont_include_mozalloc_for_cstdlib ++#endif ++#ifndef moz_dont_include_mozalloc_for_${HEADER} + // mozalloc.h wants <new>; break the cycle by always explicitly + // including <new> here. NB: this is a tad sneaky. Sez the gcc docs: + // + // `#include_next' does not distinguish between <file> and "file" + // inclusion, nor does it check that the file you specify has the + // same name as the current file. It simply looks for the file + // named, starting with the directory in the search path after the + // one where the current file was found. +-#include_next <new> ++# include_next <new> + + // See if we're in code that can use mozalloc. NB: this duplicates + // code in nscore.h because nscore.h pulls in prtypes.h, and chromium + // can't build with that being included before base/basictypes.h. +-#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) +-# include "mozilla/mozalloc.h" +-#else +-# error "STL code can only be used with infallible ::operator new()" ++# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC) ++# include "mozilla/mozalloc.h" ++# else ++# error "STL code can only be used with infallible ::operator new()" ++# endif ++ + #endif + + #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG) + // Enable checked iterators and other goodies + // + // FIXME/bug 551254: gcc's debug STL implementation requires -frtti. + // Figure out how to resolve this with -fno-rtti. Maybe build with + // -frtti in DEBUG builds? + diff --git a/rb39193.patch b/rb39193.patch new file mode 100644 index 000000000000..c3f06f19aae2 --- /dev/null +++ b/rb39193.patch @@ -0,0 +1,23 @@ +diff --git a/gfx/graphite2/src/Collider.cpp b/gfx/graphite2/src/Collider.cpp +--- a/gfx/graphite2/src/Collider.cpp ++++ b/gfx/graphite2/src/Collider.cpp +@@ -21,17 +21,17 @@ + + Alternatively, the contents of this file may be used under the terms of the + Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public + License, as published by the Free Software Foundation, either version 2 + of the License or (at your option) any later version. + */ + #include <algorithm> + #include <limits> +-#include <math.h> ++#include <cmath> + #include <string> + #include <functional> + #include "inc/Collider.h" + #include "inc/Segment.h" + #include "inc/Slot.h" + #include "inc/GlyphCache.h" + #include "inc/Sparse.h" + + |