diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2013-11-04 17:08:47 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 22:57:36 +0200 |
commit | 76fc4757ac91ac7947a01fb7b53dddf9a78a01d1 (patch) | |
tree | 9b98e6e193c7870cb27ac861394c1c4592850922 /source/xap/mozilla-firefox/mozilla-firefox.SlackBuild | |
parent | 9664bee729d487bcc0a0bc35859f8e13d5421c75 (diff) | |
download | current-76fc4757ac91ac7947a01fb7b53dddf9a78a01d1.tar.gz current-76fc4757ac91ac7947a01fb7b53dddf9a78a01d1.tar.xz |
Slackware 14.1slackware-14.1
Mon Nov 4 17:08:47 UTC 2013
Slackware 14.1 x86_64 stable is released!
It's been another interesting release cycle here at Slackware bringing
new features like support for UEFI machines, updated compilers and
development tools, the switch from MySQL to MariaDB, and many more
improvements throughout the system. Thanks to the team, the upstream
developers, the dedicated Slackware community, and everyone else who
pitched in to help make this release a reality.
The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware
project by picking up a copy from store.slackware.com. We're taking
pre-orders now, and offer a discount if you sign up for a subscription.
Have fun! :-)
Diffstat (limited to 'source/xap/mozilla-firefox/mozilla-firefox.SlackBuild')
-rwxr-xr-x | source/xap/mozilla-firefox/mozilla-firefox.SlackBuild | 191 |
1 files changed, 142 insertions, 49 deletions
diff --git a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild index a6f6c65c5..78f826750 100755 --- a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild +++ b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -25,22 +25,20 @@ VERSION=$(basename $(ls firefox-*.tar.bz2 | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source) RELEASEVER=$(echo $VERSION | cut -f 1 -d r | cut -f 1 -d b) +# With esr releases we need to fix this +if [ "${RELEASEVER}r" = "$VERSION" ]; then + RELEASEVER=$(echo $RELEASEVER | cut -f 1 -d e) + RELEASEVERMAJ=$(echo $RELEASEVER | cut -f 1 -d .) +fi BUILD=${BUILD:-1} -CWD=$(pwd) -TMP=${TMP:-/tmp} -PKG=$TMP/package-mozilla-firefox - -# Figure out if this is a beta, or a release: -if echo $VERSION | grep -q b ; then # we think it is a beta - if bzgrep -q mozilla-beta/ $CWD/firefox-$VERSION.source.tar.bz2 ; then - MOZVERS=${MOZVERS:-beta} - else # blindly assume it is a release - MOZVERS=${MOZVERS:-release} - fi -else # release, no "b" in the tarball version: - MOZVERS=${MOZVERS:-release} -fi +# Specify this variable for a localized build. +# For example, to build a version of Firefox with Italian support, run +# the build script like this: +# +# MOZLOCALIZE=it ./mozilla-firefox.SlackBuild +# +MOZLOCALIZE=${MOZLOCALIZE:-} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -52,6 +50,33 @@ if [ -z "$ARCH" ]; then esac fi +# Use PGO? Doubles the time and drive space requirements for the build, +# but should provide a performance increase. How much depends on which +# benchmarks you believe, but I've typically seen around 2.5%. I've also +# seen some which say it can be negligably (a fraction of a percent) slower +# with this enganged. The anecdotal reports usually say there's a noticable +# improvement in overall responsiveness. Seems like a good bet if you have +# the time and your system is able to handle it. Set the variable to +# anything else prior to the build to compile Firefox in less time (but +# without the possible benefits of Profile-Guided Optimization). +# +# NOTE: The 23.0 release fails to compile with a GLib assert error if PGO +# is enabled, so it is being disabled by default. I can't say I ever noticed +# a lot of difference with this anyway (other than a much, much longer compile +# time. But pass PGO=yes to the SlackBuild if you want to try it. +#if [ "$ARCH" = "x86_64" ]; then +# PGO=${PGO:-yes} +#else +# # 32-bit systems have problems compiling with PGO, as the per-process +# # memory requirements are too large. Possibly compiling with a 64-bit +# # kernel could be a workaround for this, but for now we will default to +# # using PGO only for x86_64. +# PGO=${PGO:-no} +#fi +# +# PGO is disabled by default: +PGO=${PGO:-no} + # Try to be gentle to the compiler, no optimizations: if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O" @@ -70,6 +95,23 @@ elif [ "$ARCH" = "armel" ]; then LIBDIRSUFFIX="" fi +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mozilla-firefox + +# If not specified, figure out if this is a beta, an esr +# or a release (we start assuming this last): +MOZVERS=${MOZVERS:-release} +if echo $VERSION | grep -q b ; then # we think it is a beta + if bzgrep -q ^mozilla-beta/ $CWD/firefox-$VERSION.source.tar.bz2 ; then + MOZVERS=beta + fi +elif echo $VERSION | grep -q esr ; then # we think it is an esr + if bzgrep -q ^mozilla-esr$RELEASEVERMAJ/ $CWD/firefox-$VERSION.source.tar.bz2 ; then + MOZVERS=esr$RELEASEVERMAJ + fi +fi + NUMJOBS=${NUMJOBS:-" -j7 "} rm -rf $PKG @@ -80,6 +122,16 @@ rm -rf mozilla-$MOZVERS tar xvf $CWD/firefox-$VERSION.source.tar.bz2 || exit 1 cd mozilla-$MOZVERS || exit 1 +# Fetch localization, if requested: +if [ ! -z $MOZLOCALIZE ]; then + LOC_TAG="FIREFOX_$( echo $VERSION | tr \. _ )_RELEASE" + rm -f $LOC_TAG.tar.bz2 + if echo $MOZVERS | grep -q esr ; then LOC_VERS=release ; else LOC_VERS=$MOZVERS ; fi + wget https://hg.mozilla.org/releases/l10n/mozilla-$LOC_VERS/$MOZLOCALIZE/archive/$LOC_TAG.tar.bz2 + tar xvf $LOC_TAG.tar.bz2 + mv $MOZLOCALIZE-$LOC_TAG $MOZLOCALIZE +fi + # Fix a long standing bug that's prevented staying current on GTK+. # Thanks to the BLFS folks. :-) cat << EOF >> layout/build/Makefile.in @@ -111,18 +163,8 @@ if gcc --version | grep -q "gcc (GCC) 4.7.0" ; then sed -i 's# ""##' browser/base/Makefile.in fi -# Mozilla devs enforce using an objdir for building -# and launching configure with the absolute path -# https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_objdir -mkdir obj -cd obj -export MOZILLA_OFFICIAL="1" && -export BUILD_OFFICIAL="1" && -export MOZ_PHOENIX="1" && -export CFLAGS="$SLKCFLAGS" && -export CXXFLAGS="$SLKCFLAGS" && -export MOZ_MAKE_FLAGS="$NUMJOBS" && -$TMP/mozilla-$MOZVERS/configure \ +# Our building options, in a configure-like display ;) +OPTIONS="\ --enable-official-branding \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ @@ -143,29 +185,75 @@ $TMP/mozilla-$MOZVERS/configure \ --enable-strip \ --enable-cpp-rtti \ --enable-single-profile \ + --disable-gnomevfs \ --disable-ldap \ --disable-accessibility \ --disable-crashreporter \ --disable-debug \ - --disable-tests \ --disable-pedantic \ --disable-installer \ --disable-mailnews \ --disable-composer \ - --disable-profilesharing - # Complains about missing APNG support in Slackware's libpng: - #--with-system-png \ - + --disable-profilesharing" +# Complains about missing APNG support in Slackware's libpng: +# --with-system-png \ # This option breaks mozilla-12.0: # --enable-system-cairo \ -# +if [ ! -z $MOZLOCALIZE ]; then + OPTIONS=$OPTIONS" \ + --enable-ui-locale=$MOZLOCALIZE + --with-l10n-base=.." + # There's no dictionaries in localized builds + sed -i "/@BINPATH@\/dictionaries\/\*/d" browser/installer/package-manifest.in || exit 1 +fi + +export MOZILLA_OFFICIAL="1" +export BUILD_OFFICIAL="1" +export MOZ_PHOENIX="1" +export MOZ_PACKAGE_JSSHELL="1" +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +export MOZ_MAKE_FLAGS="$NUMJOBS" + +# Clear some variables that could break the build +unset DBUS_SESSION_BUS_ADDRESS ORBIT_SOCKETDIR SESSION_MANAGER \ + XDG_SESSION_COOKIE XAUTHORITY MAKEFLAGS + +# Assemble our .mozconfig, we use this method for building, seems +# needed for PGO. +echo ". \$topsrcdir/browser/config/mozconfig" > .mozconfig + +# Mozilla devs enforce using an objdir for building +# https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_objdir +mkdir obj +echo "mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj" >> .mozconfig + +if [ "$MOZLOCALIZE" ]; then + echo "mk_add_options MOZ_CO_LOCALES=\"$MOZLOCALIZE\"" >> .mozconfig +fi + +# Write in it the options above +for option in $OPTIONS; do echo "ac_add_options $option" >> .mozconfig; done -#make -f client.mk build MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1 -make MOZ_MAKE_FLAGS="$NUMJOBS" $NUMJOBS || exit 1 -make install DESTDIR=$PKG || exit 1 +# https://developer.mozilla.org/en-US/docs/Building_with_Profile-Guided_Optimization +# Thanks to ArchLinux and Gentoo for the additional hints. +if [ "$PGO" = "yes" ]; then + # Do a PGO build, double time and disk space but worth it. + export MOZ_PGO=1 + echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> .mozconfig + export DISPLAY=:99 + # Launch Xvfb to let the profile scripts run in a X session. + # Ugly note: if the build breaks you may want to do a "killall Xvfb". + Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY & + dbus-launch --exit-with-session make -f client.mk build || exit 1 + kill $! || true +else + # Do a normal build + echo "ac_add_options --disable-tests" >> .mozconfig + make -f client.mk build || exit 1 +fi -# Exit obj directory: -cd .. +make -f client.mk install DESTDIR=$PKG || exit 1 # We don't need these (just symlinks anyway): rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$RELEASEVER @@ -190,8 +278,6 @@ rm -rf $PKG/usr/include mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins mkdir -p $PKG/usr/share/applications cat $CWD/mozilla-firefox.desktop > $PKG/usr/share/applications/mozilla-firefox.desktop -mkdir -p $PKG/usr/share/pixmaps -cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png # These files/directories are usually created if Firefox is run as root, # which on many systems might (and possibly should) be never. Therefore, if we @@ -208,14 +294,17 @@ cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png ) # Need some default icons in the right place: -mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/chrome/icons/default -install -m 644 other-licenses/branding/firefox/default16.png \ - $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/icons/ -install -m 644 other-licenses/branding/firefox/default16.png \ - $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/chrome/icons/default/ -( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER - install -m 644 icons/{default,mozicon50}.xpm chrome/icons/default/ -) +for i in 16 22 24 32 48 256; do + install -m 0644 -D browser/branding/official/default${i}.png \ + $PKG/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png +done +mkdir -p $PKG/usr/share/pixmaps +( cd $PKG/usr/share/pixmaps ; ln -sf /usr/share/icons/hicolor/256x256/apps/firefox.png . ) +mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/firefox-$RELEASEVER/chrome/icons/default +install -m 644 browser/branding/official/default16.png \ + $PKG/usr/lib$LIBDIRSUFFIX/firefox-$RELEASEVER/icons/ +install -m 644 browser/branding/official/default16.png \ + $PKG/usr/lib$LIBDIRSUFFIX/firefox-$RELEASEVER/chrome/icons/default/ # Copy over the LICENSE install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/ @@ -224,5 +313,9 @@ mkdir $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG -/sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-$BUILD.txz +if [ -z $MOZLOCALIZE ]; then + /sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-$BUILD.txz +else + /sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-${BUILD}_$MOZLOCALIZE.txz +fi |