diff --git a/extra/firefox/PKGBUILD b/extra/firefox/PKGBUILD new file mode 100644 index 000000000..cde609ae6 --- /dev/null +++ b/extra/firefox/PKGBUILD @@ -0,0 +1,125 @@ +# $Id$ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Jakub Schmidtke <sjakub@gmail.com> + +# ALARM: Kevin Mihelich <kevin@archlinuxarm.org> +# - patch to fix building webrtc + +buildarch=20 + +pkgname=firefox +pkgver=33.0 +pkgrel=1 +pkgdesc="Standalone web browser from mozilla.org" +arch=('i686' 'x86_64') +license=('MPL' 'GPL' 'LGPL') +url="https://www.mozilla.org/firefox/" +depends=('gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types' + 'dbus-glib' 'alsa-lib' 'desktop-file-utils' 'hicolor-icon-theme' + 'libvpx' 'icu' 'libevent' 'nss' 'hunspell' 'sqlite') +makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake' + 'xorg-server-xvfb' 'libpulse' 'gst-plugins-base-libs' + 'inetutils') +optdepends=('networkmanager: Location detection via available WiFi networks' + 'gst-plugins-good: h.264 video' + 'gst-libav: h.264 video') +install=firefox.install +options=('!emptydirs' '!makeflags') +source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.bz2{,.asc} + mozconfig firefox.desktop firefox-install-dir.patch vendor.js rhbz-966424.patch + firefox-fixed-loading-icon.png + arm.patch) +sha256sums=('1018c2fae8c54c8a45f5a3ce348a2617a3f8039a789b09b7cfa5a27be069b229' + 'SKIP' + 'c52b0272c11717603168b7eb28efcbbdcb47a72135874aafd051642fcee37a60' + 'd2a7610393ba259c35e3227b92e02ec91095a95189f56ac93ccdf6732772719c' + 'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd' + '4b50e9aec03432e21b44d18c4c97b2630bace606b033f7d556c9d3e3eb0f4fa4' + '4f0046b39a8d98f6e4fc3360ec490cb2416e38c7b3e92699f7e511c206c2c961' + '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213' + 'd0beb1c7bd786665590131867e8c8677454dba6cd302b87daedca6d251fb4e51') + +# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. Feel free to contact foutrelis@archlinux.org for +# more information. +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM + +prepare() { + cd mozilla-release + + cp ../mozconfig .mozconfig + patch -Np1 -i ../firefox-install-dir.patch + + # https://bugs.archlinux.org/task/41689 + patch -Np2 -i ../rhbz-966424.patch + + echo -n "$_google_api_key" >google-api-key + echo "ac_add_options --with-google-api-keyfile=\"$PWD/google-api-key\"" >>.mozconfig + + mkdir "$srcdir/path" + + # WebRTC build tries to execute "python" and expects Python 2 + ln -s /usr/bin/python2 "$srcdir/path/python" + + # Use gold, as Mozilla can use some of its features, such as safe ICF + #ln -s /usr/bin/ld.gold "$srcdir/path/ld" + + # 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 (flickers with libpng 1.6) + # https://bugzilla.mozilla.org/show_bug.cgi?id=841734 + # TODO: Remove this; Firefox 36 might use CSS animations for the loading icon + # https://bugzilla.mozilla.org/show_bug.cgi?id=759252 + cp "$srcdir/firefox-fixed-loading-icon.png" \ + browser/themes/linux/tabbrowser/loading.png + + # Fix webrtc build on ARM + patch -Np0 -i ../arm.patch +} + +build() { + cd mozilla-release + + export PATH="$srcdir/path:$PATH" + export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/firefox" + export PYTHON="/usr/bin/python2" + + # Do PGO + xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \ + make -f client.mk build MOZ_PGO=1 +} + +package() { + cd mozilla-release + make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install + + install -Dm644 ../vendor.js "$pkgdir/usr/lib/firefox/browser/defaults/preferences/vendor.js" + + for i in 16 22 24 32 48 256; do + install -Dm644 browser/branding/official/default$i.png \ + "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png" + done + install -Dm644 browser/branding/official/content/icon64.png \ + "$pkgdir/usr/share/icons/hicolor/64x64/apps/firefox.png" + install -Dm644 browser/branding/official/mozicon128.png \ + "$pkgdir/usr/share/icons/hicolor/128x128/apps/firefox.png" + install -Dm644 browser/branding/official/content/about-logo.png \ + "$pkgdir/usr/share/icons/hicolor/192x192/apps/firefox.png" + install -Dm644 browser/branding/official/content/about-logo@2x.png \ + "$pkgdir/usr/share/icons/hicolor/384x384/apps/firefox.png" + + install -Dm644 ../firefox.desktop \ + "$pkgdir/usr/share/applications/firefox.desktop" + + # Use system-provided dictionaries + rm -rf "$pkgdir"/usr/lib/firefox/{dictionaries,hyphenation} + ln -s /usr/share/hunspell "$pkgdir/usr/lib/firefox/dictionaries" + ln -s /usr/share/hyphen "$pkgdir/usr/lib/firefox/hyphenation" + + #workaround for now + #https://bugzilla.mozilla.org/show_bug.cgi?id=658850 + ln -sf firefox "$pkgdir/usr/lib/firefox/firefox-bin" +} diff --git a/extra/firefox/firefox-fixed-loading-icon.png b/extra/firefox/firefox-fixed-loading-icon.png new file mode 100644 index 000000000..55f25e591 Binary files /dev/null and b/extra/firefox/firefox-fixed-loading-icon.png differ diff --git a/extra/firefox/firefox-install-dir.patch b/extra/firefox/firefox-install-dir.patch new file mode 100644 index 000000000..51fe4ba0a --- /dev/null +++ b/extra/firefox/firefox-install-dir.patch @@ -0,0 +1,12 @@ +diff -up firefox-29.0/mozilla-release/config/baseconfig.mk.orig firefox-29.0/mozilla-release/config/baseconfig.mk +--- mozilla-release/config/baseconfig.mk.orig 2014-04-22 15:38:52.948165295 +0200 ++++ mozilla-release/config/baseconfig.mk 2014-04-22 15:42:20.387481673 +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) ++installdir = $(libdir)/$(MOZ_APP_NAME) + sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) + ifndef TOP_DIST + TOP_DIST = dist diff --git a/extra/firefox/firefox.desktop b/extra/firefox/firefox.desktop new file mode 100644 index 000000000..d156ecf69 --- /dev/null +++ b/extra/firefox/firefox.desktop @@ -0,0 +1,121 @@ +[Desktop Entry] +Name=Firefox +Name[bn]=ফায়ারফক্স +Name[eo]=Fajrovulpo +Name[fi]=Firefox +Name[pa]=ਫਾਇਰਫੋਕਸ +Name[tg]=Рӯбоҳи оташин +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 +Comment=Browse the World Wide Web +Comment[ar]=تصفح الشبكة العنكبوتية العالمية +Comment[ast]=Restola pela Rede +Comment[bn]=ইন্টারনেট ব্রাউজ করুন +Comment[ca]=Navegueu per la web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[da]=Surf på internettet +Comment[de]=Im Internet surfen +Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) +Comment[es]=Navegue por la web +Comment[et]=Lehitse veebi +Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید +Comment[fi]=Selaa Internetin WWW-sivuja +Comment[fr]=Naviguer sur le Web +Comment[gl]=Navegar pola rede +Comment[he]=גלישה ברחבי האינטרנט +Comment[hr]=Pretražite web +Comment[hu]=A világháló böngészése +Comment[it]=Esplora il web +Comment[ja]=ウェブを閲覧します +Comment[ko]=웹을 돌아 다닙니다 +Comment[ku]=Li torê bigere +Comment[lt]=Naršykite internete +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[ro]=Navigați pe Internet +Comment[ru]=Доступ в Интернет +Comment[sk]=Prehliadanie internetu +Comment[sl]=Brskajte po spletu +Comment[sv]=Surfa på webben +Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ +Comment[uk]=Перегляд сторінок Інтернету +Comment[vi]=Để duyệt các trang web +Comment[zh_CN]=浏览互联网 +Comment[zh_TW]=瀏覽網際網路 +Exec=/usr/lib/firefox/firefox %u +Icon=firefox +Terminal=false +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; +StartupNotify=true +Categories=Network;WebBrowser; diff --git a/extra/firefox/firefox.install b/extra/firefox/firefox.install new file mode 100644 index 000000000..1a1f4b16b --- /dev/null +++ b/extra/firefox/firefox.install @@ -0,0 +1,13 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + diff --git a/extra/firefox/mozconfig b/extra/firefox/mozconfig new file mode 100644 index 000000000..a56a0446f --- /dev/null +++ b/extra/firefox/mozconfig @@ -0,0 +1,37 @@ +. $topsrcdir/browser/config/mozconfig + +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib + +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-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-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 +ac_add_options --disable-debug-symbols + +# PGO +mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 $(MAKE) -C $(MOZ_OBJDIR) pgo-profile-run' + +# vim:set ft=sh: diff --git a/extra/firefox/rhbz-966424.patch b/extra/firefox/rhbz-966424.patch new file mode 100644 index 000000000..7579d090f --- /dev/null +++ b/extra/firefox/rhbz-966424.patch @@ -0,0 +1,14 @@ +diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm +--- firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200 ++++ firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200 +@@ -174,7 +174,9 @@ this.checkCert = + } + + function isBuiltinToken(tokenName) { +- return tokenName == "Builtin Object Token"; ++ return tokenName == "Builtin Object Token" || ++ tokenName == "Default Trust" || ++ tokenName == "System Trust"; + } + + /** diff --git a/extra/firefox/vendor.js b/extra/firefox/vendor.js new file mode 100644 index 000000000..d8d606bc1 --- /dev/null +++ b/extra/firefox/vendor.js @@ -0,0 +1,9 @@ +// 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);