[postgresql] testsuite: fix FTBFS against perl-5.18
Pavel Raiskup
praiskup at fedoraproject.org
Tue Jul 23 08:16:04 UTC 2013
commit 44506bd77edb0b9b973a829b0c64c9a99343c93c
Author: Pavel Raiskup <praiskup at redhat.com>
Date: Tue Jul 23 10:15:05 2013 +0200
testsuite: fix FTBFS against perl-5.18
Version: 9.2.4-5
postgresql-9.2.4-perl-5.18.patch | 83 ++++++++++++++++++++++++++++++++++++++
postgresql.spec | 8 ++++
2 files changed, 91 insertions(+), 0 deletions(-)
---
diff --git a/postgresql-9.2.4-perl-5.18.patch b/postgresql-9.2.4-perl-5.18.patch
new file mode 100644
index 0000000..dae9b60
--- /dev/null
+++ b/postgresql-9.2.4-perl-5.18.patch
@@ -0,0 +1,83 @@
+commit 035a5e1e8c346efe25df6be4627b5f24cc3736b1
+Author: Tom Lane <tgl at sss.pgh.pa.us>
+AuthorDate: Mon Jun 3 14:19:26 2013 -0400
+Commit: Tom Lane <tgl at sss.pgh.pa.us>
+CommitDate: Mon Jun 3 14:19:26 2013 -0400
+
+ Add semicolons to eval'd strings to hide a minor Perl behavioral change.
+
+ "eval q{foo}" used to complain that the error was on line 2 of the eval'd
+ string, because eval internally tacked on "\n;" so that the end of the
+ erroneous command was indeed on line 2. But as of Perl 5.18 it more
+ sanely says that the error is on line 1. To avoid Perl-version-dependent
+ regression test results, use "eval q{foo;}" instead in the two places
+ where this matters. Per buildfarm.
+
+ Since people might try to use newer Perl versions with older PG releases,
+ back-patch as far as 9.0 where these test cases were added.
+
+diff --git a/src/pl/plperl/expected/plperl.out b/src/pl/plperl/expected/plperl.out
+index 29c1d11..d23a302 100644
+--- a/src/pl/plperl/expected/plperl.out
++++ b/src/pl/plperl/expected/plperl.out
+@@ -626,8 +626,8 @@ DO $$ open my $fh, "</nonesuch"; $$ LANGUAGE plperl;
+ ERROR: 'open' trapped by operation mask at line 1.
+ CONTEXT: PL/Perl anonymous code block
+ -- check that eval is allowed and eval'd restricted ops are caught
+-DO $$ eval q{chdir '.'}; warn "Caught: $@"; $$ LANGUAGE plperl;
+-WARNING: Caught: 'chdir' trapped by operation mask at line 2.
++DO $$ eval q{chdir '.';}; warn "Caught: $@"; $$ LANGUAGE plperl;
++WARNING: Caught: 'chdir' trapped by operation mask at line 1.
+ CONTEXT: PL/Perl anonymous code block
+ -- check that compiling do (dofile opcode) is allowed
+ -- but that executing it for a file not already loaded (via require) dies
+diff --git a/src/pl/plperl/expected/plperl_init.out b/src/pl/plperl/expected/plperl_init.out
+index a21ea0b..133828e 100644
+--- a/src/pl/plperl/expected/plperl_init.out
++++ b/src/pl/plperl/expected/plperl_init.out
+@@ -1,14 +1,14 @@
+ -- test plperl.on_plperl_init errors are fatal
+ -- This test tests setting on_plperl_init after loading plperl
+ LOAD 'plperl';
+-SET SESSION plperl.on_plperl_init = ' system("/nonesuch") ';
++SET SESSION plperl.on_plperl_init = ' system("/nonesuch"); ';
+ SHOW plperl.on_plperl_init;
+- plperl.on_plperl_init
+------------------------
+- system("/nonesuch")
++ plperl.on_plperl_init
++------------------------
++ system("/nonesuch");
+ (1 row)
+
+ DO $$ warn 42 $$ language plperl;
+-ERROR: 'system' trapped by operation mask at line 2.
++ERROR: 'system' trapped by operation mask at line 1.
+ CONTEXT: while executing plperl.on_plperl_init
+ PL/Perl anonymous code block
+diff --git a/src/pl/plperl/sql/plperl.sql b/src/pl/plperl/sql/plperl.sql
+index ad36161..dc6b169 100644
+--- a/src/pl/plperl/sql/plperl.sql
++++ b/src/pl/plperl/sql/plperl.sql
+@@ -405,7 +405,7 @@ DO $$ qx("/nonesuch"); $$ LANGUAGE plperl;
+ DO $$ open my $fh, "</nonesuch"; $$ LANGUAGE plperl;
+
+ -- check that eval is allowed and eval'd restricted ops are caught
+-DO $$ eval q{chdir '.'}; warn "Caught: $@"; $$ LANGUAGE plperl;
++DO $$ eval q{chdir '.';}; warn "Caught: $@"; $$ LANGUAGE plperl;
+
+ -- check that compiling do (dofile opcode) is allowed
+ -- but that executing it for a file not already loaded (via require) dies
+diff --git a/src/pl/plperl/sql/plperl_init.sql b/src/pl/plperl/sql/plperl_init.sql
+index d60268d..4ebf3f8 100644
+--- a/src/pl/plperl/sql/plperl_init.sql
++++ b/src/pl/plperl/sql/plperl_init.sql
+@@ -3,7 +3,7 @@
+ -- This test tests setting on_plperl_init after loading plperl
+ LOAD 'plperl';
+
+-SET SESSION plperl.on_plperl_init = ' system("/nonesuch") ';
++SET SESSION plperl.on_plperl_init = ' system("/nonesuch"); ';
+
+ SHOW plperl.on_plperl_init;
+
diff --git a/postgresql.spec b/postgresql.spec
index facc1a9..9f264c7 100644
--- a/postgresql.spec
+++ b/postgresql.spec
@@ -111,6 +111,10 @@ Patch7: postgresql-9.2.4-aarch64-atomic.patch
# Comments for these patches are in the patch files.
Patch8: postgresql-man.patch
+# Build even with Perl 5.18+
+# ~> upstream (035a5e1e8c34)
+Patch9: postgresql-9.2.4-perl-5.18.patch
+
BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk
BuildRequires: perl(ExtUtils::Embed), perl-devel
BuildRequires: readline-devel zlib-devel
@@ -338,6 +342,7 @@ benchmarks.
%patch5 -p1
%patch6 -p1
%patch8 -p1
+%patch9 -p1
# We used to run autoconf here, but there's no longer any real need to,
# since Postgres ships with a reasonably modern configure script.
@@ -1109,6 +1114,9 @@ fi
%endif
%changelog
+* Tue Jul 23 2013 Pavel Raiskup <praiskup at redhat.com> - 9.2.4-5
+- fix testsuite to allow build against Perl 5.18
+
* Thu Jul 18 2013 Petr Pisar <ppisar at redhat.com> - 9.2.4-5
- Perl 5.18 rebuild
More information about the scm-commits
mailing list