Compare commits

...

No commits in common. "c8-stream-5.3" and "c10s" have entirely different histories.

10 changed files with 261 additions and 166 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

33
.gitignore vendored
View File

@ -1 +1,32 @@
SOURCES/Module-Build-0.4229.tar.gz
Module-Build-0.2808.tar.gz
/Module-Build-0.3607.tar.gz
/Module-Build-0.3624.tar.gz
/Module-Build-0.3800.tar.gz
/Module-Build-0.40.tar.gz
/Module-Build-0.4001.tar.gz
/Module-Build-0.4002.tar.gz
/Module-Build-0.4003.tar.gz
/Module-Build-0.4004.tar.gz
/Module-Build-0.4005.tar.gz
/Module-Build-0.4007.tar.gz
/Module-Build-0.4008.tar.gz
/Module-Build-0.4201.tar.gz
/Module-Build-0.4202.tar.gz
/Module-Build-0.4203.tar.gz
/Module-Build-0.4204.tar.gz
/Module-Build-0.4205.tar.gz
/Module-Build-0.4206.tar.gz
/Module-Build-0.4208.tar.gz
/Module-Build-0.4210.tar.gz
/Module-Build-0.4211.tar.gz
/Module-Build-0.4212.tar.gz
/Module-Build-0.4214.tar.gz
/Module-Build-0.4216.tar.gz
/Module-Build-0.4218.tar.gz
/Module-Build-0.4220.tar.gz
/Module-Build-0.4222.tar.gz
/Module-Build-0.4224.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 +0,0 @@
a31d20eb918870732b3974b0c9f680adbd5b0b20 SOURCES/Module-Build-0.4229.tar.gz

View File

@ -0,0 +1,39 @@
From 043add527dd6bc05d5ef5750839ab21c2fdab9e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 28 Mar 2022 11:18:38 +0200
Subject: [PATCH] Do not die on missing ExtUtils::CBuilder in have_c_compiler()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In Fedora, ExtUtils::CBuilder is optional to allow installing perl
without gcc (bug #1547165). Module::Build::have_c_compiler() uses
ExtUtils::CBuilder to detect a presence of a C compiler. If
ExtUtils::CBuilder was not installed, have_c_compiler() died instead
of returning a false value.
This error manifested in perl-Alien-Base-ModuleBuild tests. This patch
changes have_c_compiler() to return true if ExtUtils::CBuilder is not
available.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/Module/Build/Base.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Module/Build/Base.pm b/lib/Module/Build/Base.pm
index 1352fcf..4e0f843 100644
--- a/lib/Module/Build/Base.pm
+++ b/lib/Module/Build/Base.pm
@@ -5315,7 +5315,7 @@ sub have_c_compiler {
return $p->{_have_c_compiler} if defined $p->{_have_c_compiler};
$self->log_verbose("Checking if compiler tools configured... ");
- my $b = $self->cbuilder;
+ my $b = eval { $self->cbuilder };
my $have = $b && eval { $b->have_compiler };
$self->log_verbose($have ? "ok.\n" : "failed.\n");
return $p->{_have_c_compiler} = $have;
--
2.34.1

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

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
# RHEL
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -1,30 +1,33 @@
%global cpan_version_major 0.42
%global cpan_version_minor 29
%global cpan_version_minor 34
%global cpan_version %{cpan_version_major}%{?cpan_version_minor}
# Run optional tests
%if ! (0%{?rhel})
%bcond_without perl_Module_Build_enables_optional_test
%else
%bcond_with perl_Module_Build_enables_optional_test
%endif
Name: perl-Module-Build
Epoch: 2
Version: %{cpan_version_major}%{?cpan_version_minor:.%cpan_version_minor}
Release: 4%{?dist}
Release: 7%{?dist}
Summary: Build and install Perl modules
License: GPL+ or Artistic
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
BuildRequires: coreutils
BuildRequires: perl-interpreter
BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(Archive::Tar)
BuildRequires: perl(AutoSplit)
BuildRequires: perl(base)
BuildRequires: perl(blib)
BuildRequires: perl(Carp)
BuildRequires: perl(Config)
BuildRequires: perl(CPAN::Meta) >= 2.142060
@ -78,7 +81,6 @@ BuildRequires: perl(utf8)
BuildRequires: perl(vars)
BuildRequires: perl(version) >= 0.87
BuildRequires: perl(warnings)
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(CPAN::Meta) >= 2.142060
Requires: perl(CPAN::Meta::Converter) >= 2.141170
Requires: perl(CPAN::Meta::Merge)
@ -119,6 +121,14 @@ Requires: perl(Pod::Text)
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\((ExtUtils::Install|File::Spec|Module::Build|Module::Metadata|Perl::OSType)\\)$
%global __requires_exclude %__requires_exclude|^perl\\(CPAN::Meta::YAML\\) >= 0.002$
# Filter modules bundled for tests
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
%global __requires_exclude %{__requires_exclude}|^perl\\(DistGen\\)
%global __requires_exclude %{__requires_exclude}|^perl\\(MBTest\\)
%global __requires_exclude %{__requires_exclude}|^perl\\(Simple\\)
%global __requires_exclude %{__requires_exclude}|^perl\\(Software::License.*\\)
%global __requires_exclude %{__requires_exclude}|^perl\\(Tie::CPHash\\)
%description
Module::Build is a system for building, testing, and installing Perl
modules. It is meant to be an alternative to ExtUtils::MakeMaker.
@ -130,17 +140,73 @@ so even platforms like MacOS (traditional) can use it fairly easily. Its
only prerequisites are modules that are included with perl 5.6.0, and it
works fine on perl 5.005 if you can install a few additional modules.
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
# Optional tests:
%if !%{defined perl_bootstrap}
%if %{with perl_Module_Build_enables_optional_test}
Requires: perl(Archive::Zip)
Requires: perl(File::ShareDir) >= 1.00
Requires: perl(PAR::Dist)
%endif
%endif
Requires: perl(TAP::Harness)
Requires: perl(TAP::Harness::Env)
Requires: perl(Text::ParseWords)
Requires: perl(version) >= 0.87
%description tests
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%prep
%setup -q -n Module-Build-%{cpan_version}
%patch0 -p1
%autosetup -p1 -n Module-Build-%{cpan_version}
# Help generators to recognize Perl scripts
for F in `find t -name *.t -o -name *.pl`; do
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
chmod +x "$F"
done
%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}
# Install tests
mkdir -p %{buildroot}%{_libexecdir}/%{name}
cp -a t _build %{buildroot}%{_libexecdir}/%{name}
perl -pi -e 's#%{buildroot}##' %{buildroot}%{_libexecdir}/%{name}/_build/runtime_params
rm %{buildroot}%{_libexecdir}/%{name}/_build/magicnum
mkdir -p %{buildroot}%{_libexecdir}/%{name}/bin
ln -s %{_bindir}/config_data %{buildroot}%{_libexecdir}/%{name}/bin
# Requires copy of modules in test directory
rm %{buildroot}%{_libexecdir}/%{name}/t/00-compile.t
# Remove using of blib
for F in `find %{buildroot}%{_libexecdir}/%{name}/t -name *.t -o -name *.pm`; do
perl -pi -e "s/^\s*blib_load\('([^']+)'\);/use \1;/" $F
perl -pi -e "s/^blib_load '([^']+)';/use \1;/" $F
done
perl -pi -e "s{'-Mblib', }{'-I'.\\N{U+0024}tmp.'/Simple/blib/lib', '-I'.\\N{U+0024}tmp.'/Simple/blib/arch', }x" \
%{buildroot}%{_libexecdir}/%{name}/t/xs.t
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
#!/bin/bash
set -e
# Some tests write into temporary files/directories. The easiest solution
# is to copy the tests into a writable directory and execute them from there.
DIR=$(mktemp -d)
pushd "$DIR"
cp -a %{_libexecdir}/%{name}/* ./
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
popd
rm -rf "$DIR"
EOF
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
%check
rm t/signature.t
@ -148,13 +214,92 @@ 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*
%files tests
%{_libexecdir}/%{name}
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2:0.42.34-7
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.34-6
- Package tests
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2:0.42.34-5
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.34-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.34-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.34-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* 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
* Fri Dec 16 2022 Jitka Plesnikova <jplesnik@redhat.com> -2:0.42.32-1
- 0.4232 bump
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.31-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jun 03 2022 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-14
- Perl 5.36 re-rebuild of bootstrapped packages
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-13
- Perl 5.36 rebuild
* Mon Mar 28 2022 Petr Pisar <ppisar@redhat.com> - 2:0.42.31-12
- Handle missing ExtUtils::CBuilder as a missing compiler (bug #1547165)
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.31-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.31-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-9
- Perl 5.34 re-rebuild of bootstrapped packages
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-8
- Perl 5.34 rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.31-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Dec 11 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-6
- Disable optional tests on RHEL
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.31-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-4
- Perl 5.32 re-rebuild of bootstrapped packages
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-3
- Perl 5.32 rebuild
* Tue Mar 10 2020 Paul Howarth <paul@city-fan.org> - 2:0.42.31-2
- BR: perl(blib), needed for t/xs.t
* Wed Jan 29 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2:0.42.31-1
- 0.4231 bump
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:0.42.29-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

5
plans/sanity.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (Module-Build-0.4234.tar.gz) = e2bbdd64f98b424ea7fd20e2ba301d34b77c9f2ecec28e3191fda63a056a12c0fb1cab1496419e9e9b8054db1a8d3fe92e1f033cdcdf021e1a086c8859905eca

12
tests/upstream-tests.fmf Normal file
View File

@ -0,0 +1,12 @@
summary: Upstream tests
contact: Jitka Plesnikova <jplesnik@redhat.com>
component: perl-Module-Build
require: perl-Module-Build-tests
test: /usr/libexec/perl-Module-Build/test
enabled: true
tag:
- rhel-buildroot
adjust:
- enabled: false
when: distro < rhel-10 or distro < centos-stream-10
continue: false