diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8dc2f3d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/DBD-Pg-3.7.4.tar.gz diff --git a/.perl-DBD-Pg.metadata b/.perl-DBD-Pg.metadata new file mode 100644 index 0000000..d3383b7 --- /dev/null +++ b/.perl-DBD-Pg.metadata @@ -0,0 +1 @@ +6f0598fef195203057bae7947859590e8b79e497 SOURCES/DBD-Pg-3.7.4.tar.gz diff --git a/SOURCES/DBD-Pg-3.7.4-Adjust-tests-for-removal-of-WITH-OIDS-in-PostgreSQL-.patch b/SOURCES/DBD-Pg-3.7.4-Adjust-tests-for-removal-of-WITH-OIDS-in-PostgreSQL-.patch new file mode 100644 index 0000000..491c76c --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Adjust-tests-for-removal-of-WITH-OIDS-in-PostgreSQL-.patch @@ -0,0 +1,72 @@ +From fe47b5e148a79d0d8935293bdc05cd4444ca87cd Mon Sep 17 00:00:00 2001 +From: Dagfinn Ilmari Mannsaker +Date: Tue, 9 Apr 2019 17:44:38 +0100 +Subject: [PATCH] Adjust tests for removal of WITH OIDS in PostgreSQL 12 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Petr Písař: Ported to 3.7.4 from +ab1808c7b9cbac7099972105ec59b56e7d6ed5a6. + +Signed-off-by: Petr Písař +--- + t/03dbmethod.t | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/t/03dbmethod.t b/t/03dbmethod.t +index a89a054..97f375e 100644 +--- a/t/03dbmethod.t ++++ b/t/03dbmethod.t +@@ -757,6 +757,8 @@ $sth = $dbh->statistics_info(undef,undef,'dbd_pg_test9',undef,undef); + is ($sth, undef, $t); + + ++my $with_oids = $pgversion < 120000 ? 'WITH OIDS' : ''; ++my $hash_index_idx = $with_oids ? 5 : 4; + ## Create some tables with various indexes + { + local $SIG{__WARN__} = sub {}; +@@ -772,10 +774,10 @@ is ($sth, undef, $t); + $dbh->do("CREATE TABLE $table2 (a INT, b INT, c INT, PRIMARY KEY(a,b), UNIQUE(b,c))"); + $dbh->do("CREATE INDEX dbd_pg_test2_expr ON $table2(c,(a+b))"); + +- $dbh->do("CREATE TABLE $table3 (a INT, b INT, c INT, PRIMARY KEY(a)) WITH OIDS"); ++ $dbh->do("CREATE TABLE $table3 (a INT, b INT, c INT, PRIMARY KEY(a)) $with_oids"); + $dbh->do("CREATE UNIQUE INDEX dbd_pg_test3_index_b ON $table3(b)"); + $dbh->do("CREATE INDEX dbd_pg_test3_index_c ON $table3 USING hash(c)"); +- $dbh->do("CREATE INDEX dbd_pg_test3_oid ON $table3(oid)"); ++ $dbh->do("CREATE INDEX dbd_pg_test3_oid ON $table3(oid)") if $with_oids; + $dbh->do("CREATE UNIQUE INDEX dbd_pg_test3_pred ON $table3(c) WHERE c > 0 AND c < 45"); + $dbh->commit(); + } +@@ -801,7 +803,7 @@ one => [ + [ undef, $schema, $table3, '0', undef, 'dbd_pg_test3_index_b', 'btree', 1, 'b', 'A', '0', '1', undef, 'b' ], + [ undef, $schema, $table3, '0', undef, 'dbd_pg_test3_pkey', 'btree', 1, 'a', 'A', '0', '1', undef, 'a' ], + [ undef, $schema, $table3, '0', undef, 'dbd_pg_test3_pred', 'btree', 1, 'c', 'A', '0', '1', '((c > 0) AND (c < 45))', 'c' ], +- [ undef, $schema, $table3, '1', undef, 'dbd_pg_test3_oid', 'btree', 1, 'oid', 'A', '0', '1', undef, 'oid' ], ++ ($with_oids ? [ undef, $schema, $table3, '1', undef, 'dbd_pg_test3_oid', 'btree', 1, 'oid', 'A', '0', '1', undef, 'oid' ] : ()), + [ undef, $schema, $table3, '1', undef, 'dbd_pg_test3_index_c', 'hashed', 1, 'c', 'A', '0', '4', undef, 'c' ], + ], + three_uo => [ +@@ -834,7 +836,7 @@ $t="Correct stats output for $table3"; + $sth = $dbh->statistics_info(undef,$schema,$table3,undef,undef); + $stats = $sth->fetchall_arrayref; + ## Too many intra-version differences to try for an exact number here: +-$correct_stats->{three}[5][11] = $stats->[5][11] = 0; ++$correct_stats->{three}[$hash_index_idx][11] = $stats->[$hash_index_idx][11] = 0; + is_deeply ($stats, $correct_stats->{three}, $t); + + $t="Correct stats output for $table3 (unique only)"; +@@ -856,7 +858,7 @@ is_deeply ($stats, $correct_stats->{three_uo}, $t); + $t="Correct stats output for $table3"; + $sth = $dbh->statistics_info(undef,undef,$table3,undef,undef); + $stats = $sth->fetchall_arrayref; +- $correct_stats->{three}[5][11] = $stats->[5][11] = 0; ++ $correct_stats->{three}[$hash_index_idx][11] = $stats->[$hash_index_idx][11] = 0; + is_deeply ($stats, $correct_stats->{three}, $t); + + $t="Correct stats output for $table3 (unique only)"; +-- +2.21.0 + diff --git a/SOURCES/DBD-Pg-3.7.4-Don-t-try-to-silence-ERRORs-in-test.patch b/SOURCES/DBD-Pg-3.7.4-Don-t-try-to-silence-ERRORs-in-test.patch new file mode 100644 index 0000000..40d4fad --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Don-t-try-to-silence-ERRORs-in-test.patch @@ -0,0 +1,32 @@ +From 5c5269ef7e9c3db2d6090c411e5aa71fffdc4c04 Mon Sep 17 00:00:00 2001 +From: Dagfinn Ilmari Mannsaker +Date: Tue, 9 Apr 2019 17:49:10 +0100 +Subject: [PATCH] Don't try to silence ERRORs in test +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +PostrgreSQL 12 no longer allows setting client_min_messages='FATAL', +and ERROR is sufficient in this case anyway. + +Signed-off-by: Petr Písař +--- + t/04misc.t | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/04misc.t b/t/04misc.t +index f739f8a..21b9261 100644 +--- a/t/04misc.t ++++ b/t/04misc.t +@@ -113,7 +113,7 @@ $BC$ + + is( $sth->err, undef, q{Statement attribute 'err' is initially undef}); + +- $dbh->do(q{SET client_min_messages = 'FATAL'}); ++ $dbh->do(q{SET client_min_messages = 'ERROR'}); + + TODO: { + local $TODO = q{Known bug: notice and warnings should set err to 6}; +-- +2.21.0 + diff --git a/SOURCES/DBD-Pg-3.7.4-Fix-client_min_messages-FATAL-test-on-upcoming-Postg.patch b/SOURCES/DBD-Pg-3.7.4-Fix-client_min_messages-FATAL-test-on-upcoming-Postg.patch new file mode 100644 index 0000000..b083ec2 --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Fix-client_min_messages-FATAL-test-on-upcoming-Postg.patch @@ -0,0 +1,50 @@ +From 2b60151aea6f03ac7e846aae0d21e7f335cad99c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= +Date: Wed, 9 Jan 2019 21:24:09 +0000 +Subject: [PATCH] Fix client_min_messages=FATAL test on upcoming PostgreSQL + releases + +The upcoming minor releases of PostgreSQL cap client_min_messages to +ERROR to avoid the case this test was testing for. Skip the test if +client_min_messages doesn't come back as 'fatal' after we set it. +--- + t/02attribs.t | 23 ++++++++++++++--------- + 1 file changed, 14 insertions(+), 9 deletions(-) + +diff --git a/t/02attribs.t b/t/02attribs.t +index b9ecd90..75e8f48 100644 +--- a/t/02attribs.t ++++ b/t/02attribs.t +@@ -1204,15 +1204,20 @@ $sth->execute(); + is ($warning, undef, $t); + + ## Special case in which errors are not sent to the client! +-$t = q{When client_min_messages is FATAL, we do our best to alert the caller it's a Bad Idea}; +-$dbh->do(q{SET client_min_messages = 'FATAL'}); +-$dbh->{RaiseError} = 0; +-$dbh->{AutoCommit} = 1; +-eval { +- $dbh->do('SELECT 1 FROM nonesuh'); +-}; +-my $errorstring = $dbh->errstr; +-like ( $errorstring, qr/Perhaps client_min_messages/, $t); ++SKIP: { ++ $t = q{When client_min_messages is FATAL, we do our best to alert the caller it's a Bad Idea}; ++ $dbh->do(q{SET client_min_messages = 'FATAL'}); ++ skip "This version of PostgreSQL caps client_min_messages to ERROR", 1 ++ unless $dbh->selectrow_array('SHOW client_min_messages') eq 'fatal'; ++ ++ $dbh->{RaiseError} = 0; ++ $dbh->{AutoCommit} = 1; ++ eval { ++ $dbh->do('SELECT 1 FROM nonesuh'); ++ }; ++ my $errorstring = $dbh->errstr; ++ like ( $errorstring, qr/Perhaps client_min_messages/, $t); ++} + $dbh->rollback(); + $dbh->do(q{SET client_min_message = 'NOTICE'}); + $dbh->{RaiseError} = 1; +-- +2.20.1 + diff --git a/SOURCES/DBD-Pg-3.7.4-Fix-ping-error-detection-on-PostgreSQL-12.patch b/SOURCES/DBD-Pg-3.7.4-Fix-ping-error-detection-on-PostgreSQL-12.patch new file mode 100644 index 0000000..e9354a1 --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Fix-ping-error-detection-on-PostgreSQL-12.patch @@ -0,0 +1,52 @@ +From c1eadf4e3dd49a344b38d70a46bd66c2d749e65f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= +Date: Tue, 9 Apr 2019 18:50:35 +0100 +Subject: [PATCH] Fix ->ping error detection on PostgreSQL 12 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The libpq write error handling was revamped in PostgreSQL 12, so it +can return a non-NULL pointer even if it encouters a fatal error. + +Instead rely on PQresultStatus() to detect fatal errors (including +NULL pointers). + +Petr Písař: Ported to 3.7.4 from 3e1a89a8e5557607932e57b85a2bbc875c2821b6. + +Signed-off-by: Petr Písař +--- + dbdimp.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/dbdimp.c b/dbdimp.c +index f5c8703..0f7941a 100644 +--- a/dbdimp.c ++++ b/dbdimp.c +@@ -493,19 +493,19 @@ int dbd_db_ping (SV * dbh) + tstatus = pg_db_txn_status(aTHX_ imp_dbh); + if (TRACE5_slow) TRC(DBILOGFP, "%sdbd_db_ping txn_status is %d\n", THEADER_slow, tstatus); + +- if (tstatus >= 4) { /* Unknown, so we err on the side of "bad" */ ++ if (tstatus >= PQTRANS_UNKNOWN) { /* Unknown, so we err on the side of "bad" */ + if (TEND_slow) TRC(DBILOGFP, "%sEnd dbd_pg_ping (result: -2 unknown/bad)\n", THEADER_slow); + return -2; + } + + /* No matter what state we are in, send an empty query to the backend */ + result = PQexec(imp_dbh->conn, "/* DBD::Pg ping test v3.7.4 */"); +- if (NULL == result) { ++ status = PQresultStatus(result); ++ PQclear(result); ++ if (PGRES_FATAL_ERROR == status) { + /* Something very bad, usually indicating the backend is gone */ + return -3; + } +- status = PQresultStatus(result); +- PQclear(result); + + /* We expect to see an empty query most times */ + if (PGRES_EMPTY_QUERY == status) { +-- +2.21.0 + diff --git a/SOURCES/DBD-Pg-3.7.4-Fix-test-to-allow-for-changed-message-of-pg_ctl-outp.patch b/SOURCES/DBD-Pg-3.7.4-Fix-test-to-allow-for-changed-message-of-pg_ctl-outp.patch new file mode 100644 index 0000000..ba93f94 --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Fix-test-to-allow-for-changed-message-of-pg_ctl-outp.patch @@ -0,0 +1,30 @@ +From 575c869da97a9f387cb26016f521e02b2708eb71 Mon Sep 17 00:00:00 2001 +From: Erik Rijkers +Date: Mon, 8 Apr 2019 21:53:17 -0400 +Subject: [PATCH] Fix test to allow for changed message of pg_ctl output. CPAN + RT #128966 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + t/dbdpg_test_setup.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/dbdpg_test_setup.pl b/t/dbdpg_test_setup.pl +index 24f44ab..8dd17a2 100644 +--- a/t/dbdpg_test_setup.pl ++++ b/t/dbdpg_test_setup.pl +@@ -331,7 +331,7 @@ version: $version + $info = qx{$pg_ctl --help 2>&1}; + }; + last GETHANDLE if $@; ## Fail - pg_ctl bad +- if (!defined $info or ($info !~ /\@postgresql\.org/ and $info !~ /run as root/)) { ++ if (!defined $info or ($info !~ /\@[a-z.-]*?postgresql\.org/ and $info !~ /run as root/)) { + $@ = defined $initdb ? "Bad pg_ctl output: $info" : 'Bad pg_ctl output'; + last GETHANDLE; ## Fail - pg_ctl bad + } +-- +2.21.0 + diff --git a/SOURCES/DBD-Pg-3.7.4-Inline-no-longer-conditional-catalog-query-fragments.patch b/SOURCES/DBD-Pg-3.7.4-Inline-no-longer-conditional-catalog-query-fragments.patch new file mode 100644 index 0000000..4832b01 --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Inline-no-longer-conditional-catalog-query-fragments.patch @@ -0,0 +1,66 @@ +From c73d40c6e219621c4bdc1fe9cadd52b7f09e8560 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= +Date: Mon, 31 Dec 2018 18:45:57 +0100 +Subject: [PATCH] Inline no-longer-conditional catalog query fragments +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some bits of catalog queries needed version-specific variants, but when +support for the versions that necessitated them was removed, the +variables were left in place. This removes these now-unnecessary +variables and puts the SQL fragments back in the query. + +The pg_get_expr() call does not need to be conditional, it exists in 7.4 +too: https://www.postgresql.org/docs/7.4/functions-misc.html + +Petr Písař: Ported to 3.7.4 from +c7ea8fd90b5fc09f28e090e0e00cbb2708eda4cc. + +Signed-off-by: Petr Písař +--- + Pg.pm | 14 +++----------- + 1 file changed, 3 insertions(+), 11 deletions(-) + +diff --git a/Pg.pm b/Pg.pm +index 9c664e9..5658d1b 100644 +--- a/Pg.pm ++++ b/Pg.pm +@@ -443,14 +443,6 @@ use 5.008001; + + my $whereclause = join "\n\t\t\t\tAND ", '', @search; + +- my $schemajoin = 'JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace)'; +- +- my $remarks = 'pg_catalog.col_description(a.attrelid, a.attnum)'; +- +- my $column_def = $dbh->{private_dbdpg}{version} >= 80000 +- ? 'pg_catalog.pg_get_expr(af.adbin, af.adrelid)' +- : 'af.adsrc'; +- + my $col_info_sql = qq! + SELECT + NULL::text AS "TABLE_CAT" +@@ -464,8 +456,8 @@ use 5.008001; + , NULL::text AS "DECIMAL_DIGITS" + , NULL::text AS "NUM_PREC_RADIX" + , CASE a.attnotnull WHEN 't' THEN 0 ELSE 1 END AS "NULLABLE" +- , $remarks AS "REMARKS" +- , $column_def AS "COLUMN_DEF" ++ , pg_catalog.col_description(a.attrelid, a.attnum) AS "REMARKS" ++ , pg_catalog.pg_get_expr(af.adbin, af.adrelid) AS "COLUMN_DEF" + , NULL::text AS "SQL_DATA_TYPE" + , NULL::text AS "SQL_DATETIME_SUB" + , NULL::text AS "CHAR_OCTET_LENGTH" +@@ -486,7 +478,7 @@ use 5.008001; + JOIN pg_catalog.pg_attribute a ON (t.oid = a.atttypid) + JOIN pg_catalog.pg_class c ON (a.attrelid = c.oid) + LEFT JOIN pg_catalog.pg_attrdef af ON (a.attnum = af.adnum AND a.attrelid = af.adrelid) +- $schemajoin ++ JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace) + WHERE + a.attnum >= 0 + AND c.relkind IN ('r','v','m') +-- +2.21.0 + diff --git a/SOURCES/DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_attrdef.adsrc-column.patch b/SOURCES/DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_attrdef.adsrc-column.patch new file mode 100644 index 0000000..c6de09f --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_attrdef.adsrc-column.patch @@ -0,0 +1,37 @@ +From 88d2f8f1fc95bcd16e95d3fc667783fb7a9ab05b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= +Date: Fri, 11 Jan 2019 23:47:29 +0000 +Subject: [PATCH] Remove usage of deprecated pg_attrdef.adsrc column +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It doesn't track outside change that might affect the representation, +and will be removed in PostgreSQL 12. + +Petr Písař: Ported to 3.7.4 from 88d2f8f1fc95bcd16e95d3fc667783fb7a9ab05b. +--- + Pg.pm | 4 ++-- + +diff --git a/Pg.pm b/Pg.pm +index 2b46800..0ffe083 100644 +--- a/Pg.pm ++++ b/Pg.pm +@@ -349,12 +349,12 @@ use 5.008001; + $oid =~ /(\d+)/ or die qq{OID was not numeric?!?\n}; + $oid = $1; + ## This table has a primary key. Is there a sequence associated with it via a unique, indexed column? +- $SQL = "SELECT a.attname, i.indisprimary, pg_catalog.pg_get_expr(adbin,adrelid)\n". ++ $SQL = "SELECT a.attname, i.indisprimary, pg_catalog.pg_get_expr(d.adbin, d.adrelid)\n". + "FROM pg_catalog.pg_index i, pg_catalog.pg_attribute a, pg_catalog.pg_attrdef d\n ". + "WHERE i.indrelid = $oid AND d.adrelid=a.attrelid AND d.adnum=a.attnum\n". + " AND a.attrelid = $oid AND i.indisunique IS TRUE\n". + " AND a.atthasdef IS TRUE AND i.indkey[0]=a.attnum\n". +- q{ AND d.adsrc ~ '^nextval'}; ++ " AND pg_catalog.pg_get_expr(d.adbin, d.adrelid) ~ '^nextval'"; + $sth = $dbh->prepare($SQL); + $count = $sth->execute(); + if (!defined $count or $count eq '0E0') { +-- +2.21.0 + diff --git a/SOURCES/DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_constraint.consrc-colu.patch b/SOURCES/DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_constraint.consrc-colu.patch new file mode 100644 index 0000000..96ac060 --- /dev/null +++ b/SOURCES/DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_constraint.consrc-colu.patch @@ -0,0 +1,32 @@ +From 35080ce5535e233428a7e17320e111962daec7e1 Mon Sep 17 00:00:00 2001 +From: Dagfinn Ilmari Mannsaker +Date: Tue, 9 Apr 2019 17:40:55 +0100 +Subject: [PATCH] Remove usage of deprecated pg_constraint.consrc column +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It doesn't track outside change that might affect the representation, +and will be removed in PostgreSQL 12. + +Petr Písař: Ported to 3.7.4 from 35080ce5535e233428a7e17320e111962daec7e1. +--- + Pg.pm | 3 ++- + +diff --git a/Pg.pm b/Pg.pm +index 9e0e9d7..13cd68f 100644 +--- a/Pg.pm ++++ b/Pg.pm +@@ -530,7 +530,8 @@ use 5.008001; + $row->[$col_map{DATA_TYPE}] = DBD::Pg::db::pg_type_info($dbh,$row->[$col_map{DATA_TYPE}]); + + # Add pg_constraint +- my $SQL = q{SELECT consrc FROM pg_catalog.pg_constraint WHERE contype = 'c' AND }. ++ my $SQL = q{SELECT pg_catalog.pg_get_constraintdef(oid) }. ++ q{FROM pg_catalog.pg_constraint WHERE contype = 'c' AND }. + qq{conrelid = $aid AND conkey = '{$attnum}'}; + my $info = $dbh->selectall_arrayref($SQL); + if (@$info) { +-- +2.21.0 + diff --git a/SPECS/perl-DBD-Pg.spec b/SPECS/perl-DBD-Pg.spec new file mode 100644 index 0000000..edd4447 --- /dev/null +++ b/SPECS/perl-DBD-Pg.spec @@ -0,0 +1,472 @@ +Name: perl-DBD-Pg +Summary: A PostgreSQL interface for perl +Version: 3.7.4 +Release: 4%{?dist} +# Pg.pm, README: Points to directory which contains GPLv2+ and Artistic +# other files: Same as Perl (GPL+ or Artistic) +License: GPLv2+ or Artistic +Group: Development/Libraries +Source0: http://search.cpan.org/CPAN/authors/id/T/TU/TURNSTEP/DBD-Pg-%{version}.tar.gz +# Adapt to changes in libpq 12, bug #1772373, in upstream 3.8.0 +Patch0: DBD-Pg-3.7.4-Fix-ping-error-detection-on-PostgreSQL-12.patch +# 1/2 Adapt tests to removal of client_min_messages='FATAL' in PostgreSQL 12, +# bug #1772373, CPAN RT#128529, in upstream 3.8.0 +Patch1: DBD-Pg-3.7.4-Fix-client_min_messages-FATAL-test-on-upcoming-Postg.patch +# 1/2 Do not use pg_attrdef.adsrc column in last_insert_id() that was removed in +# PostgreSQL 12, bug #1772373, in upstream 3.8.0 +Patch2: DBD-Pg-3.7.4-Inline-no-longer-conditional-catalog-query-fragments.patch +# 2/2 Do not use pg_attrdef.adsrc column in last_insert_id() that was removed in +# PostgreSQL 12, bug #1772373, in upstream 3.8.0 +Patch3: DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_attrdef.adsrc-column.patch +# Adapt tests to changes in pg_ctl 12 output, bug #1772373, CPAN RT#128966, +# in upstream 3.8.0 +Patch4: DBD-Pg-3.7.4-Fix-test-to-allow-for-changed-message-of-pg_ctl-outp.patch +# Do not use pg_constraint.consrc column in column_info() that was removed in +# PostgreSQL 12, bug #1772373, in upstream 3.8.0 +Patch5: DBD-Pg-3.7.4-Remove-usage-of-deprecated-pg_constraint.consrc-colu.patch +# Adapt tests to removal of WITH OIDS in PostgreSQL 12, bug #1772373, +# in upstream 3.8.0 +Patch6: DBD-Pg-3.7.4-Adjust-tests-for-removal-of-WITH-OIDS-in-PostgreSQL-.patch +# 2/2 Adapt tests to removal of client_min_messages='FATAL' in PostgreSQL 12, +# bug #1772373, CPAN RT#128529, in upstream 3.8.0 +Patch7: DBD-Pg-3.7.4-Don-t-try-to-silence-ERRORs-in-test.patch +URL: http://search.cpan.org/dist/DBD-Pg/ + +BuildRequires: findutils +BuildRequires: gcc +BuildRequires: make +BuildRequires: perl-devel +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(Carp) +BuildRequires: perl(Config) +BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76 +BuildRequires: perl(File::Spec) +BuildRequires: perl(lib) +BuildRequires: perl(strict) +BuildRequires: perl(vars) +BuildRequires: perl(warnings) +BuildRequires: postgresql-devel >= 7.4 +# Run-time: +# Prevent bug #443495 +BuildRequires: perl(DBI) >= 1.614 +BuildRequires: perl(DynaLoader) +BuildRequires: perl(Exporter) +BuildRequires: perl(if) +BuildRequires: perl(version) +# Tests: +BuildRequires: perl(charnames) +BuildRequires: perl(constant) +BuildRequires: perl(Cwd) +BuildRequires: perl(Data::Dumper) +BuildRequires: perl(open) +BuildRequires: perl(POSIX) +BuildRequires: perl(Test::More) >= 0.88 +BuildRequires: perl(Test::Simple) +BuildRequires: perl(Time::HiRes) +BuildRequires: perl(utf8) +BuildRequires: postgresql-server +# Optional tests: +BuildRequires: perl(Encode) +BuildRequires: perl(File::Temp) + +Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) +Requires: perl(DBI) >= 1.614 + +%{?perl_default_filter} +%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(DBD::Pg\\)$ +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(DBI\\)$ + +%description +DBD::Pg is a Perl module that works with the DBI module to provide access +to PostgreSQL databases. + +%prep +%setup -q -n DBD-Pg-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 + +%build +perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" NO_PACKLIST=1 +make %{?_smp_mflags} + +%install +make pure_install DESTDIR=$RPM_BUILD_ROOT +find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -delete +%{_fixperms} $RPM_BUILD_ROOT/* + +%check +# Full test coverage requires a live PostgreSQL database (see the README file) +#export DBI_DSN=dbi:Pg:dbname= +#export DBI_USER= +#export DBI_PASS= +# If variables undefined, package test will create it's own database. +make test + +%files +%doc Changes README README.dev TODO +%{perl_vendorarch}/DBD/ +%{perl_vendorarch}/auto/DBD/ +%{perl_vendorarch}/Bundle/DBD/Pg.pm +%{_mandir}/man3/*.3* + +%changelog +* Fri Nov 08 2019 Petr Pisar - 3.7.4-4 +- Adapt to changes in libpq 12 (bug #1772373) +- Adapt to changes in PostgreSQL 12 (bug #1772373) + +* Fri Mar 29 2019 Jitka Plesnikova - 3.7.4-3 +- Rebuild with enable hardening (bug #1636329) + +* Mon Feb 19 2018 Jitka Plesnikova - 3.7.4-2 +- Add build-require gcc + +* Tue Feb 13 2018 Jitka Plesnikova - 3.7.4-1 +- 3.7.4 bump + +* Mon Feb 12 2018 Jitka Plesnikova - 3.7.1-1 +- 3.7.1 bump + +* Thu Feb 08 2018 Fedora Release Engineering - 3.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Sep 25 2017 Jitka Plesnikova - 3.7.0-1 +- 3.7.0 bump +- Remove explicit Provides: perl(DBD::Pg) = %%{version} + +* Thu Jul 27 2017 Fedora Release Engineering - 3.6.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jun 05 2017 Jitka Plesnikova - 3.6.2-2 +- Perl 5.26 rebuild + +* Wed May 24 2017 Jitka Plesnikova - 3.6.2-1 +- 3.6.2 bump + +* Tue Apr 18 2017 Jitka Plesnikova - 3.6.0-1 +- 3.6.0 bump + +* Sat Feb 11 2017 Fedora Release Engineering - 3.5.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sun May 15 2016 Jitka Plesnikova - 3.5.3-3 +- Perl 5.24 rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 3.5.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Oct 02 2015 Jitka Plesnikova - 3.5.3-1 +- 3.5.3 bump + +* Wed Sep 30 2015 Jitka Plesnikova - 3.5.2-1 +- 3.5.2 bump + +* Thu Jun 18 2015 Fedora Release Engineering - 3.5.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Jun 05 2015 Jitka Plesnikova - 3.5.1-2 +- Perl 5.22 rebuild + +* Wed Feb 18 2015 Jitka Plesnikova - 3.5.1-1 +- 3.5.1 bump + +* Wed Feb 11 2015 Jitka Plesnikova - 3.5.0-1 +- 3.5.0 bump +- Remove tests sub-package, tests don't work without Makefile + +* Mon Sep 29 2014 Jitka Plesnikova - 3.4.2-1 +- 3.4.2 bump + +* Thu Aug 28 2014 Jitka Plesnikova - 3.4.1-2 +- Perl 5.20 rebuild + +* Fri Aug 22 2014 Jitka Plesnikova - 3.4.1-1 +- 3.4.1 bump + +* Tue Aug 19 2014 Jitka Plesnikova - 3.4.0-1 +- 3.4.0 bump + +* Sun Aug 17 2014 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 3.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Jun 03 2014 Jitka Plesnikova - 3.3.0-1 +- 3.3.0 bump + +* Mon May 26 2014 Jitka Plesnikova - 3.2.1-1 +- 3.2.1 bump + +* Mon Apr 14 2014 Jitka Plesnikova - 3.1.1-1 +- 3.1.1 bump + +* Wed Feb 05 2014 Jitka Plesnikova - 3.0.0-1 +- 3.0.0 bump + +* Wed Jan 29 2014 Petr Pisar - 2.19.3-6 +- Adapt to changes in Postgres 9.3 (bug #1058723) + +* Sat Aug 03 2013 Fedora Release Engineering - 2.19.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 24 2013 Petr Pisar - 2.19.3-4 +- Perl 5.18 rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 2.19.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Aug 22 2012 Petr Pisar - 2.19.3-2 +- Specify all dependencies +- Move testme.tmp.pl to tests sub-package + +* Wed Aug 22 2012 Petr Pisar - 2.19.3-1 +- 2.19.3 bump + +* Fri Jul 20 2012 Fedora Release Engineering - 2.19.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jun 16 2012 Petr Pisar - 2.19.2-2 +- Perl 5.16 rebuild + +* Wed Mar 14 2012 Marcela Mašláňová 2.19.2-1 +- bump to 2.19.2 + +* Fri Jan 13 2012 Fedora Release Engineering - 2.18.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Jun 21 2011 Marcela Mašláňová - 2.18.0-3 +- Perl mass rebuild + +* Mon Apr 4 2011 Marcela Mašláňová - 2.18.0-2 +- add requirement for test file + +* Tue Mar 29 2011 Marcela Mašláňová - 2.18.0-1 +- update to 2.18.0 + +* Tue Feb 08 2011 Fedora Release Engineering - 2.17.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Nov 24 2010 Marcela Mašláňová 2.17.2-1 +- update by Fedora::App::MaintainerTools 0.006 +- updating to latest GA CPAN version (2.17.2) + +* Thu Sep 30 2010 Petr Sabata - 2.17.1-3 +- Fixing BuildRequires (perl-version, Test::More) +- Re-enabling tests +- Resolves: rhbz#633108 + +* Fri Apr 30 2010 Marcela Maslanova - 2.17.1-2 +- Mass rebuild with perl-5.12.0 + +* Tue Apr 27 2010 Petr Pisar - 2.17.1-1 +- upstream released 2.17.1 +- GPL+ license corrected to GPLv2+ +- enable and run %%check in C locale + +* Wed Jan 27 2010 Stepan Kasal - 2.15.1-3 +- drop patch that was upstreamed long ago (<=2.8.7) + +* Mon Dec 7 2009 Stepan Kasal - 2.15.1-2 +- rebuild against perl 5.10.1 + +* Thu Sep 24 2009 Stepan Kasal - 2.15.1-1 +- new upstream version +- add versioned provide (#525502) + +* Sat Jul 25 2009 Fedora Release Engineering - 2.13.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jun 10 2009 Stepan Kasal - 2.13.1-2 +- rebuild against perl-DBI-1.609 + +* Mon May 4 2009 Stepan Kasal - 2.13.1-1 +- new upstream release, also fixes #498899 + +* Thu Feb 26 2009 Fedora Release Engineering - 2.11.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Dec 5 2008 Stepan Kasal - 2.11.6-2 +- fix the source URL + +* Fri Dec 5 2008 Marcela Mašláňová - 2.11.6-1 +- update + +* Fri Oct 31 2008 Marcela Maslanova - 2.11.2-1 +- update to 2.11.2 + +* Fri Aug 29 2008 Marcela Maslanova - 2.10.0-1 +- update to 2.10.0 + +* Mon Aug 25 2008 Marcela Maslanova - 2.9.2-1 +- update to 2.9.2 + +* Mon Jul 28 2008 Marcela Maslanova - 2.8.7-1 +- new version has Pg.pm twice in two locations +- update + +* Wed Feb 27 2008 Tom "spot" Callaway - 1.49-9 +- Rebuild for perl 5.10 (again) + +* Tue Feb 19 2008 Fedora Release Engineering - 1.49-8 +- Autorebuild for GCC 4.3 + +* Tue Jan 15 2008 Tom "spot" Callaway - 1.49-7 +- rebuild for new perl + +* Wed Oct 24 2007 Robin Norwood - 1.49-6 +- Apply changes from package review. +- Resolves: bz#226252 + +* Mon Oct 15 2007 Tom "spot" Callaway - 1.49-5.1 +- add BR: perl(ExtUtils::MakeMaker) + +* Fri Aug 24 2007 Robin Norwood - 1.49-5 +- Fix license tag +- Add %%doc +- Remove explicit Provides: perl(DBD::Pg) = %%{version} +- Other cleanups + +* Tue Jul 17 2007 Robin Norwood - 1.49-4 +- Fix summary + +* Tue Dec 05 2006 Robin Norwood - 1.49-3 +- rebuild for new version of postgres. + +* Wed Jul 12 2006 Jesse Keating - 1.49-2 +- rebuild + +* Wed May 31 2006 Jason Vas Dias - 1.49-1 +- Upgrade to upstream version 1.49 + +* Wed Apr 12 2006 Jason Vas Dias - 1.48-1 +- Upgrade to upstream version 1.48 + +* Wed Mar 22 2006 Jason Vas Dias - 1.47-1 +- Upgrade to upstream version 1.47 + +* Wed Mar 08 2006 Jason Vas Dias - 1.45-1 +- Upgrade to upstream version 1.45 + +* Fri Feb 10 2006 Jesse Keating - 1.43-2.2.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1.43-2.2.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Feb 03 2006 Jason Vas Dias - 1.43-2.2 +- rebuild for new perl-5.8.8 + +* Fri Dec 16 2005 Jesse Keating +- rebuilt for new gcc + +* Fri Dec 16 2005 Jesse Keating +- rebuilt for new gcj + +* Thu Nov 03 2005 Florian La Roche +- make sure correct Provides: are generated for this module + +* Tue Jun 28 2005 Jose Pedro Oliveira - 1.43-1 +- Update to 1.43 (corrects #156840). + +* Thu May 19 2005 Warren Togami - 1.41-2 +- Disable gcc optimization to workaround broken placeholders (#156840) + +* Wed Apr 13 2005 Jose Pedro Oliveira - 1.41-1 +- Update to 1.41. +- Updated the requirements versions. +- Specfile cleanup. (#154203) + +* Wed Apr 13 2005 Joe Orton 1.40-2 +- rebuild for new libpq soname + +* Thu Mar 31 2005 Warren Togami 1.40-1 +- 1.40 + +* Tue Oct 12 2004 Chip Turner 1.32-1 +- bugzilla: 127755, update to 1.32 + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Fri Feb 13 2004 Chip Turner 1.31-2 +- rebuild + +* Thu Dec 11 2003 Chip Turner 1.31-1 +- update to 1.31 + +* Mon Jul 7 2003 Chip Turner 1.22-1 +- move to upstream 1.22 + +* Mon Jan 27 2003 Chip Turner +- version bump and rebuild + +* Mon Jan 13 2003 Chip Turner +- update to 1.21 + +* Sat Dec 14 2002 Chip Turner +- don't use internal rpm dep generator + +* Wed Nov 20 2002 Chip Turner +- rebuild + +* Wed Aug 7 2002 Trond Eivind Glomsrød 1.13-5 +- Rebuild + +* Tue Jun 25 2002 Trond Eivind Glomsrød 1.13-4 +- Rebuild, to fix #66304 + +* Wed Jun 5 2002 Trond Eivind Glomsrød 1.13-3 +- Integrate with newer perl + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Tue May 7 2002 Trond Eivind Glomsrød 1.13-1 +- 1.13 + +* Fri Feb 22 2002 Trond Eivind Glomsrød 1.01-8 +- Rebuild + +* Thu Feb 7 2002 Trond Eivind Glomsrød 1.01-7 +- Rebuild + +* Thu Jan 31 2002 Tim Powers +- rebuild to solve more deps + +* Tue Jan 29 2002 Bill Nottingham 1.01-5 +- rebuild (dependencies) + +* Tue Jan 22 2002 Trond Eivind Glomsrød 1.01-4 +- Rebuild + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Tue Jan 8 2002 Trond Eivind Glomsrød 1.01-2 +- Rebuild + +* Sun Jul 1 2001 Trond Eivind Glomsrød +- 1.01 bugfix release ("bytea" coredumped with values outside 0...127) +- Add perl-DBI and perl to BuildRequires (they were just in Requires: previously) + +* Wed May 30 2001 Trond Eivind Glomsrød +- 1.00 +- change group to Applications/Databases from Applications/CPAN + +* Tue May 1 2001 Trond Eivind Glomsrød +- 0.98, for postgresql-7.1 +- add doc files +- cleanups + +* Thu Nov 30 2000 Trond Eivind Glomsrød +- First cut