References


Debamax missions

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.

IZAR IoT GATEWAY Compact
since 2020

Diehl Metering

While working on the MIOTY Premium Gateway product, Diehl Metering and Debamax were already planning on reusing as many components as possible for another product: the IZAR IoT GATEWAY Compact.

While the former is Intel-based and the latter is ARM-based, both products share their build system, configuration daemon, upgrade mechanism, and custom components, integrated on top of the same standard Debian distribution. This yields very high levels of synergy and reuse between products.

The main differences between products are the primary RF adapters, and the possible LTE modem. All of those are managed via autodetection, with an extensive self-test run at manufacturing time, making sure detected components match what’s supposed to be present during a given production batch.

Early work on this product also resulted in a number of direct contributions to Debian.

>> See the product page: IZAR IoT GATEWAY Compact

MIOTY Premium Gateway
since 2019

Diehl Metering

Debamax helped Diehl Metering build a new product, the MIOTY Premium Gateway, by integrating custom components on top of a regular Debian system. This includes setting up a build system, an automatic and secure upgrade mechanism, and a system configuration component to glue everything together.

In addition to building a custom operating system image, Debamax is also responsible for maintaining it over time. This means providing security updates as well as new features, and porting the system image to new major Debian releases, which ensures long term security support.

Debamax also helps with production tools and with monitoring systems. The former means the system image can be easily deployed and fully tested during the manufacturing process. The latter makes it possible to spot possible issues without waiting on customer feedback, and to take corrective measures as soon as possible.

>> See the product page: MIOTY Premium Gateway

Foundations Team & Release Management
2018-2020

Tails

After working on freezable APT repositories, Debamax became more involved in the development of the Tails operating system.

One area was the Foundations Team, which is responsible for maintaining the core Tails system. Tasks included preparing for the next major Debian release (as Tails is a Debian derivative) or updating the test suite for the new installation method using USB images.

Another one was Release Management. Tails must be updated on a very regular fashion, making sure known security bugs are fixed as soon as possible. Since Tails ships Tor Browser, itself built on top of Firefox, schedules are usually aligned, meaning a release every 4 weeks (6 weeks initially). Debamax ended up being responsible for two dozen releases during that time.

Since Tails is a live system, its upgrade process involves Incremental Upgrades Kits (IUKs), making it possible to patch an existing system over time, instead of having to redeploy it from scratch. Debamax modified the release process to ensure that release preparations can happen in a timely fashion, despite the ever-growing number of IUKs to build, ensuring parallelism can be used for both local builds and Jenkins builds.

Release Managers are the last safety net before code reaches end users and sometimes it’s best to abort a release entirely. That’s what happened with the 4.2.1 release, after Debamax detected some critical bug in the upgrader.

Debian upgrades
2016, 2017, 2019, 2022

Wifirst

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.

Since then, Debamax has helped plan and execute the migration to every new major Debian release (Stretch, Buster, and Bullseye) in a timely fashion, providing ready-to-use Ansible playbooks.

Freezable APT repositories
2015-2016

Tails

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.

Ishtar Debian packaging
2016

Iggdrasil

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.

>> Read more on their websites (in French): IggdrasilIshtar.

Continuous Integration
2016

Wifirst

Debamax has set up a CI platform for Wifirst, based on the jenkins and 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.

Mirroring tools
2016

Wifirst

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 into the stable suite. While such updates are usually small, targeted, and well reviewed, they can sometimes generate extra work or disrupt ongoing maintenance operations.

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.

Back to top

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.

Back to top

Cyril as a salaried developer

Kerlabs (2008-2011)

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.

AriadNEXT (2011-2014)

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.

Back to top