[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