Building
From Buzztard
eracelch
Contents |
[edit] Project components
The buzztard project is hosted at sourceforge.net. There you find the project SVN repository. You can browse the repository starting with the main components. These are described on the Architecture page.
If you have any problems building the project, please let us know (mail us, talk to us on irc or submit a bug report).
[edit] Requirements
We use current development versions (0.10) of gstreamer and its plugins, but more or less recent versions should be fine too.
- gstreamer
- gst-plugins-base
- gst-plugins-good
(see git access, source tarballs). If you like to use mp3 recording you need also the gst-plugins-ugly (lame) package from gstreamer.
Further you need glib, gtk+, gnome-canvas, gnome-vfs, gconf, gsf, libxml2, librsvg, liboil. Recommended is to also have hal and dbus (needed for interaction controller support).
Building from svn also needs gtk-doc and cvs packages for the autogen.sh to work.
If you want to run the unit tests you need check.
Remember to install the -devel packages from your distribution. Otherwise the build tools can't find the packages.
[edit] Gentoo Linux
The latest GStreamer packages are in the testing branch.
emerge --oneshot -uD ...
[edit] OpenSuSE
The latest GStreamer packages can be found in e.g. the Gnome unstable repository.
zypper install gconf2-devel glib2-devel gnome-vfs2-devel gstreamer-0_10-devel gstreamer-0_10-plugins-base-devel gtk2-devel gtk-doc hal-devel libgnomecanvas-devel libgsf-devel liboil-devel librsvg-devel
[edit] Ubuntu
For ubuntu you can use this repository to get the latest gstreamer releases.
apt-get install gtk-doc-tools libgconf2-dev libglib2.0-dev libgnomecanvas2-dev libgnomevfs2-dev libgsf-1-dev libgtk2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libhal-dev liboil0.3-dev librsvg2-dev
[edit] Getting the sources
You can either download stable releases or checkout sources from SVN. If you intend to help us with bug-fixing and development go for the SVN:
svn co https://buzztard.svn.sourceforge.net/svnroot/buzztard/trunk/bml bml svn co https://buzztard.svn.sourceforge.net/svnroot/buzztard/trunk/bsl bsl svn co https://buzztard.svn.sourceforge.net/svnroot/buzztard/trunk/buzzmachines buzzmachines svn co https://buzztard.svn.sourceforge.net/svnroot/buzztard/trunk/buzztard buzztard svn co https://buzztard.svn.sourceforge.net/svnroot/buzztard/trunk/gst-buzztard gst-buzztard
[edit] Module Dependencies / Build Order
The only mandatory modules are : gst-buzztard and buzztard. bsl must be build after buzztard. The build-deps are be:
bml -> buzzmachines
(->) gst-buzztard -> buzztard -> bsl
So for a minimal set build
gst-buzztard -> buzztard
And for a full set build:
bml -> buzzmachines -> gst-buzztard -> buzztard -> bsl
[edit] Building
We supply autogen.sh scripts with each module. You need to run them after checking out the sources from SVN, to bootstrap the build setup. You can pass configure options to autogen.sh. Further it generates a autoregen.sh script, that you can use after doing SVN updates. Building is done with the usual
./configure; make; make install
command triplet. For a production install you can use
./configure; make; make install-strip
to save some disk space.
All modules support some extra configure options:
- --enable-debug: The debug build has logging enabled and uses pedandic compile options.
- --disable-deprecated: Warn if deprecated API is used (useful for developers).
- --enable-gtk-doc: Build API docs
For testing purposes all packages can be installed locally (to $HOME) by passing --prefix=$HOME/buzztard. Although in that case several environment variables need to be updated. Details can be found in this README file.
If you don't specify a prefix, be aware that installation goes to /usr/local. That means you need to run make install as root. Furthermore its likely that you have to export severla environment variables, such as
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10
in order to make the plugins installed by gst-buzztard available and
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
to make sure packages find bml, gst-buzztard and so on.
[edit] Building gst-buzztard
This package contains code that eventualy will be move to gstreamer and right now is needed to build all other buzztard-modules.
The file README describes how to install it locally.
[edit] Building buzztard
This module contains the core library and the end-user apps. The file README describes how to install it locally.
The next steps are optional and only required if you need compatibillity with the buzz software.
[edit] Building the BuzzMachine loader
This module contains the buzzmachine wrapper. The file README gives more details.
[edit] Building the BuzzSong loader
This package provides a io-plugin for importing buzz songs. The file README gives more details.
[edit] Verifying
You can run some checks to test the freshly built buzztard version. Inside most modules simply run
make check
You should see no failed tests in a release.
[edit] Troubleshooting
[edit] it does not bootsrap (autogen.sh)
Currently, for autogen.sh to run, you need:
- the gconf-dev package installed. Under fedora (core 6 and 7 at least) the package is called GConf2-devel, which might be confusing.
- gtk-doc package installed. Its sometimes called gtk-doc-tools (e.g. Ubuntu, Debian).
[edit] it does not configure
./configure: line 24188: syntax error near unexpected token `1.4' ./configure: line 24188: `GTK_DOC_CHECK(1.4)'
If you build from SVN you need to have gtk-doc installed (see previous section). It basically misses the macro defines (e.g. from m4/gtk-doc.m4) and thus leaves them in the shell script.
[edit] it does not start
Does it maybe complain about:
buzztard-edit: error while loading shared libraries: libbtcore.so.0: cannot open shared object file: No such file or directory
If so, run this as root:
ldconfig
[edit] it does not find simsyn or audiodelay
Have you maybe installed to /usr/local? The default gstreamer plugin path only covers its own install dir (e.g. /usr). Add this to your settings
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10
[edit] Building with Jhbuild
We have a Jhbuild script in our SVN system. To use the jhbuild script, you have first checkout the build-tools module from subversion:
mkdir -p ~/projects/buzztard
cd ~/projects/buzztard
svn co https://buzztard.svn.sourceforge.net/svnroot/buzztard/trunk/build-tools build-tools
Now you have to create a directory under your home:
mkdir -p ~/buzztard/jhbuild
You need to export your HOME/bin directory to your path to have jhbuild in you path:
export PATH=~/bin:$PATH
To build the complete buzztard project (the default goal in our jhbuild is buzztard-all which builds all buzztard modules) you need cvs and gtk-doc. It is ugly that autopoint needs cvs (this is hard coded in the autopoint script) also when projects like buzztard uses subversion.
If you have all requirements installed, you can run jhbuild (from anywhere):
jhbuild -f ~/projects/buzztard/build-tools/jhbuild/buzztard.jhbuildrc -m ~/projects/buzztard/build-tools/jhbuild/buzztard.modules
This will checkout all buzztard modules from svn and compiles them. After jhbuild is finished, buzztard is installed in
~/buzztard/jhbuild/install/
You can launch the composer using:
jhbuild -f ~/projects/buzztard/build-tools/jhbuild/buzztard.jhbuildrc run ~/buzztard/jhbuild/install/bin/buzztard-edit
If you want to build only one module (for example buzztard itself and not the dependend libraries) you can call
jhbuild -f ~/projects/buzztard/build-tools/jhbuild/buzztard.jhbuildrc -m ~/projects/buzztard/build-tools/jhbuild/buzztard.modules buildone buzztard
[edit] Cleaning up
Early development sometimes leaves traces. We try to collect here what can be savely removed from your system.
[edit] before 0.3
- remove share/mime-info/buzztard.{keys,mime}
[edit] before 0.4
Lots of renaming. Its turned out choosing just 'bt' was a bit blue eyed.
${prefix}/bin/bt-* -> ${prefix}/bin/buzztard-*
${prefix}/include/libbt* -> ${prefix}/include/libbuzztard-*
${prefix}/lib/libbt* -> ${prefix}/bin/libbuzztard-*
${prefix}/lib/songio -> ${prefix}/lib/buzztard-songio
${prefix}/lib/pkgconfig/libbt*.pc -> ${prefix}/lib/pkgconfig/libbuzztard-*.pc
${prefix}/share/applications/bsl.desktop -> ${prefix}/share/applications/buzztard-songio-buzz.desktop
${prefix}/share/applications/bt-edit.desktop -> ${prefix}/share/applications/buzztard-edit.desktop
${prefix}/share/gnome/help/bt-edit -> ${prefix}/share/gnome/help/buzztard-edit
$(prefix}/share/gtk-doc/html/bt-* -> $(prefix}/share/gtk-doc/html/buzztard-*
${prefix}/share/mime/packages/buzztard-bsl.xml -> ${prefix}/share/mime/packages/buzztard-songio-buzz.xml
${prefix}/share/omf/buzztard/bt-edit -> ${prefix}/share/omf/buzztard/buzztard-edit
You can try this script to remove old files.



