2013-04-28 07:01:01 +08:00
pkgname = firefox-kde
2017-01-28 16:49:19 +08:00
pkgver = 51.0.1
2017-01-26 09:21:53 +08:00
pkgrel = 1
2013-04-28 07:01:01 +08:00
pkgdesc = "Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE"
2017-01-26 09:21:53 +08:00
_kmozillahelper_commit = 5aeee92
2013-04-28 07:01:01 +08:00
arch = ( 'x86_64' )
2014-07-31 06:32:42 +08:00
license = ( 'MPL' 'GPL' 'LGPL' )
url = "https://www.mozilla.org/firefox/"
2016-12-31 10:55:21 +08:00
depends = ( 'gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types'
2017-01-26 09:21:53 +08:00
'dbus-glib' 'alsa-lib' 'ffmpeg' 'libvpx' 'libevent' 'nss>=3.28.1' 'hunspell'
'sqlite3>=3.14.1' 'icu'
'kio' 'knotifications' 'nspr>=4.13.1' 'libffi>=3.0.9' 'kwindowsystem' 'ki18n' )
makedepends = ( 'unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake' 'ffmpeg' 'flac'
2016-08-04 03:12:57 +08:00
'libpulse' 'inetutils' 'xorg-server-xvfb' 'autoconf2.13' 'rust'
2017-01-26 09:21:53 +08:00
'cmake' 'extra-cmake-modules' 'cargo' )
2013-08-24 22:38:13 +08:00
optdepends = ( 'networkmanager: Location detection via available WiFi networks'
2016-08-04 03:12:57 +08:00
'upower: Battery API'
2015-11-05 11:56:26 +08:00
'firefox-i18n: for multilanguage support' )
2013-04-28 07:01:01 +08:00
screenshot = "http://img864.imageshack.us/img864/5116/firefoxm.png"
2015-12-17 03:03:17 +08:00
provides = ( " firefox= ${ pkgver } " "kmozillahelper" )
2015-12-17 09:13:46 +08:00
conflicts = ( 'kmozillahelper' )
2013-05-07 04:46:15 +08:00
replaces = ( 'kmozillahelper' )
2013-04-28 07:01:01 +08:00
install = firefox.install
2013-05-07 05:00:15 +08:00
#
# For whom want to update this package
#
# Alternative firefox source url:
# http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${pkgver}/source/firefox-${pkgver}.source.tar.bz2
# This URL uses CDN so it's faster, but maybe out of date when new firefox release comes out.
#
# Find Firefox KDE related patch:
# patch http://www.rosenauer.org/hg/mozilla/
# patch https://build.opensuse.org/package/show?package=MozillaFirefox&project=mozilla%3AFactory
#
# Usually, we also port non-openSUSE specific patch together.
#
2017-01-26 09:21:53 +08:00
_patchrev = a888b9636517
2014-02-15 01:38:57 +08:00
_patchurl = http://www.rosenauer.org/hg/mozilla/raw-file/$_patchrev
2015-09-24 22:24:10 +08:00
source = ( " https://download-installer.cdn.mozilla.net/pub/firefox/releases/ ${ pkgver } /source/firefox- ${ pkgver } .source.tar.xz "
2015-12-17 03:03:17 +08:00
" git://github.com/openSUSE/kmozillahelper#commit= ${ _kmozillahelper_commit } "
2014-09-21 04:27:58 +08:00
'mozconfig'
'firefox.desktop'
2016-08-04 03:12:57 +08:00
'firefox-install-dir.patch'
2014-09-21 04:27:58 +08:00
'vendor.js'
'kde.js'
2015-05-14 00:57:11 +08:00
'pgo-fix-missing-kdejs.patch'
2017-01-09 20:01:10 +08:00
'fix-wifi-scanner.diff'
2015-03-21 16:54:06 +08:00
2014-09-21 04:27:58 +08:00
# Firefox patchset
" $_patchurl /firefox-kde.patch "
2017-01-19 02:47:55 +08:00
" $_patchurl /firefox-branded-icons.patch "
" $_patchurl /firefox-no-default-ualocale.patch "
2015-03-21 16:54:06 +08:00
2014-09-21 04:27:58 +08:00
# Gecko/toolkit patchset
" $_patchurl /mozilla-nongnome-proxies.patch "
" $_patchurl /mozilla-kde.patch "
2016-09-24 01:28:52 +08:00
'ddg-branding.patch'
" $_patchurl /mozilla-openaes-decl.patch "
" $_patchurl /mozilla-preferences.patch "
2017-01-19 02:47:55 +08:00
" $_patchurl /mozilla-shared-nss-db.patch "
2016-09-24 01:28:52 +08:00
" $_patchurl /mozilla-skia-overflow.patch "
2017-01-28 16:49:19 +08:00
" $_patchurl /mozilla-language.patch "
2015-03-06 22:32:56 +08:00
2016-09-27 14:48:25 +08:00
# mozilla-central theme fix
2016-09-30 17:10:19 +08:00
firefox-loading.png::"http://hg.mozilla.org/mozilla-central/raw-file/9baec74b3db1/toolkit/themes/shared/icons/loading.png"
2016-09-27 14:48:25 +08:00
2015-03-06 22:32:56 +08:00
# Useless patchset
#"$_patchurl/gecko-lockdown.patch"
#"$_patchurl/mozilla-idldir.patch"
#$_patchurl/firefox-ui-lockdown.patch
#"$_patchurl/toolkit-ui-lockdown.patch"
#"$_patchurl/mozilla-shared-nss-db.patch"
2015-04-01 16:13:57 +08:00
#"$_patchurl/mozilla-bmo1088588.patch" # Specify for ARM and PPC
#"$_patchurl/toolkit-download-folder.patch"
2016-09-24 01:28:52 +08:00
#"$_patchurl/mozilla-preferences.patch"
2015-05-17 21:43:49 +08:00
#"$_patchurl/firefox-no-default-ualocale.patch"
2016-09-24 01:28:52 +08:00
#"$_patchurl/mozilla-prefer_plugin_pref.patch" removed from opensuse. reason: dropped mozilla-prefer_plugin_pref.patch as this feature is likely not worth maintaining further
2013-04-28 07:01:01 +08:00
)
2017-01-28 16:49:19 +08:00
sha1sums = ( 'b73255fd4f90fd0c1b107b566679da2df3f31cf1'
2015-12-17 03:03:17 +08:00
'SKIP'
2017-01-26 09:21:53 +08:00
'37179e5fcd1500fa4b898868aec3768bba7f8b15'
2016-09-30 17:10:19 +08:00
'1a8ecc6d2cfd97791d8182882a74929f2a7289e9'
2016-08-04 03:12:57 +08:00
'693b54b9206ad854e4d75cbbf393029b77e82153'
2017-01-09 20:01:10 +08:00
'6e11169300c266d7058725697e241fc021e81a1b'
2015-08-15 01:03:26 +08:00
'ce48f8e5065319e191a7389539ec663dc8a919d7'
2016-01-27 15:03:24 +08:00
'e480985ad1c4277e48a7d69c07258f0d7e97a977'
2017-01-09 20:01:10 +08:00
'9ed341bb7b147da7ebba420110dcf5a5a8e8d887'
2017-01-26 09:21:53 +08:00
'd07e51f6f02c0d8fe6a0aa6fc2ba82fbafed207d'
2017-01-24 06:02:04 +08:00
'255d7465aa5ace5efb4f4cde14fa631872447aa3'
'dbfd269cbf88a4e1faea99bffc57ba26b8a0a7d9'
2015-08-15 01:03:26 +08:00
'5a38d441d73647b12e1e13416de3fde822dfed18'
2017-01-26 09:21:53 +08:00
'18339e252d7c148f17545e323febd69a1d7633f1'
2016-08-20 22:27:05 +08:00
'f3b41a0a771d2a94997b953cb3204c688d89afc4'
2017-01-26 09:21:53 +08:00
'5978fb0131d31b0e91459a90edc918f66eec3155'
2016-09-24 01:28:52 +08:00
'bcf0f111eadcf4e7d3316659af2f210c583ad9ff'
2017-01-26 09:21:53 +08:00
'efd2e4fab5ea174f5f84db17265cd1d070e414c8'
2016-09-27 14:48:25 +08:00
'b6ee769618637eae4c202daf2762c14ba4ca05c7'
2017-01-28 16:49:19 +08:00
'c26a447967af089d44286b98fa51a372ad0b2ee3'
2016-09-30 17:10:19 +08:00
'1b9c01c2258d9fef80fc09d1f4dbf41bafae8440' )
2015-04-23 04:35:46 +08:00
2015-07-05 03:01:01 +08:00
2014-02-15 01:38:57 +08:00
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Chakra Linux use ONLY. For your own distribution, please
2016-10-01 01:37:16 +08:00
# get your own set of keys. Feel free to contact totte@chakralinux.org for
# more information.
_google_api_key = AIzaSyDjyg8EmaRUIsewzdjZXFZ0O8N5ARDUDGU
2014-02-15 01:38:57 +08:00
2016-09-27 23:50:05 +08:00
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Chakra Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact totte@chakralinux.org for
# more information.
_mozilla_api_key = bf05f841-e0bd-4644-81f5-3c132755f2e9
2014-02-15 01:38:57 +08:00
prepare( ) {
2015-11-05 00:31:59 +08:00
cd ${ srcdir } /firefox-${ pkgver } /
2014-07-31 06:32:42 +08:00
cp ../mozconfig .mozconfig
patch -Np1 -i ../firefox-install-dir.patch
2014-09-14 08:08:19 +08:00
2017-01-09 20:01:10 +08:00
# https://bugzilla.mozilla.org/show_bug.cgi?id=1314968
patch -Np1 -i ../fix-wifi-scanner.diff
2013-04-28 07:01:01 +08:00
2014-02-15 01:38:57 +08:00
echo -n " $_google_api_key " > google-api-key
2014-07-31 06:32:42 +08:00
echo " ac_add_options --with-google-api-keyfile=\" $PWD /google-api-key\" " >>.mozconfig
2013-05-07 05:23:14 +08:00
2016-09-27 23:50:05 +08:00
echo -n " $_mozilla_api_key " > mozilla-api-key
echo " ac_add_options --with-mozilla-api-keyfile=\" $PWD /mozilla-api-key\" " >>.mozconfig
2016-04-29 16:44:15 +08:00
2013-08-24 22:38:13 +08:00
# make makepkg -R easier
2014-02-15 01:38:57 +08:00
msg "Patching for KDE"
rm -f content/media/gstreamer/nsGStreamerFormatHelper.{ h,cpp}
2014-12-02 11:18:37 +08:00
rm -f browser/components/shell/{ nsKDEShellService,nsUnixShellService} .{ h,cpp}
2014-02-15 01:38:57 +08:00
rm -f browser/base/content/browser-kde.xul
2016-04-29 16:44:15 +08:00
rm -f toolkit/xre/nsKDEUtils.{ h,cpp}
2014-02-15 01:38:57 +08:00
rm -f uriloader/exthandler/unix/{ nsCommonRegistry,nsKDERegistry} .{ h,cpp}
rm -f toolkit/content/widgets/{ dialog,preferences} -kde.xml
msg "Gecko/toolkit patchset"
patch -Np1 -i " $srcdir /mozilla-nongnome-proxies.patch "
2016-04-29 16:44:15 +08:00
patch -Np1 -i " $srcdir /mozilla-kde.patch "
2016-09-24 01:28:52 +08:00
patch -Np1 -i " $srcdir /mozilla-preferences.patch "
2017-01-19 02:47:55 +08:00
patch -Np1 -i " $srcdir /mozilla-shared-nss-db.patch "
2016-09-24 01:28:52 +08:00
patch -Np1 -i " $srcdir /mozilla-skia-overflow.patch "
patch -Np1 -i " $srcdir /mozilla-openaes-decl.patch "
2017-01-28 16:49:19 +08:00
patch -Np1 -i " $srcdir /mozilla-language.patch "
2014-02-15 01:38:57 +08:00
msg "Firefox patchset"
patch -Np1 -i " $srcdir /firefox-kde.patch "
2017-01-19 02:47:55 +08:00
patch -Np1 -i " $srcdir /firefox-branded-icons.patch "
2015-11-05 11:56:26 +08:00
patch -Np1 -i " $srcdir /ddg-branding.patch "
patch -Np1 -i " $srcdir " /pgo-fix-missing-kdejs.patch
2017-01-19 02:47:55 +08:00
patch -Np1 -i " $srcdir /firefox-no-default-ualocale.patch "
2015-11-05 11:56:26 +08:00
2015-03-06 22:32:56 +08:00
mkdir -vp " $srcdir /path "
2013-04-28 07:01:01 +08:00
2013-08-24 22:38:13 +08:00
# WebRTC build tries to execute "python" and expects Python 2
ln -sf /usr/bin/python2 " $srcdir /path/python "
2016-04-30 04:01:29 +08:00
# fix GTK3
2017-01-09 20:01:10 +08:00
# sed -i 's|parent->group|gtk_window_get_group(const_cast<GtkWindow*>(parent))|g' toolkit/xre/nsKDEUtils.cpp
2016-05-01 02:27:32 +08:00
# Fix tab loading icon (doesn't work with libpng 1.6)
# https://bugzilla.mozilla.org/show_bug.cgi?id=841734
2016-09-30 17:10:19 +08:00
install -Dm655 " $srcdir /firefox-loading.png " toolkit/themes/linux/global/icons/loading.png
2013-08-24 22:38:13 +08:00
}
build( ) {
2014-02-15 01:38:57 +08:00
msg "build_kmozillahelper"
build_kmozillahelper
msg "build_firefox"
build_firefox
2013-08-24 22:38:13 +08:00
}
build_kmozillahelper( ) {
2014-02-15 01:38:57 +08:00
cd $srcdir /
mkdir -p kmozillahelper-build
cd kmozillahelper-build
2013-08-24 22:38:13 +08:00
2015-12-17 03:03:17 +08:00
cmake -DCMAKE_INSTALL_PREFIX= /usr -DCMAKE_BUILD_TYPE= Release ../kmozillahelper
2014-02-15 01:38:57 +08:00
make
2013-08-24 22:38:13 +08:00
}
build_firefox( ) {
2015-11-05 00:31:59 +08:00
cd " $srcdir /firefox- ${ pkgver } "
2016-08-04 03:12:57 +08:00
# _FORTIFY_SOURCE causes configure failures
CPPFLAGS += " -O2"
# Hardening
LDFLAGS += " -Wl,-z,now"
# GCC 6
# CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
2013-04-28 22:10:14 +08:00
export PATH = " $srcdir /path: $PATH "
2013-04-28 07:01:01 +08:00
export PYTHON = "/usr/bin/python2"
2015-05-13 10:32:45 +08:00
export SHELL = /bin/bash
2013-04-28 07:01:01 +08:00
2014-09-14 08:08:19 +08:00
# Do PGO
2016-08-05 17:46:13 +08:00
xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \
make -f client.mk build MOZ_PGO = 1
#make -f client.mk build
2013-04-28 07:01:01 +08:00
}
package( ) {
2014-02-15 01:38:57 +08:00
msg "package() kmozillahelper"
2013-05-07 04:46:15 +08:00
cd $srcdir /kmozillahelper-build
make DESTDIR = $pkgdir install
2013-04-28 22:10:14 +08:00
2014-02-15 01:38:57 +08:00
msg "package() Firefox"
2015-11-05 00:31:59 +08:00
cd " $srcdir /firefox- ${ pkgver } "
2014-06-13 08:28:45 +08:00
2015-12-17 15:38:50 +08:00
export SHELL = /bin/bash
2014-06-13 08:28:45 +08:00
make -f client.mk DESTDIR = " $pkgdir " MOZ_PKG_FATAL_WARNINGS = 0 install
2013-04-28 22:10:14 +08:00
2014-06-11 07:06:10 +08:00
install -Dm644 ../vendor.js " $pkgdir /usr/lib/firefox/browser/defaults/preferences/vendor.js "
install -Dm644 ../kde.js " $pkgdir /usr/lib/firefox/browser/defaults/preferences/kde.js "
2013-04-28 22:10:14 +08:00
for i in 16 22 24 32 48 256; do
install -Dm644 browser/branding/official/default$i .png \
2014-02-15 01:38:57 +08:00
" $pkgdir /usr/share/icons/hicolor/ ${ i } x ${ i } /apps/firefox.png "
2013-04-28 22:10:14 +08:00
done
2014-07-31 06:32:42 +08:00
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 "
2013-04-28 07:01:01 +08:00
2013-04-28 22:10:14 +08:00
install -Dm644 ../firefox.desktop \
2014-02-15 01:38:57 +08:00
" $pkgdir /usr/share/applications/firefox.desktop "
2014-07-31 06:32:42 +08:00
2013-04-28 07:01:01 +08:00
# Use system-provided dictionaries
2014-02-15 01:38:57 +08:00
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 "
2014-07-31 06:32:42 +08:00
2014-02-15 01:38:57 +08:00
# We don't want the development stuff
rm -r " $pkgdir " /usr/{ include,lib/firefox-devel,share/idl}
2015-12-17 15:38:50 +08:00
2014-02-15 01:38:57 +08:00
#workaround for now
#https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf firefox " $pkgdir /usr/lib/firefox/firefox-bin "
2013-04-28 07:01:01 +08:00
}