Building pg_xlogdump reproducibly

From: Christoph Berg <christoph(dot)berg(at)credativ(dot)de>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Building pg_xlogdump reproducibly
Date: 2016-01-04 14:59:46
Message-ID: 20160104145945.GD17503@dg-i.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

The list of objects used to link pg_xlogdump is coming from
$(wildcard *desc.c) which returns them in filesystem order. This makes
the build result depend on this ordering, yielding different
compilation results.

This patch fixes the reproducibility issue:

--- a/src/bin/pg_xlogdump/Makefile
+++ b/src/bin/pg_xlogdump/Makefile
@@ -12,7 +12,7 @@ OBJS = pg_xlogdump.o compat.o xlogreader

override CPPFLAGS := -DFRONTEND $(CPPFLAGS)

-RMGRDESCSOURCES = $(notdir $(wildcard $(top_srcdir)/src/backend/access/rmgrdesc/*desc.c))
+RMGRDESCSOURCES = $(sort $(notdir $(wildcard $(top_srcdir)/src/backend/access/rmgrdesc/*desc.c)))
RMGRDESCOBJS = $(patsubst %.c,%.o,$(RMGRDESCSOURCES))

Spotted by Debian's reproducible builds project:
https://wiki.debian.org/ReproducibleBuilds
https://reproducible-builds.org/

Christoph

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2016-01-04 15:03:51 Re: Rationalizing Query.withCheckOptions
Previous Message Robert Haas 2016-01-04 14:58:28 Re: [PATCH] Refactoring of LWLock tranches