LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Blogs > The Slacker's Blog
User Name
Password

Notices


This is a semi-random collection of posts on nearly all things Slackware and Linux-related -- at least as I see it.
Rate this Entry

First post: building Gnash on Slackware with src2pkg

Posted 07-09-2009 at 10:17 AM by Lufbery

I didn't realize I had an LQ for a long time. For a longer time, I didn't think I had much to post. However, I've been thinking that I need a place to keep a bunch of technical stuff I've worked out over time with help from the friendly people at LQ.

____________________________________________

In the past day or so, I've been working to build Gnash for Slackware 12.2 to evaluate it as an alternative to the Adobe Flash player. Below are my results so far:

Gnash is a package you have to build twice. Those instructions were not quite explicit in the README, but are better explained on the wiki for the project.

Briefly, this is what it takes.
  1. Configure with your selected switches, make, and make install the main package.
  2. Then configure with again, with a slight change, make, and make install-plugins to build the plugins package with the pieces installed in the right place.

If you don't build and install the main package first, the plugins probably won't build and install correctly.

Since I want to create Slackware packages with src2pkg for this software (instead of just using ./configure && make && make install), here's what I did.

To review, here’s what’s needed to build Gnash. All of these are available from Slackbuilds.org, except for Gnash:
  • gst-ffmpeg (Gstreamer ffmpeg plugin) or
  • ffmpeg, which requires:
    • lame
    • faac
    • faad2
    • speex
    • xvidcore
    • schroedinger
    • openjpeg and
    • x264, which requires:
      • yasm
  • libxml2 (included in Slackware 12.2)
  • libpng (included in Slackware 12.2)
  • libjpeg (included in Slackware 12.2)
  • Boost
  • gtkglext (if you want to use gtk)
  • agg (if you want to use the AGG renderer)

There's no particular build order, but build the dependencies' dependencies first. That is, build yasm before x264, and build x264 before ffmpeg.

Get Gnash from here: http://www.gnu.org/software/gnash/

Making the full package with src2pkg

I downloaded the gnash source into a folder. As root, within that folder, I ran the following command:

Code:
src2pkg -A -C -VV -W -e='--enable-gui=gtk --enable-renderer=opengl --enable-media=ffmpeg' -i='make install' gnash-0.8.5.tar.gz
See the src2pkg documentation to explain the switches and the gnash README to explain the --enable switches. The important thing is that I chose the GUI, renderer, and media code base and instructed src2pkg to make a configuration "auto" script if the package successfully builds.

The package build successfully and I installed it.

Making the plugins package with src2pkg
The plugins really do seem to require a separate make and make install step after the main package has been installed.

I copied the gnash folder I created to a new folder called gnash_plugins. The contents are just the source tarball and the src2pkg .auto script.

I modified the .auto script with the correct switches to make the plugins. The important parts of the script are:

Code:
#!/bin/bash
## src2pkg script for:  gnash
## Auto-generated by src2pkg-1.9.8
## src2pkg - Copyright 2005-2009 Gilbert Ashley <amigo@ibilio.org>

SOURCE_NAME='gnash-0.8.5.tar.gz'
NAME='gnash'   # Use ALT_NAME to override guessed value
ALT_NAME='gnash_plugin'
VERSION='0.8.5'   # Use ALT_VERSION to override guessed value
# ARCH=''
BUILD='1'
PRE_FIX='usr'
# Any extra options go here:
EXTRA_CONFIGS="--enable-gui=gtk --enable-renderer=opengl --enable-media=ffmpeg --with-plugins-install=system"
INSTALL_LINE='make install-plugins'
Please note the "ALT NAME" which makes the package name include "gnash_plugin" to differentiate it from the standard package.

Note the extra configs of "--with-plugins-install=system" which makes the plugins available to all users.

Finally, the install line is now "make install-plugins".

To build the package, I just ran:

Code:
src2pkg -C -VV -W -X
The -X switch runs the .auto script.

The package built successfully and I installed it.

My testing so far indicates that the package and plugins work.

However, they don't render very well at all. I'm going to recompile using the AGG renderer and see if it helps.
Posted in Uncategorized
Views 4750 Comments 2
« Prev     Main     Next »
Total Comments 2

Comments

  1. Old Comment
    I would like to know if it is possible to build a smaller package of Boost (with the SlackBuild script) by including only the libraries that are really needed (e.g. like Halite BitTorrent Client)?
    Posted 11-22-2010 at 05:58 AM by Tryum Tryum is offline
    Updated 11-22-2010 at 01:13 PM by Tryum
  2. Old Comment
    for example: http://koji.fedoraproject.org/koji/b...buildID=191393

    Code:
    boost-date-time.i686 : Runtime component of boost date-time library
    boost-date-time.x86_64 : Runtime component of boost date-time library
    boost-devel.i686 : The Boost C++ headers and shared development libraries
    boost-devel.x86_64 : The Boost C++ headers and shared development libraries
    boost-doc.noarch : HTML documentation for the Boost C++ libraries
    boost-filesystem.i686 : Runtime component of boost filesystem library
    boost-filesystem.x86_64 : Runtime component of boost filesystem library
    boost-iostreams.i686 : Runtime component of boost iostreams library
    boost-iostreams.x86_64 : Runtime component of boost iostreams library
    boost-math.x86_64 : Stub that used to contain boost math library
    boost-mpich2.i686 : Runtime component of Boost.MPI library
    boost-mpich2.x86_64 : Runtime component of Boost.MPI library
    boost-mpich2-devel.i686 : Shared library symlinks for Boost.MPI
    boost-mpich2-devel.x86_64 : Shared library symlinks for Boost.MPI
    boost-mpich2-python.i686 : Python runtime component of Boost.MPI library
    boost-mpich2-python.x86_64 : Python runtime component of Boost.MPI library
    boost-openmpi.x86_64 : Runtime component of Boost.MPI library
    boost-openmpi-devel.i686 : Shared library symlinks for Boost.MPI
    boost-openmpi-devel.x86_64 : Shared library symlinks for Boost.MPI
    boost-openmpi-python.x86_64 : Python runtime component of Boost.MPI library
    boost-program-options.i686 : Runtime component of boost program_options library
    boost-program-options.x86_64 : Runtime component of boost program_options
                                 : library
    boost-python.i686 : Runtime component of boost python library
    boost-python.x86_64 : Runtime component of boost python library
    boost-regex.i686 : Runtime component of boost regular expression library
    boost-regex.x86_64 : Runtime component of boost regular expression library
    boost-static.x86_64 : The Boost C++ static development libraries
    boost-system.i686 : Runtime component of boost system support library
    boost-system.x86_64 : Runtime component of boost system support library
    boost-thread.i686 : Runtime component of boost thread library
    boost-thread.x86_64 : Runtime component of boost thread library
    boost-wave.i686 : Runtime component of boost C99/C++ preprocessing library
    boost-wave.x86_64 : Runtime component of boost C99/C++ preprocessing library
    mingw32-boost.noarch : MinGW Windows port of Boost C++ Libraries
    mingw32-boost-static.noarch : Static version of the MinGW Windows Boost C++
                                : library
    boost.x86_64 : The free peer-reviewed portable C++ source libraries
    boost-graph.i686 : Runtime component of boost graph library
    boost-graph.x86_64 : Runtime component of boost graph library
    boost-graph-mpich2.i686 : Runtime component of parallel boost graph library
    boost-graph-mpich2.x86_64 : Runtime component of parallel boost graph library
    boost-graph-openmpi.x86_64 : Runtime component of parallel boost graph library
    boost-serialization.i686 : Runtime component of boost serialization library
    boost-serialization.x86_64 : Runtime component of boost serialization library
    boost-signals.i686 : Runtime component of boost signals and slots library
    boost-signals.x86_64 : Runtime component of boost signals and slots library
    boost-test.i686 : Runtime component of boost test library
    boost-test.x86_64 : Runtime component of boost test library
    Honestly, I do not need 60 megabytes of the complete boost library, I just need the relevant parts for Gnash.
    Posted 11-26-2010 at 04:30 PM by Tryum Tryum is offline
    Updated 12-04-2010 at 09:18 AM by Tryum
 

  



All times are GMT -5. The time now is 11:38 PM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration