summaryrefslogtreecommitdiff
path: root/libre/icecat
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-06-22 19:07:56 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-06-22 19:08:12 -0300
commit772ea73a50d5439b88c0d51182a987ba46d24a66 (patch)
treed699d44090fddc6c468ccdffa2f194f3a1c3bb31 /libre/icecat
parent3d198a7a1d809da20d52b7399e39c4af513cced3 (diff)
icecat-38.8.0_gnu1-2: hunspell 1.4.1 rebuild
* GCC6 is not officially supported and lot of patches have been added.
Diffstat (limited to 'libre/icecat')
-rw-r--r--libre/icecat/PKGBUILD20
-rw-r--r--libre/icecat/firefox-gcc-6.0.patch26
-rw-r--r--libre/icecat/gcc6-fix-compilation-for-IceCat.patch37
-rw-r--r--libre/icecat/mozconfig20
-rw-r--r--libre/icecat/mozilla-1228540-1.patch84
5 files changed, 176 insertions, 11 deletions
diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD
index 74a5ccf66..f0feee2d9 100644
--- a/libre/icecat/PKGBUILD
+++ b/libre/icecat/PKGBUILD
@@ -15,7 +15,7 @@ _pgo=true
pkgname=icecat
_pkgver=38.8.0-gnu1
pkgver=${_pkgver//-/_}
-pkgrel=1
+pkgrel=2
pkgdesc="GNU IceCat, the standalone web browser based on Mozilla Firefox."
arch=(i686 x86_64)
@@ -40,6 +40,7 @@ source=(http://ftp.gnu.org/gnu/gnuzilla/${_pkgver%-*}/$pkgname-$_pkgver.tar.bz2{
gnu_headshadow.png
$pkgname.desktop
$pkgname-install-dir.patch
+ firefox-gcc-6.0.patch gcc6-fix-compilation-for-IceCat.patch mozilla-1228540-1.patch
vendor.js
$pkgname-fixed-loading-icon.png
remove-google-play-services-support.patch
@@ -47,11 +48,14 @@ source=(http://ftp.gnu.org/gnu/gnuzilla/${_pkgver%-*}/$pkgname-$_pkgver.tar.bz2{
mksha256sums=('1f58676fc0bdf60dc37145b8c97f507f0acec9bc84582aeef703cf0ed9744ed3')
sha256sums=('97f76e85cc6f98463f0e0b0e845826816032770f9b589db69ece6b1cff21936c'
'SKIP'
- '33a8cf07373c63a0bea70ec2c3983d2cca990752c0f946cb5dbd91f1e2b6410f'
+ '19783b0cca336bca7c262f597acc176ca640756e7567ca6587a46b860f12ef91'
'dd173c9283babb8a04bf55274de05e823161f7d13adb8c5e21dd5a9c0dc549a2'
'93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd'
'52df9ffeb52166ed4abd9a132ee4a9017b9c4980f0725ba383610ccfb06d4745'
'5bdab2de5520fb4d3dbc453d9f73d20e0e077bf652bc780fc17184ba6c718a47'
+ '4d1e1ddabc9e975ed39f49e134559a29e01cd49439e358233f1ede43bf5a52bf'
+ '329cf6753d29ae64a4336a8a76ee71f0d331a39132159401e4d11de65b708a07'
+ 'd1ccbaf0973615c57f7893355e5cd3a89efb4e91071d0ec376e429b50cf6ed19'
'977aa49b940f1da049cefa2878a63ac6669a78e63e9d55bb11db7b8f8fb64c33'
'68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213'
'9e651b0f7e7d9d663e8b24077d52bad15f011871747743aff60d6e2d7a45ae5b'
@@ -74,6 +78,11 @@ prepare() {
# Install to /usr/lib/$pkgname
patch -Np1 -i "$srcdir/$pkgname-install-dir.patch"
+ # GCC 6
+ patch -Np1 -i ../firefox-gcc-6.0.patch
+ patch -Np1 -i ../gcc6-fix-compilation-for-IceCat.patch
+ patch -Np1 -i ../mozilla-1228540-1.patch
+
# Patch and remove anything that's left
patch -Np1 -i "$srcdir/libre.patch"
patch -Np1 -i "$srcdir/remove-google-play-services-support.patch"
@@ -109,6 +118,13 @@ build() {
cd "$srcdir/$GNU_BUILD"
+ # _FORTIFY_SOURCE causes configure failures
+ CPPFLAGS+=" -O2"
+
+ # GCC 6
+ CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
+ CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
+
export PATH="$srcdir/path:$PATH"
export PYTHON="/usr/bin/python2"
diff --git a/libre/icecat/firefox-gcc-6.0.patch b/libre/icecat/firefox-gcc-6.0.patch
new file mode 100644
index 000000000..0a74d3616
--- /dev/null
+++ b/libre/icecat/firefox-gcc-6.0.patch
@@ -0,0 +1,26 @@
+diff -up firefox-44.0/nsprpub/config/make-system-wrappers.pl.back firefox-44.0/nsprpub/config/make-system-wrappers.pl
+--- firefox-44.0/nsprpub/config/make-system-wrappers.pl.back 2016-01-24 00:23:49.000000000 +0100
++++ firefox-44.0/nsprpub/config/make-system-wrappers.pl 2016-02-02 14:58:45.064112655 +0100
+@@ -19,7 +19,9 @@ while (<STDIN>) {
+ open OUT, ">$output_dir/$_";
+ print OUT "#pragma GCC system_header\n"; # suppress include_next warning
+ print OUT "#pragma GCC visibility push(default)\n";
++ print OUT "#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n";
+ print OUT "#include_next \<$_\>\n";
++ print OUT "#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n";
+ print OUT "#pragma GCC visibility pop\n";
+ close OUT;
+ }
+diff -up firefox-44.0/mozglue/build/arm.cpp.old firefox-44.0/mozglue/build/arm.cpp
+--- firefox-44.0/mozglue/build/arm.cpp.old 2016-02-03 10:07:29.879526500 +0100
++++ firefox-44.0/mozglue/build/arm.cpp 2016-02-03 10:08:11.062697517 +0100
+@@ -104,7 +104,9 @@ check_neon(void)
+
+ # elif defined(__linux__) || defined(ANDROID)
+ # include <stdio.h>
++#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+ # include <stdlib.h>
++#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+ # include <string.h>
+
+ enum{
diff --git a/libre/icecat/gcc6-fix-compilation-for-IceCat.patch b/libre/icecat/gcc6-fix-compilation-for-IceCat.patch
new file mode 100644
index 000000000..2c291567c
--- /dev/null
+++ b/libre/icecat/gcc6-fix-compilation-for-IceCat.patch
@@ -0,0 +1,37 @@
+--- a/config/gcc-stl-wrapper.template.h 2016-05-10 22:26:46.000000000 +0200
++++ b/config/gcc-stl-wrapper.template.h 2016-05-23 23:48:21.137431360 +0200
+@@ -22,6 +22,11 @@
+ #define NOMINMAX 1
+ #endif
+
++// 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:
+ //
+@@ -30,15 +35,17 @@
+ // 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)
diff --git a/libre/icecat/mozconfig b/libre/icecat/mozconfig
index d85989194..40ecc5add 100644
--- a/libre/icecat/mozconfig
+++ b/libre/icecat/mozconfig
@@ -2,36 +2,38 @@
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
+ac_add_options --enable-gold
ac_add_options --enable-pie
-ac_add_options --enable-official-branding
-
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
+ac_add_options --with-system-icu
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
-ac_add_options --with-system-png
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
-ac_add_options --with-system-icu
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
-#ac_add_options --enable-system-cairo
ac_add_options --enable-system-pixman
# Features
+ac_add_options --enable-optimize
ac_add_options --enable-startup-notification
-ac_add_options --enable-pulseaudio
-ac_add_options --enable-gstreamer=1.0
-
-ac_add_options --disable-crashreporter
+ac_add_options --disable-gstreamer
ac_add_options --disable-updater
+ac_add_options --disable-crashreporter
ac_add_options --disable-installer
+ac_add_options --disable-telemetry
ac_add_options --disable-debug-symbols
+ac_add_options --with-app-basename=icecat
+ac_add_options --with-app-name=icecat
+
+STRIP_FLAGS="--strip-debug"
+
# Parabola features
ac_add_options --disable-safe-browsing
ac_add_options --disable-url-classifier
diff --git a/libre/icecat/mozilla-1228540-1.patch b/libre/icecat/mozilla-1228540-1.patch
new file mode 100644
index 000000000..be6ffc316
--- /dev/null
+++ b/libre/icecat/mozilla-1228540-1.patch
@@ -0,0 +1,84 @@
+# HG changeset patch
+# User Jonathan Kew <jkew@mozilla.com>
+# Date 1452675061 0
+# Wed Jan 13 08:51:01 2016 +0000
+# Node ID cf699e95e98829b465b64a7e0281d95ec851ce8c
+# Parent 3c9f357598e86c2f593e9895d5725bf3498f8f5a
+Bug 1228540 - pt 2 - Remove our HBGetGlyphHOrigin callback, as the default behavior is sufficient.
+
+diff --git a/gfx/thebes/gfxHarfBuzzShaper.cpp b/gfx/thebes/gfxHarfBuzzShaper.cpp
+--- a/gfx/thebes/gfxHarfBuzzShaper.cpp
++++ b/gfx/thebes/gfxHarfBuzzShaper.cpp
+@@ -349,27 +349,16 @@ gfxHarfBuzzShaper::HBGetGlyphVAdvance(hb
+ static_cast<const gfxHarfBuzzShaper::FontCallbackData*>(font_data);
+ // Currently, we don't offer gfxFont subclasses a method to override this
+ // and provide hinted platform-specific vertical advances (analogous to the
+ // GetGlyphWidth method for horizontal advances). If that proves necessary,
+ // we'll add a new gfxFont method and call it from here.
+ return fcd->mShaper->GetGlyphVAdvance(glyph);
+ }
+
+-/* static */
+-hb_bool_t
+-gfxHarfBuzzShaper::HBGetGlyphHOrigin(hb_font_t *font, void *font_data,
+- hb_codepoint_t glyph,
+- hb_position_t *x, hb_position_t *y,
+- void *user_data)
+-{
+- // We work in horizontal coordinates, so no origin adjustment needed here.
+- return true;
+-}
+-
+ struct VORG {
+ AutoSwap_PRUint16 majorVersion;
+ AutoSwap_PRUint16 minorVersion;
+ AutoSwap_PRInt16 defaultVertOriginY;
+ AutoSwap_PRUint16 numVertOriginYMetrics;
+ };
+
+ struct VORGrec {
+@@ -1262,19 +1251,16 @@ gfxHarfBuzzShaper::Initialize()
+ hb_font_funcs_set_glyph_func(sHBFontFuncs, HBGetGlyph,
+ nullptr, nullptr);
+ hb_font_funcs_set_glyph_h_advance_func(sHBFontFuncs,
+ HBGetGlyphHAdvance,
+ nullptr, nullptr);
+ hb_font_funcs_set_glyph_v_advance_func(sHBFontFuncs,
+ HBGetGlyphVAdvance,
+ nullptr, nullptr);
+- hb_font_funcs_set_glyph_h_origin_func(sHBFontFuncs,
+- HBGetGlyphHOrigin,
+- nullptr, nullptr);
+ hb_font_funcs_set_glyph_v_origin_func(sHBFontFuncs,
+ HBGetGlyphVOrigin,
+ nullptr, nullptr);
+ hb_font_funcs_set_glyph_extents_func(sHBFontFuncs,
+ HBGetGlyphExtents,
+ nullptr, nullptr);
+ hb_font_funcs_set_glyph_contour_point_func(sHBFontFuncs,
+ HBGetContourPoint,
+diff --git a/gfx/thebes/gfxHarfBuzzShaper.h b/gfx/thebes/gfxHarfBuzzShaper.h
+--- a/gfx/thebes/gfxHarfBuzzShaper.h
++++ b/gfx/thebes/gfxHarfBuzzShaper.h
+@@ -56,21 +56,16 @@ public:
+ hb_codepoint_t glyph, void *user_data);
+
+ // get harfbuzz vertical advance in 16.16 fixed point format.
+ static hb_position_t
+ HBGetGlyphVAdvance(hb_font_t *font, void *font_data,
+ hb_codepoint_t glyph, void *user_data);
+
+ static hb_bool_t
+- HBGetGlyphHOrigin(hb_font_t *font, void *font_data,
+- hb_codepoint_t glyph,
+- hb_position_t *x, hb_position_t *y,
+- void *user_data);
+- static hb_bool_t
+ HBGetGlyphVOrigin(hb_font_t *font, void *font_data,
+ hb_codepoint_t glyph,
+ hb_position_t *x, hb_position_t *y,
+ void *user_data);
+
+ hb_position_t GetHKerning(uint16_t aFirstGlyph,
+ uint16_t aSecondGlyph) const;
+