Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Project and Package Layout
Each project is stored in its own Git repository.
There is an optional config.yml file for each project. See Config-Files#project_config_file
There can be several packages as sub directories of the project.
For an example, see https://github.com/tpokorra/lbs-test/tree/master/test
This has a setup.sh file. It is optional, ie you can build packages without having a setup.sh.
This file is useful if you need to prepare something before the rpm or deb file is built. Eg. you might need to build a tarball first, for a nightly build directly from Git.
You should echo "LBSERROR" in case something goes wrong, and you want the build to stop.
You should echo "LBSScriptFinished" when your script is done, otherwise you might be waiting forever for the job to finish. This might be resolved in a cleaner way in the future.
See Config-Files#package_config_file. This file is optional too. It is useful to define where the source tarball comes from, if you are not building it in your setup.sh...
rpm .spec file
This file is used for building the RPM.
deb .dsc file and debian directory
These files document how a package should be built on Debian/Ubuntu
Naming convention of dsc and spec files
Please note that the name of the dsc or the spec file will determine the name of the package, not the name of the directory containing the package. Though the name of the dsc/spec file must be at the beginning of the directory name.
An example: for building LXC for Debian 7 Wheezy and Debian Sid (Unstable), I needed different debian files. So I created lxc for building on Sid, and lxc-wheezy for building on Wheezy. Both will create a package called lxc, because the .dsc files are called lxc.dsc