From bbca5e0d2098b8e140c78a7a1774a48cabdc79bf Mon Sep 17 00:00:00 2001 From: "coadde [Márcio Alexandre Silva Delgado]" Date: Tue, 21 Oct 2014 18:44:23 -0200 Subject: update icecat to 31.1.1 --- libre/icecat/PKGBUILD | 231 +++--- libre/icecat/gcc47.patch | 75 -- libre/icecat/gnu_headshadow.png | Bin 0 -> 6785 bytes libre/icecat/icecat-20.0.1-fixed-loading-icon.png | Bin 12184 -> 0 bytes libre/icecat/icecat-fixed-loading-icon.png | Bin 0 -> 12184 bytes libre/icecat/icecat-install-dir.patch | 38 +- libre/icecat/icecat-safe.desktop | 78 -- libre/icecat/icecat.desktop | 111 ++- libre/icecat/icecat.install | 4 +- libre/icecat/libre.patch | 840 +++++++++++++++++++++- libre/icecat/mozconfig | 17 +- libre/icecat/rhbz-966424.patch | 14 + libre/icecat/vendor.js | 21 +- libre/icecat/xulrunner-copy-stub.patch | 11 - 14 files changed, 1072 insertions(+), 368 deletions(-) delete mode 100644 libre/icecat/gcc47.patch create mode 100644 libre/icecat/gnu_headshadow.png delete mode 100644 libre/icecat/icecat-20.0.1-fixed-loading-icon.png create mode 100644 libre/icecat/icecat-fixed-loading-icon.png delete mode 100644 libre/icecat/icecat-safe.desktop create mode 100644 libre/icecat/rhbz-966424.patch delete mode 100644 libre/icecat/xulrunner-copy-stub.patch (limited to 'libre') diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD index 5422c8a99..255cef95a 100644 --- a/libre/icecat/PKGBUILD +++ b/libre/icecat/PKGBUILD @@ -1,90 +1,119 @@ # Maintainer: André Silva -# Maintainer: Márcio Silva +# Contributor: Márcio Silva # Contributor (ConnochaetOS): Henry Jensen # Contributor: Luke Shumaker -# Contributor: Figue # 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 +_pgo=true pkgname=icecat -pkgver=24.0 -pkgrel=5 -pkgdesc='GNU IceCat, the standalone web browser based on Mozilla Firefox.' +pkgver=31.1.1 +pkgrel=1 + +pkgdesc="GNU IceCat, the standalone web browser based on Mozilla Firefox." arch=(i686 x86_64 mips64el) license=(MPL GPL LGPL) -depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification) -makedepends=(autoconf2.13 diffutils gstreamer0.10-base imagemagick imake inetutils libidl2 libpulse librsvg libxslt mesa pkg-config python2 unzip zip) -options=(!emptydirs !makeflags) +depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell icu libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification) +makedepends=(autoconf2.13 diffutils gst-plugins-base-libs imagemagick imake inetutils libidl2 libpulse librsvg libxslt mesa pkg-config python2 quilt unzip zip) +[ "$CARCH" != "mips64el" ] && makedepends+=('yasm') +options=(!emptydirs !makeflags debug) if $_pgo; then makedepends+=(xorg-server-xvfb) options+=(!ccache) fi optdepends=('networkmanager: Location detection via available WiFi networks' - 'gstreamer0.10-base-plugins: vorbis decoding, ogg demuxing' - 'gstreamer0.10-good-plugins: webm and mp4 demuxing' - 'gstreamer0.10-bad-plugins: aac, vp8 and opus decoding' - 'gstreamer0.10-ugly-plugins: h.264 and mp3 decoding' - 'gstreamer0.10-ffmpeg: more decoders' - 'libpulse: PulseAudio audio driver') -url=http://www.gnu.org/software/gnuzilla/ + 'gst-plugins-good: h.264 video' + 'gst-libav: h.264 video') +url="http://www.gnu.org/software/gnuzilla/" install=$pkgname.install -source=( - ftp://ftp.gnu.org/gnu/gnuzilla/${pkgver::2}/$pkgname-$pkgver.tar.gz - mozconfig - mozconfig.pgo - libre.patch - $pkgname.desktop - $pkgname-safe.desktop - $pkgname-install-dir.patch - vendor.js - icecat-20.0.1-fixed-loading-icon.png -) - -md5sums=( - 0d3fdcec3f5fde494dedb595387e8f21 - 71dce16848bc51503a154841ce99427b - df08eaa1ac3bc6c2356be4fbf8ec8932 - 21b5014c55aa97983f833886e047f55c - b41f82994fa056ffa5f8e6d99570e27a - b30ba2b5562558d510fdd09d626d0faa - 64826fcf48816b13090042eefddbaa58 - 1dfa11e781950a969205e83840e9741e - 6e335a517c68488941340ee1c23f97b0 -) +source=("http://gnuzilla.gnu.org/releases/$pkgver/$pkgname-$pkgver.tar.xz" + mozconfig + mozconfig.pgo + libre.patch + gnu_headshadow.png + $pkgname.desktop + $pkgname-install-dir.patch + vendor.js + rhbz-966424.patch + $pkgname-fixed-loading-icon.png) +md5sums=('1c7220cebc05910396ba2b09cfecd9ce' + '922d212e567e59a5894787b859f99ecc' + 'df08eaa1ac3bc6c2356be4fbf8ec8932' + '15e9b24deb5d09b359691658db7f3fd2' + 'b03a979a78484503ba8dddad4f2c96d1' + '936eeb4cadad656528c87b963a689583' + '7b2213f23f7dec017f67257b9fd2780f' + 'afafa89b727642c33ade82f2ffbe64a7' + '16a112aaeee34ff3cae1fc1a521448a0' + '6e335a517c68488941340ee1c23f97b0') prepare() { - mv $pkgname-$pkgver $srcdir/gnuzilla-build - cd $srcdir/gnuzilla-build + export GNU_BUILD="gnuzilla-release" - cp $srcdir/mozconfig .mozconfig # Load our build config, disable SafeSearch + mv $pkgname-$pkgver "$srcdir/$GNU_BUILD" + cd "$srcdir/$GNU_BUILD" - if $_pgo; then - cat $srcdir/mozconfig.pgo >> .mozconfig - fi - patch -Np1 -i $srcdir/$pkgname-install-dir.patch # install to /usr/lib/$pkgname + + # Put gnu_headshadow.png on 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" + + # https://bugs.archlinux.org/task/41689 + patch -Np1 -i "$srcdir/rhbz-966424.patch" # Patch and remove anything that's left - patch -Np1 -i $srcdir/libre.patch + patch -Np1 -i "$srcdir/libre.patch" sed -i 's|Adobe Flash|SWF Player|g; ' browser/base/content/pageinfo/permissions.js \ browser/base/content/browser-plugins.js - sed -i '\|URL of the GeoLocation backend|d; - \|geo[.]wifi[.]uri|d; + sed -i '\|["]displayName["][:] ["]Flash["]| s|Flash|SWF Player| + \|["]displayName["][:] ["]Shockwave["]| s|Shockwave|DCR Player| + \|["]displayName["][:] ["]QuickTime["]| s|QuickTime|MOV Player| + \|installLinux| s|true|false| + ' browser/base/content/browser-plugins.js + rm -v browser/base/content/abouthome/snippet*.png || true + sed -i '\|abouthome/snippet|d + ' browser/base/jar.mn + + # Replace common URLs + sed -i '\|extensions[.]getAddons[.]get[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g; + \|extensions[.]getAddons[.]search[.]browseURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g; + \|extensions[.]getAddons[.]search[.]url| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g; + \|extensions[.]webservice[.]discoverURL| s|https://services[.]addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g; + \|browser[.]search[.]searchEnginesURL| s|https://addons[.]mozilla[.]org.\+["][)][;]|https://trisquel.info/en/browser");|g; + \|plugins[.]update[.]url| s|https://www[.]mozilla[.]org/[%]LOCALE[%]/plugincheck/["][)][;]|https://trisquel.info/en/browser");|g; ' browser/app/profile/firefox.js - # Fix for use nspr, sqlite and nss external - sed -i 's/\(MOZ_PKG_FATAL_WARNINGS =\).*/\1 0/' \ - browser/installer/Makefile.in + # Load our build config, disable SafeSearch + cp "$srcdir/mozconfig" .mozconfig + + if $_pgo; then + cat "$srcdir/mozconfig.pgo" >> .mozconfig + fi + + # From js on abslibre-mips64el.git + if [ "$CARCH" = "mips64el" ]; then + msg "Force disabling JIT." + sed -ri 's/#define ENABLE_(JIT|ASSEMBLER) 1/#define ENABLE_\1 0/' \ + js/src/assembler/wtf/Platform.h + sed -ri 's/ENABLE_(JIT|ASSEMBLER)=1/ENABLE_\1=0/' js/src/Makefile.{in,ref} + + echo "ac_add_options --disable-methodjit" >> .mozconfig + echo "ac_add_options --disable-tracejit" >> .mozconfig + fi # This is a bug, we should fix it - if [ $CARCH = mips64el ]; then + if [ "$CARCH" = "mips64el" ]; then # Fix MIPS N32 support. sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \ js/src/assembler/wtf/Platform.h @@ -97,15 +126,6 @@ prepare() { echo 'ac_add_options --disable-jemalloc' >> .mozconfig fi - # disable necko-wifi and wireless_tools in IceCat - #echo 'ac_add_options --disable-necko-wifi' >> .mozconfig - - chmod +x build/unix/run-icecat.sh # fix bug for bad file permition - - # Fix PRE_RELEASE_SUFFIX - sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \ - browser/base/Makefile.in - mkdir "$srcdir/path" # WebRTC build tries to execute "python" and expects Python 2 @@ -120,69 +140,70 @@ prepare() { # Fix tab loading icon (flickers with libpng 1.6) # https://bugzilla.mozilla.org/show_bug.cgi?id=841734 - cp "$srcdir/icecat-20.0.1-fixed-loading-icon.png" \ + # TODO: Remove this; IceCat 36 might use CSS animations for the loading icon + # https://bugzilla.mozilla.org/show_bug.cgi?id=759252 + cp "$srcdir/$pkgname-fixed-loading-icon.png" \ browser/themes/linux/tabbrowser/loading.png + + # Remove non-existent file on Makefile.in + sed -i '\|build/pgo/blueprint/valid.png|d' build/Makefile.in } build() { - cd $srcdir/gnuzilla-build + export GNU_BUILD="gnuzilla-release" + + cd "$srcdir/$GNU_BUILD" export PATH="$srcdir/path:$PATH" export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$pkgname" export PYTHON="/usr/bin/python2" - if [[ $CARCH == i686 ]]; then - # Work around memory address space exhaustion during linking on i686 - LDFLAGS+=' -Wl,--no-keep-memory' - fi - if $_pgo; then - if [[ $CARCH != i686 ]]; then - # Set up PGO - export DISPLAY=:99 - Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY & - - if ! make -f client.mk build MOZ_PGO=1; then - kill $! - return 1 - fi - - kill $! || true - else - make -f client.mk build - fi + # 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 } package() { - cd $srcdir/gnuzilla-build - make -j1 -f client.mk DESTDIR=$pkgdir install + export GNU_BUILD="gnuzilla-release" + + cd "$srcdir/$GNU_BUILD" + make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install install -Dm644 ../vendor.js "$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" + brandingdir=browser/branding/unofficial - icondir=$pkgdir/usr/share/icons/hicolor + icondir="$pkgdir/usr/share/icons/hicolor" for i in 16x16 32x32 48x48; do - install -Dm644 $brandingdir/default${i/x*/}.png $icondir/$i/apps/$pkgname.png - done - - for d in $pkgname $pkgname-safe; do - install -Dm644 $srcdir/$d.desktop $pkgdir/usr/share/applications/$d.desktop + install -Dm644 "$brandingdir/default${i/x*/}.png" "$icondir/$i/apps/$pkgname.png" done - - rm -rf $pkgdir/usr/lib/$pkgname/{dictionaries,hyphenation} - ln -sf /usr/share/hunspell $pkgdir/usr/lib/$pkgname/dictionaries - ln -sf /usr/share/hyphen $pkgdir/usr/lib/$pkgname/hyphenation - - rm -rf $pkgdir/usr/lib/$pkgname/browser/{searchplugins,plugins} - ln -sf /usr/lib/mozilla/plugins $pkgdir/usr/lib/$pkgname/browser/plugins - ln -sf /usr/lib/mozilla/searchplugins $pkgdir/usr/lib/$pkgname/browser/searchplugins - - # We don't want the development stuff - rm -rf $pkgdir/usr/{include,lib/$pkgname-devel,share/idl} - - # Workaround for now: https://bugzilla.mozilla.org/show_bug.cgi?id=658850 - ln -sf $pkgname $pkgdir/usr/lib/$pkgname/$pkgname-bin + install -Dm644 "$brandingdir/content/icon64.png" \ + "$icondir/64x64/apps/$pkgname.png" + install -Dm644 "$brandingdir/mozicon128.png" \ + "$icondir/128x128/apps/$pkgname.png" + install -Dm644 "$brandingdir/content/about-logo.png" \ + "$icondir/192x192/apps/$pkgname.png" + install -Dm644 "$brandingdir/content/about-logo@2x.png" \ + "$icondir/384x384/apps/$pkgname.png" + + install -d "$pkgdir/usr/share/applications" + install -m644 "$srcdir/$pgname.desktop" \ + "$pkgdir/usr/share/applications" + + # Use system-provided dictionaries + rm -rf "$pkgdir/usr/lib/$pkgname/"{dictionaries,hyphenation} + ln -s /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries" + ln -s /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation" + + rm -rf "$pkgdir/usr/lib/$pkgname/browser/"{searchplugins,plugins} + ln -sf /usr/lib/mozilla/plugins "$pkgdir/usr/lib/$pkgname/browser/plugins" + ln -sf /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$pkgname/browser/searchplugins" + + # Workaround for now: + #https://bugzilla.mozilla.org/show_bug.cgi?id=658850 + ln -sf $pkgname "$pkgdir/usr/lib/$pkgname/$pkgname-bin" } diff --git a/libre/icecat/gcc47.patch b/libre/icecat/gcc47.patch deleted file mode 100644 index 829d59510..000000000 --- a/libre/icecat/gcc47.patch +++ /dev/null @@ -1,75 +0,0 @@ - -# HG changeset patch -# User Martin Stránský -# Date 1328886461 -3600 -# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349 -# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049 -Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin - -diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc ---- a/ipc/chromium/src/base/file_util_linux.cc -+++ b/ipc/chromium/src/base/file_util_linux.cc -@@ -1,15 +1,18 @@ - // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - - #include "base/file_util.h" - - #include -+#if defined(ANDROID) || defined(OS_POSIX) -+#include -+#endif - - #include - #include - - #include "base/eintr_wrapper.h" - #include "base/file_path.h" - #include "base/string_util.h" - -diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc ---- a/ipc/chromium/src/base/message_pump_libevent.cc -+++ b/ipc/chromium/src/base/message_pump_libevent.cc -@@ -1,16 +1,19 @@ - // Copyright (c) 2008 The Chromium Authors. All rights reserved. - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - - #include "base/message_pump_libevent.h" - - #include - #include -+#if defined(ANDROID) || defined(OS_POSIX) -+#include -+#endif - - #include "eintr_wrapper.h" - #include "base/logging.h" - #include "base/scoped_nsautorelease_pool.h" - #include "base/scoped_ptr.h" - #include "base/time.h" - #include "third_party/libevent/event.h" - -diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc ---- a/ipc/chromium/src/base/time_posix.cc -+++ b/ipc/chromium/src/base/time_posix.cc -@@ -8,16 +8,19 @@ - #include - #endif - #include - #ifdef ANDROID - #include - #else - #include - #endif -+#if defined(ANDROID) || defined(OS_POSIX) -+#include -+#endif - - #include - - #include "base/basictypes.h" - #include "base/logging.h" - - namespace base { diff --git a/libre/icecat/gnu_headshadow.png b/libre/icecat/gnu_headshadow.png new file mode 100644 index 000000000..e0f73a3bf Binary files /dev/null and b/libre/icecat/gnu_headshadow.png differ diff --git a/libre/icecat/icecat-20.0.1-fixed-loading-icon.png b/libre/icecat/icecat-20.0.1-fixed-loading-icon.png deleted file mode 100644 index 55f25e591..000000000 Binary files a/libre/icecat/icecat-20.0.1-fixed-loading-icon.png and /dev/null differ diff --git a/libre/icecat/icecat-fixed-loading-icon.png b/libre/icecat/icecat-fixed-loading-icon.png new file mode 100644 index 000000000..55f25e591 Binary files /dev/null and b/libre/icecat/icecat-fixed-loading-icon.png differ diff --git a/libre/icecat/icecat-install-dir.patch b/libre/icecat/icecat-install-dir.patch index 7a72b9c9d..e15bf0b68 100644 --- a/libre/icecat/icecat-install-dir.patch +++ b/libre/icecat/icecat-install-dir.patch @@ -1,30 +1,12 @@ -diff -Nur a/config/baseconfig.mk b/config/baseconfig.mk ---- a/config/baseconfig.mk -+++ b/config/baseconfig.mk -@@ -1,9 +1,9 @@ - INCLUDED_AUTOCONF_MK = 1 - --includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) --idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +diff -Nur a/config/baseconfig.mk c/config/baseconfig.mk +--- a/config/baseconfig.mk 2014-10-09 12:52:39.000000000 -0200 ++++ b/config/baseconfig.mk 2014-10-21 18:34:35.803894661 -0200 +@@ -4,7 +4,7 @@ + # whether a normal build is happening or whether the check is running. + includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) + idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) -installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) --sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) -+includedir := $(includedir)/$(MOZ_APP_NAME) -+idldir = $(datadir)/idl/$(MOZ_APP_NAME) +installdir = $(libdir)/$(MOZ_APP_NAME) -+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel - DIST = $(DEPTH)/dist - - # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't -diff -Nur a/js/src/config/baseconfig.mk b/js/src/config/baseconfig.mk ---- a/js/src/config/baseconfig.mk -+++ b/js/src/config/baseconfig.mk -@@ -1,7 +1,7 @@ - INCLUDED_AUTOCONF_MK = 1 - --installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) --sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) -+installdir = $(libdir)/$(MOZ_APP_NAME) -+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel - - ifneq (,$(filter /%,$(TOP_DIST))) - DIST = $(TOP_DIST) + sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) + ifndef TOP_DIST + TOP_DIST = dist diff --git a/libre/icecat/icecat-safe.desktop b/libre/icecat/icecat-safe.desktop deleted file mode 100644 index e33d75469..000000000 --- a/libre/icecat/icecat-safe.desktop +++ /dev/null @@ -1,78 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Exec=/usr/lib/icecat/icecat -safe-mode %u -Icon=icecat -Type=Application -Terminal=false -MultipleArgs=false -Name=GNU IceCat - Safe Mode -GenericName=Web Browser -GenericName[af]=Web Blaaier -GenericName[ar]=متصفح ويب -GenericName[az]=Veb Səyyahı -GenericName[bg]=Браузър -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[br]=Furcher ar Gwiad -GenericName[bs]=WWW Preglednik -GenericName[ca]=Fullejador web -GenericName[cs]=WWW prohlížeč -GenericName[cy]=Porydd Gwe -GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής Ιστού -GenericName[eo]=TTT-legilo -GenericName[es]=Navegador web -GenericName[et]=Veebilehitseja -GenericName[eu]=Web arakatzailea -GenericName[fa]=مرورگر وب -GenericName[fi]=WWW-selain -GenericName[fo]=Alnótsfar -GenericName[fr]=Navigateur web -GenericName[gl]=Navegador Web -GenericName[he]=דפדפן אינטרנט -GenericName[hi]=वेब ब्राउज़र -GenericName[hr]=Web preglednik -GenericName[hu]=Webböngésző -GenericName[is]=Vafri -GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ -GenericName[ko]=웹 브라우저 -GenericName[lo]=ເວັບບຣາວເຊີ -GenericName[lt]=Žiniatinklio naršyklė -GenericName[lv]=Web Pārlūks -GenericName[mk]=Прелистувач на Интернет -GenericName[mn]=Веб-Хөтөч -GenericName[nb]=Nettleser -GenericName[nds]=Nettkieker -GenericName[nl]=Webbrowser -GenericName[nn]=Nettlesar -GenericName[nso]=Seinyakisi sa Web -GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador Web -GenericName[ro]=Navigator de web -GenericName[ru]=Веб-браузер -GenericName[se]=Fierpmádatlogan -GenericName[sk]=Webový prehliadač -GenericName[sl]=Spletni brskalnik -GenericName[sr]=Веб претраживач -GenericName[sr@Latn]=Veb pretraživač -GenericName[ss]=Ibrawuza yeWeb -GenericName[sv]=Webbläsare -GenericName[ta]=வலை உலாவி -GenericName[tg]=Тафсиргари вэб -GenericName[th]=เว็บบราวเซอร์ -GenericName[tr]=Web Tarayıcı -GenericName[uk]=Навігатор Тенет -GenericName[uz]=Веб-браузер -GenericName[ven]=Buronza ya Webu -GenericName[vi]=Trình duyệt Web -GenericName[wa]=Betchteu waibe -GenericName[xh]=Umkhangeli zincwadi we Web -GenericName[zh_CN]=网页浏览器 -GenericName[zh_TW]=網頁瀏覽器 -GenericName[zu]=Umcingi we-Web -MimeType=text/html -StartupNotify=false -Categories=Application;Network; diff --git a/libre/icecat/icecat.desktop b/libre/icecat/icecat.desktop index 72666a5b8..48a4ffe7a 100644 --- a/libre/icecat/icecat.desktop +++ b/libre/icecat/icecat.desktop @@ -1,33 +1,74 @@ [Desktop Entry] Encoding=UTF-8 -Exec=/usr/lib/icecat/icecat %u -Icon=icecat -Type=Application -Terminal=false -MultipleArgs=false Name=GNU IceCat +Name[bg]=GNU IceCat +Name[ca]=GNU IceCat +Name[cs]=GNU IceCat +Name[el]=GNU IceCat +Name[es]=GNU IceCat +Name[fa]=GNU IceCat +Name[fi]=GNU IceCat +Name[fr]=GNU IceCat +Name[hu]=GNU IceCat +Name[it]=GNU IceCat +Name[ja]=GNU IceCat +Name[ko]=GNU IceCat +Name[nb]=GNU IceCat +Name[nl]=GNU IceCat +Name[nn]=GNU IceCat +Name[no]=GNU IceCat +Name[pl]=GNU IceCat +Name[pt]=GNU IceCat +Name[pt_BR]=GNU IceCat +Name[ru]=GNU IceCat +Name[sk]=GNU IceCat +Name[sv]=GNU IceCat +Comment=Browse the World Wide Web +Comment[bg]=Сърфиране в Мрежата +Comment[ca]=Navegueu per el web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[de]=Im Internet surfen +Comment[el]=Περιηγηθείτε στον παγκόσμιο ιστό +Comment[es]=Navegue por la web +Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید +Comment[fi]=Selaa Internetin WWW-sivuja +Comment[fr]=Navigue sur Internet +Comment[hu]=A világháló böngészése +Comment[it]=Esplora il web +Comment[ja]=ウェブを閲覧します +Comment[ko]=웹을 돌아 다닙니다 +Comment[nb]=Surf på nettet +Comment[nl]=Verken het internet +Comment[nn]=Surf på nettet +Comment[no]=Surf på nettet +Comment[pl]=Przeglądanie stron WWW +Comment[pt]=Navegue na Internet +Comment[pt_BR]=Navegue na Internet +Comment[ru]=Обозреватель Всемирной Паутины +Comment[sk]=Prehliadanie internetu +Comment[sv]=Surfa på webben GenericName=Web Browser GenericName[af]=Web Blaaier GenericName[ar]=متصفح ويب GenericName[az]=Veb Səyyahı -GenericName[bg]=Браузър +GenericName[bg]=Интернет браузър GenericName[bn]=ওয়েব ব্রাউজার GenericName[br]=Furcher ar Gwiad GenericName[bs]=WWW Preglednik -GenericName[ca]=Fullejador web -GenericName[cs]=WWW prohlížeč +GenericName[ca]=Navegador web +GenericName[cs]=Webový prohlížeč GenericName[cy]=Porydd Gwe GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής Ιστού +GenericName[de]=Webbrowser +GenericName[el]=Περιηγητής ιστού GenericName[eo]=TTT-legilo GenericName[es]=Navegador web GenericName[et]=Veebilehitseja GenericName[eu]=Web arakatzailea -GenericName[fa]=مرورگر وب +GenericName[fa]=مرورگر اینترنتی GenericName[fi]=WWW-selain GenericName[fo]=Alnótsfar -GenericName[fr]=Navigateur web +GenericName[fr]=Navigateur Web GenericName[gl]=Navegador Web GenericName[he]=דפדפן אינטרנט GenericName[hi]=वेब ब्राउज़र @@ -35,30 +76,31 @@ GenericName[hr]=Web preglednik GenericName[hu]=Webböngésző GenericName[is]=Vafri GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ +GenericName[ja]=ウェブ・ブラウザ GenericName[ko]=웹 브라우저 GenericName[lo]=ເວັບບຣາວເຊີ GenericName[lt]=Žiniatinklio naršyklė GenericName[lv]=Web Pārlūks -GenericName[mk]=Прелистувач на Интернет +GenericName[mk]=Прелистувач на Интернет GenericName[mn]=Веб-Хөтөч GenericName[nb]=Nettleser GenericName[nds]=Nettkieker GenericName[nl]=Webbrowser GenericName[nn]=Nettlesar +GenericName[no]=Nettleser GenericName[nso]=Seinyakisi sa Web GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ GenericName[pl]=Przeglądarka WWW GenericName[pt]=Navegador Web GenericName[pt_BR]=Navegador Web GenericName[ro]=Navigator de web -GenericName[ru]=Веб-браузер +GenericName[ru]=Интернет-браузер GenericName[se]=Fierpmádatlogan -GenericName[sk]=Webový prehliadač +GenericName[sk]=Internetový prehliadač GenericName[sl]=Spletni brskalnik GenericName[sr]=Веб претраживач GenericName[sr@Latn]=Veb pretraživač -GenericName[ss]=Ibrawuza yeWeb +GenericName[ss]=Ibrawuza yeWeb GenericName[sv]=Webbläsare GenericName[ta]=வலை உலாவி GenericName[tg]=Тафсиргари вэб @@ -73,6 +115,35 @@ GenericName[xh]=Umkhangeli zincwadi we Web GenericName[zh_CN]=网页浏览器 GenericName[zh_TW]=網頁瀏覽器 GenericName[zu]=Umcingi we-Web -MimeType=text/html -StartupNotify=false -Categories=Application;Network; +X-GNOME-FullName=IceCat Web Browser +X-GNOME-FullName[bg]=Интернет браузър (IceCat) +X-GNOME-FullName[ca]=Navegador web IceCat +X-GNOME-FullName[cs]=IceCat Webový prohlížeč +X-GNOME-FullName[el]=Περιηγήτης Ιστού IceCat +X-GNOME-FullName[es]=Navegador web IceCat +X-GNOME-FullName[fa]=مرورگر اینترنتی IceCat +X-GNOME-FullName[fi]=IceCat-selain +X-GNOME-FullName[fr]=Navigateur Web IceCat +X-GNOME-FullName[hu]=IceCat webböngésző +X-GNOME-FullName[it]=IceCat Browser Web +X-GNOME-FullName[ja]=IceCat ウェブ・ブラウザ +X-GNOME-FullName[ko]=IceCat 웹 브라우저 +X-GNOME-FullName[nb]=IceCat Nettleser +X-GNOME-FullName[nl]=IceCat webbrowser +X-GNOME-FullName[nn]=IceCat Nettlesar +X-GNOME-FullName[no]=IceCat Nettleser +X-GNOME-FullName[pl]=Przeglądarka WWW IceCat +X-GNOME-FullName[pt]=IceCat Navegador Web +X-GNOME-FullName[pt_BR]=Navegador Web IceCat +X-GNOME-FullName[ru]=Интернет-браузер IceCat +X-GNOME-FullName[sk]=Internetový prehliadač IceCat +X-GNOME-FullName[sv]=Webbläsaren IceCat +Exec=/usr/lib/icecat/icecat %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=icecat +Categories=Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https; +StartupWMClass=IceCat +StartupNotify=true diff --git a/libre/icecat/icecat.install b/libre/icecat/icecat.install index c1fe8284a..1a1f4b16b 100644 --- a/libre/icecat/icecat.install +++ b/libre/icecat/icecat.install @@ -4,10 +4,10 @@ post_install() { } post_upgrade() { - post_install $1 + post_install } post_remove() { - post_install $1 + post_install } diff --git a/libre/icecat/libre.patch b/libre/icecat/libre.patch index c8a0a5f0d..f69c535b9 100644 --- a/libre/icecat/libre.patch +++ b/libre/icecat/libre.patch @@ -1,36 +1,712 @@ -diff --git a/browser/locales/en-US/chrome/browser-region/region.properties b/browser/locales/en-US/chrome/browser-region/region.properties -index f4adbdc..fe7f265 100644 ---- a/browser/locales/en-US/chrome/browser-region/region.properties -+++ b/browser/locales/en-US/chrome/browser-region/region.properties +diff -Nur a/browser/app/profile/icecat.js b/browser/app/profile/icecat.js +--- a/browser/app/profile/icecat.js 2014-10-09 12:56:31.000000000 -0200 ++++ b/browser/app/profile/icecat.js 2014-10-21 14:05:40.131766712 -0200 +@@ -281,11 +281,6 @@ + pref("browser.slowStartup.timeThreshold", 50000); + pref("browser.slowStartup.maxSamples", 5); + +-// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into +-// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream +-// repackager of this code using an alternate snippet url, please keep your users safe +-pref("browser.aboutHomeSnippets.updateUrl", "https://snippets.mozilla.com/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/"); +- + pref("browser.enable_automatic_image_resizing", true); + pref("browser.chrome.site_icons", true); + pref("browser.chrome.favicons", true); +diff -Nur a/browser/base/content/abouthome/aboutHome.css b/browser/base/content/abouthome/aboutHome.css +--- a/browser/base/content/abouthome/aboutHome.css 2014-10-09 12:53:31.000000000 -0200 ++++ b/browser/base/content/abouthome/aboutHome.css 2014-10-21 14:11:09.936570764 -0200 +@@ -49,11 +49,6 @@ + background-repeat: no-repeat; + } + +-#searchForm, +-#snippets { +- width: 470px; +-} +- + #searchForm { + display: -moz-box; + } +@@ -72,8 +67,7 @@ + #searchEngineLogo { + display: inline-block; + height: 28px; +- width: 70px; +- min-width: 70px; ++ width: 47px; + } + + #searchText { +@@ -145,48 +139,6 @@ + transition-duration: 0ms; + } + +-#defaultSnippet1, +-#defaultSnippet2, +-#rightsSnippet { +- display: block; +- min-height: 38px; +- background: 30px center no-repeat; +- padding: 6px 0; +- -moz-padding-start: 79px; +-} +- +-#rightsSnippet[hidden] { +- display: none; +-} +- +-#defaultSnippet1:-moz-dir(rtl), +-#defaultSnippet2:-moz-dir(rtl), +-#rightsSnippet:-moz-dir(rtl) { +- background-position: right 30px center; +-} +- +-#defaultSnippet1 { +- background-image: url("chrome://browser/content/abouthome/snippet1.png"); +-} +- +-#defaultSnippet2 { +- background-image: url("chrome://browser/content/abouthome/snippet2.png"); +-} +- +-#snippets { +- display: inline-block; +- text-align: start; +- margin: 12px 0; +- color: #3c3c3c; +- font-size: 75%; +- /* 12px is the computed font size, 15px the computed line height of the snippets +- with Segoe UI on a default Windows 7 setup. The 15/12 multiplier approximately +- converts em from units of font-size to units of line-height. The goal is to +- preset the height of a three-line snippet to avoid visual moving/flickering as +- the snippets load. */ +- min-height: calc(15/12 * 3em); +-} +- + #launcher { + display: -moz-box; + -moz-box-align: center; +@@ -335,26 +287,25 @@ + width: 32px; + } + +-#aboutMozilla { ++#aboutGNU { + display: block; +- position: relative; /* pin wordmark to edge of document, not of viewport */ + -moz-box-ordinal-group: 0; + opacity: .5; + transition: opacity 150ms; + } + +-#aboutMozilla:hover { ++#aboutGNU:hover { + opacity: 1; + } + +-#aboutMozilla::before { +- content: url("chrome://browser/content/abouthome/mozilla.png"); ++#aboutGNU::before { ++ content: url("chrome://browser/content/abouthome/gnu_headshadow.png"); + display: block; + position: absolute; + top: 12px; + right: 12px; +- width: 69px; +- height: 19px; ++ width: 200px; ++ height: 110px; + } + + /* [HiDPI] +@@ -366,26 +317,6 @@ + background-image: url("chrome://branding/content/about-logo@2x.png"); + } + +- #defaultSnippet1, +- #defaultSnippet2, +- #rightsSnippet { +- background-size: 40px; +- } +- +- #defaultSnippet1 { +- background-image: url("chrome://browser/content/abouthome/snippet1@2x.png"); +- } +- +- #defaultSnippet2 { +- background-image: url("chrome://browser/content/abouthome/snippet2@2x.png"); +- } +- +- .launchButton::before, +- #aboutMozilla::before { +- transform: scale(.5); +- transform-origin: 0 0; +- } +- + #downloads::before { + content: url("chrome://browser/content/abouthome/downloads@2x.png"); + } +@@ -421,9 +352,5 @@ + body[narrow] #restorePreviousSession::before { + content: url("chrome://browser/content/abouthome/restore@2x.png"); + } +- +- #aboutMozilla::before { +- content: url("chrome://browser/content/abouthome/mozilla@2x.png"); +- } + } + +diff -Nur a/browser/base/content/abouthome/aboutHome.js b/browser/base/content/abouthome/aboutHome.js +--- a/browser/base/content/abouthome/aboutHome.js 2014-10-09 12:53:31.000000000 -0200 ++++ b/browser/base/content/abouthome/aboutHome.js 2014-10-21 14:21:10.012011384 -0200 +@@ -3,149 +3,44 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + const SEARCH_ENGINES = { +- "Google": { +- // This is the "2x" image designed for OS X retina resolution, Windows at 192dpi, etc.; +- // it will be scaled down as necessary on lower-dpi displays. +- image: "data:image/png;base64," + +- "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" ++ "DuckDuckGo HTML": { ++ image: "data:image/png;base64," + ++ "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" + } + }; + +-// The process of adding a new default snippet involves: +-// * add a new entity to aboutHome.dtd +-// * add a for it in aboutHome.xhtml +-// * add an entry here in the proper ordering (based on spans) +-// The part of the snippet will be linked to the corresponding url. +-const DEFAULT_SNIPPETS_URLS = [ "" ]; +- +-const SNIPPETS_UPDATE_INTERVAL_MS = 86400000; // 1 Day. +- +-// IndexedDB storage constants. +-const DATABASE_NAME = "abouthome"; +-const DATABASE_VERSION = 1; +-const SNIPPETS_OBJECTSTORE_NAME = "snippets"; +- + // This global tracks if the page has been set up before, to prevent double inits + let gInitialized = false; + let gObserver = new MutationObserver(function (mutations) { +@@ -153,7 +48,6 @@ + if (mutation.attributeName == "searchEngineName") { + setupSearchEngine(); + if (!gInitialized) { +-// ensureSnippetsMapThen(loadSnippets); + gInitialized = true; + } + return; +@@ -178,118 +72,6 @@ + window.removeEventListener("resize", fitToWidth); + }); + +-// This object has the same interface as Map and is used to store and retrieve +-// the snippets data. It is lazily initialized by ensureSnippetsMapThen(), so +-// be sure its callback returned before trying to use it. +-let gSnippetsMap; +-let gSnippetsMapCallbacks = []; +- +-/** +- * Ensure the snippets map is properly initialized. +- * +- * @param aCallback +- * Invoked once the map has been initialized, gets the map as argument. +- * @note Snippets should never directly manage the underlying storage, since +- * it may change inadvertently. +- */ +-function ensureSnippetsMapThen(aCallback) +-{ +-return; +- if (gSnippetsMap) { +- aCallback(gSnippetsMap); +- return; +- } +- +- // Handle multiple requests during the async initialization. +- gSnippetsMapCallbacks.push(aCallback); +- if (gSnippetsMapCallbacks.length > 1) { +- // We are already updating, the callbacks will be invoked when done. +- return; +- } +- +- let invokeCallbacks = function () { +- if (!gSnippetsMap) { +- gSnippetsMap = Object.freeze(new Map()); +- } +- +- for (let callback of gSnippetsMapCallbacks) { +- callback(gSnippetsMap); +- } +- gSnippetsMapCallbacks.length = 0; +- } +- +- let openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION); +- +- openRequest.onerror = function (event) { +- // Try to delete the old database so that we can start this process over +- // next time. +- indexedDB.deleteDatabase(DATABASE_NAME); +- invokeCallbacks(); +- }; +- +- openRequest.onupgradeneeded = function (event) { +- let db = event.target.result; +- if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) { +- db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME); +- } +- } +- +- openRequest.onsuccess = function (event) { +- let db = event.target.result; +- +- db.onerror = function (event) { +- invokeCallbacks(); +- } +- +- db.onversionchange = function (event) { +- event.target.close(); +- invokeCallbacks(); +- } +- +- let cache = new Map(); +- let cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME) +- .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor(); +- cursorRequest.onerror = function (event) { +- invokeCallbacks(); +- } +- +- cursorRequest.onsuccess = function(event) { +- let cursor = event.target.result; +- +- // Populate the cache from the persistent storage. +- if (cursor) { +- cache.set(cursor.key, cursor.value); +- cursor.continue(); +- return; +- } +- +- // The cache has been filled up, create the snippets map. +- gSnippetsMap = Object.freeze({ +- get: function (aKey) cache.get(aKey), +- set: function (aKey, aValue) { +- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") +- .objectStore(SNIPPETS_OBJECTSTORE_NAME).put(aValue, aKey); +- return cache.set(aKey, aValue); +- }, +- has: function (aKey) cache.has(aKey), +- delete: function (aKey) { +- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") +- .objectStore(SNIPPETS_OBJECTSTORE_NAME).delete(aKey); +- return cache.delete(aKey); +- }, +- clear: function () { +- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") +- .objectStore(SNIPPETS_OBJECTSTORE_NAME).clear(); +- return cache.clear(); +- }, +- get size() cache.size +- }); +- +- setTimeout(invokeCallbacks, 0); +- } +- } +-} +- + function onSearchSubmit(aEvent) + { + let searchTerms = document.getElementById("searchText").value; +@@ -339,159 +121,6 @@ + + } + +-/** +- * Inform the test harness that we're done loading the page. +- */ +-function loadSucceeded() +-{ +- var event = new CustomEvent("AboutHomeLoadSnippetsSucceeded", {bubbles:true}); +- document.dispatchEvent(event); +-} +- +-/** +- * Update the local snippets from the remote storage, then show them through +- * showSnippets. +- */ +-function loadSnippets() +-{ +-return; +- if (!gSnippetsMap) +- throw new Error("Snippets map has not properly been initialized"); +- +- // Allow tests to modify the snippets map before using it. +- var event = new CustomEvent("AboutHomeLoadSnippets", {bubbles:true}); +- document.dispatchEvent(event); +- +- // Check cached snippets version. +- let cachedVersion = gSnippetsMap.get("snippets-cached-version") || 0; +- let currentVersion = document.documentElement.getAttribute("snippetsVersion"); +- if (cachedVersion < currentVersion) { +- // The cached snippets are old and unsupported, restart from scratch. +- gSnippetsMap.clear(); +- } +- +- // Check last snippets update. +- let lastUpdate = gSnippetsMap.get("snippets-last-update"); +- let updateURL = document.documentElement.getAttribute("snippetsURL"); +- let shouldUpdate = !lastUpdate || +- Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS; +- if (updateURL && shouldUpdate) { +- // Try to update from network. +- let xhr = new XMLHttpRequest(); +- try { +- xhr.open("GET", updateURL, true); +- } catch (ex) { +- showSnippets(); +- loadSucceeded(); +- return; +- } +- // Even if fetching should fail we don't want to spam the server, thus +- // set the last update time regardless its results. Will retry tomorrow. +- gSnippetsMap.set("snippets-last-update", Date.now()); +- xhr.onerror = function (event) { +- showSnippets(); +- }; +- xhr.onload = function (event) +- { +- if (xhr.status == 200) { +- gSnippetsMap.set("snippets", xhr.responseText); +- gSnippetsMap.set("snippets-cached-version", currentVersion); +- } +- showSnippets(); +- loadSucceeded(); +- }; +- xhr.send(null); +- } else { +- showSnippets(); +- loadSucceeded(); +- } +-} +- +-/** +- * Shows locally cached remote snippets, or default ones when not available. +- * +- * @note: snippets should never invoke showSnippets(), or they may cause +- * a "too much recursion" exception. +- */ +-let _snippetsShown = false; +-function showSnippets() +-{ +-return; +- let snippetsElt = document.getElementById("snippets"); +- +- // Show about:rights notification, if needed. +- let showRights = document.documentElement.getAttribute("showKnowYourRights"); +- if (showRights) { +- let rightsElt = document.getElementById("rightsSnippet"); +- let anchor = rightsElt.getElementsByTagName("a")[0]; +- anchor.href = "about:rights"; +- snippetsElt.appendChild(rightsElt); +- rightsElt.removeAttribute("hidden"); +- return; +- } +- +- if (!gSnippetsMap) +- throw new Error("Snippets map has not properly been initialized"); +- if (_snippetsShown) { +- // There's something wrong with the remote snippets, just in case fall back +- // to the default snippets. +- showDefaultSnippets(); +- throw new Error("showSnippets should never be invoked multiple times"); +- } +- _snippetsShown = true; +- +- let snippets = gSnippetsMap.get("snippets"); +- // If there are remotely fetched snippets, try to to show them. +- if (snippets) { +- // Injecting snippets can throw if they're invalid XML. +- try { +- snippetsElt.innerHTML = snippets; +- // Scripts injected by innerHTML are inactive, so we have to relocate them +- // through DOM manipulation to activate their contents. +- Array.forEach(snippetsElt.getElementsByTagName("script"), function(elt) { +- let relocatedScript = document.createElement("script"); +- relocatedScript.type = "text/javascript;version=1.8"; +- relocatedScript.text = elt.text; +- elt.parentNode.replaceChild(relocatedScript, elt); +- }); +- return; +- } catch (ex) { +- // Bad content, continue to show default snippets. +- } +- } +- +- showDefaultSnippets(); +-} +- +-/** +- * Clear snippets element contents and show default snippets. +- */ +-function showDefaultSnippets() +-{ +-return; +- // Clear eventual contents... +- let snippetsElt = document.getElementById("snippets"); +- snippetsElt.innerHTML = ""; +- +- // ...then show default snippets. +- let defaultSnippetsElt = document.getElementById("defaultSnippets"); +- let entries = defaultSnippetsElt.querySelectorAll("span"); +- // Choose a random snippet. Assume there is always at least one. +- let randIndex = Math.floor(Math.random() * entries.length); +- let entry = entries[randIndex]; +- // Inject url in the eventual link. +- if (DEFAULT_SNIPPETS_URLS[randIndex]) { +- let links = entry.getElementsByTagName("a"); +- // Default snippets can have only one link, otherwise something is messed +- // up in the translation. +- if (links.length == 1) { +- links[0].href = DEFAULT_SNIPPETS_URLS[randIndex]; +- } +- } +- // Move the default snippet to the snippets element. +- snippetsElt.appendChild(entry); +-} +- + function fitToWidth() { + if (window.scrollMaxX) { + document.body.setAttribute("narrow", "true"); +diff -Nur a/browser/base/content/abouthome/aboutHome.xhtml b/browser/base/content/abouthome/aboutHome.xhtml +--- a/browser/base/content/abouthome/aboutHome.xhtml 2014-10-09 12:53:31.000000000 -0200 ++++ b/browser/base/content/abouthome/aboutHome.xhtml 2014-10-21 14:23:10.525956357 -0200 +@@ -101,6 +101,7 @@ + +
+ ++ + + + +diff -Nur a/browser/base/jar.mn b/browser/base/jar.mn +--- a/browser/base/jar.mn 2014-10-09 12:53:30.000000000 -0200 ++++ b/browser/base/jar.mn 2014-10-21 14:24:18.198691296 -0200 +@@ -32,6 +32,7 @@ + content/browser/abouthome/settings.png (content/abouthome/settings.png) + content/browser/abouthome/restore.png (content/abouthome/restore.png) + content/browser/abouthome/restore-large.png (content/abouthome/restore-large.png) ++ content/browser/abouthome/gnu_headshadow.png (content/abouthome/gnu_headshadow.png) + content/browser/abouthome/snippet1@2x.png (content/abouthome/snippet1@2x.png) + content/browser/abouthome/snippet2@2x.png (content/abouthome/snippet2@2x.png) + content/browser/abouthome/downloads@2x.png (content/abouthome/downloads@2x.png) +diff -Nur a/browser/locales/en-US/chrome/browser/aboutHome.dtd b/browser/locales/en-US/chrome/browser/aboutHome.dtd +--- a/browser/locales/en-US/chrome/browser/aboutHome.dtd 2014-10-09 12:53:30.000000000 -0200 ++++ b/browser/locales/en-US/chrome/browser/aboutHome.dtd 2014-10-21 14:25:19.071641759 -0200 +@@ -13,17 +13,6 @@ + + + +- +-latest features."> +- +-Choose from thousands of add-ons."> +- +-Know your rights…"> +- + + + +diff -Nur a/browser/locales/en-US/chrome/browser-region/region.properties b/browser/locales/en-US/chrome/browser-region/region.properties +--- a/browser/locales/en-US/chrome/browser-region/region.properties 2014-10-09 12:53:30.000000000 -0200 ++++ b/browser/locales/en-US/chrome/browser-region/region.properties 2014-10-21 18:02:51.771216707 -0200 @@ -3,17 +3,12 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # Default search engine --browser.search.defaultenginename=DuckDuckGo +-browser.search.defaultenginename=Google +browser.search.defaultenginename=DuckDuckGo HTML # Search engine order (order displayed in the search bar dropdown)s --browser.search.order.1=DuckDuckGo --browser.search.order.2=Google --browser.search.order.3=Yahoo +-browser.search.order.1=Google +-browser.search.order.2=Yahoo +-browser.search.order.3=Bing - -# This is the default set of web based feed handlers shown in the reader -# selection UI -browser.contentHandlers.types.0.title=My Yahoo! --browser.contentHandlers.types.0.uri=http://add.my.yahoo.com/rss?url=%s +-browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s +browser.search.order.1=DuckDuckGo HTML +browser.search.order.2=DuckDuckGo Lite +browser.search.order.3=Seeks Search # increment this number when anything gets changed in the list below. This will - # cause Firefox to re-read these prefs and inject any new handlers into the -@@ -22,20 +17,10 @@ browser.contentHandlers.types.0.uri=http://add.my.yahoo.com/rss?url=%s + # cause IceCat to re-read these prefs and inject any new handlers into the +@@ -22,20 +17,10 @@ # don't make any spelling errors here. - gecko.handlerService.defaultHandlersVersion=3 + gecko.handlerService.defaultHandlersVersion=4 -# The default set of protocol handlers for webcal: -gecko.handlerService.schemes.webcal.0.name=30 Boxes --gecko.handlerService.schemes.webcal.0.uriTemplate=http://30boxes.com/external/widget?refer=ff&url=%s +-gecko.handlerService.schemes.webcal.0.uriTemplate=https://30boxes.com/external/widget?refer=ff&url=%s - -# The default set of protocol handlers for mailto: -gecko.handlerService.schemes.mailto.0.name=Yahoo! Mail @@ -47,30 +723,26 @@ index f4adbdc..fe7f265 100644 # The default set of protocol handlers for ircs: -gecko.handlerService.schemes.ircs.0.name=Mibbit -gecko.handlerService.schemes.ircs.0.uriTemplate=https://www.mibbit.com/?url=%s -+gecko.handlerService.schemes.ircs.0.name=Freenode Web IRC -+gecko.handlerService.schemes.ircs.0.uriTemplate=https://webchat.freenode.net -diff --git a/browser/locales/generic/profile/bookmarks.html.in b/browser/locales/generic/profile/bookmarks.html.in -index e925c1e..5101035 100644 ---- a/browser/locales/generic/profile/bookmarks.html.in -+++ b/browser/locales/generic/profile/bookmarks.html.in -@@ -15,13 +15,20 @@ -

@bookmarks_toolbarfolder@

-
@bookmarks_toolbarfolder_description@ ++gecko.handlerService.schemes.irc.0.name=Freenode Web IRC ++gecko.handlerService.schemes.irc.0.uriTemplate=https://webchat.freenode.net +diff -Nur a/browser/locales/generic/profile/bookmarks.html.in b/browser/locales/generic/profile/bookmarks.html.in +--- a/browser/locales/generic/profile/bookmarks.html.in 2014-10-09 12:53:30.000000000 -0200 ++++ b/browser/locales/generic/profile/bookmarks.html.in 2014-10-21 18:02:15.103296484 -0200 +@@ -11,8 +11,20 @@ +
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar

--

@getting_started@ -+
Parabola GNU/Linux-libre -

--

@firefox_heading@

+
+-
GNU's not UNIX! +-
GNU Planet +-
Free Software Foundation ++
Parabola GNU/Linux-libre ++

+

Parabola GNU/Linux-libre

-

--

@firefox_help@ --
@firefox_customize@ --
@firefox_community@ --
@firefox_about@ -+
Parabola GNU/Linux-libre -+
Parabola GNU/Linux-libre Packages -+
Parabola GNU/Linux-libre Wiki -+
Parabola GNU/Linux-libre Labs ++

++

Parabola GNU/Linux-libre ++
Parabola GNU/Linux-libre Packages ++
Parabola GNU/Linux-libre Wiki ++
Parabola GNU/Linux-libre Labs +

+

Free Software Foundation

+

@@ -80,3 +752,101 @@ index e925c1e..5101035 100644 +

h-node

+diff -Nur a/browser/modules/AboutHome.jsm b/browser/modules/AboutHome.jsm +--- a/browser/modules/AboutHome.jsm 2014-10-09 12:53:30.000000000 -0200 ++++ b/browser/modules/AboutHome.jsm 2014-10-21 14:54:12.086062616 -0200 +@@ -8,7 +8,7 @@ + let Ci = Components.interfaces; + let Cu = Components.utils; + +-this.EXPORTED_SYMBOLS = [ "AboutHomeUtils", "AboutHome" ]; ++this.EXPORTED_SYMBOLS = [ "AboutHome" ]; + + Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + Components.utils.import("resource://gre/modules/Services.jsm"); +@@ -18,66 +18,6 @@ + XPCOMUtils.defineLazyModuleGetter(this, "fxAccounts", + "resource://gre/modules/FxAccounts.jsm"); + +-// Url to fetch snippets, in the urlFormatter service format. +-const SNIPPETS_URL_PREF = "browser.aboutHomeSnippets.updateUrl"; +- +-// Should be bumped up if the snippets content format changes. +-const STARTPAGE_VERSION = 4; +- +-this.AboutHomeUtils = { +- get snippetsVersion() STARTPAGE_VERSION, +- +- /* +- * showKnowYourRights - Determines if the user should be shown the +- * about:rights notification. The notification should *not* be shown if +- * we've already shown the current version, or if the override pref says to +- * never show it. The notification *should* be shown if it's never been seen +- * before, if a newer version is available, or if the override pref says to +- * always show it. +- */ +- get showKnowYourRights() { +- // Look for an unconditional override pref. If set, do what it says. +- // (true --> never show, false --> always show) +- try { +- return !Services.prefs.getBoolPref("browser.rights.override"); +- } catch (e) { } +- // Ditto, for the legacy EULA pref. +- try { +- return !Services.prefs.getBoolPref("browser.EULA.override"); +- } catch (e) { } +- +-#ifndef MOZILLA_OFFICIAL +- // Non-official builds shouldn't show the notification. +- return false; +-#endif +- +- // Look to see if the user has seen the current version or not. +- var currentVersion = Services.prefs.getIntPref("browser.rights.version"); +- try { +- return !Services.prefs.getBoolPref("browser.rights." + currentVersion + ".shown"); +- } catch (e) { } +- +- // Legacy: If the user accepted a EULA, we won't annoy them with the +- // equivalent about:rights page until the version changes. +- try { +- return !Services.prefs.getBoolPref("browser.EULA." + currentVersion + ".accepted"); +- } catch (e) { } +- +- // We haven't shown the notification before, so do so now. +- return true; +- } +-}; +- +-/** +- * Returns the URL to fetch snippets from, in the urlFormatter service format. +- */ +-XPCOMUtils.defineLazyGetter(AboutHomeUtils, "snippetsURL", function() { +- let updateURL = Services.prefs +- .getCharPref(SNIPPETS_URL_PREF) +- .replace("%STARTPAGE_VERSION%", STARTPAGE_VERSION); +- return Services.urlFormatter.formatURL(updateURL); +-}); +- + /** + * This code provides services to the about:home page. Whenever + * about:home needs to do something chrome-privileged, it sends a +@@ -202,18 +142,9 @@ + ss.promiseInitialized.then(function() { + let data = { + showRestoreLastSession: ss.canRestoreLastSession, +- snippetsURL: AboutHomeUtils.snippetsURL, +- showKnowYourRights: AboutHomeUtils.showKnowYourRights, +- snippetsVersion: AboutHomeUtils.snippetsVersion, + defaultEngineName: Services.search.defaultEngine.name + }; + +- if (AboutHomeUtils.showKnowYourRights) { +- // Set pref to indicate we've shown the notification. +- let currentVersion = Services.prefs.getIntPref("browser.rights.version"); +- Services.prefs.setBoolPref("browser.rights." + currentVersion + ".shown", true); +- } +- + if (target) { + target.messageManager.sendAsyncMessage("AboutHome:Update", data); + } else { diff --git a/libre/icecat/mozconfig b/libre/icecat/mozconfig index 2f6d0757b..5a4d29750 100644 --- a/libre/icecat/mozconfig +++ b/libre/icecat/mozconfig @@ -3,11 +3,7 @@ ac_add_options --prefix=/usr ac_add_options --libdir=/usr/lib -# IceCat -ac_add_options --disable-official-branding -ac_add_options --with-branding=browser/branding/unofficial -ac_add_options --with-distribution-id=org.gnu.gnuzilla -ac_add_options --with-user-appdir=.gnuzilla +ac_add_options --enable-official-branding # System libraries ac_add_options --with-system-nspr @@ -18,22 +14,19 @@ 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-cairo ac_add_options --enable-system-pixman # Features 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-updater ac_add_options --disable-installer - -# Parabola features -ac_add_options --disable-safe-browsing - -# Other -mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/moz-objdir +ac_add_options --disable-debug-symbols diff --git a/libre/icecat/rhbz-966424.patch b/libre/icecat/rhbz-966424.patch new file mode 100644 index 000000000..9a1c9e2b4 --- /dev/null +++ b/libre/icecat/rhbz-966424.patch @@ -0,0 +1,14 @@ +diff -Nur mozilla-release.orig/toolkit/modules/CertUtils.jsm mozilla-release/toolkit/modules/CertUtils.jsm +--- mozilla-release.orig/toolkit/modules/CertUtils.jsm 2014-10-11 07:06:48.000000000 -0200 ++++ mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-16 03:44:30.226448002 -0200 +@@ -174,7 +174,9 @@ + } + + function isBuiltinToken(tokenName) { +- return tokenName == "Builtin Object Token"; ++ return tokenName == "Builtin Object Token" || ++ tokenName == "Default Trust" || ++ tokenName == "System Trust"; + } + + /** diff --git a/libre/icecat/vendor.js b/libre/icecat/vendor.js index 3d93cec01..5b384fff6 100644 --- a/libre/icecat/vendor.js +++ b/libre/icecat/vendor.js @@ -8,5 +8,22 @@ pref("browser.shell.checkDefaultBrowser", false); pref("extensions.autoDisableScopes", 11); pref("extensions.shownSelectionUI", true); -// Disable Social API -pref("social.remote-install.enabled", false); +// Make sure that safebrowsing is disabled +pref("browser.safebrowsing.enabled", false); +pref("browser.safebrowsing.malware.enabled", false); + +// Disable missing nonfree flash notification +pref("plugins.notifyMissingFlash", false); + +// 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 whitelisted and directory installs 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", ""); diff --git a/libre/icecat/xulrunner-copy-stub.patch b/libre/icecat/xulrunner-copy-stub.patch deleted file mode 100644 index 8ccf127df..000000000 --- a/libre/icecat/xulrunner-copy-stub.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/browser/app/Makefile.in -+++ b/browser/app/Makefile.in -@@ -233,7 +233,7 @@ - else - ifdef LIBXUL_SDK - libs:: -- cp $(LIBXUL_DIST)/bin/$(XULRUNNER_STUB_NAME)$(BIN_SUFFIX) $(DIST)/bin/firefox$(BIN_SUFFIX) -+ cp $(LIBXUL_DIST)/bin/$(XULRUNNER_STUB_NAME)$(BIN_SUFFIX) $(DIST)/bin/icecat$(BIN_SUFFIX) - endif - endif - -- cgit v1.2.3