import perl-Devel-PPPort-3.72-511.el10

cs10 imports/cs10/perl-Devel-PPPort-3.72-511.el10
MSVSphere Packaging Team 3 months ago
commit 97f326f37b
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/Devel-PPPort-3.68.tar.gz

@ -0,0 +1 @@
0e43c5d38f5a7cef17e44e8ceb0977e0730049a7 SOURCES/Devel-PPPort-3.68.tar.gz

@ -0,0 +1,11 @@
diff -up Devel-PPPort-3.68/mktests.PL.orig Devel-PPPort-3.68/mktests.PL
--- Devel-PPPort-3.68/mktests.PL.orig 2023-05-16 15:15:42.357643361 +0200
+++ Devel-PPPort-3.68/mktests.PL 2023-05-16 15:16:04.441822241 +0200
@@ -60,6 +60,7 @@ sub generate_tests
}
__DATA__
+#!/usr/bin/perl
################################################################################
#
# !!!!! Do NOT edit this file directly! !!!!!

File diff suppressed because it is too large Load Diff

@ -0,0 +1,493 @@
From d3f561def5d119ce51cc4842d26d046d70a2eedb Mon Sep 17 00:00:00 2001
From: Jitka Plesnikova <jplesnik@redhat.com>
Date: Tue, 7 May 2024 16:05:30 +0200
Subject: [PATCH] Upgrade to 3.72
---
HACKERS | 16 +++++++++++
Makefile.PL | 2 +-
PPPort_pm.PL | 4 +--
devel/devtools.pl | 14 ++++++----
devel/scanprov | 11 +++++++-
parts/inc/SvPV | 60 ++++++++++++++++++++++++++++++++++++++---
parts/inc/misc | 68 ++++++++++++++++++++++++++++++-----------------
parts/inc/version | 57 +++++++++++++++++++++++++++++++++------
parts/ppptools.pl | 13 ++++++---
9 files changed, 198 insertions(+), 47 deletions(-)
diff --git a/HACKERS b/HACKERS
index 98abad2..7b37b4d 100644
--- a/HACKERS
+++ b/HACKERS
@@ -220,6 +220,22 @@ really needed for the public at large to know about, you should use
instead. To avoid name space conflicts, follow what's in L</Helper macros>,
below.
+=item __REDEFINE__
+
+If you add the line C<__REDEFINE__> to the C<=provides> section, you can use
+lines like this in the C<=implementation> section:
+
+ __REDEFINE__ macro some definition
+
+to both redefine C<macro> and indicate that it is provided by F<ppport.h>. This
+replaces these C<=implementation> section lines:
+
+ #undef macro
+ #ifndef macro
+ # define macro some definition
+ #endif
+
+
=item Helper macros
If you need to define a helper macro which is not part of C<Devel::PPPort> API
diff --git a/Makefile.PL b/Makefile.PL
index 63fb8c4..643a646 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -106,7 +106,7 @@ sub configure
},
repository => {
type => 'git',
- url => 'git://github.com/Dual-Life/Devel-PPPort.git',
+ url => 'https://github.com/Dual-Life/Devel-PPPort.git',
web => 'https://github.com/Dual-Life/Devel-PPPort',
},
},
diff --git a/PPPort_pm.PL b/PPPort_pm.PL
index 00fd926..77df89f 100644
--- a/PPPort_pm.PL
+++ b/PPPort_pm.PL
@@ -124,7 +124,7 @@ my @todo_list = reverse sort keys %todo;
# directories are empty (which should only happen during regeneration of the
# base and todo files).). Actually the final element is for blead (at the
# time things were regenerated), which is 1 beyond the max version supported.
-my $INT_MAX_PERL = (@todo_list) ? $todo_list[0] - 1 : '5034000'; # used for __MAX_PERL__
+my $INT_MAX_PERL = (@todo_list) ? $todo_list[0] - 1 : '5038000'; # used for __MAX_PERL__
my $MAX_PERL = format_version($INT_MAX_PERL);
my $INT_MIN_PERL = (@todo_list) ? $todo_list[-1] : 5003007;
my $MIN_PERL = format_version($INT_MIN_PERL);
@@ -756,7 +756,7 @@ package Devel::PPPort;
use strict;
use vars qw($VERSION $data);
-$VERSION = '3.71';
+$VERSION = '3.72';
sub _init_data
{
diff --git a/devel/devtools.pl b/devel/devtools.pl
index cdf8440..afbdd9f 100644
--- a/devel/devtools.pl
+++ b/devel/devtools.pl
@@ -148,6 +148,14 @@ sub eta
return sprintf "%02d:%02d:%02d", $h, $m, $s;
}
+# Devel releases are odd numbered ones 5.6 and above, but use every
+# release for below 5.6
+sub is_devel_release ($) {
+ my (undef, $major, $minor) = parse_version(shift);
+ return $major >= 6 && $major % 2 != 0;
+}
+
+
sub get_and_sort_perls($)
{
my $opt = shift;
@@ -180,12 +188,8 @@ sub get_and_sort_perls($)
$version = format_version($version);
if ($skip_devels) {
- my ($super, $major, $minor) = parse_version($version);
-
# If skipping development releases, we still use blead (0th entry).
- # Devel releases are odd numbered ones 5.6 and above, but use every
- # release for below 5.6
- if ($i != 0 && $major >= 6 && $major % 2 != 0) {
+ if ($i != 0 && is_devel_release($version)) {
splice @perls, $i, 1;
last if $i >= @perls;
redo;
diff --git a/devel/scanprov b/devel/scanprov
index 4d42065..7de59ca 100755
--- a/devel/scanprov
+++ b/devel/scanprov
@@ -62,7 +62,10 @@ our %opt = (
'debug-start' => "",
);
-GetOptions(\%opt, qw( install=s mode=s blead=s debug=i debug-start=s)) or die;
+GetOptions(\%opt, qw( install=s mode=s
+ blead=s debug=i
+ debug-start=s
+ skip-devels)) or die;
my $clean = $opt{mode} eq 'clean';
my $write = $clean || $opt{mode} eq 'write';
@@ -166,6 +169,12 @@ if ($write) {
# Only a few files will have exceptions that apply to them. Rewrite each
foreach my $version (keys %add_by_version) {
+ if (is_devel_release($version)) {
+ my ($super, $major, $minor) = parse_version($version);
+ $major++; # Go to next highest version that isn't a devel
+ $version = "$super.$major.0";
+ }
+
my $file = "$todo_dir/" . int_parse_version($version);
print "-- Adding known exceptions to $file --\n";
open my $fh, "+<", $file or die "$file: $!\n";
diff --git a/parts/inc/SvPV b/parts/inc/SvPV
index 1d54c0f..e088ea8 100644
--- a/parts/inc/SvPV
+++ b/parts/inc/SvPV
@@ -14,6 +14,7 @@
__UNDEFINED__
SvPVbyte
sv_2pvbyte
+sv_2pv
sv_2pv_flags
sv_pvn_force_flags
@@ -82,14 +83,50 @@ __UNDEFINED__ SV_SMAGIC 0
__UNDEFINED__ SV_HAS_TRAILING_NUL 0
__UNDEFINED__ SV_COW_SHARED_HASH_KEYS 0
+#if { VERSION < 5.7.2 }
+#
+/* Fix sv_2pv for Perl < 5.7.2 - view https://github.com/Dual-Life/Devel-PPPort/issues/231 */
+
+# ifdef sv_2pv
+# undef sv_2pv
+# endif
+
+# if defined(PERL_USE_GCC_BRACE_GROUPS)
+ __UNDEFINED__ sv_2pv(sv, lp) ({ SV *_sv_2pv = (sv); STRLEN sv_2pv_dummy_; STRLEN *_lp_2pv = (lp); _lp_2pv = _lp_2pv ? : &sv_2pv_dummy_; SvPOKp(_sv_2pv) ? ((*(_lp_2pv) = SvCUR(_sv_2pv)), SvPVX(_sv_2pv)) : Perl_sv_2pv(aTHX_ _sv_2pv, (_lp_2pv)); })
+# else
+ __UNDEFINED__ sv_2pv(sv, lp) (SvPOKp(sv) ? ((*((lp) ? (lp) : &PL_na) = SvCUR(sv)), SvPVX(sv)) : Perl_sv_2pv(aTHX_ (sv), (lp)))
+# endif
+
+#endif
+
+#if { VERSION < 5.7.2 }
+
+/* Define sv_2pv_flags for Perl < 5.7.2 which does not have it at all */
+
#if defined(PERL_USE_GCC_BRACE_GROUPS)
- __UNDEFINED__ sv_2pv_flags(sv, lp, flags) ({ SV *_sv = (sv); const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &PL_na; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_2pv(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_2pv(_sv, _lp); })
- __UNDEFINED__ sv_pvn_force_flags(sv, lp, flags) ({ SV *_sv = (sv); const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &PL_na; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_pvn_force(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_pvn_force(_sv, _lp); })
+ __UNDEFINED__ sv_2pv_flags(sv, lp, flags) ({ SV *_sv = (sv); STRLEN sv_2pv_dummy_; const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &sv_2pv_dummy_; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_2pv(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_2pv(_sv, _lp); })
+ __UNDEFINED__ sv_pvn_force_flags(sv, lp, flags) ({ SV *_sv = (sv); STRLEN sv_2pv_dummy_; const I32 _flags = (flags); STRLEN *_lp = lp; _lp = _lp ? : &sv_2pv_dummy_; (!(_flags & SV_GMAGIC) && SvGMAGICAL(_sv)) ? ({ char *_pv; SvGMAGICAL_off(_sv); _pv = sv_pvn_force(_sv, _lp); SvGMAGICAL_on(_sv); _pv; }) : sv_pvn_force(_sv, _lp); })
#else
__UNDEFINED__ sv_2pv_flags(sv, lp, flags) ((PL_Sv = (sv)), (!((flags) & SV_GMAGIC) && SvGMAGICAL(PL_Sv)) ? (SvGMAGICAL_off(PL_Sv), (PL_Xpv = (XPV *)sv_2pv(PL_Sv, (lp) ? (lp) : &PL_na)), SvGMAGICAL_on(PL_Sv), (char *)PL_Xpv) : sv_2pv(PL_Sv, (lp) ? (lp) : &PL_na))
__UNDEFINED__ sv_pvn_force_flags(sv, lp, flags) ((PL_Sv = (sv)), (!((flags) & SV_GMAGIC) && SvGMAGICAL(PL_Sv)) ? (SvGMAGICAL_off(PL_Sv), (PL_Xpv = (XPV *)sv_pvn_force(PL_Sv, (lp) ? (lp) : &PL_na)), SvGMAGICAL_on(PL_Sv), (char *)PL_Xpv) : sv_pvn_force(PL_Sv, (lp) ? (lp) : &PL_na))
#endif
+#elif { VERSION < 5.17.2 }
+
+/* Fix sv_2pv_flags for Perl < 5.17.2 */
+
+# ifdef sv_2pv_flags
+# undef sv_2pv_flags
+# endif
+
+# if defined(PERL_USE_GCC_BRACE_GROUPS)
+ __UNDEFINED__ sv_2pv_flags(sv, lp, flags) ({ SV *_sv_2pv = (sv); STRLEN sv_2pv_dummy_; const I32 _flags_2pv = (flags); STRLEN *_lp_2pv = (lp); _lp_2pv = _lp_2pv ? : &sv_2pv_dummy_; ((!(_flags_2pv & SV_GMAGIC) || !SvGMAGICAL(_sv_2pv)) && SvPOKp(_sv_2pv)) ? ((*(_lp_2pv) = SvCUR(_sv_2pv)), SvPVX(_sv_2pv)) : Perl_sv_2pv_flags(aTHX_ _sv_2pv, (_lp_2pv), (_flags_2pv)); })
+# else
+ __UNDEFINED__ sv_2pv_flags(sv, lp, flags) (((!((flags) & SV_GMAGIC) || !SvGMAGICAL(sv)) && SvPOKp(sv)) ? ((*((lp) ? (lp) : &PL_na) = SvCUR(sv)), SvPVX(sv)) : Perl_sv_2pv_flags(aTHX_ (sv), (lp), (flags)))
+# endif
+
+#endif
+
#if { VERSION < 5.8.8 } || ( { VERSION >= 5.9.0 } && { VERSION < 5.9.3 } )
# define D_PPP_SVPV_NOLEN_LP_ARG &PL_na
#else
@@ -433,7 +470,20 @@ SvPVCLEAR(sv)
SvPVCLEAR(sv);
-=tests plan => 50
+SV *
+sv_2pv(sv)
+ SV *sv
+ PREINIT:
+ STRLEN len;
+ const char *str;
+ CODE:
+ str = sv_2pv(sv, &len);
+ RETVAL = newSVpvn(str, len);
+ OUTPUT:
+ RETVAL
+
+
+=tests plan => 53
my $mhx = "mhx";
@@ -507,3 +557,7 @@ is($str, "x"x40);
is($s2, "x"x40);
ok($before > 41);
is($after, 41);
+
+is(&Devel::PPPort::sv_2pv(42), "42");
+is(&Devel::PPPort::sv_2pv(0.15), "0.15");
+is(&Devel::PPPort::sv_2pv("string"), "string");
diff --git a/parts/inc/misc b/parts/inc/misc
index 86d7fde..1a3c672 100644
--- a/parts/inc/misc
+++ b/parts/inc/misc
@@ -12,6 +12,7 @@
=provides
__UNDEFINED__
+__REDEFINE__
END_EXTERN_C
EXTERN_C
INT2PTR
@@ -36,6 +37,9 @@ WIDEST_UTYPE
XSRETURN
NOT_REACHED
ASSUME
+Stack_off_t
+Stack_off_t_MAX
+PERL_STACK_OFFSET_DEFINED
=implementation
@@ -229,8 +233,7 @@ __UNDEFINED__ SvRXOK(sv) (!!SvRX(sv))
__UNDEFINED__ NOOP /*EMPTY*/(void)0
#if { VERSION < 5.6.1 } && { VERSION < 5.27.7 }
-#undef dNOOP
-__UNDEFINED__ dNOOP struct Perl___notused_struct
+__REDEFINE__ dNOOP struct Perl___notused_struct
#endif
#ifndef NVTYPE
@@ -264,23 +267,26 @@ typedef NVTYPE NV;
# endif
#endif
+#ifndef PERL_STACK_OFFSET_DEFINED
+ typedef I32 Stack_off_t;
+# define Stack_off_t_MAX I32_MAX
+# define PERL_STACK_OFFSET_DEFINED
+#endif
+
__UNDEFINED__ PTR2nat(p) (PTRV)(p)
__UNDEFINED__ NUM2PTR(any,d) (any)PTR2nat(d)
__UNDEFINED__ PTR2IV(p) INT2PTR(IV,p)
__UNDEFINED__ PTR2UV(p) INT2PTR(UV,p)
__UNDEFINED__ PTR2NV(p) NUM2PTR(NV,p)
-#undef START_EXTERN_C
-#undef END_EXTERN_C
-#undef EXTERN_C
#ifdef __cplusplus
-# define START_EXTERN_C extern "C" {
-# define END_EXTERN_C }
-# define EXTERN_C extern "C"
+__REDEFINE__ START_EXTERN_C extern "C" {
+__REDEFINE__ END_EXTERN_C }
+__REDEFINE__ EXTERN_C extern "C"
#else
-# define START_EXTERN_C
-# define END_EXTERN_C
-# define EXTERN_C extern
+__REDEFINE__ START_EXTERN_C
+__REDEFINE__ END_EXTERN_C
+__REDEFINE__ EXTERN_C extern
#endif
#if { VERSION < 5.004 } || defined(PERL_GCC_PEDANTIC)
@@ -297,14 +303,12 @@ __UNDEF_NOT_PROVIDED__ PERL_GCC_BRACE_GROUPS_FORBIDDEN
# endif
#endif
-#undef STMT_START
-#undef STMT_END
#if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__)
-# define STMT_START if (1)
-# define STMT_END else (void)0
+__REDEFINE__ STMT_START if (1)
+__REDEFINE__ STMT_END else (void)0
#else
-# define STMT_START do
-# define STMT_END while (0)
+__REDEFINE__ STMT_START do
+__REDEFINE__ STMT_END while (0)
#endif
__UNDEFINED__ boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
@@ -354,8 +358,7 @@ __UNDEFINED__ dAXMARK I32 ax = POPMARK; \
__UNDEFINED__ XSprePUSH (sp = PL_stack_base + ax - 1)
#if { VERSION < 5.005 }
-# undef XSRETURN
-# define XSRETURN(off) \
+__REDEFINE__ XSRETURN(off) \
STMT_START { \
PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
return; \
@@ -845,8 +848,8 @@ __UNDEFINED__ isIDFIRST_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, IDFIRST
__UNDEFINED__ isLOWER_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, LOWER)
__UNDEFINED__ isPRINT_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, PRINT)
-# undef isPSXSPC_utf8_safe /* Use the modern definition */
-__UNDEFINED__ isPSXSPC_utf8_safe(s,e) isSPACE_utf8_safe(s,e)
+/* Use the modern definition */
+__REDEFINE__ isPSXSPC_utf8_safe(s,e) isSPACE_utf8_safe(s,e)
__UNDEFINED__ isPUNCT_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, PUNCT)
__UNDEFINED__ isSPACE_utf8_safe(s,e) D_PPP_IS_GENERIC_UTF8_SAFE(s, e, SPACE)
@@ -918,8 +921,8 @@ __UNDEFINED__ isIDFIRST_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, I
__UNDEFINED__ isLOWER_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, LOWER)
__UNDEFINED__ isPRINT_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, PRINT)
-# undef isPSXSPC_LC_utf8_safe /* Use the modern definition */
-__UNDEFINED__ isPSXSPC_LC_utf8_safe(s,e) isSPACE_LC_utf8_safe(s,e)
+/* Use the modern definition */
+__REDEFINE__ isPSXSPC_LC_utf8_safe(s,e) isSPACE_LC_utf8_safe(s,e)
__UNDEFINED__ isPUNCT_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, PUNCT)
__UNDEFINED__ isSPACE_LC_utf8_safe(s,e) D_PPP_IS_GENERIC_LC_UTF8_SAFE(s, e, SPACE)
@@ -2586,7 +2589,21 @@ av_count(av)
OUTPUT:
RETVAL
-=tests plan => 26827
+STRLEN
+mark_size_ok()
+ CODE:
+ RETVAL = sizeof(*PL_markstack_ptr) == sizeof(Stack_off_t);
+ OUTPUT:
+ RETVAL
+
+UV
+mark_max()
+ CODE:
+ RETVAL = Stack_off_t_MAX;
+ OUTPUT:
+ RETVAL
+
+=tests plan => 26829
use vars qw($my_sv @my_av %my_hv);
@@ -3033,3 +3050,6 @@ for $name (keys %case_changing) {
is(&Devel::PPPort::av_top_index([1,2,3]), 2);
is(&Devel::PPPort::av_tindex([1,2,3,4]), 3);
is(&Devel::PPPort::av_count([1,2,3,4]), 4);
+
+ok(&Devel::PPPort::mark_size_ok(), "check mark type size");
+ok(&Devel::PPPort::mark_max(), "got a mark max");
diff --git a/parts/inc/version b/parts/inc/version
index 1854665..7e1b956 100644
--- a/parts/inc/version
+++ b/parts/inc/version
@@ -26,7 +26,7 @@ PERL_BCDVERSION
=implementation
-#define D_PPP_RELEASE_DATE 1647561600 /* 2022-03-18 */
+#define D_PPP_RELEASE_DATE 1693785600 /* 2023-09-04 */
#if ! defined(PERL_REVISION) && ! defined(PERL_VERSION_MAJOR)
# if ! defined(__PATCHLEVEL_H_INCLUDED__) \
@@ -137,19 +137,60 @@ PERL_BCDVERSION
/* N.B. These don't work if the patch number is 42 or 92, as those are what '*'
* is in ASCII and EBCDIC respectively */
__UNDEFINED__ PERL_VERSION_EQ(j,n,p) \
- (((p) == '*') ? ( (j) == D_PPP_VERSION_MAJOR \
- && (n) == D_PPP_VERSION_MINOR) \
+ (((p) == '*') ? ( (j) == D_PPP_MAJOR \
+ && (n) == D_PPP_MINOR) \
: (PERL_BCDVERSION == D_PPP_JNP_TO_BCD(j,n,p)))
__UNDEFINED__ PERL_VERSION_NE(j,n,p) (! PERL_VERSION_EQ(j,n,p))
__UNDEFINED__ PERL_VERSION_LT(j,n,p) /* p=='*' means _LT(j,n,0) */ \
- (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \
+ (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \
(n), \
(((p) == '*') ? 0 : (p))))
__UNDEFINED__ PERL_VERSION_GE(j,n,p) (! PERL_VERSION_LT(j,n,p))
-__UNDEFINED__ PERL_VERSION_LE(j,n,p) /* p=='*' means _LT(j,n+1,0) */ \
- (PERL_BCDVERSION < D_PPP_JNP_TO_BCD( (j), \
- (((p) == '*') ? ((n)+1) : (n)), \
- (((p) == '*') ? 0 : (p))))
+__UNDEFINED__ PERL_VERSION_LE(j,n,p) /* p=='*' means _LE(j,n,999) */ \
+ (PERL_BCDVERSION <= D_PPP_JNP_TO_BCD( (j), \
+ (n), \
+ (((p) == '*') ? 999 : (p))))
__UNDEFINED__ PERL_VERSION_GT(j,n,p) (! PERL_VERSION_LE(j,n,p))
+
+=xsmisc
+
+/* PERL_VERSION_xx sanity checks */
+
+#if !PERL_VERSION_EQ(D_PPP_MAJOR, D_PPP_MINOR, D_PPP_PATCH)
+# error PERL_VERSION_EQ(major, minor, patch) is false; expected true
+#endif
+#if !PERL_VERSION_EQ(D_PPP_MAJOR, D_PPP_MINOR, '*')
+# error PERL_VERSION_EQ(major, minor, '*') is false; expected true
+#endif
+#if PERL_VERSION_NE(D_PPP_MAJOR, D_PPP_MINOR, D_PPP_PATCH)
+# error PERL_VERSION_NE(major, minor, patch) is true; expected false
+#endif
+#if PERL_VERSION_NE(D_PPP_MAJOR, D_PPP_MINOR, '*')
+# error PERL_VERSION_NE(major, minor, '*') is true; expected false
+#endif
+#if PERL_VERSION_LT(D_PPP_MAJOR, D_PPP_MINOR, D_PPP_PATCH)
+# error PERL_VERSION_LT(major, minor, patch) is true; expected false
+#endif
+#if PERL_VERSION_LT(D_PPP_MAJOR, D_PPP_MINOR, '*')
+# error PERL_VERSION_LT(major, minor, '*') is true; expected false
+#endif
+#if !PERL_VERSION_LE(D_PPP_MAJOR, D_PPP_MINOR, D_PPP_PATCH)
+# error PERL_VERSION_LE(major, minor, patch) is false; expected true
+#endif
+#if !PERL_VERSION_LE(D_PPP_MAJOR, D_PPP_MINOR, '*')
+# error PERL_VERSION_LE(major, minor, '*') is false; expected true
+#endif
+#if PERL_VERSION_GT(D_PPP_MAJOR, D_PPP_MINOR, D_PPP_PATCH)
+# error PERL_VERSION_GT(major, minor, patch) is true; expected false
+#endif
+#if PERL_VERSION_GT(D_PPP_MAJOR, D_PPP_MINOR, '*')
+# error PERL_VERSION_GT(major, minor, '*') is true; expected false
+#endif
+#if !PERL_VERSION_GE(D_PPP_MAJOR, D_PPP_MINOR, D_PPP_PATCH)
+# error PERL_VERSION_GE(major, minor, patch) is false; expected true
+#endif
+#if !PERL_VERSION_GE(D_PPP_MAJOR, D_PPP_MINOR, '*')
+# error PERL_VERSION_GE(major, minor, '*') is false; expected true
+#endif
diff --git a/parts/ppptools.pl b/parts/ppptools.pl
index f370487..40194c3 100644
--- a/parts/ppptools.pl
+++ b/parts/ppptools.pl
@@ -158,9 +158,16 @@ sub parse_partspec
@tmp or warn "no matches for regex $p in $file\n";
push @prov, do { my %h; grep !$h{$_}++, @tmp };
}
- elsif ($p eq '__UNDEFINED__') {
- my @tmp = $data{implementation} =~ /^\s*__UNDEFINED__[^\r\n\S]+(\w+)/gm;
- @tmp or warn "no __UNDEFINED__ macros in $file\n";
+ elsif ($p eq '__UNDEFINED__' || $p eq '__REDEFINE__') {
+
+ my @tmp = $data{implementation} =~ /^\s*$p[^\r\n\S]+(\w+)/gm;
+
+ if ( $p eq '__REDEFINE__' ) {
+ # relies on expand_undefined logic
+ $data{implementation} =~ s/^\s*__REDEFINE__[^\r\n\S]+(\w+)/#undef $1\n__UNDEFINED__ $1/gm;
+ }
+
+ @tmp or warn "no $p macros in $file\n";
push @prov, @tmp;
}
else {
--
2.45.0

@ -0,0 +1,337 @@
%global base_version 3.68
# Perform optional tests
%bcond_without perl_Devel_PPPort_enables_optional_test
Name: perl-Devel-PPPort
Version: 3.72
Release: 511%{?dist}
Summary: Perl Pollution Portability header generator
License: GPL-1.0-or-later OR Artistic-1.0-Perl
URL: https://metacpan.org/release/Devel-PPPort
Source0: https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/Devel-PPPort-%{base_version}.tar.gz
# Upgrade to 3.71 based on perl-5.37.11
Patch0: Devel-PPPort-3.68-Upgrade-to-3.71.patch
Patch1: Devel-PPPort-3.68-Add-shebang-to-tests.patch
# Upgrade to 3.72 based on perl-5.40.0-RC1
Patch2: Devel-PPPort-3.71-Upgrade-to-3.72.patch
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
BuildRequires: make
BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(:VERSION) >= 5.3
BuildRequires: perl(Config)
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
BuildRequires: perl(strict)
BuildRequires: perl(vars)
# Run-time:
# warnings in PPPort.pm not used
# Tests:
BuildRequires: perl(DynaLoader)
BuildRequires: perl(File::Path)
BuildRequires: perl(FindBin)
BuildRequires: perl(less)
BuildRequires: perl(lib)
BuildRequires: perl(Tie::Hash)
BuildRequires: perl(utf8)
BuildRequires: perl(warnings)
%if %{with perl_Devel_PPPort_enables_optional_test} && !%{defined %perl_bootstrap}
# Optional tests:
# File::Spec not helpful
BuildRequires: perl(Test::Pod) >= 0.95
%endif
# Filter modules bundled for tests
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(.::parts/.*\\)
%description
Perl's API has changed over time, gaining new features, new functions,
increasing its flexibility, and reducing the impact on the C name space
environment (reduced pollution). The header file written by this module,
typically ppport.h, attempts to bring some of the newer Perl API features
to older versions of Perl, so that you can worry less about keeping track
of old releases, but users can still reap the benefit.
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
Requires: perl(File::Spec)
Requires: perl(less)
Requires: perl(utf8)
%description tests
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%{?perl_default_filter}
%prep
%autosetup -p1 -n Devel-PPPort-%{base_version}
# Help generators to recognize Perl scripts
for F in t/*.pl parts/*.pl; do
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
chmod +x "$F"
done
%build
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="$RPM_OPT_FLAGS"
%{make_build}
%install
%{make_install}
find %{buildroot} -type f -name '*.bs' -empty -delete
%{_fixperms} %{buildroot}/*
# Install tests
mkdir -p %{buildroot}%{_libexecdir}/%{name}
cp -a t parts %{buildroot}%{_libexecdir}/%{name}
chmod +x %{buildroot}%{_libexecdir}/%{name}/t/*.t
perl -i -pe 's{(ppptmp)}{/tmp/$1}' %{buildroot}%{_libexecdir}/%{name}/t/ppphtest.t
rm %{buildroot}%{_libexecdir}/%{name}/t/podtest.t
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
#!/bin/sh
cd %{_libexecdir}/%{name} && exec prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
EOF
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
%check
unset PERL_CORE SKIP_SLOW_TESTS
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
make regen_tests
make test
%files
# README.md is useless
%doc Changes HACKERS README soak TODO
%{perl_vendorarch}/auto/Devel*
%{perl_vendorarch}/Devel*
%{_mandir}/man3/Devel::PPPort*
%files tests
%{_libexecdir}/%{name}
%changelog
* Fri Aug 09 2024 Jitka Plesnikova <jplesnik@redhat.com> - 3.72-511
- Perl 5.40 re-rebuild of bootstrapped packages
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 3.72-510
- Increase release to favour standalone package
* Wed Jul 17 2024 Jitka Plesnikova <jplesnik@redhat.com> - 3.72-504
- Upgrade to 3.72 based on perl-5.40.0-RC1
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.71-504
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.71-503
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.71-502
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.71-501
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jul 12 2023 Jitka Plesnikova <jplesnik@redhat.com> - 3.71-500
- Perl 5.38 re-rebuild of bootstrapped packages
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 3.71-499
- Increase release to favour standalone package
* Tue May 16 2023 Jitka Plesnikova <jplesnik@redhat.com> - 3.71-1
- Upgrade to 3.71 based on perl-5.37.11
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.68-491
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.68-490
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jun 03 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.68-489
- Perl 5.36 re-rebuild of bootstrapped packages
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.68-488
- Increase release to favour standalone package
* Thu Mar 24 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.68-1
- 3.68 bump
* Thu Mar 10 2022 Michal Josef Špaček <mspacek@redhat.com> - 3.67-1
- 3.67 bump
* Thu Mar 03 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.66-1
- 3.66 bump
* Wed Feb 02 2022 Jitka Plesnikova <jplesnik@redhat.com> - 3.64-1
- 3.64 bump
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.63-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.63-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 07 2021 Jitka Plesnikova <jplesnik@redhat.com> - 3.63-1
- 3.63 bump
- Package tests
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 3.62-478
- Perl 5.34 re-rebuild of bootstrapped packages
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 3.62-477
- Increase release to favour standalone package
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.62-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Oct 19 2020 Jitka Plesnikova <jplesnik@redhat.com> - 3.62-1
- 3.62 bump
* Thu Aug 13 2020 Petr Pisar <ppisar@redhat.com> - 3.60-1
- 3.60 bump
* Tue Aug 11 2020 Petr Pisar <ppisar@redhat.com> - 3.59-1
- 3.59 bump
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.58-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 3.58-3
- Perl 5.32 re-rebuild of bootstrapped packages
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 3.58-2
- Perl 5.32 rebuild
* Tue Mar 10 2020 Petr Pisar <ppisar@redhat.com> - 3.58-1
- 3.58 bump
* Mon Feb 03 2020 Petr Pisar <ppisar@redhat.com> - 3.57-1
- 3.57 bump
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.56-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 26 2019 Petr Pisar <ppisar@redhat.com> - 3.56-1
- 3.56 bump
* Mon Nov 11 2019 Petr Pisar <ppisar@redhat.com> - 3.55-1
- 3.55 bump
* Mon Sep 30 2019 Petr Pisar <ppisar@redhat.com> - 3.54-1
- 3.54 bump
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.52-440
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 3.52-439
- Perl 5.30 re-rebuild of bootstrapped packages
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 3.52-438
- Increase release to favour standalone package
* Wed May 15 2019 Petr Pisar <ppisar@redhat.com> - 3.52-1
- 3.52 bump
* Thu May 02 2019 Petr Pisar <ppisar@redhat.com> - 3.51-1
- 3.51 bump
* Tue Apr 30 2019 Petr Pisar <ppisar@redhat.com> - 3.49-1
- 3.49 bump
* Mon Apr 29 2019 Petr Pisar <ppisar@redhat.com> - 3.48.again-1
- 3.48-again bump
* Fri Apr 05 2019 Petr Pisar <ppisar@redhat.com> - 3.45-2
- Fix a leak in tests
* Wed Mar 20 2019 Petr Pisar <ppisar@redhat.com> - 3.45-1
- 3.45 bump
* Thu Feb 21 2019 Petr Pisar <ppisar@redhat.com> - 3.44-1
- 3.44 bump
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.43-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Sep 20 2018 Jitka Plesnikova <jplesnik@redhat.com> - 3.43-1
- 3.43 bump
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.42-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 26 2018 Jitka Plesnikova <jplesnik@redhat.com> - 3.42-2
- Perl 5.28 rebuild
* Mon Apr 23 2018 Petr Pisar <ppisar@redhat.com> - 3.42-1
- 3.42 bump
* Tue Mar 06 2018 Petr Pisar <ppisar@redhat.com> - 3.36-6
- Modernize spec file
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.36-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.36-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.36-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Jun 03 2017 Jitka Plesnikova <jplesnik@redhat.com> - 3.36-2
- Perl 5.26 rebuild
* Mon May 15 2017 Petr Pisar <ppisar@redhat.com> - 3.36-1
- 3.36 bump
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.35-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Jun 20 2016 Petr Pisar <ppisar@redhat.com> - 3.35-1
- 3.35 bump
* Wed Jun 15 2016 Petr Pisar <ppisar@redhat.com> - 3.34-1
- 3.34 bump
* Mon Jun 06 2016 Petr Pisar <ppisar@redhat.com> - 3.33-1
- 3.33 bump
* Sat May 14 2016 Jitka Plesnikova <jplesnik@redhat.com> - 3.32-365
- Increase release to favour standalone package
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.32-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Oct 01 2015 Petr Pisar <ppisar@redhat.com> - 3.32-1
- 3.32 bump
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.31-346
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Jun 04 2015 Jitka Plesnikova <jplesnik@redhat.com> - 3.31-345
- Increase release to favour standalone package
* Wed Jun 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 3.31-2
- Perl 5.22 rebuild
* Fri Mar 13 2015 Petr Pisar <ppisar@redhat.com> - 3.31-1
- 3.31 bump
* Fri Mar 06 2015 Petr Pisar <ppisar@redhat.com> - 3.30-1
- 3.30 bump
* Mon Jan 19 2015 Petr Pisar <ppisar@redhat.com> - 3.28-1
- 3.28 bump
* Fri Jan 09 2015 Petr Pisar <ppisar@redhat.com> - 3.25-2
- Do not export private library
* Fri Dec 05 2014 Petr Pisar <ppisar@redhat.com> - 3.25-1
- 3.25 bump
* Thu Sep 18 2014 Petr Pisar <ppisar@redhat.com> 3.24-1
- Specfile autogenerated by cpanspec 1.78.
Loading…
Cancel
Save