Perl Dublin Release

Goals

  • 64 bit (#4484)
    • Add 'x' flag to package version automatically from GAR if it is usable with 64 bit. This makes it easy for users to see if the module supports 64 bit or not. It does not necessarily mean that there are 64 bit binaries in the package, it may also be a pure Perl module that is built to be used with the 32 and 64 bit Perl.
  • Build separately on Solaris 9 and 10 (#4689 memory leak in Solaris <10)
  • DTrace support for Solaris 10 (#2742)
  • Perl 5.12.3 (#4513)
  • Embedding of 64 bit Perl in Net-SNMP. Usually 32 bit Perl is compiled with largefiles enabled, which prohibits the use of certain header files for accessing kernel data resulting in disablement of some important MIBs. Using a 64 bit Perl should circumvent this problem, although the configure detection falsely flags an error.
  • Module renaming (CSWpm-foo-bar/pm_foo_bar), use
PACKAGES = CSWpm-new-module
SPKG_DESC_CSWpm-new-module = $(DESCRIPTION)
OBSOLETED_BY_CSWpm-new-module = CSWpmoldmodule
CATALOGNAME_CSWpmoldmodule = pm_oldmdlname
  • In the case of one-word module names, e.g. DBI, use pm_dbi_stub as catalogname so the new package can use pm_dbi
  • Automatic creation of recipies including dependencies from META.yml, sent to Hudson for building
  • Review all entries in mgar/pkg/cpan and either update to mGAR v2 or drop

Issues about automatic GAR Makefile generation for Perl modules

  • Detection of collisions is difficult as it requires installing the new module at least to PKGROOT
    • Solution may be a pre-package hook that uses pkgdb to look up other packages using the .pm/.so pathes
  • When a package exists that uses the pathes it is probably an obsoletion. The obsoleted package needs to be rebuild with the old package and catalog name (how can I get the catalog name for an existing package?)
  • License detection is pretty difficult for Perl modules as they usually don't have a LICENSE, maybe DSLIP info "P" can be used?
  • Usage

First setup the proxy if you want to run it from inside the buildfarm at .cpan/CPAN/MyConfig.pm

$CPAN::Config = {
  'ftp_proxy' => q[http://proxy:3128],
  'http_proxy' => q[http://proxy:3128],
};
1;
__END__
cd pkg/cpan
./makemake <cpan-module>  (e.g. XML::Parser)

This generates the structure in the filesystem and the GAR Makefile with dependencies.

Progress

  • A bunch (~45) of modules have been rebuilt with new names and obsoleting the old name. pkgutil can remove the obsolete (unused) packages with the —cleanup option (coming in 2.4).
  • Perl 5.12.3 packages for Solaris 9 and 10 (with DTrace support) now ready. INC reorder patch not necessary anymore since default is now sane. http://buildfarm.opencsw.org/experimental.html#perl-dublin
  • Build of 5.10.1 compiles with 32/64 bit in branch perl-5.10.1-64bit. Merging this requires a rewrite of "pax".
  • Experimental changes to cpan category to produce 32/64 bit unified packages tested.
  • Perl 5.12.3 built for Solaris 9/10 sparc/i386 both 32/64 bit: DONE

Notes

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License