There are three categories of references:
References below are just a few examples of missions accomplished by Debamax, for customers willing to share what their needs were and how they were addressed. More to come through write-ups posted in the blog section.
Tails (The Amnesic Incognito Live System) — Freezable APT repositories (2015-2016)
Debamax has been working on the Tails operating system, both on its building and hosting infrastructures. The goal was to lay the groundwork for reproducible builds for ISO images; this involved setting up snapshots for various Debian repositories, along with adjusting the build system to generate a manifest of packages used during the build.
>> Read more about this mission in this blog post.
Paris-based company — Debian upgrade (2016)
The initial need was coordinating a Debian upgrade from oldoldstable (Squeeze) to stable (Jessie) across several thousand devices. Initial investigation reported very different configurations, which prompted an iterative approach aimed at getting two sets of devices with similar configurations (amd64 vs. i386) instead of individual snowflakes.
An upgrade path was designed, taking into account upgrade glitches for some packages (in-house developed, or from Debian), which was double checked in virtual machines. After successful tests on bare metal, the upgrade procedure was used on increasingly larger sets of devices in production.
Iggdrasil — Ishtar Debian packaging (2016)
The mission was the initial packaging of a web application (Ishtar), based on the Django framework, for Wheezy. After a few bugs were reported and promptly fixed by the upstream authors, a proper separation was introduced between the packaged code and the logic behind the creation of an instance. Related tasks included submitting initial packaging for a few dependencies which weren’t available in the Wheezy distribution.
Wifirst — Continuous Integration (2016)
Debamax has set up a CI platform
for Wifirst, based on the
jenkins-debian-glue components. It
allows for automatic builds of Debian packages for various in-house components,
and for making them available through an APT repository. Notifications by mail
were configured to let the development team know when build failures are
detected, and when they are resolved.
To meet Wifirst’s needs, a set of wrappers was developed to make it possible to ship builds from tags and builds from branches through different suites, allowing for an easy switch between release and development packages.
>> Read more about Wifirst on its website: Wifirst.
Wifirst — Mirroring tools (2016)
Debian stable releases don’t change much over time, but some updates happen
through point releases every few months, where packages already published
through the security archive and those staged into
proposed-updates are merged
stable suite. While such updates are usually small, targeted, and
well reviewed, they can sometimes generate extra work or disrupt ongoing
A solution based on
reprepro was set up, making it possible to
generate a snapshot of an upstream repository at a given time, allowing for
extra control. It was chosen to restrict the mirrored packages to a specific
list, limiting the need for disk space.
This solution comes with a wrapper to help track differences between snapshots, making it easier to determine preventively which changes are to be expected when moving from an earlier snapshot to a newer one, and to determine afterwards which updates might have triggered a regression.
>> Read more about Wifirst on its website: Wifirst.
Cyril as a Free software developer: Debian
User, contributor, developer
Cyril’s first Debian installation happened in 2004. He quickly started reporting bugs, and joined the French localization efforts.
After a little while, in addition to maintaining a few packages, he made a habit of contributing patches to many other packages, either adding support for some architectures, or fixing their release critical bugs.
He’s been an official Debian Developer since 2008.
Graphics stack maintainer (X.Org)
Cyril maintained the graphics stack within Debian between 2010 and 2013. This software stack includes the X server, X drivers, and many related libraries.
That was an opportunity to get a bit more accustomed to low level code, and to get used to tracking regressions in these components as well as in the Linux kernel.
Release team member
Release managers proposed that Cyril joined their team, which he accepted in January 2012. This team is in charge of the testing distribution, which evolves during the whole development cycle (roughly two years), being fed through the unstable distribution. After a stabilization period (a multistage freeze), it is possible to release the new Debian stable version, once the release critical bug count reaches zero.
Main tasks include handling transitions affecting wide ranges of packages, for which coordination is key, but also performing code reviews for proposed updates targeting the stable or oldstable Debian releases, which get updated after their first release, with so called point releases every few months.
Debian installer release manager
Cyril has been in charge of the Debian installer since 2012. This means coordinating the development of all components the installer consists of, making sure changes affecting packages used by the installer (Linux kernel and its modules, boot loaders, partitioning tools, etc.) aren’t leading to regressions.
His role as release manager has led Cyril to develop a test suite, automating different installation scenarios which were previously checked manually during the last stages before a new release. He develops and maintains various scripts allowing for regular installer-related checks among which: verifying the installability of needed packages, triggering daily builds for all architectures, and keeping track of translations.
Cyril as a salaried developer
The Kerlabs team welcomed Cyril for an end-of-studies internship, after which he was given the opportunity to join the company as a Study and Development Engineer.
Working on Kerrighed (an operating system for clusters) allowed him to discover Linux kernel development and debugging techniques. He has been assigned different missions which made it possible to approach this subject from different, complementary angles:
- Development of a LiveCD, demonstrating Kerrighed’s features.
- Tweaking of various software, to demonstrate how they could benefit from Kerrighed.
- Development of a monitoring application for Kerrighed.
- Maintenance of Debian packages for Kerrighed.
- Non-regression testing, and debugging coordinated with the R&D team.
Then Cyril joined AriadNEXT, a company specialized in dematerialization solutions and in document securing, where he worked as a Study and Support Engineer.
This was the opportunity to discover new missions:
- Management of dematerialization terminals (operating system development and remote deployment).
- Development of exploitation and monitoring tools, customized for specific needs (terminals and servers).
- Training and management of the support team.
- Technological surveillance: IT security.
Being a member of the support team was a very rewarding experience since it led him to have a cross-departmental view. This team acts a privileged link between customers, IT operations management, and development teams (both hardware and software): its main tasks include detecting customer issues (possibly in a preventive manner, thanks to tailored tools), and forwarding user requests to the relevant teams.