Perl RPM Packages

Packaging Perl Modules for OpenSuse

The A2E Software Stack makes extensive use of Perl modules, which must be available for the RPM packages that specify their use. We need a to transform a major part of the contents CPAN into TAR and RPM packages whose contents are installed by shallow copying operations. Here we collect our packages and packaging experiences.

1 Situation

We have so far encountered the following types of Perl packages

  1. those made with ExtUtils::MakeMaker(3)
    1. perl-Crypt-OpenPGP uses ExtUtils::MakeMaker together with an addon ExtUtils::AutoInstall whose intrusions on the responsibilities of the repackager can fortunately can be switched off with –skipdeps on the Makefile.PL commandline
    2. The perl-Math-Pari package needs an external C source package incorporated into the source before it can start its build process, which involves GCC compiling.
  2. those make with Module::Build, e.g. perl-HTML-Mason, perl-DateTime-Format-Mail

The first type is in wide use in the opensuse community, but experience with the needs to be gathered by trial and error.

For Module::Build type we figured out ourselves how to do it, but our solution is not yet perfect. In particular, our current BUILD procedure is not producing the kind of .packlist file that the other procedure produces and that the rpm macro perl_process_packlist, found in /usr/lib/rpm/suse_macros, is using as follows:

%perl_process_packlist(n:) \
  mkdir -p $RPM_BUILD_ROOT/var/adm/perl-modules \
  test -f 
  $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod && 
  { sed -e "s@$RPM_BUILD_ROOT@@g" 
  < $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod > 
  $RPM_BUILD_ROOT/var/adm/perl-modules/%{-n:%{-n*}}%{!-n:%{name}} 
  ; } ; \
  test -n "$RPM_BUILD_ROOT" -a -d 
  $RPM_BUILD_ROOT/%perl_sitearch/auto && find 
  $RPM_BUILD_ROOT/%perl_sitearch/auto -name 
  .packlist -print0 | xargs -0 -r perl -spi -e 
  "s@$RPM_BUILD_ROOT@@g" ; \
  test -n "$RPM_BUILD_ROOT" -a -d 
  $RPM_BUILD_ROOT/%perl_vendorarch/auto && find 
  $RPM_BUILD_ROOT/%perl_vendorarch/auto -name 
  .packlist -print0 | xargs -0 -r perl -spi -e 
  "s@$RPM_BUILD_ROOT@@g" ; \
  rm -f 
  $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod \
  %nil

The Module::Build(3) documentation says nothing about .packlist files, I wonder how the traditional method produces them. We’ll have to dig deeper some time soon.

2 Tasks

3 Timeline

4 Chronology

  • 2009-04-18 mkplpak HTML::Summary 0.017 tgrose “Tony G. Rose” “generate a summary from a web page”
  • 2009-04-18 mkplpak WWW::Robot 0.025 kventin “Константин Матюхин” “configurable web traversal engine”
  • 2009-04-18 mkplpak WWW::Sitemap 1.019 awrigley “Ave Wrigley” “Generating a sitemap for a given site URL”
  • 2009-04-18 mkplpak Search::Sitemap 2.07 jasonk “Jason KOHLES” “Managing Search Engine Sitemaps”
  • 2009-04-10 mkplpak Unicode::EastAsianWidth 1.30 audreyt “唐鳳” “East-Asian Width properties”
  • 2008-11-04 mkplpak Term::ReadLine::Gnu 1.17 hayashi “HAYASHI Hiroo” “Perl extension for the GNU Readline/History Library”
  • 2008-11-04 mkplpak BSD::Resource 1.2901 jhi “Jarkko Hietaniemi” “BSD process resource limit and priority functions”
  • 2008-10-26 mkplpak Net::Ping 2.35 smpeters “Steve Peters” “check a remote host for reachability”
  • 2008-10-26 mkplpak IO 1.2301 gbarr “Graham Barr” “load various IO modules”
  • 2008-10-26 mkplpak Data::Dumper 2.121 ilyam “Ilya Martynov” “stringified perl data structures, suitable for both printing and eval”
  • 2008-10-22 mkplpak Template::Multilingual 0.09 cholet “Erich Cholet” “template toolkit add-on for multilinguality”
  • 2008-10-20 mkplpak Unix::ConfigFile 0.06 ssnodgra “Steve Snodgrass” “Perl routines for editing various Unix system configuration files”
  • 2008-06-20 mkplpak DateTime::Format::W3CDTF 0.04 kellan “Kellan Elliot Mccrea” “Parse and format W3CDTF datetime strings”
  • 2008-06-20 mkplpak DateTime::TimeZone 0.7701 drolsky “Dave Rolsky” “Time zone object base class and factory”
  • 2008-06-20 mkplpak List::MoreUtils 0.22 vparseval “Tassilo von Parseval” “Provide what is missing in List::Util”
  • 2008-06-19 mkplpak DateTime::Locale 0.4001 drolsky “Dave Rolsky” “Localisation support for a date and time object”
  • 2008-06-10 mkplpak DateTime 0.4302 drolsky “Dave Rolsky” “A date and time object”
  • 2008-05-30 mkplpak Error 0.17012 shlomif “Shlomi Fish” “Error/exception handling in an OO-ish way”
  • 2008-05-23 mkplpak Class::Inner 0.1 pdcawley “Piers Cawley” “A perlish implementation of Java-like inner classes”
  • 2008-05-22 mkplpak Email::Filter 1.031 rjbs “Ricardo SIGNES” “Library for creating easy mail filters”
  • 2008-05-22 mkplpak Class::ErrorHandler 0.01 btrott “Benjamin Trott” “Base class for error handling”
  • 2008-05-22 mkplpak Convert::ASN1 0.21 gbarr “Graham Barr” “Encoding and Decoding of ASN1 Text”
  • 2008-05-22 mkplpak Convert::PEM 0.07 btrott “Benjamin Trott” “Read/write encrypted ASN.1 PEM files”
  • 2008-05-22 mkplpak Crypt::DES 2.05 dparis “Dave Paris” “Perl DES encryption module”
  • 2008-05-22 mkplpak Crypt::DES_EDE3 0.01 btrott “Benjamin Trott” “Triple-DES EDE encryption/decryption”
  • 2008-05-22 mkplpak Crypt::CAST5_PP 1.04 bmath “Bob Matthews” “CAST5 block cipher in Pure Perl”
  • 2008-05-22 mkplpak Crypt::CAST5 0.05 bmath “Bob Matthews” “CAST5 block cipher”
  • 2008-05-22 mkplpak Convert::ASCII-Armour 1.4 vipul “Vipul Ved Prakash” “Convert binary octets into ascii-armoured messages”
  • 2008-05-22 mkplpak Crypt::RIPEMD160 0.04 chgeuer “Christian H. Geuer-Pollmann” “Perl extension for the RIPEMD-160 Hash function”
  • 2008-05-22 mkplpak Tie::EncryptedHash 1.21 vipul “Vipul Ved Prakash” “Hashes (and objects based on hashes) with encrypting fields.”
  • 2008-05-22 mkplpak Crypt::Random 1.25 vipul “Vipul Ved Prakash” “Cryptographically Secure, True Random Number Generator”
  • 2008-05-22 mkplpak Crypt::Primes 0.50 vipul “Vipul Ved Prakash” “Provable Prime Number Generator suitable for Cryptographic Applications.”
  • 2008-05-22 mkplpak Class::Loader 2.03 vipul “Vipul Ved Prakash” “Load modules and create objects on demand”
  • 2008-05-22 mkplpak Crypt::Rijndael 1.06 bdfoy “brian d foy” “Rijndael encryption in Cipher Block Chaining mode”
  • 2008-05-22 mkplpak Crypt::CBC 2.19 ld “Lincoln D. Stein” “Encrypt Data with Cipher Block Chaining Mode”
  • 2008-05-22 mkplpak Crypt::Twofish 2.12 ams “Abhijit Menon-Sen” “Perl Blowfish encryption module”
  • 2008-05-22 mkplpak Crypt::Blowfish 2.10 dparis “Dave Paris” “Perl Blowfish encryption module”
  • 2008-05-22 mkplpak Module::Install 0.73 adamk “Adam Kennedy” “Standalone, extensible Perl module installer”
  • 2008-05-22 mkplpak Crypt::IDEA 1.08 dparis “Dave Paris” “Perl interface to IDEA block cipher”
  • 2008-05-22 mkplpak Crypt::DSA 0.14 btrott “Benjamin Trott” “DSA signatures and key generation”
  • 2008-05-22 mkplpak Crypt::RSA 0.58 vipul “Vipul Ved Prakash” “RSA public-key cryptosystem”
  • 2008-05-22 mkplpak Data::Buffer 0.04 btrott “Benjamin Trott” “Read/write buffer class”
  • 2008-05-22 mkplpak ExtUtils::AutoInstall 0.63 autrijus “Audrey Tang 唐鳳” “Automatic Install of Dependencies via CPAN”
  • 2008-05-22 mkplpak Math::Pari 2.010800 ilyaz “Ilya Zakharevich” “Perl Interface to PARI”
  • 2008-05-21 mkplpak MIME::Types 1.23 markov “Mark Overmeer” “Definition of MIME Types”
  • 2008-05-21 mkplpak Email::Abstract 2.134 rjbs “Ricardo SIGNES” “unified interface to mail representations”
  • 2008-05-21 mkplpak Mail::Box $V $A $AA “general message object”
  • 2008-05-21 mkplpak Return::Value $V $A $AA “Polymorphic Return Values”
  • 2008-05-21 mkplpak Email::Simple “simple parsing of RFC2822 message format and headers, similar to Email-Send”
  • 2008-05-21 mkplpak Test::Class $V $A $AA “An fairly new object-oriented Testing Framework that integrates most testing approaches”
  • 2008-05-21 mkplpak Test::Unit $V $A $AA “One of the most sophisticated Unit Testing Framework available on CPAN”
  • 2008-05-20 mkplpak DateTime::Format::Mail
  • 2008-05-17 mkplpak HTML::Mason
  • dat: 2008-05-18; prs: phm: apache created this directory

5 Resources

  • SuSE 11.0 Perl Repository
  • mktdir4 perl-Template-DBI perl_template_dbi_pub en . “Perl Template::DBI” “Packaging for OpenSuse” “This package is required by perl-A2E”
  • mktdir4 perl-IO-Tty perl_io_tty_pub en . “Perl IO::Tty & IO::Pty” “Packaging for OpenSuse” “This package is required by perl-A2E”
  • mktdir4 perl-IO-Stty perl_io_stty_pub en . “Perl IO::Stty” “Packaging for OpenSuse” “This package is required by perl-A2E”
  • mktdir4 perl-Spreadsheet-ParseExcel perl_parse_excel_pub en . “Perl Spreadsheet::ParseExcel” “Packaging for OpenSuse” “This package is required by perl-A2E”
  • mktdir4 perl-OLE-Storage perl_ole_storage_pub en . “Perl OLE::Storage” “Packaging for OpenSuse” “This package is required by perl-Spreadsheet::ParseExcel”
  • mktdir4 perl-OLE-Storage_Lite perl_ole_storage_lite_pub en . “Perl OLE::Storage_Lite” “Packaging for OpenSuse” “This package is required by perl-Spreadsheet::ParseExcel”
  • mktdir4 perl-XML-RSS perl_xml_rss_pub en . “Perl XML::RSS” “Packaging for OpenSuse” “This package is required by perl-A2E. It is needed for creating RSS feed files from the makefile-driven hypertext generation system.”
  • mktdir4 perl-Params-Validate perl_params_validate_pub en . “Perl Params::Validate” “Packaging for OpenSuse” “This package is required by perl-A2E and by Mason. It provides a convenient notation for validating the parameters passed to functions.”
  • mktdir4 perl-Exception-Class perl_exception_class_pub en . “Perl Exception::Class” “Packaging for OpenSuse” “This package is required by perl-A2E and by Mason. It provides a way to create Java-like Exception classes, i.e. classify error situations and handle in a rule-based way.”
  • mktdir4 perl-Class-Container perl_class_container_pub en . “Perl Class::Container” “Packaging for OpenSuse” “This package is required by perl-A2E and by Mason. It provides a way to overcome the rigidity of a class hierarchy and tie parts of different classes together”
  • mktdir4 perl-Class-Data-Inheritable perl_class_data_inheritable_pub en . “Perl Class::Data::Inheritable” “Packaging for OpenSuse” “This package is required by perl-Exception-Class. Class::Data::Inheritable is for creating accessor/mutators to class data. That is, if you want to store something about your class as a whole (instead of about a single object). This data is then inherited by your subclasses and can be overriden.”
  • mktdir4 perl-Scalar-Util perl_scalar_util_pub en . “Perl Scalar::Util” “Packaging for OpenSuse” “This package is required by perl-Exception-Class and Mason. It provides a selection of general utility scalar subroutines.”
  • mktdir4 perl-Devel-StackTrace perl_devel_stacktrace_pub en . “Perl Devel::StackTrace” “Packaging for OpenSuse” “This package is required by perl-Exception-Class and Mason. Interface to caller information, presentable in a way similar to what is done by Carp, useful for debugging.”
  • mktdir4 perl-Devel-StackTrace perl_devel_stacktrace_pub en . “Perl Devel::StackTrace” “Packaging for OpenSuse” “This package is required by perl-Exception-Class and Mason. Interface to caller information, presentable in a way similar to what is done by Carp, useful for debugging.”
  • mktdir4 perl-Test-Simple perl_test_simple_pub en . “Perl Test::Simple” “Packaging for OpenSuse” “A tool for building test suites, required for (building) perl-Exception-Class”
  • mktdir4 perl-HTML-Mason perl_html_mason_pub en . “Perl HTML::Mason” “Packaging for OpenSuse” “high-performance dynamic web site authoring system”
  • mktdir4 perl-HTML-Parser perl_html_parser_pub en . “Perl HTML::Parser” “Packaging for OpenSuse” “contains HTML::Entities as well”
  • mktdir4 perl-Cache-Cache perl_cache_cache_pub en . “Perl Cache::Cache” “Packaging for OpenSuse” “generic Cache interface: share program data across sessions rather than generate them each time”
  • mktdir4 perl-DateTime-Format-Mail perl_datetime_format_mail_pub en . “Perl DateTime::Format::Mail” “Packaging for OpenSuse” “Convert between DateTime and RFC2822/822 formats, needed by rss2html”
  • mktdir4 perl-Crypt-OpenPGP perl_crypt_openpgp_pub en . “Perl Crypt::OpenPGP” “Packaging for OpenSuse” “This package is required by perl-A2E”
  • mktdir4 perl-Psh perl_psh_pub en . “Perl Psh” “Packaging for OpenSuse” “This package is required by perl-A2E”
[ ADP | Packages | omegat | ratpoison | antiword | scsh | mailcrypt | conkeror | rubygem-deplate | gcom | hanzi | pari | perl| dtaus| rdate| sukli| WordNet ]
Valid XHTML 1.0! Valid CSS! deplate
http://a2e.de/adv/pak/perl
© 2008-05-18 Hartmut PILCH