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.
This commit is contained in:
Noah Misch 2024-08-07 11:43:34 -07:00
parent 7f875fb5bd
commit ecf7c48462
2 changed files with 12 additions and 0 deletions

View File

@ -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;

View File

@ -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;