Compare commits

...

1 Commits

Author SHA1 Message Date
c00875d2c1 import UBI perl-version-0.99.32-4.el10 2025-05-14 17:50:19 +00:00
5 changed files with 142 additions and 81 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/version-0.9924.tar.gz
version-0.9932.tar.gz

View File

@ -1 +0,0 @@
86a2a814def626d269ce332df5d3df1d63b07f5f SOURCES/version-0.9924.tar.gz

View File

@ -1,65 +0,0 @@
From eecfc44fbd6659ed35719038ecf2b029fe20cfd5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 25 Nov 2019 16:48:33 +0100
Subject: [PATCH] Subject: [PATCH] ensure locale_name_on_entry isn't clobbered
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If the return value of setlocale() is static storage, the call to
setlocale(LC_NUMERIC, "C"); could overwrite it.
If the return value of setlocale() is malloced, the call to
setlocale(LC_NUMERIC, "C"); could free it.
Either way, we need to copy it. Fixes gh #17054 rt134212
Petr Písař: Ported to version-0.9924 from perl commit
bcb1da5c29c3a2534a0e43874974b83c9c8b174c.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
vutil/vutil.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/vutil/vutil.c b/vutil/vutil.c
index 5d183a0..69c8351 100644
--- a/vutil/vutil.c
+++ b/vutil/vutil.c
@@ -638,6 +638,8 @@ VER_NV:
if ( strNE(locale_name_on_entry, "C")
&& strNE(locale_name_on_entry, "POSIX"))
{
+ /* the setlocale() call might free or overwrite the name */
+ locale_name_on_entry = savepv(locale_name_on_entry);
setlocale(LC_NUMERIC, "C");
}
else { /* This value indicates to the restore code that we didn't
@@ -661,6 +663,8 @@ VER_NV:
if ( strNE(locale_name_on_entry, "C")
&& strNE(locale_name_on_entry, "POSIX"))
{
+ /* the setlocale() call might free or overwrite the name */
+ locale_name_on_entry = savepv(locale_name_on_entry);
setlocale(LC_NUMERIC, "C");
}
else { /* This value indicates to the restore code that we
@@ -710,6 +714,7 @@ VER_NV:
if (locale_name_on_entry) {
setlocale(LC_NUMERIC, locale_name_on_entry);
+ Safefree(locale_name_on_entry);
}
LC_NUMERIC_UNLOCK; /* End critical section */
@@ -718,6 +723,7 @@ VER_NV:
if (locale_name_on_entry) {
setlocale(LC_NUMERIC, locale_name_on_entry);
+ Safefree(locale_name_on_entry);
LC_NUMERIC_UNLOCK;
}
else if (locale_obj_on_entry == PL_underlying_numeric_obj) {
--
2.21.0

View File

@ -6,17 +6,16 @@
%endif
Name: perl-version
Epoch: 7
Version: 0.99.24
%global module_version 0.9924
Release: 441%{?dist}
Epoch: 8
Version: 0.99.32
%global module_version 0.9932
Release: 4%{?dist}
Summary: Perl extension for Version Objects
License: GPL+ or Artistic
License: GPL-1.0-or-later OR Artistic-1.0-Perl
URL: https://metacpan.org/release/version
Source0: https://cpan.metacpan.org/authors/id/J/JP/JPEACOCK/version-%{module_version}.tar.gz
# Do not clobber memory when switching a locale, Perl GH#17054, in Perl 5.31.5
Patch0: version-0.9924-ensure-locale_name_on_entry-isn-t-clobbered.patch
Source0: https://cpan.metacpan.org/authors/id/L/LE/LEONT/version-%{module_version}.tar.gz
# Build
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
BuildRequires: make
@ -41,20 +40,20 @@ BuildRequires: perl(warnings)
BuildRequires: perl(warnings::register)
BuildRequires: perl(XSLoader)
# Tests only
BuildRequires: perl(base)
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Spec)
BuildRequires: perl(I18N::Langinfo)
BuildRequires: perl(IO::Handle)
BuildRequires: perl(lib)
BuildRequires: perl(List::Util)
BuildRequires: perl(parent)
BuildRequires: perl(Test::Harness)
BuildRequires: perl(Test::More) >= 0.45
# Optional tests
%if %{with perl_version_enables_optional_test} && ! %{defined perl_bootstrap}
BuildRequires: perl(Test::Taint)
%endif
Requires: perl(:MODULE_COMPAT_%(eval "$(perl -V:version)"; echo $version))
Requires: perl(B)
Requires: perl(Carp)
Requires: perl(locale)
@ -65,6 +64,7 @@ Requires: perl(XSLoader)
%{?perl_default_filter}
# version::vxs is private module (see bug #633775)
%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}perl\\(version::vxs\\)
%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir}
%description
Version objects were added to Perl in 5.10. This module implements version
@ -74,20 +74,54 @@ should not be used due to incompatible API changes. Version 0.77 introduces
the new 'parse' and 'declare' methods to standardize usage. You are
strongly urged to set 0.77 as a minimum in your code.
%package tests
Summary: Tests for %{name}
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: perl-Test-Harness
Requires: perl(I18N::Langinfo)
%description tests
Tests from %{name}. Execute them
with "%{_libexecdir}/%{name}/test".
%prep
%setup -q -n version-%{module_version}
%patch0 -p1
# Help file to recognise the Perl scripts
for F in t/*.t t/survey_locales; do
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
chmod +x "$F"
done
perl -MConfig -i -pe 's/\A#!.*perl/$Config{startperl}/' t/*.pm
%build
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" UNINST=0 NO_PACKLIST=1
make %{?_smp_mflags}
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" UNINST=0 NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build}
%install
make pure_install DESTDIR=%{buildroot}
%{make_install}
find %{buildroot} -type f -name '*.bs' -size 0 -delete
%{_fixperms} %{buildroot}/*
# Install tests
mkdir -p %{buildroot}/%{_libexecdir}/%{name}
cp -a t %{buildroot}/%{_libexecdir}/%{name}
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
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
make test
%files
@ -103,7 +137,99 @@ make test
%{_mandir}/man3/version.3pm*
%{_mandir}/man3/version::Internals.3pm*
%files tests
%{_libexecdir}/%{name}
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 8:0.99.32-4
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Fri Aug 09 2024 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.32-3
- Perl 5.40 re-rebuild of bootstrapped packages
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.32-2
- Perl 5.40 rebuild
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.32-1
- 0.9932 bump
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 8:0.99.30-4
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.30-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.30-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Sep 12 2023 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.9930-1
- 0.9930 bump (rhbz#2238421)
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.29-501
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jul 12 2023 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.29-500
- Perl 5.38 re-rebuild of bootstrapped packages
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.29-499
- Increase release to favour standalone package
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.29-491
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.29-490
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jun 03 2022 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.29-489
- Perl 5.36 re-rebuild of bootstrapped packages
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.29-488
- Increase release to favour standalone package
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.29-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Jul 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 8:0.99.29-4
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.29-3
- Perl 5.34 re-rebuild of bootstrapped packages
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 8:0.99.29-2
- Increase epoch to favour standalone package
* Mon Apr 19 2021 Jitka Plesnikova <jplesnik@redhat.com> - 7:0.99.29-1
- 0.9929 bump
- Package tests
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7:0.99.28-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Sep 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 7:0.99.28-1
- 0.9928 bump
* Fri Aug 21 2020 Jitka Plesnikova <jplesnik@redhat.com> - 7:0.99.27-458
- 0.9927 bump
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7:0.99.24-458
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 7:0.99.24-457
- Perl 5.32 re-rebuild of bootstrapped packages
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 7:0.99.24-456
- Increase release to favour standalone package
* Thu Feb 06 2020 Tom Stellard <tstellar@redhat.com> - 7:0.99.24-443
- Spec file cleanups: Use make_build and make_install macros
- https://docs.fedoraproject.org/en-US/packaging-guidelines/#_parallel_make
- https://fedoraproject.org/wiki/Perl/Tips#ExtUtils::MakeMake
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7:0.99.24-442
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Nov 25 2019 Petr Pisar <ppisar@redhat.com> - 7:0.99.24-441
- Do not clobber memory when switching a locale (Perl GH#17054)

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (version-0.9932.tar.gz) = 60bcfd3a1244e37609deb46650ecbfb0e40304f84b2a6871bdfd9d7eb209fdba9df2c0b8d7341f20d827c14f703fad29472214645b7945a0903d8493be8916dd