2013-04-28 07:01:01 +08:00
pkgname = firefox-kde
2015-08-12 05:31:49 +08:00
pkgver = 40.0
2015-06-23 14:58:29 +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"
2015-03-21 16:54:06 +08:00
#_kmozillahelper_obsver=b88c72dfdc858f6209feb123227bd7df
2013-08-24 22:38:13 +08:00
_kmozillahelper_pkgname = kmozillahelper
_kmozillahelper_pkgver = 0.6.4
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/"
depends = ( 'gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types'
'dbus-glib' 'alsa-lib' 'desktop-file-utils' 'hicolor-icon-theme'
2015-05-13 10:32:45 +08:00
'libvpx' 'icu' 'libevent' 'nss>=3.18.1' 'hunspell' 'sqlite3>=3.8.9'
2014-07-31 06:32:42 +08:00
'kdelibs' )
makedepends = ( 'unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake'
'xorg-server-xvfb' 'libpulse' 'gst-plugins-base'
2015-04-01 16:56:53 +08:00
'inetutils' 'libpng>=1.6.16'
2014-07-31 06:32:42 +08:00
'cmake' 'automoc4' )
2013-08-24 22:38:13 +08:00
optdepends = ( 'networkmanager: Location detection via available WiFi networks'
2014-07-31 06:32:42 +08:00
'gst-plugins-good: h.264 video'
'gst-libav: h.264 video'
'firefox-i18n: for multilanguage support'
'kdelibs: for KDE integration' )
2013-04-28 07:01:01 +08:00
screenshot = "http://img864.imageshack.us/img864/5116/firefoxm.png"
2013-08-24 22:38:13 +08:00
provides = ( " firefox= ${ pkgver } " " kmozillahelper= ${ _kmozillahelper_pkgver } " )
2013-05-07 04:46:15 +08:00
conflicts = ( 'firefox' 'kmozillahelper' )
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.
#
2015-08-12 05:31:49 +08:00
_patchrev = 0dd25a92df97
2014-02-15 01:38:57 +08:00
_patchurl = http://www.rosenauer.org/hg/mozilla/raw-file/$_patchrev
2015-06-04 23:41:36 +08:00
source = ( " https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ ${ pkgver } /source/firefox- ${ pkgver } .source.tar.bz2 "
2014-09-21 04:27:58 +08:00
'mozconfig'
'firefox.desktop'
'vendor.js'
'kde.js'
2015-03-17 10:18:43 +08:00
'firefox-20.0.1-fixed-loading-icon.png'
2015-03-21 16:54:06 +08:00
" https://build.opensuse.org/source/openSUSE:Factory/mozilla-kde4-integration/ ${ _kmozillahelper_pkgname } - ${ _kmozillahelper_pkgver } .tar.bz2 "
2014-09-21 04:27:58 +08:00
'firefox-install-dir.patch'
'rhbz-966424.patch'
2015-05-14 00:57:11 +08:00
'pgo-fix-missing-kdejs.patch'
2015-03-21 16:54:06 +08:00
2014-09-21 04:27:58 +08:00
# Firefox patchset
" $_patchurl /firefox-kde.patch "
" $_patchurl /firefox-branded-icons.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 "
2015-07-05 03:01:01 +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
2014-09-21 04:27:58 +08:00
" $_patchurl /mozilla-kde.patch "
2015-03-06 22:32:56 +08:00
" $_patchurl /mozilla-preferences.patch "
" $_patchurl /mozilla-pkgconfig.patch "
2015-05-13 10:32:45 +08:00
#"$_patchurl/mozilla-language.patch"
#'install-kde-js.patch'
2014-12-13 00:31:53 +08:00
'ddg-branding.patch'
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"
2015-05-17 21:43:49 +08:00
#"$_patchurl/mozilla-language.patch"
#"$_patchurl/firefox-no-default-ualocale.patch"
2013-04-28 07:01:01 +08:00
)
2015-08-12 05:31:49 +08:00
sha256sums = ( 'e3a26164b3a7f1aefbe13a07f0fdcd322726e4bb8c7e9432d1671c8c9e37145a'
2014-09-21 04:27:58 +08:00
'a46781b46723376c7dde4648ac7d2a7ab64dedb5eee60d8c0d19af22d3b93efc'
'3e9fa54f334681d9e04907c1a5ae86a753c7b9902075519e31a011103c928ee8'
'1c77d74a93e66f49dae37f5217990d93930d515ea058c1e47ba671bba3564231'
'0850a8a8dea9003c67a8ee1fa5eb19a6599eaad9f2ad09db753b74dc5048fdbc'
2015-03-17 10:18:43 +08:00
'68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213'
2014-09-21 04:27:58 +08:00
'121ed258879a8bb1617879866a86884618b8a6336a12ef9a837a440a4fc63ee5'
'ea7d67101abdd0a7fbbee5195d65d96d32c5c3975c5f5cf0d9a2c0b8df2cf891'
'746cb474c5a2c26fc474256e430e035e604b71b27df1003d4af85018fa263f4a'
2015-05-14 00:57:11 +08:00
'2c9c97bff07cc71b3f6d35f3edfaddaf8180a1f533ee4682adf18a8f86d29264'
2015-08-12 05:31:49 +08:00
'447360d6d2d07ad99f9afc996666be37c23f8477dc36cc100217ff085175c24d'
'72abd31e89a41cddbd8165b0b9555465184c52c426e0998c9cb7786af94b5532'
2014-09-21 04:27:58 +08:00
'e8289ea4c1f8191e1e23661312ceee2128b8e790501b9a589d0d7bfc4384553f'
2015-08-12 05:31:49 +08:00
'64860dcdc2126465bcc06f1aac55f3a9fc2d8f45b04dffff7ae14001d1672470'
'15c948db0cde13a79332a3e1c57fe08533c76cf555640e32cc1dbe8b0e86efe9'
'0c709d8d877fb063ca17da928ce28260d8d8b739f53cbe201a66f5910c0b57d8'
2014-12-13 00:31:53 +08:00
'82c5f83f7e99fd3be6ec9750a3bef8b7826f08b523dab138f8742ea8b60e2749' )
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
# get your own set of keys.
_google_api_key = AIzaSyA33sdKPff0x3KBByOhpzc1i7RS2A1mEpY
prepare( ) {
2014-07-31 06:32:42 +08:00
cd mozilla-release
cp ../mozconfig .mozconfig
patch -Np1 -i ../firefox-install-dir.patch
2014-09-14 08:08:19 +08:00
# https://bugs.archlinux.org/task/41689
2014-09-09 00:08:21 +08:00
patch -Np1 -i ../rhbz-966424.patch
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
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
rm -f toolkit/xre/nsKDEUtils.{ h,cpp}
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 "
patch -Np1 -i " $srcdir /mozilla-kde.patch "
2015-05-13 10:32:45 +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 "
patch -Np1 -i " $srcdir /firefox-branded-icons.patch "
2014-12-13 00:31:53 +08:00
patch -Np1 -i " $srcdir /ddg-branding.patch "
2015-05-14 00:57:11 +08:00
patch -Np1 -i " $srcdir " /pgo-fix-missing-kdejs.patch
2014-02-15 01:38:57 +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 "
2013-04-28 07:01:01 +08:00
2014-09-14 08:08:19 +08:00
# 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
2013-08-24 22:38:13 +08:00
# Fix tab loading icon (flickers with libpng 1.6)
# https://bugzilla.mozilla.org/show_bug.cgi?id=841734
2014-09-14 08:08:19 +08:00
# TODO: Remove this; Firefox 34 might use CSS animations for the loading icon
2014-07-31 06:32:42 +08:00
# https://bugzilla.mozilla.org/show_bug.cgi?id=759252
2015-03-17 10:18:43 +08:00
cp " $srcdir /firefox-20.0.1-fixed-loading-icon.png " \
browser/themes/linux/tabbrowser/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
2014-02-15 01:38:57 +08:00
cmake -DCMAKE_INSTALL_PREFIX= ` kde4-config --prefix` -DCMAKE_BUILD_TYPE= Release ../kmozillahelper
make
2013-08-24 22:38:13 +08:00
}
build_firefox( ) {
2014-02-15 01:38:57 +08:00
cd " $srcdir /mozilla-release "
2013-08-24 22:38:13 +08:00
2013-04-28 22:10:14 +08:00
export PATH = " $srcdir /path: $PATH "
2014-02-15 01:38:57 +08:00
export LDFLAGS = " $LDFLAGS -Wl,-rpath,/usr/lib/firefox "
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
xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \
make -f client.mk build MOZ_PGO = 1
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"
cd " $srcdir /mozilla-release "
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}
#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
}