From ecf7c48462396b98c50d32cc77ec5a024fefc34c Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Wed, 7 Aug 2024 11:43:34 -0700 Subject: [PATCH] Teach RPM the package name provided in Perl alias packages. When commit 1185be355462d1dc7e2950a7e52eb7ca0cb6f3c8 introduced installation of a file containing "use PostgreSQL::Test::Utils", the RPM Package Manager said "nothing provides perl(PostgreSQL::Test::Utils)". Discussed on pgsql-packagers. Back-patch to v12, v13, and v14 only; newer versions don't have the alias packages. Reviewed by Andrew Dunstan, Tom Lane, and John Harvey. Reported by John Harvey. --- src/test/perl/PostgreSQL/Test/Cluster.pm | 6 ++++++ src/test/perl/PostgreSQL/Test/Utils.pm | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 14e9138a39..c0c275a291 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -10,4 +10,10 @@ use warnings; BEGIN { *PostgreSQL::Test::Cluster:: = \*PostgresNode::; } use PostgresNode (); +# There's no runtime requirement for the following package declaration, but it +# convinces the RPM Package Manager that this file provides the Perl package +# in question. Perl v5.10.1 segfaults if a declaration of the to-be-aliased +# package precedes the aliasing itself, hence the abnormal placement. +package PostgreSQL::Test::Cluster; + 1; diff --git a/src/test/perl/PostgreSQL/Test/Utils.pm b/src/test/perl/PostgreSQL/Test/Utils.pm index 2d15bbf21d..3b77a6e95d 100644 --- a/src/test/perl/PostgreSQL/Test/Utils.pm +++ b/src/test/perl/PostgreSQL/Test/Utils.pm @@ -8,4 +8,10 @@ use warnings; BEGIN { *PostgreSQL::Test::Utils:: = \*TestLib::; } use TestLib (); +# There's no runtime requirement for the following package declaration, but it +# convinces the RPM Package Manager that this file provides the Perl package +# in question. Perl v5.10.1 segfaults if a declaration of the to-be-aliased +# package precedes the aliasing itself, hence the abnormal placement. +package PostgreSQL::Test::Utils; + 1;