Build gnash on ubuntu 20.04

To play some old flash animations I need a flash player for ubuntu 20.04. I was used to use Gnash, but this is no longer shipped with ubuntu. So I tried to compile it by myself, i.e. cloned the git repository, did ./autogen.sh, ./configure and tried to install all missing libraries. That worked except for:

ERROR: GST media handling requested but gstreamer-0.10+ not found
                 Install it from http://www.gstreamer.net
                 or .deb users: apt-get install libgstreamer0.10-dev
                 or .rpm users: yum install gstreamer-devel
                 or yast users: yast install gstreamer010-devel
ERROR: Base plugins are required for gstreamer media!
       Install gstreamer-plugins-base from http://www.gstreamer.net
       or .deb users: apt-get install 
                      libgstreamer-plugins-base0.10-dev
       or .rpm users: yum install gstreamer-plugins-base-devel
ERROR: No xulrunner development package is installed!
       Install it from 
       http://releases.mozilla.org/pub/mozilla.org/xulrunner
       or .deb users: apt-get install xulrunner-dev
       or maybe     : apt-get install npapi-sdk-dev
       or maybe     : apt-get install firefox-dev
       or .rpm users: yum install xulrunner-devel
       or specify --disable-npapi

For the last one I didn’t find a xulrunner-dev or an npapi-dev package in the ubuntu repositories, but installed firefox-dev. This didn’t work, so I used --disable-npapi.

For the gstreamer plugins I installed the version 1.0 instead. But if I do make I get the following error message:


make  all-recursive
make[1]: Entering directory '/home/myuser/build/gnash'
Making all in desktop
make[2]: Entering directory '/home/myuser/build/gnash/desktop'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/myuser/build/gnash/desktop'
Making all in libdevice
make[2]: Entering directory '/home/myuser/build/gnash/libdevice'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/myuser/build/gnash/libdevice'
Making all in libbase
make[2]: Entering directory '/home/myuser/build/gnash/libbase'
sed -e 's|@DEFAULT_FLASH_PLATFORM_ID[@]|LNX|g' -e 's|@DEFAULT_FLASH_MAJOR_VERSION[@]|10|g' -e 's|@DEFAULT_FLASH_MINOR_VERSION[@]|1|g' -e 's|@DEFAULT_FLASH_REV_NUMBER[@]|999|g' -e 's|@DEFAULT_STREAMS_TIMEOUT[@]|60|g' -e 's|@DEFAULT_SOL_SAFEDIR[@]|~/.gnash/SharedObjects|g'  './gnashrc.in' >gnashrc
make[2]: Leaving directory '/home/myuser/build/gnash/libbase'
Making all in libmedia
make[2]: Entering directory '/home/myuser/build/gnash/libmedia'
  CXX      libgnashmedia_la-AudioDecoderGst.lo
In file included from gst/AudioDecoderGst.cpp:20:
gst/AudioDecoderGst.h:27:10: fatal error: gst/gst.h: No such file or directory
   27 | #include <gst/gst.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:1126: libgnashmedia_la-AudioDecoderGst.lo] Error 1
make[2]: Leaving directory '/home/myuser/build/gnash/libmedia'
make[1]: *** [Makefile:1163: all-recursive] Error 1
make[1]: Leaving directory '/home/myuser/build/gnash'
make: *** [Makefile:1071: all] Error 2

So how can I make gnash work on ubuntu 20.04.?

Answer

The compilation of Gnash on modern systems like 20.04 LTS is not possible because of changed APIs.

But you can use schroot container with Ubuntu 18.04 LTS with Gnash installed inside it as written below:

sudo apt-get install schroot debootstrap -y

cat <<EOF | sudo tee /etc/schroot/chroot.d/bionic.conf
[bionic]
description=Ubuntu 18.04 bionic
directory=/srv/chroot/bionic
root-users=$USER
type=directory
users=$USER
EOF

sudo mkdir -p /srv/chroot/bionic
sudo debootstrap bionic /srv/chroot/bionic

cat <<EOF | sudo tee /srv/chroot/bionic/etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu bionic main universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
EOF

schroot -c bionic -u root apt-get update
schroot -c bionic -u root apt-get install gnash

To run it use command below:

schroot -c bionic -u $USER env DISPLAY=:0.0 gnash path/to/file.swf

Attribution
Source : Link , Question Author : Julia , Answer Author : N0rbert

Leave a Comment