Perl Package Distribution

Wed Nov 12 11:52:45 2003


Table of Contents

I. Prolog
SOFTPKG -
II. Elements
ABSTRACT -
AUTHOR -
CODEBASE -
DEPENDENCY -
IMPLEMENTATION - describe a particular implementation of the Perl Package
INSTALL - provide either a reference to an installation script
LANGUAGE -
LICENSE -
OS - the operating system required for this implementation
OSVERSION - the required version of the operating system
PERLCORE - the minimum version of the Perl core distribution
PROCESSOR -
SOFTPKG - root element of a description of a software package
TITLE - state the title of the Perl Package
UNINSTALL - provide either a reference to an uninstallation script
III. Examples
Example sample.ppd -

Prolog


Table of Contents

SOFTPKG -

Name

SOFTPKG — —

Synopsis

NameSystem 
SOFTPKGppd.dtd 

Description

The DTD for PPD documents is available from the ActiveState website and the latest version can be found at http://www.ActiveState.com/PPM/DTD/ppd.dtd

Elements


Element tree

Table of Contents

ABSTRACT -
AUTHOR -
CODEBASE -
DEPENDENCY -
IMPLEMENTATION - describe a particular implementation of the Perl Package
INSTALL - provide either a reference to an installation script
LANGUAGE -
LICENSE -
OS - the operating system required for this implementation
OSVERSION - the required version of the operating system
PERLCORE - the minimum version of the Perl core distribution
PROCESSOR -
SOFTPKG - root element of a description of a software package
TITLE - state the title of the Perl Package
UNINSTALL - provide either a reference to an uninstallation script

Name

ABSTRACT — —

Synopsis

Mixed Content Model
ABSTRACT ::=
( #PCDATA )
Attributes
None

Description

Used to provide a short description outlining the nature and purpose of the Perl Package. Only one instance should be present.

Parents

These elements contain ABSTRACT: SOFTPKG.


Name

AUTHOR — —

Synopsis

Mixed Content Model
AUTHOR ::=
( #PCDATA )
Attributes
None

Description

Used to provide information about the author(s) of the Perl Package. Multiple instances are valid.

Parents

These elements contain AUTHOR: SOFTPKG.


Name

CODEBASE — —

Synopsis

Content Model
CODEBASE ::=
EMPTY
Attributes

Name

Type

Default

FILENAME CDATA #IMPLIED
HREF CDATA #REQUIRED

Description

Indicating a location where an archive of the Perl Package can be retrieved. Multiple instances are valid, and can be used to indicate multiple possible locations where the same version of the Perl Package can be retrieved.

FILENAME

???

HREF

A reference to the location of the Perl Package distribution.

Parents

These elements contain CODEBASE: IMPLEMENTATION.


Name

DEPENDENCY — —

Synopsis

Content Model
DEPENDENCY ::=
EMPTY
Attributes

Name

Type

Default

VERSION CDATA #IMPLIED
NAME CDATA #REQUIRED

Description

Used to indicate a dependency this Perl Package has on another Perl Package. Multiple instances are valid.

VERSION

Version number of the dependency, in comma-delimited format (e.g. ``1,0,0,0'').

NAME

Name of the package that this implementation is dependant upon.

Parents

These elements contain DEPENDENCY: IMPLEMENTATION.


Name

IMPLEMENTATION — — describe a particular implementation of the Perl Package

Synopsis

Element Content Model
IMPLEMENTATION ::=
( CODEBASE | DEPENDENCY | LANGUAGE | OS | OSVERSION | PERLCORE | 
  PROCESSOR | INSTALL | UNINSTALL )*
Attributes
None

Description

Used to describe a particular implementation of the Perl Package. Multiple instances are valid, and should be used to describe different implementations/ports for different operating systems or architectures.

Parents

These elements contain IMPLEMENTATION: SOFTPKG.

Children

The following elements occur in IMPLEMENTATION: CODEBASE, DEPENDENCY, INSTALL, LANGUAGE, OS, OSVERSION, PERLCORE, PROCESSOR, UNINSTALL.


Name

INSTALL — — provide either a reference to an installation script

Synopsis

Mixed Content Model
INSTALL ::=
( #PCDATA )
Attributes

Name

Type

Default

HREF CDATA #IMPLIED
EXEC CDATA #IMPLIED

Description

Used to provide either a reference to an installation script or a series of commands which can be used to install the Perl Package once it has been retrieved. If the EXEC attribute is not specified, the value is assumed to be one or more commands, separated by `;;'. Each such command will be executed by the Perl `system()'function. Only one instance should be present.

HREF

Reference to an external script which should be retrieved and run as part of the installation process. Both filenames and URLs should be considered valid.

EXEC

Name of interpreter/shell used to execute the installation script. If the value of EXEC is `PPM_PERL', the copy of Perl that is executing PPM itself ($^X) is used to execute the install script.

Parents

These elements contain INSTALL: IMPLEMENTATION.


Name

LANGUAGE — —

Synopsis

Content Model
LANGUAGE ::=
EMPTY
Attributes

Name

Type

Default

VALUE CDATA #REQUIRED

Description

Used to specify the language used within the given implementation of the Perl Package. Only one instance should be present.

VALUE

Parents

These elements contain LANGUAGE: IMPLEMENTATION.


Name

LICENSE — —

Synopsis

Content Model
LICENSE ::=
EMPTY
Attributes

Name

Type

Default

HREF CDATA #REQUIRED

Description

Indicating the location of the appropriate license agreement or copyright notice for the Perl Package. Only one instance should be present.

HREF

Required attribute. A reference to the location of the license agreement or copyright notice for this package.

Parents

These elements contain LICENSE: SOFTPKG.


Name

OS — — the operating system required for this implementation

Synopsis

Content Model
OS ::=
EMPTY
Attributes

Name

Type

Default

VALUE CDATA #REQUIRED

Description

Used to outline the operating system required for this implementation of the Perl Package. Multiple instances are valid. Valid values can be taken from the OSD Specification and it's OS element.

VALUE

The name of the operating system required for this implementation of the Perl Package. This value should be obtained from Config.pm as 'osname'.

Parents

These elements contain OS: IMPLEMENTATION.


Name

OSVERSION — — the required version of the operating system

Synopsis

Content Model
OSVERSION ::=
EMPTY
Attributes

Name

Type

Default

VALUE CDATA #REQUIRED

Description

Used to outline the required version of the operating system required for this implementation of the Perl Package. Only one instance should be present.

VALUE

The version of the operating system required for installation of this implementation of the package, in a comma-delimited format (e.g. ``3,1,0,0'').

Parents

These elements contain OSVERSION: IMPLEMENTATION.


Name

PERLCORE — — the minimum version of the Perl core distribution

Synopsis

Content Model
PERLCORE ::=
EMPTY
Attributes

Name

Type

Default

VERSION CDATA #REQUIRED

Description

Used to specify the minimum version of the Perl core distribution that this Perl Package is to be used with. Only one instance should be present.

VERSION

Version of the Perl core that is required for this implementation of the Perl Package.

Parents

These elements contain PERLCORE: IMPLEMENTATION.


Name

PROCESSOR — —

Synopsis

Content Model
PROCESSOR ::=
EMPTY
Attributes

Name

Type

Default

VALUE CDATA #REQUIRED

Description

Outlining the cpu required for this implementation of the Perl Package. Only one instance should be present.

VALUE

CPU required for the installation of this implementation of the Perl Package. The following values are all valid according to the OSD Specification: x86 alpha mips sparc 680x0

Parents

These elements contain PROCESSOR: IMPLEMENTATION.


Name

SOFTPKG — — root element of a description of a software package

Synopsis

Element Content Model
SOFTPKG ::=
( ABSTRACT | AUTHOR | IMPLEMENTATION | LICENSE | TITLE )*
Attributes

Name

Type

Default

NAME CDATA #REQUIRED
VERSION CDATA #IMPLIED

Description

It's the root element of a description of a software package, in Perl Package Distribution (PPD) format which is an XML application.

HISTORY : v0.1 - Initial release

SEE ALSO : OSD Specification http://www.microsoft.com/standards/osd/

NAME

Name of the package (e.g. ``Foobar'').

VERSION

Version number of the package, in comma-delimited format (e.g. ``1,0,0,0'').

Children

The following elements occur in SOFTPKG: ABSTRACT, AUTHOR, IMPLEMENTATION, LICENSE, TITLE.


Name

TITLE — — state the title of the Perl Package

Synopsis

Mixed Content Model
TITLE ::=
( #PCDATA )
Attributes
None

Description

Used to state the title of the Perl Package. Only one instance should be present.

Parents

These elements contain TITLE: SOFTPKG.


Name

UNINSTALL — — provide either a reference to an uninstallation script

Synopsis

Mixed Content Model
UNINSTALL ::=
( #PCDATA )
Attributes

Name

Type

Default

HREF CDATA #IMPLIED
EXEC CDATA #IMPLIED

Description

Used to provide either a reference to an uninstallation script or a raw Perl script which can be used to uninstall the Perl Package at a later point. Only one instance should be present.

HREF

Reference to an external script which should be retrieved and run as part of the removal process. Both filenames and URLs should be considered valid.

EXEC

Name of interpreter/shell used to execute the uninstallation script. If the value of EXEC is `PPM_PERL', the copy of Perl that is executing PPM itself ($^X) is used to execute the install script.

Parents

These elements contain UNINSTALL: IMPLEMENTATION.

Examples


Table of Contents

Example sample.ppd -

Name

Example sample.ppd —

Example sample.ppd

<?xml version="1.0"?>
<!DOCTYPE SOFTPKG SYSTEM "ppd.dtd">
<!-- The following is a sample PPD file describing the Math-MatrixBool module. 
     Note that this may not be a current/proper description of this module 
     and is for sample purposes only.
-->
 <SOFTPKG NAME="Math-MatrixBool" VERSION="4,2,0,0">
     <TITLE>Math-MatrixBool</TITLE>
     <ABSTRACT>Easy manipulation of matrices of booleans (Boolean Algebra)</ABSTRACT>
     <AUTHOR>Steffen Beyer (sb@sdm.de)</AUTHOR>
     <LICENSE HREF="http://www.ActiveState.com/packages/Math-MatrixBool/license.html" />
     <IMPLEMENTATION>
         <OS VALUE="WinNT" />
         <OS VALUE="Win95" />
         <PROCESSOR VALUE="x86" />
         <CODEBASE HREF="http://www.ActiveState.com/packages/Math-MatrixBool/Math-MatrixBool-4.2-bin-1-Win32.tar.gz" />
         <DEPENDENCY NAME="Bit-Vector" />
         <INSTALL>
         </INSTALL>
         <UNINSTALL>
         </UNINSTALL>
     </IMPLEMENTATION>

     <IMPLEMENTATION>
         <DEPENDENCY NAME="Bit-Vector" />
         <CODEBASE HREF="&amp;CPAN;/CPAN/modules/by-module/Math/Math-MatrixBool-4.2.tar.gz" />
         <INSTALL>
             system("make"); ;;
             system("make test"); ;;
             system("make install"); ;;
         </INSTALL>
     </IMPLEMENTATION>
 </SOFTPKG>