diff options
-rw-r--r-- | Master/tlpkg/TeXLive/TLPOBJ.pm | 177 | ||||
-rw-r--r-- | Master/tlpkg/TeXLive/TLPSRC.pm | 147 |
2 files changed, 174 insertions, 150 deletions
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm index cefbeab1a0c..40f4e5f2d27 100644 --- a/Master/tlpkg/TeXLive/TLPOBJ.pm +++ b/Master/tlpkg/TeXLive/TLPOBJ.pm @@ -78,11 +78,11 @@ sub from_fh { } if ($line =~ /^ /) { if ( ($lastcmd eq "longdesc") || - ($lastcmd eq "runfiles") || - ($lastcmd eq "binfiles") || - ($lastcmd eq "docfiles") || - ($lastcmd eq "srcfiles") || - ($lastcmd eq "executes") || + ($lastcmd eq "runfiles") || + ($lastcmd eq "binfiles") || + ($lastcmd eq "docfiles") || + ($lastcmd eq "srcfiles") || + ($lastcmd eq "executes") || ($lastcmd eq "depend") ) { $line =~ s/^ /${lastcmd}continued /; } else { @@ -709,13 +709,13 @@ __END__ =head1 NAME -TeXLive::TLPOBJ - TeX Live Package Object access module +C<TeXLive::TLPOBJ> -- TeX Live Package Object access module =head1 SYNOPSIS - use TeXLive::TLPOBJ; + use TeXLive::TLPOBJ; - my $tlpobj = TeXLive::TLPOBJ->new( name => "foobar" ); + my $tlpobj=TeXLive::TLPOBJ->new(name => "foobar"); =head1 DESCRIPTION @@ -742,33 +742,35 @@ I<indented> by one space. They differ only in the first line itself each of these items contains addition the sum of sizes of the single files (currently in bytes). - srcfiles size=NNNNNN - runfiles size=NNNNNN + srcfiles size=NNNNNN + runfiles size=NNNNNN =item C<docfiles> + The docfiles line itself is similar to the C<srcfiles> and C<runfiles> lines above: - docfiles size=NNNNNN + docfiles size=NNNNNN But the lines listing the files are allowed to have additional tags: - /------- 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" + |... Currently only the tags C<details> and C<language> are allowed. =item C<binfiles> -Since C<binfiles> are different for the different architectures one C<tlpobj> -file can contain C<binfiles> 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 +Since C<binfiles> are different for the different architectures one +C<tlpobj> file can contain C<binfiles> lines for different +architectures. The architecture is specified on the C<binfiles> using +the C<arch=>I<XXX> tag. Thus, C<binfiles> lines look like + + binfiles arch=XXXX size=NNNNN =back @@ -780,39 +782,39 @@ with C<|> characters inserted to show the indentation: |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 - |... + | ... + |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"); + TeXLive::TLPOBJ->zipdir("path/to/zip/dir"); =head1 MEMBER ACCESS FUNCTIONS For any of the I<keys> a function - $tlpobj->key + $tlpobj->key is available, which returns the current value when called without an argument, and sets the respective value when called with an argument. For the TeX Catalogue Data the function - $tlpobj->cataloguedata + $tlpobj->cataloguedata returns and takes as argument a hash. @@ -825,10 +827,10 @@ architectures as keys. The size values are handled with these functions: - $tlpobj->docsize - $tlpobj->runsize - $tlpobj->srcsize - $tlpobj->binsize("arch1", ...) + $tlpobj->docsize + $tlpobj->runsize + $tlpobj->srcsize + $tlpobj->binsize("arch1", ...) 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 @@ -841,67 +843,76 @@ 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" ); +The constructor C<new> 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"); + $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. +=item C<from_fh($filehandle[, $multi])> -Returns 1 if it found a tlpobj, otherwise 0 +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 C<1> if it found a C<tlpobj>, otherwise C<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); +writes the textual representation of a C<TLPOBJ> object to C<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) +debugging function for comparison with C<tpm>/C<tlps>, will go away. + +=item C<make_zip($tltree[, $destdir[, $zipname]])> + +creates a zip 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 "binfiles"; then zip files for +If the package contains C<"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. +All the arch independent zip files B<also> contain the respective +C<TLPOBJ> file in C<.tlpobj/$name.tlpobj> so C<$zipname.zip> does +contain this tlpobj file, while C<$zipname.$arch.zip> does NOT. + +=item C<recompute_sizes($tltree)> -=item C<recompute_sizes ($tltree)> recomputes the sizes based on the information present in C<$tltree>. -=item C<recompute_revision ($tltree)> +=item C<recompute_revision($tltree)> + recomputes the revision based on the information present in C<$tltree>. -=item C<update_from_catalogue ($texcatalogue)> +=item C<update_from_catalogue($texcatalogue)> + adds information from a C<TeXCatalogue> 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). =item C<is_arch_dependent> -returns 1 if there are C<binfiles>, otherwise 0. + +returns C<1> if there are C<binfiles>, otherwise C<0>. =item C<total_size> + If no argument is given returns the sum of C<srcsize>, C<docsize>, C<runsize>. @@ -909,16 +920,20 @@ If arguments are given, they are assumed to be architecture names, and it returns the above plus the sum of sizes of C<binsize> for those architectures. -=item C<{add,remove}_{src,run,doc}files ( @files )> -adds or removes files to the respective list of files +=item C<{add,remove}_{src,run,doc}files(@files)> -=item C<{add,remove}_binfiles ($arch, @files)> -adds or removes files from the list of C<binfiles> for the given architecture +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)> -=item C<{add,remove}_files ($type, $files)> adds or removes files for the given type (only for C<run>, C<src>, C<doc>). =item C<all_files> + returns a list of all files of all types. =back diff --git a/Master/tlpkg/TeXLive/TLPSRC.pm b/Master/tlpkg/TeXLive/TLPSRC.pm index 71f5263c286..22c0d077b08 100644 --- a/Master/tlpkg/TeXLive/TLPSRC.pm +++ b/Master/tlpkg/TeXLive/TLPSRC.pm @@ -409,27 +409,27 @@ __END__ =head1 NAME -TeXLive::TLPSRC - TeX Live Package Source access module +C<TeXLive::TLPSRC> -- TeX Live Package Source access module =head1 SYNOPSIS - use TeXLive::TLPSRC; + use TeXLive::TLPSRC; - my $tlpsrc = TeXLive::TLPSRC->new( name => "foobar" ); - $tlpsrc->from_file("/some/tlpsrc/package.tlpsrc"); - $tlpsrc->from_file("package"); - $tlpsrc->writeout; - $tlpsrc->writeout(\*FILEHANDLE); + my $tlpsrc = TeXLive::TLPSRC->new(name => "foobar"); + $tlpsrc->from_file("/some/tlpsrc/package.tlpsrc"); + $tlpsrc->from_file("package"); + $tlpsrc->writeout; + $tlpsrc->writeout(\*FILEHANDLE); =head1 DESCRIPTION -The L<TeXLive::TLPSRC> module provide access to TeX Live Package Source +The C<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. =head1 FILE SPECIFICATION -A L<tlpsrc> file has to consist of non-empty lines (except that initial +A C<tlpsrc> file has to consist of non-empty lines (except that initial and final empty lines are ignored) of the form I<key value> @@ -440,11 +440,11 @@ C<execute>, or C<depend>. The interpretation of the respective I<values> are: -=over +=over 6 =item C<name> -identifies the package, C<value> must consist only of [-_a-zA-Z0-9] +identifies the package, C<value> must consist only of C<[-_a-zA-Z0-9]>. =item C<category> @@ -461,8 +461,9 @@ package can be found in the TeX Catalogue. =item C<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. +gives a one line description of the package. Subsequent entries will +overwrite the former ones. In TeX Live only used for collections and +schemes. =item C<longdesc> @@ -484,28 +485,29 @@ the following possible values are understood by the installers: =over 6 -=item C<execute addMap I<font.map>> +=item C<execute addMap> I<font>C<.map> -enables the font map file I<font.map> in the F<updmap.cfg> file. +enables the font map file I<font>C<.map> in the C<updmap.cfg> file. -=item C<execute addMixedMap I<font.map>> +=item C<execute addMixedMap> I<font>C<.map> -enables the font map file I<font.map>> for Mixed mode in the F<updmap.cfg> file. +enables the font map file I<font>C<.map> for Mixed mode in the +C<updmap.cfg> file. =item C<execute BuildLanguageDat NN> activates all the hyphenation patterns found in -F<Master/texmf/tex/generic/config/language.NN.dat> in the generated -F<language.dat> file. +C<Master/texmf/tex/generic/config/language.NN.dat> in the generated +C<language.dat> file. =item C<execute BuildFormat FMTCFG> -activates all the formats present in F<Master/texmf/fmtutil/format.FMTCFG.cnf> -in the generated F<fmtutil.cnf> file. +activates all the formats present in C<Master/texmf/fmtutil/format.FMTCFG.cnf> +in the generated C<fmtutil.cnf> file. =back -=item C<(src|run|doc|bin)pattern I<pattern>> +=item C<(src|run|doc|bin)pattern> I<pattern> adds a pattern (see below) to the respective list of patterns. @@ -516,37 +518,38 @@ adds a pattern (see below) to the respective list of patterns. Patterns specify which files are to be included into a C<tlpobj> at expansion time. Patterns are of the form - [PREFIX]TYPE PAT + [PREFIX]TYPE PAT where - PREFIX = + | +! | ! - TYPE = t | f | d | r + PREFIX = + | +! | ! + TYPE = t | f | d | r The meaning of the various pattern types is =over -=item C<f path> +=item C<f >I<path> -includes all files which match C<path> where B<only> the last component -of C<path> can contain the usual glob characters * and ? (but no others!). +includes all files which match C<path> where B<only> the last +component of C<path> can contain the usual glob characters C<*> and +C<?> (but no others!). -=item C<d path> +=item C<d >I<path> includes all the files in and below the directory specified as C<path>. -=item C<t word1 ... wordN worldL> +=item C<t >I<word1 ... wordN worldL> includes all the files in and below all directories of the form - word1/word2/.../wordN/.../any/dirs/.../wordL/ + word1/word2/.../wordN/.../any/dirs/.../wordL/ 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 C<wordL> as another directory. -=item C<r regexp> +=item C<r> I<regexp> includes all files matching the regexp C</^regexp$/> @@ -557,73 +560,75 @@ patterns have the prefix C<+> (e.g., C<+f ...>), then the following patterns are B<automatically> added at expansion time (but never written to the textual representation): -=over +=over 6 -=item runpattern +=item C<runpattern> for runpatterns of category C<Package> - t texmf-dist topdir $name + t texmf-dist topdir $name -where C<topdir> is one of: bibtex context dvips fonts makeindex metafont -metapost mft omega scripts tex vtex. +where C<topdir> is one of: C<bibtex>, C<context>, C<dvips>, C<fonts>, +C<makeindex>, C<metafont>, C<metapost>, C<mft>, C<omega>, C<scripts>, +C<tex>, C<vtex>. For other categories B<no> patterns are automatically added to the list of runpatterns. -=item docpattern +=item C<docpattern> -for docpattern of category C<Package> +for C<docpattern> of category C<Package> - t texmf-dist doc $name + t texmf-dist doc $name -for docpattern of category C<Documentation> +for C<docpattern> of category C<Documentation> - t texmf-doc doc $name + t texmf-doc doc $name -=item srcpattern +=item C<srcpattern> -for srcpattern of category C<Package> +for C<srcpattern> of category C<Package> - t texmf-dist source $name + t texmf-dist source $name -for srcpattern of category C<Documentation> +for C<srcpattern> of category C<Documentation> - t texmf-doc source $name + t texmf-doc source $name =back binpatterns are never automatically added. -If the C<PREFIX> contains the symbol ! the meaning of the pattern is +If the C<PREFIX> contains the symbol C<!> the meaning of the pattern is reversed, i.e., file matching this pattern are removed from the list of included files. =head2 arch expansion -In case the string C<${ARCH}> occurs in one C<binpattern> it is +In case the string C<${>I<ARCH>C<}> occurs in one C<binpattern> it is automatically expanded to the respective architecture. -=head2 bat/exe/dll for win32 +=head2 C<bat/exe/dll> for win32 -For C<binpatterns> of the form C<f bin/win32/foobar> (i.e., also for a -binpattern of the form C<f bin/${ARCH}/foobar>) files F<foobar.bat>, -F<foobar.dll>, and F<foobar.exe> are also matched. +For C<binpattern>s of the form C<f bin/win32/foobar> (i.e., also for a +binpattern of the form C<f bin/${ARCH}/foobar>) files C<foobar.bat>, +C<foobar.dll>, and C<foobar.exe> are also matched. -The above two properties allows to capture the binaries for all architectures -in one binpattern +The above two properties allows to capture the binaries for all +architectures in one binpattern - binpattern f bin/${ARCH}/dvips + binpattern f bin/${ARCH}/dvips -and would get F<bin/win32/dvips.exe> into the runfiles for arch=win32. +and would get C<bin/win32/dvips.exe> into the runfiles for C<arch=win32>. -Note that the bat/exe expansion B<only> works for patterns of the C<f> type! +Note that the C<bat>/C<exe> expansion B<only> works for patterns of +the C<f> type! =head1 MEMBER ACCESS FUNCTIONS For any of the above I<keys> a function - $tlpsrc->key + $tlpsrc->key is available, which returns the current value when called without an argument, and sets the respective value when called with an argument. @@ -642,33 +647,37 @@ The following functions can be called for an C<TLPSRC> 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: - $tlpsrc = TLPSRC->new ( name => "foobar", shortdesc => "The foobar package" ); +The constructor C<new> 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: + + $tlpsrc=TLPSRC->new(name => "foobar", shortdesc => "The foobar package"); =item C<from_file("filename")> + reads a C<tlpsrc> file from disk. C<filename> can either be a full path (if it's readable, it's used), or just a package identifier such as C<plain>. In the latter case, the directory searched is the C<tlpsrc> sibling of the C<TeXLive> package directory where C<TLPSRC.pm> was found. - $tlpsrc = new TeXLive::TLPSRC; - $tlpsrc->from_file("/path/to/the/tlpsrc/somepkg.tlpsrc"); - $tlpsrc->from_file("somepkg"); + $tlpsrc=new TeXLive::TLPSRC; + $tlpsrc->from_file("/path/to/the/tlpsrc/somepkg.tlpsrc"); + $tlpsrc->from_file("somepkg"); =item C<writeout> + writes the textual representation of a C<TLPSRC> object to stdout, or the filehandle if given: - $tlpsrc->writeout; - $tlpsrc->writeout(\*FILEHANDLE); + $tlpsrc->writeout; + $tlpsrc->writeout(\*FILEHANDLE); =item C<make_tlpobj($tltree)> + creates a C<TLPOBJ> object from a C<TLPSRC> object and a C<TLTREE> object. This function does the necessary work to expand the manual data and -enrich it which the actual content from <$tltree> to a C<TLPOBJ> object. +enrich it which the actual content from C<$tltree> to a C<TLPOBJ> object. =back |