Discussion:
How do I install a more recent version of Firfox on Slackware 14.1?
Add Reply
jjge
2018-09-05 07:52:49 UTC
Reply
Permalink
Raw Message
It sounds trivial, but somehow it does not work...

I currently have version 45.9
(mozilla-firefox-45.9.0esr-x86_64-1_slack14.1), which is very old,
although help>about Firefox tells me that it is up-to-date. Automatic
updateing is also set "ON", so it should have been updateing
automatically. But it is not: the most recent version is 61.0.2.
And upgradepkg will not accept an upgrade to version 61.

How can I upgrade nevertheless, and why does it not upgrade automatically?
Eef Hartman
2018-09-05 09:39:15 UTC
Reply
Permalink
Raw Message
Post by jjge
How can I upgrade nevertheless, and why does it not upgrade
automatically?
The answer to both is the same: your version of Slackware doesn't
support newer versions of Firefox.
You will have to update to Slackware -current to run the newest
versions of firefox and thunderbird.
Btw: they just released 62.0 and 60.2.0esr, they will appear in
-current probably this week (the esr version, Pat doesn't use "the
newest" anymore).

Remember that Slackware 14.1 now is almost 5 years old (released in
nov 2013) and 14.2 already more then 2; with firefox being updated
every 2 months or so it gets too new for the O/S libraries very soon.

That is one of the reasons Pat is using the esr releases, they get
supported at least a year longer by backporting security patches.
Eef Hartman
2018-09-05 15:31:35 UTC
Reply
Permalink
Raw Message
Post by Eef Hartman
Remember that Slackware 14.1 now is almost 5 years old (released in
nov 2013) and 14.2 already more then 2; with firefox being updated
every 2 months or so it gets too new for the O/S libraries very soon.
Also the kernel as supplied by Slackware 14.1 has been EOL since nov
2017, the only 3.xx kernel that is still being (somewhat) maintained
is 3.16 (although 3.18, which is designated as EOL too, recently did
get a newer update).
But anyway, 3.10.* ended with 3.10.108, only a minor update from the
latest supplied kernel upgrade for 14.1 (wich is .107).
jjge
2018-09-05 15:39:02 UTC
Reply
Permalink
Raw Message
Post by Eef Hartman
Post by Eef Hartman
Remember that Slackware 14.1 now is almost 5 years old (released in
nov 2013) and 14.2 already more then 2; with firefox being updated
every 2 months or so it gets too new for the O/S libraries very soon.
Also the kernel as supplied by Slackware 14.1 has been EOL since nov
2017, the only 3.xx kernel that is still being (somewhat) maintained
is 3.16 (although 3.18, which is designated as EOL too, recently did
get a newer update).
But anyway, 3.10.* ended with 3.10.108, only a minor update from the
latest supplied kernel upgrade for 14.1 (wich is .107).
OK, I see... well, I think I will retain 14.1 for a while, and wait for 15.0
Eef Hartman
2018-09-06 09:38:49 UTC
Reply
Permalink
Raw Message
Post by jjge
OK, I see... well, I think I will retain 14.1 for a while, and wait for 15.0
News: in 14.2 Pat has just provided the updated packages for firefox
60.2.0esr (and the tools to build it).
So you _could_ update to 14.2 now and get the newest mozilla (esr)
Post by jjge
Upgraded.
...
Post by jjge
Upgraded.
(from the 14.2 Change log).

Of course -current got them too, but waiting for 15.0 to be released
is going to take some while. There isn't even a BETA yet.
noel
2018-09-09 13:35:29 UTC
Reply
Permalink
Raw Message
Post by jjge
Post by Eef Hartman
Post by Eef Hartman
Remember that Slackware 14.1 now is almost 5 years old (released in
nov 2013) and 14.2 already more then 2; with firefox being updated
every 2 months or so it gets too new for the O/S libraries very soon.
Also the kernel as supplied by Slackware 14.1 has been EOL since nov
2017, the only 3.xx kernel that is still being (somewhat) maintained is
3.16 (although 3.18, which is designated as EOL too, recently did get a
newer update).
But anyway, 3.10.* ended with 3.10.108, only a minor update from the
latest supplied kernel upgrade for 14.1 (wich is .107).
OK, I see... well, I think I will retain 14.1 for a while, and wait for 15.0
or you could just download it from mozilla.org and install it? the
packages they have are binaries, and they work regardless of what version
slackware/ or any distro flavour you are running... but I'd remove the
slack package first to play it safe.
Eef Hartman
2018-09-09 14:28:01 UTC
Reply
Permalink
Raw Message
Post by noel
or you could just download it from mozilla.org and install it? the
packages they have are binaries, and they work regardless of what version
Not quite true: firefox 52esr (and probably later) is known to often
Post by noel
Tue Mar 28 20:30:50 UTC 2017
Upgraded.
Two days later
Post by noel
Rebuilt.
Recompiled without --enable-optimize to fix crashes.
and then
Post by noel
Fri Apr 21 22:40:12 UTC 2017
patches/packages/mozilla-firefox-45.9.0esr-i486-1_slack14.1.txz
Also, switching back to the 45.x ESR branch due to instabilty of
the 52.x ESR branch on Slackware 14.1.
(all quotes from the 14.1 Change log)

So the 52.x branch lasted less then a month on 14.1
(that last entry was the "upgrade" to the version which is still there
for the 14.1 releases).

B3n3d1ctus
2018-09-05 20:30:05 UTC
Reply
Permalink
Raw Message
Post by jjge
It sounds trivial, but somehow it does not work...
I currently have version 45.9
(mozilla-firefox-45.9.0esr-x86_64-1_slack14.1), which is very old,
although help>about Firefox tells me that it is up-to-date. Automatic
updateing is also set "ON", so it should have been updateing
automatically. But it is not: the most recent version is 61.0.2.
And upgradepkg will not accept an upgrade to version 61.
How can I upgrade nevertheless, and why does it not upgrade
automatically?
no idea, but you can do it by hand (i'm still running 14.1):

- download the relevant tar package
- set umask to 022
- extract the tar ball somewhere
- copy the results to /usr/lib64 as firefox-x.y.z
- make a link: ln -fs firefox-x.y.z firefox in lib64

et voila

Ben
Tuxedo
2018-09-05 20:48:42 UTC
Reply
Permalink
Raw Message
Post by jjge
It sounds trivial, but somehow it does not work...
I currently have version 45.9
(mozilla-firefox-45.9.0esr-x86_64-1_slack14.1), which is very old,
although help>about Firefox tells me that it is up-to-date. Automatic
updateing is also set "ON", so it should have been updateing
automatically. But it is not: the most recent version is 61.0.2.
And upgradepkg will not accept an upgrade to version 61.
How can I upgrade nevertheless, and why does it not upgrade automatically?
I usually run the following to create a package and thereafter do
'upgradepkg mozilla-firefox-XXX.tgz

I'm not sure if it works on 14.1 however:

#!/bin/bash
# latest-firefox Version 1.3.9

# This script will find the latest Firefox binary package, download it
# and repackage it into Slackware format.

# I don't use Firefox for regular browsing but it is handy for
# comparative tests against Vivaldi. :P

# Copyright 2016 Ruari Oedegaard, Oslo, Norway
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Check if the user asked for auto-install
if [ "$1" = "-i" -o "$1" = "--install" ]; then
if [ "$UID" = "0" ]; then
AUTO_INSTALL=Y
else
echo "You must be root to auto-install, $1 ignored!" >&2
AUTO_INSTALL=N
fi
else
AUTO_INSTALL=N
fi

# Use the architecture of the current machine or whatever the user has
# set externally
ARCH=${ARCH:-$(uname -m)}

if [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
elif [[ "$ARCH" = i?86 ]]; then
ARCH=i686
LIBDIRSUFFIX=""
else
echo "The architecture $ARCH is not supported." >&2
exit 1
fi

# Set to Y to track ESR instead of regular Firefox
FFESR=${FFESR:-N}

if [ "$FFESR" = "Y" ]; then
FFCHANNEL=esr-latest
else
FFCHANNEL=latest
fi

# This defines the language of the downloaded package
FFLANG=${FFLANG:-en-GB}

# Work out the latest stable Firefox if VERSION is unset
VERSION=${VERSION:-$(wget --spider -S --max-redirect 0
"https://download.mozilla.org/?product=firefox-${FFCHANNEL}&os=linux${LIBDIRSUFFIX}&lang=${FFLANG}"
2>&1 | sed -n '/Location: /{s|.*/firefox-\(.*\)\.tar.*|\1|p;q;}')}

# Error out if $VERISON is unset, e.g. because previous command failed
if [ -z $VERSION ]; then
echo "Could not work out the latest version; exiting" >&2
exit 1
fi

# Don't start repackaging if the same version is already installed
if /bin/ls /var/log/packages/mozilla-firefox-$VERSION-* >/dev/null 2>&1 ;
then
echo "Firefox ($VERSION) is already installed; exiting"
exit 0
fi

TMP=${TMP:-/tmp}
OUTPUT=${OUTPUT:-/tmp}
BUILD=${BUILD:-1}
TAG=${TAG:-ro}
PKGTYPE=${PKGTYPE:-tgz}
PACKAGE="$OUTPUT/mozilla-firefox-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"

# If the package was made previously, no need to make it again. ;)
if [ -e "$PACKAGE" ]; then
echo "$PACKAGE already exists; exiting"
exit 0
fi

REPACKDIR=$TMP/repackage-mozilla-firefox

# Three sources are needed, here is where to find them if they are not
# already in the directory this script was started from.
FIREFOXPKG="https://download.mozilla.org/?product=firefox-${VERSION}&os=linux${LIBDIRSUFFIX}&lang=${FFLANG}"
DESKTOPFILE=http://mirrors.slackware.com/slackware/slackware-current/source/xap/mozilla-firefox/mozilla-firefox.desktop
SCRIPT="${0##*/}"

# This function can be used in place of Slackware's makepkg, with the
# added bonus that it is able to make packages with root owned files
# even when run as a regular user.
mkpkg() {
if [ "$1" = "-n" ]; then
TAROWNER=""
shift 1
else
TAROWNER="--group 0 --owner 0"
fi
if find * -type l | grep -qm1 .; then
mkdir -p install
find * -type l -printf '( cd %h ; rm -rf %f )\n( cd %h ; ln -sf %l %f
)\n' -delete > install/symlinks
if [ -f "install/doinst.sh" ]; then
printf '\n' | cat - install/doinst.sh >> install/symlinks
fi
mv install/symlinks install/doinst.sh
fi
case "$1" in
*tbz) cmp=bzip2 ;;
*tgz) cmp=gzip ;;
*tlz) cmp=lzma ;;
*txz) cmp=xz ;;
*) echo "Unknown compression type" >&2 ; exit 1 ;;
esac
tar cvvf - . --format gnu --xform 'sx^\./\(.\)x\1x' --show-stored-names
$TAROWNER | $cmp > "$1"
echo "Slackware package \"$1\" created."
}

# Since packaging is about to begin errors become more important now,
# so exit if things fail.
set -eu

# If the repackage is already present from the past, clear it down
# and re-create it.
if [ -d "$REPACKDIR" ]; then
rm -fr "$REPACKDIR"
fi

mkdir -p "$REPACKDIR"/{pkg,src}

# Check if the current directory contains mozilla-firefox.desktop. If
# not try /usr/share/applications/, otherwise download it.
if [ -e mozilla-firefox.desktop ]; then
cp mozilla-firefox.desktop "$REPACKDIR/src/"
elif [ -e /usr/share/applications/mozilla-firefox.desktop ]; then
cp /usr/share/applications/mozilla-firefox.desktop "$REPACKDIR/src/"
else
wget -P "$REPACKDIR/src" $DESKTOPFILE
fi

# Save a copy if this script but remove execute persmissions as it will
# later be moved into the doc directory.
install -m 644 "${0}" "$REPACKDIR/src/$SCRIPT"

# Check if the current directory contains the Firefox binary package,
# otherwise download it.
if [ -e firefox-$VERSION.tar.bz2 ]; then
cp firefox-$VERSION.tar.bz2 "$REPACKDIR/src/"
else
wget -O "$REPACKDIR/src/firefox-$VERSION.tar.bz2" $FIREFOXPKG
fi

# Now we have all the sources in place, switch to the package directory
# and start setting things up.
cd "$REPACKDIR/pkg"

# Create the basic directory structure for files.
mkdir -p install
mkdir -p usr/bin
mkdir -p usr/doc/mozilla-firefox-$VERSION
mkdir -p usr/share/applications
mkdir -p usr/share/icons/hicolor/{16x16,32x32,48x48,128x128}/apps
mkdir -p usr/lib$LIBDIRSUFFIX/mozilla
mkdir -p usr/lib$LIBDIRSUFFIX/firefox-$VERSION

# Copy the desktop file in place
cp ../src/mozilla-firefox.desktop usr/share/applications/

# Copy this script into the doc directory
cp ../src/$SCRIPT usr/doc/mozilla-firefox-$VERSION/$SCRIPT

# Extract the contents of the binary Firefox package into an
# appropriately named lib directory.
tar xf ../src/firefox-$VERSION.tar.* --strip 1 -C
usr/lib$LIBDIRSUFFIX/firefox-$VERSION

# If present, move the readme or any other similar text files to the
# doc directory.
find usr/lib$LIBDIRSUFFIX/firefox-$VERSION -maxdepth 1 -iname "*.txt" -exec
mv {} usr/doc/mozilla-firefox-$VERSION/ \;

# If a plugins folder was present move it to the mozilla lib directory.
# Otherwise just create a directory in mozilla so that there is
# definately somthing to symlink to later on in the post-install.
if [ -d usr/lib$LIBDIRSUFFIX/firefox-$VERSION/plugins ]; then
mv usr/lib$LIBDIRSUFFIX/firefox-$VERSION/plugins
usr/lib$LIBDIRSUFFIX/mozilla/
else
mkdir usr/lib$LIBDIRSUFFIX/mozilla/plugins
fi

# Setup symlinks for firefox binary, plugin directory and icons.
(
cd usr/bin
ln -s ../lib$LIBDIRSUFFIX/firefox-$VERSION/firefox firefox
)
# Changes in Firefox 21 mean we need to check for the browser directory
if [ -d usr/lib$LIBDIRSUFFIX/firefox-$VERSION/browser ]; then
(
cd usr/lib$LIBDIRSUFFIX/firefox-$VERSION/browser
ln -s ../../mozilla/plugins plugins
)
else
(
cd usr/lib$LIBDIRSUFFIX/firefox-$VERSION
ln -s ../mozilla/plugins plugins
)
fi

# Changes in Firefox 21 mean we need to check for the location of icons
if /bin/ls
usr/lib$LIBDIRSUFFIX/firefox-$VERSION/chrome/icons/default/default*.png
Post by jjge
/dev/null 2>&1; then
DEFAULTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/chrome/icons/default
ALTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/icons
elif /bin/ls
usr/lib$LIBDIRSUFFIX/firefox-$VERSION/browser/chrome/icons/default/default*.png
Post by jjge
/dev/null 2>&1; then
DEFAULTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/browser/chrome/icons/default
ALTICONPATH=lib$LIBDIRSUFFIX/firefox-$VERSION/browser/icons
else
echo "Changes have been made to the internal formating of the firefox
source packaging!" >&2
exit 1
fi

(
cd usr/share/icons/hicolor/16x16/apps
ln -s ../../../../../$DEFAULTICONPATH/default16.png firefox.png
)
(
cd usr/share/icons/hicolor/32x32/apps
ln -s ../../../../../$DEFAULTICONPATH/default32.png firefox.png
)
(
cd usr/share/icons/hicolor/48x48/apps
ln -s ../../../../../$DEFAULTICONPATH/default48.png firefox.png
)
(
cd usr/share/icons/hicolor/128x128/apps
ln -s ../../../../../$ALTICONPATH/mozicon128.png firefox.png
)

# Now create the post-install to register the desktop file and icons.
cat <<EOS> install/doinst.sh
# Setup menu entries
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database -q usr/share/applications
fi
# Setup icons
touch -c usr/share/icons/hicolor
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
gtk-update-icon-cache -tq usr/share/icons/hicolor
fi
EOS

# Create a description file inside the package.
cat <<EOD> install/slack-desc
|-----handy-
ruler------------------------------------------------------|
mozilla-firefox: mozilla-firefox (Mozilla Firefox Web browser)
mozilla-firefox:
mozilla-firefox: This project is a redesign of the Mozilla browser component
written
mozilla-firefox: using the XUL user interface language. Firefox delivers
safe, easy web
mozilla-firefox: browsing.
mozilla-firefox:
mozilla-firefox: Visit the Mozilla Firefox project online:
mozilla-firefox: http://www.mozilla.org/projects/firefox/
mozilla-firefox:
mozilla-firefox:
mozilla-firefox:
EOD

# Make sure the file permissions are ok
chmod -R u+w,go+r-w,a-s .

# Create the Slackware package
mkpkg "$PACKAGE"

# Install if the user requested it
if [ $AUTO_INSTALL = "Y" ]; then
/sbin/upgradepkg --install-new "$PACKAGE"
fi
Loading...