# Description: The Mozilla Firefox browser
-# URL: http://www.mozilla.com/firefox/
+# URL: https://www.mozilla.com/firefox/
# Maintainer: Fredrik Rinnestam, fredrik at crux dot nu
# Arch Maintainer: CRUX-ARM System Team, devel at crux-arm dot nu
-# Depends on: nss, libidl, gtk, python, alsa-lib, yasm, mesa3d
+# Depends on: nss, unzip, autoconf-2.13, zip, libidl, gtk, gtk3, python, alsa-lib, xorg-libxt, yasm, mesa3d
name=firefox
-version=38.0.1
+version=52.8.0esr
release=1
-source=(ftp://ftp.mozilla.org/pub/firefox/releases/$version/source/firefox-$version.source.tar.bz2
- firefox-install-dir.patch 0001-Fix-build-with-USE_SKIA_GPU.patch firefox.desktop)
+source=(https://ftp.mozilla.org/pub/firefox/releases/$version/source/firefox-$version.source.tar.xz
+ firefox-install-dir.patch firefox.desktop)
build() {
- cd mozilla-release
+ cd $name-$version
- patch -p1 -i $SRC/firefox-install-dir.patch
- patch -p1 -i $SRC/0001-Fix-build-with-USE_SKIA_GPU.patch
-
- # determine some flags depending on SOC
- FPU=vfp; ARCH=armv6; THUMB=no
- case $(uname -m) in
- armv7*) ARCH=armv7; THUMB=yes;;
- esac
- for flag in $CFLAGS; do
- case $flag in
- -mfpu=neon*) FPU=neon;;
- esac
- done
-
- #ac_add_options --with-thumb-interwork=$THUMB
- #ac_add_options --with-soft-float=no
- #ac_add_options --with-thumb=$THUMB
-
-# mk_add_options MOZ_ALIGN=no
-# ac_add_options --with-arch=$ARCH
-# ac_add_options --with-fpu=$FPU
-# ac_add_options --with-float-abi=hard
-# ac_add_options --with-thumb-interwork=no
-# ac_add_options --with-thumb=no
+ # Fix to avoid gcc6 compilations error at install stage
+ export CFLAGS="$CFLAGS -fno-schedule-insns"
+ export CXXFLAGS="$CFLAGS"
+ # Fix python
+ sed -i 's@PYTHON ?= $(shell which python2.7 > /dev/null 2>&1 && echo python2.7 || echo python)@PYTHON := python -B@' \
+ client.mk
-# export MOZ_THUMB="no"
-# export MOZ_ARCH="$ARCH"
-# export MOZ_FPU="$FPU"
-# export MOZ_FLOAT_ABI="hard"
-# export MOZ_ALIGN="no"
-# export VPX_ASFLAGS="$CFLAGS"
-# export LIBJPEG_TURBO_ASFLAGS="$CFLAGS"
+ sed -i '/^ftfntfmt.h/ i freetype/ftfntfmt.h' config/system-headers
+ # stupid workaround
+ sed -i '2,7d' js/src/configure
+ patch -p1 -i $SRC/firefox-install-dir.patch
cat <<- EOF > .mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-shared
mk_add_options MOZ_MAKE_FLAGS="$MAKEFLAGS -s"
- export VPX_ASFLAGS="$CFLAGS"
- export LIBJPEG_TURBO_ASFLAGS="$CFLAGS"
ac_add_options --prefix=/usr
+ ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
- ac_add_options --with-system-mng
ac_add_options --with-system-png
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
+ ac_add_options --with-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --enable-system-sqlite
- ac_add_options --enable-system-cairo
+ ac_add_options --enable-alsa
ac_add_options --with-pthreads
- ac_add_options --enable-optimize="$CFLAGS"
ac_add_options --enable-official-branding
+ ac_add_options --with-distribution-id=nu.crux-arm
ac_add_options --enable-extensions=default,-gnomevfs
- ac_add_options --enable-shared
- ac_add_options --enable-svg
- ac_add_options --enable-canvas
- ac_add_options --enable-crypto
- ac_add_options --enable-single-profile
- ac_add_options --enable-places
- ac_add_options --enable-storage
- ac_add_options --enable-places_bookmarks
- ac_add_options --enable-image-encoder=all
- ac_add_options --enable-xft
- ac_add_options --disable-static
ac_add_options --disable-tests
- ac_add_options --disable-mochitest
ac_add_options --disable-dbus
ac_add_options --disable-debug
- ac_add_options --disable-installer
ac_add_options --disable-updater
- ac_add_options --disable-xprint
- ac_add_options --disable-profilesharing
- ac_add_options --disable-gnomevfs
ac_add_options --disable-gnomeui
- ac_add_options --disable-mailnews
ac_add_options --disable-crashreporter
ac_add_options --disable-necko-wifi
- ac_add_options --disable-libnotify
- ac_add_options --disable-gstreamer
ac_add_options --disable-pulseaudio
- ac_add_options --disable-skia-gpu
+ ac_add_options --disable-gconf
+ ac_add_options --disable-rust
+ ac_add_options --disable-optimize
EOF
- #sed "s|-march=armv7-a -mfpu=neon||g" -i configure
-# sed "s|VPX_ASFLAGS.*|VPX_ASFLAGS=\"\"|g" -i configure
-# sed "s|LIBJPEG_TURBO_ASFLAGS.*|LIBJPEG_TURBO_ASFLAGS=\"\"|g" -i configure
- #make -f client.mk build VPX_ASFLAGS="$CFLAGS" LIBJPEG_TURBO_ASFLAGS="$CFLAGS"
-# sed "s|VPX_ASFLAGS = -march=armv7-a -mfpu=neon|VPX_ASFLAGS = |g" -i firefox-shared/config/autoconf.mk
-# sed -e "s|-march=armv7-a||g" -e "s|-mthumb||g" -e "s|-mfloat-abi=softfp||g" -e "s|-mfpu=neon||g" -i mozilla-release/firefox-shared/media/libvpx/backend.mk
- sed "s|\['-march=armv7-a', '-mthumb', '-mfloat-abi=softfp', '-mfpu=neon'\]|\[\]|g" -i media/libvpx/moz.build
+ #ac_add_options --disable-startupcache
+# mozonfig optimizations
+# for flag in $CFLAGS; do
+# case $flag in
+# -mfpu=neon*) echo "ac_add_options --with-fpu=neon" >> .mozconfig ;;
+# -march=armv7ve) echo "ac_add_options --with-arch=armv7ve" >> .mozconfig ;;
+# esac
+# done
+
make -f client.mk build
make -f client.mk DESTDIR=$PKG install
-
+
mkdir -p $PKG/usr/share/pixmaps
ln -s /usr/lib/firefox/browser/chrome/icons/default/default48.png $PKG/usr/share/pixmaps/firefox_default48.png
install -D -m 0644 $SRC/firefox.desktop $PKG/usr/share/applications/firefox.desktop
+ # Remove crap
+ rm $PKG/usr/lib/firefox/browser/features/{firefox@getpocket.com.xpi,webcompat@mozilla.org.xpi}
+
+ mkdir -p $PKG/etc/revdep.d
+ echo "/usr/lib/firefox" > $PKG/etc/revdep.d/firefox
}