The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

PPM::ppd - PPD (Perl package descriptor) file format

DESCRIPTION

A file format for PPD data files and a class structure to be able to access and maniuplate them.

PPD data files are an extended version of the OSD file format. Being a derivative of OSD, PPD files are XML documents. This document will describe the extensions that have been added for PPD as well as show some examples of what these files will contain. Extensions have been added in through the use of XML namespaces.

As part of PPM, this module will use the PPM::xml module for parsing the PPD files themselves. For information on what limitations are imposed by that module and how PPD files differ from XML documents, please refer to the PPM::xml documentation.

FILE FORMAT

The following tags have been added as PPD extensions to OSD:

FILELIST

The FILELIST element is used to list the files that are present for the given package and state where they should be copied. The file list itself can either be given as an attribute ('HREF') of the element, or as the data contained within the element. The format for the file list is:

    from/over/here  to/over/here

Each file that is to be copied 'from' will be the name of the file contained within the <CODEBASE> archive. The path of the file within the archive should be given. The destination of where the file is to be copied to should be given as a directory local to the LIB directory for this given Perl installation.

Only one FILELIST element may be present for a given IMPLEMENTATION. Required.

Attributes

HREF=<URL> - URL pointing to the document which is the file list

Child of

IMPLEMENTATION

INSTALLSCRIPT

The INSTALLSCRIPT element is used to define how to install a given package of software once it has been obtained and files have been copied to their appropriate locations. The INSTALLSCRIPT element is to be used for packages that require some other form of installation beyond simply a file copy. For those packages where copying of files is sufficient, an INSTALLSCRIPT is not required. Note that the INSTALLSCRIPT will be run by PPM after files have been copied to their appropriate locations. The script required for installation can either be given as an attribute ('HREF') of the element, as the data contained within this element, or as the name of a file contained within the <CODEBASE> element for this installation. Only one INSTALLSCRIPT element may be present for a given implementation. Optional.

Attributes

HREF=<URL> - URL to the script used for installation of this package. (optional)

EXEC=<string> - Shell/program to use to execute the script. (required)

CODEBASEFILE=<filename> - File to use as an installation script, which is to be found inside the <CODEBASE> file.

Child of

IMPLEMENTATION

UNINSTALLSCRIPT

The UNINSTALLSCRIPT element is used to define how to un-install a given package of software after it has already been installed. The UNINSTALLSCRIPT element is to be used for packages that require some other form of uninstallation beyond simply removing the appropriate files. For those packages where removal of files is sufficient, an UNINSTALLSCRIPT is not required. Note that the UNINSTALLSCRIPT will be run by PPM before any files are removed. The script required for this removal can either be given as an attribute ('HREF') of the element, as the data contained within this element, or as the name of a file contained within the <CODEBASE> element for this installation. Only one UNINSTALLSCRIPT element may be present for a given implementation. Currently unsupported.

Attributes

HREF=<URL> - URL to the script used for installation of this package. (optional)

EXEC=<string> - Shell/program to use to execute the script. (required)

CODEBASEFILE=<filename> - File to use as an installation script, which is to be found inside the <CODEBASE> file.

Child of

IMPLEMENTATION

AUTHOR

The AUTHOR element is used to provide the name and e-mail address of the author of the package. This information is required when working with signed packages. Multiple AUTHOR elements may be present for a given package.

Attributes

NAME=<string> - Full name of author. (required)

EMAIL=<email> - E-mail address of author. (required)

Child of

SOFTPKG

EXAMPLE

<SOFTPKG NAME="PPM::ppm" VERSION="1,0,0,0"> <TITLE>PPM::ppm</TITLE> <ABSTRACT>Perl package manager file format</ABSTRACT> <LICENSE HREF="http://www.ActiveState.com/ppm/ppm.html" /> <AUTHOR NAME="Dick Hardt" EMAIL="dick_hardt@ActiveState.com" /> <AUTHOR NAME="Graham TerMarsch" EMAIL="graham@dotcom.bc.ca" />

    <!-- This is incomplete!!!  This is only the distribution and
    installation for Unix-type systems.  We're going to need
    to have a look at how to handle different OSs; do we have
    different IMPLEMENTATIONs for each, with different INSTALL
    scripts (some using 'cp', some using 'copy', etc.) or do
    we do some processing of the installation script internally
    to determine how to install the software. -->

    <IMPLEMENTATION>
        <IMPLTYPE VALUE="Perl" />
        <LANGUAGE VALUE="en" />
        <CODEBASE HREF="http://www.ActiveState.com/ppm/ppm.pm" />

        <!-- We're dependant on the XML parser -->
        <DEPENDENCY>
            <CODEBASE HREF="http://www.ActiveState.com/ppm/xml.ppm" />
        </DEPENDENCY>

        <!-- Installation for Unix type systems using a remote script -->
        <INSTALL SCRIPT="http://www.ActiveState.com/ppm/inst.ppm.pm" EXEC="sh" />

        <!-- Uninstallation for Unix type systems using inlined script -->
<!-- Can we assume that this script will run in the /usr/lib/perl5 directory??? -->
        <UNINSTALL EXEC="sh">
            rm PPM/ppm.pm
        </UNINSTALL>
    </IMPLEMENTATION>
</SOFTPKG>

DTD