There is a new release of the LightBuildServer, available at https://github.com/SolidCharity/LightBuildServer/releases

This has now support for copr!

Copr is a build service for Fedora and Epel packages: See for example my copr Kolab_16 that I have built with LBS: https://copr.fedorainfracloud.org/coprs/tpokorra/Kolab_16/

Copr is good for building single packages, but if you paste multiple packages, it does not care about build dependencies between the packages. This is where the LightBuildServer comes in, and orders copr to build the packages in the right order, and waits for packages to finish building if they are required by the next package.

The advantage of this is that you can build packages in parallel (defined by maxinstances, be nice!), and the copr build machines are quite fast! And the repository is served by copr, so less traffic for your server! And people can even more trust a copr repo, because you cannot do any magic and modify builds etc.

So how to use it? You need to get an API token from https://copr.fedorainfracloud.org/api/, and paste that into a file /etc/lightbuildserver/container/<yourusername>/<yourprojectname>/copr.

You also need to define a static build machine with type “copr”, like this in your /etc/lightbuildserver/config.yml:

       copr.fedorainfracloud.org:
           type: copr
           enabled: True
           maxinstances: 4
           static: True

Then you can refer that machine from your project, also in the file config.yml:

      :
          Machine: copr.fedorainfracloud.org
          CoprUserName: ""
          CoprProjectName: ""
Tags: , ,
Posted in Software Development | Comments Closed

First I want to say that I am glad that there is https://obs.kolabsys.com, the OBS instance maintained and sponsored by Kolab Systems. Jeroen put a lot of work into making that system work.

Unfortunately, it seems Jeroen is the only one maintaining it. And that is not a healthy situation, in several regards:

On Wednesday, we have seen OBS hang, and Jeroen had to restart it during his holidays. At least that is what I suspect, there has not been any response on the mailing list or IRC to our questions about the downtime. That is not right for any employee to have to do such tasks during his well deserved holidays.

The other point is updating the operating systems: CentOS 7.2 is out, and the current installation of Kolab on CentOS7 does not work, due to incompatibilities with newer CentOS 7.2 packages. The libcalendaring package would need a rebuild against CentOS 7.2. See for details: http://lists.kolab.org/pipermail/users/2015-December/020317.html

I see several options:

  • Kolab Systems hires more Sysadmin engineers to maintain the growing complexity of servers and build infrastructure.
  • Or trusted members of the community get permission to add new operating systems to OBS, and to restart the server. On the other hand, that is a complex installation, and with enterprise customers also using the Kolab Systems OBS, I don’t think that is a valid alternative
  • I am developing my own LightBuildServer (aka LBS), which could allow everyone to easily install his own building environment for various Operating Systems. I am building Kolab packages on LBS, even some private packages for use at TBits.net patched with our (public) ISP extensions for Kolab. But again this is risky, as long I am the only one developing it.
  • At least for CentOS/Fedora, we could use the Fedora infrastructure provided by RedHat. That gives us the benefit of quick availability of the latest releases of the OS, and that it is maintained and used by many people. It is possible to duplicate a Copr repository, if you need to fix something yourself.

So I tried to mirror the Kolab packages from the OBS to Copr. My goal is to still maintain the sources of the packages at OBS, so that everyone can benefit from the fixes. But I will get the source rpms, and build them for CentOS and Fedora at my Copr repository. It is also split into a Release and an Update Repository.

I have documented the process here: https://github.com/TBits/KolabScripts/tree/Kolab3.4/copr#build-instructions

A quick summery of those instructions:

I have written a script that will

  1. download the source rpms from OBS (http://obs.kolabsys.com/repositories/Kolab:/3.4/CentOS_7/src/ and http://obs.kolabsys.com/repositories/Kolab:/3.4:/Updates/CentOS_7/src/)
  2. process the source rpms and tell you the right order of building the packages, which is something Copr cannot do
  3. upload the source rpms to my webspace at fedorapeople.org: https://tpokorra.fedorapeople.org/kolab/kolab-3.4/ and https://tpokorra.fedorapeople.org/kolab/kolab-3.4-updates/

Then I build the packages in the prescribed order at https://copr.fedoraproject.org/coprs/tpokorra/Kolab-3.4/ and https://copr.fedoraproject.org/coprs/tpokorra/Kolab-3.4-Updates/

Currently the Fedora 23 packages don’t build yet completely. I need to look into this later.

The CentOS6 and CentOS7 packages should be fine, I just tested them with clean machines!

Here are the installation instructions: https://github.com/TBits/KolabScripts/tree/Kolab3.4/copr#installing-kolab-from-the-copr-repositories

At last, I want to mention that I had to only add one missing source rpm, for CentOS6. see details at https://github.com/TBits/KolabScripts/tree/Kolab3.4/copr#python-pyasn1

The other packages are identical to the ones at OBS, apart from the CentOS7 packages built against CentOS 7.2, so that should be a direct improvement to the OBS packages.

 

Tags: , , ,
Posted in Software Development | Comments Closed