diff --git a/STD-20101111-Enable-loading-objects-from-YAML-documents.patch b/STD-20101111-Enable-loading-objects-from-YAML-documents.patch new file mode 100644 index 0000000000000000000000000000000000000000..f03c8f95a109aa002b8f6f09396c9a66bed9e176 --- /dev/null +++ b/STD-20101111-Enable-loading-objects-from-YAML-documents.patch @@ -0,0 +1,64 @@ +From ef346a29b134e745218fe5c9e27a8697d53ec8f1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 31 Mar 2020 17:36:55 +0200 +Subject: [PATCH] Enable loading objects from YAML documents +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +YAML-LibYAML-0.81 disabled $YAML::XS::LoadBlessed by default and that +broke STD that relies on deserializing AST objects from YAML +documents. + +This patch reenables it. STD library seems to load only its own +documents so it does not possess a security issue. The viv tools is +somewhat questionable. + +CPAN RT#132275 + +Signed-off-by: Petr Písař +--- + bin/viv | 1 + + lib/STD.pm | 1 + + lib/STD_P5.pm | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/bin/viv b/bin/viv +index d13fb67..8dd8717 100644 +--- a/bin/viv ++++ b/bin/viv +@@ -44,6 +44,7 @@ use YAML::XS; # An attempt to replace this with YAML::Syck passed the + # disjoint sets of descending numbers. Also, empty + # sequences shown as [] became followed by an empty line. + # See also: YAML::Syck in package VAST::package_def below. ++$YAML::XS::LoadBlessed = 1; + use Encode; + use Scalar::Util 'blessed', 'refaddr'; + use Storable; +diff --git a/lib/STD.pm b/lib/STD.pm +index 1ae16c2..00b503e 100644 +--- a/lib/STD.pm ++++ b/lib/STD.pm +@@ -27,6 +27,7 @@ my $retree; + $DB::deep = $DB::deep = 1000; # suppress used-once warning + + use YAML::XS; ++$YAML::XS::LoadBlessed = 1; + + $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " + " } if $::DEBUG; +diff --git a/lib/STD_P5.pm b/lib/STD_P5.pm +index 8828e5f..654bbfa 100644 +--- a/lib/STD_P5.pm ++++ b/lib/STD_P5.pm +@@ -43,6 +43,7 @@ my $retree; + $DB::deep = $DB::deep = 1000; # suppress used-once warning + + use YAML::XS; ++$YAML::XS::LoadBlessed = 1; + + $SIG{__WARN__} = sub { die @_," statement started at line ", 'STD::Cursor'->lineof($::LASTSTATE), " + " } if $::DEBUG; +-- +2.21.1 + diff --git a/STD-20101111-Remove-usr-bin-env-from-shebang.patch b/STD-20101111-Remove-usr-bin-env-from-shebang.patch new file mode 100644 index 0000000000000000000000000000000000000000..df65fdc5a32bb5ec524dd3480b015ca3082b7248 --- /dev/null +++ b/STD-20101111-Remove-usr-bin-env-from-shebang.patch @@ -0,0 +1,28 @@ +From f7a84c88e02b111e92e71d3c8d0797dd458430eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 7 Nov 2017 16:30:24 +0100 +Subject: [PATCH] Remove /usr/bin/env from shebang +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is forbidden by packaging guidelines now. + +Signed-off-by: Petr Písař +--- + bin/viv | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bin/viv b/bin/viv +index 5913424..d13fb67 100644 +--- a/bin/viv ++++ b/bin/viv +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!perl + + =head1 NAME + +-- +2.13.6 + diff --git a/STD-20101111.tar.gz b/STD-20101111.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..95b649cec004fbb684b1f1534c6d682706dcc624 Binary files /dev/null and b/STD-20101111.tar.gz differ diff --git a/perl-STD.spec b/perl-STD.spec new file mode 100644 index 0000000000000000000000000000000000000000..33634a99a5a1c86823784a2e1c95eaa1136d0940 --- /dev/null +++ b/perl-STD.spec @@ -0,0 +1,58 @@ +Name: perl-STD +Version: 20101111 +Release: 1 +Summary: The Standard Perl 6 Grammar +License: Artistic 2.0 +URL: https://metacpan.org/release/STD +Source0: https://cpan.metacpan.org/authors/id/S/SO/SOREAR/STD-%{version}.tar.gz +# Remove /usr/bin/env from shebang +Patch0: STD-20101111-Remove-usr-bin-env-from-shebang.patch +# Enable loading objects from YAML documents, bug #1799856, CPAN RT#132275 +Patch1: STD-20101111-Enable-loading-objects-from-YAML-documents.patch +BuildArch: noarch +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(:VERSION) >= 5.10 +BuildRequires: perl(base) +BuildRequires: perl(lib) +BuildRequires: perl(Module::Build) >= 0.37 +BuildRequires: perl(strict) +BuildRequires: perl(warnings) +# No tests run +Requires: perl(File::ShareDir) >= 1.02 +Provides: perl(STD) = %{version} + +# Remove under-specified dependencies +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(File::ShareDir\\)$ +# Remove private packages +%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(mangle.pl|STD_P5|STD_P6|RE_ast|STD::Cursor\\)$ + +%description +%{summary}. + +%prep +%setup -q -n STD-%{version} +%patch0 -p1 +%patch1 -p1 + +%build +perl Build.PL installdirs=core +./Build + +%install +./Build install destdir=$RPM_BUILD_ROOT create_packlist=0 +%{_fixperms} $RPM_BUILD_ROOT/* + +%check +./Build test + +%files +%doc LICENSE +%{perl_privlib}/* +%{_bindir}/* +%{_mandir}/man1/* + + +%changelog +* Tue Mar 19 2024 Zengliwen - 20101111-1 +- Package Init diff --git a/perl-STD.yaml b/perl-STD.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6c547d4247ddc75b8aaac87a7a6426c9d6cc37e2 --- /dev/null +++ b/perl-STD.yaml @@ -0,0 +1,4 @@ +version_control: metacpan +src_repo: STD +tag_prefix: "^" +separator: "."