##
##  perl-parse.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   versions of individual parts
%define       V_perl                      5.22
%define       V_config_inifiles           3.000003
%define       V_config_general            2.67
%define       V_config_simple             4.59
%define       V_config_context            0.10
%define       V_config_scoped             0.22
%define       V_string_tokenizer          0.06
%define       V_parse_recdescent          1.962.2
%define       V_parse_recdescent_faq      7.5
%define       V_parse_recdescent_deparse  1.00
%define       V_parse_recdescent_consumer 1.03
%define       V_parse_recdescent_topiary  0.05
%define       V_parse_yapp                1.05
%define       V_parse_eyapp               1.182
%define       V_parse_earley              0.15
%define       V_parse_lex                 2.21
%define       V_parse_flex                0.12
%define       V_c_scan                    0.74
%define       V_appconfig                 1.66
%define       V_appconfig_std             1.10
%define       V_ogdl                      20041124
%define       V_text_csv_pp               1.06
%define       V_text_csv_xs               1.59
%define       V_text_csv_simple           1.00
%define       V_getopt_long               2.58
%define       V_getopt_long_descriptive   0.116
%define       V_getopt_attribute          2.101700
%define       V_getopt_argvfile           1.11
%define       V_getopt_fancy              0.06
%define       V_getopt_ll                 1.0.0
%define       V_getopt_flex               1.07

#   package information
Name:         perl-parse
Summary:      Perl Modules for use with parsing algorythms
URL:          http://www.cpan.org/
Vendor:       Perl Community
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        BASE
Group:        Perl
License:      GPL/Artistic
Version:      %{V_perl}
Release:      20250110

#   list of sources
Source0:      http://www.cpan.org/authors/id/S/SH/SHLOMIF/Config-IniFiles-%{V_config_inifiles}.tar.gz
Source1:      http://www.cpan.org/authors/id/T/TL/TLINDEN/Config-General-%{V_config_general}.tar.gz
Source2:      http://www.cpan.org/authors/id/S/SH/SHERZODR/Config-Simple-%{V_config_simple}.tar.gz
Source3:      http://www.cpan.org/authors/id/D/DC/DCONWAY/Parse-RecDescent-%{V_parse_recdescent}.tar.gz
Source4:      http://www.cpan.org/authors/id/T/TB/TBONE/Parse-RecDescent-FAQ-%{V_parse_recdescent_faq}.tar.gz
Source5:      http://www.cpan.org/authors/id/S/SI/SIMON/Parse-RecDescent-Deparse-%{V_parse_recdescent_deparse}.tar.gz
Source6:      http://www.cpan.org/authors/id/T/TB/TBONE/Parse-RecDescent-Consumer-%{V_parse_recdescent_consumer}.tar.gz
Source7:      http://www.cpan.org/authors/id/F/FD/FDESAR/Parse-Yapp-%{V_parse_yapp}.tar.gz
Source8:      http://www.cpan.org/authors/id/L/LP/LPALMER/Parse-Earley-%{V_parse_earley}.tar.gz
Source9:      http://www.cpan.org/authors/id/P/PS/PSCUST/ParseLex-%{V_parse_lex}.tar.gz
Source10:     http://www.cpan.org/authors/id/H/HV/HVDS/C-Scan-%{V_c_scan}.tar.gz
Source11:     http://www.cpan.org/authors/id/A/AB/ABW/AppConfig-%{V_appconfig}.tar.gz
Source12:     http://www.cpan.org/authors/id/N/NE/NEILB/AppConfig-Std-%{V_appconfig_std}.tar.gz
Source13:     http://download.sourceforge.net/ogdl/ogdlutils-%{V_ogdl}.tgz
Source14:     http://www.cpan.org/authors/id/S/ST/STEVAN/String-Tokenizer-%{V_string_tokenizer}.tar.gz
Source15:     http://www.cpan.org/authors/id/M/MG/MGRAHAM/Config-Context-%{V_config_context}.tar.gz
Source16:     http://www.cpan.org/authors/id/G/GA/GAISSMAI/Config-Scoped-%{V_config_scoped}.tar.gz
Source17:     http://www.cpan.org/modules/by-module/Text/Text-CSV_PP-%{V_text_csv_pp}.tar.gz
Source18:     http://www.cpan.org/modules/by-module/Text/Text-CSV_XS-%{V_text_csv_xs}.tgz
Source19:     http://www.cpan.org/authors/id/T/TM/TMTM/Text-CSV-Simple-%{V_text_csv_simple}.tar.gz
Source20:     http://www.cpan.org/authors/id/J/JV/JV/Getopt-Long-%{V_getopt_long}.tar.gz
Source21:     http://www.cpan.org/authors/id/M/MA/MARCEL/Getopt-Attribute-%{V_getopt_attribute}.tar.gz
Source22:     http://www.cpan.org/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-%{V_getopt_argvfile}.tar.gz
Source23:     http://www.cpan.org/authors/id/B/BA/BATMAN/Getopt-Fancy-%{V_getopt_fancy}.tar.gz
Source24:     http://www.cpan.org/authors/id/A/AS/ASKSH/Getopt-LL-%{V_getopt_ll}.tar.gz
Source25:     http://www.cpan.org/authors/id/I/IV/IVORW/Parse-RecDescent-Topiary-%{V_parse_recdescent_topiary}.tar.gz
Source26:     http://www.cpan.org/authors/id/I/IO/IOANNIS/Parse-Flex-%{V_parse_flex}.tar.gz
Source27:     http://www.cpan.org/authors/id/C/CA/CASIANO/Parse-Eyapp-%{V_parse_eyapp}.tar.gz
Source28:     http://www.cpan.org/authors/id/R/RP/RPKELLY/Getopt-Flex-%{V_getopt_flex}.tar.gz
Source29:     http://www.cpan.org/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-%{V_getopt_long_descriptive}.tar.gz
Patch0:       perl-parse.patch

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, perl >= %{V_perl}, perl-openpkg >= %{V_perl}-20051031
PreReq:       OpenPKG, openpkg >= 20160101, perl >= %{V_perl}
BuildPreReq:  perl-util, perl-module, flex
PreReq:       perl-util, perl-module, flex

%description
    Perl modules for use with parsing algorythms:
    - Config::IniFiles (%{V_config_inifiles})
    - Config::General (%{V_config_general})
    - Config::Simple (%{V_config_simple})
    - Config::Context (%{V_config_context})
    - Config::Scoped (%{V_config_scoped})
    - String::Tokenizer (%{V_string_tokenizer})
    - Parse::RecDescent (%{V_parse_recdescent})
    - Parse::RecDescent::FAQ (%{V_parse_recdescent_faq})
    - Parse::RecDescent::Deparse (%{V_parse_recdescent_deparse})
    - Parse::RecDescent::Consumer (%{V_parse_recdescent_consumer})
    - Parse::RecDescent::Topiary (%{V_parse_recdescent_topiary})
    - Parse::Yapp (%{V_parse_yapp})
    - Parse::Eyapp (%{V_parse_eyapp})
    - Parse::Earley (%{V_parse_earley})
    - Parse::Lex (%{V_parse_lex})
    - Parse::Flex (%{V_parse_flex})
    - C::Scan (%{V_c_scan})
    - AppConfig (%{V_appconfig})
    - AppConfig::Std (%{V_appconfig_std})
    - OGDL (%{V_ogdl})
    - Text::CSV_PP (%{V_text_csv_pp})
    - Text::CSV_XS (%{V_text_csv_xs})
    - Text::CSV::Simple (%{V_text_csv_simple})
    - Getopt::Long (%{V_getopt_long})
    - Getopt::Long::Descriptive (%{V_getopt_long_descriptive})
    - Getopt::Attribute (%{V_getopt_attribute})
    - Getopt::ArgvFile (%{V_getopt_argvfile})
    - Getopt::Fancy (%{V_getopt_fancy})
    - Getopt::LL (%{V_getopt_ll})
    - Getopt::Flex (%{V_getopt_flex})

%track
    prog perl-parse:Config-General = {
        version   = %{V_config_general}
        url       = http://www.cpan.org/authors/id/T/TL/TLINDEN/
        regex     = Config-General-(__VER__)\.tar\.gz
    }
    prog perl-parse:Config-IniFiles = {
        version   = %{V_config_inifiles}
        url       = http://www.cpan.org/authors/id/S/SH/SHLOMIF/
        regex     = Config-IniFiles-(__VER__)\.tar\.gz
    }
    prog perl-parse:Config-Simple = {
        version   = %{V_config_simple}
        url       = http://www.cpan.org/authors/id/S/SH/SHERZODR/
        regex     = Config-Simple-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-RecDescent = {
        version   = %{V_parse_recdescent}
        url       = http://www.cpan.org/authors/id/D/DC/DCONWAY/
        regex     = Parse-RecDescent-v(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-RecDescent-Consumer = {
        version   = %{V_parse_recdescent_consumer}
        url       = http://www.cpan.org/authors/id/T/TB/TBONE/
        regex     = Parse-RecDescent-Consumer-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-RecDescent-Deparse = {
        version   = %{V_parse_recdescent_deparse}
        url       = http://www.cpan.org/authors/id/S/SI/SIMON/
        regex     = Parse-RecDescent-Deparse-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-RecDescent-FAQ = {
        version   = %{V_parse_recdescent_faq}
        url       = http://www.cpan.org/authors/id/T/TB/TBONE/
        regex     = Parse-RecDescent-FAQ-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-RecDescent-Topiary = {
        version   = %{V_parse_recdescent_topiary}
        url       = http://www.cpan.org/authors/id/I/IV/IVORW/
        regex     = Parse-RecDescent-Topiary-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-Yapp = {
        version   = %{V_parse_yapp}
        url       = http://www.cpan.org/authors/id/F/FD/FDESAR/
        regex     = Parse-Yapp-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-Eyapp = {
        version   = %{V_parse_eyapp}
        url       = http://www.cpan.org/authors/id/C/CA/CASIANO/
        regex     = Parse-Eyapp-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-Earley = {
        version   = %{V_parse_earley}
        url       = http://www.cpan.org/authors/id/L/LP/LPALMER/
        regex     = Parse-Earley-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-Lex = {
        version   = %{V_parse_lex}
        url       = http://www.cpan.org/authors/id/P/PS/PSCUST/
        regex     = ParseLex-(__VER__)\.tar\.gz
    }
    prog perl-parse:Parse-Flex = {
        version   = %{V_parse_flex}
        url       = http://www.cpan.org/authors/id/I/IO/IOANNIS/
        regex     = Parse-Flex-(__VER__)\.tar\.gz
    }
    prog perl-parse:C-Scan = {
        version   = %{V_c_scan}
        url       = http://www.cpan.org/authors/id/H/HV/HVDS/
        regex     = C-Scan-(__VER__)\.tar\.gz
    }
    prog perl-parse:AppConfig = {
        version   = %{V_appconfig}
        url       = http://www.cpan.org/authors/id/A/AB/ABW/
        regex     = AppConfig-(__VER__)\.tar\.gz
    }
    prog perl-parse:AppConfig-Std = {
        version   = %{V_appconfig_std}
        url       = http://www.cpan.org/authors/id/N/NE/NEILB/
        regex     = AppConfig-Std-(__VER__)\.tar\.gz
    }
    prog perl-parse:OGDL = {
        version   = %{V_ogdl}
        url       = http://sourceforge.net/projects/ogdl/files/
        regex     = ogdlutils-(__VER__)\.tgz
    }
    prog perl-parse:String-Tokenizer = {
        version   = %{V_string_tokenizer}
        url       = http://www.cpan.org/authors/id/S/ST/STEVAN/
        regex     = String-Tokenizer-(__VER__)\.tar\.gz
    }
    prog perl-parse:Config-Context = {
        version   = %{V_config_context}
        url       = http://www.cpan.org/authors/id/M/MG/MGRAHAM/
        regex     = Config-Context-(__VER__)\.tar\.gz
    }
    prog perl-parse:Config-Scoped = {
        version   = %{V_config_scoped}
        url       = http://www.cpan.org/authors/id/G/GA/GAISSMAI/
        regex     = Config-Scoped-(__VER__)\.tar\.gz
    }
    prog perl-parse:Text-CSV_PP = {
        version   = %{V_text_csv_pp}
        url       = http://www.cpan.org/modules/by-module/Text/
        regex     = Text-CSV_PP-(__VER__)\.tar\.gz
    }
    prog perl-parse:Text-CSV_XS = {
        version   = %{V_text_csv_xs}
        url       = http://www.cpan.org/modules/by-module/Text/
        regex     = Text-CSV_XS-(__VER__)\.t(ar\.)?gz
    }
    prog perl-parse:Text-CSV-Simple = {
        version   = %{V_text_csv_simple}
        url       = http://www.cpan.org/authors/id/T/TM/TMTM/
        regex     = Text-CSV-Simple-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-Long = {
        version   = %{V_getopt_long}
        url       = http://www.cpan.org/authors/id/J/JV/JV/
        regex     = Getopt-Long-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-Long-Descriptive = {
        version   = %{V_getopt_long_descriptive}
        url       = http://www.cpan.org/authors/id/R/RJ/RJBS/
        regex     = Getopt-Long-Descriptive-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-Attribute = {
        version   = %{V_getopt_attribute}
        url       = http://www.cpan.org/authors/id/M/MA/MARCEL/
        regex     = Getopt-Attribute-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-ArgvFile = {
        version   = %{V_getopt_argvfile}
        url       = http://www.cpan.org/authors/id/J/JS/JSTENZEL/
        regex     = Getopt-ArgvFile-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-Fancy = {
        version   = %{V_getopt_fancy}
        url       = http://www.cpan.org/authors/id/B/BA/BATMAN/
        regex     = Getopt-Fancy-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-LL = {
        version   = %{V_getopt_ll}
        url       = http://www.cpan.org/authors/id/A/AS/ASKSH/
        regex     = Getopt-LL-(__VER__)\.tar\.gz
    }
    prog perl-parse:Getopt-Flex = {
        version   = %{V_getopt_flex}
        url       = http://www.cpan.org/authors/id/R/RP/RPKELLY/
        regex     = Getopt-Flex-(__VER__)\.tar\.gz
    }

%prep
    %setup -q -c
    %setup -q -T -D -a 1
    %setup -q -T -D -a 2
    %setup -q -T -D -a 3
    %setup -q -T -D -a 4
    %setup -q -T -D -a 5
    %setup -q -T -D -a 6
    %setup -q -T -D -a 7
    %setup -q -T -D -a 8
    %setup -q -T -D -a 9
    %setup -q -T -D -a 10
    %setup -q -T -D -a 11
    %setup -q -T -D -a 12
    %setup -q -T -D -a 13
    %setup -q -T -D -a 14
    %setup -q -T -D -a 15
    %setup -q -T -D -a 16
    %setup -q -T -D -a 17
    %setup -q -T -D -a 18
    %setup -q -T -D -a 19
    %setup -q -T -D -a 20
    %setup -q -T -D -a 21
    %setup -q -T -D -a 22
    %setup -q -T -D -a 23
    %setup -q -T -D -a 24
    %setup -q -T -D -a 25
    %setup -q -T -D -a 26
    %setup -q -T -D -a 27
    %setup -q -T -D -a 28
    %setup -q -T -D -a 29
    %patch -p0

%build

%install
    %{l_prefix}/bin/perl-openpkg prepare
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE0}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE1}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE2}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE3}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE4}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE5}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE6}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE7}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE8}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE9}  configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE10} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE11} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE12} configure build install
    ( cd ogdlutils-%{V_ogdl}/c
      %{l_cc} %{l_cflags} -c ogdlparser.c graph.c path.c ogdllog.c
      ar cr libogdl.a ogdlparser.o graph.o path.o ogdllog.o
    ) || exit $?
    %{l_prefix}/bin/perl-openpkg -d ogdlutils-%{V_ogdl}/perl configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE14} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE15} configure build install
    %{l_prefix}/bin/perl-openpkg -A TAR=%{l_tar} -d %{SOURCE16} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE17} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE18} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE19} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE20} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE21} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE22} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE23} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE24} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE25} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE26} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE27} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE28} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE29} configure build install
    %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} `cat perl-openpkg-files`

%files -f files

%clean

