summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/tlpkg/TeXLive/TLPOBJ.pm213
-rw-r--r--Master/tlpkg/TeXLive/TLPSRC.pm2
-rw-r--r--Master/tlpkg/man/TeXLive::TLPOBJ.1339
-rw-r--r--Master/tlpkg/man/TeXLive::TLPSRC.1383
4 files changed, 936 insertions, 1 deletions
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm
index 986c7a41fb2..5c2e32feccd 100644
--- a/Master/tlpkg/TeXLive/TLPOBJ.pm
+++ b/Master/tlpkg/TeXLive/TLPOBJ.pm
@@ -5,6 +5,8 @@
#
# This file is licensed under the GNU General Public Licence version 2
# or any later version
+#
+# pod documentation at the bottom
package TeXLive::TLPOBJ;
@@ -601,6 +603,217 @@ longdesc ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
$_tmp
.
+
+__END__
+
+=head1 NAME
+
+TeXLive::TLPOBJ - TeX Live Package Object access module
+
+=head1 SYNOPSIS
+
+ use TeXLive::TLPOBJ;
+
+ my $tlpobj = TeXLive::TLPOBJ->new( name => "foobar" );
+
+=head1 DESCRIPTION
+
+The L<TeXLive::TLPOBJ> module provide access to TeX Live Package Object
+files describing a self-contained package.
+
+=head1 FILE SPECIFICATION
+
+Please see L<TeXLive::TLPSRC> documentation for the specification. The
+only differences are that the various C<*pattern> keys are invalid, and
+instead there are the respective C<*files> keys described below. Furthermore
+one more I<key> is allowed, C<revision> which specifies the maximum of
+all last changed revision of files contained in the package.
+
+All these keys have in common that the are followed by a list of files
+B<intended> by one space. They differ only in the first line itself
+(described below).
+
+=over
+
+=item C<srcfiles>, C<docfiles>, C<runfiles>
+
+each of these three items contains in addition the sum of sizes of the
+single files (currently in byte, but this may change).
+
+ srcfiles size=NNNNNN
+ docfiles size=NNNNNN
+ runfiles size=NNNNNN
+
+=item C<runfiles>
+
+Since C<runfiles> are different for the different architectures one C<tlpobj>
+file can contain C<runfiles> lines for different architectures. The
+architecture is specified on the C<binfiles> using the C<arch=XXX> tag. Thus,
+C<binfiles> lines look like
+
+ binfiles arch=XXXX size=NNNNN
+
+=back
+
+Thus a typical entry for runfiles looks like this:
+
+ /------- excerpt from bin-dvips.tlpobj
+ |...
+ |runfiles size=1702468
+ | texmf/dvips/base/color.pro
+ | ...
+ | texmf/scripts/pkfix/pkfix.pl
+ |binfiles arch=i386-solaris size=329700
+ | bin/i386-solaris/afm2tfm
+ | bin/i386-solaris/dvips
+ | bin/i386-solaris/pkfix
+ |binfiles arch=win32 size=161280
+ | bin/win32/afm2tfm.exe
+ | bin/win32/dvips.exe
+ | bin/win32/pkfix.exe
+ |...
+
+
+=head1 PACKAGE VARIABLES
+
+TeXLive::TLPOBJ has one package wide variable which is C<zipdir> where
+generated zip files are saved (if not otherwise specified.
+
+ TeXLive::TLPOBJ->zipdir("path/to/zip/dir");
+
+=head1 MEMBER ACCESS FUNCTIONS
+
+For any of the I<keys> a function
+
+ $tlpobj->key
+
+is available, which returns the current value when called without an argument,
+and sets the respective value when called with an argument.
+
+Arguments and return values for C<name>, C<category>, C<shortdesc>,
+C<longdesc>, C<catalogue>, C<revision> are single scalars.
+Arguments and return values for C<depends>, C<executes> are lists.
+Arguments and return values for C<binfiles> is a hash with the architectures
+as keys.
+
+Other functions which work quite similar are:
+
+ $tlpobj->docsize
+ $tlpobj->srcsize
+ $tlpobj->runsize
+ $tlpobj->binsize
+
+which set or get the current value of the respective sizes. Note that also
+the C<binsize> function returns (and takes as argument) a hash with the
+architectures as keys, similar to the C<runfiles> functions (see above).
+
+=head1 OTHER FUNCTIONS
+
+The following functions can be called for an C<TLPOBJ> object:
+
+=over
+
+=item C<new>
+
+(constructor) returns a new C<TLPSRC> object. The arguments to the C<new>
+constructor can be in the usual hash representation for the different keys
+above:
+
+ $tlpobj = TLPOBJ->new ( name => "foobar", shortdesc => "The foobar package" );
+
+=item C<from_file("filename")>
+
+reads a C<tlpobj> file.
+
+ $tlpobj = new TLPOBJ;
+ $tlpobj->from_file("path/to/the/tlpobj/file");
+
+=item C<from_fh($filehandle [, $multi] )>
+
+read the textual representation of a TLPOBJ from an already opened file handle.
+If C<$multi> is undefined (ie not given) then multiple tlpobj in the
+same file are treated as errors. If C<$multi> is defined then returns
+after reading one tlpobj.
+
+Returns 1 if it found a tlpobj, otherwise 0
+
+=item C<writeout>
+
+writes the textual representation of a C<TLPOBJ> object to stdout, or the
+filehandle if given:
+
+ $tlpsrc->writeout;
+ $tlpsrc->writeout(\*FILEHANDLE);
+
+=item C<writeout_simple>
+
+debugging function for comparison with tpm/tlps, will go away.
+
+=item C<make_zip($tltree[,$destdir[,$zipname]])>
+
+creates a zip file of the arch B<independent> files in the TLPOBJ
+in $destdir (if not defined then TLPOBJ->zipdir is used).
+The file name of the created zipfile is $zipname (if not
+present $tlpobj->name.zip)
+
+If the package contains "binfiles"; then zip files for
+all archs containing B<only> the binfiles are created, and
+the zipfile name is C<$zipname.$arch.zip>
+
+All the arch independent zip files B<also> contain the
+respective TLPOBJ file in
+ .tlpobj/$name.tlpobj
+so C<$zipname.zip> does contain this tlpobj file, while
+C<$zipname.$arch.zip> does NOT.
+
+=item C<recompute_sizes ($tltree)>
+
+recomputes the sizes based on the information present in C<$tltree>.
+
+=item C<recompute_revision ($tltree)>
+
+recomputes the revision based on the information present in C<$tltree>.
+
+=item C<is_arch_dependent>
+
+returns 1 if there are C<binfiles>, otherwise 0.
+
+=item C<total_size>
+
+If no argument is given returns the sum of C<srcsize>, C<docsize>, C<runsize>
+
+If and argumen is given it returns the sum of the above increased by the
+sum of sizes of C<binsize> for the architectures given as argument.
+
+=item C<{add,remove}_{src,run,doc}files ( @files )>
+
+adds or removes files to the respective list of files
+
+=item C<{add,remove}_binfiles ($arch, @files)>
+
+adds or removes files from the list of C<binfiles> for the given architecture
+
+=item C<{add,remove}_files ($type, $files)>
+
+adds or removes files for the given type (only for C<run>, C<src>, C<doc>).
+
+=back
+
+=head1 AUTHORS AND COPYRIGHT
+
+This module and its documentation was written by
+Norbert Preining <F<preining@logic.at>> for the TeX Live distribution and both
+are licensed under the GNU General Public License Version 2 or later.
+
+=head1 SEE ALSO
+
+The modules L<TeXLive::TLUtils>, L<TeXLive::TLPSRC>,
+L<TeXLive::TLPDB>, L<TeXLive::TLTREE>.
+
+
+=cut
+
+
### Local Variables:
### perl-indent-level: 2
### tab-width: 2
diff --git a/Master/tlpkg/TeXLive/TLPSRC.pm b/Master/tlpkg/TeXLive/TLPSRC.pm
index d56ef330c20..4d4ab734aa1 100644
--- a/Master/tlpkg/TeXLive/TLPSRC.pm
+++ b/Master/tlpkg/TeXLive/TLPSRC.pm
@@ -389,7 +389,7 @@ __END__
=head1 NAME
-TeXLive::TLPSRC - TeX Live Source Package access modules
+TeXLive::TLPSRC - TeX Live Package Source access module
=head1 SYNOPSIS
diff --git a/Master/tlpkg/man/TeXLive::TLPOBJ.1 b/Master/tlpkg/man/TeXLive::TLPOBJ.1
new file mode 100644
index 00000000000..e9d47d3f9cf
--- /dev/null
+++ b/Master/tlpkg/man/TeXLive::TLPOBJ.1
@@ -0,0 +1,339 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "TeXLive::TLPOBJ 3"
+.TH TeXLive::TLPOBJ 3 "2007-06-27" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+TeXLive::TLPOBJ \- TeX Live Package Object access module
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+.Vb 1
+\& use TeXLive::TLPOBJ;
+.Ve
+.PP
+.Vb 1
+\& my $tlpobj = TeXLive::TLPOBJ\->new( name => "foobar" );
+.Ve
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The TeXLive::TLPOBJ module provide access to TeX Live Package Object
+files describing a self-contained package.
+.SH "FILE SPECIFICATION"
+.IX Header "FILE SPECIFICATION"
+Please see TeXLive::TLPSRC documentation for the specification. The
+only differences are that the various \f(CW*pattern\fR keys are invalid, and
+instead there are the respective \f(CW*files\fR keys described below. Furthermore
+one more \fIkey\fR is allowed, \f(CW\*(C`revision\*(C'\fR which specifies the maximum of
+all last changed revision of files contained in the package.
+.PP
+All these keys have in common that the are followed by a list of files
+\&\fBintended\fR by one space. They differ only in the first line itself
+(described below).
+.ie n .IP """srcfiles""\fR, \f(CW""docfiles""\fR, \f(CW""runfiles""" 4
+.el .IP "\f(CWsrcfiles\fR, \f(CWdocfiles\fR, \f(CWrunfiles\fR" 4
+.IX Item "srcfiles, docfiles, runfiles"
+each of these three items contains in addition the sum of sizes of the
+single files (currently in byte, but this may change).
+.Sp
+.Vb 3
+\& srcfiles size=NNNNNN
+\& docfiles size=NNNNNN
+\& runfiles size=NNNNNN
+.Ve
+.ie n .IP """runfiles""" 4
+.el .IP "\f(CWrunfiles\fR" 4
+.IX Item "runfiles"
+Since \f(CW\*(C`runfiles\*(C'\fR are different for the different architectures one \f(CW\*(C`tlpobj\*(C'\fR
+file can contain \f(CW\*(C`runfiles\*(C'\fR lines for different architectures. The
+architecture is specified on the \f(CW\*(C`binfiles\*(C'\fR using the \f(CW\*(C`arch=XXX\*(C'\fR tag. Thus,
+\&\f(CW\*(C`binfiles\*(C'\fR lines look like
+.Sp
+.Vb 1
+\& binfiles arch=XXXX size=NNNNN
+.Ve
+.PP
+Thus a typical entry for runfiles looks like this:
+.PP
+.Vb 15
+\& /\-\-\-\-\-\-\- excerpt from bin\-dvips.tlpobj
+\& |...
+\& |runfiles size=1702468
+\& | texmf/dvips/base/color.pro
+\& | ...
+\& | texmf/scripts/pkfix/pkfix.pl
+\& |binfiles arch=i386\-solaris size=329700
+\& | bin/i386\-solaris/afm2tfm
+\& | bin/i386\-solaris/dvips
+\& | bin/i386\-solaris/pkfix
+\& |binfiles arch=win32 size=161280
+\& | bin/win32/afm2tfm.exe
+\& | bin/win32/dvips.exe
+\& | bin/win32/pkfix.exe
+\& |...
+.Ve
+.SH "PACKAGE VARIABLES"
+.IX Header "PACKAGE VARIABLES"
+TeXLive::TLPOBJ has one package wide variable which is \f(CW\*(C`zipdir\*(C'\fR where
+generated zip files are saved (if not otherwise specified.
+.PP
+.Vb 1
+\& TeXLive::TLPOBJ\->zipdir("path/to/zip/dir");
+.Ve
+.SH "MEMBER ACCESS FUNCTIONS"
+.IX Header "MEMBER ACCESS FUNCTIONS"
+For any of the \fIkeys\fR a function
+.PP
+.Vb 1
+\& $tlpobj\->key
+.Ve
+.PP
+is available, which returns the current value when called without an argument,
+and sets the respective value when called with an argument.
+.PP
+Arguments and return values for \f(CW\*(C`name\*(C'\fR, \f(CW\*(C`category\*(C'\fR, \f(CW\*(C`shortdesc\*(C'\fR,
+\&\f(CW\*(C`longdesc\*(C'\fR, \f(CW\*(C`catalogue\*(C'\fR, \f(CW\*(C`revision\*(C'\fR are single scalars.
+Arguments and return values for \f(CW\*(C`depends\*(C'\fR, \f(CW\*(C`executes\*(C'\fR are lists.
+Arguments and return values for \f(CW\*(C`binfiles\*(C'\fR is a hash with the architectures
+as keys.
+.PP
+Other functions which work quite similar are:
+.PP
+.Vb 4
+\& $tlpobj\->docsize
+\& $tlpobj\->srcsize
+\& $tlpobj\->runsize
+\& $tlpobj\->binsize
+.Ve
+.PP
+which set or get the current value of the respective sizes. Note that also
+the \f(CW\*(C`binsize\*(C'\fR function returns (and takes as argument) a hash with the
+architectures as keys, similar to the \f(CW\*(C`runfiles\*(C'\fR functions (see above).
+.SH "OTHER FUNCTIONS"
+.IX Header "OTHER FUNCTIONS"
+The following functions can be called for an \f(CW\*(C`TLPOBJ\*(C'\fR object:
+.ie n .IP """new""" 4
+.el .IP "\f(CWnew\fR" 4
+.IX Item "new"
+(constructor) returns a new \f(CW\*(C`TLPSRC\*(C'\fR object. The arguments to the \f(CW\*(C`new\*(C'\fR
+constructor can be in the usual hash representation for the different keys
+above:
+.Sp
+.Vb 1
+\& $tlpobj = TLPOBJ\->new ( name => "foobar", shortdesc => "The foobar package" );
+.Ve
+.ie n .IP """from_file(""filename"")""" 4
+.el .IP "\f(CWfrom_file(``filename'')\fR" 4
+.IX Item "from_file(""filename"")"
+reads a \f(CW\*(C`tlpobj\*(C'\fR file.
+.Sp
+.Vb 2
+\& $tlpobj = new TLPOBJ;
+\& $tlpobj\->from_file("path/to/the/tlpobj/file");
+.Ve
+.ie n .IP """from_fh($filehandle [, $multi] )""" 4
+.el .IP "\f(CWfrom_fh($filehandle [, $multi] )\fR" 4
+.IX Item "from_fh($filehandle [, $multi] )"
+read the textual representation of a \s-1TLPOBJ\s0 from an already opened file handle.
+If \f(CW$multi\fR is undefined (ie not given) then multiple tlpobj in the
+same file are treated as errors. If \f(CW$multi\fR is defined then returns
+after reading one tlpobj.
+.Sp
+Returns 1 if it found a tlpobj, otherwise 0
+.ie n .IP """writeout""" 4
+.el .IP "\f(CWwriteout\fR" 4
+.IX Item "writeout"
+writes the textual representation of a \f(CW\*(C`TLPOBJ\*(C'\fR object to stdout, or the
+filehandle if given:
+.Sp
+.Vb 2
+\& $tlpsrc\->writeout;
+\& $tlpsrc\->writeout(\e*FILEHANDLE);
+.Ve
+.ie n .IP """writeout_simple""" 4
+.el .IP "\f(CWwriteout_simple\fR" 4
+.IX Item "writeout_simple"
+debugging function for comparison with tpm/tlps, will go away.
+.ie n .IP """make_zip($tltree[,$destdir[,$zipname]])""" 4
+.el .IP "\f(CWmake_zip($tltree[,$destdir[,$zipname]])\fR" 4
+.IX Item "make_zip($tltree[,$destdir[,$zipname]])"
+creates a zip file of the arch \fBindependent\fR files in the \s-1TLPOBJ\s0
+in \f(CW$destdir\fR (if not defined then \s-1TLPOBJ\-\s0>zipdir is used).
+The file name of the created zipfile is \f(CW$zipname\fR (if not
+present \f(CW$tlpobj\fR\->name.zip)
+.Sp
+If the package contains \*(L"binfiles\*(R"; then zip files for
+all archs containing \fBonly\fR the binfiles are created, and
+the zipfile name is \f(CW\*(C`$zipname.$arch.zip\*(C'\fR
+.Sp
+All the arch independent zip files \fBalso\fR contain the
+respective \s-1TLPOBJ\s0 file in
+ .tlpobj/$name.tlpobj
+so \f(CW\*(C`$zipname.zip\*(C'\fR does contain this tlpobj file, while
+\&\f(CW\*(C`$zipname.$arch.zip\*(C'\fR does \s-1NOT\s0.
+.ie n .IP """recompute_sizes ($tltree)""" 4
+.el .IP "\f(CWrecompute_sizes ($tltree)\fR" 4
+.IX Item "recompute_sizes ($tltree)"
+recomputes the sizes based on the information present in \f(CW$tltree\fR.
+.ie n .IP """recompute_revision ($tltree)""" 4
+.el .IP "\f(CWrecompute_revision ($tltree)\fR" 4
+.IX Item "recompute_revision ($tltree)"
+recomputes the revision based on the information present in \f(CW$tltree\fR.
+.ie n .IP """is_arch_dependent""" 4
+.el .IP "\f(CWis_arch_dependent\fR" 4
+.IX Item "is_arch_dependent"
+returns 1 if there are \f(CW\*(C`binfiles\*(C'\fR, otherwise 0.
+.ie n .IP """total_size""" 4
+.el .IP "\f(CWtotal_size\fR" 4
+.IX Item "total_size"
+If no argument is given returns the sum of \f(CW\*(C`srcsize\*(C'\fR, \f(CW\*(C`docsize\*(C'\fR, \f(CW\*(C`runsize\*(C'\fR
+.Sp
+If and argumen is given it returns the sum of the above increased by the
+sum of sizes of \f(CW\*(C`binsize\*(C'\fR for the architectures given as argument.
+.ie n .IP """{add,remove}_{src,run,doc}files ( @files )""" 4
+.el .IP "\f(CW{add,remove}_{src,run,doc}files ( @files )\fR" 4
+.IX Item "{add,remove}_{src,run,doc}files ( @files )"
+adds or removes files to the respective list of files
+.ie n .IP """{add,remove}_binfiles ($arch, @files)""" 4
+.el .IP "\f(CW{add,remove}_binfiles ($arch, @files)\fR" 4
+.IX Item "{add,remove}_binfiles ($arch, @files)"
+adds or removes files from the list of \f(CW\*(C`binfiles\*(C'\fR for the given architecture
+.ie n .IP """{add,remove}_files ($type, $files)""" 4
+.el .IP "\f(CW{add,remove}_files ($type, $files)\fR" 4
+.IX Item "{add,remove}_files ($type, $files)"
+adds or removes files for the given type (only for \f(CW\*(C`run\*(C'\fR, \f(CW\*(C`src\*(C'\fR, \f(CW\*(C`doc\*(C'\fR).
+.SH "AUTHORS AND COPYRIGHT"
+.IX Header "AUTHORS AND COPYRIGHT"
+This module and its documentation was written by
+Norbert Preining <\fIpreining@logic.at\fR> for the TeX Live distribution and both
+are licensed under the \s-1GNU\s0 General Public License Version 2 or later.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+The modules TeXLive::TLUtils, TeXLive::TLPSRC,
+TeXLive::TLPDB, TeXLive::TLTREE.
diff --git a/Master/tlpkg/man/TeXLive::TLPSRC.1 b/Master/tlpkg/man/TeXLive::TLPSRC.1
new file mode 100644
index 00000000000..1841f7f51f9
--- /dev/null
+++ b/Master/tlpkg/man/TeXLive::TLPSRC.1
@@ -0,0 +1,383 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "TeXLive::TLPSRC 3"
+.TH TeXLive::TLPSRC 3 "2007-06-27" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+TeXLive::TLPSRC \- TeX Live Package Source access module
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+.Vb 1
+\& use TeXLive::TLPSRC;
+.Ve
+.PP
+.Vb 4
+\& my $tlpsrc = TeXLive::TLPSRC\->new( name => "foobar" );
+\& $tlpsrc\->from_file("package.tlpsrc");
+\& $tlpsrc\->writeout;
+\& $tlpsrc\->writeout(\e*FILEHANDLE);
+.Ve
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The TeXLive::TLPSRC module provide access to TeX Live Package Source
+files, which contains all the information which cannot be automatically
+derived from the files in the TeX Live subversion repository.
+.SH "FILE SPECIFICATION"
+.IX Header "FILE SPECIFICATION"
+A tlpsrc file has to consist of non-empty lines (initial and final
+empty lines are ignored) of the form
+.PP
+\&\fIkey value\fR
+.PP
+where \fIkey\fR can be \f(CW\*(C`name\*(C'\fR, \f(CW\*(C`category\*(C'\fR, \f(CW\*(C`shortdesc\*(C'\fR, \f(CW\*(C`longdesc\*(C'\fR,
+\&\f(CW\*(C`catalogue\*(C'\fR, \f(CW\*(C`runpattern\*(C'\fR, \f(CW\*(C`srcpattern\*(C'\fR, \f(CW\*(C`docpattern\*(C'\fR, \f(CW\*(C`binpattern\*(C'\fR,
+\&\f(CW\*(C`execute\*(C'\fR, or \f(CW\*(C`depend\*(C'\fR.
+.PP
+The interpretation of the respective \fIvalues\fR are:
+.ie n .IP """name""" 4
+.el .IP "\f(CWname\fR" 4
+.IX Item "name"
+identifies the package, \f(CW\*(C`value\*(C'\fR must consist only of [\-_a\-zA\-Z0\-9]
+.ie n .IP """category""" 4
+.el .IP "\f(CWcategory\fR" 4
+.IX Item "category"
+identifies the category into which this package belongs. Possible categories
+are \f(CW\*(C`Collection\*(C'\fR, \f(CW\*(C`Scheme\*(C'\fR, \f(CW\*(C`TLCore\*(C'\fR, \f(CW\*(C`Documentation\*(C'\fR, \f(CW\*(C`Package\*(C'\fR.
+Note that there is no inherent checking whether a \f(CW\*(C`tlpsrc\*(C'\fR file called
+\&\f(CW\*(C`collection\-something\*(C'\fR actually belongs to the category \f(CW\*(C`Collection\*(C'\fR.
+Most packages will fall into the \f(CW\*(C`Package\*(C'\fR category.
+.ie n .IP """catalogue""" 4
+.el .IP "\f(CWcatalogue\fR" 4
+.IX Item "catalogue"
+(currently not used in TeX Live) identifies the name under which this
+package can be found in the TeX Catalogue.
+.ie n .IP """shortdesc""" 4
+.el .IP "\f(CWshortdesc\fR" 4
+.IX Item "shortdesc"
+gives a one line description of the package. Susequent entries will overwrite
+the former ones. In TeX Live only used for collections and schemes.
+.ie n .IP """longdesc""" 4
+.el .IP "\f(CWlongdesc\fR" 4
+.IX Item "longdesc"
+gives a long description of the package. Susequent entries are added up
+to a long text. In TeX Live only used for collections and schemes.
+.ie n .IP """depend""" 4
+.el .IP "\f(CWdepend\fR" 4
+.IX Item "depend"
+gives the list of dependencies of the package in the form
+.Sp
+\&\fICategory\fR/\fIName\fR
+.Sp
+All the depend lines contribute to the dependencies of the package.
+.ie n .IP """execute""" 4
+.el .IP "\f(CWexecute\fR" 4
+.IX Item "execute"
+gives a free form entry of install time jobs to be executed. Currently
+the following possible values are understood by the installers:
+.RS 4
+.ie n .IP """execute addMap \f(CIfont.map\f(CW""" 6
+.el .IP "\f(CWexecute addMap \f(CIfont.map\f(CW\fR" 6
+.IX Item "execute addMap font.map"
+enables the font map file \fIfont.map\fR in the \fIupdmap.cfg\fR file.
+.ie n .IP """execute addMixedMap \f(CIfont.map\f(CW""" 6
+.el .IP "\f(CWexecute addMixedMap \f(CIfont.map\f(CW\fR" 6
+.IX Item "execute addMixedMap font.map"
+enables the font map file \fIfont.map\fR> for Mixed mode in the \fIupdmap.cfg\fR file.
+.ie n .IP """execute BuildLanguageDat NN""" 6
+.el .IP "\f(CWexecute BuildLanguageDat NN\fR" 6
+.IX Item "execute BuildLanguageDat NN"
+activates all the hyphenation patterns found in
+\&\fIMaster/texmf/tex/generic/config/language.NN.dat\fR in the generated
+\&\fIlanguage.dat\fR file.
+.ie n .IP """execute BuildFormat FMTCFG""" 6
+.el .IP "\f(CWexecute BuildFormat FMTCFG\fR" 6
+.IX Item "execute BuildFormat FMTCFG"
+activates all the formats present in \fIMaster/texmf/fmtutil/format.FMTCFG.cnf\fR
+in the generated \fIfmtutil.cnf\fR file.
+.RE
+.RS 4
+.RE
+.ie n .IP """(src|run|doc|bin)pattern \f(CIpattern\f(CW""" 4
+.el .IP "\f(CW(src|run|doc|bin)pattern \f(CIpattern\f(CW\fR" 4
+.IX Item "(src|run|doc|bin)pattern pattern"
+adds a pattern (see below) to the respective list of patterns.
+.SH "PATTERNS"
+.IX Header "PATTERNS"
+Patterns specify which files are to be included into a \f(CW\*(C`tlpobj\*(C'\fR at
+expansion time. Patterns are of the form
+.PP
+.Vb 1
+\& [PREFIX]TYPE PAT
+.Ve
+.PP
+where
+.PP
+.Vb 2
+\& PREFIX = + | +! | !
+\& TYPE = t | f | d | r
+.Ve
+.PP
+The meaning of the various pattern types is
+.ie n .IP """f path""" 4
+.el .IP "\f(CWf path\fR" 4
+.IX Item "f path"
+includes all files which match \f(CW\*(C`path\*(C'\fR where \fBonly\fR the last component
+of \f(CW\*(C`path\*(C'\fR can contain the usual glob characters * and ? (but no others!).
+.ie n .IP """d path""" 4
+.el .IP "\f(CWd path\fR" 4
+.IX Item "d path"
+includes all the files in and below the directory specified as \f(CW\*(C`path\*(C'\fR.
+.ie n .IP """t word1 ... wordN worldL""" 4
+.el .IP "\f(CWt word1 ... wordN worldL\fR" 4
+.IX Item "t word1 ... wordN worldL"
+includes all the files in and below all directories of the form
+.Sp
+.Vb 1
+\& word1/word2/.../wordN/.../any/dirs/.../wordL/
+.Ve
+.Sp
+i.e., the first words but the last form the prefix of the path, then
+there can be an arbitrary nesting of directories, followed by \f(CW\*(C`wordL\*(C'\fR
+as another directory.
+.ie n .IP """r regexp""" 4
+.el .IP "\f(CWr regexp\fR" 4
+.IX Item "r regexp"
+includes all files matching the regexp \f(CW\*(C`/^regexp$/\*(C'\fR
+.PP
+In the case that one of the pattern sections is empty or \fBall\fR the provided
+patterns have the prefix \f(CW\*(C`+\*(C'\fR (e.g., \f(CW\*(C`+f ...\*(C'\fR), then the following patterns
+are \fBautomatically\fR added at expansion time (but never written to the
+textual representation):
+.IP "runpattern" 4
+.IX Item "runpattern"
+for runpatterns of category \f(CW\*(C`Package\*(C'\fR
+.Sp
+.Vb 1
+\& t texmf\-dist topdir $name
+.Ve
+.Sp
+where \f(CW\*(C`topdir\*(C'\fR is one of: bibtex context dvips fonts makeindex metafont
+metapost mft omega scripts tex vtex.
+.Sp
+For other categories \fBno\fR patterns are automatically added to the
+list of runpatterns.
+.IP "docpattern" 4
+.IX Item "docpattern"
+for docpattern of category \f(CW\*(C`Package\*(C'\fR
+.Sp
+.Vb 1
+\& t texmf\-dist doc $name
+.Ve
+.Sp
+for docpattern of category \f(CW\*(C`Documentation\*(C'\fR
+.Sp
+.Vb 1
+\& t texmf\-doc doc $name
+.Ve
+.IP "srcpattern" 4
+.IX Item "srcpattern"
+for srcpattern of category \f(CW\*(C`Package\*(C'\fR
+.Sp
+.Vb 1
+\& t texmf\-dist source $name
+.Ve
+.Sp
+for srcpattern of category \f(CW\*(C`Documentation\*(C'\fR
+.Sp
+.Vb 1
+\& t texmf\-doc source $name
+.Ve
+.PP
+binpatterns are never automatically added.
+.PP
+If the \f(CW\*(C`PREFIX\*(C'\fR contains the symbol ! the meaning of the pattern is
+reversed, i.e., file matching this pattern are removed from the list
+of included files.
+.SH "MEMBER ACCESS FUNCTIONS"
+.IX Header "MEMBER ACCESS FUNCTIONS"
+For any of the above \fIkeys\fR a function
+.PP
+.Vb 1
+\& $tlpsrc\->key
+.Ve
+.PP
+is available, which returns the current value when called without an argument,
+and sets the respective value when called with an argument.
+.PP
+Arguments and return values for \f(CW\*(C`name\*(C'\fR, \f(CW\*(C`category\*(C'\fR, \f(CW\*(C`shortdesc\*(C'\fR,
+\&\f(CW\*(C`longdesc\*(C'\fR, \f(CW\*(C`catalogue\*(C'\fR are single scalars. Arguments and return values
+for \f(CW\*(C`depends\*(C'\fR, \f(CW\*(C`executes\*(C'\fR, and the various \f(CW\*(C`patterns\*(C'\fR are lists.
+.SH "OTHER FUNCTIONS"
+.IX Header "OTHER FUNCTIONS"
+The following functions can be called for an \f(CW\*(C`TLPSRC\*(C'\fR object:
+.ie n .IP """new""" 4
+.el .IP "\f(CWnew\fR" 4
+.IX Item "new"
+(constructor) returns a new \f(CW\*(C`TLPSRC\*(C'\fR object. The arguments to the \f(CW\*(C`new\*(C'\fR
+constructor can be in the usual hash representation for the different keys
+above:
+.Sp
+.Vb 1
+\& $tlpsrc = TLPSRC\->new ( name => "foobar", shortdesc => "The foobar package" );
+.Ve
+.ie n .IP """from_file(""filename"")""" 4
+.el .IP "\f(CWfrom_file(``filename'')\fR" 4
+.IX Item "from_file(""filename"")"
+reads a \f(CW\*(C`tlpsrc\*(C'\fR file.
+.Sp
+.Vb 2
+\& $tlpsrc = new TLPSRC;
+\& $tlpsrc\->from_file("path/to/the/tlpsrc/file");
+.Ve
+.ie n .IP """writeout""" 4
+.el .IP "\f(CWwriteout\fR" 4
+.IX Item "writeout"
+writes the textual representation of a \f(CW\*(C`TLPSRC\*(C'\fR object to stdout, or the
+filehandle if given:
+.Sp
+.Vb 2
+\& $tlpsrc\->writeout;
+\& $tlpsrc\->writeout(\e*FILEHANDLE);
+.Ve
+.ie n .IP """make_tlpobj($tltree)""" 4
+.el .IP "\f(CWmake_tlpobj($tltree)\fR" 4
+.IX Item "make_tlpobj($tltree)"
+creates a \f(CW\*(C`TLPOBJ\*(C'\fR object from a \f(CW\*(C`TLPSRC\*(C'\fR object and a \f(CW\*(C`TLTREE\*(C'\fR object.
+This function does the necessary work to expand the manual data and
+enrich it which the actual content from <$tltree> to a \f(CW\*(C`TLPOBJ\*(C'\fR object.
+.SH "AUTHORS AND COPYRIGHT"
+.IX Header "AUTHORS AND COPYRIGHT"
+This module and its documentation was written by
+Norbert Preining <\fIpreining@logic.at\fR> for the TeX Live distribution and both
+are licensed under the \s-1GNU\s0 General Public License Version 2 or later.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+The modules TeXLive::TLUtils, TeXLive::TLPOBJ,
+TeXLive::TLPDB, TeXLive::TLTREE.