[Pkg-zsh-devel] installing config.h breaks reproducibility

Daniel Shahaf danielsh at apache.org
Tue Dec 20 15:46:03 UTC 2016


https://tests.reproducible-builds.org/debian/dbdtxt/unstable/amd64/zsh_5.3-1.diffoscope.txt
shows the following difference:
│   │   │   ├── ./usr/include/zsh/config.h
│   │   │   │ @@ -1080,15 +1080,15 @@
│   │   │   │  /* Define to 1 if /bin/sh does not interpret \ escape sequences. */
│   │   │   │ -/* #undef SH_USE_BSD_ECHO */
│   │   │   │ +#define SH_USE_BSD_ECHO 1

That difference is caused by varying the /bin/sh symlink between dash and bash.

Now, SH_USE_BSD_ECHO is unused, and in any case is only valid on the
build box and not on user's boxes, so we could just (ask upstream to)
remove it altogether... but first, why is config.h even installed in the
first place?

It is installed via debian/pkg-zsh.install, since #776964.  Why is
installing it a debian patch?  If config.h is useful then upstream
should install it, and if config.h isn't useful then debian is doing
its users a disservice by allowing them to write code that won't compile
elsewhere.

I see two options: either (a) stop installing config.h (re-narrowing the
installed headers to what upstream installs), or (b) push the "install
config.h" logic upstream and remove SH_USE_BSD_ECHO from config.h.

Makes sense?

Cheers,

Daniel

     #776964  Headers installed by zsh-dev packages miss critical pieces



More information about the Pkg-zsh-devel mailing list