[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash: Please make bash build reproducibly
From: |
Ximin Luo |
Subject: |
Re: bash: Please make bash build reproducibly |
Date: |
Thu, 2 Jun 2016 21:21:35 +0200 |
CC'ing everyone that was on the previous conversation; Debian's BTS doesn't do
this automatically :(
We've made some progress on the Debian side; there's a few more stumbling
blocks though:
On Sat, 28 May 2016 13:38:35 +0200 Reiner Herrmann <reiner@reiner-h.de> wrote:
> Hi,
>
> it looks like most of the documentation related issues are now solved
> by fixed toolchain packages. But it still uses the embedded and
> outdated copy of man2html, which doesn't support SOURCE_DATE_EPOCH yet.
> The attached patch uses the system man2html instead of the embedded one.
>
> After that, the only remaining issue is that the included header file
> /usr/include/bash/config.h varies depending on the kernel version used
> during build [1] (with kernel <4, PGRP_PIPE is defined).
>
For this particular example, we can just patch this out, i.e. remove it from
the installed config.h. Debian already forces PGRP_PIPE 1 in config-bot.h,
which config.h includes at the end.
In general however, installing config.h is a code smell and an anti-pattern -
it takes test results from the *build machine*, and then forces my machine to
assume those. The presence of this anti-pattern potentially can make future
versions unreproducible again, and we'll have to think of new ways to fix
those, since this PGRP_PIPE forcing is just a lucky coincidence.
The ideal solution from a software architecture viewpoint, would be (1) make
the headers platform independent and not require a config.h, or if this is
truly impossible then (2) instead of installing config.h, install some scripts
to allow the user to generate their own config.h, with their own values.
However, I don't know how much effort either of these options are. Only a few
installed headers actually need config.h; perhaps these could be fixed to *not*
require it:
/usr/include/bash$ grep -r '#include .config.h.'
builtins.h:#include "config.h"
lib/glob/strmatch.h:#include <config.h>
shell.h:#include "config.h"
shmbutil.h:#include <config.h>
X
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
git://github.com/infinity0/pubkeys.git
- Re: bash: Please make bash build reproducibly,
Ximin Luo <=