# Detect the distribution in use %global __despace head -n 1 | tr -d '[:space:]' | sed -e 's/[(].*[)]//g' %global __lower4 cut -c 1-4 | tr '[:upper:]' '[:lower:]' %global __distfile %([ -f /etc/SuSE-release ] && echo /etc/SuSE-release || echo /etc/redhat-release) %global __distinit %(sed -e 's/ release .*//' -e 's/\\([A-Za-z]\\)[^ ]*/\\1/g' %{__distfile} | %{__despace} | %{__lower4}) %global __distvers %(sed -e 's/.* release \\([^. ]*\\).*/\\1/' %{__distfile} | %{__despace}) # Identify Alma, CentOS, CentOS Stream and Rocky Linux as rhel %if "%{__distinit}" == "a" || "%{__distinit}" == "c" || "%{__distinit}" == "cl" || "%{__distinit}" == "cs" || "%{__distinit}" == "rl" %global __distinit rhel %endif # Dist tag for Fedora is still "fc" %if "%{__distinit}" == "f" %global __distinit fc %endif Name: perl-Parse-RecDescent Version: 1.967015 Release: 19.%{__distinit}%{__distvers} Summary: Generate Recursive-Descent Parsers License: (GPL-1.0-or-later OR Artistic-1.0-Perl) OR (GPL-2.0-or-later OR Artistic-1.0-Perl) URL: https://metacpan.org/release/Parse-RecDescent Source0: https://cpan.metacpan.org/modules/by-module/Parse/Parse-RecDescent-%{version}.tar.gz Patch0: Parse-RecDescent-1.967002-utf8.patch BuildArch: noarch # Module Build BuildRequires: coreutils BuildRequires: findutils BuildRequires: make BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: perl(ExtUtils::MakeMaker) >= 6.58 BuildRequires: perl(warnings) # Module Runtime BuildRequires: perl(Carp) BuildRequires: perl(Data::Dumper) BuildRequires: perl(strict) BuildRequires: perl(Text::Balanced) >= 1.95 BuildRequires: perl(vars) # Test Suite BuildRequires: perl(Test::More) # Optional Tests BuildRequires: perl(Test::Pod) >= 1.14 BuildRequires: perl(Test::Warn) # Dependencies %if 0%{?fedora} < 38 && 0%{?rhel} < 10 Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) %endif Requires: perl(Data::Dumper) %description Parse::RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications. It provides: * Regular expressions or literal strings as terminals (tokens) * Multiple (non-contiguous) productions for any rule * Repeated and optional subrules within productions * Full access to Perl within actions specified as part of the grammar * Simple automated error reporting during parser generation and parsing * The ability to commit to, uncommit to, or reject particular productions during a parse * The ability to pass data up and down the parse tree ("down" via subrule argument lists, "up" via subrule return values) * Incremental extension of the parsing grammar (even during a parse) * Precompilation of parser objects * User-definable reduce-reduce conflict resolution via "scoring" of matching productions %prep %setup -q -n Parse-RecDescent-%{version} # Recode as UTF8 %patch -P 0 -p1 # Fix permissions and script interpreters chmod -c a-x demo/* tutorial/* perl -pi -e 's|^#!\s?/usr/local/bin/perl\b|#!/usr/bin/perl|' demo/* %build perl Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %install make pure_install DESTDIR=%{buildroot} find %{buildroot} -type f -name .packlist -delete %{_fixperms} -c %{buildroot} %check make test %files # demo/demo_another_Cgrammar.pl: GPLv2+ or Artistic # everything else: GPL+ or Artistic %doc Changes README ToDo demo/ tutorial/ %{perl_vendorlib}/Parse/ %{_mandir}/man3/Parse::RecDescent.3* %changelog * Tue Jul 18 2023 Paul Howarth - 1.967015-19 - Use SPDX-format license tag - Avoid use of deprecated patch syntax - Drop support for building with ExtUtils::MakeMaker < 6.58 * Wed Jun 5 2019 Paul Howarth - 1.967015-8 - Perl 5.30 rebuild * Thu Apr 19 2018 Paul Howarth - 1.967015-4 - BR: perl-generators unconditionally - BR: perl-interpreter rather than perl - Drop support for EOL distributions prior to F-13 - Drop BuildRoot: and Group: tags - Drop explicit buildroot cleaning in %%install section - Drop explicit %%clean section * Wed Apr 5 2017 Paul Howarth - 1.967015-1 - Update to 1.967015 - Fix misuse of require to include MYMETA.pl; data is just included in both Makefile.PL and Build.PL now (CPAN RT#120922) * Sun Apr 2 2017 Paul Howarth - 1.967014-1 - Update to 1.967014 - Add a newline to package declaration lines in precompiled parsers, to keep CPAN from indexing them (CPAN RT#110404) - Provide repository and bugtracker entries in MYMETA.* (CPAN RT#110403) - Update tests to handle '.' no longer being part of @INC in perl-5.26.0 (CPAN RT#120415) - Update patch for building with old EUMM versions * Fri Sep 16 2016 Paul Howarth - 1.967013-3 - BR: perl-generators where available - Simplify find command using -delete * Mon Sep 28 2015 Paul Howarth - 1.967013-1 - Update to 1.967013 - Wrap Data::Dumper->Dump() to localize some $Data::Dumper::VARS to control the dumped output; in particular, Data::Dumper::Terse=1 was reported to break parser generation (CPAN RT#107355) * Mon Sep 14 2015 Paul Howarth - 1.967012-1 - Update to 1.967012 - Base the standalone precompiled parser's runtime name on the parser's class, rather than use the fixed "Parse::RecDescent::_Runtime"; this prevents "already defined" warnings when two standalone precompiled parsers are used - Add support for allowing precompiled parsers to share a common runtime via the Precompile({-runtime_class}) option and the PrecompiledRuntime() function - Warn on creation of Precompiled parsers that depend on Parse::RecDescent - NON-BACKWARDS COMPATIBLE CHANGE: Change the global directive to use eval similarly to the other directives, rather than being single-quoted in the resulting parser - Correct some typos in the documentation (CPAN RT#87185) - Sort hash keys and rulenames when generating code; this keeps the output text for a given input text the same, reducing differences in automated builds (CPAN RT#102160) - Precompiled parsers now document which $Parse::RecDescent::VERSION was used to generate them (CPAN RT#77001) - Classify buildreqs by usage * Wed Sep 10 2014 Paul Howarth - 1.967009-9 - Drop %%defattr, redundant since rpm 4.4 * Fri Nov 2 2012 Paul Howarth - 1.967009-4 - One demo file is licensed as (GPLv2+ or Artistic) * Mon Jul 9 2012 Paul Howarth - 1.967009-2 - BR: perl(Carp), perl(Data::Dumper) * Fri Mar 16 2012 Paul Howarth - 1.967009-1 - update to 1.967009 - revised ExtUtils::MakeMaker build/configure version requirements (CPAN RT#74787) - revised Text::Balanced prereq to require version 1.95, necessary for t/skip.t to pass (CPAN RT#74787) - removed unused version.pm prereq - fix/work around circular reference memory leaks (CPAN RT#53710) - Parse::RecDescent::AUTOLOAD did not correctly handle initializing the line counting mechanism when a reference to a scalar was passed to the parser (CPAN RT#27705) - restore old _parserepeat calling convention: change a parser's DESTROY method to check for $self->{_not_precompiled} instead of $self->{_precompiled} (CPAN RT#74593) - update workaround for building with old ExtUtils::MakeMaker versions - BR: at least version 1.95 of Text::Balanced - drop redundant buildreq perl(version) - don't need to remove empty directories from buildroot - drop support for distributions prior to FC-3: - don't need to define %%{perl_vendorlib} - use DESTDIR rather than PERL_INSTALL_ROOT * Sat Feb 11 2012 Paul Howarth - 1.967006-1 - update to 1.967006 - localize the OUT filehandle during Precompile - document the form of the directive - provide a simple test for the directive, t/autotree.t; renamed basics.t to ensure it runs before autotree.t - allow a global directive that functions the same as modifying $Parse::RecDescent::skip prior to compiling a grammar - require that the $file returned by caller() be eq '-', rather than merely starting with '-' - warn on empty productions followed by other productions: the empty production always matches, so following productions will never be reached - NON-BACKWARDS COMPATIBLE CHANGE: a repetition directive such as 'id(s /,/)' correctly creates a temporary @item variable to hold the 'id's that are matched. That @item variable is then used to set the real $item[] entry for that repetition. The same treatment is now given to %%item. Formerly, in a production like: id ',' id(s /,/) matched against: xxx, yyy, zzz The $item{id} entry that should be 'xxx' is overwritten by 'yyy' and then 'zzz' prior to the action being executed. Now 'yyy' and 'zzz' set $item{id}, but in the private %%item, which goes out of scope once the repetition match completes. - EXPERIMENTAL: when precompiling, optionally create a standalone parser by including most of the contents of Parse::RecDescent in the resulting Precompiled output - accept an optional $options hashref to Precompile, which can be used to specify $options->{-standalone}, which currently defaults to false - the subroutines import, Precompile and Save are not included in the Precompile'd parser - the included Parse::RecDescent module is renamed to Parse::RecDescent::_Runtime to avoid namespace conflicts with an installed and use'd Parse::RecDescent - add a new t/precompile.t to test precompilation - add a new $_FILENAME global to Parse::RecDescent to make it easy for the Precompile method to find the module - remove the prototype from _generate; it is not required, and it caused t/precompile.t (which ends up re-defining a lot of Parse::RecDescent subroutines) to fail needlessly, as the calls to _generate in Replace and Extend normally do not see the prototype, but do when re-defined - POD documentation for standalone parsers added - added ExtUtils::MakeMaker build/configure version requirements (CPAN RT#74787) - package ToDo - update multiple-author patch, and only apply it where necessary * Mon Jan 30 2012 Paul Howarth - 1.967003-1 - update to 1.967003 - NON-BACKWARDS COMPATIBLE CHANGE: change the caches for $prevline and $thisline to be local to the parser, rather than lexical vars in Parse::RecDescent; this prevents previously-generated parsers from interfering with the line counts of later parsers - patched unnamed subrules, so that they actual fail when not correctly specified - added skip tests - fixed restoration of skipped prefixes on match failure - removed formats to eliminate problems with filehandle duplication in forked environments - removed trailing whitespace from all member files (cosmetic) - new tests, updated MANIFEST - added Jeremy Braun as an author and current maintainer - update file permissions - addressed CPAN RT#28314: regex modifiers for tokens not honored during regex syntax check - various POD updates - added message on how to turn off "default" hint value in the default hint value ($::RD_HINT = 0) (CPAN RT#4898) - modified _write_ERROR to call formline twice to avoid repeated $errorprefix - collected match tracing messages into a common function that takes into account positive/negative lookahead - fixed RD_AUTOSTUB to work with precompiled parsers (CPAN RT#74258) - special-case $::RD_AUTOSTUB eq 1; $::RD_AUTOSTUB's value is ignored, and the unknown subrule 'rule' has a production "rule: 'rule'", rather than "rule: '1'" - change Parse::RecDescent::new to call $self->Replace with only the grammar as an argument, which prevents the $compiling argument to new() from being incorrectly interpreted as $isimplicit - recognize regex with single backslash properly (CPAN RT#29966); changed the definition of $TOKEN to handle backslashes inside of regex patterns - skip tests in t/reentry.t if Test::Warn isn't available - this release by JTBRAUN -> update source URL - use a patch rather than scripted iconv to fix character encoding - BR: perl(Test::Warn) - add patch to work around some versions of ExtUtils::MakeMaker not liking multiple AUTHORs * Wed Jun 29 2011 Paul Howarth - 1.965001-4 - rebuild for perl 5.14.1 in Rawhide - nobody else likes macros for commands - fix dist tag for CentOS 6 and Scientific Linux * Fri May 7 2010 Paul Howarth - 1.965001-2 - fix dist tag to work with RHEL6 Beta * Tue Apr 6 2010 Paul Howarth - 1.965001-1 - update to 1.965001 - removed all references to /opts version of perl interpreter - added Parse::RecDescent::redirect_reporting_to() * Wed Feb 17 2010 Paul Howarth - 1.964-1 - update to 1.964 - fixed bug with undefined $1 when parsing literals - fixed premature namespace destruction bug with compiled grammars - drop upstreamed patch for CPAN RT#54457 * Tue Feb 16 2010 Paul Howarth - 1.963-2 - add patch to fix uninitialized value warnings (CPAN RT#54457) * Tue Feb 9 2010 Paul Howarth 1.963-1 - update to 1.963 (fix subtle bug in leftop and rightop due to removal of $&) - recode Changes as UTF-8 - more script interpreter fixes * Sun Sep 27 2009 Chris Weyl - 1.962.2-1 - updated for latest GA SQL::Translator - add default filtering - auto-update to 1.962.2 (by cpan-spec-update 0.01) - added a new br on perl(Text::Balanced) (version 0) * Sun Jul 26 2009 Fedora Release Engineering - 1.96-3 - rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Thu Feb 26 2009 Fedora Release Engineering - 1.96-2 - rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Mon Feb 2 2009 Stepan Kasal - 1.96-1 - new upstream version * Wed Feb 27 2008 Tom "spot" Callaway - 1.95.1-5 - rebuild for perl 5.10 (again) * Sun Jan 20 2008 Tom "spot" Callaway - 1.95.1-4 - rebuild for new perl * Wed Nov 14 2007 Robin Norwood - 1.95.1-3 - apply fixes from package review (#226274): - remove BR: perl - use iconv to convert file to utf-8 - include BR: perl(Test::Pod) - fix old changelog entry * Tue Oct 16 2007 Tom "spot" Callaway - 1.95.1-2 - add BR: perl(version), perl(Test::More) * Tue Oct 16 2007 Tom "spot" Callaway - 1.95.1-1 - bump to 1.95.1 - correct license tag (now under perl license) - add BR: perl(ExtUtils::MakeMaker) * Fri Jul 20 2007 Robin Norwood - 1.94-6 - bring fixes from EPEL build into F8 - fix minor specfile issues - package the docs as well * Wed Jul 12 2006 Jesse Keating - 1.94-5.2.1 - rebuild * Fri Feb 03 2006 Jason Vas Dias - 1.94-5.2 - rebuild for new perl-5.8.8 * Fri Dec 16 2005 Jesse Keating - rebuilt for new gcc * Fri Dec 16 2005 Jesse Keating - rebuilt for new gcj * Thu Apr 21 2005 Jose Pedro Oliveira - 1.94-5 - #155620 - bring up to date with current Fedora Extras perl spec template * Wed Sep 22 2004 Chip Turner - 1.94-4 - rebuild * Tue Feb 17 2004 Chip Turner 1.94-2 - fix rm to not be interactive (bz115997) * Fri Feb 13 2004 Chip Turner - 1.94-1 - update to 1.94 * Tue Aug 6 2002 Chip Turner - automated release bump and build * Sat Jul 20 2002 Chip Turner - remove Text::Balanced modules since they are now in core perl * Thu Jun 27 2002 Chip Turner - description update * Fri Jun 07 2002 cturner@redhat.com - specfile autogenerated