The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

PPM::Make::RepositorySummary - generate summary files for a ppm repository

SYNOPSIS

use PPM::Make::RepositorySummary;
my $rep = '/path/to/ppms';
my $obj = PPM::Make::RepositorySummary->new(rep => $rep);
$obj->summary();

DESCRIPTION

This module may be used to generate various summary files as used by ActiveState's ppm system. It searches a given directory for ppd files, which are of the form

<?xml version="1.0" encoding="UTF-8"?>
<SOFTPKG NAME="Archive-Tar" VERSION="1,29,0,0">
  <TITLE>Archive-Tar</TITLE>
  <ABSTRACT>Manipulates TAR archives</ABSTRACT>
  <AUTHOR>Jos Boumans &lt;kane[at]cpan.org&gt;</AUTHOR>
  <IMPLEMENTATION>
    <DEPENDENCY NAME="IO-Zlib" VERSION="1,01,0,0" />
    <OS NAME="MSWin32" />
    <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
    <CODEBASE HREF="Archive-Tar.tar.gz" />
  </IMPLEMENTATION>
</SOFTPKG>

and generates four types of files summarizing the information found in all ppd files found:

summary.ppm
<?xml version="1.0" encoding="UTF-8"?>
<REPOSITORYSUMMARY>
  <SOFTPKG NAME="Archive-Tar" VERSION="1,29,0,0">
    <TITLE>Archive-Tar</TITLE>
    <ABSTRACT>Manipulates TAR archives</ABSTRACT>
    <AUTHOR>Jos Boumans &lt;kane[at]cpan.org&gt;</AUTHOR>
  </SOFTPKG>
  ...
</REPOSITORYSUMMARY>
searchsummary.ppm
<?xml version="1.0" encoding="UTF-8"?>
<REPOSITORYSUMMARY>
  <SOFTPKG NAME="Archive-Tar" VERSION="1,29,0,0">
    <TITLE>Archive-Tar</TITLE>
    <ABSTRACT>Manipulates TAR archives</ABSTRACT>
    <AUTHOR>Jos Boumans &lt;kane[at]cpan.org&gt;</AUTHOR>
    <IMPLEMENTATION>
      <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
    </IMPLEMENTATION>
  </SOFTPKG>
  ...
</REPOSITORYSUMMARY>
package.lst
<?xml version="1.0" encoding="UTF-8"?>
<REPOSITORYSUMMARY>
  <SOFTPKG NAME="Archive-Tar" VERSION="1,29,0,0">
    <TITLE>Archive-Tar</TITLE>
    <ABSTRACT>Manipulates TAR archives</ABSTRACT>
    <AUTHOR>Jos Boumans &lt;kane[at]cpan.org&gt;</AUTHOR>
    <IMPLEMENTATION>
      <DEPENDENCY NAME="IO-Zlib" VERSION="1,01,0,0" />
      <OS NAME="MSWin32" />
      <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
      <CODEBASE HREF="Archive-Tar.tar.gz" />
    </IMPLEMENTATION>
  </SOFTPKG>
  ...
</REPOSITORYSUMMARY>
package.xml
<?xml version="1.0" encoding="UTF-8"?>
<REPOSITORYSUMMARY ARCHITECTURE="MSWin32-x86-multi-thread-5.8">
  <SOFTPKG NAME="Archive-Tar" VERSION="1.29">
    <ABSTRACT>Manipulates TAR archives</ABSTRACT>
    <AUTHOR>Jos Boumans &lt;kane[at]cpan.org&gt;</AUTHOR>
    <IMPLEMENTATION>
      <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
      <CODEBASE HREF="Archive-Tar.tar.gz" />
    </IMPLEMENTATION>
    <REQUIRE NAME="IO-Zlib" VERSION="1.01" />
    <PROVIDE NAME="Archive::Tar" VERSION="1.29" />
    <PROVIDE NAME="Archive::Tar::File" VERSION="1.21" />
  </SOFTPKG>
  ...
</REPOSITORYSUMMARY>

If multiple <IMPLEMETATION> sections are present in the ppd file, all will be included in the corresponding summary files.

Options accepted by the new constructor include

rep => '/path/to/ppds'

This option, which is required, specifies the path to where the ppd files are found. The summary files will be written in this directory.

no_ppm4 => 1

If this option is specified, the package.xml file (which contains some extensions used by ppm4) will not be generated.

arch => 'MSWin32-x86-multi-thread-5.8'

If this option is given, it will be used as the ARCHITECTURE attribute of the REPOSITORYSUMMARY element of package.xml.

COPYRIGHT

This program is copyright, 2006, by Randy Kobes <r.kobes.uwinnipeg.ca>. It is distributed under the same terms as Perl itself.

SEE ALSO

PPM and PPM::Make