--- doc/gutshtml/SessionFour.html 2002/06/28 20:30:29 1.1 +++ doc/gutshtml/SessionFour.html 2003/07/22 14:47:00 1.2 @@ -1,513 +1,1026 @@ - - - - -Session Four: How to install, Proper Debug Cycle for Handlers, Coding/Documentation -Guidelines (Guy) - - - -
-

Session Four: How to install, Proper Debug Cycle for Handlers, Coding/Documentation - Guidelines (Guy)

-

lpml.dtd

-

<!--

-

       - Linux Packaging Markup Language version 1.0.

-

       - Date: May 3, 2001

-

       - Author: Scott Harrison

-

       - Linux Packaging Markup Language aims to capture

-

       - a source code development tree and effectively map

-

       - that to a compilation and installation process for

-

       - generating software packages and updating a run-time

-

       - system.  This language helps handle dependency information,

-

       - file globbing, file permissions, file ownerships,

-

       - different targets for different linux distributions,

-

       - preservation of configuration information, directory

-

       - permissions, directory ownerships, compilation commands,

-

       and, - ultimately, system software status reports.

-

-->

-

<!--

-

Copyright Michigan State - University Board of Trustees

-

This file is part of the - LearningOnline Network with CAPA (LON-CAPA).

-

LON-CAPA is free software; - you can redistribute it and/or modify

-

it under the terms of the - GNU General Public License as published by

-

the Free Software Foundation; - either version 2 of the License, or

-

(at your option) any later - version.

-

LON-CAPA is distributed - in the hope that it will be useful,

-

but WITHOUT ANY WARRANTY; - without even the implied warranty of

-

MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE.  See the

-

GNU General Public License - for more details.

-

You should have received - a copy of the GNU General Public License

-

along with LON-CAPA; if - not, write to the Free Software

-

Foundation, Inc., 59 Temple - Place, Suite 330, Boston, MA  02111-1307  USA

-

/home/httpd/html/adm/gpl.txt

-

http://www.lon-capa.org/

-

-->

-

<!ENTITY % lpml.Version

-

        - "-//TUX//DTD lpml 1.0 Final//EN"

-

        - >

-

<!-- Typical usage: -->

-

<!-- <!DOCTYPE lpml - PUBLIC "-//TUX/DTD LPML 1.0 Final//EN"

-

      - "http://lpml.sourceforge.net/DTD/lpml.dtd"> -->

-

<!-- <lpml> -->

-

<!-- ... -->

-

<!-- </lpml> -->

-

<!ELEMENT categoryname - (#PCDATA)>

-

<!ELEMENT targetroot - (#PCDATA)>

-

<!ELEMENT sourceroot - (#PCDATA)>

-

<!ELEMENT target (#PCDATA)>

-

<!ATTLIST target

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT source (#PCDATA)>

-

<!ELEMENT targetdir (#PCDATA)>

-

<!ATTLIST targetdir

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT sourcedir (#PCDATA)>

-

<!ELEMENT glob (#PCDATA)>

-

<!ELEMENT build (#PCDATA)>

-

<!ELEMENT buildlink (#PCDATA)>

-

<!--

-

The trigger attribute of - the build element is meant

-

to only have one of two - possible values:

-

  "always run", - or

-

  "run if dependencies - change"

-

Note that you must type - this text exactly in for the

-

attribute value to be understood - and processed correctly

-

by the lpml "make build" - parser.

-

-->

-

<!ELEMENT lpml

-

 (targetroot|sourceroot|specialnotices|files|categories|directories|rpm)+>

-

<!ATTLIST build

-

   trigger CDATA - #REQUIRED

-

>

-

<!ELEMENT specialnotices - (specialnotice)+>

-

<!ELEMENT categories - (category)+>

-

<!ELEMENT directories - (directory)+>

-

<!ELEMENT files (file|fileglob|link)+>

-

<!ELEMENT dependencies - (#PCDATA)>

-

<!ELEMENT note (#PCDATA|table|b|br)*>

-

<!ELEMENT b (#PCDATA)>

-

<!ELEMENT specialnotice - (#PCDATA)>

-

<!ATTLIST specialnotice

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT category (chmod,chown,abbreviation)>

-

<!ATTLIST category

-

    type - CDATA #REQUIRED

-

    name - CDATA #REQUIRED

-

    >

-

<!ELEMENT chown (#PCDATA)>

-

<!ATTLIST chown

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT chmod (#PCDATA)>

-

<!ATTLIST chmod

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT abbreviation - (#PCDATA)>

-

<!ELEMENT br EMPTY>

-

<!ELEMENT nobr EMPTY>

-

<!ELEMENT table (#PCDATA|tr)*>

-

<!ATTLIST table

-

    cellpadding - CDATA #IMPLIED

-

    cellspacing - CDATA #IMPLIED

-

    border - CDATA #IMPLIED

-

    >

-

<!ELEMENT tr (#PCDATA|td)*>

-

<!ELEMENT td (#PCDATA|br|ul|tt|nobr)*>

-

<!ELEMENT description - (#PCDATA|br|tt|u)*>

-

<!ELEMENT ul (#PCDATA|li)*>

-

<!ELEMENT li (#PCDATA)>

-

<!ELEMENT tt (#PCDATA)>

-

<!ELEMENT u (#PCDATA)>

-

<!ELEMENT status (#PCDATA)>

-

<!ELEMENT linkto (#PCDATA)>

-

<!ELEMENT directory (targetdir+,categoryname,description?)>

-

<!ATTLIST directory

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT file (source,target+,categoryname,description?,buildlink?,

-

                - note?,build?,status?,dependencies?)>

-

<!ELEMENT link (linkto,target,categoryname,description?,

-

                - note?,build?,status?,dependencies?)>

-

<!ELEMENT fileglob (glob,sourcedir,targetdir,categoryname,

-

                    - description?,note?,build?,buildlink?,status?,dependencies?,filenames?)>

-

<!ELEMENT filenames (#PCDATA)>

-

<!ELEMENT rpm (rpmSummary,rpmName,rpmVersion,rpmRelease,rpmVendor,

-

               - rpmBuildRoot,rpmCopyright,rpmGroup,rpmSource,rpmAutoReqProv,

-

               - rpmdescription,rpmpre,rpmRequires)>

-

<!ELEMENT rpmSummary - (#PCDATA)>

-

<!ELEMENT rpmName (#PCDATA)>

-

<!ELEMENT rpmVersion - (#PCDATA)>

-

<!ELEMENT rpmRelease - (#PCDATA)>

-

<!ELEMENT rpmVendor (#PCDATA)>

-

<!ELEMENT rpmBuildRoot - (#PCDATA)>

-

<!ELEMENT rpmCopyright - (#PCDATA)>

-

<!ELEMENT rpmGroup (#PCDATA)>

-

<!ELEMENT rpmSource (#PCDATA)>

-

<!ELEMENT rpmAutoReqProv - (#PCDATA)>

-

<!ELEMENT rpmdescription - (#PCDATA)>

-

<!ELEMENT rpmpre (#PCDATA)>

-

<!ELEMENT rpmRequires - (item)+>

-

<!ELEMENT item (#PCDATA)>

-

piml.dtd

-

<!--

-

       - Post Installation Markup Language version 1.0.

-

       - Date: January 24, 2002

-

       - Author: Scott Harrison

-

       - Post Installation Markup Language works to perform

-

       - 'intelligent' modifications of existing files on

-

       - a software system.  This allows for the reconfiguring

-

       - of existing configuration files without having the

-

       - overlap of files between software packages.  PIML

-

       - also allows you to have file permission/ownership

-

       - specifications different than that specified by the

-

       - original software package.

-

       - For instance, Apache web server configuration files

-

       - are a popular target for many different software applications.

-

       - A preferred approach is to simply append an 'Include ...'

-

       - line to the Apache web server configuration files.

-

       - Post Installation Markup Language is meant to be

-

       - a natural wrapper to target installations generated

-

       - by LPML (Linux Packaging Markup Language).

-

       - Usages of Post Installation Markup Language are:

-

       - * immediately after installation with LPML

-

       - * generating '%post' syntax for RPMs

-

       - * generating post-installation syntax for Debian packages.

-

       - Dependency checking is supported as a poor man's probing....

-

       - There is no point in reconfiguring a file that isn't installed,

-

       - or is missing a system component for successful operation.

-

       - Another neat use of PIML is to allow for invocation of various

-

       - processes after installation.

-

-->

-

<!--

-

Copyright Michigan State - University Board of Trustees

-

This file is part of the - LearningOnline Network with CAPA (LON-CAPA).

-

LON-CAPA is free software; - you can redistribute it and/or modify

-

it under the terms of the - GNU General Public License as published by

-

the Free Software Foundation; - either version 2 of the License, or

-

(at your option) any later - version.

-

LON-CAPA is distributed - in the hope that it will be useful,

-

but WITHOUT ANY WARRANTY; - without even the implied warranty of

-

MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE.  See the

-

GNU General Public License - for more details.

-

You should have received - a copy of the GNU General Public License

-

along with LON-CAPA; if - not, write to the Free Software

-

Foundation, Inc., 59 Temple - Place, Suite 330, Boston, MA  02111-1307  USA

-

/home/httpd/html/adm/gpl.txt

-

http://www.lon-capa.org/

-

-->

-

<!ENTITY % piml.Version

-

        - "-//TUX//DTD piml 1.0 Final//EN">

-

<!-- Typical usage:

-

            - <!DOCTYPE piml PUBLIC "-//TUX//DTD PIML 1.0 Final//EN"

-

       -     "http://lpml.sourceforge.net/DTD/piml.dtd">

-

            - <piml>

-

            - </piml>

-

 -->

-

<!ELEMENT categoryname - (#PCDATA)>

-

<!ELEMENT targetroot - (#PCDATA)>

-

<!ELEMENT target (#PCDATA)>

-

<!ATTLIST target

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT piml (targetroot|specialnotices|files|categories)+>

-

<!ELEMENT specialnotices - (specialnotice)+>

-

<!ELEMENT categories - (category)+>

-

<!ELEMENT files (file)+>

-

<!ELEMENT dependencies - (#PCDATA)>

-

<!ATTLIST dependencies

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT note (#PCDATA)>

-

<!ELEMENT specialnotice - (#PCDATA)>

-

<!ELEMENT category (chmod,chown,abbreviation)>

-

<!ATTLIST category

-

    type - CDATA #REQUIRED

-

    name - CDATA #REQUIRED

-

    >

-

<!ELEMENT chown (#PCDATA)>

-

<!ATTLIST chown

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT chmod (#PCDATA)>

-

<!ATTLIST chmod

-

    dist - CDATA #REQUIRED

-

    >

-

<!ELEMENT abbreviation - (#PCDATA)>

-

<!ELEMENT file (target,categoryname?,

-

                - note?,status?,dependencies?,perlscript)>

-

<!ELEMENT TARGET EMPTY>

-

<!ELEMENT perlscript - (#PCDATA|TARGET)*>

-

<!ATTLIST perlscript

-

    mode - CDATA #REQUIRED

-

    >

-

xfml.dtd

-

<!--

-

       - XML Filter Markup Language version 1.0.

-

       Date: - January 27, 2002

-

       - Author: Scott Harrison

-

       - XML Filter Markup Language works to extract those sections

-

       - of an XML document matching certain conditions.  This, in some

-

       - respects, relies on functionality similar to that expected

-

       - with XSL-type files.  (I do not use standard XSL syntax because

-

       - I am not convinced that it would be simple and elegant for

-

       - this particular task).

-

       - This is anticipated to be a very important feature associated

-

       - with a larger Makefile-ish type approach involving the XML dtds:

-

       - LPML and PIML.

-

       - LPML (Linux Packaging Markup Language) can work to install files

-

       - on a single computer or a distributed network of computers with

-

       - pre-configured ssh accessibility (.ssh/authorized_keys, etc).

-

       - PIML (Post Installation Markup Language) works to coordinate the

-

       - last little scripts that need to be run after an installation.

-

       - With all this make-"power", wouldn't it be nice to only pass through

-

       portions - of an LPML specification?

-

-->

-

<!--

-

Copyright Michigan State - University Board of Trustees

-

This file is part of the - LearningOnline Network with CAPA (LON-CAPA).

-

LON-CAPA is free software; - you can redistribute it and/or modify

-

it under the terms of the - GNU General Public License as published by

-

the Free Software Foundation; - either version 2 of the License, or

-

(at your option) any later - version.

-

LON-CAPA is distributed - in the hope that it will be useful,

-

but WITHOUT ANY WARRANTY; - without even the implied warranty of

-

MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE.  See the

-

GNU General Public License - for more details.

-

You should have received - a copy of the GNU General Public License

-

along with LON-CAPA; if - not, write to the Free Software

-

Foundation, Inc., 59 Temple - Place, Suite 330, Boston, MA  02111-1307  USA

-

/home/httpd/html/adm/gpl.txt

-

http://www.lon-capa.org/

-

-->

-

<!-- Note: current status - is that choice:include is currently unsupported and

-

     - all matching statements REQUIRE two levels of 'when' statements;

-

     - not one or more than two...  okay.. this will be fixed soon -->

-

<!ENTITY % xfml.Version

-

        - "-//TUX//DTD piml 1.0 Final//EN">

-

<!-- Typical usage:

-

            - <!DOCTYPE xfml PUBLIC "-//TUX//DTD PIML 1.0 Final//EN">

-

            <xfml>

-

            - </xfml>

-

-->

-

<!ELEMENT choice:include - (#PCDATA)>

-

<!ELEMENT choice:exclude - (#PCDATA)>

-

<!ELEMENT xfml (clause)+>

-

<!ELEMENT clause (when:cdata|when:name|when:attribute|choice:exclude)+>

-

<!ELEMENT when:name

-

 (when:cdata|when:name|when:attribute|choice:include|choice:exclude)+>

-

<!ELEMENT when:attribute -

-

  (when:cdata|when:name|when:attribute|choice:include|

-

  choice:exclude)+>

-

<!ELEMENT when:cdata -

-

  (when:cdata|when:name|when:attribute|choice:include|

-

  choice:exclude)+>

-

<!ATTLIST when:name

-

    match - CDATA #REQUIRED>

-

<!ATTLIST when:attribute

-

    match - CDATA #REQUIRED>

-

<!ATTLIST when:cdata

-

    match - CDATA #REQUIRED>

-

<!ATTLIST choice:include

-

    nodename - CDATA #REQUIRED>

-

<!ATTLIST choice:exclude

-

    nodename - CDATA #REQUIRED>

-
-
-
- - + + + + + + + + +Session Four: How to install, Proper Debug Cycle for Handlers, Coding/Documentation + +Guidelines (Guy) + + + + + + + +
+ +

Session Four: How to install, Proper Debug Cycle for Handlers, Coding/Documentation + + Guidelines (Guy)

+ +

lpml.dtd

+ +

<!--

+ +

       + + Linux Packaging Markup Language version 1.0.

+ +

       + + Date: May 3, 2001

+ +

       + + Author: Scott Harrison

+ +

       + + Linux Packaging Markup Language aims to capture

+ +

       + + a source code development tree and effectively map

+ +

       + + that to a compilation and installation process for

+ +

       + + generating software packages and updating a run-time

+ +

       + + system.  This language helps handle dependency information,

+ +

       + + file globbing, file permissions, file ownerships,

+ +

       + + different targets for different linux distributions,

+ +

       + + preservation of configuration information, directory

+ +

       + + permissions, directory ownerships, compilation commands,

+ +

       and, + + ultimately, system software status reports.

+ +

-->

+ +

<!--

+ +

Copyright Michigan State + + University Board of Trustees

+ +

This file is part of the + + LearningOnline Network with CAPA (LON-CAPA).

+ +

LON-CAPA is free software; + + you can redistribute it and/or modify

+ +

it under the terms of the + + GNU General Public License as published by

+ +

the Free Software Foundation; + + either version 2 of the License, or

+ +

(at your option) any later + + version.

+ +

LON-CAPA is distributed + + in the hope that it will be useful,

+ +

but WITHOUT ANY WARRANTY; + + without even the implied warranty of

+ +

MERCHANTABILITY or FITNESS + + FOR A PARTICULAR PURPOSE.  See the

+ +

GNU General Public License + + for more details.

+ +

You should have received + + a copy of the GNU General Public License

+ +

along with LON-CAPA; if + + not, write to the Free Software

+ +

Foundation, Inc., 59 Temple + + Place, Suite 330, Boston, MA  02111-1307  USA

+ +

/home/httpd/html/adm/gpl.txt

+ +

http://www.lon-capa.org/

+ +

-->

+ +

<!ENTITY % lpml.Version

+ +

        + + "-//TUX//DTD lpml 1.0 Final//EN"

+ +

        + + >

+ +

<!-- Typical usage: -->

+ +

<!-- <!DOCTYPE lpml + + PUBLIC "-//TUX/DTD LPML 1.0 Final//EN"

+ +

      + + "http://lpml.sourceforge.net/DTD/lpml.dtd"> -->

+ +

<!-- <lpml> -->

+ +

<!-- ... -->

+ +

<!-- </lpml> -->

+ +

<!ELEMENT categoryname + + (#PCDATA)>

+ +

<!ELEMENT targetroot + + (#PCDATA)>

+ +

<!ELEMENT sourceroot + + (#PCDATA)>

+ +

<!ELEMENT target (#PCDATA)>

+ +

<!ATTLIST target

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT source (#PCDATA)>

+ +

<!ELEMENT targetdir (#PCDATA)>

+ +

<!ATTLIST targetdir

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT sourcedir (#PCDATA)>

+ +

<!ELEMENT glob (#PCDATA)>

+ +

<!ELEMENT build (#PCDATA)>

+ +

<!ELEMENT buildlink (#PCDATA)>

+ +

<!--

+ +

The trigger attribute of + + the build element is meant

+ +

to only have one of two + + possible values:

+ +

  "always run", + + or

+ +

  "run if dependencies + + change"

+ +

Note that you must type + + this text exactly in for the

+ +

attribute value to be understood + + and processed correctly

+ +

by the lpml "make build" + + parser.

+ +

-->

+ +

<!ELEMENT lpml

+ +

 (targetroot|sourceroot|specialnotices|files|categories|directories|rpm)+>

+ +

<!ATTLIST build

+ +

   trigger CDATA + + #REQUIRED

+ +

>

+ +

<!ELEMENT specialnotices + + (specialnotice)+>

+ +

<!ELEMENT categories + + (category)+>

+ +

<!ELEMENT directories + + (directory)+>

+ +

<!ELEMENT files (file|fileglob|link)+>

+ +

<!ELEMENT dependencies + + (#PCDATA)>

+ +

<!ELEMENT note (#PCDATA|table|b|br)*>

+ +

<!ELEMENT b (#PCDATA)>

+ +

<!ELEMENT specialnotice + + (#PCDATA)>

+ +

<!ATTLIST specialnotice

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT category (chmod,chown,abbreviation)>

+ +

<!ATTLIST category

+ +

    type + + CDATA #REQUIRED

+ +

    name + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT chown (#PCDATA)>

+ +

<!ATTLIST chown

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT chmod (#PCDATA)>

+ +

<!ATTLIST chmod

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT abbreviation + + (#PCDATA)>

+ +

<!ELEMENT br EMPTY>

+ +

<!ELEMENT nobr EMPTY>

+ +

<!ELEMENT table (#PCDATA|tr)*>

+ +

<!ATTLIST table

+ +

    cellpadding + + CDATA #IMPLIED

+ +

    cellspacing + + CDATA #IMPLIED

+ +

    border + + CDATA #IMPLIED

+ +

    >

+ +

<!ELEMENT tr (#PCDATA|td)*>

+ +

<!ELEMENT td (#PCDATA|br|ul|tt|nobr)*>

+ +

<!ELEMENT description + + (#PCDATA|br|tt|u)*>

+ +

<!ELEMENT ul (#PCDATA|li)*>

+ +

<!ELEMENT li (#PCDATA)>

+ +

<!ELEMENT tt (#PCDATA)>

+ +

<!ELEMENT u (#PCDATA)>

+ +

<!ELEMENT status (#PCDATA)>

+ +

<!ELEMENT linkto (#PCDATA)>

+ +

<!ELEMENT directory (targetdir+,categoryname,description?)>

+ +

<!ATTLIST directory

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT file (source,target+,categoryname,description?,buildlink?,

+ +

                + + note?,build?,status?,dependencies?)>

+ +

<!ELEMENT link (linkto,target,categoryname,description?,

+ +

                + + note?,build?,status?,dependencies?)>

+ +

<!ELEMENT fileglob (glob,sourcedir,targetdir,categoryname,

+ +

                    + + description?,note?,build?,buildlink?,status?,dependencies?,filenames?)>

+ +

<!ELEMENT filenames (#PCDATA)>

+ +

<!ELEMENT rpm (rpmSummary,rpmName,rpmVersion,rpmRelease,rpmVendor,

+ +

               + + rpmBuildRoot,rpmCopyright,rpmGroup,rpmSource,rpmAutoReqProv,

+ +

               + + rpmdescription,rpmpre,rpmRequires)>

+ +

<!ELEMENT rpmSummary + + (#PCDATA)>

+ +

<!ELEMENT rpmName (#PCDATA)>

+ +

<!ELEMENT rpmVersion + + (#PCDATA)>

+ +

<!ELEMENT rpmRelease + + (#PCDATA)>

+ +

<!ELEMENT rpmVendor (#PCDATA)>

+ +

<!ELEMENT rpmBuildRoot + + (#PCDATA)>

+ +

<!ELEMENT rpmCopyright + + (#PCDATA)>

+ +

<!ELEMENT rpmGroup (#PCDATA)>

+ +

<!ELEMENT rpmSource (#PCDATA)>

+ +

<!ELEMENT rpmAutoReqProv + + (#PCDATA)>

+ +

<!ELEMENT rpmdescription + + (#PCDATA)>

+ +

<!ELEMENT rpmpre (#PCDATA)>

+ +

<!ELEMENT rpmRequires + + (item)+>

+ +

<!ELEMENT item (#PCDATA)>

+ +

piml.dtd

+ +

<!--

+ +

       + + Post Installation Markup Language version 1.0.

+ +

       + + Date: January 24, 2002

+ +

       + + Author: Scott Harrison

+ +

       + + Post Installation Markup Language works to perform

+ +

       + + 'intelligent' modifications of existing files on

+ +

       + + a software system.  This allows for the reconfiguring

+ +

       + + of existing configuration files without having the

+ +

       + + overlap of files between software packages.  PIML

+ +

       + + also allows you to have file permission/ownership

+ +

       + + specifications different than that specified by the

+ +

       + + original software package.

+ +

       + + For instance, Apache web server configuration files

+ +

       + + are a popular target for many different software applications.

+ +

       + + A preferred approach is to simply append an 'Include ...'

+ +

       + + line to the Apache web server configuration files.

+ +

       + + Post Installation Markup Language is meant to be

+ +

       + + a natural wrapper to target installations generated

+ +

       + + by LPML (Linux Packaging Markup Language).

+ +

       + + Usages of Post Installation Markup Language are:

+ +

       + + * immediately after installation with LPML

+ +

       + + * generating '%post' syntax for RPMs

+ +

       + + * generating post-installation syntax for Debian packages.

+ +

       + + Dependency checking is supported as a poor man's probing....

+ +

       + + There is no point in reconfiguring a file that isn't installed,

+ +

       + + or is missing a system component for successful operation.

+ +

       + + Another neat use of PIML is to allow for invocation of various

+ +

       + + processes after installation.

+ +

-->

+ +

<!--

+ +

Copyright Michigan State + + University Board of Trustees

+ +

This file is part of the + + LearningOnline Network with CAPA (LON-CAPA).

+ +

LON-CAPA is free software; + + you can redistribute it and/or modify

+ +

it under the terms of the + + GNU General Public License as published by

+ +

the Free Software Foundation; + + either version 2 of the License, or

+ +

(at your option) any later + + version.

+ +

LON-CAPA is distributed + + in the hope that it will be useful,

+ +

but WITHOUT ANY WARRANTY; + + without even the implied warranty of

+ +

MERCHANTABILITY or FITNESS + + FOR A PARTICULAR PURPOSE.  See the

+ +

GNU General Public License + + for more details.

+ +

You should have received + + a copy of the GNU General Public License

+ +

along with LON-CAPA; if + + not, write to the Free Software

+ +

Foundation, Inc., 59 Temple + + Place, Suite 330, Boston, MA  02111-1307  USA

+ +

/home/httpd/html/adm/gpl.txt

+ +

http://www.lon-capa.org/

+ +

-->

+ +

<!ENTITY % piml.Version

+ +

        + + "-//TUX//DTD piml 1.0 Final//EN">

+ +

<!-- Typical usage:

+ +

            + + <!DOCTYPE piml PUBLIC "-//TUX//DTD PIML 1.0 Final//EN"

+ +

       + +     "http://lpml.sourceforge.net/DTD/piml.dtd">

+ +

            + + <piml>

+ +

            + + </piml>

+ +

 -->

+ +

<!ELEMENT categoryname + + (#PCDATA)>

+ +

<!ELEMENT targetroot + + (#PCDATA)>

+ +

<!ELEMENT target (#PCDATA)>

+ +

<!ATTLIST target

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT piml (targetroot|specialnotices|files|categories)+>

+ +

<!ELEMENT specialnotices + + (specialnotice)+>

+ +

<!ELEMENT categories + + (category)+>

+ +

<!ELEMENT files (file)+>

+ +

<!ELEMENT dependencies + + (#PCDATA)>

+ +

<!ATTLIST dependencies

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT note (#PCDATA)>

+ +

<!ELEMENT specialnotice + + (#PCDATA)>

+ +

<!ELEMENT category (chmod,chown,abbreviation)>

+ +

<!ATTLIST category

+ +

    type + + CDATA #REQUIRED

+ +

    name + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT chown (#PCDATA)>

+ +

<!ATTLIST chown

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT chmod (#PCDATA)>

+ +

<!ATTLIST chmod

+ +

    dist + + CDATA #REQUIRED

+ +

    >

+ +

<!ELEMENT abbreviation + + (#PCDATA)>

+ +

<!ELEMENT file (target,categoryname?,

+ +

                + + note?,status?,dependencies?,perlscript)>

+ +

<!ELEMENT TARGET EMPTY>

+ +

<!ELEMENT perlscript + + (#PCDATA|TARGET)*>

+ +

<!ATTLIST perlscript

+ +

    mode + + CDATA #REQUIRED

+ +

    >

+ +

xfml.dtd

+ +

<!--

+ +

       + + XML Filter Markup Language version 1.0.

+ +

       Date: + + January 27, 2002

+ +

       + + Author: Scott Harrison

+ +

       + + XML Filter Markup Language works to extract those sections

+ +

       + + of an XML document matching certain conditions.  This, in some

+ +

       + + respects, relies on functionality similar to that expected

+ +

       + + with XSL-type files.  (I do not use standard XSL syntax because

+ +

       + + I am not convinced that it would be simple and elegant for

+ +

       + + this particular task).

+ +

       + + This is anticipated to be a very important feature associated

+ +

       + + with a larger Makefile-ish type approach involving the XML dtds:

+ +

       + + LPML and PIML.

+ +

       + + LPML (Linux Packaging Markup Language) can work to install files

+ +

       + + on a single computer or a distributed network of computers with

+ +

       + + pre-configured ssh accessibility (.ssh/authorized_keys, etc).

+ +

       + + PIML (Post Installation Markup Language) works to coordinate the

+ +

       + + last little scripts that need to be run after an installation.

+ +

       + + With all this make-"power", wouldn't it be nice to only pass through

+ +

       portions + + of an LPML specification?

+ +

-->

+ +

<!--

+ +

Copyright Michigan State + + University Board of Trustees

+ +

This file is part of the + + LearningOnline Network with CAPA (LON-CAPA).

+ +

LON-CAPA is free software; + + you can redistribute it and/or modify

+ +

it under the terms of the + + GNU General Public License as published by

+ +

the Free Software Foundation; + + either version 2 of the License, or

+ +

(at your option) any later + + version.

+ +

LON-CAPA is distributed + + in the hope that it will be useful,

+ +

but WITHOUT ANY WARRANTY; + + without even the implied warranty of

+ +

MERCHANTABILITY or FITNESS + + FOR A PARTICULAR PURPOSE.  See the

+ +

GNU General Public License + + for more details.

+ +

You should have received + + a copy of the GNU General Public License

+ +

along with LON-CAPA; if + + not, write to the Free Software

+ +

Foundation, Inc., 59 Temple + + Place, Suite 330, Boston, MA  02111-1307  USA

+ +

/home/httpd/html/adm/gpl.txt

+ +

http://www.lon-capa.org/

+ +

-->

+ +

<!-- Note: current status + + is that choice:include is currently unsupported and

+ +

     + + all matching statements REQUIRE two levels of 'when' statements;

+ +

     + + not one or more than two...  okay.. this will be fixed soon -->

+ +

<!ENTITY % xfml.Version

+ +

        + + "-//TUX//DTD piml 1.0 Final//EN">

+ +

<!-- Typical usage:

+ +

            + + <!DOCTYPE xfml PUBLIC "-//TUX//DTD PIML 1.0 Final//EN">

+ +

            <xfml>

+ +

            + + </xfml>

+ +

-->

+ +

<!ELEMENT choice:include + + (#PCDATA)>

+ +

<!ELEMENT choice:exclude + + (#PCDATA)>

+ +

<!ELEMENT xfml (clause)+>

+ +

<!ELEMENT clause (when:cdata|when:name|when:attribute|choice:exclude)+>

+ +

<!ELEMENT when:name

+ +

 (when:cdata|when:name|when:attribute|choice:include|choice:exclude)+>

+ +

<!ELEMENT when:attribute + +

+ +

  (when:cdata|when:name|when:attribute|choice:include|

+ +

  choice:exclude)+>

+ +

<!ELEMENT when:cdata + +

+ +

  (when:cdata|when:name|when:attribute|choice:include|

+ +

  choice:exclude)+>

+ +

<!ATTLIST when:name

+ +

    match + + CDATA #REQUIRED>

+ +

<!ATTLIST when:attribute

+ +

    match + + CDATA #REQUIRED>

+ +

<!ATTLIST when:cdata

+ +

    match + + CDATA #REQUIRED>

+ +

<!ATTLIST choice:include

+ +

    nodename + + CDATA #REQUIRED>

+ +

<!ATTLIST choice:exclude

+ +

    nodename + + CDATA #REQUIRED>

+ +
+ +
+ +
+ + + + +