diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/tlpkg/TeXLive/TLPOBJ.pm | 213 | ||||
-rw-r--r-- | Master/tlpkg/TeXLive/TLPSRC.pm | 2 | ||||
-rw-r--r-- | Master/tlpkg/man/TeXLive::TLPOBJ.1 | 339 | ||||
-rw-r--r-- | Master/tlpkg/man/TeXLive::TLPSRC.1 | 383 |
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. |