0.4234 bump

- New upstream release 0.4234
- Use author-independent source URL
- Fix permissions verbosely
- Make %files list more explicit
This commit is contained in:
Paul Howarth 2023-04-28 14:34:39 +01:00
parent c9dc8ad3de
commit 955ef4261e
4 changed files with 18 additions and 160 deletions

1
.gitignore vendored
View File

@ -29,3 +29,4 @@ Module-Build-0.2808.tar.gz
/Module-Build-0.4229.tar.gz
/Module-Build-0.4231.tar.gz
/Module-Build-0.4232.tar.gz
/Module-Build-0.4234.tar.gz

View File

@ -1,145 +0,0 @@
From 6b096ea5670ed291abac632b296222b56d9fadb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Thu, 1 Mar 2018 14:44:40 +0100
Subject: [PATCH] Do not need a compiler if c_source is an empty list
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
c_source used to be string, then it allowed a reference to an array.
But in case the array was empty, auto_require() still enabled
needs_compiler property and thus implied probing a compiler and
a failure if none was available.
Minilla generates these Build.PLs for pure-Perl distributions. See
KAZUHO/Server-Starter-0.34.
This patch makes Module::Build not require C compiler for
c_source = [].
Petr Písař: Ported to 0.4224.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/Module/Build/API.pod | 8 ++++----
lib/Module/Build/Base.pm | 6 +++++-
t/properties/needs_compiler.t | 46 ++++++++++++++++++++++++++++++++++++++++---
3 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/lib/Module/Build/API.pod b/lib/Module/Build/API.pod
index cd2021a..c9be539 100644
--- a/lib/Module/Build/API.pod
+++ b/lib/Module/Build/API.pod
@@ -209,10 +209,10 @@ created by Module::Build.
[version 0.04]
-An optional C<c_source> argument specifies a directory which contains
-C source files that the rest of the build may depend on. Any C<.c>
-files in the directory will be compiled to object files. The
-directory will be added to the search path during the compilation and
+An optional C<c_source> argument specifies a directory or a reference to array
+of directories which contain C source files that the rest of the build may
+depend on. Any C<.c> files in the directory will be compiled to object files.
+The directory will be added to the search path during the compilation and
linking phases of any C or XS files.
[version 0.3604]
diff --git a/lib/Module/Build/Base.pm b/lib/Module/Build/Base.pm
index 984810a..a29c664 100644
--- a/lib/Module/Build/Base.pm
+++ b/lib/Module/Build/Base.pm
@@ -1520,7 +1520,11 @@ sub auto_require {
if ( $self->pureperl_only && $self->allow_pureperl ) {
$self->needs_compiler( 0 );
} else {
- $self->needs_compiler( keys %$xs_files || defined $self->c_source );
+ $self->needs_compiler( keys %$xs_files ||
+ ( defined $self->c_source &&
+ ( ref($self->c_source) ne 'ARRAY' || @{$self->c_source} )
+ )
+ );
}
}
if ($self->needs_compiler) {
diff --git a/t/properties/needs_compiler.t b/t/properties/needs_compiler.t
index f616dfc..c76d38f 100644
--- a/t/properties/needs_compiler.t
+++ b/t/properties/needs_compiler.t
@@ -5,7 +5,7 @@ use lib 't/lib';
use MBTest;
use DistGen;
-plan tests => 19;
+plan tests => 27;
# Ensure any Module::Build modules are loaded from correct directory
blib_load('Module::Build');
@@ -24,7 +24,7 @@ ok( ! exists $mb->{properties}{build_requires}{'ExtUtils::CBuilder'},
);
#--------------------------------------------------------------------------#
-# try with c_source
+# try with c_source as a string
#--------------------------------------------------------------------------#
$dist->change_build_pl({
module_name => $dist->name,
@@ -34,7 +34,7 @@ $dist->change_build_pl({
$dist->regen;
stderr_of(sub {
ok( $mb = $dist->new_from_context,
- "Build.PL with c_source"
+ "Build.PL with string c_source"
);
});
is( $mb->c_source, 'src', "c_source is set" );
@@ -44,6 +44,46 @@ ok( exists $mb->{properties}{build_requires}{'ExtUtils::CBuilder'},
);
#--------------------------------------------------------------------------#
+# try with c_source as an array
+#--------------------------------------------------------------------------#
+$dist->change_build_pl({
+ module_name => $dist->name,
+ license => 'perl',
+ c_source => ['src'],
+});
+$dist->regen;
+stderr_of(sub {
+ ok( $mb = $dist->new_from_context,
+ "Build.PL with non-empty array c_source"
+ );
+});
+is_deeply( $mb->c_source, ['src'], "c_source is set" );
+ok( $mb->needs_compiler, "needs_compiler is true" );
+ok( exists $mb->{properties}{build_requires}{'ExtUtils::CBuilder'},
+ "ExtUtils::CBuilder was added to build_requires"
+);
+
+#--------------------------------------------------------------------------#
+# try with c_source as an empty array
+#--------------------------------------------------------------------------#
+$dist->change_build_pl({
+ module_name => $dist->name,
+ license => 'perl',
+ c_source => [],
+});
+$dist->regen;
+stderr_of(sub {
+ ok( $mb = $dist->new_from_context,
+ "Build.PL with empty array c_source"
+ );
+});
+is_deeply( $mb->c_source, [], "c_source is set" );
+ok( ! $mb->needs_compiler, "needs_compiler is false" );
+ok( ! exists $mb->{properties}{build_requires}{'ExtUtils::CBuilder'},
+ "ExtUtils::CBuilder is not in build_requires"
+);
+
+#--------------------------------------------------------------------------#
# try with xs files
#--------------------------------------------------------------------------#
$dist = DistGen->new(dir => 'MBTest', xs => 1);
--
2.13.6

View File

@ -1,5 +1,5 @@
%global cpan_version_major 0.42
%global cpan_version_minor 32
%global cpan_version_minor 34
%global cpan_version %{cpan_version_major}%{?cpan_version_minor}
# Run optional tests
@ -12,15 +12,11 @@
Name: perl-Module-Build
Epoch: 2
Version: %{cpan_version_major}%{?cpan_version_minor:.%cpan_version_minor}
Release: 2%{?dist}
Release: 1%{?dist}
Summary: Build and install Perl modules
License: GPL-1.0-or-later OR Artistic-1.0-Perl
URL: https://metacpan.org/release/Module-Build
Source0: https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-%{cpan_version}.tar.gz
# Do not require a compiler if c_source is an empty list, bug #1547165,
# CPAN RT#124625,
# <https://lists.fedoraproject.org/archives/list/perl-devel@lists.fedoraproject.org/message/UWQ6SDRKNTX6SM6RBJ35CDBGRCV3ZSKP/>
Patch0: Module-Build-0.4224-Do-not-need-a-compiler-if-c_source-is-an-empty-list.patch
Source0: https://cpan.metacpan.org/modules/by-module/Module/Module-Build-%{cpan_version}.tar.gz
# Handle missing ExtUtils::CBuilder as a missing compiler, bug #1547165.
Patch1: Module-Build-0.4231-Do-not-die-on-missing-ExtUtils-CBuilder-in-have_c_co.patch
BuildArch: noarch
@ -140,12 +136,12 @@ works fine on perl 5.005 if you can install a few additional modules.
%autosetup -p1 -n Module-Build-%{cpan_version}
%build
perl Build.PL installdirs=vendor
perl Build.PL --installdirs=vendor
./Build
%install
./Build install destdir=%{buildroot} create_packlist=0
%{_fixperms} %{buildroot}/*
./Build install --destdir=%{buildroot} --create_packlist=0
%{_fixperms} -c %{buildroot}
%check
rm t/signature.t
@ -153,13 +149,19 @@ LANG=C TEST_SIGNATURE=1 MB_TEST_EXPERIMENTAL=1 ./Build test
%files
%license LICENSE
%doc Changes contrib README
%doc Changes contrib/ README
%{_bindir}/config_data
%{perl_vendorlib}/*
%{_mandir}/man1/*
%{_mandir}/man3/*
%{perl_vendorlib}/Module/
%{_mandir}/man1/config_data.1*
%{_mandir}/man3/Module::Build*.3*
%changelog
* Fri Apr 28 2023 Paul Howarth <paul@city-fan.org> - 2:0.42.34-1
- 0.4234 bump
- Use author-independent source URL
- Fix permissions verbosely
- Make %%files list more explicit
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.32-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (Module-Build-0.4232.tar.gz) = f8ff0aa918e1627af59417eb3d6cf63df52c452195905596f5a88482fc094c31b1963b0215627826b1cd33fa74893cadce138e5fd705adc14d9968f586da333c
SHA512 (Module-Build-0.4234.tar.gz) = e2bbdd64f98b424ea7fd20e2ba301d34b77c9f2ecec28e3191fda63a056a12c0fb1cab1496419e9e9b8054db1a8d3fe92e1f033cdcdf021e1a086c8859905eca