diff --git a/.gitignore b/.gitignore index b66deff..58d411d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/YAML-1.24.tar.gz +YAML-free-1.31.tar.gz diff --git a/.perl-YAML.metadata b/.perl-YAML.metadata deleted file mode 100644 index 592a54d..0000000 --- a/.perl-YAML.metadata +++ /dev/null @@ -1 +0,0 @@ -1620af79b2be7d3c3ada7cd1678ecd0306558dc8 SOURCES/YAML-1.24.tar.gz diff --git a/YAML-free b/YAML-free new file mode 100755 index 0000000..beae38a --- /dev/null +++ b/YAML-free @@ -0,0 +1,44 @@ +#!/bin/bash + +# YAML-free: create repackaged YAML tarball without non-free content +# See https://bugzilla.redhat.com/show_bug.cgi?id=1813197 +# https://github.com/ingydotnet/yaml-pm/issues/219 +# +# Usage: YAML-free YAML-version.tar.gz +# Creates: YAML-free-version.tar.gz + +case $# in +1) YAML_tarball="$1" + ;; +*) echo "YAML-free: usage: YAML-free YAML-version.tar.gz" 1>&2 + exit 1 + ;; +esac + +if echo "$YAML_tarball" | grep --silent -x 'YAML-[1-9][0-9]*\.[0-9][0-9.]*\.tar\.gz'; then + YAML_free_tarball=$(echo "$YAML_tarball" | sed -e 's|^YAML|YAML-free|') + YAML_dirname=$(echo "$YAML_tarball" | sed -e 's|\.tar\.gz$||') +else + echo "YAML-free: tarball $YAML_tarball does not meet expected naming" 1>&2 + exit 1 +fi + +echo "Creating $YAML_free_tarball from $YAML_tarball in directory $YAML_dirname" + +echo "Ensuring directory $YAML_dirname does not already exist" +rm -rf "$YAML_dirname" + +echo "Extracting $YAML_tarball" +tar xfz "$YAML_tarball" + +echo "Removing non-free file t/load-slides.t" +rm "$YAML_dirname/t/load-slides.t" + +echo "Removing reference to non-free file t/load-slides.t from MANIFEST" +sed -i -e '/^t\/load-slides.t/d' "$YAML_dirname/MANIFEST" + +echo "Creating $YAML_free_tarball" +tar cfz "$YAML_free_tarball" "$YAML_dirname" + +echo "Removing work directory $YAML_dirname" +rm -rf "$YAML_dirname" diff --git a/SPECS/perl-YAML.spec b/perl-YAML.spec similarity index 65% rename from SPECS/perl-YAML.spec rename to perl-YAML.spec index 676f596..531b7ab 100644 --- a/SPECS/perl-YAML.spec +++ b/perl-YAML.spec @@ -4,20 +4,32 @@ %else %bcond_with perl_YAML_enables_test %endif +# Run extra test +%if ! (0%{?rhel}) +%bcond_without perl_YAML_enables_extra_test +%else +%bcond_with perl_YAML_enables_extra_test +%endif Name: perl-YAML -Version: 1.24 -Release: 3%{?dist} +Version: 1.31 +Release: 7%{?dist} Summary: YAML Ain't Markup Language (tm) -License: GPL+ or Artistic -URL: http://search.cpan.org/dist/YAML/ -Source0: http://search.cpan.org/CPAN/authors/id/T/TI/TINITA/YAML-%{version}.tar.gz +License: GPL-1.0-or-later OR Artistic-1.0-Perl +URL: https://metacpan.org/release/YAML +# Tarball created from https://cpan.metacpan.org/modules/by-module/YAML/YAML-%%{version}.tar.gz +# using script YAML-free (see https://bugzilla.redhat.com/show_bug.cgi?id=1813197) +Source0: YAML-free-%{version}.tar.gz +# Script to remove non-free content from upstream tarball +# Usage: YAML-free YAML-%%{version}.tar.gz +Source1: YAML-free BuildArch: noarch # Module Build BuildRequires: coreutils BuildRequires: make -BuildRequires: perl-interpreter BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(Config) BuildRequires: perl(ExtUtils::MakeMaker) > 6.75 # Module Runtime BuildRequires: perl(B) @@ -32,17 +44,23 @@ BuildRequires: perl(warnings) # Test Suite # Avoid circular build deps Test::YAML → Test::Base → YAML when bootstrapping %if %{with perl_YAML_enables_test} && !%{defined perl_bootstrap} +BuildRequires: perl(Config) BuildRequires: perl(Data::Dumper) +BuildRequires: perl(Encode) BuildRequires: perl(File::Find) BuildRequires: perl(IO::File) BuildRequires: perl(IO::Pipe) BuildRequires: perl(lib) +BuildRequires: perl(Test::Deep) BuildRequires: perl(Test::More) >= 0.88 BuildRequires: perl(Test::YAML) >= 1.05 BuildRequires: perl(utf8) +%if %{with perl_YAML_enables_extra_test} +# Author Tests +BuildRequires: perl(Test::Pod) >= 1.41 %endif -# Runtime -Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) +%endif +# Dependencies Requires: perl(B::Deparse) Requires: perl(Carp) @@ -50,29 +68,76 @@ Requires: perl(Carp) # perl(yaml_mapping) perl(yaml_scalar) perl(yaml_sequence) %global __provides_exclude ^perl\\(yaml_ +# Remove private test modules +%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}^%{_libexecdir} +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\((TestYAML|TestYAMLBase)\\)$ + %description -The YAML.pm module implements a YAML Loader and Dumper based on the -YAML 1.0 specification. http://www.yaml.org/spec/ -YAML is a generic data serialization language that is optimized for -human readability. It can be used to express the data structures of -most modern programming languages, including Perl. -For information on the YAML syntax, please refer to the YAML -specification. +If you need to use YAML with Perl, it is likely that you will have a look at +this module (YAML.pm) first. There are several YAML modules in Perl and they +all support the simple Load() and Dump() API. Since this one has the obvious +name "YAML", it may seem obvious to pick this one. + +The author of this module humbly asks you to choose another. YAML.pm was the +very first YAML implementation in the world, released in 2001. It was +originally made as a prototype, over 2 years before the YAML 1.0 spec was +published. Although it may work for your needs, it has numerous bugs and is +barely maintained. + +Please consider using these first: + * YAML::PP - Pure Perl, full featured, well maintained + * YAML::PP::LibYAML - A libyaml Perl binding like YAML::XS but with the + YAML::PP API + +%package tests +Summary: Tests for %{name} +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: perl-Test-Harness + +%description tests +Tests from %{name}. Execute them +with "%{_libexecdir}/%{name}/test". %prep %setup -q -n YAML-%{version} +# Help generators to recognize Perl scripts +for F in t/*.t; 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 -make %{?_smp_mflags} +%{make_build} %install -make install DESTDIR=%{buildroot} +%{make_install} +%{_fixperms} -c %{buildroot} +# Install tests +mkdir -p %{buildroot}%{_libexecdir}/%{name}/t +# XXX Skip tests which is using Test::YAML +for F in \ + 2-scalars.t \ + dump-synopsis.t \ + issue-149.t \ + issue-69.t \ + numify.t \ + preserve.t \ + roundtrip.t \ + rt-90593.t \ + ; do + cp "t/$F" %{buildroot}%{_libexecdir}/%{name}/t +done +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 # Avoid circular build deps Test::YAML → Test::Base → YAML when bootstrapping %if %{with perl_YAML_enables_test} && !%{defined perl_bootstrap} -make test +make test AUTHOR_TESTING=%{with perl_YAML_enables_extra_test} %endif %files @@ -116,9 +181,140 @@ make test %{_mandir}/man3/YAML::Tag.3* %{_mandir}/man3/YAML::Types.3* +%files tests +%{_libexecdir}/%{name} + %changelog -* Fri Mar 29 2019 Jitka Plesnikova - 1.24-3 -- Rebuild with enable hardening (bug #1636329) +* Tue Oct 29 2024 Troy Dawson - 1.31-7 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 + +* Mon Aug 26 2024 Jitka Plesnikova - 1.31-6 +- Fix filters of dependencies + +* Mon Jul 15 2024 Michal Josef Špaček - 1.31-5 +- Package tests + +* Mon Jun 24 2024 Troy Dawson - 1.31-4 +- Bump release for June 2024 mass rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 1.31-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.31-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Dec 28 2023 Paul Howarth - 1.31-1 +- Update to 1.31 (rhbz#2255994) + - Update docs to recommend YAML::PP +- Package description updated as per upstream documentation + +* Fri Jul 21 2023 Fedora Release Engineering - 1.30-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Mar 02 2023 Michal Josef Špaček - 1.30-15 +- Update license to SPDX format + +* Fri Jan 20 2023 Fedora Release Engineering - 1.30-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 1.30-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jun 03 2022 Jitka Plesnikova - 1.30-12 +- Perl 5.36 re-rebuild of bootstrapped packages + +* Mon May 30 2022 Jitka Plesnikova - 1.30-11 +- Perl 5.36 rebuild + +* Fri Jan 21 2022 Fedora Release Engineering - 1.30-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 1.30-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon May 24 2021 Jitka Plesnikova - 1.30-8 +- Perl 5.34 re-rebuild of bootstrapped packages + +* Fri May 21 2021 Jitka Plesnikova - 1.30-7 +- Perl 5.34 rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 1.30-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.30-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jun 26 2020 Jitka Plesnikova - 1.30-4 +- Perl 5.32 re-rebuild of bootstrapped packages + +* Mon Jun 22 2020 Jitka Plesnikova - 1.30-3 +- Perl 5.32 rebuild + +* Fri Mar 13 2020 Paul Howarth - 1.30-2 +- Remove non-free test file t/load-slides.t (#1813197, GH#219) + +* Tue Jan 28 2020 Paul Howarth - 1.30-1 +- Update to 1.30 + - Breaking Change: Set $YAML::LoadBlessed default to false to make it more + secure + +* Fri Jul 26 2019 Fedora Release Engineering - 1.29-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jun 02 2019 Jitka Plesnikova - 1.29-3 +- Perl 5.30 re-rebuild of bootstrapped packages + +* Thu May 30 2019 Jitka Plesnikova - 1.29-2 +- Perl 5.30 rebuild + +* Sat May 11 2019 Paul Howarth - 1.29-1 +- Update to 1.29 + - Fix regex for alias to match the one for anchors (GH#214) + +* Sun Apr 28 2019 Paul Howarth - 1.28-1 +- Update to 1.28 + - Security fix: only enable loading globs when $LoadCode is set (GH#213) +- Modernize spec using %%{make_build} and %%{make_install} + +* Sat Feb 02 2019 Fedora Release Engineering - 1.27-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Nov 3 2018 Paul Howarth - 1.27-1 +- Update to 1.27 + - Remove a warning about uninitialized value for perl ≤ 5.10 + +* Fri Jul 13 2018 Fedora Release Engineering - 1.26-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Jun 30 2018 Jitka Plesnikova - 1.26-3 +- Perl 5.28 re-rebuild of bootstrapped packages + +* Wed Jun 27 2018 Jitka Plesnikova - 1.26-2 +- Perl 5.28 rebuild + +* Sun May 20 2018 Paul Howarth - 1.26-1 +- Update to 1.26 + - Fix bug introduced in 1.25 - loading of quoted string with colon as + sequence element (GH#208) + - Support zero indented block sequences (GH#207) + +* Sat May 12 2018 Paul Howarth - 1.25-1 +- Update to 1.25 + - Support trailing comments (GH#189, GH#190, GH#191) + - Remove unused code (GH#192) + - Use Test::Deep to actually test correctly for class names (GH#193) + - Fix loading of mapping key that starts with '= ' (GH#194) + - Fix loading strings with multiple spaces (GH#172) + - Allow more characters in anchor name (GH#196) + - Add $YAML::LoadBlessed for disabling loading objects (GH#197) + - Disable test with long string under certain conditions (GH#201) + - Quote scalar if it equals '=' (GH#202) + - Multiple regexp roundtrip does not grow (GH#203) + - Add support for compact nested block sequences (GH#204) + - Support reverse order of block scalar indicators (GH#205) + - Support nested mappings in sequences (GH#206) + - Fix parsing of quoted strings (GH#188) * Fri Feb 09 2018 Fedora Release Engineering - 1.24-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild diff --git a/sources b/sources new file mode 100644 index 0000000..4760ec9 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (YAML-free-1.31.tar.gz) = fd259d41f8f5b5ef58365ceecc489f238560253e298fe9392d480dd1fff51f77a0e6e45413c37fd0e54bbd7a898484a90228d69701d7304cf47a2c1d320e2fd8