Dev-Thoughts – Mainlining, and what you need to know - TUXEDO Computers

  ATTENTION: To use our store you have to activate JavaScript and deactivate script blockers!  
Thank you for your understanding!

Dev-Thoughts – Mainlining, and what you need to know


Not quite in line - Or: Why mainline is slow, that's good, but we still need to divert from it

The good news first: we have started to "mainline" many of our fixes last year:

Linux kernel source tree


And we were also able to implement a little something new:

Linux kernel source tree

Linux kernel source tree




But unfortunately not always with success:


no color format choice in amdgpu




And while long-time Linux users know what I'm talking about, newbies are just thinking, "What is "mainlining"?"




"What is "mainlining"? And is it something you can eat?"


The great thing about open source is that any person or company can use a program to extend it and make it better. However, if the new source code, called forks, are now published on a new website, the person who created the changes have some exclusivity, but others potentially don't know about the improvements. As the original program evolves, the modified version becomes increasingly incompatible or must be constantly adapted along with it. To avoid this, almost all open source projects have the option to send an improvement you have written to the original developers. They check the quality of the new code and check if the new feature fits to their overall concept of the program. If both fit, the new code is incorporated into the original program - the mainline code - and the external developer is gratefully accepted into the circle of contributors. This process is called "mainlining" or "upstreaming" in German and is handled in this way in the Linux kernel and many other components of a GNU/Linux operating system.




But the WebFAI doesn't install the same kernel, for example, as the Ubuntu installer from Why do not you just mainlined everything instead of making something special?


Because the mainline process is long. And there's nothing wrong with that: when the code is mainlined, it affects all users of that program. This means that the larger the user base, the more rare hardware and software configurations exist, which of course have to be taken into account during testing. Also, with more users, there are usually more contributors who submit more code for review. And we can't really get ahead of ourselves there either (maybe if we were quite a bit bigger, i.e. IBM-, Lenonvo-, or DELL-sized ... Dreams). That said, always mainlining everything and waiting for it to arrive in the official Ubuntu download would mean we might ship many laptops much later. And it's less about days and more about months (plural: >=2!). In case anyone was wondering why Linux runs well mostly on devices that are at least 1-2 years old: That is one of the reasons. Long story short: To provide the latest hardware, we often have to integrate patches and bugfixes that have not yet arrived mainline into TUXEDO_OS and the Ubuntu WebFAI installation elsewhere. Nevertheless, we strive to ensure that this is always only a temporary state and that we establish the greatest possible compatibility with all Linux distributions via release and mainlining of our fixes after a short period of time. Of course, this assumes that they also accept the new patches: With a Linux kernel version 5.4 from 2019, you will always have problems with a device from 2022. The only solution is to use a newer kernel, for example version 5.15. Now that the basics are in place, I'll write more blog posts when the time comes, telling you exactly how our TUXEDO WebFAI installation differs from the standard Ubuntu ISO.




Many greetings from the Tux-Tower


Werner from the Dev-Team