203 lines
7.8 KiB
Text
203 lines
7.8 KiB
Text
Newbies Tutorials
|
|
=================
|
|
|
|
This page contains some tutorials for beginners interested in Lumiera development.
|
|
|
|
|
|
Building Lumiera from source
|
|
----------------------------
|
|
Currently, after building the application, you can try out the Lumiera GUI
|
|
and you can run the testsuite.
|
|
|
|
For building Lumiera, besides the GNU C/C++ compiler (Version 4.X), you'll need:
|
|
|
|
* http://git-scm.com/[git]
|
|
* http://www.gnu.org/software/libtool/[libtool]
|
|
* http://www.boost.org/[Boost libraries]
|
|
* http://gmerlin.sourceforge.net/[GAVL library]
|
|
* *NoBug* (see below)
|
|
|
|
TIP: Generally speaking, when you want to build software, you need the _development_ version
|
|
of the packages, containing the headers and pre-built libraries to link against. Usually,
|
|
these packages are named `-devel` or `-dev`
|
|
|
|
.Notes for Ubuntu:
|
|
|
|
On Hardy you need also:
|
|
|
|
* libglade2-dev
|
|
* libgtkmm-2.4-dev
|
|
* libxv-dev
|
|
|
|
For most Debian based systems, e.g. Ubuntu Intrepid and Jaunty, you can install these dependencies with:
|
|
|
|
------------------------------------------------------------
|
|
sudo apt-get install build-essential autoconf libboost-dev libboost-program-options-dev libboost-regex-dev \
|
|
libtool libgavl-dev libglade2-dev libgdl-1-dev libgtkmm-2.4-dev libxv-dev scons valgrind librsvg2-dev git-core
|
|
------------------------------------------------------------
|
|
|
|
|
|
Build directory
|
|
~~~~~~~~~~~~~~~
|
|
You need a directory for checking out the sources and running the build. This could be a temp directory,
|
|
or some "workspace" directory below your home directory. We'll call it _workspace directory_ from now on.
|
|
|
|
Lumiera specific libraries
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Now that you have your basic build system setup, Lumiera needs a few more special support libraries.
|
|
Currently you need to build those from source and install them, so the Lumiera build process can
|
|
pick them up.
|
|
|
|
WARNING: Note that the following procedures will try to install files into your base system below `/usr/local`.
|
|
To do so, you'll need administrative permissions for the machine you're working on. These additions might interfere
|
|
with other libraries installed by your package manager (if you get into trouble updating your system later on,
|
|
sometimes you need to remove these manually built librararies).
|
|
|
|
Installing NoBug
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
*NoBug* is an instrumentation and diagnostics library. +
|
|
Go into the mentioned _workspace direcory_ (maybe create a new directory). First, let's get the NoBug source code:
|
|
|
|
------------------------------------------------------------
|
|
git clone git://git.pipapo.org/nobug
|
|
------------------------------------------------------------
|
|
This will create a (sub)directory called nobug with sourcecode in your current directory. +
|
|
Compile NoBug with the following commands
|
|
|
|
------------------------------------------------------------
|
|
cd nobug
|
|
autoreconf -i
|
|
mkdir build
|
|
cd build
|
|
../configure
|
|
make
|
|
make install
|
|
------------------------------------------------------------
|
|
|
|
Installing GDL
|
|
^^^^^^^^^^^^^^
|
|
The *GNOME Docking library* is generally available through your package manager, but
|
|
we contributed some improvements, which are only available in the very recent development
|
|
versions of GDL. Thus, for now we created a special package, which doesn't interfere with
|
|
an existing (older) installation of GDL.
|
|
|
|
Ubuntu 9.04 note: intltool-update is not patched, you must add /usr/share/intltool-debian/ to get the gdl-package to configure correctly (JSC).
|
|
|
|
------------------------------------------------------------
|
|
git clone git://git.lumiera.org/gdl-package
|
|
cd gdl-package
|
|
./configure
|
|
make
|
|
sudo make install
|
|
------------------------------------------------------------
|
|
|
|
For more detailed instructions on how to build gdl (also how to build it into a debian package) see
|
|
http://lists.lumiera.org/pipermail/lumiera/2009-April/000891.html[this message on the Lumiera Mailinglist].
|
|
|
|
|
|
check library linkage
|
|
^^^^^^^^^^^^^^^^^^^^^
|
|
The compile will warn you to add various directories to /etc/ld.so.conf and then run ldconfig. This
|
|
will allow your dynamic liker to pick up the newly built libraries later when you try to start Lumiera.
|
|
If you don't want to reconfigure your system and add `/usr/local/lib` to the mentioned linker configuration,
|
|
you may alternatively just add the directories to your LD_LIBRARY_PATH environment variable.
|
|
|
|
Either way, check that all libraries are accessible and ok:
|
|
|
|
------------------------------------------------------------
|
|
sudo ldconfig -v | grep 'gdl-lum\|nobug'
|
|
------------------------------------------------------------
|
|
|
|
and you should get a list of the libraries, part of which should look like this:
|
|
|
|
------------------------------------------------------------
|
|
libnobug.so.0 -> /usr/local/lib/libnobug.so.0.0.0
|
|
libnobugmt.so.0 -> /usr/local/lib/libnobugmt.so.0.0.0
|
|
libgdl-lum.so.0 -> /usr/local/lib/libgdl-lum.so.0.0.0
|
|
------------------------------------------------------------
|
|
|
|
or similar. If any if this libs are not listed, investigate why before continuing.
|
|
|
|
|
|
Building Lumiera
|
|
~~~~~~~~~~~~~~~~
|
|
Lumiera has two maintained (and equivalent) build systems: *scons* and *autotools*. You can pick the one you
|
|
feel more comfortable with.
|
|
|
|
When trying to build a development version of Lumiera, it might well be that at times one of the builds doesn't work temporarily. It is always a good idea to check the current build stats from our *builddrone*, which automatically builds the latest version from master repository. +
|
|
Please have a look at this http://lumiera.org/builddrone/table.html[current build stats]-page.
|
|
|
|
Next, after having built and installed the prerequisite libraries, go into the _workspace directory_ to retrieve the Lumiera source code and build it.
|
|
|
|
|
|
* to retrieve the sourcecode with git and then build with *scons*:
|
|
+
|
|
(see available build options by issuing `scons -h` )
|
|
+
|
|
-----------------
|
|
git clone git://git.lumiera.org/LUMIERA
|
|
cd LUMIERA
|
|
scons
|
|
-----------------
|
|
+
|
|
|
|
* alternatively, if you prefer building with *autotools*:
|
|
+
|
|
-----------------
|
|
git clone git://git.lumiera.org/LUMIERA
|
|
cd LUMIERA
|
|
autoreconf -fi
|
|
mkdir build
|
|
cd build
|
|
../configure
|
|
make
|
|
-----------------
|
|
|
|
maybe build and run the testsuite by issuing `scons check` or `make check`
|
|
|
|
This will take some time.
|
|
|
|
NOTE: you can't _install_ Lumiera currently. Don't try it, it won't work.
|
|
Just run it from the build directory.
|
|
|
|
After the build has finished successfully, you should be able to start Lumiera.
|
|
Currently, this will bring up the GUI, without any further functionality
|
|
|
|
* for autotools build: issue `./lumiera` (from within the `build` subdirectory)
|
|
* for scons build:
|
|
+
|
|
-------------------
|
|
cd bin
|
|
./lumiera
|
|
-------------------
|
|
|
|
you should see something like (screenshot from 1/2009):
|
|
|
|
image:http://www.pipapo.org/pipawiki/Lumiera/GuiBrainstorming?action=AttachFile&do=get&target=screenshot090124-resources.jpg[]
|
|
|
|
|
|
|
|
Contributing
|
|
------------
|
|
|
|
Nothing is easier, follow the http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html[the basic instructions],
|
|
notably the following parts:
|
|
------------------------------------------------------------
|
|
$ git config --global user.name "Your Name Comes Here"
|
|
$ git config --global user.email you@yourdomain.example.com
|
|
------------------------------------------------------------
|
|
|
|
|
|
Then you are ready to go, you can edit and commit the lumiera code locally in your cloned repository. Please do small commits which fix/improve only one single thing and use meaningful commit messages.
|
|
|
|
Check that you didn't break anything, by running the testsuite (see above)
|
|
|
|
Finally you can push your changes to the lumiera server to the 'mob' repository:
|
|
|
|
------------------------------------------------------------
|
|
$ git push git://git.lumiera.org/lumiera/mob master:refs/heads/YOURNAME
|
|
------------------------------------------------------------
|
|
This creates a new branch 'YOURNAME' on the mob repository. Then you notify the other devs on the mailinglist and they may merge your code into the mainline.
|
|
|
|
|