summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO22
-rw-r--r--PKGBUILD20
-rw-r--r--fix_mozalloc.patch74
-rw-r--r--rb39193.patch23
4 files changed, 125 insertions, 14 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ffb3148ad940..cce8d9a36b23 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 27af018fe5e2..6e4b7e970a0e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"
+
+