Posts Tagged ‘Linux’

Meet during the Open Source Summit in Prague


Getting approval for my participation at that conference was the toughest I ever had in the past, but I’ll be there again after having spoken in all the previous editions.

This time, this presentation will be made by a duo, as I’ve worked since the last LinuxCon EMEA with the FOSSology project to help them adopt a Continuous Packaging approach and Michael Jaeger from Siemens who leads the project will be with me to cover the topic. On my side, I’ll explain how was used, the setup done with Vagrant and containers to generate packages for 7 different Linux distributions (ongoing effort as we speak ;-), automating fully the production of packages as part of the LinuxFoundation build infrastructure for FOSSology. And of course the changes I had to make to the code to better support the project needs !

So I’ll be back in Prague (no problem as I love that city !) next week, to celebrate also the 10 years of, just after my week at DockerCon which is really starting today !


10 years of Project-Builder !


Well, I think it’s worth to celebrate that milestone ! I’m now publishing officially the version 0.14.6 of for its 10th anniversary.

Everything started to solve an issue I had when I took over the maintenance of the MondoRescue project. It was very difficult in 2005 to consume the project. People had to download a tar file, follow a very succint recipe to build and install it and then being finally able to use it. The tool was supporting a lot of Linux distributions, but was difficult to use by these same distributions. So I started to build some shell scripts to help me deliver Linux distributions packages to solve that. I realized that I was duplicating stuff to address Fedora and RHEL, SuSE and SLES, Mandrake and Mandriva, … Even when building for other types such as Debian and Ubuntu or Gentoo. Typically all these distributions want a summary, a description, dependencies, changelog, … And I hate duplicating stuff. Also I realized I wasn’t the only one in need of this type of support. LinuxCOE, a peer project at HP was also in need of this, as well as many others.

So in 2007, I decided to rewrite my scripts in a more powerful language, perl (thanks Larry Wall ! and BTW I continue to find it way superior to a lot of younger ones, calling themselves more modern :-)). And version 0.5 was soon published as I used my vacation that year to code a lot for it.

It was way before I started to blog, and blog about it was among the first articles I decided to write. Of course, along the years, features have been developed, capabilities extended. I’m now able to generate it self and MondoRescue for 130 tuples of distributions. THat’s a proof this is possible, and that a tool like that can help achieving it.

10 years ago, I had to invent a configuration file format to support my needs. I wanted to have the least possible number of hard coded elements in I created my own format, pretty simple mimicing the perl hash being: keyword param = value[,value]. At that time, YAML and JSON weren’t that popular, and I wasn’t aware of perl modules to support these, despite the fact they were existing, and my knowledge of CPAN wasn’t that accurate.
But at least I had inheritance mechanisms, and fucntions to deal with it, whch proved to be extremely useful to migrate.

So It’s now time, for the next 10 years to adopt a format, nearly as simple as mine, as easy to map to perl hashes as mine, and I chose YAML, benig lazy and finding it easier to manage manually (like mine was). Of course, this will have some consequences, as some old build environment don’t provide it so I may drop support for some very old distributions. If needed BTW something can be done as we have the source !! Version 0.15.1 is already in progress, and is now able to build itself, including in VMs or Docker containers for other distributions using that new format. And due to the mechanisms in place, I’ve kept easily all the features, just moving to a new format. I’ll start to work soon on migrating the conf files of MondoRescue to have another project working with that version. I’m also working in HPE with another team that is starting to use it as well, and I chose to adopt for them the new version to benefit from the way forward.

Finally, as I mentioned previously, the tool is now in use by the FOSSology project as well in the Linux Foundation build infrastructure. With the latest version 0.14.6, now FOSSology builds at least native packages for CentOS 7 on a CentOS 7 platform. Now we’ll work on the generation of packages for the other distributions the project want to support (which will be pretty easy now the infra is in place), in order to cover the topic during the Open Source Summit in Prague in October, providing I get approval to travel there (as I’m traveling quite a lot these days).

So happy birthday to and let’s start working on the next YAML based version, and help more projects adopt it !

Meet at SUSECon 2017, Prague


As the sessions I proposed for the event weren’t accepted, I considered I had no chance to attend this year SUSECon. But it turned out that there was a need for HPE to have someone able to talk about Helion OpenStack on the booth, and I have been chosen to do it, so I’ll be around this year, for the first time, from the 25th to the 29th of September, in the beautiful city of Prague (will be my 4th time there !).

I’ll look forward meeting with some of my SUSE friends over there, and discover a new event.

Of course, as usual feel free to come and talk to me (I should be on the HPE booth when it’s open) of OpenStack, SUSE CaaS (as we’re working on a Reference Architecture on Synergy) and of course Open Source in general, and early music in particular 😉

Meet at the Open Source Summit NA 2017


Despite difficult times for HPE, I’m still supported by my management to continue to represent HPE during tier 1 Open Source events such as the Open Source Summit North America, held in Los Angeles from the 11th to the 14th of September. Well, of course, because I was accepted as a speaker again !

I’ll lead a round table to cover with panelists whether “Containers are the future of IaaS ?

So as usual, if you are around, I’ll happy to discuss with you around Open Source in general, and the projects I’m involved with in particular such as MondoRescue (yes, there will be a new version soon, now remains to see the definition of soon), (same thing), Redfish, containers, early music or more.

Meet at the RMLL 2017


This year the RMLL are coming back, from the 1st to the 7th of July and in my region, in St Etienne ! And this year, I am not only a speaker, but also a co-track leader for the Server track.

With my talks, You’ll be able to learn about the latest news for MondoRescue,, Docker, Redfish and python-redfish, Mageia and much more from my co-speakers (Ethereum, CMS, Cloud Native app, Unikernels, …) and even more from Keynote speakers as well.

Lodging is now available, so book quickly and let meet us there !

This week, gift continues with project-builder


Normally, today I receive gifts, priviledge (really ?) of being older 🙂 But I can also make gifts myself ! So after python-redfish 0.4 yesterday, I’m announcing the release of project-builder 0.14.3 today (and maybe more to come later this week !)

This project seems to have a quicker pace than MondoRescue, maybe due to the fact I’m using it daily, and that it’s now used by python-redfish, MondoRescue, and also FOSSology (WIP more on that later again). I realize I didn’t announced previous versions 0.14.1 last July, and 0.14.2 last January, but lots have been added since.

I’ve worked on this version to improve deb support (no arch pkg) and especially deb repositories (with GPG keys) as well as OpenSUSE GPG signed repositories as well. Previous versions brought support for latest distros (Fedora 25, Ubuntu 16.10 e.g.), robust build using Docker in addition to VMs or chroot VEs, fixes some issues around conf files analysis, improving rpm package name for smooth upgrade between test and stable versions, renaming temporary dirs for consistency, as well as moving the main conf file outside of /etc reserved for local modifications, … Changelogs have all the nasty details.

One of the task I’d like to make now is to move the conf file format to JSON, to benefit from existing libs to manage them, and make them even easier to deal with. That would allow some other improvements afterwards, but too early to talk about.

Oh, and BTW, we decided to also publish python-redfish 0.4.1 (with its packages made with to keep this article’s focus 😉 ) to fix a nasty error we made when pushing to pypi. Enjoy as well !

MondoRescue 3.3.0 on its way


Well, it’s time for gifts no ? So I passed some days last week to go back to various problems reported, in order to solve them.

The most tricky was mindi-busybox not able to compile on recent distros such as Ubuntu 16 or Fedora 24 (glibc changes in them made that incompatibility). I made tries with busybox 1.25 and it turned out that it seems pretty compatible with 1.21 we were using, but working on these latest distros and working easily on the old distros I want to support as well (I went back to RHEL4 with this patch)

I’ve been able to do backup / restore cycles with both CentOS 6 and 7 without issues with the latest version, after having fixed a lot of small more or less blocking problems.

Now I still have stuff I’d like to fix before release:

For Debian:

In short it’s UEFI support with Debian. I should have worked on that since a long time, but last months were very loaded, both at work and at home. And I’ve not done any progress with it for now.


That will probably wait till 3.3.1

and the most important for me (and some customers), more generic:

I’ll start with this one after Christmas.

And also:

But I have a MondoRescue contributor developing code for that !! That’s really great !

And also two improvements that would make everybody’s life easier:

So, yes, some work on my plate for the new year 2017. But I took also some time off this week to recharge, and so I’d be able to do that, my work back next week, and the rest (concerts planned) with lots of energy !!

Let me take that opportunity to wish to all of you a very good new year 2017, that peace may gain more than loose, that FLOSS may gain more than loose, and that we’ll be actors in this.

Meet during LinuxCon EMEA


After having talked on during the latest LinuxCon NA in Toronto, it’s now time to prepare for LinuxCon EMEA in Berlin.

I’l again talk about packaging, this time “Packaging for Linux Distributions with Docker“. And I’ll also replay the now popular (!) “101 Docker training” I’ve also delivered in Toronto, this time trying to deliver it before the one Jérome Petazzoni from Docker is doing on Docker orchestration, in order to allow for a complete overview of the Docker ecosystem.

Of course I’ll enjoy attending many sessions on various topics, and will see if in EMEA as well Docker Orchestration is the new Eldorado this year (In Toronto many talks and booth were dedicated to that theme). At least my colleague Mike Bright will cover it well !

See you around !

Project-Builder 0.14.1 is now out for LinuxConNA !


Well, in fact I froze that version back in July, but didn’t officially announced it till today (vacations were just in the middle). So that version 0.14.1 is now available, it breaks compatibility with previous ones, so you’ll need to update your VMs/VEs with it as well if you want to use it correctly (that’s why it’s still version 0.x !)

But I’ve been able to build a lot using docker containers with that version, and I’m now more and more happy with these results. Especially because it’s easier to fully automate an environment from absolutely nothing except to working packages. I already described it when I released 0.13.1 last year through a short tutorial, but it’s really working reliably now for a large set of distributions:

$ docker images | grep pb-pb
pb   mageia-5-x86_64-pb-pb              fc479023c876        3 weeks ago         413.9 MB
pb   opensuse-13.1-x86_64-pb-pb         2c31c56e7bda        3 weeks ago         354.3 MB
pb   opensuse-13.2-x86_64-pb-pb         c8edeba0440b        3 weeks ago         438.2 MB
pb   opensuse-42.1-x86_64-pb-pb         8e91d2b584ed        3 weeks ago         461.5 MB
pb   debian-7-x86_64-pb-pb              0c133063d4be        3 weeks ago         449.8 MB
pb   debian-8-x86_64-pb-pb              8fb919480351        3 weeks ago         588.3 MB
pb   centos-5-x86_64-pb-pb              c8b6f1a0846b        3 weeks ago         706.6 MB
pb   centos-6-x86_64-pb-pb              a3c1ea318031        3 weeks ago         545.9 MB
pb   centos-7-x86_64-pb-pb              d5790ee97e13        3 weeks ago         392.1 MB
pb   ubuntu-12.04-x86_64-pb-pb          053f112ed939        3 weeks ago         398.2 MB
pb   ubuntu-14.04-x86_64-pb-pb          bc239427fc3a        3 weeks ago         501.7 MB
pb   ubuntu-15.04-x86_64-pb-pb          e6cf8d0fafd0        3 weeks ago         503.8 MB
pb   ubuntu-15.10-x86_64-pb-pb          dba3b580bdc8        3 weeks ago         550.1 MB
pb   ubuntu-16.04-x86_64-pb-pb          02a337752837        3 weeks ago         522.9 MB
pb   fedora-21-x86_64-pb-pb             07223685d24f        3 weeks ago         965.1 MB
pb   fedora-22-x86_64-pb-pb             211b865c1ec6        3 weeks ago         749.5 MB
pb   fedora-23-x86_64-pb-pb             f6012ff7b6b8        3 weeks ago         879.6 MB
pb   fedora-24-x86_64-pb-pb             6d878b489584        3 weeks ago         678.5 MB
pb   gentoo-nover-x86_64-pb-pb          b6ead3da5b85        4 weeks ago         1.392 GB

But I’ve not really worked yet on the ideas expressed when I issued 0.13.2 in February this year.

Instead I’ve done other improvements such as managing signed deb repositories (was asked for a long time), have a better naming for temporary versions (allowing easier updates between temporary versions and also with stables, but creating the incompatibility with 0.13.x), docker tests for lots of distributions (paving the way for automatic testing here from nothing to package build), adding support for pbr, standardizing temporary directory names, …

That will be the version I’ll use to make demos during my presentation next week at LinuxCon North America in Toronto as already announced. Come to see it live and so that we can discuss continuous packaging !

Network install of Debian 8 on a HPE ProLiant Gen9 server


There are articles to do this in a pure Debian environment, such as the excellent one I used as a base from Raphaël Hertzog.

But my deployment server in that case is a CentOS 6 one, so I needed some adaptations to make it work.

My target system is a HPE ProLiant BL 460 Gen9, equiped with bnx2x NICs (Broadcom BCM 57840 10/20 Gb/s cards). And during a network boot install, I have had messages indicating that the firmware was missing (failed to load bnx2x/bnx2x-…)

So in order for my system to network boot, I needed to adapt my initrd and add the missing firmware in it (Debian’s policy prevents the distribution of
non-free firmware, which these are). The Firmware in my case is available as a standalone package at (hint from this article)

So on your non-debian deployment server, you can do the following:

mkdir /tmp/fw
cd /tmp/fw
# This is the network boot environment required for booting Jessie
tar xvfz netboot.tar.gz
# Keep the kernel in your deployment infra
mv debian-installer/amd64/linux /where/your/tftpboot/k/debian-8
# Extract the initrd to modify it
mkdir initrd
cd initrd
gzip -cd ../debian-installer/amd64/initrd.gz | cpio -ivdum
# You need the dpkg commdand to make your life easier (part of CentOS, Fedora or Mageia)
dpkg -x ../firmware-bnx2x_0.43_all.deb  .
ls lib/firmware/
# Should show you the firmware in the right place
find . -print | cpio -o -H newc | gzip -c9 > /where/your/tftpboot/i/debian-8.img

Now you can add an entry to your boot loader (grub2 in my case) for the network boot part (more info on Network boot and Debian at

menuentry 'Debian 8' {
  insmod gzio
  insmod part_gpt
  insmod ext2
  insmod iso9660
  linux /k/debian-8 ip=dhcp --
  initrd /i/debian-8.img

If you have another firmware to deal with, refer to the dedicated Debian page at

After that your system should be able to network boot and install your Debian Jessie distribution on it.

The next step is to automate the installation, which consists just in changing the linux line in the grug conf file:

linux /k/debian-8 ip=dhcp auto priority=critical url=http://deploy-server/ks/debian-8 --

where the debian-8 file under the ks directory is just the preseed file you’ll build for your automatic installation.