Severity: normal
Usertags: reproducible


the only remaining variation in the postgresql-10 builds is the `uname -m`
information captured in pg_config.h:

#define PG_VERSION_STR "PostgreSQL 10.4 (Debian 10.4-2.pgdg+1) on 
x86_64-pc-linux-gnu, compiled by gcc (Debian 7.3.0-18) 7.3.0, 64-bit"
#define PG_VERSION_STR "PostgreSQL 10.4 (Debian 10.4-2.pgdg+1) on 
i686-pc-linux-gnu, compiled by gcc (Debian 7.3.0-18) 7.3.0, 64-bit"

This information is also stored in, which is used by
extension modules to configure themselves for the PostgreSQL server
they are targetting:

host_tuple = x86_64-pc-linux-gnu
host_os = linux-gnu
host_cpu = x86_64

host_tuple = i686-pc-linux-gnu
host_os = linux-gnu
host_cpu = i686

I could probably remove the "on $host" part from PG_VERSION_STR, but is not so easy, because 3rd-party extensions might
need the information.

The difference stems from altering the kernel personality to report
the i686 architecture name even on x86_64 aka amd64 systems.

I think this is damaging an otherwise functional environment, i.e.
systems should always be running with their native architecture
(x86_64 on amd64, armv7l on armhf, etc) - otherwise the system is just
broken. Chroots for related architectures should be using the
corresponding architecture personality, and indeed, schroot can switch
personality on entering chroots.

Please don't vary kernel architecture personality for reproducibility

(Does (or did) this variation even catch real-world reproducibility
problems in packages?)


Qa-jenkins-dev mailing list
Reproducible-builds mailing list

Reply via email to