LWN: Comments on "Portable and reproducible kernel builds with TuxMake" https://lwn.net/Articles/841624/ This is a special feed containing comments posted to the individual LWN article titled "Portable and reproducible kernel builds with TuxMake". en-us Fri, 29 Aug 2025 09:26:49 +0000 Fri, 29 Aug 2025 09:26:49 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/842040/ https://lwn.net/Articles/842040/ mcon147 <div class="FormattedComment"> Using repeated &quot;??&quot; and &quot;..&quot; and chains of capital letter words should be treated with some caution<br> </div> Fri, 08 Jan 2021 01:22:15 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/842003/ https://lwn.net/Articles/842003/ jezuch <div class="FormattedComment"> So you wrote your own scripts to build the kernel. So what&#x27;s wrong with someone else writing their own scripts to build the kernel? :)<br> </div> Thu, 07 Jan 2021 18:01:18 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841904/ https://lwn.net/Articles/841904/ darwi <div class="FormattedComment"> <font class="QuotedText">&gt; It&#x27;s designed to be self describing. From the article: &quot;tuxmake -r podman -a arm64 -t clang-11 -k defconfig -K CONFIG_KASAN=y -w ccache&quot;.</font><br> <p> Yes. What grabbed my attention though was the GCC case, where (unlike clang) the version was not explicitly stated in the &quot;tuxmake reproducer&quot; line :)<br> <p> <font class="QuotedText">&gt; We&#x27;ve tried to make tuxmake as stupid as possible, so that it&#x27;s not doing any clever things that a kernel developer wouldn&#x27;t expect.</font><br> <p> I see. Thanks for the clarification (and for popularizing podman!).<br> </div> Wed, 06 Jan 2021 18:40:27 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841896/ https://lwn.net/Articles/841896/ terceiro <div class="FormattedComment"> <font class="QuotedText">&gt; Reproducible kernels are a very good idea, but they need to be based on reproducibly-built tools. Otherwise you have containers with SHA256s which you base your build on all you want, but what assurance do you have that the container was built with non-compromised tools in the first place? Does TuxMake address this?</font><br> <p> The TuxMake container images are built upon the Debian images provided by Docker Inc. They use only official Debian packages, with the exception of daily toolchain builds for which we get packages from the upstream project. They are built on Gitlab CI, with arm64 builds done by a Linaro server, and x86_64 done by Gitlab.com workers. Therefore at the moment the integrity of the TuxMake images relies on the integrity of Docker Hub, Debian, LLVM nightly builds, Gitlab.com, and a Linaro server.<br> <p> Given the current state of reproducible builds in the free software community, would say the TuxMake containers are just good enough to get started. Of course, we can and should improve upon that (both TuxMake and the rest of the community). On the other hand, except for that Linaro server, a compromise in any of those means we all have bigger problems than the non-reproducibility of the TuxMake container images.<br> </div> Wed, 06 Jan 2021 17:15:10 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841854/ https://lwn.net/Articles/841854/ terceiro <div class="FormattedComment"> <font class="QuotedText">&gt; In the examples shown, the printed tuxmake command &quot;to reproduce this build locally&quot; does not show the GCC version. How do you plan to handle future GCC versions?</font><br> <p> When using containers, you can request a (major) compiler version explicitly, and that&#x27;s what you will get. Otherwise, all that TuxMake can do is use whatever gcc you have on $PATH. In any case the exact compiler version that was used is recorded in a metadata file which is collected from the build environment.<br> <p> <font class="QuotedText">&gt; It would also be nice if there is a way to extract all the pure build parameters and defconfig in a simple file, so that bug reporters can send *that data* instead of a &quot;tuxmake command&quot;. Kernel developers / maintainers on the receiving end should not be forced to use &quot;tuxmake&quot; to reproduce bug reports.</font><br> <p> Beyond tool versions, the metadata file also contains info about the input tree and build output, plus all the inputs that have been provided by the user such as toolchain, target architecture, config arguments etc. The final kernel config is also included in the build artifacts.<br> </div> Wed, 06 Jan 2021 15:40:55 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841851/ https://lwn.net/Articles/841851/ mndrue <div class="FormattedComment"> <font class="QuotedText">&gt; Kernel developers / maintainers on the receiving end should not be forced to use &quot;tuxmake&quot; to reproduce bug reports.</font><br> <p> We agree. Currently, most build reports from users on lkml look something like &quot;My build broke with the following error&quot;. If the recipient is lucky, the author mentions a config, toolchain, or architecture. Usually, in the case of a tricky build problem, it&#x27;s a few round trips to figure out how to reproduce the build error reported.<br> <p> The tuxmake reproducer already gives more information to the recipient, whether or not they choose to use tuxmake, than most build reports. It&#x27;s designed to be self describing. From the article:<br> <p> <font class="QuotedText">&gt; tuxmake -r podman -a arm64 -t clang-11 -k defconfig -K CONFIG_KASAN=y -w ccache</font><br> <p> I&#x27;m hopeful that even that short version of the command communicates enough information to reproduce a build problem, with or without tuxmake.<br> <p> We&#x27;ve tried to make tuxmake as stupid as possible, so that it&#x27;s not doing any clever things that a kernel developer wouldn&#x27;t expect.<br> </div> Wed, 06 Jan 2021 15:07:18 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841839/ https://lwn.net/Articles/841839/ k3ninho <div class="FormattedComment"> You&#x27;re very welcome to your opinion. You&#x27;re wrong, though, in light of the community you&#x27;re (inadvertently) part of. Please, express your opinion and your assumptions and the context in which you&#x27;ve developed those views. But along with that, expect that people will (courteously and respectfully) correct the misapprehensions you&#x27;ve absorbed. <br> <p> The thing that made Linux the success it is is entirely its community. People got together to add features and share-back the code they changed. Patches need the transitivity of &#x27;your code + my changes&#x27; in either your build system or my build system to arrive at similar-enough program binaries that my claims to make something better in my built edition of the program are actually making the program better in your built edition of the program.<br> <p> Seems easy when it works. It&#x27;s a massive pain when it goes wrong and you&#x27;ve moved so fast breaking things that you can&#x27;t quite understand which small change caused a chain of breakage.<br> <p> Reproducible builds and a reference-type build environment might be monocultural and eventually a weak spot. For now there&#x27;s gains in assembling and maintaining this suite -- and look at Linaro as an organisation empowering small-board and industrial-computing builders to target esoteric and exotic devices: it&#x27;s hard to standardise the wide swathe of &#x27;get it working, ship the product and move on&#x27; hacking for these devices, but this helps.<br> <p> Dont forget it&#x27;s a team game,<br> K3n.<br> </div> Wed, 06 Jan 2021 11:13:12 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841834/ https://lwn.net/Articles/841834/ dottedmag <div class="FormattedComment"> Amusing, but not surprising: testing a kernel is harder than testing a build system.<br> </div> Wed, 06 Jan 2021 10:08:41 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841833/ https://lwn.net/Articles/841833/ smurf <div class="FormattedComment"> Debian&#x27;s builds, strictly-reproducible or not, already create a .buildinfo artefact that lists the versions of all tools used to effect the build. Thus there&#x27;s no need for yet another, container-based (ugh), tool like TuxMake that only works for a single package (the kernel).<br> <p> Reproducible kernels are a very good idea, but they need to be based on reproducibly-built tools. Otherwise you have containers with SHA256s which you base your build on all you want, but what assurance do you have that the container was built with non-compromised tools in the first place? Does TuxMake address this?<br> </div> Wed, 06 Jan 2021 09:42:27 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841832/ https://lwn.net/Articles/841832/ amacater <div class="FormattedComment"> Antonio is a Debian developer: this has direct relevance to making Debian reproducible builds, for example.. It&#x27;s a worthy step forward for its use cases.<br> </div> Wed, 06 Jan 2021 09:15:42 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841831/ https://lwn.net/Articles/841831/ Sesse <div class="FormattedComment"> <font class="QuotedText">&gt; Sincerely, I have no objection , just express my views, am I not suppose to do so???</font><br> <p> Only if those views are useful in some way, really.<br> </div> Wed, 06 Jan 2021 09:13:29 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841830/ https://lwn.net/Articles/841830/ linusw <div class="FormattedComment"> I&#x27;ve used TuxMake a little and very happy with it for what I do.<br> <p> I would say it brings the kernel development into what all the cool kids call &quot;DevOps&quot;. This is a somewhat elusive term, but involves versioning build environment and build artifacts which is something TuxMake does.<br> </div> Wed, 06 Jan 2021 08:37:14 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841828/ https://lwn.net/Articles/841828/ unixbhaskar <div class="FormattedComment"> Okay, if you prefer, curse me for the &quot;misnomer&quot; ...I am bugged by that ,being in the specific industry and seeing it&#x27;s been practiced everywhere and importantly everyone(smart people too!) , so laser mortals like me , also get injected with the bad idea.<br> <p> :) Teach me/correct me/show me ...I believe I have &quot;growth mindset&quot; and not stubbornly cling on something for the sake statisfy my stupid ego(yes I have, probably other don&#x27;t have that....he he he he h...probably others control better) ...<br> </div> Wed, 06 Jan 2021 03:25:35 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841827/ https://lwn.net/Articles/841827/ unixbhaskar <div class="FormattedComment"> Okay, IIRC , if my faint memory serves well, don&#x27;t we have a &quot;reproducible thing&quot; for the kernel???? Wondering....<br> <p> Probably ,somebody more aware can confirm that. Anyway, It is always a temptation ,when you build something and and think it is &quot;absolutely required&quot; to do better job. <br> <p> &quot;Large environment&quot; is garbage. <br> <p> YMMV and I am sure I am telling from my small/little and importantly very limited experiance(NO PUN INTENDED) , you might have more exposure to conclude on that. <br> <p> Okay, This tool might a boon for some...not a generalised one.As you have rightly pointed out. So, it might missed few &quot;mundane&quot; and &quot;ordinary&quot; user who are fond of building stuff.<br> <p> Sincerely, I have no objection , just express my views, am I not suppose to do so??? <br> </div> Wed, 06 Jan 2021 03:19:47 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841826/ https://lwn.net/Articles/841826/ unixbhaskar <div class="FormattedComment"> Sasha, &quot;by hand&quot; means I have my frivilious automated tool, which does the job for me. And doing thing for a team, I believe not every on involed int he kernel building stage?? At least I am not aware of it. <br> <p> A single person build the kernel, whether it&#x27;s in team environment or for indidual need. <br> <p> Flame, if I read between the lines. Oh, btw , I would like maintain a toolchain of my own which match the expectation of kernel....well, now brain ring a alerm bell and you frown, probably justified ...that&#x27;s the way I do . <br> <p> That is not efficent , you might opined ...but it&#x27;s okay ...whatever I have read in the article looks not so straight forward and laden with assumptions. <br> <p> Well, I probably grossly wrong....<br> </div> Wed, 06 Jan 2021 03:08:21 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841819/ https://lwn.net/Articles/841819/ darwi <div class="FormattedComment"> <font class="QuotedText">&gt; In the case of reporting a build problem to a mailing list, a one-line TuxMake command communicates precise instructions for reproducing the build problem. Any user who runs the same TuxMake command against the same Linux source tree will see the same build. </font><br> <p> In the examples shown, the printed tuxmake command &quot;to reproduce this build locally&quot; does not show the GCC version. How do you plan to handle future GCC versions?<br> <p> It would also be nice if there is a way to extract all the pure build parameters and defconfig in a simple file, so that bug reporters can send *that data* instead of a &quot;tuxmake command&quot;. Kernel developers / maintainers on the receiving end should not be forced to use &quot;tuxmake&quot; to reproduce bug reports.<br> <p> (I&#x27;m honestly not a fan. At least on Debian, all the needed toolchains are one &quot;apt-get gcc-${ARCH}-linux-gnu&quot; away. But I understand the possible need for CI).<br> </div> Wed, 06 Jan 2021 02:36:10 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841818/ https://lwn.net/Articles/841818/ sashal <div class="FormattedComment"> I too prefer indexing my own versions of files rather than use some third party program like Git!<br> <p> At least Linus got a good exercise to enhance his understanding of SCMs...<br> <p> But seriously, doing it &quot;by hand&quot; works fine if it&#x27;s just your own kernel, but its far more complex to build kernels for multiple architectures and config files, or being able to quickly build a kernel that a user point out. I don&#x27;t want to maintain toolchains, I just want to get my kernel work done.<br> </div> Wed, 06 Jan 2021 01:10:51 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841814/ https://lwn.net/Articles/841814/ dxin <div class="FormattedComment"> Containerized toolchains makes a lot of sense. Very few machines needs to run purely natively compiled code. It&#x27;s always such that one machines compiles the code while another runs it.<br> <p> On the other hand, I&#x27;m surprised that the embedded world, notably AOSP, lived with the broken and bloated old way for so long.<br> </div> Wed, 06 Jan 2021 00:01:09 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841815/ https://lwn.net/Articles/841815/ ttuttle <div class="FormattedComment"> The simplicity you cite is deceptive: it&#x27;s simple to build a kernel in your own workspace, but it&#x27;s not simple to build one in an identical workspace to a colleague&#x27;s, or to the one in a continuous instrumentation system, or to the one used in a larger build system.<br> <p> If you&#x27;re only building for yourself, TuxMake may in fact be overkill. But if you&#x27;re working as part of a larger system and may need to reproduce other builds or have others reproduce yours, it&#x27;s a way to simplify identifying and sharing those environmental dependencies.<br> </div> Wed, 06 Jan 2021 00:00:19 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841810/ https://lwn.net/Articles/841810/ unixbhaskar <div class="FormattedComment"> Nope, I would prefer to do all the things by hand , then doing the important part decided by some thrid party program . <br> <p> Plus bending it makes thing even more complex and no point . Flooded with assumption.<br> <p> But having said that, it must be good excercise by the authors to enahance their understanding of kernel.<br> <p> Why make simple thing more comlicated???? When things can be done in 3 steps...why brings all those fuzzz???<br> <p> YMMV<br> </div> Tue, 05 Jan 2021 23:19:38 +0000 Portable and reproducible kernel builds with TuxMake https://lwn.net/Articles/841806/ https://lwn.net/Articles/841806/ roc <div class="FormattedComment"> It&#x27;s amusing that TuxMake&#x27;s testing protocols are much more stringent than those of the kernel itself.<br> </div> Tue, 05 Jan 2021 22:05:21 +0000