This is a semi-random collection of posts on nearly all things Slackware and Linux-related -- at least as I see it.
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.
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:
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:
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:
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:
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.
____________________________________________
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.
- Configure with your selected switches, make, and make install the main package.
- 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
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'
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 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.
Total Comments 2
Comments
-
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
Updated 11-22-2010 at 01:13 PM by Tryum -
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
Posted 11-26-2010 at 04:30 PM by Tryum
Updated 12-04-2010 at 09:18 AM by Tryum