##
##  perl-ds.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.
##

#   package versions
%define       V_perl                       5.22
%define       V_bit_vector                 7.4
%define       V_set_scalar                 1.26
%define       V_set_intspan                1.19
%define       V_set_array                  0.25
%define       V_set_object                 1.29
%define       V_io_string                  1.08
%define       V_io_stringy                 2.111
%define       V_tie_ixhash                 1.23
%define       V_tie_persistent             1.00
%define       V_sort_key                   1.33
%define       V_sort_key_radix             0.14
%define       V_sort_naturally             1.03
%define       V_sort_tree                  1.09
%define       V_sort_versions              1.5
%define       V_tree                       1.01
%define       V_tree_xpathengine           0.05
%define       V_tree_dag_node              1.06
%define       V_tree_dag_node_xpath        0.11
%define       V_tree_nary                  1.3
%define       V_tree_simple                1.18
%define       V_tree_simple_view           0.17
%define       V_tree_simple_visitorfactory 0.10
%define       V_tree_trie                  1.9
%define       V_tree_bptree                1.08
%define       V_array_window               1.02
%define       V_array_each                 0.03
%define       V_array_compare              4.0.0
%define       V_scalar_list_utils          1.41
%define       V_list_moreutils             0.430
%define       V_heap                       0.80
%define       V_graph                      0.97
%define       V_algorithm_permute          0.12
%define       V_hash_multivalue            0.15

#   package information
Name:         perl-ds
Summary:      Perl Modules for use with data structures
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:      20230924

#   list of sources
Source0:      http://www.cpan.org/authors/id/S/ST/STBEY/Bit-Vector-%{V_bit_vector}.tar.gz
Source1:      http://www.cpan.org/authors/id/J/JH/JHI/Set-Scalar-%{V_set_scalar}.tar.gz
Source2:      http://www.cpan.org/authors/id/S/SW/SWMCD/Set-IntSpan-%{V_set_intspan}.tar.gz
Source3:      http://www.cpan.org/modules/by-module/Set/Set-Array-%{V_set_array}.tar.gz
Source4:      http://www.cpan.org/authors/id/S/SA/SAMV/Set-Object-%{V_set_object}.tar.gz
Source5:      http://www.cpan.org/authors/id/G/GA/GAAS/IO-String-%{V_io_string}.tar.gz
Source6:      http://www.cpan.org/authors/id/D/DS/DSKOLL/IO-stringy-%{V_io_stringy}.tar.gz
Source7:      http://www.cpan.org/authors/id/C/CH/CHORNY/Tie-IxHash-%{V_tie_ixhash}.tar.gz
Source8:      http://www.cpan.org/authors/id/S/SA/SALVA/Sort-Key-%{V_sort_key}.tar.gz
Source9:      http://www.cpan.org/authors/id/S/SA/SALVA/Sort-Key-Radix-%{V_sort_key_radix}.tar.gz
Source10:     http://www.cpan.org/authors/id/B/BI/BINGOS/Sort-Naturally-%{V_sort_naturally}.tar.gz
Source11:     http://www.cpan.org/authors/id/B/BR/BRYCE/Sort-Tree-%{V_sort_tree}.tar.gz
Source12:     http://www.cpan.org/authors/id/E/ED/EDAVIS/Sort-Versions-%{V_sort_versions}.tar.gz
Source13:     http://www.cpan.org/authors/id/M/MI/MIROD/Tree-XPathEngine-%{V_tree_xpathengine}.tar.gz
Source14:     http://www.cpan.org/authors/id/C/CO/COGENT/Tree-DAG_Node-%{V_tree_dag_node}.tar.gz
Source15:     http://www.cpan.org/authors/id/M/MI/MIROD/Tree-DAG_Node-XPath-%{V_tree_dag_node_xpath}.tar.gz
Source16:     http://www.cpan.org/authors/id/F/FS/FSORIANO/Tree-Nary-%{V_tree_nary}.tar.gz
Source17:     http://www.cpan.org/authors/id/S/ST/STEVAN/Tree-Simple-%{V_tree_simple}.tar.gz
Source18:     http://www.cpan.org/authors/id/A/AV/AVIF/Tree-Trie-%{V_tree_trie}.tar.gz
Source19:     http://www.cpan.org/authors/id/H/HA/HANENKAMP/Tree-BPTree-%{V_tree_bptree}.tar.gz
Source20:     http://www.cpan.org/authors/id/A/AD/ADAMK/Array-Window-%{V_array_window}.tar.gz
Source21:     http://www.cpan.org/authors/id/B/BB/BBAXTER/Array-Each-%{V_array_each}.tar.gz
Source22:     http://www.cpan.org/authors/id/P/PE/PEVANS/Scalar-List-Utils-%{V_scalar_list_utils}.tar.gz
Source23:     http://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-%{V_list_moreutils}.tar.gz
Source24:     http://www.cpan.org/authors/id/J/JM/JMM/Heap-%{V_heap}.tar.gz
Source25:     http://www.cpan.org/authors/id/J/JH/JHI/Graph-%{V_graph}.tar.gz
Source26:     http://www.cpan.org/authors/id/S/ST/STEVAN/Tree-Simple-View-%{V_tree_simple_view}.tar.gz
Source27:     http://www.cpan.org/authors/id/S/ST/STEVAN/Tree-Simple-VisitorFactory-%{V_tree_simple_visitorfactory}.tar.gz
Source28:     http://www.cpan.org/authors/id/R/RK/RKINYON/Tree-%{V_tree}.tar.gz
Source29:     http://www.cpan.org/authors/id/R/RG/RGIERSIG/Tie-Persistent-%{V_tie_persistent}.tar.gz
Source30:     http://www.cpan.org/authors/id/D/DA/DAVECROSS/Array-Compare-%{V_array_compare}.tar.gz
Source31:     http://www.cpan.org/authors/id/E/ED/EDPRATOMO/Algorithm-Permute-%{V_algorithm_permute}.tar.gz
Source32:     http://www.cpan.org/authors/id/M/MI/MIYAGAWA/Hash-MultiValue-%{V_hash_multivalue}.tar.gz
Patch0:       perl-ds.patch

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

%description
    Perl modules for use with data structures:
    - Bit::Vector (%{V_bit_vector})
    - Set::Scalar (%{V_set_scalar})
    - Set::IntSpan (%{V_set_intspan})
    - Set::Array (%{V_set_array})
    - Set::Object (%{V_set_object})
    - IO::String (%{V_io_string})
    - IO::stringy (%{V_io_stringy})
    - Tie::IxHash (%{V_tie_ixhash})
    - Sort::Key (%{V_sort_key})
    - Sort::Key::Radix (%{V_sort_key_radix})
    - Sort::Naturally (%{V_sort_naturally})
    - Sort::Tree (%{V_sort_tree})
    - Sort::Versions (%{V_sort_versions})
    - Tree (%{V_tree})
    - Tree::XPathEngine (%{V_tree_xpathengine})
    - Tree::DAG_Node (%{V_tree_dag_node})
    - Tree::DAG_Node::XPath (%{V_tree_dag_node_xpath})
    - Tree::Nary (%{V_tree_nary})
    - Tree::Simple (%{V_tree_simple})
    - Tree::Simple::View (%{V_tree_simple_view})
    - Tree::Simple::VisitorFactory (%{V_tree_simple_visitorfactory})
    - Tree::Trie (%{V_tree_trie})
    - Tree::BPTree (%{V_tree_bptree})
    - Array::Window (%{V_array_window})
    - Array::Each (%{V_array_each})
    - Array::Compare (%{V_array_compare})
    - Scalar::Utils (%{V_scalar_list_utils})
    - List::Utils (%{V_scalar_list_utils})
    - List::MoreUtils (%{V_list_moreutils})
    - Heap::Heap (%{V_heap})
    - Graph::Graph (%{V_graph})
    - Tie::Persistent (%{V_tie_persistent})
    - Algorithm::Permute (%{V_algorithm_permute})
    - Hash::MultiValue (%{V_hash_multivalue})

%track
    prog perl-ds:Bit-Vector = {
        version   = %{V_bit_vector}
        url       = http://www.cpan.org/authors/id/S/ST/STBEY/
        regex     = Bit-Vector-(__VER__)\.tar\.gz
    }
    prog perl-ds:IO-String = {
        version   = %{V_io_string}
        url       = http://www.cpan.org/authors/id/G/GA/GAAS/
        regex     = IO-String-(__VER__)\.tar\.gz
    }
    prog perl-ds:IO-stringy = {
        version   = %{V_io_stringy}
        url       = http://www.cpan.org/authors/id/D/DS/DSKOLL/
        regex     = IO-stringy-(__VER__)\.tar\.gz
    }
    prog perl-ds:Set-Scalar = {
        version   = %{V_set_scalar}
        url       = http://www.cpan.org/authors/id/J/JH/JHI/
        regex     = Set-Scalar-(__VER__)\.tar\.gz
    }
    prog perl-ds:Set-IntSpan = {
        version   = %{V_set_intspan}
        url       = http://www.cpan.org/authors/id/S/SW/SWMCD/
        regex     = Set-IntSpan-(__VER__)\.tar\.gz
    }
    prog perl-ds:Set-Array = {
        version   = %{V_set_array}
        url       = http://www.cpan.org/modules/by-module/Set/
        regex     = Set-Array-(__VER__)\.tar\.gz
    }
    prog perl-ds:Set-Object = {
        version   = %{V_set_object}
        url       = http://www.cpan.org/authors/id/S/SA/SAMV/
        regex     = Set-Object-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tie-IxHash = {
        version   = %{V_tie_ixhash}
        url       = http://www.cpan.org/authors/id/C/CH/CHORNY/
        regex     = Tie-IxHash-(__VER__)\.tar\.gz
    }
    prog perl-ds:Sort-Key = {
        version   = %{V_sort_key}
        url       = http://www.cpan.org/authors/id/S/SA/SALVA/
        regex     = Sort-Key-(__VER__)\.tar\.gz
    }
    prog perl-ds:Sort-Key-Radix = {
        version   = %{V_sort_key_radix}
        url       = http://www.cpan.org/authors/id/S/SA/SALVA/
        regex     = Sort-Key-Radix-(__VER__)\.tar\.gz
    }
    prog perl-ds:Sort-Naturally = {
        version   = %{V_sort_naturally}
        url       = http://www.cpan.org/authors/id/B/BI/BINGOS/
        regex     = Sort-Naturally-(__VER__)\.tar\.gz
    }
    prog perl-ds:Sort-Tree = {
        version   = %{V_sort_tree}
        url       = http://www.cpan.org/authors/id/B/BR/BRYCE/
        regex     = Sort-Tree-(__VER__)\.tar\.gz
    }
    prog perl-ds:Sort-Versions = {
        version   = %{V_sort_versions}
        url       = http://www.cpan.org/authors/id/E/ED/EDAVIS/
        regex     = Sort-Versions-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree = {
        version   = %{V_tree}
        url       = http://www.cpan.org/modules/by-module/Tree/
        regex     = \bTree-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-XPathEngine = {
        version   = %{V_tree_xpathengine}
        url       = http://www.cpan.org/authors/id/M/MI/MIROD/
        regex     = Tree-XPathEngine-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-DAG_Node = {
        version   = %{V_tree_dag_node}
        url       = http://www.cpan.org/authors/id/C/CO/COGENT/
        regex     = Tree-DAG_Node-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-DAG_Node-XPath = {
        version   = %{V_tree_dag_node_xpath}
        url       = http://www.cpan.org/authors/id/M/MI/MIROD/
        regex     = Tree-DAG_Node-XPath-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-Nary = {
        version   = %{V_tree_nary}0
        url       = http://www.cpan.org/authors/id/F/FS/FSORIANO/
        regex     = Tree-Nary-(__VER__)\.tar\.gz
        transform = "s/^(\\d+\\.\\d)$/${1}0/; $_"
    }
    prog perl-ds:Tree-Simple = {
        version   = %{V_tree_simple}
        url       = http://www.cpan.org/authors/id/S/ST/STEVAN/
        regex     = Tree-Simple-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-Simple-View = {
        version   = %{V_tree_simple_view}
        url       = http://www.cpan.org/authors/id/S/ST/STEVAN/
        regex     = Tree-Simple-View-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-Simple-VisitorFactory = {
        version   = %{V_tree_simple_visitorfactory}
        url       = http://www.cpan.org/authors/id/S/ST/STEVAN/
        regex     = Tree-Simple-VisitorFactory-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-Trie = {
        version   = %{V_tree_trie}
        url       = http://www.cpan.org/authors/id/A/AV/AVIF/
        regex     = Tree-Trie-(__VER__)\.tar\.gz
    }
    prog perl-ds:Tree-BPTree = {
        version   = %{V_tree_bptree}
        url       = http://www.cpan.org/authors/id/H/HA/HANENKAMP/
        regex     = Tree-BPTree-(__VER__)\.tar\.gz
    }
    prog perl-ds:Array-Window = {
        version   = %{V_array_window}
        url       = http://www.cpan.org/authors/id/A/AD/ADAMK/
        regex     = Array-Window-(__VER__)\.tar\.gz
    }
    prog perl-ds:Array-Each = {
        version   = %{V_array_each}
        url       = http://www.cpan.org/authors/id/B/BB/BBAXTER/
        regex     = Array-Each-(__VER__)\.tar\.gz
    }
    prog perl-ds:Array-Compare = {
        version   = %{V_array_compare}
        url       = http://www.cpan.org/authors/id/D/DA/DAVECROSS/
        regex     = Array-Compare-(__VER__)\.tar\.gz
    }
    prog perl-ds:Scalar-List-Utils = {
        version   = %{V_scalar_list_utils}
        url       = http://www.cpan.org/authors/id/G/GB/GBARR/
        regex     = Scalar-List-Utils-(__VER__)\.tar\.gz
    }
    prog perl-ds:List-MoreUtils = {
        version   = %{V_list_moreutils}
        url       = http://www.cpan.org/authors/id/R/RE/REHSACK/
        regex     = List-MoreUtils-(__VER__)\.tar\.gz
    }
    prog perl-ds:Heap = {
        version   = %{V_heap}
        url       = http://www.cpan.org/authors/id/J/JM/JMM/
        regex     = Heap-(__VER__)\.tar\.gz
    }
    prog perl-ds:Graph = {
        version   = %{V_graph}
        url       = http://www.cpan.org/authors/id/J/JH/JHI/
        regex     = Graph-(\d+\.\d{2})\.tar\.gz
    }
    prog perl-ds:Tie-Persistent = {
        version   = %{V_tie_persistent}
        url       = http://www.cpan.org/authors/id/R/RG/RGIERSIG/
        regex     = Tie-Persistent-(\d+\.\d{2})\.tar\.gz
    }
    prog perl-ds:Algorithm-Permute = {
        version   = %{V_algorithm_permute}
        url       = http://www.cpan.org/authors/id/E/ED/EDPRATOMO/
        regex     = Algorithm-Permute-(\d+\.\d{2})\.tar\.gz
    }
    prog perl-ds:Hash-MultiValue = {
        version   = %{V_hash_multivalue}
        url       = http://www.cpan.org/authors/id/M/MI/MIYAGAWA/
        regex     = Hash-MultiValue-(__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
    %setup -q -T -D -a 30
    %setup -q -T -D -a 31
    %setup -q -T -D -a 32
    chmod a+w */Makefile.PL
    %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
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE13} 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 -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 -d %{SOURCE30} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE31} configure build install
    %{l_prefix}/bin/perl-openpkg -d %{SOURCE32} 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

