123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- # Maintainer (arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
- # Contributor: Ionut Biru <ibiru@archlinux.org>
- # Contributor: Jakub Schmidtke <sjakub@gmail.com>
- # Maintainer (aur): Figue <ffigue at gmail>
- # Contributor: fauno <fauno@kiwwwi.com.ar>
- # Contributor: evr <evanroman at gmail>
- # Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
- # Contributor: vando <facundo@esdebian.org>
- # Contributor: André Silva <emulatorman@hyperbola.info>
- # Contributor: Henry Jensen <hjensen@connochaetos.org>
- # Contributor: Luke Shumaker <lukeshu@parabola.nu>
- # Contributor: Márcio Silva <coadde@hyperbola.info>
- # Maintainer: Andreas Grapentin <andreas@grapentin.org>
- # Contributor: bill-auger <bill-auger@programmer.net>
- # Contributor: grizzlyuser <grizzlyuser@protonmail.com>
- # NOTE: icecat (60.7 < V <= 78.9) are not upstream releases
- # upstream releases would normally have '-gnu' appended to $_upstream_ver
- # this build is based on gnuzilla VCS developement sources
- # rev: 8b54aee6bd0c39f043bbba7a654870e032a910bc
- # NOTE: this PKGBUILD is a temporary WIP
- # it is based on the AUR PKGBUILD, which also runs makeicecat at build-time
- # makeicecat requires an active internet connection though, so that code was removed
- # this was introduced hastily, because 'icu' had changed,
- # and the 78.9.0 parabola PKGBUILD had "sandbox violation" problems at the time
- # eventually, the original parabola PKGBUILD should be restored/merged with this recipe
- # per rev: 04c332d29f362070a883baa3eab40df4a6f701d3
- # TODO: this PKGBUILD has several issues:
- # - it is adapted only for x86_64
- # - it has branding issues eg: missing "topsites", serach-engines, previous parabola patching
- # - it has two switchable implememtations (per '_make_srcball' - both work);
- # but preparing the upstream source-ball requires network access,
- # and the source-ball is only necessary becuase gnuzilla has not published one for v78
- pkgname=icecat
- _upstream_ver=78.9.0-pre # -gnu
- _mozilla_ver=${_upstream_ver%-*}
- pkgver=${_upstream_ver//-/_}
- pkgrel=1
- _commit=8b54aee6bd0c39f043bbba7a654870e032a910bc
- pkgdesc="The GNU web browser, based on Mozilla Firefox ESR"
- arch=(x86_64)
- url="http://www.gnu.org/software/gnuzilla/"
- license=('GPL' 'MPL' 'LGPL')
- depends=(gtk3 libxt mime-types dbus-glib ffmpeg nss ttf-font libpulse)
- makedepends=(m4 unzip zip diffutils python2-setuptools yasm mesa imake inetutils
- xorg-server-xvfb autoconf2.13 rust clang llvm jack gtk2
- python nodejs python2-psutil cbindgen nasm lld perl-file-rename)
- optdepends=('networkmanager: Location detection via available WiFi networks'
- 'libnotify: Notification integration'
- 'pulseaudio: Audio support'
- 'speech-dispatcher: Text-to-Speech'
- 'hunspell-en_US: Spell checking, American English')
- options=(!emptydirs !makeflags !strip)
- source=(https://repo.parabola.nu/other/${pkgname}/${pkgname}-${_upstream_ver}.tar.bz2{,.sig}
- icecat.desktop icecat-safe.desktop
- 0001-Use-remoting-name-for-GDK-application-names.patch
- rust_1.48.patch.gz)
- sha256sums=('6f777cbea1066ba10db64967d55b9204e14bbea9a7836c4bf7e7a1e642f97716'
- 'SKIP'
- 'e00dbf01803cdd36fd9e1c0c018c19bb6f97e43016ea87062e6134bdc172bc7d'
- '33dd309eeb99ec730c97ba844bf6ce6c7840f7d27da19c82389cdefee8c20208'
- 'e0eaec8ddd24bbebf4956563ebc6d7a56f8dada5835975ee4d320dd3d0c9c442'
- 'c7f867ccee684939c9f0a9c30ea69127077bbe43af545a03f09dfbbdc02545a9')
- validpgpkeys=('3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger
- prepare() {
- cd "${srcdir}"/$pkgname-${_mozilla_ver}/
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052
- patch -Np1 -i "${srcdir}"/0001-Use-remoting-name-for-GDK-application-names.patch
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1667736
- patch -Np1 -i "${srcdir}"/rust_1.48.patch
- # Patch to move files directly to /usr/lib/icecat. No more symlinks.
- sed -e 's;$(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME);g' -i config/baseconfig.mk
- sed -e 's;$(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME)-devel;g' -i config/baseconfig.mk
- printf '%b' " \e[1;36m->\e[0m\033[1m Starting build...\n"
- cat >./mozconfig <<END
- ac_add_options --enable-application=browser
- ac_add_options --prefix=/usr
- ac_add_options --enable-release
- ac_add_options --enable-hardening
- ac_add_options --enable-optimize
- ac_add_options --enable-rust-simd
- ac_add_options --enable-linker=lld
- ac_add_options --disable-elf-hack
- export CC='clang --target=x86_64-unknown-linux-gnu'
- export CXX='clang++ --target=x86_64-unknown-linux-gnu'
- export AR=llvm-ar
- export NM=llvm-nm
- export RANLIB=llvm-ranlib
- # Branding
- ac_add_options --enable-official-branding
- ac_add_options --with-distribution-id=nu.parabola
- ac_add_options --with-unsigned-addon-scopes=app,system
- # System libraries
- ac_add_options --with-system-nspr
- ac_add_options --with-system-nss
- # Features
- ac_add_options --enable-alsa
- ac_add_options --enable-jack
- ac_add_options --disable-crashreporter
- ac_add_options --disable-updater
- ac_add_options --disable-tests
- ac_add_options --disable-eme
- ac_add_options --with-app-basename=icecat
- ac_add_options --with-app-name=icecat
- END
- }
- build() {
- cd "${srcdir}"/$pkgname-${_mozilla_ver}/
- export MOZ_NOSPAM=1
- export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
- export MACH_USE_SYSTEM_PYTHON=1
- # LTO needs more open files
- ulimit -n 4096
- # clang-{9,10,11} -> error: unknown argument: '-fvar-tracking-assignments'
- CFLAGS="${CFLAGS/-fvar-tracking-assignments/}"
- CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}"
- # -fno-plt with cross-LTO causes obscure LLVM errors
- # LLVM ERROR: Function Import: link error
- CFLAGS="${CFLAGS/-fno-plt/}"
- CXXFLAGS="${CXXFLAGS/-fno-plt/}"
- ./mach build
- #./mach buildsymbols
- }
- package () {
- cd "${srcdir}"/$pkgname-${_mozilla_ver}/
- # Remove cose.manifest and cose.sig cause march install fails
- find obj-x86_64-pc-linux-gnu/dist/bin/browser/extensions -name cose.manifest -delete
- find obj-x86_64-pc-linux-gnu/dist/bin/browser/extensions -name cose.sig -delete
- DESTDIR="$pkgdir" ./mach install
- local _vendorjs="$pkgdir/usr/lib/${pkgname}/browser/defaults/preferences/vendor.js"
- install -Dvm644 /dev/stdin "$_vendorjs" <<END
- // Use LANG environment variable to choose locale
- pref("intl.locale.requested", "");
- // Disable default browser checking.
- pref("browser.shell.checkDefaultBrowser", false);
- // Opt all of us into e10s, instead of just 50%
- pref("browser.tabs.remote.autostart", true);
- END
- local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
- install -Dvm644 /dev/stdin "$distini" <<END
- [Global]
- id=parabola
- version=1.0
- about=Icecat for Parabola GNU/Linux-libre
- [Preferences]
- app.distributor=parabola
- app.distributor.channel=$pkgname
- app.partner.parabola=parabola
- END
- printf '%b' " \e[1;36m->\e[0m\033[1m Finishing...\n"
- install -m755 -d ${pkgdir}/usr/share/applications
- install -m755 -d ${pkgdir}/usr/share/pixmaps
- for i in 16 32 48; do
- install -Dm644 browser/branding/official/default${i}.png \
- "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/icecat.png"
- done
- install -Dm644 browser/branding/official/default48.png ${pkgdir}/usr/share/pixmaps/icecat.png
- install -Dm644 ${srcdir}/icecat.desktop ${pkgdir}/usr/share/applications/
- install -Dm644 ${srcdir}/icecat-safe.desktop ${pkgdir}/usr/share/applications/
- }
|