summaryrefslogtreecommitdiff
path: root/libre-testing/iceweasel-libre/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre-testing/iceweasel-libre/PKGBUILD')
-rw-r--r--libre-testing/iceweasel-libre/PKGBUILD410
1 files changed, 410 insertions, 0 deletions
diff --git a/libre-testing/iceweasel-libre/PKGBUILD b/libre-testing/iceweasel-libre/PKGBUILD
new file mode 100644
index 000000000..2998ebae9
--- /dev/null
+++ b/libre-testing/iceweasel-libre/PKGBUILD
@@ -0,0 +1,410 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor (Parabola): fauno <fauno@kiwwwi.com.ar>
+# Contributor (Parabola): vando <facundo@esdebian.org>
+# Contributor (Parabola): André Silva <emulatorman@lavabit.com>
+
+# Maintainer (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org>
+
+# Maintainer (Arch) : Ionut Biru <ibiru@archlinux.org>
+# Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com>
+
+# Contributor: Figue <ffigue at gmail>
+# Thank you very much to the older contributors:
+# Contributor: evr <evanroman at gmail>
+# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
+
+lowercase() { tr A-Z a-z <<<"$*"; }
+
+# Version Configuration ##############################################
+
+_pgo=false
+
+_debname=iceweasel
+_debver=18.0
+_debrel=1
+_debrepo=http://ftp.debian.org/debian/pool/main
+
+# locales can be easily generated by running
+# $ sed -rn 's/.*-l10n-([^.]*)\..*/\1/p' src/*.dsc | sort -u
+_locales=(ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta-LK ta te th tr uk vi zh-CN zh-TW zu)
+
+pkgbase=iceweasel
+pkgname=(iceweasel-libre)
+for locale in "${_locales[@]}"; do
+ pkgname+=("iceweasel-libre-l10n-$(lowercase ${locale})")
+done
+pkgver=${_debver}.${_debrel}
+pkgrel=3
+
+######################################################################
+
+debfile() { echo "${_debrepo}/${1:0:1}/${1%_*}/${1}"; }
+
+if [[ -z $pkgbase ]]; then pkgbase=$pkgname; fi
+if $_pgo; then pkgname+='-pgo'; fi
+if [ "$pkgbase" != "$pkgname" ]; then
+ provides+=("$pkgbase=$pkgver")
+ conflicts+=("$pkgbase")
+fi
+
+pkgdesc="A libre version of Debian Iceweasel, the web browser based on Mozilla Firefox."
+arch=(
+ 'i686'
+ 'mips64el'
+ 'x86_64'
+)
+license=(
+ 'GPL2'
+ 'LGPL'
+ 'MPL'
+)
+depends=(
+ 'alsa-lib'
+ 'dbus-glib'
+ 'desktop-file-utils'
+ 'gtk2'
+ 'hicolor-icon-theme'
+ 'hunspell'
+ 'libevent'
+ 'libnotify'
+ 'libvpx'
+ 'libxt'
+ 'mime-types'
+ 'mozilla-common'
+ 'mozilla-searchplugins'
+ 'nss>=3.14.1'
+ 'sqlite'
+ 'startup-notification'
+)
+makedepends=(
+ 'autoconf2.13'
+ 'diffutils'
+ 'dpkg-devtools'
+ 'imagemagick'
+ 'imake'
+ 'libidl2'
+ 'librsvg'
+ 'libxslt'
+ 'mesa'
+ 'python2'
+ 'unzip'
+ 'zip'
+)
+[[ $CARCH != mips64el ]] && makedepends+=('yasm')
+if $_pgo; then
+ makedepends+=('xorg-server-xvfb')
+ options+=(!ccache)
+fi
+optdepends=('networkmanager: Location detection via available WiFi networks')
+url="http://packages.debian.org/source/experimental/$_debname"
+install=firefox.install
+options=(!emptydirs)
+source=($(debfile ${_debname}_${_debver}-${_debrel}.dsc)
+ $(debfile ${_debname}_${_debver}-${_debrel}.debian.tar.gz)
+ $(debfile ${_debname}_${_debver}.orig.tar.bz2)
+ $(debfile ${_debname}_${_debver}.orig-compare-locales.tar.bz2)
+ $(for locale in "${_locales[@]}"; do debfile ${_debname}_${_debver}.orig-l10n-${locale}.tar.bz2; done)
+ replace-urls.txt libre.patch mozconfig.pgo
+ mozconfig $pkgbase.desktop iceweasel-install-dir.patch vendor.js shared-libs.patch
+ bug677092.patch)
+# use dpkg-source to extract everything
+noextract=(); for file in "${source[@]}"; do noextract+=("${file##*/}"); done
+
+# This is a bug, we should fix it.
+mips64el-prepare() {
+ # Fix MIPS N32 support.
+ sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \
+ js/src/assembler/wtf/Platform.h
+ # Disable 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
+}
+misp64el-configure() {
+ echo 'ac_add_options --disable-methodjit' >> .mozconfig
+ echo 'ac_add_options --disable-tracejit' >> .mozconfig
+ echo 'ac_add_options --disable-jemalloc' >> .mozconfig
+}
+
+prepare() {
+ if [[ -d "/usr/lib/$pkgbase" ]]; then
+ error "Because of how rpath is set, this package cannot be installed during build"
+ return 1
+ fi
+ dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc mozilla-release
+ cd mozilla-release
+
+ patch -Np1 -i ../iceweasel-install-dir.patch
+ patch -Np1 -i ../shared-libs.patch
+
+ # Back out https://bugzilla.mozilla.org/show_bug.cgi?id=677092
+ # in order to fix https://bugzilla.mozilla.org/show_bug.cgi?id=818468
+ patch -Rp1 -i ../bug677092.patch
+
+ # Replace common URLs
+ sed '/^#/d' ../replace-urls.txt | while read -r moz_url gnu_url; do
+ if [[ -n $moz_url ]]; then
+ printf 'liberating: %s -> %s\n' "$moz_url" "$gnu_url"
+ grep -Erl "${moz_url}" \
+ --exclude='*.'{patch,orig,rej} \
+ --exclude-dir={.pc,test,tests,testing} \
+ | xargs -d '\n' --no-run-if-empty sed -ri "s<${moz_url}<${gnu_url}<g"
+ fi
+ done
+
+ # Liberate the locales
+ printf '%s\n' l10n-*/*/searchplugins/*.xml \
+ | grep -Ev 'creativecommons|wikipedia|wikipediaro|wiktionary' \
+ | xargs -d '\n' rm -f
+ for dir in l10n-*/*/searchplugins; do
+ pushd "$dir"
+ ls | sed -n 's/\.xml$//p' > list.txt
+ popd
+ done
+ find l10n-* -name 'region.properties' -delete
+
+ # Patch anything that's left
+ patch -Np1 -i ../libre.patch
+
+ # Fix PRE_RELEASE_SUFFIX
+ sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \
+ browser/base/Makefile.in
+
+ if [[ $CARCH == mips64el ]]; then mips64el-prepare; fi
+
+ touch "$srcdir/.makepkg-prepare"
+}
+
+build() {
+ [[ -f "$srcdir/.makepkg-prepare" ]] || { prepare || return $?; cd "$srcdir"; }
+ cd "$srcdir"
+ build_browser
+ for locale in "${_locales[@]}"; do
+ cd "$srcdir"
+ build_locale "${locale}"
+ done
+}
+
+build_browser() {
+ cd mozilla-release
+
+ cp ../mozconfig .mozconfig
+ if $_pgo; then cat ../mozconfig.pgo >> .mozconfig; fi
+ if [[ $CARCH == mips64el ]]; then mips64el-configure; fi
+
+ # WebRTC build tries to execute "python" and expects Python 2
+ # Workaround taken from chromium PKGBUILD
+ mkdir "$srcdir/python2-path"
+ ln -s /usr/bin/python2 "$srcdir/python2-path/python"
+ export PATH="$srcdir/python2-path:$PATH"
+
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$pkgbase"
+ export PYTHON="/usr/bin/python2"
+ export MOZ_MAKE_FLAGS="$MAKEFLAGS"
+ unset MAKEFLAGS
+
+ if $_pgo; then
+ export MOZ_PGO=1
+ export DISPLAY=:99
+ Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY &
+ fi
+
+ _fail=0
+ make -f client.mk build || _fail=1
+
+ if $_pgo; then
+ kill $! || true
+ fi
+ return $_fail
+}
+
+build_locale() {
+ locale=$1
+ cd mozilla-release
+
+ export PYTHON="/usr/bin/python2"
+ export PRODUCT='browser'
+
+ # This is an adaptation of the "$(L10N_BUILD_STAMPS)" rule from debian/rules
+ [[ -e l10n ]] || mkdir -p l10n
+ [[ -e l10n/$locale ]] || ln -sf ../l10n-$locale l10n/$locale
+ ${PYTHON} config/pythonpath.py -I$(pwd)/compare-locales/lib \
+ $(pwd)/compare-locales/scripts/compare-locales \
+ -m $(pwd)/moz-objdir/l10n-$locale ${PRODUCT}/locales/l10n.ini $(pwd)/l10n $locale
+ make -C moz-objdir/${PRODUCT}/locales langpack-$locale \
+ L10NBASEDIR=$(pwd)/l10n MOZ_CHROME_FILE_FORMAT=flat \
+ MOZ_LANGPACK_EID=langpack-${locale}@${pkgbase}.mozilla.org \
+ PKG_LANGPACK_BASENAME='$(MOZ_LANGPACK_EID)' PKG_LANGPACK_PATH=xpi/ \
+ LOCALE_MERGEDIR=$(pwd)/moz-objdir/l10n-$locale
+}
+
+install-icon() {
+ local brandingdir=$1 prog=$2 size=$3
+ local sizedir=${size}x${size} ext=png
+ [[ $size == scalable ]] && { sizedir=$size; ext=svg; size=''; }
+
+ dirs=({moz-objdir/,}"$brandingdir")
+ files=({default,mozicon,${prog}{,_icon}}${size}.${ext})
+
+ for dir in "${dirs[@]}"; do
+ for files in "${files[@]}"; do
+ if [[ -e "$dir/$file" ]]; then
+ install -Dm644 "$dir/$file" \
+ "$pkgdir/usr/share/icons/hicolor/$sizedir/apps/$prog.png"
+ return 0
+ fi
+ done
+ done
+ #return 1
+}
+
+package_iceweasel-libre() {
+ cd mozilla-release
+ make -j1 -f client.mk DESTDIR="$pkgdir" install
+
+ install -Dm644 ../vendor.js "$pkgdir/usr/lib/$pkgbase/defaults/preferences/vendor.js"
+
+ for size in 16 32 48 64 128 scalable; do
+ install-icon debian/branding $pkgbase $size
+ done
+
+ install -Dm644 ../$pkgbase.desktop \
+ "$pkgdir/usr/share/applications/$pkgbase.desktop"
+
+ # Use system-provided dictionaries
+ rm -rf "$pkgdir"/usr/lib/$pkgbase/{dictionaries,hyphenation}
+ ln -s /usr/share/hunspell "$pkgdir/usr/lib/$pkgbase/dictionaries"
+ ln -s /usr/share/hyphen "$pkgdir/usr/lib/$pkgbase/hyphenation"
+ # use mozilla-searchplugins
+ rm -rf "$pkgdir"/usr/lib/$pkgbase/searchplugins
+ ln -s /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$pkgbase/searchplugins"
+
+ # We don't want the development stuff
+ rm -r "$pkgdir"/usr/{include,lib/$pkgbase-devel,share/idl}
+
+ #workaround for now
+ #https://bugzilla.mozilla.org/show_bug.cgi?id=658850
+ ln -sf $pkgbase "$pkgdir/usr/lib/$pkgbase/$pkgbase-bin"
+}
+
+package_locale() {
+ locale=$1
+ cd mozilla-release
+ lang=$(sed -n "/^%define L10N_LANG ${locale}/,+1p" debian/l10n/browser-l10n.control|sed -n 's/%define L10N_LANGUAGE\s\s*//p')
+
+ pkgdesc="${lang} language package for Iceweasel-libre"
+ depends=("iceweasel-libre=${pkgver}")
+
+ replaces=(iceweasel-i18n-$(lowercase "${locale}"))
+ conflicts=(iceweasel-i18n-$(lowercase "${locale}"))
+
+ extdir="$pkgdir"/usr/lib/iceweasel/extensions/
+ install -d "${extdir}"
+ install -m644 moz-objdir/dist/xpi/langpack-${locale}@${pkgbase}.mozilla.org.xpi "${extdir}"
+}
+for locale in "${_locales[@]}"; do
+ eval "package_iceweasel-libre-l10n-$(lowercase ${locale})() { package_locale ${locale}; }"
+done
+
+md5sums=('263569a577f72314694a711cc6a0d96f'
+ '6a571d3a3b355c331f67d57702f4fccf'
+ '366e1e4847d7e00eba77ee5a4be0d3db'
+ '80dd4a702302fb36719c67445b487895'
+ 'c99d7605c0e0bb0d77e71cd54f305a9a'
+ '1f4aeabf6c28fcf6539d13f65f8b366b'
+ 'cb9cc5f721d81442f1a93d134054f23c'
+ 'c69e0fa169bf6c49b1f83afd2383b628'
+ '09f4376791d17a772c60a0308095211d'
+ 'a16081e4da9daf6df5f6fcce2000cec1'
+ '88dd4c5837485acea83e97f3cb4f1e31'
+ '8751f0a634656ba973c53f96d1fa34e1'
+ 'f4531f867e6e75501bac3d7ed5f09045'
+ '740667ba651f0562b45bbfe63b8ec84e'
+ 'a1f3637341457fb8272d126f1aa70e4b'
+ '3d00ad2734c890930441d6cd919f11c8'
+ '84b7a2bf7f1458b60e9552d04c7e84b2'
+ '30ce51ca764b091c59df5c08e35e8a7f'
+ '1291e5976c83a8cda1903e4443d44c8e'
+ '1eacf81985d9993b2b94f98fd4c453e0'
+ '07b91907c98155c1b95e5d7f47367fde'
+ 'cd4042405f6eaa2931021f745f49d91f'
+ '24f8a5d05d0d2485c30b46e6d6835330'
+ '1b95f32637229a86e4633994350cf76f'
+ 'ae6007384d85dbd14fbe6496e0b9e47b'
+ 'a8ef67c04d3dc263f0f58e877b13cd71'
+ 'b5c3b2e366aa776e574d0972df72a423'
+ '200f856b50a7485a1d5447cbf8dee77c'
+ '1767400f27cf010572308f949e56176e'
+ 'c6dde21438789ccf4c666afc22ee713c'
+ 'd202408658b9e7e7a2656dd874ac0712'
+ '1c463a18e2a395314f7d0ad72282d5aa'
+ 'ec222722f432e8a94f993c1c32cd9757'
+ 'cf44fd1d567a7638fc0b5b80bb0398f7'
+ '13151197d7ef349699e55c760c74af16'
+ '32c185ef506e439bb63f572906a9bf66'
+ '2e6b90b3c6cad17753ec1aecaf61073c'
+ 'dbf451ef9ecf1816973ac4dffe7e2b8e'
+ '85c0900fb798fb64a8883dba06deccc0'
+ '0efff47ab838fd320c710ffd46ee3a57'
+ '28e5d445e7a91ddd64d50478b05edb51'
+ '770dcdf1a8d6d2db64dadb6e4f6149fb'
+ '7732b021cdf73ace33cb41609b327f3d'
+ '3a195266b43e9f477619aac9c326a26b'
+ 'a55e22c7ab045826b331efd7c0f036ef'
+ '2edcd565c19828e3d4a2da19f8529edd'
+ '531c54a91d509e768b55bfd88a96a527'
+ 'ddf2182b6e33795450bf41f46e7be521'
+ '8bf4edabc95abbaf274ddd5e5c5db562'
+ '63a227dbab0e66b6a0d4804c419049e2'
+ '3c9bab1f629c0b079345a186c0f22afc'
+ '786a62179094cda5f5e831232f4f94ce'
+ '535f68d0cfa4dee9df0cddbee42a4c94'
+ 'ffc4c457dfa697162e4198e61ae19e3b'
+ '4476b94e676b3cfb309f972f7c42da1b'
+ '792700b40ba53de7de5b48187b604b29'
+ '7f71fa7bed8488226168406ac022d2fd'
+ 'fdd9a144cd2a630d1b7ab6b73315c548'
+ '88d668eccb111a9e4f5fde58e000a5aa'
+ '46509bb591bf54b6fed025814bfc11bf'
+ '715a3f8c2fcdab17b24ce61f55c49183'
+ '658226211d66a724d0335a173ef8512f'
+ 'ecb41c7536c95cf2ca118d7ab6b7d357'
+ 'b813931cfba36f3b00826ba2d36e648f'
+ '2a926d37294ab24a7d7dc879339ae736'
+ 'fba979124cd393f1164a59e3b9183ccc'
+ 'e8597a5af1643b9c9a0b02a3756e0a86'
+ '665140babab027228eb195b6c0e83d4e'
+ 'e71a740bfc52d25968f8e2c4c1896897'
+ '47bd00559728578bfc257b80c72ce393'
+ '3a3d846613363e6d4dd99326cd07417d'
+ '80daf692c2fa80ef7f528df2a6aed42e'
+ '25c03afb8f5086a07eb0e26c94bcbc01'
+ '481db49b914f33d6c594ecebbc291e4c'
+ '742d2af843536fc1cdc8560b5aa0620f'
+ '9ee935f09dc89b42db9ad8db3473717d'
+ 'cf3e65e4db50dfa467defb4f820cd378'
+ '3e0c8ea5b69c4363e40c21dda5230850'
+ '32b73226e95ae47dc11a554a7208d960'
+ '437602c23394eb02ae5fe03ca4fd29bc'
+ 'f7a347a3d5679d82340d227474de938f'
+ '1a898825183ed67ea72b67a2c3486dd4'
+ '73bead055152cd4885b9834691c9066a'
+ '722a0d2212060e2044cbac859db3e063'
+ 'fba01f51ac90dec18758a7468fb509e1'
+ '03c2a59eab8ef4ad3687b91c07f96165'
+ 'd502ec35e4ec26d7f538f4b96402fe9c'
+ 'b75b729e9ab3ff9a908115ab520339a9'
+ 'cd696e70fdb4f5ab9d50040abea46b82'
+ '1b9df937ef08b6a72ca7d659f91df099'
+ '17bbe91d26b302aa36391ed57199006d'
+ 'de6037c0a65e7b86e0929637156ba587'
+ 'a8fc4658d45b6bf9350023e5c3f34e56'
+ '25861e760dc41b518cbee9c9194b2b19'
+ 'e4cd438a0b2a42dfb14bc7716e901e5f'
+ '5bfaf77580b6d3ce185b4c3ad4fa30ca'
+ '39d8b9249c5effe5fe24d2e9f80a9a94'
+ '2baf8cffccd50c568ad153a709cb3136'
+ 'e9b4ec9a34bdab1854255aaa05e7cedd'
+ '52e52f840a49eb1d14be1c0065b03a93'
+ '23520aca140fb0dd3e1b6f21b21f591f')