0.50 bump

This commit is contained in:
Petr Písař 2021-08-09 17:03:13 +02:00
parent 246d773b5a
commit 5f810c784d
6 changed files with 91 additions and 47 deletions

1
.gitignore vendored
View File

@ -15,3 +15,4 @@
/Object-Pad-0.46.tar.gz
/Object-Pad-0.47.tar.gz
/Object-Pad-0.48.tar.gz
/Object-Pad-0.50.tar.gz

View File

@ -1,39 +0,0 @@
From b7eaa2a6f1b19c30434badfb69b4f1103c9b6a72 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Tue, 3 Aug 2021 13:37:54 +0200
Subject: [PATCH] t/99exported-symbols.t: Locate shared object file with
DynaLoader
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is more portable and allows running the test against
an already installed code.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
t/99exported-symbols.t | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/t/99exported-symbols.t b/t/99exported-symbols.t
index a0159d7..358ffa6 100644
--- a/t/99exported-symbols.t
+++ b/t/99exported-symbols.t
@@ -8,7 +8,13 @@ use Test::More;
$^O eq "linux" or
plan skip_all => "This test only works on Linux (or at least, ELF platforms)";
-my $sofile = "blib/arch/auto/Object/Pad/Pad.so";
+require Object::Pad;
+my $i;
+for (@DynaLoader::dl_modules) {
+ last if $_ eq 'Object::Pad';
+ $i++;
+}
+my $sofile = $DynaLoader::dl_shared_objects[$i];
# Since we load with RTLD_GLOBAL it's important that we don't pollute the
# symbol namespace. Therefore, aside from the `boot_Object__Pad` function, the
--
2.31.1

View File

@ -0,0 +1,50 @@
From 8336fc91d5d4d10ab7b3345724f0f3a1a190292a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 9 Aug 2021 16:43:26 +0200
Subject: [PATCH] t/99exported-symbols.t: Obtain header file content from
Object::Pad::ExtensionBuilder_data
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The test did not work on installed files because there is no
object_pad.h file:
$ perl t/99exported-symbols.t
ok 1 - No unexpected symbols found in /usr/lib64/perl5/vendor_perl/auto/Object/Pad/Pad.so
Cannot read include/object_pad.h - No such file or directory at t/99exported-symbols.t line 59.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 2 just after 1.
But content of that file is wrapped into
Object::Pad::ExtensionBuilder_data module. This patch changed the test
to inspect Object::Pad::ExtensionBuilder_data.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
t/99exported-symbols.t | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/t/99exported-symbols.t b/t/99exported-symbols.t
index 8f0e7fb..c8987bc 100644
--- a/t/99exported-symbols.t
+++ b/t/99exported-symbols.t
@@ -54,13 +54,10 @@ ok( !@unexpected_symbols, "No unexpected symbols found in $sofile" ) or
diag( "Symbols found:\n " . join( "\n ", @unexpected_symbols ) );
# Now compare to the #define'd macros in object_pad.h
+require Object::Pad::ExtensionBuilder_data;
my %macros;
{
- open my $fh, "include/object_pad.h" or
- die "Cannot read include/object_pad.h - $!";
-
- while( <$fh> ) {
- chomp;
+ for( split(/\R/, Object::Pad::ExtensionBuilder_data::OBJECT_PAD_H()) ) {
next unless m/^#define (.*?)\(/;
$macros{$1}++;
--
2.31.1

1
macros.perl-Object-Pad Normal file
View File

@ -0,0 +1 @@
%perl_Object_Pad_ABI perl(:XS_Object_Pad_ABI) = %(perl -e 'require Object::Pad::ExtensionBuilder_data; print qq{$2.$1} if Object::Pad::ExtensionBuilder_data::OBJECT_PAD_H() =~ m{^#define OBJECTPAD_ABIVERSION_MINOR (\\d+)\\R#define OBJECTPAD_ABIVERSION_MAJOR (\\d+)}m')

View File

@ -4,19 +4,21 @@
%bcond_without perl_Object_Pad_enables_optional_test
Name: perl-Object-Pad
Version: 0.48
Version: 0.50
Release: 1%{?dist}
Summary: Simple syntax for lexical slot-based objects
License: GPL+ or Artistic
URL: https://metacpan.org/release/Object-Pad
Source0: https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Object-Pad-%{version}.tar.gz
Source1: macros.perl-Object-Pad
# Enable t/99exported-symbols.t test to work against an installed code,
# CPAN RT#138320, proposed to an upstream.
Patch0: Object-Pad-0.48-t-99exported-symbols.t-Locate-shared-object-file-wit.patch
# CPAN RT#138634, proposed to an upstream.
Patch0: Object-Pad-0.50-t-99exported-symbols.t-Obtain-header-file-content-fr.patch
BuildRequires: coreutils
BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(:VERSION) >= 5.14
BuildRequires: perl(Config)
%if %{with perl_Object_Pad_enables_Devel_MAT}
BuildRequires: perl(Devel::MAT::Dumper::Helper) >= 0.41
@ -28,7 +30,6 @@ BuildRequires: perl(warnings)
BuildRequires: perl(XS::Parse::Keyword::Builder) >= 0.10
BuildRequires: perl(XS::Parse::Sublike::Builder) >= 0.10
# Run-time:
BuildRequires: perl(:VERSION) >= 5.14
BuildRequires: perl(Carp)
BuildRequires: perl(DynaLoader)
# experimental since perl 5.20
@ -37,7 +38,7 @@ BuildRequires: perl(feature)
# indirect not used (only with 5.20.0 <= perl < 5.31.9)
BuildRequires: perl(mro)
# XS::Parse::Keyword is loaded from a header file generated by ./Build.PL,
# version specified in lib/Object/Pad.xs, out-dated CPAN RT#138318
# version specified in lib/Object/Pad.xs
BuildRequires: perl(XS::Parse::Keyword) >= 0.10
# XS::Parse::Sublike is loaded from a header file generated by ./Build.PL,
# version specified in lib/Object/Pad.xs
@ -71,6 +72,10 @@ Requires: perl(XS::Parse::Keyword) >= 0.10
Requires: %{perl_XS_Parse_Keyword_ABI}
%endif
Requires: perl(XS::Parse::Sublike) >= 0.10
# This module maintains an ABI defined in OBJECTPAD_ABIVERSION macro at
# include/object_pad.h and checked at run time against ClassHookFuncs.ver
# field by ObjectPad_register_slot_attribute().
Provides: perl(:Object_Pad_ABI) = 0.50
# Filter private modules
%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\((ARole|BaseClass)\\)
@ -102,6 +107,19 @@ Requires: perl(Test::MemoryGrowth)
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%package ExtensionBuilder
Summary: Build-time support for Object::Pad plugins
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-interpreter
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
# rpm for /usr/lib/rpm/macros.d directory
Requires: rpm
%description ExtensionBuilder
This package provides a build-time helper to assist the authors in writing XS
plugins for Object::Pad. It prepares a Module::Build-driven distribution to be
able to make use of Object::Pad.
%prep
%autosetup -p1 -n Object-Pad-%{version}
%if !%{with perl_Object_Pad_enables_optional_test} || %{defined perl_bootstrap}
@ -121,6 +139,7 @@ perl Build.PL --installdirs=vendor --optimize="$RPM_OPT_FLAGS"
./Build install --destdir=%{buildroot} --create_packlist=0
find %{buildroot} -type f -name '*.bs' -size 0 -delete
%{_fixperms} %{buildroot}/*
install -D -m 0644 -t %{buildroot}%{_rpmmacrodir} %{SOURCE1}
# Install tests
mkdir -p %{buildroot}/%{_libexecdir}/%{name}
cp -a t %{buildroot}/%{_libexecdir}/%{name}
@ -141,13 +160,25 @@ export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print
%license LICENSE
%doc Changes README
%{perl_vendorarch}/auto/*
%{perl_vendorarch}/Object*
%{_mandir}/man3/*
%dir %{perl_vendorarch}/Object
%{perl_vendorarch}/Object/Pad.pm
%dir %{perl_vendorarch}/Object/Pad
%{perl_vendorarch}/Object/Pad/MOP
%{_mandir}/man3/Object::Pad.*
%{_mandir}/man3/Object::Pad::MOP::*
%files ExtensionBuilder
%{perl_vendorarch}/Object/Pad/ExtensionBuilder*
%{_mandir}/man3/Object::Pad::ExtensionBuilder*
%{_rpmmacrodir}/macros.%{name}
%files tests
%{_libexecdir}/%{name}
%changelog
* Mon Aug 09 2021 Petr Pisar <ppisar@redhat.com> - 0.50-1
- 0.50 bump
* Tue Aug 03 2021 Petr Pisar <ppisar@redhat.com> - 0.48-1
- 0.48 bump

View File

@ -1 +1 @@
SHA512 (Object-Pad-0.48.tar.gz) = 67f45833c96406250f09dd966b257872fea4ac381d52f040b3119ea49724ce4d310a18ff42740d4110a1a3eae7fc85de1b0c2acbaa6d83c23d9ebeaea2bce882
SHA512 (Object-Pad-0.50.tar.gz) = fc80659472d53d7e3a49b42ab93bab3d626836bef8a385bb8d387c32d35550361ffde8be316506293bc269d3e480062298ae13bbdf3156f985396c1bf4f2368a