[packages/perl-rpm-build-perl] add support for "package <name> <version>" syntax (from fedora)

atler atler at pld-linux.org
Fri Aug 21 20:12:16 CEST 2026


commit 5c04df02d72babc1ccd60b41513ebaf44839104a
Author: Jan Palus <atler at pld-linux.org>
Date:   Fri Aug 21 14:19:02 2026 +0200

    add support for "package <name> <version>" syntax (from fedora)

 perl-rpm-build-perl.spec                           |  2 +
 ...-package-NAME-VERSION-syntax-in-perl.prov.patch | 61 ++++++++++++++++++++++
 2 files changed, 63 insertions(+)
---
diff --git a/perl-rpm-build-perl.spec b/perl-rpm-build-perl.spec
index 9384e73..dcd6d82 100644
--- a/perl-rpm-build-perl.spec
+++ b/perl-rpm-build-perl.spec
@@ -23,6 +23,7 @@ Patch2:		rpm-build-perl-0.82-Port-to-OpSIBLING-like-macros-required-since-Perl-5
 Patch3:		rpm-build-perl-Adapt-tests-to-Perl-5.35.12.patch
 # from Fedora, CPAN RT #148982
 Patch4:		rpm-build-perl-Adjust-to-Perl-5.38.0.patch
+Patch5:		rpm-build-perl-0.82-Support-package-NAME-VERSION-syntax-in-perl.prov.patch
 URL:		https://metacpan.org/dist/rpm-build-perl
 BuildRequires:	perl-devel >= 1:5.8.0
 BuildRequires:	rpm-perlprov >= 4.1-13
@@ -47,6 +48,7 @@ Moduł ten znajduje zależności dla źródeł perlowych.
 %patch -P2 -p1
 %patch -P3 -p1
 %patch -P4 -p1
+%patch -P5 -p1
 
 %build
 %{__perl} Makefile.PL \
diff --git a/rpm-build-perl-0.82-Support-package-NAME-VERSION-syntax-in-perl.prov.patch b/rpm-build-perl-0.82-Support-package-NAME-VERSION-syntax-in-perl.prov.patch
new file mode 100644
index 0000000..9710a36
--- /dev/null
+++ b/rpm-build-perl-0.82-Support-package-NAME-VERSION-syntax-in-perl.prov.patch
@@ -0,0 +1,61 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jitka=20Plesn=C3=ADkov=C3=A1?= <jplesnik at redhat.com>
+Date: Thu, 11 Jun 2025 12:00:00 +0200
+Subject: [PATCH] Support "package NAME VERSION" syntax in perl.prov
+
+Perl 5.12 introduced the "package NAME VERSION;" syntax as an
+alternative to the traditional "$VERSION = ..." assignment. Upstream
+perl commit 4f8316fa3a ("Modernize attributes.pm for v5.40") converted
+ext/attributes/attributes.pm to use this syntax, removing the explicit
+"$VERSION" assignment. This caused perl.prov to output
+"perl(attributes.pm)" without a version, failing the t/03-perlprov.t
+test.
+
+Extend the package declaration regex to optionally capture a version
+from "package NAME VERSION;" and record it as the module's provided
+version.
+
+Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
+---
+ perl.prov | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+--- a/perl.prov	2026-06-15 08:10:32.393857387 +0200
++++ perl.prov	2026-06-15 08:11:08.271242411 +0200
+@@ -55,6 +55,7 @@ sub process_file {
+ 	}
+ 	my $cur_pkg = my $pkg0 = "main"; my $pkg1;
+ 	my $re_pkg = qr/\b\w+(?:::\w+)*/;
++	my $re_ver = qr/v?[0-9][0-9._]*/;
+ 	open my $fh, $fname or die "$0: $fname: $!\n";
+ 	local $_;
+ 	while (<$fh>) {
+@@ -63,14 +64,22 @@ sub process_file {
+ 		next if /^=\w/ .. (/^=cut/ or eof);
+ 		last if /^__(DATA|END)__\b/;
+ 		s/\s+#\s.*//; # strip comments
+-		if (/^(\s*\{?\s*)package\s+($re_pkg)\s*;/) {
+-			if ($1) {
++		if (/^(\s*\{?\s*)package\s+($re_pkg)(?:\s+($re_ver))?\s*;/) {
++			my ($indent, $pkgname, $pkgver) = ($1, $2, $3);
++			if (defined $pkgver && mod2path($pkgname) eq $basename) {
++				my $v = verf($pkgver);
++				if ($v) {
++					$prov{$basename}{ver}{$v} = 1;
++					warn "# VERSION $v (from package line) at $fname line $.\n" if $Verbose;
++				}
++			}
++			if ($indent) {
+ 				# block package
+-				$cur_pkg = $pkg1 = $2;
++				$cur_pkg = $pkg1 = $pkgname;
+ 			}
+ 			else {
+ 				# toplevel package
+-				$cur_pkg = $pkg0 = $2;
++				$cur_pkg = $pkg0 = $pkgname;
+ 				undef $pkg1;
+ 			}
+ 			warn "# package $cur_pkg at $fname line $.\n" if $Verbose > 1;
+-- 
+2.49.0
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/perl-rpm-build-perl.git/commitdiff/5c04df02d72babc1ccd60b41513ebaf44839104a



More information about the pld-cvs-commit mailing list