Skip to content

Debian Build Instructions

Antoine Delvaux edited this page Feb 24, 2020 · 5 revisions

Building Debian packages for perfSONAR

Debian packaging for perfSONAR tools is described in Debian Packaging Guidelines.

This document will describe how to actually build the packages from the code repositories. Most perfSONAR git repositories contain one Debian/Ubuntu package description. Except the pscheduler and minor-packages that contain multiple packages, each one in a sub-directory.

Building host

A standalone building host can be setup through Vagrant. The distribution repository, in the debian/ directory, contains a Vagrantfile for that purpose. To make an easy use of it, you should clone this git repository in the same directory as the other perfSONAR repository you want to build.

Let's suppose you want to build the Debian package of the perfsonar-toolkit git repository. You should then be able to do just that:

git clone git@github.com:perfsonar/toolkit.git
git clone git@github.com:perfsonar/distribution.git
cd distribution/debian
vagrant up
vagrant ssh

The building host will then contain all you need to build Debian packages out of your other local repositories.

Building a single package

There is a helper script to get you started, it is in the Vagrant host and is called ps-cowbuilder-build For example, to build the perfsonar-toolkit, after the vagrant ssh and once in the Vagrant host, you just issue:

vagrant@d9-build-ps:)~$ ./ps-cowbuilder-build -b debian/stretch/4.2.3 toolkit

That command will build the toolkit packages out of the debian/stretch/4.2.3 branch. Check the script options to see how you can build different versions of the package or to build a release package from a tag. All the Vagrant setup and the associated scripts are contained in the distribution repository.

There are 2 special repositories that need an additional variable for the build, the actual package you want to build out of these repositories, because they contain multiple packages: pscheduler and minor-packages.

After a successful build, the resulting packages will be stored in the /vagrant/result/ directory in the Vagrant host or in the ../result/ directory on your development machine.

Check the debian directory in the distribution repository for more information.

Building multiple packages

To build multiple packages, we'll prefer to use the perfSONAR Jenkins infrastructure.

The setup we have is using custom scripts coming out of the same distribution repository. The internal of this setup is similar to the use of Vagrant host here above.

Clone this wiki locally