From 772ea73a50d5439b88c0d51182a987ba46d24a66 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 22 Jun 2016 19:07:56 -0300 Subject: icecat-38.8.0_gnu1-2: hunspell 1.4.1 rebuild * GCC6 is not officially supported and lot of patches have been added. --- libre/icecat/PKGBUILD | 20 +++++- libre/icecat/firefox-gcc-6.0.patch | 26 +++++++ libre/icecat/gcc6-fix-compilation-for-IceCat.patch | 37 ++++++++++ libre/icecat/mozconfig | 20 +++--- libre/icecat/mozilla-1228540-1.patch | 84 ++++++++++++++++++++++ 5 files changed, 176 insertions(+), 11 deletions(-) create mode 100644 libre/icecat/firefox-gcc-6.0.patch create mode 100644 libre/icecat/gcc6-fix-compilation-for-IceCat.patch create mode 100644 libre/icecat/mozilla-1228540-1.patch (limited to 'libre/icecat') 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 () { + 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 ++#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS + # include ++#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS + # include + + 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 ; break the cycle by always explicitly + // including 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 ++# include_next + + // 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 +# 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(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; + -- cgit v1.2.3