summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/tlpkg/TeXLive/TLPOBJ.pm37
-rw-r--r--Master/tlpkg/man/TeXLive-TLPOBJ.1260
2 files changed, 160 insertions, 137 deletions
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm
index 96f954ba923..e51421d8bbf 100644
--- a/Master/tlpkg/TeXLive/TLPOBJ.pm
+++ b/Master/tlpkg/TeXLive/TLPOBJ.pm
@@ -356,20 +356,6 @@ sub writeout_simple {
}
}
-sub make_packagecontainer {
- my ($self,$type,$instroot,$destdir,$zipname) = @_;
- if ($type eq "zip") {
- $self->make_zip($instroot,$destdir,$zipname);
- return 0;
- }
- if ($type eq "lzma") {
- warn("not implemented yet: lzma compression!\n");
- return 1;
- }
- die("Container method $type unknown!\n");
-}
-
-
sub make_zip {
my ($self,$type,$instroot,$destdir,$zipname) = @_;
my $zipn;
@@ -933,20 +919,27 @@ or the filehandle if given:
debugging function for comparison with C<tpm>/C<tlps>, will go away.
-=item C<make_zip($instroot[, $destdir[, $zipname]])>
+=item C<make_zip($type,$instroot[, $destdir[, $zipname]])>
-creates a zip file of the arch B<independent> files in the C<TLPOBJ>
+creates a container file of the arch B<independent> files in the C<TLPOBJ>
in C<$destdir> (if not defined then C<< TLPOBJ->zipdir >> is used).
-The file name of the created zipfile is C<$zipname> (if not
-present C<< $tlpobj->name.zip >>).
-If the package contains C<"binfiles">, then zip files for
+The C<$type> variable specifies the type of container to be used.
+Currently only C<zip> or C<lzma> are allowed, and are generating
+zip files and tar.lzma files, respectively.
+
+The file name of the created container file is C<$zipname.extension>,
+where extension is either C<.zip> or C<.tar.lzma>, depending on the
+setting of C<$type>. If no C<$zipname> is specified the package name
+is used.
+
+If the package contains C<"binfiles">, then container files for
all archs containing B<only> the binfiles are created, and
-the zipfile name is C<$zipname.$arch.zip>
+those container files name is C<$zipname.$arch.$extension>
All the arch independent zip files B<also> contain the respective
-C<TLPOBJ> file in C<tlpkg/tlpobj/$name.tlpobj> so C<$zipname.zip> does
-contain this tlpobj file, while C<$zipname.$arch.zip> does NOT.
+C<TLPOBJ> file in C<tlpkg/tlpobj/$name.tlpobj> so C<$zipname.$extension> does
+contain this tlpobj file, while C<$zipname.$arch.$extension> does NOT.
The argument C<$instroot> specifies the root of the installation from
which the files should be taken.
diff --git a/Master/tlpkg/man/TeXLive-TLPOBJ.1 b/Master/tlpkg/man/TeXLive-TLPOBJ.1
index 5ce64690b55..df21ce1e566 100644
--- a/Master/tlpkg/man/TeXLive-TLPOBJ.1
+++ b/Master/tlpkg/man/TeXLive-TLPOBJ.1
@@ -129,17 +129,17 @@
.\" ========================================================================
.\"
.IX Title "TLPOBJ 3"
-.TH TLPOBJ 3 "2007-07-12" "perl v5.8.8" "User Contributed Perl Documentation"
+.TH TLPOBJ 3 "2007-11-12" "perl v5.8.8" "User Contributed Perl Documentation"
.SH "NAME"
-TeXLive::TLPOBJ \- TeX Live Package Object access module
+\&\f(CW\*(C`TeXLive::TLPOBJ\*(C'\fR \-\- TeX Live Package Object access module
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
-\& use TeXLive::TLPOBJ;
+\& use TeXLive::TLPOBJ;
.Ve
.PP
.Vb 1
-\& my $tlpobj = TeXLive::TLPOBJ\->new( name => "foobar" );
+\& my $tlpobj=TeXLive::TLPOBJ\->new(name => "foobar");
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
@@ -155,18 +155,15 @@ all last changed revision of files contained in the package, and anything
starting with \f(CW\*(C`catalogue\-\*(C'\fR specifying information coming from the
TeX Catalogue.
.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
+All these keys have in common that they are followed by a list of files
+\&\fIindented\fR by one space. They differ only in the first line itself
(described below).
-.ie n .IP """srcfiles""\fR, \f(CW""runfiles""" 4
-.el .IP "\f(CWsrcfiles\fR, \f(CWrunfiles\fR" 4
-.IX Item "srcfiles, 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
+.ie n .IP """srcfiles""\fR, \f(CW""runfiles""\fR, \f(CW""binfiles""\fR, \f(CW""docfiles"" each of these items contains addition the sum of sizes of the single files (currently in bytes)." 4
+.el .IP "\f(CWsrcfiles\fR, \f(CWrunfiles\fR, \f(CWbinfiles\fR, \f(CWdocfiles\fR each of these items contains addition the sum of sizes of the single files (currently in bytes)." 4
+.IX Item "srcfiles, runfiles, binfiles, docfiles each of these items contains addition the sum of sizes of the single files (currently in bytes)."
.Vb 2
-\& srcfiles size=NNNNNN
-\& runfiles size=NNNNNN
+\& srcfiles size=NNNNNN
+\& runfiles size=NNNNNN
.Ve
.ie n .IP """docfiles""" 4
.el .IP "\f(CWdocfiles\fR" 4
@@ -175,51 +172,56 @@ The docfiles line itself is similar to the \f(CW\*(C`srcfiles\*(C'\fR and \f(CW\
above:
.Sp
.Vb 1
-\& docfiles size=NNNNNN
+\& docfiles size=NNNNNN
.Ve
.Sp
But the lines listing the files are allowed to have additional tags:
.Sp
.Vb 6
-\& /\-\-\-\-\-\-\- excerpt from achemso.tlpobj
-\& |...
-\& |docfiles size=1702468
-\& | texmf\-dist/doc/latex/aeguill/README details="Package Readme"
-\& | texmf\-dist/doc/latex/achemso/achemso.pdf details="Package documentation" language="en"
-\& |...
+\& /\-\-\-\-\-\-\- excerpt from achemso.tlpobj
+\& |...
+\& |docfiles size=1702468
+\& | texmf\-dist/doc/latex/aeguill/README details="Package Readme"
+\& | texmf\-dist/doc/latex/achemso/achemso.pdf details="Package documentation" language="en"
+\& |...
.Ve
.Sp
Currently only the tags \f(CW\*(C`details\*(C'\fR and \f(CW\*(C`language\*(C'\fR are allowed.
-.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
+.ie n .IP """binfiles""" 4
+.el .IP "\f(CWbinfiles\fR" 4
+.IX Item "binfiles"
+Since \f(CW\*(C`binfiles\*(C'\fR are different for the different architectures one
+\&\f(CW\*(C`tlpobj\*(C'\fR file can contain \f(CW\*(C`binfiles\*(C'\fR lines for different
+architectures. The architecture is specified on the \f(CW\*(C`binfiles\*(C'\fR using
+the \f(CW\*(C`arch=\*(C'\fR\fI\s-1XXX\s0\fR tag. Thus, \f(CW\*(C`binfiles\*(C'\fR lines look like
.Sp
.Vb 1
-\& binfiles arch=XXXX size=NNNNN
+\& binfiles arch=XXXX size=NNNNN
.Ve
.PP
-Thus a typical entry for runfiles looks like this:
+Here is an excerpt from the representation of the \f(CW\*(C`bin\-dvipsk\*(C'\fR package,
+with \f(CW\*(C`|\*(C'\fR characters inserted to show the indentation:
.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
-\& |...
+.Vb 19
+\& |name bin\-dvipsk
+\& |category TLCore
+\& |revision 4427
+\& |docfiles size=959434
+\& | texmf/doc/dvips/dvips.html
+\& | ...
+\& |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"
@@ -227,14 +229,14 @@ TeXLive::TLPOBJ has one package wide variable which is \f(CW\*(C`zipdir\*(C'\fR
generated zip files are saved (if not otherwise specified.
.PP
.Vb 1
-\& TeXLive::TLPOBJ\->zipdir("path/to/zip/dir");
+\& 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
+\& $tlpobj\->key
.Ve
.PP
is available, which returns the current value when called without an argument,
@@ -242,24 +244,29 @@ and sets the respective value when called with an argument. For the
TeX Catalogue Data the function
.PP
.Vb 1
-\& $tlpobj\->cataloguedata
+\& $tlpobj\->cataloguedata
.Ve
.PP
returns and takes as argument a hash.
.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.
+.PP
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:
+Arguments and return values for \f(CW\*(C`docfiles\*(C'\fR, \f(CW\*(C`runfiles\*(C'\fR, \f(CW\*(C`srcfiles\*(C'\fR
+are lists.
+.PP
+Arguments and return values for \f(CW\*(C`binfiles\*(C'\fR is a hash with the
+architectures as keys.
+.PP
+The size values are handled with these functions:
.PP
.Vb 4
-\& $tlpobj\->docsize
-\& $tlpobj\->srcsize
-\& $tlpobj\->runsize
-\& $tlpobj\->binsize
+\& $tlpobj\->docsize
+\& $tlpobj\->runsize
+\& $tlpobj\->srcsize
+\& $tlpobj\->binsize("arch1", ...)
.Ve
.PP
which set or get the current value of the respective sizes. Note that also
@@ -271,12 +278,12 @@ 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:
+The constructor \f(CW\*(C`new\*(C'\fR 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" );
+\& $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
@@ -284,89 +291,112 @@ above:
reads a \f(CW\*(C`tlpobj\*(C'\fR file.
.Sp
.Vb 2
-\& $tlpobj = new TLPOBJ;
-\& $tlpobj\->from_file("path/to/the/tlpobj/file");
+\& $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.
+.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
+Returns \f(CW1\fR if it found a \f(CW\*(C`tlpobj\*(C'\fR, otherwise \f(CW0\fR.
.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:
+writes the textual representation of a \f(CW\*(C`TLPOBJ\*(C'\fR object to \f(CW\*(C`stdout\*(C'\fR,
+or the filehandle if given:
.Sp
.Vb 2
-\& $tlpsrc\->writeout;
-\& $tlpsrc\->writeout(\e*FILEHANDLE);
+\& $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)
+debugging function for comparison with \f(CW\*(C`tpm\*(C'\fR/\f(CW\*(C`tlps\*(C'\fR, will go away.
+.ie n .IP """make_zip($type,$instroot[, $destdir[, $zipname]])""" 4
+.el .IP "\f(CWmake_zip($type,$instroot[, $destdir[, $zipname]])\fR" 4
+.IX Item "make_zip($type,$instroot[, $destdir[, $zipname]])"
+creates a container file of the arch \fBindependent\fR files in the \f(CW\*(C`TLPOBJ\*(C'\fR
+in \f(CW$destdir\fR (if not defined then \f(CW\*(C`TLPOBJ\->zipdir\*(C'\fR is used).
+.Sp
+The \f(CW$type\fR variable specifies the type of container to be used.
+Currently only \f(CW\*(C`zip\*(C'\fR or \f(CW\*(C`lzma\*(C'\fR are allowed, and are generating
+zip files and tar.lzma files, respectively.
.Sp
-If the package contains \*(L"binfiles\*(R"; then zip files for
+The file name of the created container file is \f(CW\*(C`$zipname.extension\*(C'\fR,
+where extension is either \f(CW\*(C`.zip\*(C'\fR or \f(CW\*(C`.tar.lzma\*(C'\fR, depending on the
+setting of \f(CW$type\fR. If no \f(CW$zipname\fR is specified the package name
+is used.
+.Sp
+If the package contains \f(CW"binfiles"\fR, then container files for
all archs containing \fBonly\fR the binfiles are created, and
-the zipfile name is \f(CW\*(C`$zipname.$arch.zip\*(C'\fR
+those container files name is \f(CW\*(C`$zipname.$arch.$extension\*(C'\fR
+.Sp
+All the arch independent zip files \fBalso\fR contain the respective
+\&\f(CW\*(C`TLPOBJ\*(C'\fR file in \f(CW\*(C`tlpkg/tlpobj/$name.tlpobj\*(C'\fR so \f(CW\*(C`$zipname.$extension\*(C'\fR does
+contain this tlpobj file, while \f(CW\*(C`$zipname.$arch.$extension\*(C'\fR does \s-1NOT\s0.
.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)"
+The argument \f(CW$instroot\fR specifies the root of the installation from
+which the files should be taken.
+.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)"
+.ie n .IP """recompute_revision($tltree [, $revtlpsrc ])""" 4
+.el .IP "\f(CWrecompute_revision($tltree [, $revtlpsrc ])\fR" 4
+.IX Item "recompute_revision($tltree [, $revtlpsrc ])"
recomputes the revision based on the information present in \f(CW$tltree\fR.
-.ie n .IP """update_from_catalogue ($texcatalogue)""" 4
-.el .IP "\f(CWupdate_from_catalogue ($texcatalogue)\fR" 4
-.IX Item "update_from_catalogue ($texcatalogue)"
+The optional argument \f(CW$rectlpsrc\fR can be an additional revision number
+which is taken into account. \f(CW\*(C`$tlpsrc\-\*(C'\fRmake_tlpobj> adds the revision
+number of the \f(CW\*(C`tlpsrc\*(C'\fR file here so that collections (which do not
+contain files) also have revision number.
+.ie n .IP """update_from_catalogue($texcatalogue)""" 4
+.el .IP "\f(CWupdate_from_catalogue($texcatalogue)\fR" 4
+.IX Item "update_from_catalogue($texcatalogue)"
adds information from a \f(CW\*(C`TeXCatalogue\*(C'\fR object
(currently license, version, url, and updates docfiles with details and
-languages tags if present in the Catalogue)
+languages tags if present in the Catalogue).
.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.
+returns \f(CW1\fR if there are \f(CW\*(C`binfiles\*(C'\fR, otherwise \f(CW0\fR.
.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
+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)"
+If arguments are given, they are assumed to be architecture names, and
+it returns the above plus the sum of sizes of \f(CW\*(C`binsize\*(C'\fR for those
+architectures.
+.ie n .IP """is_meta_package""" 4
+.el .IP "\f(CWis_meta_package\fR" 4
+.IX Item "is_meta_package"
+Returns true if the package is a meta package as defined in TLConfig
+(Currently Collection and Scheme).
+.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).
+.ie n .IP """all_files""" 4
+.el .IP "\f(CWall_files\fR" 4
+.IX Item "all_files"
+returns a list of all files of all types.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
-The modules TeXLive::TLUtils, TeXLive::TLPSRC,
+The modules TeXLive::TLConfig, TeXLive::TLUtils, TeXLive::TLPSRC,
TeXLive::TLPDB, TeXLive::TLTREE, TeXLive::TeXCatalogue.
.SH "AUTHORS AND COPYRIGHT"
.IX Header "AUTHORS AND COPYRIGHT"