From 431a78910174d31678e7553ec15bff750d42d96b Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Wed, 31 Jan 2018 19:17:50 +0100 Subject: libre/icecat: rebuilt and restructured --- libre/icecat/PKGBUILD | 285 ++++++++++++--------- libre/icecat/icecat.install | 13 - libre/icecat/mozconfig | 45 ---- libre/icecat/no-crmf.diff | 28 ++ libre/icecat/no-crmf.patch | 28 -- libre/icecat/no-libnotify.patch | 51 ---- libre/icecat/no-neon.patch | 123 --------- .../remove-google-play-services-support.patch | 64 ----- libre/icecat/vendor.js | 28 -- 9 files changed, 193 insertions(+), 472 deletions(-) delete mode 100644 libre/icecat/icecat.install delete mode 100644 libre/icecat/mozconfig create mode 100644 libre/icecat/no-crmf.diff delete mode 100644 libre/icecat/no-crmf.patch delete mode 100644 libre/icecat/no-libnotify.patch delete mode 100644 libre/icecat/no-neon.patch delete mode 100644 libre/icecat/remove-google-play-services-support.patch delete mode 100644 libre/icecat/vendor.js (limited to 'libre/icecat') diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD index 2f7936603..eb7983dd3 100644 --- a/libre/icecat/PKGBUILD +++ b/libre/icecat/PKGBUILD @@ -1,3 +1,7 @@ +# $Id$ +# Maintainer (Arch): Jan Alexander Steffens (heftig) +# Contributor (Arch): Ionut Biru +# Contributor (Arch): Jakub Schmidtke # Maintainer: Andreas Grapentin # Contributor: André Silva # Contributor: Márcio Silva @@ -5,86 +9,127 @@ # Contributor: Luke Shumaker # Contributor: fauno # Contributor: vando -# Contributor (Arch): Jakub Schmidtke # Contributor: Figue -# Thank you very much to the older contributors: # Contributor: evr # Contributor: Muhammad 'MJ' Jassim -_pgo=false +# parabola changes and rationale: +# - based on the PKGBUILD of iceweasel, sans rebranding + _pkgname=firefox pkgname=icecat _pkgver=52.3.0-gnu1 pkgver=${_pkgver//-/_} -pkgrel=7 - -pkgdesc="GNU IceCat, the standalone web browser based on Mozilla Firefox." -arch=(i686 x86_64 armv7h) +pkgrel=8 +pkgdesc="GNU Icecat - a libre standalone web browser based on Mozilla Firefox." +arch=(x86_64 i686 armv7h) license=(MPL GPL LGPL) -depends=(alsa-lib dbus-glib desktop-file-utils ffmpeg gtk2 gtk3 hicolor-icon-theme hunspell libvpx libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) +url="http://www.gnu.org/software/gnuzilla/" +depends=(gtk3 gtk2 mozilla-common libxt startup-notification mime-types dbus-glib ffmpeg + nss hunspell sqlite ttf-font libpulse libvpx icu) depends_x86_64=("icu>=60" "icu<61") depends_i686=("icu>=60" "icu<61") depends_armv7h=("icu>=60" "icu<61") -makedepends=(autoconf2.13 diffutils gconf imake inetutils libpulse mesa mozilla-searchplugins python2 unzip yasm zip) -options=(!emptydirs !makeflags debug) -replaces=("$_pkgname") -conflicts=("$_pkgname") -provides=("$_pkgname") -if $_pgo; then - makedepends+=(xorg-server-xvfb) - options+=(!ccache) -fi +makedepends=(unzip zip diffutils python2 yasm mesa imake gconf inetutils xorg-server-xvfb + autoconf2.13 rust clang llvm jack mozilla-searchplugins) optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'upower: Battery API') -url="http://www.gnu.org/software/gnuzilla/" -install=$pkgname.install +options=(!emptydirs !makeflags !strip) +replaces=("$_pkgname") +conflicts=("$_pkgname") source=(http://ftp.gnu.org/gnu/gnuzilla/${_pkgver%-*}/$pkgname-$_pkgver.tar.bz2{,.sig} - mozconfig - libre.patch - gnu_headshadow.png $pkgname.desktop - $pkgname-install-dir.patch - vendor.js + $pkgname-install-dir.patch no-crmf.diff $pkgname-fixed-loading-icon.png - mozilla-8904705.patch - mozilla-8909448.patch + mozilla-8904705.patch mozilla-8909448.patch disable-crypto-hardening-settings.patch disable-spoofSource-referer.patch - no-crmf.patch - no-neon.patch) + gnu_headshadow.png + libre.patch) sha256sums=('699ab2b41d4428ef5e360f3f33d98bc52723315cedac20bb03619846ca895302' 'SKIP' - '04952e0910c7c0d24faaa1ffa486dc3dae9f2c52548ff977858bec08ccb400f3' - '76a657a90371e637e7c4b371b71a15c85acafcece6277455e9ede84ffe104d3e' - '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' '52df9ffeb52166ed4abd9a132ee4a9017b9c4980f0725ba383610ccfb06d4745' '5bdab2de5520fb4d3dbc453d9f73d20e0e077bf652bc780fc17184ba6c718a47' - '977aa49b940f1da049cefa2878a63ac6669a78e63e9d55bb11db7b8f8fb64c33' + 'cf224d69e89f37f92202061669014b99fbf7b1fec38fd8ba9f957711fa095729' '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213' 'dc4feddbf22ea11ae2513c68b7f3fc9047850d055a7f30d31a7ee94d7d5de12a' '8ed42e75b577d57e4b07f1d70137cb8e82f757abb616f1cfea694a041ad5679e' 'bb1fc90d117c4a7810e202d23ff44a2dac11b675336533054b5a70dd8606df38' 'c50043266e69f5844e6dce9ea7193af79587dcaa66806932d7867281a176f03e' - 'cf224d69e89f37f92202061669014b99fbf7b1fec38fd8ba9f957711fa095729' - '6d0c1c9ca28b20d206ce24ca84f4d4e3f5d062a2e9cb7445fcb6c2cfea959b4a') -validpgpkeys=( - 'A57369A8BABC2542B5A0368C3C76EED7D7E04784' # Ruben Rodriguez -) + '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' + '76a657a90371e637e7c4b371b71a15c85acafcece6277455e9ede84ffe104d3e') +validpgpkeys=('A57369A8BABC2542B5A0368C3C76EED7D7E04784') # Ruben Rodriguez prepare() { - export GNU_BUILD="gnuzilla-release" + mkdir path + ln -s /usr/bin/python2 path/python + + cd "$srcdir/$pkgname-${pkgver%_*}" + patch -Np1 -i ../$pkgname-install-dir.patch + + # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 + patch -Np1 -i ../no-crmf.diff + + cat >.mozconfig <> .mozconfig << END +ac_add_options --disable-webrtc +ac_add_options --disable-elf-hack +ac_add_options --enable-optimize="-g -O2 -fno-schedule-insns" +END + fi # Put gnu_headshadow.png in the source code install -m644 "$srcdir/gnu_headshadow.png" \ browser/base/content/abouthome - # Install to /usr/lib/$pkgname - patch -Np1 -i "$srcdir/$pkgname-install-dir.patch" # Patch and remove anything that's left patch -Np1 -i "$srcdir/libre.patch" @@ -92,18 +137,6 @@ prepare() { sed -i '\|abouthome/snippet|d ' browser/base/jar.mn - # Load our build config, disable SafeSearch - cp "$srcdir/mozconfig" .mozconfig - - mkdir "$srcdir/path" - - # WebRTC build tries to execute "python" and expects Python 2 - ln -s /usr/bin/python2 "$srcdir/path/python" - - # Configure script misdetects the preprocessor without an optimization level - # https://bugs.archlinux.org/task/34644 - sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure - # Fix tab loading icon (doesn't work with libpng 1.6) # https://bugzilla.mozilla.org/show_bug.cgi?id=841734 cp "$srcdir/$pkgname-fixed-loading-icon.png" \ @@ -125,91 +158,103 @@ prepare() { # Disable spoofSource referer since it breaks referer function used by some sites # https://labs.parabola.nu/issues/1073 patch -Np1 -i "$srcdir/disable-spoofSource-referer.patch" - - # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 - patch -Np1 -i "$srcdir/no-crmf.patch" - - # ARM-specific changes: - if [[ "$CARCH" == arm* ]]; then - sed -i '/ac_add_options --enable-rust/d' .mozconfig - echo "ac_add_options --disable-ion" >> .mozconfig - echo "ac_add_options --disable-elf-hack" >> .mozconfig - echo "ac_add_options --disable-webrtc" >> .mozconfig - - # Disable gold linker, reduce memory consumption at link time - sed -i '/ac_add_options --enable-gold/d' .mozconfig - LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" - echo "ac_add_options --disable-tests" >> .mozconfig - echo "ac_add_options --disable-debug" >> .mozconfig - - echo "ac_add_options --disable-neon" >> .mozconfig - patch -Np0 -i ../no-neon.patch - fi } build() { - export GNU_BUILD="gnuzilla-release" - - cd "$srcdir/$GNU_BUILD" + cd "$srcdir/$pkgname-${pkgver%_*}" # _FORTIFY_SOURCE causes configure failures CPPFLAGS+=" -O2" - # Hardening - LDFLAGS+=" -Wl,-z,now" - - # 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" - - if $_pgo; then - # Do PGO - xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \ - make -f client.mk build MOZ_PGO=1 - else - make -f client.mk build - fi + + # Do PGO + #xvfb-run -a -n 95 -s "-extension GLX -screen 0 1280x1024x24" \ + # make -f client.mk build MOZ_PGO=1 + make -f client.mk build } package() { - export GNU_BUILD="gnuzilla-release" - - cd "$srcdir/$GNU_BUILD" + cd "$srcdir/$pkgname-${pkgver%_*}" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install - # fix permissions on extensions folders - chmod 755 "$pkgdir"/usr/lib/$pkgname/browser/extensions/*/icons + _vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" + install -Dm644 /dev/stdin "$_vendorjs" <&6 - if test "$result" = "yes"; then -- cat >> confdefs.pytmp <<\EOF -- (''' HAVE_ARM_SIMD ''', ' 1 ') --EOF --cat >> confdefs.h <<\EOF --#define HAVE_ARM_SIMD 1 --EOF -- -- HAVE_ARM_SIMD=1 -+ HAVE_ARM_SIMD= - fi - - echo $ac_n "checking ARM version support in compiler""... $ac_c" 1>&6 -@@ -7176,27 +7169,13 @@ - rm -f conftest* - echo "$ac_t"""$result"" 1>&6 - if test "$result" = "yes"; then -- cat >> confdefs.pytmp <<\EOF -- (''' HAVE_ARM_NEON ''', ' 1 ') --EOF --cat >> confdefs.h <<\EOF --#define HAVE_ARM_NEON 1 --EOF -+ HAVE_ARM_NEON= - -- HAVE_ARM_NEON=1 -- -- if test -n "$ARM_ARCH"; then -+ if test -n "$ARM_ARCH"; then - if test "$ARM_ARCH" -lt 7; then - BUILD_ARM_NEON= - else -- cat >> confdefs.pytmp <<\EOF -- (''' BUILD_ARM_NEON ''', ' 1 ') --EOF --cat >> confdefs.h <<\EOF --#define BUILD_ARM_NEON 1 --EOF -- -- BUILD_ARM_NEON=1 -+ BUILD_ARM_NEON= - fi - fi - fi ---- js/src/configure.orig 2015-08-07 06:33:02.108365042 -0600 -+++ js/src/configure 2015-08-08 18:24:00.676479200 -0600 -@@ -6267,14 +6267,7 @@ - rm -f conftest* - echo "$ac_t"""$result"" 1>&6 - if test "$result" = "yes"; then -- cat >> confdefs.pytmp <<\EOF -- (''' HAVE_ARM_SIMD ''', ' 1 ') --EOF --cat >> confdefs.h <<\EOF --#define HAVE_ARM_SIMD 1 --EOF -- -- HAVE_ARM_SIMD=1 -+ HAVE_ARM_SIMD= - fi - - echo $ac_n "checking ARM version support in compiler""... $ac_c" 1>&6 -@@ -6306,27 +6299,13 @@ - rm -f conftest* - echo "$ac_t"""$result"" 1>&6 - if test "$result" = "yes"; then -- cat >> confdefs.pytmp <<\EOF -- (''' HAVE_ARM_NEON ''', ' 1 ') --EOF --cat >> confdefs.h <<\EOF --#define HAVE_ARM_NEON 1 --EOF -- -- HAVE_ARM_NEON=1 -+ HAVE_ARM_NEON= - - if test -n "$ARM_ARCH"; then - if test "$ARM_ARCH" -lt 7; then - BUILD_ARM_NEON= - else -- cat >> confdefs.pytmp <<\EOF -- (''' BUILD_ARM_NEON ''', ' 1 ') --EOF --cat >> confdefs.h <<\EOF --#define BUILD_ARM_NEON 1 --EOF -- -- BUILD_ARM_NEON=1 -+ BUILD_ARM_NEON= - fi - fi - fi ---- mozglue/build/arm.h.orig 2015-08-08 18:21:03.686458059 -0600 -+++ mozglue/build/arm.h 2015-08-08 18:21:16.781459724 -0600 -@@ -69,12 +69,6 @@ - # endif - # endif - -- // When using -mfpu=neon, gcc generates neon instructions. -- --# if defined(__ARM_NEON__) --# define MOZILLA_PRESUME_NEON 1 --# endif -- - // Currently we only have CPU detection for Linux via /proc/cpuinfo - # if defined(__linux__) || defined(ANDROID) - # define MOZILLA_ARM_HAVE_CPUID_DETECTION 1 ---- build/gyp.mozbuild.orig 2015-08-08 20:00:38.026946903 -0600 -+++ build/gyp.mozbuild 2015-08-08 20:00:45.321915167 -0600 -@@ -40,7 +40,7 @@ - - # turn off mandatory use of NEON and instead use NEON detection - 'arm_neon': 0, -- 'arm_neon_optional': 1, -+ 'arm_neon_optional': 0, - - 'moz_widget_toolkit_gonk': 0, - 'moz_webrtc_omx': 0, diff --git a/libre/icecat/remove-google-play-services-support.patch b/libre/icecat/remove-google-play-services-support.patch deleted file mode 100644 index f184b15ad..000000000 --- a/libre/icecat/remove-google-play-services-support.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -Nur a/configure b/configure ---- a/configure 2015-08-23 17:05:16.000000000 -0300 -+++ b/configure 2015-08-25 17:13:48.155780403 -0300 -@@ -18883,46 +18883,6 @@ - - - --if test -n "$MOZ_NATIVE_DEVICES" ; then -- -- -- echo $ac_n "checking for google play services""... $ac_c" 1>&6 --echo "configure:18891: checking for google play services" >&5 -- GOOGLE_PLAY_SERVICES_LIB="${ANDROID_SDK_ROOT}/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar" -- GOOGLE_PLAY_SERVICES_RES="${ANDROID_SDK_ROOT}/extras/google/google_play_services/libproject/google-play-services_lib/res" -- -- -- if ! test -e $GOOGLE_PLAY_SERVICES_LIB ; then -- { echo "configure: error: You must download Google Play Services to build with native video casting support enabled. Run the Android SDK tool and install Google Play Services under Extras. See http://developer.android.com/google/play-services/setup.html for more info. (looked for $GOOGLE_PLAY_SERVICES_LIB) " 1>&2; echo "configure: error: You must download Google Play Services to build with native video casting support enabled. Run the Android SDK tool and install Google Play Services under Extras. See http://developer.android.com/google/play-services/setup.html for more info. (looked for $GOOGLE_PLAY_SERVICES_LIB) " 1>&5; exit 1; } -- fi -- echo "$ac_t""$GOOGLE_PLAY_SERVICES_LIB" 1>&6 -- -- ANDROID_APPCOMPAT_LIB="$ANDROID_COMPAT_DIR_BASE/v7/appcompat/libs/android-support-v7-appcompat.jar" -- ANDROID_APPCOMPAT_RES="$ANDROID_COMPAT_DIR_BASE/v7/appcompat/res" -- echo $ac_n "checking for v7 appcompat library""... $ac_c" 1>&6 --echo "configure:18904: checking for v7 appcompat library" >&5 -- if ! test -e $ANDROID_APPCOMPAT_LIB ; then -- { echo "configure: error: You must download the v7 app compat Android support library when targeting Android with native video casting support enabled. Run the Android SDK tool and install Android Support Library under Extras. See https://developer.android.com/tools/extras/support-library.html for more info. (looked for $ANDROID_APPCOMPAT_LIB)" 1>&2; echo "configure: error: You must download the v7 app compat Android support library when targeting Android with native video casting support enabled. Run the Android SDK tool and install Android Support Library under Extras. See https://developer.android.com/tools/extras/support-library.html for more info. (looked for $ANDROID_APPCOMPAT_LIB)" 1>&5; exit 1; } -- fi -- echo "$ac_t""$ANDROID_APPCOMPAT_LIB" 1>&6 -- -- -- -- ANDROID_MEDIAROUTER_LIB="$ANDROID_COMPAT_DIR_BASE/v7/mediarouter/libs/android-support-v7-mediarouter.jar" -- ANDROID_MEDIAROUTER_RES="$ANDROID_COMPAT_DIR_BASE/v7/mediarouter/res" -- echo $ac_n "checking for v7 mediarouter library""... $ac_c" 1>&6 --echo "configure:18915: checking for v7 mediarouter library" >&5 -- if ! test -e $ANDROID_MEDIAROUTER_LIB ; then -- { echo "configure: error: You must download the v7 media router Android support library when targeting Android with native video casting support enabled. Run the Android SDK tool and install Android Support Library under Extras. See https://developer.android.com/tools/extras/support-library.html for more info. (looked for $ANDROID_MEDIAROUTER_LIB)" 1>&2; echo "configure: error: You must download the v7 media router Android support library when targeting Android with native video casting support enabled. Run the Android SDK tool and install Android Support Library under Extras. See https://developer.android.com/tools/extras/support-library.html for more info. (looked for $ANDROID_MEDIAROUTER_LIB)" 1>&5; exit 1; } -- fi -- echo "$ac_t""$ANDROID_MEDIAROUTER_LIB" 1>&6 -- -- --fi -- -- -- -- - if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT" - then - succeeded=no -@@ -29180,13 +29140,6 @@ - (''' MOZ_OFFICIAL_BRANDING ''', r''' $MOZ_OFFICIAL_BRANDING ''') - (''' MOZ_BRANDING_DIRECTORY ''', r''' $MOZ_BRANDING_DIRECTORY ''') - (''' MOZ_DISTRIBUTION_ID ''', r''' $MOZ_DISTRIBUTION_ID ''') -- (''' MOZ_NATIVE_DEVICES ''', r''' $MOZ_NATIVE_DEVICES ''') -- (''' GOOGLE_PLAY_SERVICES_LIB ''', r''' $GOOGLE_PLAY_SERVICES_LIB ''') -- (''' GOOGLE_PLAY_SERVICES_RES ''', r''' $GOOGLE_PLAY_SERVICES_RES ''') -- (''' ANDROID_APPCOMPAT_LIB ''', r''' $ANDROID_APPCOMPAT_LIB ''') -- (''' ANDROID_APPCOMPAT_RES ''', r''' $ANDROID_APPCOMPAT_RES ''') -- (''' ANDROID_MEDIAROUTER_LIB ''', r''' $ANDROID_MEDIAROUTER_LIB ''') -- (''' ANDROID_MEDIAROUTER_RES ''', r''' $ANDROID_MEDIAROUTER_RES ''') - (''' _PANGOCHK_CFLAGS ''', list(r''' $_PANGOCHK_CFLAGS '''.split())) - (''' _PANGOCHK_LIBS ''', list(r''' $_PANGOCHK_LIBS '''.split())) - (''' MOZ_PANGO_CFLAGS ''', list(r''' $MOZ_PANGO_CFLAGS '''.split())) diff --git a/libre/icecat/vendor.js b/libre/icecat/vendor.js deleted file mode 100644 index 32fddb8db..000000000 --- a/libre/icecat/vendor.js +++ /dev/null @@ -1,28 +0,0 @@ -// Use LANG environment variable to choose locale -pref("intl.locale.matchOS", true); - -// Disable default browser checking. -pref("browser.shell.checkDefaultBrowser", false); - -// Don't disable our bundled extensions in the application directory -pref("extensions.autoDisableScopes", 11); -pref("extensions.shownSelectionUI", true); - -// Disable "alt" as a shortcut key to open full menu bar. Conflicts with "alt" as a modifier -pref("ui.key.menuAccessKeyFocuses", false); - -// Make sure that Firefox Social stuff are empty -pref("social.whitelist", ""); -pref("social.directories", ""); - -// Disable the GeoLocation API for content -pref("geo.enabled", false); - -// Make sure that the request URL of the GeoLocation backend is empty -pref("geo.wifi.uri", ""); - -// Disable the least secure encryption protocols -pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false); -pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false); -pref("security.ssl3.rsa_rc4_128_md5", false); -pref("security.ssl3.rsa_rc4_128_sha", false); -- cgit v1.2.3