Source: ora2pg Version: 18.0-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: randomness X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that ora2pg could not be built reproducibly. This is because it encodes the build process's current PID in the default configuration file. Patch attached. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
--- a/debian/patches/03_reproducible_build.diff 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/03_reproducible_build.diff 2017-04-29 09:06:38.343116627 +0100 @@ -0,0 +1,57 @@ +Description: Make the build reproducible +Author: Chris Lamb <la...@debian.org> +Last-Update: 2017-04-29 + +--- ora2pg-18.0.orig/Makefile.PL ++++ ora2pg-18.0/Makefile.PL +@@ -51,6 +51,8 @@ if ($^O !~ /MSWin32|dos/i) { + + my $oracle_home = $ENV{ORACLE_HOME} || '/usr/local/oracle/10g'; + ++my $T = $ENV{SOURCE_DATE_EPOCH} || $$; ++ + # Setup ok. generating default ora2pg.conf config file + unless(open(OUTCFG, ">$DEST_CONF_FILE")) { + print "\nError: can't write config file $DEST_CONF_FILE, $!\n"; +@@ -288,7 +290,7 @@ CONTEXT_AS_TRGM 0 + # To automatically update the column when a modification in the title column + # appears, Ora2Pg adds the following trigger: + # +-# CREATE FUNCTION tsv_t_document_title() RETURNS trigger AS $$ ++# CREATE FUNCTION tsv_t_document_title() RETURNS trigger AS $T + # BEGIN + # IF TG_OP = 'INSERT' OR new.title != old.title THEN + # new.tsv_title := +@@ -296,7 +298,7 @@ CONTEXT_AS_TRGM 0 + # END IF; + # return new; + # END +-# $$ LANGUAGE plpgsql; ++# $T LANGUAGE plpgsql; + # CREATE TRIGGER trig_tsv_t_document_title BEFORE INSERT OR UPDATE + # ON t_document + # FOR EACH ROW EXECUTE PROCEDURE tsv_t_document_title(); +@@ -325,9 +327,9 @@ FTS_INDEX_ONLY 1 + # + # CREATE OR REPLACE FUNCTION unaccent_immutable(text) + # RETURNS text AS +-# $$ ++# $T + # SELECT public.unaccent('public.unaccent', $1) +-# $$ LANGUAGE sql IMMUTABLE ++# $T LANGUAGE sql IMMUTABLE + # COST 1; + # + # indexes are exported as follow: +@@ -347,9 +349,9 @@ USE_UNACCENT 0 + # + # CREATE OR REPLACE FUNCTION unaccent_immutable(text) + # RETURNS text AS +-# $$ ++# $T + # SELECT lower(public.unaccent('public.unaccent', $1)); +-# $$ LANGUAGE sql IMMUTABLE; ++# $T LANGUAGE sql IMMUTABLE; + # + USE_LOWER_UNACCENT 0 + --- a/debian/patches/series 2017-04-29 09:03:13.670357628 +0100 --- b/debian/patches/series 2017-04-29 09:04:46.710702421 +0100 @@ -1,2 +1,3 @@ 01_Ora2Pg.pod.diff 02_remove_unnecessary_files.diff +03_reproducible_build.diff