Skip to content

Instantly share code, notes, and snippets.

@rubo77
Last active February 22, 2024 06:46
Show Gist options
  • Star 20 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save rubo77/b999c1bc6d10ab802536 to your computer and use it in GitHub Desktop.
Save rubo77/b999c1bc6d10ab802536 to your computer and use it in GitHub Desktop.
a script that downloads a certain Firefox or Thunderbird version and installs it in an extra folder to create an independent and portable App for Linux. source: http://portableapps.com/node/16344
#!/bin/sh
# Configure the following default variables according to your requirements
language="en-US" # e.g. "de" or "en-US"
if [ ! "$1" ]; then
# default if no argument is set:
version="95.0" # chose from http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/
application="firefox" # "thunderbird" or "firefox" but file extension, archive extraction, and binary
fi
if [ "$1" = "--help" ] || [ "$1" = "-h" ] ; then
echo 'Usage: $0 [application] [version]'
echo
echo Usage:
echo " for example"
echo " $0 mozilla 68.5.0esr"
echo ' -h --help display this help'
exit 0
fi
if [ "$1" ] ; then
application="$1"
fi
if [ "$2" ] ; then
version="$2"
fi
echo result $0 $application $version
echo "This script downloads
--
$application Version $version
--
If you want to install another version press Ctrl+C and call this program with other options, for
example: $0 $application 68.5.0esr"
echo
dir="$application-portable-$version"
if [ -d "$dir" ]; then
echo "the folder $dir already exists, exiting"
exit 0
fi
read -n1 -r -p "Press space to continue..." key
file="$application-$version.tar.bz2"
#for 32bit use the first line instead:
#url="http://download-origin.cdn.mozilla.net/pub/$application/releases/$version/linux-i686/$language/$file"
url="http://download-origin.cdn.mozilla.net/pub/$application/releases/$version/linux-x86_64/$language/$file"
# or example for firefox nightly:
#file=firefox-32.0a2.en-US.linux-i686.tar.bz2
#url=http://download.cdn.mozilla.net/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/$file
mkdir "$dir"
cd "$dir"
wget $url -O $file
echo "Extracting archive, please wait..."
tar xfj $file
rm $file
mv $application app
mkdir data
echo '#!/bin/sh' > "${application}-portable"
echo 'dir=${0%/*}' >> "${application}-portable"
echo 'if [ "$dir" = "$0" ]; then' >> "${application}-portable"
echo ' dir="."' >> "${application}-portable"
echo 'fi' >> "${application}-portable"
echo 'cd "$dir/app"' >> "${application}-portable"
echo './firefox --no-remote -profile ../data' >> "${application}-portable"
chmod +x "$application-portable"
echo ... finished
cat <<EOM
... finished
"#close all running instances of another $application version:"
killall $application
"#change into the directory"
"# and start the application there"
cd "$dir"
./"$application-portable"
EOM
@rubo77
Copy link
Author

rubo77 commented Jun 17, 2014

also http://ftp.mozilla.org/pub/ could be used instead

@pdebski
Copy link

pdebski commented Dec 27, 2017

Looks like the download URL once again changed as described here:

http://ftp.mozilla.org/pub/thunderbird/releases/latest/README.txt

`
Please use download.mozilla.org to retrieve the latest Thunderbird release.

For example, if you wish to download the US English installer for Windows (32bit)
the url is
https://download.mozilla.org/?product=thunderbird-latest&os=win&lang=en-US

This could be pasted into the location bar of a browser, or used with curl or wget, e.g.
wget -O ThunderbirdSetup.exe "https://download.mozilla.org/?product=thunderbird-latest&os=win&lang=en-US"

For other operating systems replace 'os=win' with:
OS X os=osx
Linux x86_64 os=linux64
Linux i686 os=linux

For other languages replace 'lang=en-US' with:
Albanian lang=sq
Arabic lang=ar
Armenian lang=hy-AM
Asturian lang=ast
Basque lang=eu
Belarusian lang=be
Bengali (Bangladesh) lang=bn-BD
Breton lang=br
Bulgarian lang=bg
Catalan lang=ca
Chinese (Simplified) lang=zh-CN
Chinese (Traditional) lang=zh-TW
Croatian lang=hr
Czech lang=cs
Danish lang=da
Dutch lang=nl
English (British) lang=en-GB
Estonian lang=et
Finnish lang=fi
French lang=fr
Frisian lang=fy-NL
Gaelic (Scotland) lang=gd
Galician lang=gl
German lang=de
Greek lang=el
Hebrew lang=he
Hungarian lang=hu
Icelandic lang=is
Indonesian lang=id
Irish lang=ga-IE
Italian lang=it
Korean lang=ko
Lithuanian lang=lt
Lower Sorbian lang=dsb
Norwegian (Bokmål) lang=nb-NO
Norwegian (Nynorsk) lang=nn-NO
Polish lang=pl
Portuguese (Brazilian) lang=pt-BR
Portuguese (Portugal) lang=pt-PT
Punjabi (India) lang=pa-IN
Romanian lang=ro
Romansh lang=rm
Russian lang=ru
Serbian lang=sr
Sinhala lang=si
Slovak lang=sk
Slovenian lang=sl
Spanish (Argentina) lang=es-AR
Spanish (Spain) lang=es-ES
Swedish lang=sv-SE
Tamil (Sri Lanka) lang=ta-LK
Turkish lang=tr
Ukrainian lang=uk
Upper Sorbian lang=hsb
Vietnamese lang=vi
Welsh lang=cy

Mozilla Release Engineering
Email: release-engineering@lists.mozilla.org
Web: https://groups.google.com/forum/#!forum/mozilla.release.engineering
`

@pablorocka
Copy link

Thanks! very useful!!

One suggestion is to add --no-remote in the firefox command, so that you can run a separate instance if you are already running another version of firefox. so line 63 would be like this:

echo './firefox --no-remote -profile ../data' >> "${application}-portable"

@NemchinovSergey
Copy link

@rubo77
Copy link
Author

rubo77 commented Mar 2, 2020

I added --no-remote and also updated the script to use 64 bit and the latest firefox version by default.

@sxiii
Copy link

sxiii commented Mar 21, 2020

Hi @rubo77. Thanks for the script. I'm trying to download FF version around 3. Tried with 3.0, 3.5.1, 3.6; always get downloading errors like this:

Connecting to download.cdn.mozilla.net (download.cdn.mozilla.net)|23.209.86.45|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-03-21 12:07:27 ERROR 404: Not Found.

Extracting archive, please wait...
tar (child): 3.6-.tar.bz2: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
rm: cannot remove '3.6-.tar.bz2': No such file or directory
mv: cannot stat '3.6': No such file or directory

UPD: Answering myself. Have to fix URL to this for older versions:

url="http://download.cdn.mozilla.net/pub/$application/releases/$version/linux-x86_64/$language/$file"

@pablitar
Copy link

This is awesome!

One quick suggestion:
add echo 'user_pref("app.update.auto", false);' >> data/user.js; on line 58 to disable auto updates.

Thanks!

@rubo77
Copy link
Author

rubo77 commented Dec 16, 2021

@sxiii I updated the gist with the new url

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment