Skip to content

Instantly share code, notes, and snippets.

@joekiller
Forked from phstc/gtk-firefox.sh
Last active October 1, 2024 21:25
Show Gist options
  • Save joekiller/4144838 to your computer and use it in GitHub Desktop.
Save joekiller/4144838 to your computer and use it in GitHub Desktop.
INSTALL FIREFOX ON AMAZON LINUX X86_64 COMPILING GTK+
#!/bin/bash
# GTK+ and Firefox for Amazon Linux
# Written by Joseph Lawson 2012-06-03
# http://joekiller.com
# http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/
# chmod 755 ./gtk-firefox.sh
# sudo ./gtk-firefox.sh
TARGET=/usr/local
function init()
{
export installroot=$TARGET/src
export workpath=$TARGET
yum --assumeyes install make libjpeg-devel libpng-devel \
libtiff-devel gcc libffi-devel gettext-devel libmpc-devel \
libstdc++46-devel xauth gcc-c++ libtool libX11-devel \
libXext-devel libXinerama-devel libXi-devel libxml2-devel \
libXrender-devel libXrandr-devel libXt dbus-glib \
libXdamage libXcomposite
mkdir -p $workpath
mkdir -p $installroot
cd $installroot
PKG_CONFIG_PATH="$workpath/lib/pkgconfig"
PATH=$workpath/bin:$PATH
export PKG_CONFIG_PATH PATH
bash -c "
cat << EOF > /etc/ld.so.conf.d/firefox.conf
$workpath/lib
$workpath/firefox
EOF
ldconfig
"
}
function finish()
{
cd $workpath
wget -r --no-parent --reject "index.html*" -nH --cut-dirs=7 http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
tar xvf firefox*
cd bin
ln -s ../firefox/firefox
ldconfig
}
function install()
{
wget $1
FILE=`basename $1`
if [ ${FILE: -3} == ".xz" ]
then tar xvfJ $FILE
else tar xvf $FILE
fi
SHORT=${FILE:0:4}*
cd $SHORT
./configure --prefix=$workpath
make
make install
ldconfig
cd ..
}
init
install ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
install http://download.savannah.gnu.org/releases/freetype/freetype-2.4.9.tar.gz
install http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.9.0.tar.gz
install http://ftp.gnome.org/pub/gnome/sources/glib/2.32/glib-2.32.3.tar.xz
install http://cairographics.org/releases/pixman-0.26.0.tar.gz
install http://cairographics.org/releases/cairo-1.12.2.tar.xz
install http://ftp.gnome.org/pub/gnome/sources/pango/1.30/pango-1.30.0.tar.xz
install http://ftp.gnome.org/pub/gnome/sources/atk/2.4/atk-2.4.0.tar.xz
install http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.1.tar.xz
install http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.10.tar.xz
finish
# adds the /usr/local/bin to your path by updating your .bashrc file.
cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
export PATH
EOF
@eprouty
Copy link

eprouty commented Nov 26, 2014

I am getting this error when I try to run this script... any ideas? The link listed to the atk package seems to still be active.

configure: error: Package requirements (glib-2.0 >= 2.27.3    atk >= 1.29.2    pango >= 1.20    cairo >= 1.6    gdk-pixbuf-2.0 >= 2.21.0) were not met:

No package 'atk' found
No package 'gdk-pixbuf-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BASE_DEPENDENCIES_CFLAGS
and BASE_DEPENDENCIES_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target `install'.  Stop.
 EOF >> ~/.bashrc
PATH=/usr/local/bin:$PATH
export PATH

@ozhogin
Copy link

ozhogin commented Jan 29, 2015

The whole setup worked perfectly for me, however after a recent update I'm getting following error on AWS EC2 Linux:
Xvfb: symbol lookup error: Xvfb: undefined symbol: pixman_glyph_cache_create
Any ideas on how to fix this?
Thank you!

@amastov
Copy link

amastov commented Feb 10, 2015

I'm getting the same error on the same environment as ozhogin. Seems to be a recent problem with xvfb.

Copy link

ghost commented Feb 10, 2015

It is trying to load wrong pixman so. Delete /usr/local/lib/libpixman-1.so.0 and try again, it will make Xvfb use distribution pixman library which has this symbol.

@jalarto
Copy link

jalarto commented Apr 17, 2015

Having the following error and can't find a way around it:

XPCOMGlueLoad error for file /usr/local/firefox/libxul.so:
libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

martinbernemann's fix yielded no success :(

@lxp149
Copy link

lxp149 commented Jun 22, 2015

Worked for me just now on an Amazon Linux ami. I needed to test out my site on the east coast from the west coast. After I installed Firefox, I did ssh -X into the ec2 instance and launched Firefox, there were a couple of warnings but basically it started up fine. Thanks for the script!

@gramanathaiah
Copy link

I have the same error as Eric Prouty. Any luck in resolving that?

configure: error: Package requirements (glib-2.0 >= 2.27.3 atk >= 1.29.2 pango >= 1.20 cairo >= 1.6 gdk-pixbuf-2.0 >= 2.21.0) were not met:

No package 'atk' found
No package 'gdk-pixbuf-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BASE_DEPENDENCIES_CFLAGS
and BASE_DEPENDENCIES_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.
EOF >> ~/.bashrc
PATH=/usr/local/bin:$PATH
export PATH

@silverprize
Copy link

@joekiller thank you very much for this script.
How to upgrade latest firefox?

@Ema-Mu
Copy link

Ema-Mu commented Jan 6, 2016

After installing on AWS EC2 Linux server using

https://ftp.mozilla.org/pub/firefox/releases/23.0.1/linux-x86_64/en-US/firefox-23.0.1.tar.bz2

I can't connect through SSL anymore i.e. I get this error after running curl -v https://www.google.com (was working fine before I run sudo ./gtk-firefox.sh, alredy tried on a new "clean" instance)
Here the verbose response

  • Rebuilt URL to: https://www.google.com/
  • Trying 216.58.210.196...
  • Connected to www.google.com (216.58.210.196) port 443 (#0)
  • Initializing NSS with certpath: sql:/etc/pki/nssdb
  • NSS error -12168 (SSL_ERROR_INVALID_VERSION_RANGE)
  • SSL version range is not valid.
  • Closing connection 0
    curl: (35) SSL version range is not valid.

I had this error also on a previous instance while installing firefox 18.

Moreover I get "No package available for libstdc++46-devel" at the beginnign of the installation.

No luck with sudo yum update.

Any clue on how to restore the right SSL version range or about what is going on?

@radusuceveanu
Copy link

The only difference is that the link for download firefox is:
http://download.cdn.mozilla.net/pub/firefox/releases/43.0/linux-x86_64/en-US/

In the rest, everything is up to date and functional

@rameshmimit
Copy link

XPCOMGlueLoad error for file /opt/firefox-38.0/libxul.so:
libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

RPM for libgtk-x11-2.0.so.0 library is gtk2-2.24.23-6.el6.i686, which is not present on Amazon Linux. Its present on CentOS base repo.

I am still not able to fix it... any help much appreciated.

@basilmusa
Copy link

Out-dated. Dont use the script, use Amazon Linux firefox-compat package instead:

Installing the EPLL yum repository:
https://lambda-linux.io/#getting-started

Installing Firefox on Amazon Linux:
https://lambda-linux.io/blog/2015/01/28/announcing-firefox-browser-support-for-amazon-linux/

@Tin-Nguyen
Copy link

any one can install libgtk-x11-2.0.so.0 in Amazon Linux yet?

@benjaminwood
Copy link

Can confirm that the firefox-compat package which @basilmusa mentioned works like a charm with the last version of 45 ESR.

However, I'm in the situation that I need a newer version of firefox (52 would be great). Has anybody had success with anything beyond 45?

@adamasantares
Copy link

--2017-10-19 05:21:35-- http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
Распознаётся download.cdn.mozilla.net (download.cdn.mozilla.net)… 52.84.23.224
Подключение к download.cdn.mozilla.net (download.cdn.mozilla.net)|52.84.23.224|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Moved Temporarily
Адрес: http://download-origin.cdn.mozilla.net/pub/firefox/releases/latest/linux-x86_64/en-US/ [переход]
--2017-10-19 05:21:35-- http://download-origin.cdn.mozilla.net/pub/firefox/releases/latest/linux-x86_64/en-US/
Распознаётся download-origin.cdn.mozilla.net (download-origin.cdn.mozilla.net)… 54.230.147.70
Подключение к download-origin.cdn.mozilla.net (download-origin.cdn.mozilla.net)|54.230.147.70|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 404 Not Found

:(

@cdove99
Copy link

cdove99 commented Jun 23, 2020

failed with error:

--2020-06-23 10:09:40--  http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
Resolving download.cdn.mozilla.net (download.cdn.mozilla.net)... 104.110.245.57, 2600:9000:21ca:a800:1d:f899:9cc6:5981, 2600:9000:21ca:ca00:1d:f899:9cc6:5981, ...
Connecting to download.cdn.mozilla.net (download.cdn.mozilla.net)|104.110.245.57|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://productdeliveryorigin-default.prod.mozaws.net/pub/firefox/releases/latest/linux-x86_64/en-US/ [following]
--2020-06-23 10:09:40--  http://productdeliveryorigin-default.prod.mozaws.net/pub/firefox/releases/latest/linux-x86_64/en-US/
Resolving productdeliveryorigin-default.prod.mozaws.net (productdeliveryorigin-default.prod.mozaws.net)... 34.195.60.137, 34.198.213.241, 34.239.61.227, ...
Connecting to productdeliveryorigin-default.prod.mozaws.net (productdeliveryorigin-default.prod.mozaws.net)|34.195.60.137|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-06-23 10:09:41 ERROR 404: Not Found.

tar: firefox*: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

@mustafacse
Copy link

mustafacse commented Aug 10, 2021

I'm also encountering the same issue, and after i installed from the latest firefox version.
I am getting this error-
firefox: symbol lookup error: /lib64/libgtk-3.so.0: undefined symbol: g_log_structured_standard

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