summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-01-01 01:55:30 +0000
committerKarl Berry <karl@freefriends.org>2009-01-01 01:55:30 +0000
commitbd36ab79b831cabded89ff0328c7c0e410872997 (patch)
treeb152de091ec0fe4e689110136143d6187d266c39 /Master/tlpkg/bin
parenta477b52f73704eea5cc4af4652969b00329cbfa6 (diff)
move place and ctan2tds to libexec, since they should never be called directly in the current world
git-svn-id: svn://tug.org/texlive/trunk@11774 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin')
-rwxr-xr-xMaster/tlpkg/bin/ctan2tds3658
-rwxr-xr-xMaster/tlpkg/bin/ctan2tl5
-rwxr-xr-xMaster/tlpkg/bin/place301
3 files changed, 3 insertions, 3961 deletions
diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds
deleted file mode 100755
index 30651acf2b4..00000000000
--- a/Master/tlpkg/bin/ctan2tds
+++ /dev/null
@@ -1,3658 +0,0 @@
-#!/usr/bin/env perl
-# $Id$
-# Public domain.
-# Originally written by Sebastian Rahtz. Comments to tex-live@tug.org.
-#
-# A script to TL-install a package from CTAN.
-# For a higher-level invocation, see ctan2tl.
-#
-# Its default actions, given a "raw" directory copied from CTAN (the
-# current directory on invocation), are
-# 1. copy everything to texmf-dist/doc/<format>/<package>
-# 2. run any .ins files
-# 3. run any .mf files through mktextfm
-# 4. move .sty/.cls etc files to texmf-dist/tex/<format>/<package>
-# 5. move other files to appropriate places in the hierarchy.
-#
-# All the patterns for what to move or run can be overridden per-package.
-
-use English;
-use Getopt::Long;
-use File::Basename;
-use Cwd;
-
-# programs used; must all be on the path
-$MV = "mv";
-$CP = "cp -p";
-$RM = "rm -vf"; # just to get feedback from GNU rm on removals
-$INSTALL = "install -D";
-
-$| = 1;
-select ((select (STDERR), $| = 1)[0]);
-
-$startdir = getcwd(); # where we start from (raw dir)
-chdir "../tmp.cooked" || die "chdir(../tmp.cooked) failed: $!";
-$TDS = getcwd(); # locate destination dir
-chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw
-
-#
-# packages to treat entirely on their own, or not at all.
-# the code here is evaluated by Perl, so special packages
-# can have their own subroutine.
-#
-%special = (
- 'Catalogue', "&MAKECatalogue",
- 'FAQ-en', "&MAKEFAQen",
- 'HA-prosper', '&MAKEhaprosper',
- 'IEEEtran', "&MAKEIEEEtran",
- 'LingTrees', "die 'skipping, requires python'",
- 'SIstyle', '&MAKEflatten',
- 'a4', "die 'skipping, just a pointer to ntgclass'",
- 'aastex', "&MAKEflatten",
- 'aeb_pro', "die 'skipping, requires new acrobat + complicated'",
- 'amscls', "die 'skipping, ams situation confused'",
- 'arabxetex', '&MAKEflatten',
- 'ae', "&MAKEae",
- 'AkkTeX', "&MAKEflatten",
- 'algorithmicx',"&MAKEnosymlinks",
- 'allrunes', "&MAKEflatten",
- 'alphabib', "die 'skipping, shell script, and no doc source?'",
- 'ams', "die 'skipping, update manually to preserve ams fonts'",
- 'amsldoc-vn', "&MAKEflatten",
- 'analogclock', "die 'skipping, requires system font installation",
- 'antomega', "&MAKEflatten",
- 'antt', "&MAKEcopy",
- #'antp', "&MAKEflatten", # not sure about config.antp yet
- 'apacite', "&MAKEflatten",
- 'arabi', "&MAKEarabi",
- 'arabtex', "&MAKEarabtex",
- 'archaic', "&MAKEwilson",
- 'arphic', "&MAKEarphic",
- 'arev', "&MAKEcopy",
- 'ascii', "&MAKEflatten",
- 'astron', "die 'skipping, nonfree license'",
- 'augie', "&MAKEaugie",
- 'aurical', "&MAKEaurical",
- 'aurora', "die 'skipping, nocommercial license'",
- 'bangtex', "&MAKEflatten",
- 'bardiag', "&MAKEbardiag",
-# bbm is split into bbm (fonts) and bbm-macros (macros)
-# 'bbm', "&MAKEbbm",
- 'beamer', "&MAKEbeamer",
- 'beamer-contrib',"&MAKEflatten",
- 'beebe', "die 'skipping, MAKEbeebe needs work, sorry'",
- 'bengali', '&MAKEflatten',
- 'bengali-omega', "die 'skipping, duplicates odev.sty et al.'",
- 'bera', "&MAKEunzipandflatten",
- 'biblatex', "die 'skipping, still experimental'",
- 'biblatex-dw', "die 'skipping, depends on experimental biblatex'",
- 'biblatex-mla',"die 'skipping, depends on experimental biblatex'",
- 'bibtopicprefix', "&MAKEflatten",
- 'bin-cjkutils',"&MAKEbin_cjkutils",
- 'bitfield', "die 'skipping, obsolete on CTAN'",
- 'blanks', "die 'skipping, unknown license (and c.1992)'",
- 'blockdraw_mp',"&MAKEflatten",
- 'bnf-plain', "die 'skipping, unknown license (and c.1992)'",
- 'bookhands', "&MAKEwilson",
- 'borceux', "&MAKEborceux",
- 'burmese', "&MAKEflatten",
- 'c90', "&MAKEc90",
- 'calendar', "die 'skipping, nosell license'",
- 'camel', "die 'skipping, nosell license'",
- 'cbfonts', "&MAKEflatten",
- 'cbcoptic', "&MAKEcbcoptic",
- 'cellular', "die 'skipping, license noinfo, author deceased'",
- 'cfr-lm', "die 'skipping, experimental per author'",
- 'changebar', "&MAKEchangebar",
- #'chemarrow', "&MAKEflatten", # check about Arrow.vfb
- 'chemsym', "die 'skipping, nonfree'",
- 'cheq', "die 'skipping, nosell license'",
- 'china2e', "die 'skipping, nosell license'",
- 'circuit_macros', "die 'skipping, needs m4'",
- 'cirth', "die 'skipping, nosell license'",
- 'cjhebrew', "&MAKEflatten",
- 'cjk', "&MAKEcjk",
- 'clock', "&MAKEflatten",
- 'cm-lgc', '&MAKEcmlgc',
- 'cm-super', "&MAKEflatten",
- 'cmastro', "die 'skipping, noinfo license, author unknown'",
- 'cmbright', "&MAKEflatten",
- 'cmcyr', "&MAKEflatten",
- 'cmll', "&MAKEflatten",
- 'colortab', "die 'skipping, nosell license'",
- 'comicsans', "die 'skipping, Comic Sans is nonfree'",
- 'concmath', "&MAKEconcmath",
- 'context', "&MAKEcontext",
- 'context-account', "&MAKEcopy",
- 'context-bnf', "&MAKEcopy",
- 'context-chromato', "&MAKEcopy",
- 'context-construction-plan', "&MAKEcopy",
- 'context-degrade', "&MAKEcopy",
- 'context-french', "&MAKEcopy",
- 'context-gnuplot', "&MAKEcopy",
- 'context-letter', "&MAKEcopy",
- 'context-lettrine', "&MAKEcopy",
- 'context-lilypond', "&MAKEcopy",
- 'context-mathsets', "&MAKEcopy",
- 'context-taspresent',"&MAKEcopy",
- 'context-typearea', "&MAKEcopy",
- 'context-vim', "&MAKEcopy",
- 'coptic', "die 'skipping, it has been replaced by cbcoptic'",
- 'corridx', "die 'skipping, Pascal source'",
- 'csplain', "die 'skipping, too hard to automate'",
- 'csvtools', "&MAKEflatten",
- 'ctable', "&MAKEflatten",
- 'ctib', "&MAKEflatten",
- 'cweb', "die 'skipping, programs'",
- 'cyklop', "&MAKEcopy",
- 'deleq', "die 'skipping, nosell license'",
- 'deproc', "die 'skipping, for latex 2.09'",
- 'devanagr', "&MAKEdevanagr",
- 'diagnose', "&MAKEflatten",
- 'dictsym', "&MAKEunzipandflatten",
- 'disser', "&MAKEdisser",
- 'dmfonts', "die 'skipping, needs work'",
- 'dnp', "&MAKEdnp",
- 'dogma', "die 'skipping, requires nonfree font'",
- 'dot2tex', "die 'skipping, only useful with supporting programs'",
- 'dot2texi', "die 'skipping, only useful with supporting programs'",
- 'dps', "die 'skipping, requires acrotex'",
- 'dropping', "die 'skipping, nosell license'",
- 'dtk', "&MAKEflatten",
- 'dtxtut', "&setup", # straight copy
- 'easy', "&MAKEeasy",
- 'ean13isbn', "&MAKEcopy",
- 'ebib', "die 'skipping, as it is Emacs'",
- 'ebong', "&MAKEebong",
- 'ecc', "&MAKEflatten",
- 'eco', "&MAKEeco",
- 'edmac', "die 'skipping, needs work (unzip xx)'",
- 'ednotes', "&MAKEnosymlinks",
- 'elhyphen', "die 'incorporated in hyph-utf8'",
- 'encxvlna', "&MAKEcopy",
- 'enpassant', "die 'skipping, license unknown'",
- 'epic', "die 'skipping, license unknown and replaced by eepic'",
- 'epigrafica', "&MAKEflatten",
- 'epiolmec', "&MAKEflatten",
- 'epix', "die 'skipping, needs C++'",
- 'eplain', "&MAKEcopy",
- 'epstopdf', "die 'skipping, needs .pl vs. noext + man help, sorry'",
- 'eqnarray', "die 'skipping, nonfree'",
- 'esindex', "die 'skipping, use bezos instead'",
- 'eskdx', "&MAKEeskdx",
- 'esvect', "&MAKEflatten",
- 'ethiop', "&MAKEflatten",
- 'euclide', "&MAKEpst",
- 'eulervm', "&MAKEcopy",
- 'eurosym', "&MAKEflatten",
- #'euenc', "&MAKEflatten",
- 'expressgx', "&MAKEexpressg",
- 'fancyvrb', "&MAKEfancyvrb",
- 'faq-fr', "die 'skipping, nonfree'",
- 'fax', "die 'skipping, nosell license'",
- 'fc', "&MAKEflatten",
- 'featpost', "&MAKEfeatpost",
- 'feynmf', "&MAKEfeynmf",
- 'floatflt', "die 'skipping, nosell license'",
- 'foiltex', "die 'skipping, nosell license'",
- 'flowfram', "&MAKEflatten",
- 'fontinst', "&MAKEfontinst",
- 'footnpag', "&MAKEfootnpag",
- 'fourier', "&MAKEflatten",
- 'fouriernc', "&MAKEflatten",
- 'fp', "&MAKEfp",
- 'fpl', "&MAKEflatten",
- 'frcursive', "&MAKEflatten",
- 'futhark', "die 'skipping, nonfree license'",
- 'futurans', "die 'skipping, requires nonfree font'",
- 'galley', "die 'skipping, will be included in xpackages later'",
- 'garuda-c90', "&MAKEgaruda_c90",
- 'gene', "die 'skipping, complicated, some have sources, sorry'",
- 'genmisc', "die 'too complicated, sorry'",
- 'germbib', "&MAKEgermbib",
- 'gfsartemisia',"&MAKEflatten",
- 'gfsbaskerville',"&MAKEflatten",
- 'gfsbodoni', "&MAKEflatten",
- 'gfsdidot', "&MAKEflatten",
- 'gfscomplutum',"&MAKEflatten",
- 'gfsneohellenic', "&MAKEflatten",
- 'gfsporson', "&MAKEflatten",
- 'gfssolomos', "&MAKEflatten",
- 'glhyph', "die 'merged into hyph-utf8'",
- 'graphicxsp', "die 'skipping, requires adobe distiller'",
- 'grnumalt', "die 'skipping, nonfree'",
- 'grtimes', "die 'skipping, requires nonfree monotype times'",
- 'guitbeamer', "die 'skipping, nonfree'",
- 'hfbright', "&MAKEflatten",
- 'hfoldsty', "&MAKEflatten",
- 'hilowres', "die 'skipping, nonfree'",
- 'hyph-utf8', "&MAKEcopy",
- 'hyphen-german',"die 'skipping, part of hyph-utf8'",
- 'ibycus-babel',"&MAKEibycusbabel",
- 'ibygrk', "&MAKEflatten",
- 'ifacmtg', "die 'skipping, nonfree license'",
- 'indxcite', "die 'skipping, too old, license suboptimal'",
- 'induni-om', "die 'skipping, for omega, use of pua?'",
- 'invoice', "&MAKEflatten",
- 'ipa', "die 'skipping, part of wsuipa'",
- 'iwona', "&MAKEcopy",
- 'jadetex', "&MAKEjadetex",
- 'japanese', "die 'skipping, requires ptex'",
- 'jasthesis', "die 'skipping, license is unknown'",
- 'javadoc', "die 'skipping, requires java and no source'",
- 'jj_game', "die 'skipping, requires acrotex'",
- 'jsclasses', "die 'skipping, requires nonfree ptex/platex'",
- 'kerkis', "&MAKEflatten",
- 'kurier', "&MAKEcopy",
- 'kuvio', "die 'skipping, nonfree license'",
- 'l2a', "die 'skipping, another old detex, requires compilation'",
- 'latex-veryshortguide', "die 'skipping, nosell license'",
- 'latexmp', "&MAKEflatten",
- 'lcircuit', "die 'skipping, license unknown, too old to investigate'",
- 'leawood', "&MAKEflatten",
- 'lettre', "&MAKEflatten",
- 'levy', "die 'skipping, levy not ready, sorry'",
- 'lexitex', "die 'skipping, camel has replaced'",
- 'lfb', "&MAKElfb",
- 'lh', "&MAKEcopy",
- 'libertine', "&MAKEcopy",
- 'lifia-th', "die 'skipping, '",
- 'linearA', "&MAKEflatten",
- 'lineno', "&MAKEnosymlinks",
- 'literat', "&MAKEliterat",
- 'lithuanian', "&MAKEflatten",
- 'lm', "&MAKEcopy",
- 'lms', "die 'skipping, nonfree license'",
- 'lshort-bulgarian', '&MAKElshort',
- 'lshort-chinese', '&MAKElshort',
- 'lshort-english', '&MAKElshort',
- 'lshort-finnish', '&MAKElshort',
- 'lshort-korean', '&MAKElshort',
- 'lshort-portuguese', '&MAKElshort',
- 'lshort-slovenian', '&MAKElshort',
- 'lshort-turkish', '&MAKElshort',
- 'lshort-vietnamese', '&MAKElshort',
- 'ltt', "&MAKEltt",
- 'ltxbase', "&MAKEbase",
- 'ltxmisc', "die 'skipping, too complicated, sorry'",
- 'lxfonts', "&MAKEcopy",
- 'lucida', "&MAKElucida",
- 'magyar', "die 'skipping, conflicts with regular babel'",
- 'makebarcode', "&MAKEcopy",
- 'makecell', "&MAKEnosymlinks",
- 'makedtx', "&MAKEflatten",
- 'makor', "&MAKEbase",
- 'manjutex', "die 'skipping, obsolete on CTAN'", #"&MAKEflatten",
- 'manpage', "die 'skipping, nonfree license'",
- 'mathabx', "&MAKEflatten",
- 'marvosym', "&MAKEnosymlinks",
- 'mathdesign', "&MAKEmathdesign",
- 'mathexam', "&MAKEflatten",
- 'mathmode', "&setup",
- 'mathpazo', "&MAKEmathpazo",
- 'matlab', "die 'skipping, requires nonfree matlab'",
- 'mdwfonts', "die 'skipping, too many tfm duplicates'",
- 'metaobj', "&MAKEflatten",
- 'metauml', "&MAKEmetauml",
- 'mflogo', "&MAKEmflogo",
- 'mfpic', "&MAKEflatten",
- 'minionpro', "die 'skipping, requires nonfree minion'",
- 'misc', "&MAKEmisc",
- 'mkbangtex', "die 'skipping, no copyright (and python)'",
- 'mlbib', "die 'skipping, bib file names are too generic'",
- 'mnhyphn', "&MAKEmnhyphn",
- 'mnsymbol', "&MAKEflatten",
- 'montex', "&MAKEflatten",
- 'morehelp', "die 'skipping, nonfree license'",
- 'morse', "die 'skipping, nosell license'",
- 'movie15', "&MAKEflatten",
- 'mpattern', "&MAKEmpattern",
- 'mpdinbrief', "die 'skipping, nosell license'",
- 'multido', "&MAKEpst",
- 'mwrite', "die 'skipping, nonfree license",
- 'mx' , "die 'skipping, author does not recommend system install'",
- 'mxd', "&MAKEflatten",
- 'mxedruli', "&MAKEflatten",
- 'nbaskerv', "die 'skipping, requires nonfree font'",
- 'ncctools', "&MAKEflatten",
- 'newsletr', "&MAKEnewsletr",
- 'newthm', "die 'skipping, obsolete, no longer on ctan'",
- 'niceframe', "die 'skipping, nosell license'",
- 'nohyph', "die 'skipping, nohyph must be done by hand'",
- 'norasi-c90', "&MAKEnorasi_c90",
- 'notes', "&MAKEnotes",
- 'numline', "die 'skipping, obsolete'",
- 'oca', "die 'skipping, nosell license'",
- 'occam', "die 'skipping, too old and strange'",
- 'ocherokee', "&MAKEflatten",
- 'ocr-a', "die 'skipping, nosell license'",
- 'oesch', "die 'skipping, nosell license'",
- 'ofs', "&MAKEflatten",
- 'omegajapanese',"&MAKEflatten",
- 'osa', "die 'skipping, relies on endfloat.cfg and non-unique filenames'",
- 'ot2cyr', "die 'skipping, nonfree font support",
- 'otibet', "&MAKEflatten",
- 'oxford', "die 'skipping, nosell license'",
- 'pageno', "die 'skipping, nosell license'",
- 'pandora', "&MAKEflatten",
- 'pb-diagram', "&MAKEpbdiagram",
- 'pclnfss', "&MAKEpclnfss",
- 'pdcmac', "die 'skipping, needs work'",
- 'pdf-forms-tutorial', "die 'use pdf-forms-tutorial-de or -en'",
- 'pdf-forms-tutorial-de', "&MAKEpdf_forms_tutorial",
- 'pdf-forms-tutorial-en', "&MAKEpdf_forms_tutorial",
- 'pdfrack', "die 'skipping until someone asks for it'",
- 'pdfx', "&MAKEflatten",
- 'pgf', "&MAKEcopy",
- 'pgfplots', "&MAKEcopy",
- 'phaistos', "&MAKEflatten",
- 'phonetic', "&MAKEphonetic",
- 'pict2e', "&MAKEpict2e",
- 'pictex', "&MAKEpictex",
- 'pigpen', "&MAKEflatten",
- 'pinlabel', "&MAKEnosymlinks",
- 'pl-qx', "&MAKEplqx",
- 'poster', "die 'skipping, nonfree license'",
- 'powerdot', '&MAKEflatten',
- 'prerex', "die 'skipping, needs compilation'",
- 'progkeys', "die 'skipping, noinfo license, author unfindable'",
- 'proofs', "die 'skipping, nosell license'",
- 'prosper', '&MAKEflatten',
- 'ps4pdf', "die 'skipping, obsolete'",
- 'psfig', "die 'skipping, nosell license'",
- 'psfragx', "&MAKEflatten",
- 'pslatex', "&MAKEpslatex",
- 'psnfss', "&MAKEpsnfss",
- 'psnfss-addons', "die 'skipping, ?'",
- 'psnfssx', "&MAKEflatten",
- 'pst-2dplot', "&MAKEpst",
- 'pst-3d', "&MAKEpst",
- 'pst-3dplot', "&MAKEpst",
- 'pst-asr', "&MAKEpst",
- 'pst-bar', "&MAKEpst",
- 'pst-barcode', "&MAKEpst",
- 'pst-blur', "&MAKEpst",
- 'pst-bspline', "&MAKEpst",
- 'pst-circ', "&MAKEpst",
- 'pst-coil', "&MAKEpst",
- 'pst-cox', "&MAKEflatten",
- 'pst-dbicons', "&MAKEpst",
- 'pst-diffraction', "&MAKEpst",
- 'pst-eps', "&MAKEpst",
- 'pst-eucl', "&MAKEpst",
- 'pst-fill', "&MAKEpst",
- 'pst-fr3d', "&MAKEpst",
- 'pst-fractal', "&MAKEpst",
- 'pst-fun', "&MAKEpst",
- 'pst-func', "&MAKEpst",
- 'pst-geo', "&MAKEpstgeo",
- 'pst-ghsb', "&MAKEpst",
- 'pst-gr3d', "&MAKEpst",
- 'pst-grad', "&MAKEpst",
- 'pst-infixplot',"&MAKEpst",
- 'pst-jftree', "&MAKEpst",
- 'pst-jtree', "&MAKEpst",
- 'pst-labo', "&MAKEpst",
- 'pst-lens', "&MAKEpst",
- 'pst-light3d', "&MAKEpst",
- 'pst-math', "&MAKEpst",
- 'pst-optexp', "&MAKEpst",
- 'pst-ob3d', "&MAKEpst",
- 'pst-optic', "&MAKEpst",
- 'pst-osci', "&MAKEpst",
- 'pst-pad', "&MAKEpst",
- 'pst-pdgr', "&MAKEpst",
- 'pst-poly', "&MAKEpst",
- 'pst-qtree', "&MAKEpst",
- 'pst-slpe', "&MAKEpst",
- 'pst-solides3d',"&MAKEpst",
- 'pst-soroban', "&MAKEpst",
- 'pst-spectra', "&MAKEpst",
- 'pst-stru', "&MAKEpst",
- 'pst-text', "&MAKEpst",
- 'pst-uml', "&MAKEpst",
- 'pst-vue3d', "&MAKEpst",
- 'pstricks', "&MAKEpstricks",
- 'pstricks-add',"&MAKEpst",
- 'pxfonts', "&MAKEflatten",
- 'realcalc', "die 'skipping, nosell license'",
- 'references', "die 'skipping, requires binary'",
- 'refstyle', "&MAKEcopy",
- 'revnum', "die 'skipping, obsolete'",
- 'revtex', "&MAKEflatten",
- 'rsfs', "&MAKEflatten",
- 'sae', "die 'skipping, nosell license'",
- 'seminar', "&MAKEseminar",
- 'shipunov', "&MAKEcopy",
- 'shortlst', "die 'skipping, nosell license'",
- 'showexpl', "&MAKEflatten",
- 'siam', "&MAKEsiam",
- 'skak', "&MAKEflatten",
- 'slidenotes', "die 'skipping, nonfree'",
- 'songs', "die 'skipping, requires binary'",
- 'staves', "&MAKEflatten",
- 'stellenbosch',"&MAKEcopy",
- 'stex', "&MAKEflatten",
- 'symbolindex', "die 'skipping, requires binary'",
- 't2', "&MAKEt2",
- 'tamethebeast',"&MAKEtamethebeast",
- 'tamil-omega', "die 'skipping, supports nonfree ISM fonts'", #"&MAKEflatten",
- 'taylor', "die 'skipping, nonfree license'",
- 'template', "die 'already part of xpackages'",
- 'tengwarscript',"&MAKEflatten",
- 'tex-gyre', "&MAKEcopy",
- 'tex-refs', "die 'skipping, needs work'",
- 'texdraw', "&MAKEtexdraw",
- 'texpower', "&MAKEnosymlinks",
- 'texsis', "&MAKEtexsis",
- 'thaifonts-scalable', "die 'Thai, fontforge format only, skip'",
- 'thailatex', "die 'Thai, requires preprocessor (?), skip'",
- 'thsmc', "die 'skipping, requires nonfree font'",
- 'ticket', "&MAKEflatten",
- 'tipa', "&MAKEtipa",
- 'titlepage-uni-dortmund', "die 'needs graphics (too short names) in .'",
- 'tksbrief', "die 'skipping, LaTeX 2.09'",
- 'tpcmfont', "die 'skipping, ?'",
- 'translator', "&MAKEflatten",
- 'turnstile', "&MAKEflatten",
- 'tpx', "die 'skipping, nosource, Windows'",
- 'txfonts', "&MAKEflatten",
- 'ucs', "&MAKEucs",
- 'uebungsblatt',"&MAKEflatten",
- 'ukrhyph', "&MAKEukrhyph",
- 'umrand', "die 'skipping, nonfree'",
- 'unitsdef', "&MAKEflatten",
- 'velthuis', "&MAKEcopy",
- 'venturisadf', "&MAKEcopy",
- 'vhistory', "&MAKEflatten",
- 'vicentino', "die 'skipping, nonfree license'",
- 'voss-de', "&MAKEvossde",
- 'vrsion', "die 'skipping, nonfree license'",
- 'wadalab', "&MAKEwadalab",
- 'wasy2', "&MAKEflatten",
- 'wntamil', "die 'skipping, nonfree license'",
- 'wordcount', "&MAKEwordcount",
- 'xbase', "die 'renamed to xpackages'",
- 'xecjk', "&MAKEcopy",
- 'xecyr', "&MAKEcopy",
- 'xepersian', "&MAKEflatten",
- 'xetex-pstricks',"&MAKEcopy",
- 'xfrac', "die 'skipping, still experimental'", #&MAKEflatten",
- 'xinitials', "die 'will be in xpackages when ready (Morten says)'",
- 'xkeyval', "&MAKExkeyval",
- 'xmltex', "&MAKExmltex",
- 'xor', "die 'will be in xpackages when ready (Morten says)'",
- 'xparse', "die 'already in xpackages'",
- 'xtheorem', "die 'will be in xpackages when ready (Morten says)'",
- 'xymtex', "&MAKExymtex",
- 'xypic', "&MAKExypic",
- 'yi4latex', "die 'skipping, nosell license'",
- 'yplan', "&MAKEnosymlinks",
- 'zefonts', "&MAKEflatten",
- 'zwgetfdate', "&MAKEcopy",
-);
-
-
-%prehook = (
- 'cm-super' => '&PREHOOK_cm_super',
- 'ibygrk' => '&PREHOOK_ibygrk',
- 'wsuipa' => '&PREHOOK_wsuipa',
-);
-
-%specialpostaction = (
- 'bibleref' => '&POSTlatex2html',
- 'context-lilypond' => '&POSTcontext_lilypond',
- 'datetime' => '&POSTlatex2html',
- 'doipubmed' => '&POSTlatex2html',
- 'elsarticle' => '&POSTelsarticle',
- 'fpl' => '&POSTfpl',
- 'glossaries' => '&POSTglossaries',
- 'ibygrk' => '&POSTibygrk',
- 'impatient' => '&POSTimpatient',
- 'interactiveworkbook' => '&POSTinteractiveworkbook',
- 'knuth' => '&POSTknuth',
- 'koma-script' => '&POSTkoma',
- 'latex2man' => '&POSTlatex2man',
- 'libertine' => '&POSTlibertine',
- 'lithuanian' => '&POSTlithuanian',
- 'pgf' => '&POSTpgf',
- 'pst-cox' => '&POSTpstcox',
- 'xecjk' => '&POSTxecjk',
- 'xecyr' => '&POSTxecyr',
- 'xetex-pstricks' => '&POSTxetex_pstricks',
- 'xstring' => '&POSTxstring',
-);
-
-
-$standardsource='\.fdd|\.dtx|\.ins|\.c$|Makefile|configure.*|install-sh|\.drv';
-%specialsource= (
- 'FAQ-en', 'NULL',
- 'ae', '\.mtx|\.etx|\.tex|clean|go|install|makepl',
- 'amsldoc-vn', 'NULL',
- 'apl', ".*", # just get everything, seems simplest
- 'arabxetex', 'NULL', # keep dtx with others, why not
- 'bbold', "$standardsource|fonttabl.sty",
- 'blacklettert1', '\.dtx|\.ins|\.pl|Makefile',
- 'carlisle', '\.dtx|\.ins|ltxtable\.tex',
- 'epsf', 'NULL',
- 'epslatex-fr', 'NULL',
- 'eskdx', 'NULL', # leave makefiles
- 'feynmf', 'feynmf\.pl' . $standardsource,
- 'mff', '\.mfj|\.bat|\.diz',
- 'fpl', 'Add|\.sfd|\.pe|\.ps' . $standardsource,
- 'hyphenex', ".*",
- 'impatient', 'NULL', # doc package
- 'intro-scientific', 'NULL', # doc package
- 'latex2e-help-texinfo','NULL', # doc package
- 'latex2man', 'NULL', # leave Makefile
- 'mpman-ru', 'NULL', # doc package
- 'ot2cyr', '\.afm|\.etx|' . $standardsource,
- 'pdfx', 'rvdtx\.sty|' . $standardsource,
- 'patch', '\.doc',
- 'pgfplots', 'NULL', # keep manual.install.tex in doc/
- 'rcs', 'rcs.el|src|' . $standardsource,
- 'xlop', 'manual.sty|' . $standardsource,
-);
-
-%specialfoundry = (
- 'fc', 'jknappen',
- 'mfpic', 'metafont',
-);
-$standardfoundry='public';
-
-
-%specialdest = (
- 'MemoirChapStyles', 'texmf-doc',
- 'Type1fonts', 'texmf-doc',
- 'a2ping', 'texmf',
- 'amsldoc-it', 'texmf-doc',
- 'amsldoc-vn', 'texmf-doc',
- 'amsthdoc-it', 'texmf-doc',
- 'beamer-tut-pt', 'texmf-doc',
- 'bin-cjkutils', 'texmf',
- 'catalogue', 'texmf-doc',
- 'comprehensive', 'texmf-doc',
- 'cursolatex', 'texmf-doc',
- 'dtxtut', 'texmf-doc',
- 'elhyphen', 'texmf',
- 'epslatex-fr', 'texmf-doc',
- 'es-tex-faq', 'texmf-doc',
- 'free-math-font-survey', 'texmf-doc',
- 'hyphenex', 'texmf-dist',
- 'knuth', 'texmf-doc',
- 'l2picfaq', 'texmf-doc',
- 'l2tabu-english', 'texmf-doc',
- 'lshort-bulgarian', 'texmf-doc',
- 'lshort-english', 'texmf-doc',
- 'lshort-finnish', 'texmf-doc',
- 'lshort-portuguese', 'texmf-doc',
- 'lshort-turkish', 'texmf-doc',
- 'lshort-vietnamese', 'texmf-doc',
- 'lshort-korean', 'texmf-doc',
- 'makingtexwork', 'texmf-doc',
- 'mathmode', 'texmf-doc',
- 'mnhyphn', 'texmf',
- 'ntheorem-vn', 'texmf-doc',
- 'tamethebeast', 'texmf-doc',
- 'tds', 'texmf-doc',
- 'tex-refs', 'texmf-doc',
- 'visualfaq', 'texmf-doc',
- 'voss-de', 'texmf-doc',
- 'xypic-tut-pt', 'texmf-doc',
- 'wp-conv', 'texmf-doc',
- 'xetexref', 'texmf-doc',
-);
-$standarddest = "texmf-dist";
-
-#
-%specialsourcefmt = (
- 'antomega', 'omega',
- 'apl', 'fonts',
- 'arabxetex', 'xelatex',
- 'archaic', 'fonts',
- 'arev', 'fonts',
- 'arrayjob', 'generic',
- 'bidi', 'xelatex',
- 'blacklettert1','fonts',
- 'blockdraw_mp','metapost',
- 'cb', 'fonts',
- 'cirth', 'fonts',
- 'cirth', 'generic',
- 'cjhebrew', 'fonts',
- 'cmpica', 'fonts',
- 'cryst', 'fonts',
- 'dozenal', 'fonts',
- 'eplain', 'eplain',
- 'epsf', 'generic',
- 'eurosym', 'fonts',
- 'expressg', 'metapost',
- 'fc', 'fonts',
- 'feyn', 'fonts',
- 'fge', 'fonts',
- 'fltpoint', 'generic',
- 'fourier', 'fonts',
- 'fouriernc', 'fonts',
- 'fpl', 'fonts',
- 'frcursive', 'fonts',
- 'genmisc', 'generic',
- 'germbib', 'bibtex',
- 'gost', 'bibtex',
- 'greenpoint', 'fonts',
- 'hfoldsty', 'fonts',
- 'hyphenex', 'generic',
- 'jadetex', 'jadetex',
- 'kixfont', 'fonts',
- 'latexmp', 'metapost',
- 'leawood', 'fonts',
- 'lfb', 'fonts',
- 'latexmp', 'metapost',
- 'mathdots', 'generic',
- 'mkjobtexmf', 'generic',
- 'mnhyphn', 'generic',
- 'mfpic', 'generic',
- 'multido', 'generic',
- 'ofs', 'generic',
- 'ot2cyr', 'fonts',
- 'patch', 'generic',
- 'pdcmac', 'plain',
- 'philokalia', 'xelatex',
- 'pictex', 'generic',
- 'pstricks', 'generic',
- 'ruhyphen', 'generic',
- 'skaknew', 'metapost',
- 'splines', 'metapost',
- 't2', 'generic',
- 'trajan', 'fonts',
- 'universa', 'fonts',
- 'variations', 'generic',
- 'velthuis', 'fonts',
- 'wasy2', 'fonts',
- 'xltxtra', 'xelatex',
-);
-$standardsourcefmt='latex';
-
-
-%specialfmt = (
- 'abbr', 'generic',
- 'abstyles', 'generic',
- 'antomega', 'omega',
- 'arabxetex', 'xelatex',
- 'arrayjob', 'generic',
- 'barr', 'generic',
- 'bghyphen', 'generic',
- 'bidi', 'xelatex',
- 'cirth', 'generic',
- 'dehyph-exptl','generic',
- 'dratex', 'generic',
- 'edmac', 'generic',
- 'eijkhout', 'generic',
- 'eplain', 'eplain',
- 'epsf', 'generic',
- 'esint-type1', 'plain',
- 'fenixpar', 'generic',
- 'fltpoint', 'generic',
- 'fontch', 'plain',
- 'genmisc', 'generic',
- 'hyplain', 'plain',
- 'ibygrk', 'generic',
- 'ifxetex', 'generic',
- 'jadetex', 'jadetex',
- 'mathabx', 'generic',
- 'mathdots', 'generic',
- 'metatex', 'plain',
- 'mfpic', 'generic',
- 'midnight', 'generic',
- 'mkpattern', 'plain',
- 'ocherokee', 'lambda',
- 'ofs', 'generic',
- 'passivetex', 'xmltex',
- 'pdcmac', 'plain',
- 'pdf-trans', 'generic',
- 'philokalia', 'xelatex',
- 'pictex', 'generic',
- 'plnfss', 'plain',
- 'pstricks', 'generic',
- 'pst-cox', 'generic',
- 'rsfs', 'plain',
- 'ruhyphen', 'generic',
- 'shapepar', 'generic',
- 'texsis', 'texsis',
- 'tugboat-plain','plain',
- 'variations', 'generic',
- 'vaucanson-g', 'generic',
- 'vertex', 'plain',
- 'wasy2', 'plain',
- 'xetex-def', 'xelatex',
- 'xetexfontinfo','xetex',
- 'xltxtra', 'xelatex',
- 'xmlplay', 'xmltex',
- 'xstring', 'generic',
- 'xunicode', 'xelatex',
-);
-$standardfmt='latex';
-
-
-# packages which need special .tex/.sty files installed
-$standardtex='\.(cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$';
-%specialtex= (
- 'FAQ-en', 'NULL',
- 'abbr', '\.tex',
- 'abstyles', 'apreambl.tex', # not a4c.sty
- 'ae', '\.fd$|\.sty',
- 'apa', '\.apa|\.cls', # not endfloat.cfg
- 'apacite', '\.apc|' . $standardtex,
- 'arabtex', '\.tex|' . $standardtex,
- 'babelbib', '\.bdf|\.sty',
- 'bangtex', 'bangfont\.tex|' . $standardtex,
- 'bardiag', '\.bar|\.sty|\.cfg',
- 'barr', 'diagxy.tex',
- 'base', 'idx.tex|lablst.tex|latexbug.tex|lablst.tex|docstrip.tex|nfssfont.tex|sample2e.tex|small2e.tex|testpage.tex|ltxcheck.tex|\.cfg|\.fd$|\.cls|\.clo|\.ltx|\.sty|\.def|^\.',
- 'bbold', 'bbold.sty|\.fd', # no fonttabl.sty
- 'bclogo', '[^c]\.tex|\.eps|' . $standardtex, # not bclogo-doc.tex
- 'bghyphen', '\.tex',
- 'blockdraw_mp','NULL', # skip .sty's
- 'breqn', '\.sty|\.sym',
- 'calxxxx', 'cal.*\.tex',
- 'captcont', '\.sty|[^c]\.cfg', # omit ltxdoc.cfg, would be system-wide
- 'carlisle', '\.sty|\.ltx',
- 'chemstyle', '\.jdf|' . $standardtex,
- 'cirth', 'num\.tex',
- 'cjw', '\.tex|' . $standardtex,
- 'clock', '\.sty|clock\.tex',
- 'cmap', '\.cmap|' . $standardtex,
- 'codepage', '\.sty|\.tex',
- 'contour', '\.cfg|\.sty|\.cnt',
- 'ctib', '\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$|ctib\.tex',
- 'custbib', '\.mbs|\.tex',
- 'custom-bib', '\.mbs|\.tex',
- 'cyrillic', '\.tex|\.sty|\.fd$|\.def',
- 'dehyph-exptl','de.*\.tex|\.pat',
- 'dialogl', '\.sty|listouti\.tex',
- 'din1505', 'NULL', # no tex files, only natbib.cfg, would be system-wide
- 'disser', '\.rtx|' . $standardtex,
- 'dlfltxb', '\.sty', # no sample.cfg
- 'ean', 'ean[0-9]*\.tex',
- 'easy', 'easy.*\.sty', # no mydoc.sty
- 'ecv', '\.sty|\.cls|\.ldf', # no docstrip.cfg, else system-wide
- 'edmac', 'edmac.tex|edstanza.tex|\.sty',
- 'eijkhout', '\.tex',
- 'epsf', 'epsf.(tex|sty)',
- 'epslatex-fr', 'NULL',
- 'esint-type1', 'esint.tex',
- 'europecv', 'EuropeFlag|europasslogo|\.cls|\.def',
- 'fancytooltips','fancytipmark\..*|' . $standardtex,
- 'fltpoint', '\.sty|\.tex',
- 'fontch', '\.tex',
- 'footnpag', 'footnpag\.sty',
- 'fragments', '\.tex|' . $standardtex,
- 'frankenstein','\.(sto|stq)|' . $standardtex,
- 'genmisc', '\.sty|\.tex',
- 'geometry', '\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$', # not cfg
- 'ginpenc', '\.gie|\.sty',
- 'harvmac', 'mac\.tex',
- 'hfoldsty', '\.sty|\.fd|\.cpa',
- 'hyper', '\.sty|\.hyp',
- 'hyplain', '(hyrules|hy.*plain|hylang)\..*',
- 'ibygrk', 'iby4extr.tex|ibycus4.tex|ibycusps.tex|pssetiby.tex|setiby4.tex|tlgsqq.tex|version4.tex|' . $standardtex,
- 'insbox', 'insbox.tex',
- 'interactiveworkbook', 'NULL', # done in POSTinteractiveworkbook
- 'iso10303', 'a.*tex|b.*tex|e.*tex|stp.*tex|\.sty|\.4ht',
- 'isodate', '\.idf|\.sty',
- 'isodoc', 'iso.*\.sty', # not mystyle.sty, etc.
- 'jadetex', '\.ltx|\.def|\.tex|\.ini|\.sty|\.fd',
- 'karnaugh', 'kvmacros.tex',
- 'kastrup', 'binhex.tex|' . $standardtex,
- 'keystroke', 'keystroke_.*|\.sty',
- 'kuvio', '\.tex|\.sty',
- 'latex-course','NULL', # keep doc together
- 'lettre', '\.ins|\.cls',
- 'manjutex', '\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$|manju.tex',
- 'mathdots', 'mathdots\.tex|' . $standardtex,
- 'metatex', 'metatex.tex',
- 'mff', '\.sty|mf[^f].*\.tex',
- 'mfpic', 'mfpic.tex|mfpic.sty|mfppatch.tex',
- 'midnight', '\.tex',
- 'mathabx', 'mathabx\.(dcl|tex)|' . $standardtex,
- 'mathdots', '\.mld|' . $standardtex,
- 'misc', '\.sty|\.ltx|\.cls',
- 'mkpattern', 'mkpatter.tex',
- 'mpman-ru', 'NULL', # doc package
- 'msg', "-msg\.tex" . $standardtex,
- 'nag', '\.nag|' . $standardtex,
- 'nddiss', '\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$',
- 'notes', '[^s]\.(eps|pdf|png)|' . $standardtex, # not notes.pdf
- 'ntheorem', '\.sty|\.std',
- 'ofs', '^ofs\.tex|ofsdef\.tex|ofs-.*\.tex|\.sty|a.*\.tex|.*fn\.tex',
- 'patch', '\.tex',
- 'pdf-trans', 'pdf-trans.tex',
- 'pdfcprot', '\.cpa|\.sty',
- 'pdfscreen', 'overlay.*pdf|but.*pdf|left.*pdf|right\.pdf|pdfscreen.sty',
- 'pdfslide', '\.jpg|\.sty|\.clo|\.cfg|meta.*\.pdf',
- 'pdfx', '\.xmp$|glyph.*tex|pdfx\.sty',
- 'petri-nets', 'pnets\.tex|pntext\.tex|\.sty|pndraw\.tex|pnversion\.tex|\.sty|pndraw\.tex',
- 'pictex', '\.sty|\.tex',
- 'pigpen', 'pigpen\.tex|' . $standardtex,
- 'plgraph', '\.tex',
- 'plnfss', '\.tex|\.pfd',
- 'powerdot', '\.ps|' . $standardtex,
- 'ppchtex', 'm.*tex|m.*sty',
- 'prosper', '\.ps|\.eps|\.sty|\.cls',
- 'pstricks', 'pst-*\.tex',
- 'pst-bspline', 'pst-bspline\.(tex|sty)',
- 'pst-cox', 'pst-cox(coor|eterp)\.tex',
- 'pst-geo', 'pst-map.*\.tex|pst-map.*\.sty',
- 'pst-infixplot', 'infix-RPN\.tex|pst-infixplot\.tex',
- 'pst-text', 'pst-(char|text)\.(tex|sty)',
- 'qobitree', 'qobitree.tex',
- 'r_und_s', '\.tex|\.sty',
- 'realcalc', 'realcalc.tex',
- 'resumemac', 'resumemac.tex',
- 'revtex', '\.sty|\.cls|\.rtx',
- 'rlepsf', 'rlepsf.tex',
- 'rsfs', 'scrload\.tex|' . $standardtex,
- 'seminar', '\.bug|\.bg2|\.cls|\.sty|2up.tex',
- 'shapepar', '\.sty', # not def
- 'showexpl', '\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$', # not cfg
- 'splitindex', 'splitindex\.tex|' . $standardtex,
- 'spotcolor', 'spotcolor.*\.tex|' . $standardtex,
- 'startex', '\.tex',
- 'subfig', '\.sty|[^c]\.cfg', # omit ltxdoc.cfg, would be system-wide
- 'subfigure', '\.sty|[^c]\.cfg', # omit ltxdoc.cfg, would be system-wide
- 'syntax', 'syntax\.tex',
- 'taylor', 'diagrams.tex',
- 'tex-ewd', 'dotnot.tex',
- 'texsis', '\.txs|TXS.*tex|texsis.tex',
- 'ticket', '\.tdf|' . $standardtex,
- 'tools', '\.cfg|\.sty|\.clo|\.cls|\.def|\.fd$|.?\.tex|^\.tex$',
- 'translator', '\.dict|translator-language-mappings.tex|' . $standardtex,
- 'tugboat-plain','\.cmn|' . $standardtex,
- 'universa', '\.fd|uni\.sty', # not unidoc.sty
- 'variations', '^variations\.tex|' . $standardtex, # not docvariations.tex
- 'varisize', '\.tex',
- 'vaucanson-g', '\.(def|tex)|' . $standardtex,
- 'vertex', 'vertex\.tex|' . $standardtex,
- 'vhistory', '\.sty', # not hyperref.cfg
- 'wasy2', 'wasyfont\.tex',
- 'wordcount', '\.tex',
- 'xepersian', 'xepersian-mathsdigitspec\.tex|' . $standardtex,
- 'xetexfontinfo','\.tex',
- 'xlop', 'xlop\.(tex|sty)', # no manual.sty
- 'xstring', 'xstring\.tex|' . $standardtex,
- 'zefonts', '\.sty|\.fd',
-);
-
-
-%specialdocfmt = (
- 'abbr', 'generic',
- 'abstyles', 'bibtex',
- 'accfonts', 'fonts',
- 'amsldoc-it', 'italian',
- 'amsldoc-vn', 'vietnamese',
- 'amsthdoc-it', 'italian',
- 'antomega', 'omega',
- 'arabxetex', 'xelatex',
- 'archaic', 'fonts',
- 'arev', 'fonts',
- 'arrayjob', 'generic',
- 'astro', 'fonts',
- 'aurical', 'fonts',
- 'automata', 'metapost',
- 'ascii', 'fonts',
- 'barr', 'generic',
- 'bbm', 'fonts',
- 'beamer-tut-pt','portuguese',
- 'bera', 'fonts',
- 'bghyphen', 'generic',
- 'bibhtml', 'bibtex',
- 'bidi', 'xelatex',
- 'blacklettert1','fonts',
- 'cbfonts', 'fonts',
- 'cirth', 'fonts',
- 'cjhebrew', 'fonts',
- 'cm-super', 'fonts',
- 'cmarrows', 'metapost',
- 'cursolatex', 'portuguese',
- 'dehyph-exptl','generic',
- 'devanagr', 'fonts',
- 'dictsym', 'fonts',
- 'dingbat', 'fonts',
- 'dinat', 'bibtex',
- 'doublestroke','fonts',
- 'dozenal', 'fonts',
- 'dratex', 'generic',
- 'economic', 'bibtex',
- 'edmac', 'generic',
- 'elhyphen', 'generic',
- 'elsevier-bib','bibtex',
- 'elvish', 'fonts',
- 'encxvlna', 'generic',
- 'eplain', 'eplain',
- 'epsf', 'generic',
- 'epslatex-fr', 'french',
- 'es-tex-faq', 'spanish',
- 'eurosym', 'fonts',
- 'expressg', 'metapost',
- 'exteps', 'metapost',
- 'fc', 'fonts',
- 'featpost', 'metapost',
- 'fenixpar', 'generic',
- 'feyn', 'fonts',
- 'fge', 'fonts',
- 'fltpoint', 'generic',
- 'fontch', 'plain',
- 'fourier', 'fonts',
- 'fouriernc', 'fonts',
- 'fpl', 'fonts',
- 'frcursive', 'fonts',
- 'genmisc', 'generic',
- 'germbib', 'bibtex',
- 'gost', 'bibtex',
- 'greepoint', 'fonts',
- 'hfoldsty', 'fonts',
- 'hieroglf', 'fonts',
- 'hyplain', 'plain',
- 'ibygrk', 'fonts',
- 'ifxetex', 'generic',
- 'ijqc', 'bibtex',
- 'impatient-fr','french',
- 'iopart-num', 'bibtex',
- 'jadetex', 'jadetex',
- 'kixfont', 'fonts',
- 'l2picfaq', 'german',
- 'l2tabu-it', 'italian',
- 'l2tabu-spanish', 'spanish',
- 'latex2man', 'support',
- 'latexmk', 'support',
- 'latexmp', 'metapost',
- 'leawood', 'fonts',
- 'lfb', 'fonts',
- 'lnotes', 'chinese',
- 'lshort-portuguese', 'portuguese',
- 'lshort-spanish', 'spanish',
- 'marvosym', 'fonts',
- 'mathabx', 'fonts',
- 'mathdots', 'generic',
- 'metatex', 'plain',
- 'metauml', 'metapost',
- 'mfpic', 'generic',
- 'midnight', 'generic',
- 'mkpattern', 'plain',
- 'mkjobtexmf', 'generic',
- 'mpattern', 'metapost',
- 'mpman-ru', 'russian',
- 'ntheorem-vn', 'vietnamese',
- 'ofs', 'generic',
- 'ot2cyr', 'fonts',
- 'pacioli', 'fonts',
- 'pdcmac', 'plain',
- 'pdf-trans', 'generic',
- 'pdfcrop', 'support',
- 'phaistos', 'fonts',
- 'philokalia', 'xelatex',
- 'phonetic', 'fonts',
- 'pictex', 'generic',
- 'plnfss', 'plain',
- 'psfrag-italian', 'italian',
- 'pst-cox', 'generic',
- 'pxfonts', 'fonts',
- 'rsfs', 'fonts',
- 'shapepar', 'generic',
- 'skak', 'latex',
- 'splines', 'metapost',
- 'staves', 'fonts',
- 'tamil-omega', 'omega',
- 'templates-fenn', 'german',
- 'templates-sommer', 'german',
- 'texcount', 'support',
- 'texsis', 'texsis',
- 'textpath', 'metapost',
- 'trajan', 'fonts',
- 'tugboat-plain','plain',
- 'txfonts', 'fonts',
- 'universa', 'fonts',
- 'vancouver', 'bibtex',
- 'variations', 'generic',
- 'vaucanson-g', 'generic',
- 'velthuis', 'generic',
- 'vertex', 'plain',
- 'voss-de', 'german',
- 'wasy2', 'fonts',
- 'wsuipa', 'generic',
- 'xetexfontinfo','xetex',
- 'xltxtra', 'xelatex',
- 'xq', 'fonts',
- 'xstring', 'generic',
- 'xunicode', 'xelatex',
- 'xypic-tut-pt','portuguese',
-);
-$standarddocfmt='latex';
-
-
-# special cases of which .ins files to run; used to remove
-# normal choices, and get the most general.
-%specialins = (
- 'aastex', 'NULL', # everything is pregenerated
- 'base', 'NULL',
- 'bbold', 'bbold.dtx',
- 'blacklettert1','NULL', # don't try to do fontinst
- 'bosisio', '.*\.dtx',
- 'carlisle', '\.ins|ltxtable.tex',
- 'ccfonts', 'ccfonts.ins',
- 'dotseqn', 'dotseqn.dtx',
- 'feynmf', 'feynmf.ins',
- 'floatrow', 'floatrow.ins',
- 'geometry', 'geometry.dtx',
- 'lettre', 'NULL',
- 'localloc', 'localloc.dtx',
- 'makecell', 'makecell.dtx',
- 'namespc', 'namespc.dtx',
- 'paper', 'install',
- 'parrun', 'parrun.ins',
- 'stmaryrd', 'stmaryrd.dtx',
- 'tablists', 'tablists.dtx',
- 'thesis', 'install.01|install.ndx',
- 'turnstile', 'turnstile-en.ins', # skip pt
-);
-$standardins='\.ins';
-
-%specialinsrunner = (
- 'bullcntr', 'latex', # requires interaction
- 'ctable', 'latex', # requires interaction
- 'geometry', 'tex',
- 'polski', 'latex', # requires interaction
- 'psfragx', 'latex', # requires interaction
-);
-$standardinsrunner="latex -interaction=nonstopmode";
-
-%specialmakeindex= (
- 'mpman-ru' => 'NULL', # doc
-);
-$standardmakeindex='\.ist';
-
-
-# needs special TeX program to run the doc.
-%specialTEX = (
- 'arabtex', 'tex',
- 'barr', 'latex',
- 'beamer', 'pdflatex',
- 'bytefield', 'pdflatex',
- 'esint-type1', 'pdftex',
- 'euro-ce', 'tex',
- 'floatrow', 'latex',
- 'genealogy', 'tex',
- 'insbox', 'tex',
- 'iso10303', 'pdflatex',
- 'mfpic', 'tex',
- 'mpattern', 'true', # requires running mpp, but it's not executable and
- # anyway it's just a test file. ignore it.
- 'ofs', 'csplain',
- 'pdfscreen', 'pdflatex',
- 'pdfslide', 'pdflatex',
- 'pl-qx', 'platex',
- 'subfig', 'pdflatex',
- 'texsis', 'tex',
- 'typespec', 'tex',
- 'wasy2', 'tex',
- 'webeq', 'pdflatex',
-);
-
-
-# packages which need special documentation files run
-%oldspecialdvi= (
- 'barcode2', 'eandoc.tex',
- 'bardiag', 'bar.*tex',
- 'base', '.*info.tex|.*guide.*tex|.*news.*tex',
- 'blacklettert1','\.dtx',
- 'calendar', 'demo.*\.tex|calguide\.tex',
- 'carlisle', '\.dtx|ltxtable.tex',
- 'chess', '\.ltx',
- 'circ', '\.dtx',
- 'cirth', 'cirth\.tex',
- 'codepage', 'codepage\.drv',
- 'crop', 'crop.dtx',
- 'ctib', 'ctib4tex.tex',
- 'custbib', '\.dtx',
- 'custom-bib', '\.dtx',
- 'dialogl', 'dia-driv\.tex|codialog\.tex',
- 'directory', '\.tex',
- 'eepic', 'eepic.tex',
- 'ethiop', 'ethiodoc\.tex',
- 'euro', 'euro.dtx',
- 'fancynum', 'examples.tex',
- 'fp', 'example.tex',
- 'frcursive', '.*\.dtx',
- 'gatech-thesis', 'gatech-thesis.tex|jules-verne.tex',
- 'german', 'germdoc\.tex',
- 'insbox', 'demo.tex',
- 'isostds', 'isosty.tex',
- 'jurabib', 'jbtest.tex',
- 'karnaugh', 'kvdoc\.tex',
- 'manjutex', 'manjutex.tex',
- 'mapcodes', 'mapcode\.drv',
- 'mff', 'mffdoc.tex',
- 'minutes', 'Sample.tex',
- 'ofs', 'ofsdoc-e\.tex|ofsdoc\.tex|ofs-slt\.tex',
- 'ogonek', 'togonek\.ltx|\.tex',
- 'othello', 'othello\.tex',
- 'paper', 'paper.drv',
- 'parrun', 'parrun.dtx',
- 'petri-nets', 'pndoc\.tex',
- 'prosper', 'pros.*tex',
- 'pst-3dplot', '.*-e\.tex|doc-.*.tex|pst-3dplot-doc',
- 'pst-bar', '.*-e\.tex|doc-.*.tex|pst-bar-doc.tex',
- 'pst-blur', '.*-e\.tex|doc-.*.tex|pst-blur-doc.tex',
- 'pst-circ', '.*-e\.tex|doc-.*.tex|pst-circ-doc.tex',
- 'pst-fr3d', 'doc-.*.tex|pst-fr3d-doc',
- 'pst-func', '.*-e\.tex|doc-.*.tex|pst-func-doc',
- 'pst-geo', '.*-e\.tex|doc-.*.tex|pst-geo-doc.tex',
- 'pst-ghsb', '.*-e\.tex|doc-.*.tex|pst-ghsb-doc.tex',
- 'pst-gr3d', '.*-e\.tex|doc-.*.tex|pst-gr3d-doc.tex',
- 'pst-jftree', '.*-e\.tex|doc-.*.tex|pst-jftree-doc.tex',
- 'pst-lens', '.*-e\.tex|doc-.*.tex|pst-lens-doc.tex',
- 'pst-light3d', '.*-e\.tex|doc-.*.tex|pst-light3d-doc',
- 'pst-math', '.*-e\.tex|doc-.*.tex|pst-math-doc.tex',
- 'pst-optic', '.*-e\.tex|doc-.*.tex|pst-optic-doc.tex',
- 'pst-osci', '.*-e\.tex|doc-.*.tex|pst-osci-doc.tex',
- 'pst-poly', '.*-e\.tex|doc-.*.tex|pst-poly-doc.tex',
- 'pst-slpe', '.*-e\.tex|doc-.*.tex|pst-slpe-doc.tex',
- 'pst-uml', '.*-e\.tex|doc[-_].*.tex|pst-uml-doc.tex',
- 'pst-vue3d', '.*-e\.tex|doc-.*.tex|pst-vue3d-doc.tex',
- 'qobitree', 'example\.tex',
- 'rcsinfo', 'rcsinfo2html.tex',
- 'refman', 'layout.tex|\.dtx',
- 'soul', 'soul.dtx',
- 'syntax', 'syntax[a-z].*\.tex',
- 'texsis', 'Manual.tex',
- 'textmerg', 'tmexamp[[0-9]\.tex',
- 'thesis', '\.drv',
- 'timing', 'timing.tex',
- 'tipa', 'tipaman\.tex|tipatug\.tex',
- 'tools', '\.dtx',
- 'umrand', 'umrand\.tex',
- 'ulsy', '\.dtx',
- 'velthuis', 'manual.tex',
- 'wasy2', 'wasydoc\.tex',
- 'xymtex', 'xymtx200.tex',
- 'zefonts', 'zefonts.tex',
-);
-
-#$standarddvi='\.tex|\.ltx';
-%specialdvi = ();
-$standarddvi = 'NULL'; # rely on authors/CTAN making pdf's.
-
-
-# packages which need special MetaPost files
-$standardmp = '\.mp$';
-%specialmp = (
- 'automata', 'automata.mp', # skip example.mp
- 'bpolynomial', 'bpolynomial.mp', # skip examples.mp
- 'dviincl', 'fix.*mp', # skip test-bop.mp
- 'epsincl', 'eps.*mp', # skip testincl.mp
- 'feynmp', 'feynmp.mp',
- 'latexmp', 'latexmp.mp',
- 'mpattern', 'mpattern.mp', # don't install test.mp
- 'mpman-ru', 'NULL', # doc package
- 'polski', 'NULL', # no sample-*.mp
- 'semioneside', 'NULL', # don't install figure*.mp
- 'textpath', 'textpath.mp', # don't install textpathfigs.mp
-);
-
-# packages which need special BibTeX styles installed
-%specialcsf= ();
-$standardcsf='\.csf';
-
-$standardbst='\.bst';
-%specialbst= (
- 'umthesis', 'NULL',
-);
-
-# packages which need special BibTeX data files (not) installed.
-$standardbib='\.bib$'; # $ so we don't find README.bibtex in IEEEtran
-%specialbib= (
- 'acmconf', 'NULL',
- 'aguplus', 'NULL',
- 'amsrefs', 'ams.*bib', # not jr.bib
- 'apa', 'NULL',
- 'arsclassica', 'NULL',
- 'babelbib', 'NULL',
- 'classicthesis','NULL',
- 'dehyph-exptl','NULL',
- 'dlfltxb', 'NULL', # don't install doc.
- 'doipubmed', 'NULL',
- 'economic', 'NULL',
- 'eplain', 'NULL',
- 'epslatex-fr', 'NULL',
- 'gcite', 'NULL', # bib is for doc
- 'germbib', 'NULL', # no second xampl.bib, test bibs, etc.
- 'ijqc', 'NULL',
- 'imtekda', 'NULL',
- 'iopart-num', 'NULL',
- 'jurarsp', 'NULL',
- 'mslapa', 'NULL',
- 'munich', 'NULL',
- 'pgfplots', 'NULL', # no manual.bib
- 'pgf-soroban', 'NULL',
- 'pst-labo', 'NULL',
- 'si', 'NULL',
- 'ucthesis', 'NULL',
- 'umthesis', 'NULL',
- 'uwthesis', 'NULL',
-);
-
-# packages which have Metafont sources to run.
-$standardmf='[0-9]\.mf';
-%specialmf= (
- 'astro', 'astrosym.mf',
- 'backgammon', 'bg\.mf',
- 'cherokee', 'cherokee.mf',
- 'circ', 'csybimos\.mf|csycirc\.mf|csydiod\.mf|csyrest\.mf|csywidko\.mf|csysym\.mf|optic\.mf',
- 'cirth', 'cir.*\.mf',
- 'clock', 'clock.mf',
- 'cmcyr', 'NULL', # already made
- 'cmpica', 'cmpic.*\.mf',
- 'dancers', 'dancers\.mf',
- 'dice', 'dice3d\.mf',
- 'dingbat', '\.mf',
- 'eiad', 'e.*10\.mf',
- 'engwar', 'engwar\.mf',
- 'euro-ce', 'eu.*\.mf|ce.*\.mf',
- 'feynmf', 'feynmf\.mf',
- 'greenpoint', 'greenpoint\.mf',
- 'hands', 'hands\.mf',
- 'ibygrk', 'NULL',
- 'ifsym', '\.mf|\.gen',
- 'logic', 'milstd\.mf',
- 'mfpic', 'grafbase\.mf',
- 'morse', 'morse10.mf|morse.def',
- 'ogham', 'ogham\.mf',
- 'skak', 'skak.*[0-9].*\.mf',
- 'tengwar', 'tengwar\.mf',
- 'umrand', 'umrand[ab]\.mf',
- 'xq', 'xq(normal|large)\.mf',
-);
-
-# additional mf files to be installed but not run.
-%specialmfinstall = (
- 'astro' => 'astrosym.(cal|cmn|mac|uni|xtr)',
- 'cmcyr' => '\.mf',
- 'ibygrk' => 'ibycus4\.map', # tex|mf source
-);
-
-# packages which have dvips header files
-$standardpro='\.pro$';
-%specialpro= (
- 'cm-super', 'config.cm-super|cm-super.GS',
- 'dvipsconfig', '.*', # addpsctrl should be in bin, but ...
- 'esint-type1', 'config.esint',
- 'initials', 'config.*',
- 'pspicture', 'pspicture.ps',
- 'zefonts', 'slantcm.cfg',
-);
-
-$standardmap='\.(map|tec)$';
-%specialmap = (
- 'kerntest' => 'NULL', # skip test map file
- 'ibygrk' => 'iby\.map', # not ibycus4.map, which is tex|mf
-);
-$standardmapdest = "fonts/map/dvips";
-%specialmapdest = (
- 'arabxetex' => "fonts/misc/xetex/fontmapping",
- 'xepersian' => "fonts/misc/xetex/fontmapping",
-);
-
-$standardvmap='\.ali$';
-%specialvmap = ();
-
-$standardenc='\.enc';
-%specialenc = ();
-
-$standardafm='\.afm';
-%specialafm = ();
-
-$standardpfm='\.pfm';
-%specialpfm = ();
-
-$standardpfb = '\.pfb|\.inf$';
-%specialpfb = (
- 'dviincl' => 'NULL', # skip 0dviincl.inf, is a README
- 'pigpen' => 'pigpen.pfa',
-);
-
-$standardttf='\.ttf';
-%specialttf= ();
-
-$standardotf='\.otf';
-%specialotf= ();
-
-$standardovf='\.ovf';
-%specialovf= ();
-
-$standardofm='\.ofm';
-%specialofm= ();
-
-$standardovp='\.ovp';
-%specialovp= ( 'psfragx', 'NULL', );
-
-$standardotp='\.otp';
-%specialotp= ();
-
-$standardocp='\.ocp';
-%specialocp= ();
-
-# packages which have xmltex files
-%specialxmt= (
- # 'passivetex', '\.xmt|fotex.sty',
-);
-$standardxmt='\.xmt';
-
-# packages which have executable scripts
-%specialscripts = (
- 'a2ping' => '\.pl$',
- 'dviasm' => '\.py$',
- 'epstopdf' => 'epstopdf',
- 'latex2man' => 'latex2man$',
- 'latexmk' => '\.pl$',
- 'mkjobtexmf' => '\.pl$',
- 'pdfcrop' => '\.pl$',
- 'perltex' => '\.pl$',
- 'pst2pdf' => '\.pl$',
- 'texcount' => '\.pl$',
- 'vpe' => '\.pl$',
-);
-
-# too painful to install in multiple trees just now.
-## packages which have man pages to install. Assume section 1 for now.
-#%specialmans = (
-# 'mkjobtexmf' => 'mkjobtexmf.man',
-#);
-
-
-# which suffixes to remove after building. Checked after runins and at
-# the end, in the doc directory.
-$standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot'
- . '|\.bbl|\.blg|\.idx|\.ind|\.ilg|\.glo|\.gls|\.loa';
-%specialclean = (
- 'a2ping' => 'README', # not worth whole separate doc subdir
- 'accfonts' => $standardclean . '|dvips.enc', # dup enc
- 'achemso' => "$standardclean|jawltxdoc.sty", # temp file for doc
- 'acmconf' => "$standardclean|flushend.sty", # dup with sttools
- 'bbm-macros' => $standardclean . '|^bbm$', # symlink
- 'chemscheme' => "$standardclean|jawltxdoc.sty", # temp file for doc
- 'chemstyle' => "$standardclean|jawltxdoc.sty", # temp file for doc
- 'elvish' => '\.pk3', # no pk files
- 'gentle' => 'gentle.ps.gz', # pdf is enough
- 'hyph-utf8' => 'README',
- 'jadetex' => $standardclean # these sty files are in passivetex
- . '|(dummyels|mlnames|ucharacters|unicode)\.sty',
- 'latex2e-help-texinfo' => '\.info', # must move .info by hand, sigh
- 'lshort-spanish'=>'lshort-a5book.pdf', # a4 is enough
- 'mathexam' => 'sample.tex~',
- 'notes2bib' => "$standardclean|jawltxdoc.sty", # temp file for doc
- 'rsc' => $standardclean . '|jawltxdoc.sty', # temp file for doc
- 'wsuipa' => $standardclean . '|.*pk$', # premade pk files
-);
-
-# if a hash entry is matched here, README.TEXLIVE is created mentioning
-# that the files were removed. These are checked after runins.
-%moreclean = (
- 'AkkTeX' => 'still to do, sorry',
- 'bbcard' => 'bbcard.tpm',
- 'chessboard' => 'chessboard.pdf',
- 'chessfss' => 'chessfonts_gallery.pdf|chessfss.pdf',
- 'dateiliste' => 'dateiliste.README*', # already in dist
- 'dcpic' => '.*\.pdf', # no source
- 'din1505' => 'leitbild3.pdf|normpatsoft.pdf', # no source
- 'ecclesiastic' => 'ecclesiastic-sample.pdf', # no source
- 'ednotes' => 'perpage.sty', # copy from bigfoot
- 'epslatex-fr' => 'R?Danger.eps',
- 'flacards' => 'flacards.pdf',
- 'gfsartemisia' => 'A*Specimen.pdf', # nonfree
- 'gfsbaskerville'=>'B*Specimen.pdf', # nonfree
- 'gfsbodoni' => 'B*Specimen.pdf', # nonfree
- 'gfscomplutum' => 'C*Specimen.pdf', # nonfree
- 'gfsdidot' => '[DO]*Specimen.pdf', # nonfree
- 'gfsneohellenic'=>'N*Specimen.pdf', # nonfree
- 'guitbeamer' => 'guitbeamer-de.pdf',
- 'jknapltx' => 'ubbold.fd', # clashes bbold's Ubbold.fd; sauter bbold fails
- 'linguex' => 'cgloss4e.sty', # symlink
- 'piechartmp' => 'piechartmp.pdf',
- 'pst-3dplot' => 'tb72voss3d.pdf', # no source
- 'ptptex' => 'overcite.sty|cite.sty|wrapfig.sty', # duplicated
- 'stubs' => 'stubs.pdf',
- 'susy' => 'susy.pdf', # no source
- 'xelibertine' => 'xelibertineDoku.pdf', # no source
- 'xskak' => 'xskak.pdf', # no source
-);
-
-#
-# Read from config file to make local adjustments to above.
-readconfig();
-
-# command line options
-$opt_debug = 1; # verbosity is good
-exit 2 unless Getopt::Long::GetOptions (
- "ctan-dir=s",
- "debug!",
- "help",
- "test|n!",
- "version",
-);
-
-for (@ARGV) {
- $packagedir = $_;
- if (! -d $packagedir) {
- warn "$0: $packagedir not a directory, skipping.\n";
- next;
- }
-
- &set_dir_defaults ($opt_ctan_dir);
-
- @x = split(/\//,$packagedir);
- $package = pop (@x);
- $DEST_TREE = $specialdest{$package} || $standarddest;
-
- $TOPDEST = "$TDS/$package";
- $DEST = "$TOPDEST/$DEST_TREE";
-
- $insrunner = $specialinsrunner{$package} || $standardinsrunner;
-
- $whichformat = $specialfmt{$package} || $standardfmt;
- $whichdocformat = $specialdocfmt{$package}
- || ($DEST_TREE eq "texmf-doc" ? "english" : $standarddocfmt);
-
- print "pkg=$package (fmt=$whichformat docfmt=$whichdocformat) -> $DEST\n";
- if (exists $special{$package}) {
- if ($special{$package} =~ s/^die //) {
- # avoid repeating the die message.
- die "$package failed: $special{$package}\n";
- } else {
- print "special: $special{$package}...\n";
- eval $special{$package};
- die "$package failed in $special{$package}: $@" if $@;
- }
- } else {
- &donormal;
- }
-
- &xchdir ($startdir);
-}
-
-
-
-# Override our default guess of "latex" if we can intuit from the CTAN
-# path, which ctan2tl kindly passes us.
-#
-sub set_dir_defaults
-{
- my ($ctan_dir) = @_;
- my $guess = "";
-
- if ($ctan_dir =~ m!/graphics/metapost/!) {
- $standarddocfmt = $standardsourcefmt = "metapost";
- $guess = "$standarddocfmt for docfmt/srcfmt";
-
- } elsif ($ctan_dir =~ m!/macros/xetex/latex/!) {
- $standarddocfmt = $standardsourcefmt = $standardfmt = "xelatex";
- $guess = "$standarddocfmt for fmt/docfmt/srcfmt";
-
- } elsif ($ctan_dir =~ m!/macros/plain/!) {
- $standarddocfmt = $standardsourcefmt = $standardfmt = "plain";
- $guess = "$standarddocfmt for fmt/docfmt/srcfmt";
-
- } elsif ($ctan_dir =~ m!/macros/generic/!) {
- $standarddocfmt = $standardsourcefmt = $standardfmt = "generic";
- $guess = "$standarddocfmt for fmt/docfmt/srcfmt";
-
- } elsif ($ctan_dir =~ m!/(info|help)/!) {
- $standarddest = "texmf-doc";
- $guess = "$standarddest for dest";
- }
-
- print "\t guessed $guess (based on $ctan_dir)\n" if $guess;
-}
-
-
-
-sub xchdir
-{
- my ($dir) = @_;
- chdir ($dir) || die "chdir($dir) failed: $!";
- chomp (my $pwd = `pwd`);
- print "\t CHDIR $dir (now $pwd)\n";
-}
-
-sub xmkdir
-{
- my (@dirs) = @_;
- &SYSTEM ("mkdir -p @dirs");
-}
-
-
-
-# some packages need to intervene at the beginning.
-sub run_prehook
-{
- my $prehook = $prehook{$package};
- if ($prehook) {
- print "\t PREHOOK: running $prehook\n";
- eval $prehook;
- die "$package failed in $prehook: $@" if $@;
- }
-}
-
-
-
-# some packages (e.g., vntex) are tl-ready (or near enough).
-#
-sub MAKEcopy
-{
- my $dest = $_[0] || $DEST;
- my $pdir = $packagedir;
-
- chomp (my $abspackagedir = `cd $pdir && pwd`);
- print "\t COPY from $abspackagedir to $dest\n";
-
- &xchdir ($pdir);
- &SYSTEM ("mkdir -p $dest");
-
- # do the copy.
- &SYSTEM ("$CP -r * $dest");
-
- # for arev et al., remove symlinks.
- &SYSTEM ("find $dest -type l | xargs --no-run-if-empty rm");
-
- # ditto assorted other for lm (files are in doc subtree already).
- -r "$dest/MANIFEST.txt"
- && &SYSTEM ("cd $dest && $RM GUST*.txt MANIFEST.txt README.eng");
-
- # move README for encxvlna and others
- -r "$dest/README"
- && &SYSTEM ("$MV $dest/README $dest/doc/$whichdocformat/$package/");
-
- # move CHANGELOG for stellenbosch.
- -r "$dest/CHANGELOG"
- && &SYSTEM ("$MV $dest/CHANGELOG $dest/doc/$whichdocformat/$package/");
-
- # move README.eulervm for eulervm.
- -r "$dest/README.eulervm"
- && &SYSTEM ("$MV $dest/README.eulervm $dest/doc/$whichdocformat/$package/");
-
- # for tex-gyre, rename context subdir. (shouldn't be needed next time.)
- if (-d "$dest/fonts/map/pdftex/context") {
- print "$package: rename context map dir.\n";
- &SYSTEM ("$MV $dest/fonts/map/pdftex/context $dest/fonts/map/pdftex/tex-gyre");
- }
-
- # for eplain, move info file (with warning).
- if (-r "$dest/doc/$package/doc/eplain.info") {
- warn "WARNING: moving eplain.info to /tmp\n";
- warn " -- YOU must put it in texmf/doc/info!\n";
- &SYSTEM ("$MV $dest/doc/$package/doc/eplain.info /tmp");
- }
-
- # for velthuis, remove bin dir (with warning).
- if ($package eq "velthuis" && -d "$dest/bin") {
- warn "WARNING: removing bin/ dir in $dest\n";
- warn " -- YOU must deal with it!\n";
- &SYSTEM ("rm -rf $dest/bin");
- }
-
- # preserve the lm sources.
- if ($package eq "lm") {
- my $srcdir = " $dest/source/$whichdocformat/$package/";
- &SYSTEM ("mkdir -p $srcdir");
- &SYSTEM ("$MV $dest/lm*mt1.zip $srcdir/");
- }
-
- &xchdir ($DEST);
- &killfiles ($specialclean{$package} || $standardclean);
- &killfiles ($moreclean{$package}, "more") if $moreclean{$package};
-
- my $postaction = $specialpostaction{$package};
- eval ($postaction) if $postaction;
-}
-
-
-#
-# For most packages, this is the first thing called. It copies
-# everything from $packagedir to the doc directory of the package.
-#
-sub setup
-{
- my ($ctl) = @_;
-
- print "doing setup($ctl)...\n";
- # precreate the directories we might need
- $DOCDIR = "$DEST/doc/$whichdocformat/$package";
- &SYSTEM ("mkdir -p $DOCDIR");
- &SYSTEM ("mkdir -p $DEST/tex/$whichformat/$package");
- &SYSTEM ("mkdir -p $DEST/source/$whichdocformat/$package");
-
- # remove README symlinks.
- &SYSTEM ("test -h $packagedir/README && $RM $packagedir/README");
-
- return if $ctl eq "nocopytodoc";
- # copy everything to the doc directory
- # and work in there.
- &SYSTEM ("$CP -r $packagedir/* $DEST/doc/$whichdocformat/$package");
-}
-
-sub donormal
-{
- my ($ctrl) = @_;
-
- print "doing donormal($ctrl)...\n";
-
- # check for tds-ready packages
- if ( -e "$startdir/$packagedir/TDS_READY" ) {
- print "using TDS_READY tree\n";
- &SYSTEM ("$RM $startdir/$packagedir/TDS_READY");
- &SYSTEM ("mkdir -p $DEST");
- &xchdir ($DEST);
- &SYSTEM ("$CP -r $startdir/$packagedir/* .");
- } else {
- #use the normal procedure
-
- &setup unless $ctrl eq "nosetup";
- &xchdir ("$DEST/doc/$whichdocformat/$package");
- &run_prehook ($package);
-
- &buildfilelist;
-
- # run the .ins files (if any) supplied
- $inspatt = $specialins{$package} || $standardins;
- $Foundry = $specialfoundry{$package} || $standardfoundry;
- &runins($inspatt);
-
- &killfiles ($moreclean{$package}, "more") if $moreclean{$package};
-
- # rebuild the list of files in the directory
- &buildfilelist;
-
- if ($Foundry eq "metafont") {
- &dosimplemf;
- } else {
- &domf;
- }
-
- &dodvi;
- # rebuild again, as we have .dvi files now
- &buildfilelist;
- &dobst;
- &domp;
- &dobib;
- &doxmt;
- &dotex;
- &runfonts;
- &domakeindex;
- &doomega;
- &dosource;
- &dotype1;
- &doscripts;
-
- # remove empty directories that we never used.
- &SYSTEM ("rmdir $DEST/*/$whichformat/$package 2>/dev/null");
-
- &killfiles ($specialclean{$package} || $standardclean);
- }
-
- # do the postaction in any case (we need to adapt some tds zips)
- my $postaction = $specialpostaction{$package};
- eval ($postaction) if $postaction;
-}
-
-sub runins
-{
- my ($thispatt) = @_;
- print "\t RUNINS $thispatt\n";
- for (grep (/$thispatt/, @filenames)) {
- # do not infinite loop on docstrip "output directory", e.g., fltpoint.
- &runjob ("yes | sed 5q | $insrunner $_");
- }
-
- &killfiles ($specialclean{$package} || $standardclean);
-}
-
-sub install
-{
- my ($destdir,$thispatt) = @_;
- return unless $thispatt;
-
- my @files = grep (/$thispatt/, @filenames); # ugh, @filenames global
- return unless @files; # avoid lots of useless output
-
- print "\t INSTALL $thispatt to $destdir\n";
- &xmkdir ($destdir) unless -d $destdir;
-
- for my $file (@files) {
- next if $file eq "dtx-style.sty"; # this should never be in runtime
- &SYSTEM ("$MV $file $destdir");
- }
-}
-
-# build the documentation files
-sub dodvi
-{
- # packages which are doc themselves rarely rebuild cleanly,
- # and aren't worth it.
- return if $DEST_TREE eq "texmf-doc";
- $dvipatt = $specialdvi{$package} || $standarddvi;
- unless ( "$dvipatt" eq "$standarddvi" ) {
- warn "$0: Building doc: shouldn't need do to that. Please check.";
- &rundvi ($dvipatt);
- }
-}
-
-# move the runtime files
-sub dotex
-{
- my $texpatt = $specialtex{$package} || $standardtex;
- &install("$DEST/tex/$whichformat/$package", $texpatt);
-}
-
-# move the makeindex runtime files
-sub domakeindex
-{
- $makeindexpatt = $specialmakeindex{$package};
- if ($makeindexpatt eq "") { $makeindexpatt=$standardmakeindex; }
- &install("$DEST/makeindex/$package",$makeindexpatt);
-}
-
-# BibTeX style files:
-sub dobst
-{
- $csfpatt = $specialcsf{$package};
- if ($csfpatt eq "") { $csfpatt=$standardcsf; }
- &install("$DEST/bibtex/csf/$package",$csfpatt);
- $bstpatt = $specialbst{$package};
- if ($bstpatt eq "") { $bstpatt=$standardbst; }
- &install("$DEST/bibtex/bst/$package",$bstpatt);
-}
-
-# simple MF files, e.g., if specialfoundry eq "metafont".
-sub dosimplemf {
- my $mfpatt = $specialmf{$package} || $standardmf;
- &install ("$DEST/metafont/$package", $mfpatt);
-}
-
-# MetaPost files:
-sub domp {
- $mppatt = $specialmp{$package} || $standardmp;
- &install("$DEST/metapost/$package", $mppatt);
-}
-
-# BibTeX bibliography files:
-sub dobib
-{
- return if ! $specialbib{$package} && $DEST_TREE eq "texmf-doc";
- $bibpatt = $specialbib{$package} || $standardbib;
- &install("$DEST/bibtex/bib/$package", $bibpatt);
-}
-
-# source files:
-sub dosource
-{
- $sourceformat = $specialsourcefmt{$package} || $standardsourcefmt;
- # default to using specialdocfmt, as we do in setup?
- $sourcepatt = $specialsource{$package} || $standardsource;
- &install("$DEST/source/$sourceformat/$package", $sourcepatt);
-}
-
-
-sub doomega
-{
- $ovfpatt = $specialovf{$package};
- if ($ovfpatt eq "") { $ovfpatt=$standardovf; }
- &install("$DEST/fonts/ovf/public/$package",$ovfpatt);
- $ofmpatt = $specialofm{$package};
- if ($ofmpatt eq "") { $ofmpatt=$standardofm; }
- &install("$DEST/fonts/ofm/public/$package",$ofmpatt);
- $ovppatt = $specialovp{$package};
- if ($ovppatt eq "") { $ovppatt=$standardovp; }
- &install("$DEST/fonts/ovp/public/$package",$ovppatt);
- $otppatt = $specialotp{$package};
- if ($otppatt eq "") { $otppatt=$standardotp; }
- &install("$DEST/omega/otp/$package",$otppatt);
- $ocppatt = $specialocp{$package};
- if ($ocppatt eq "") { $ocppatt=$standardocp; }
- &install("$DEST/omega/ocp/$package",$ocppatt);
-}
-
-# the dvips and font mapping files:
-sub dotype1{
- my $encpatt = $specialenc{$package} || $standardenc;
- &install("$DEST/fonts/enc/dvips/$package", $encpatt);
-
- my $mappatt = $specialmap{$package} || $standardmap;
- my $mapdest = $specialmapdest{$package} || $standardmapdest;
- &install ("$DEST/$mapdest/$package", $mappatt);
-
- my $vmappatt = $specialvmap{$package} || $standardvmap;
- &install("$DEST/fonts/map/vtex/$package", $vmappatt);
-
- my $propatt = $specialpro{$package} || $standardpro;
- &install("$DEST/dvips/$package", $propatt);
-
- my $pfbpatt = $specialpfb{$package} || $standardpfb;
- &install("$DEST/fonts/type1/public/$package", $pfbpatt);
-
- my $afmpatt = $specialafm{$package} || $standardafm;
- &install("$DEST/fonts/afm/public/$package", $afmpatt);
-
- my $pfmpatt = $specialpfm{$package} || $standardpfm;
- &install("$DEST/fonts/type1/public/$package", $pfmpatt);
-
- my $otfpatt = $specialotf{$package} || $standardotf;
- &install("$DEST/fonts/opentype/public/$package", $otfpatt);
-
- my $ttfpatt = $specialttf{$package} || $standardttf;
- &install("$DEST/fonts/truetype/public/$package", $ttfpatt);
-}
-
-# scripts. Build/source/tex/texlive/Makefile.in installs symlinks
-# in the bin directories where appropriate. Just for simplicitly, let's
-# try keeping DEST as texmf when symlinks get installed; otherwise
-# (if it gets called as a subprogram) texmf-dist is ok.
-#
-sub doscripts
-{
- my $scriptpatt = $specialscripts{$package};
- return unless $scriptpatt;
- &install ("$DEST/scripts/$package", $scriptpatt);
- &SYSTEM ("chmod a+x $DEST/scripts/$package/*");
-}
-
-# xmltex files
-sub doxmt{
- my $xmtpatt = $specialxmt{$package} || $standardxmt;
- &install ("$DEST/tex/xmltex/$package", $xmtpatt);
-}
-
-# build the font files
-sub domf {
- $mfpatt = $specialmf{$package} || $standardmf;
- &runmf ($mfpatt);
-
- my $mfdir = "$DEST/fonts/source/$Foundry/$package";
- #
- # don't use $mfpatt since that's only the tfm-able mf files; just
- # install all the .mf files.
- &install ($mfdir, '\.mf$');
- if (exists $specialmfinstall{$package}) {
- &install ($mfdir, $specialmfinstall{$package});
- }
-}
-
-sub rundvi {
- local($thispatt) = @_;
- $TEX = $specialTEX{$package};
- if ($TEX eq "") {
- if ($whichformat eq 'latex') { $TEX="pdflatex"; }
- else { $TEX=$whichformat; }
- }
- if ($TEX eq "generic") { $TEX="pdflatex"; }
- print "\t MAKEDVI $thispatt using $TEX (@filenames)\n";
- for (grep(/$thispatt/,@filenames)) {
- ($FileBase,$Filepath,$Filesuffix) = fileparse($_,"\.[A-z]*");
- print "found $FileBase\n";
- if (-r "$FileBase.drv" && $Filesuffix eq ".dtx" )
- { $Filesuffix=".drv" ; }
- print "\t DOC: run $TEX on $FileBase$Filesuffix\n";
- open(TMP,">$FileBase.aux");
- close(TMP);
- &runjob("TEXMFLOCAL=. $TEX '\\nonstopmode\\input $FileBase$Filesuffix'");
- &runjob("bibtex $FileBase");
- &runjob("TEXMFLOCAL=. $TEX '\\nonstopmode\\input $FileBase$Filesuffix'");
- if ($Filesuffix eq ".drv" || $Filesuffix eq ".dtx" ) {
- &runjob("$CP $startdir/gind.ist .");
- &runjob("makeindex -s gind.ist $FileBase");
- unlink "gind.ist";
- } else {
- &runjob("makeindex $FileBase");
- }
- &runjob("$TEX '\\nonstopmode\\input $FileBase$Filesuffix'");
- }
- print "\t MAKEDVI done\n";
-}
-
-# run a &SYSTEM job, and append stderr output to log file
-#
-sub runjob
-{
- my ($job) = @_;
-
- if ($opt_test) {
- print "WOULDRUNJOB $job\n";
- } else {
- my $Jobid = "_$$";
- &SYSTEM ("$job >$Jobid.log 2>&1");
- local *TMP;
- open (TMP, "$Jobid.log") || die "open($Jobid.log) failed: $!";
- my @output = (<TMP>);
- if ($job =~ /^mktextfm/) {
- print $output[$#output-1]; # successfully generated line
- } else {
- print `cat $Jobid.log`;
- }
- close (TMP);
- unlink ("$Jobid.log");
- }
-}
-
-# remove all files matching something in $KILLPATT.
-# also remove .ps files for which we have a .pdf.
-#
-# if MORE is true, remove additional files matching something in
-# $moreclean and create a README.TEXLIVE which lists the removed files.
-#
-# This only deletes files in the current directory. Should fix.
-#
-sub killfiles
-{
- my ($killpatt,$more) = @_;
-
- local *DOT;
- opendir (DOT, ".") || die "opendir(.) failed: $! in " . `pwd`;
-
- my @delfiles = ();
- for (grep (/$killpatt/, readdir (DOT))) {
- print "\t Removing $_\n";
- if (unlink ($_)) {
- push (@delfiles, $_);
- } else {
- warn "unlink($_) failed: $!";
- }
- }
-
- for (grep (/\.ps$/, @filenames)) {
- (my $pdf = $_) =~ s/ps$/pdf/;
- next unless grep (/$pdf/, @filenames);
- print "\t Remove ps $_ (since have $pdf)\n";
- unlink ($_) && push (@delfiles, $_);
- }
-
- if ($more && @delfiles) {
- # create/update README.TEXLIVE.
- open (RTL, ">README.TEXLIVE") || warn "open(>README.TEXLIVE) failed: $!";
- print RTL <<'EOF';
-The following files have been removed in the TeX Live installation of
-the current package, typically due to duplication, lack of space, or
-missing source code. You can find these files on CTAN. If questions or
-concerns, email tex-live@tug.org.
-
-EOF
- foreach my $f (@delfiles) {
- print RTL "\t$f\n";
- }
- close RTL;
- }
- &buildfilelist();
-}
-
-# rebuild list of input files, e.g., after flattening
-sub buildfilelist
-{
- print "doing buildfilelist()...\n";
- opendir (DIR ,'.') || die "opendir(.) failed: $!";
- @filenames = grep (!/^\.\.?$/, readdir (DIR));
- closedir (DIR);
-}
-
-sub runmf
-{
- my ($mfpatt) = @_;
- print "\t doing runmf for $package ($mfpatt)\n";
- for my $file (grep (/$mfpatt/, @filenames)) {
- ($FileBase,$Filepath,$Filesuffix) = fileparse ($file, "\.[A-z]*");
- if (! -e "$FileBase.tfm") {
- print "\t\t Make TFM from $file\n";
- &runjob ("mktextfm --destdir=`pwd` $FileBase.tfm");
- &SYSTEM ("$RM *pk"); # not worth the space
- }
- }
-}
-
-sub runfonts {
- $Foundry = $specialfoundry{$package} || $standardfoundry;
- for (grep(/.vf/,@filenames)) {
- $needdir=1;
- print "\t\t install VF $_\n";
-($FileBase,$Filepath,$Filesuffix) = fileparse($_,"\.[A-z]*");
- if ($needdir) {
- &SYSTEM("mkdir -p $DEST/fonts/vf/$Foundry/$package");
- $needdir=0;
- }
- &SYSTEM("$MV $FileBase.vf $DEST/fonts/vf/$Foundry/$package ");
- }
- for (grep(/.tfm/,@filenames)) {
- $needdir=1;
- print "\t\t INSTALL tfm $_\n";
-($FileBase,$Filepath,$Filesuffix) = fileparse($_,"\.[A-z]*");
- if ($needdir) {
- &SYSTEM("mkdir -p $DEST/fonts/tfm/$Foundry/$package");
- $needdir=0;
- }
- &SYSTEM("$MV $FileBase.tfm $DEST/fonts/tfm/$Foundry/$package ");
- }
-}
-
-
-sub SYSTEM
-{
- local ($job) = @_;
- if ($opt_test) {
- print "\t SYSTEM $job\n";
- } else {
- print "\t SYSTEM $job\n" if $opt_debug;
- system($job);
- }
-}
-
-
-sub MAKEflatten
-{
- &setup;
- &xchdir ("$DEST/doc/$whichdocformat/$package");
-
- print "\t SPECIAL flatten $package\n";
-
- # cm-super et al. need to intervene at this point.
- &run_prehook ($package);
-
- # I don't think flattened packages ever want symlinks.
- &SYSTEM ("find . -type l | xargs --no-run-if-empty $RM");
-
- # mv foo/README to README.foo. README.txt is for psfragx.
- # Obviously should be generalized to non-README files.
- my $findcmd = "find . -mindepth 2 '(' -name README -o -name README.txt ')'";
- &SYSTEM ("for r in `$findcmd`; do"
- . ' mv $r $r.`basename \`dirname $r\``; done');
-
- # move all non-directories to top level, but don't accidentally
- # overwrite one with another.
- &SYSTEM ("yes n | find . -mindepth 2 -not -type d -exec mv -i '\{\}' . \\;");
-
- # remove newly empty directories.
- &SYSTEM ("find -depth -type d -print | xargs rmdir 2>/dev/null");
-
- # do the usual.
- &buildfilelist;
- &donormal ("nosetup");
-}
-
-sub MAKEunzipandflatten {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("unzip -q -o -a $package.zip; rm $package.zip");
- &SYSTEM("$MV */*/*/*/* .; rmdir */*/*/*");
- &SYSTEM("$MV */*/*/* .; rmdir */*/*");
- &SYSTEM("$MV */*/*/* .; rmdir */*/*");
- &SYSTEM("$MV */*/* .; rmdir */*");
- &SYSTEM("$MV */*/* .; rmdir */*");
- &SYSTEM("$MV */* .; rmdir *");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEnosymlinks
-{
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
-
- print "\t SPECIAL nosymlinks $package\n";
- &SYSTEM("find . -type l | xargs --no-run-if-empty rm");
-
- &buildfilelist;
- &donormal ("nosetup");
-}
-
-# do some stuff for simple packages with hyphenation files, like
-# cbcoptic and ibycus-babel. The arguments are:
-# LANGNAME - full language name, like "coptic" (first arg of .dat line)
-# LANGABBREV - abbreviated language name, like "cop" (in .dat filename)
-# HYPHFILE - hyphenation .tex file name, like "copthyph.tex"
-#
-# General procedure is:
-#
-# create: tlpkg/tlpsrc/hyphen-language.tlpsrc
-# (must be done by hand)
-# create: texmf/tex/generic/config/language.ll.dat
-# (done here, unless it already exists)
-# install pattern file from ctan: texmf/tex/generic/hyphen/langhyph.tex
-# (done here)
-# add in: tlpkg/tlpsrc/collection-langwhatever.tlpsrc
-# (must be done by hand)
-#
-sub GENMAKEhyphenation
-{
- my ($langname,$langabbrev,$hyphfile) = @_;
- &setup;
- &buildfilelist;
- &donormal;
- print "\t SPECIAL $package: install $hyphfile\n";
- my $generichyphdir = "$TOPDEST/texmf/tex/generic/hyphen";
- &SYSTEM("mkdir -p $generichyphdir");
- &SYSTEM("$MV $hyphfile $generichyphdir");
-
- my $genericconfigdir = "$TOPDEST/texmf/tex/generic/config";
- my $configfile = "$genericconfigdir/language.$langabbrev.dat";
- if (! -r $configfile) {
- print "\t SPECIAL $package: create $configfile\n";
- &SYSTEM("mkdir -p $genericconfigdir");
- &SYSTEM("echo $langname $hyphfile >$configfile");
- }
-
- print "YOU-MUST-DO! $package: create hyphen-$langname.tlpsrc\n";
- print "YOU-MUST-DO! $package: add to collection-langwhatever.tpm\n";
-}
-
-sub MAKEcbcoptic
-{
- &GENMAKEhyphenation ("coptic", "cop", "copthyph.tex");
-}
-
-sub MAKEibycusbabel
-{
- &GENMAKEhyphenation ("ibycus", "iby", "ibyhyph.tex");
-}
-
-# since existing mongolian is written in a different encoding,
-# seems best to keep both?
-sub MAKEmnhyphn
-{
- &GENMAKEhyphenation ("mongolian2a", "mn2a", "mnhyphn.tex");
-}
-
-# we don't want a package named nohyph. Hmm.
-#sub MAKEnohyph
-#{
-# &GENMAKEhyphenation ("norsk", "no", "nohyphbx.tex");
-# &GENMAKEhyphenation ("nynorsk", "no", "nnhyph.tex");
-# &GENMAKEhyphenation ("bokmal", "no", "nbhyph.tex");
-#}
-
-sub MAKEarabi {
- &xchdir ("$packagedir/arabi/texmf"); # author will remove these next time
- #
- print "\t SPECIAL $package - removing microsoft and nonfree\n";
- &SYSTEM('find -name microsoft -o -name nonfree | xargs rm -rf');
- #
- print "\t SPECIAL $package - rearranging for tds\n";
- &SYSTEM ("mkdir -p tex; mv latex tex");
- &SYSTEM ("$RM tex/latex/arabi/updmap.cfg");
- &SYSTEM ("$MV tex/latex/arabi/bblopts.cfg doc/latex/arabi");
- &SYSTEM ("rm -rf dvips");
- #
- print "\t SPECIAL $package - copying to $DEST\n";
- &SYSTEM ("mkdir -p $DEST");
- &SYSTEM ("$CP -r * $DEST/");
-}
-
-sub MAKEarabtex {
- &xchdir ($packagedir);
- #
- print "\t SPECIAL $package: removing top-level links\n";
- &SYSTEM('for f in apatch.sty arabtex.tex hebtex.tex hepatch.sty; do test -h $f && rm -v $f; done');
- #
- print "\t SPECIAL $package: removing top-level tgz's\n";
- &SYSTEM('for f in *.tgz; do rm -v $f; done');
- #
- print "\t SPECIAL $package: renaming arabtex.htm\n";
- &SYSTEM('mv doc/html/arabtex.htm arabtex1.htm');
- &SYSTEM('mv doc/txt/arabtex.htm arabtex2.htm');
- #
- print "\t SPECIAL $package: flatten\n";
- &xchdir ("..");
- &MAKEflatten ();
-}
-
-sub MAKEarphic {
- &xchdir ($packagedir);
- # tds-ready tarballs with a top-level dir name. copy all into new/.
- &SYSTEM ("mkdir -p new");
- for my $tar (<*.tar.*>) {
- (my $tarbase = $tar) =~ s/\.tar.*//;
- &SYSTEM ("tar xf $tar "
- . "&& (cd $tarbase && cp -arf * ../new)"
- . "&& rm -rf $tar $tarbase");
- }
- # move everything from new to the top level.
- &SYSTEM ("mv new/* . && rmdir new");
- #
- # move docs to subdir.
- &SYSTEM ("mv arphic-sampler* doc/fonts/arphic");
- #
- # copy to dest.
- &xchdir ("..");
- &MAKEcopy ();
-}
-
-sub MAKEaurical {
- &xchdir ($packagedir);
- #
- # basically have a tds hier to unzip, with some cleanups.
- &SYSTEM ("unzip -q aurical_texmf.zip");
- &SYSTEM ("mkdir -p fonts/source/public/aurical/");
- &SYSTEM ("$MV $DEST/README doc/latex/aurical/");
- &SYSTEM ("$MV aurical_source.zip fonts/source/public/aurical/");
- &SYSTEM ("$RM aurical.pdf aurical_texmf.zip");
- #
- &xchdir ("..");
- &MAKEcopy ();
-}
-
-sub MAKEeskdx {
- &setup;
- &xchdir ("$DEST/doc/$whichdocformat/$package");
- print "\t SPECIAL $package: flatten unpacked/ dir (only)\n";
- &SYSTEM ("$MV unpacked/Makefile Makefile.unpacked");
- &SYSTEM ("$MV unpacked/* .");
- &SYSTEM ("rmdir unpacked");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEmathdesign {
- &setup ();
- &xchdir ($DOCDIR);
- #
- # basically have several tds hiers to unzip, with some cleanups.
- print "\t SPECIAL $package: unzip etc.\n";
- for my $zip (<*.zip>) {
- &SYSTEM ("cd $DEST && unzip -q -o $DOCDIR/$zip; $RM $DOCDIR/zip");
- }
- &SYSTEM ("rm -rf commercialfonts");
- &SYSTEM ("mv $DEST/dvips/config $DEST/dvips/mathdesign");
-}
-
-sub MAKEmetauml {
- &setup;
- &xchdir ("$DEST/doc/$whichdocformat/$package");
- &SYSTEM ("$MV doc/* examples/* inputs/* .");
- &SYSTEM ("rmdir doc examples inputs");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEmflogo{
- &setup;
- chdir("$DEST");
- &runjob("tar xvf $DEST/doc/latex/$package/logofont.tar");
- chdir("$DEST/doc/latex/$package");
- &donormal;
- }
-
-sub MAKEfp {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &runjob("mkdir -p $DEST/tex/plain/fp; $CP fp.tex $DEST/tex/plain/fp");
- &donormal;
-}
-
-sub MAKEgermbib {
- &xchdir ($packagedir);
- #
- print "\t SPECIAL $package remove symlinks\n";
- &SYSTEM ("find . -type l | xargs --no-run-if-empty rm");
- #
- # we can't conflict with standard apalike.sty.
- print "\t SPECIAL $package rename second apalike.sty\n";
- &SYSTEM ("$MV styles/apalike.sty styles/apalike.germbib_sty");
- #
- # spurious ^M's.
- &SYSTEM ("perl -pie 'tr/\r//' document/btxdoc.tex");
- #
- &xchdir ("..");
- &MAKEflatten ();
-}
-
-sub MAKExkeyval {
- # needs files in both latex and generic.
- &MAKEflatten ();
- print "\t SPECIAL $package moving .tex\n";
- my $generic = "$DEST/tex/generic/$package/";
- &SYSTEM ("mkdir -p $generic; mv *.tex $generic");
-}
-
-sub MAKExymtex {
- &setup;
- chdir("$DEST/doc/latex/$package");
- &SYSTEM("$MV doc200/* .");
- &SYSTEM("rmdir doc");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEnewsletr {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM ("$MV newsletr.tex $DEST/tex/$whichformat/$package");
- &SYSTEM ("$RM *.dvi");
-}
-
-sub MAKEnotes
-{
- &setup;
- &xchdir ($DOCDIR);
- &SYSTEM ("make eps png pdf");
- &donormal;
-}
-
-sub MAKEpbdiagram {
- &setup;
- chdir("$DEST/doc/latex/$package");
- &SYSTEM("rm -rf mf tfm");
- &buildfilelist;
- &donormal;
-}
-
-# copy seminar files.
-sub MAKEseminar {
- &SYSTEM("mkdir -p $DEST/tex/latex/$package");
- &SYSTEM("$CP $packagedir/inputs/* $DEST/tex/latex/$package");
- #
- &SYSTEM("mkdir -p $DEST/source/latex/$package");
- &SYSTEM("$CP $packagedir/src/* $DEST/doc/latex/$package");
- #
- &SYSTEM("mkdir -p $DEST/doc/latex/$package");
- &SYSTEM("$CP $packagedir/*read* $packagedir/doc/* $DEST/doc/latex/$package");
-}
-
-sub MAKExypic {
-# this simply copies source files as per INSTALL instructions
- chdir($packagedir) || die ("ERROR: cannot open directory");
- &runjob("mkdir -p $DEST/fonts/source/$Foundry/xypic");
- &runjob("mkdir -p $DEST/fonts/type1/$Foundry/xypic");
- &runjob("mkdir -p $DEST/fonts/tfm/$Foundry/xypic");
- &runjob("mkdir -p $DEST/fonts/pk/cx/$Foundry/xypic");
- &runjob("mkdir -p $DEST/tex/generic/xypic");
- &runjob("mkdir -p $DEST/dvips/xypic");
- &runjob("mkdir -p $DEST/doc/generic/xypic");
- &runjob("mkdir -p $DEST/source/generic/xypic");
- &runjob("$CP texinputs/* $DEST/tex/generic/xypic");
- &runjob("$CP texfonts/* $DEST/fonts/tfm/$Foundry/xypic");
- &runjob("$CP mfinputs/* $DEST/fonts/source/$Foundry/xypic");
- &runjob("$CP src/* $DEST/doc/generic/xypic");
- &runjob("$CP type1/* $DEST/fonts/type1/$Foundry/xypic");
- &runjob("$CP ps/* $DEST/dvips/xypic");
- &runjob("$CP doc/*.* $DEST/doc/generic/xypic");
- &runjob("$CP [A-Z]* $DEST/doc/generic/xypic");
- open (TMP,">$DEST/texmf-dist/dvips/xypic/config.xyp");
- print TMP "p +xypic.map";
- close(TMP);
-# do the PK files
- chdir("pkfonts");
- &buildfilelist;
- for (@filenames) {
- if (-d $_) {
- chdir $_;
- s/cx([0-9]*)//;
- $dpi=$1;
- opendir(DIR,'.');
- @ffontnames =grep(!/^\.\.?$/,readdir(DIR));
- closedir(DIR);
- for (@ffontnames) {
-($FileBase,$Filepath,$Filesuffix) = fileparse($_,"\.[A-z0-9]*");
- &SYSTEM("mkdir -p $DEST/fonts/pk/cx/$Foundry/xypic/dpi$dpi");
- &SYSTEM("$MV $_ $DEST/fonts/pk/cx/$Foundry/xypic/dpi$dpi/$FileBase.pk");
- }
- chdir '..';
- }
- }
-}
-
-
-sub MAKEborceux {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package/user-guides");
- &SYSTEM("$MV -f * $DEST/doc/$whichdocformat/$package");
- chdir("$DEST/doc/$whichdocformat/$package/diagram");
- &SYSTEM("$MV -f * $DEST/tex/$whichformat/$package");
-}
-
-sub MAKEconcmath {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("$MV fonts/*/* .");
- &buildfilelist;
- &domf;
- &dodvi;
-# rebuild again, as we have .dvi files now
- &buildfilelist;
- &domakeindex;
- &dotex;
- &dosource;
-}
-
-sub MAKEplqx {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("$MV tex/* .");
- &SYSTEM("$MV doc/* .");
- &SYSTEM("rmdir doc tex");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEaugie {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("$MV dvips/* .");
- &SYSTEM("$MV tfm/* .");
- &SYSTEM("$MV afm/* .");
- &SYSTEM("$MV doc/* .");
- &SYSTEM("$MV vf/* .");
- &SYSTEM("$MV tex/* .");
- &SYSTEM("$MV type1/* .");
- &SYSTEM("rmdir type1 tex vf afm dvips doc tfm");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEae {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("$MV tfm/* .");
- &SYSTEM("$MV vf/* .");
- &SYSTEM("$MV src/* .");
- &SYSTEM("$MV tex/* .");
- &SYSTEM("rmdir tex vf src tfm");
- &buildfilelist;
- &dosource;
- &dotex;
- &domakeindex;
- &runfonts;
-}
-
-sub MAKEdevanagr {
- &xchdir ($packagedir);
- #
- print "\t SPECIAL $package: renaming README files\n";
- &SYSTEM('for f in *; do test -r $f/README && mv $f/README README.$f; done');
- #
- print "\t SPECIAL $package: moving .c and .exe to /tmp\n";
- &SYSTEM('mv bin/devnag.c bin/devnag.exe /tmp');
- #
- print "\t SPECIAL $package: flatten\n";
- &xchdir ("..");
- &MAKEflatten;
- print "YOU-MUST-DO! update /tmp/devnag.c and devnag.exe into Build\n";
-}
-
-# We don't want to flatten the templates, only the source.
-#
-sub MAKEdisser
-{
- &setup;
- &xchdir ("$DEST/doc/$whichdocformat/$package");
- print "\t SPECIAL $package\n";
- &SYSTEM ("$MV -f src/* .");
- &buildfilelist;
- &donormal ("nosetup");
-}
-
-sub MAKEeasy {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("rm doc/*.ps");
- &SYSTEM("$MV doc/* $DEST/doc/$whichdocformat/$package");
- &buildfilelist;
- &dodvi;
-# rebuild again, as we have .dvi files now
- &buildfilelist;
- &dotex;
- &domakeindex;
- &dosource;
-}
-
-sub MAKEebong {
- &xchdir ($packagedir);
- #
- print "\t SPECIAL $package: moving .py to /tmp\n";
- &SYSTEM('mv -v *.py /tmp');
- #
- print "\t SPECIAL $package: flatten\n";
- &xchdir ("..");
- &MAKEflatten;
- print "YOU-MUST-DO! update /tmp/ebong.py into Build\n";
-}
-
-sub MAKEfootnpag {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("$MV src/* .");
- &buildfilelist;
- &dodvi;
-# rebuild again, as we have .dvi files now
- &buildfilelist;
- &dotex;
- &domakeindex;
- &dosource;
-}
-
-
-sub MAKEeplain {
- print "\t SPECIAL $package\n";
- &setup;
- &xchdir ($DEST);
- rename ("tex/eplain/eplain", "tex/eplain/base");
- &SYSTEM ("$MV $DOCDIR/eplain.tex tex/eplain/base");
- &SYSTEM ("$MV $DOCDIR/btxmac.tex tex/eplain/base");
- &SYSTEM ("$MV $DOCDIR/arrow.tex tex/eplain/base");
-
- &SYSTEM ("$MV $DOCDIR/doc doc/eplain/base");
- &SYSTEM ("$MV $DOCDIR/[A-L]* $DOCDIR/[M-Z]* doc/eplain/base/");
- unlink ("doc/eplain/base/texinfo.tex");
-
- rename ("source/eplain/eplain", "source/eplain/base");
- &SYSTEM ("$MV $DOCDIR/* source/eplain/base");
-
-}
-
-sub MAKEfeynmf
-{
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("gunzip manual.ps");
- &buildfilelist;
- &runins('feynmf.ins');
- &buildfilelist;
- &dosimplemf;
- &dodvi;
- &buildfilelist;
- &domp;
- &dotex;
- &domakeindex;
- &dosource;
- killfiles($standardclean);
-}
-
-sub MAKEchangebar {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEsiam
-{
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &buildfilelist;
- &dodvi;
- &buildfilelist;
- &dobst;
- &dotex;
- &domakeindex;
- &dosource;
- &SYSTEM("mkdir -p $DEST/doc/plain/siam");
- &SYSTEM("mkdir -p $DEST/doc/amstex/siam");
- &SYSTEM("mkdir -p $DEST/tex/plain/siam");
- &SYSTEM("mkdir -p $DEST/tex/plain/amstex");
- &SYSTEM("$MV plain/*doc* $DEST/doc/plain/siam");
- &SYSTEM("$MV plain/* $DEST/tex/plain/siam");
- &SYSTEM("$MV amstex/*doc* $DEST/doc/amstex/siam");
- &SYSTEM("$MV amstex/* $DEST/tex/amstex/siam");
- killfiles($standardclean);
-}
-
-sub MAKEmisc {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &buildfilelist;
- &dotex;
- &domakeindex;
- killfiles($standardclean);
-}
-
-sub MAKEtamethebeast {
- my $destdir = "$DEST/doc/english/$package";
- &SYSTEM("mkdir -p $destdir");
- &SYSTEM("$CP -r $packagedir/* $destdir");
-}
-
-sub MAKEtexdraw {
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &buildfilelist;
- &dotex;
- &domakeindex;
- &SYSTEM("mkdir -p $DEST/doc/generic/texdraw");
- &SYSTEM("$MV manual/* $DEST/doc/generic/texdraw");
- killfiles($standardclean);
-}
-
-sub MAKEexpressg {
- &setup;
-chdir("$DEST/doc/$whichdocformat/$package");
-&buildfilelist;
- $inspatt = $specialins{$package};
- &buildfilelist;
- if ($inspatt eq "") {
- $inspatt=$standardins;
- }
-&runins($inspatt);
- &SYSTEM("mpost expeg.mp");
-# rebuild the list of files in the directory
- &buildfilelist;
- &dodvi;
-# rebuild again, as we have .dvi files now
- &buildfilelist;
- &runfonts;
-&dobst;
- &dobib;
-&dotex;
- &domakeindex;
- &dosource;
- &dotype1;
-#
-# this is a bit weird, but its an easy way to remove
-# empty directories that we never used.
-#
- &SYSTEM("rmdir $DEST/tex/$whichformat/$package 2> /dev/null");
- &SYSTEM("rmdir $DEST/doc/$whichdocformat/$package 2> /dev/null");
- &SYSTEM("rmdir $DEST/source/$whichformat/$package 2> /dev/null");
- killfiles($standardclean);
-}
-
-sub MAKEtipa {
-# this simply copies source files
- chdir($packagedir) || die ("ERROR: cannot open directory");
- &runjob("mkdir -p $DEST/fonts/source/$Foundry/tipa");
- &runjob("mkdir -p $DEST/fonts/type1/$Foundry/tipa");
- &runjob("mkdir -p $DEST/fonts/tfm/$Foundry/tipa");
- &runjob("mkdir -p $DEST/fonts/map/dvips/tipa");
- &runjob("mkdir -p $DEST/tex/latex/tipa");
- &runjob("mkdir -p $DEST/doc/fonts/tipa");
- &runjob("mkdir -p $DEST/source/latex/tipa");
- &runjob("$CP dvips/* $DEST/fonts/map/dvips/tipa");
- &runjob("$CP sty/* $DEST/tex/latex/tipa");
- &runjob("$CP tfm/* $DEST/fonts/tfm/$Foundry/tipa");
- &runjob("$CP type1/* $DEST/fonts/type1/$Foundry/tipa");
- &runjob("$CP mf/* $DEST/fonts/source/$Foundry/tipa");
- &runjob("$CP doc/* $DEST/doc/fonts/tipa");
-}
-
-sub MAKEpslatex
-{
- &xchdir ($packagedir);
- $Foundry = $specialfoundry{$package} || $standardfoundry;
- #
- &runjob("mkdir -p $DEST/tex/latex/pslatex");
- &runjob("$CP latex/* $DEST/tex/latex/pslatex");
- #
- &runjob("mkdir -p $DEST/fonts/tfm/$Foundry/pslatex");
- &runjob("$CP tfm/* $DEST/fonts/tfm/$Foundry/pslatex");
- #
- &runjob("mkdir -p $DEST/fonts/vf/$Foundry/pslatex");
- &runjob("$CP vf/* $DEST/fonts/vf/$Foundry/pslatex");
- #
- &runjob("mkdir -p $DEST/fonts/map/dvips/pslatex");
- &runjob("$CP dvips/* $DEST/fonts/map/dvips/pslatex");
- #
- &runjob("mkdir -p $DEST/source/latex/pslatex");
- &runjob("$CP -r fontinst $DEST/source/latex/pslatex");
- &runjob("$CP -r shell $DEST/source/latex/pslatex");
-}
-
-sub MAKEeco {
-# this simply copies source files
- chdir($packagedir) || die ("ERROR: cannot open directory");
- &runjob("mkdir -p $DEST/fonts/tfm/$Foundry/eco");
- &runjob("mkdir -p $DEST/fonts/vf/$Foundry/eco");
- &runjob("mkdir -p $DEST/tex/latex/eco");
- &runjob("mkdir -p $DEST/dvips/eco");
- &runjob("mkdir -p $DEST/doc/latex/eco");
- &runjob("$CP src/*sty $DEST/tex/latex/eco");
- &runjob("$CP fd/* $DEST/tex/latex/eco");
- &runjob("$CP tfm/* $DEST/fonts/tfm/$Foundry/eco");
- &runjob("$CP vf/* $DEST/fonts/vf/$Foundry/eco");
- &runjob("$CP -r src/*tex src/*x src/*sh $DEST/doc/latex/eco");
- &runjob("$CP -r [A-Z]* $DEST/doc/latex/eco");
- }
-
-sub MAKEelhyphen {
- &setup;
- &buildfilelist;
- &donormal;
-
- print "\t SPECIAL $package: lowercase names\n";
- &SYSTEM('for f in GR*hyph*.tex; do mv $f `echo $f | tr A-Z a-z`; done');
-
- print "\t SPECIAL $package: install gr*hyph.tex files\n";
- my $generichyphdir = "$TOPDEST/texmf/tex/generic/hyphen";
- &SYSTEM("mkdir -p $generichyphdir");
- &SYSTEM("$MV gr*hyph*.tex $generichyphdir");
-
- print "YOU-MUST-DO! $package: update texmf/tex/generic/config/language.gr.dat\n";
- print "YOU-MUST-DO! $package: update texmf/tpm/hyphen-greek.tpm\n";
- print "YOU-MUST-DO! $package: add to texmf/tpm/collection-langgreek.tpm\n";
-}
-
-sub MAKECatalogue {
-# this simply copies source files
- $DEST="$TDS/catalogue/texmf-doc";
- chdir($packagedir) || die ("ERROR: cannot open directory");
- &runjob("mkdir -p $DEST/doc/english/catalogue");
- &runjob("$CP -r * $DEST/doc/english/catalogue");
- chdir("$DEST/doc/html/catalogue/entries") || die ("ERROR cannot chdir $DEST/doc/english/catalogue/entries");
- &buildfilelist;
- foreach $File (grep(/.html$/,@filenames)) {
- print "process $File\n";
- open FOO,">$File.new";
- open BAR,"$File";
- while (<BAR>) {
- s|\.\./\.\./\.\.|http://theory.uwinnipeg.ca/scripts/CTAN|g;
- print FOO ;
- }
- close FOO;
- close BAR;
- &SYSTEM("$MV $File.new $File");
- }
- }
-
-sub MAKEFAQen
-{
- &donormal ();
- &SYSTEM ("tar xzf FAQ-html.tar.gz && rm FAQ-html.tar.gz");
-}
-
-# all the lshort translations are pretty similar.
-sub MAKElshort
-{
- print "MAKElshort $package\n";
- (my $lang = $package) =~ s,.*-,,; # lshort-english -> english
- my $destdir = "$DEST/doc/$lang/$package";
- &SYSTEM ("mkdir -p $destdir");
- &SYSTEM ("$CP -r $packagedir/* $destdir");
- # keep only pdf's to save space.
- &SYSTEM ("cd $destdir && $RM lshort*.ps *lshort*.ps.*z* lshort*.dvi* lshort-*-book.zip");
- # remove symlinks such as README.
- &SYSTEM ("cd $destdir && find -type l | xargs --no-run-if-empty rm");
-}
-
-sub MAKEltt {
-# this simply copies source files
- chdir($packagedir) || die ("ERROR: cannot open directory");
- &runjob("mkdir -p $DEST/doc/ltt");
- &runjob("$CP * $DEST/doc/ltt");
- }
-
-sub MAKEpstricks
-{
- # move the directories around.
- &xchdir ($packagedir);
- &xmkdir ("$DEST/doc/generic");
- #
- my $docdir = "$DEST/doc/generic/pstricks";
- &SYSTEM ("$MV doc $docdir");
- #
- # move multiple Changes files out of runtime.
- &runjob("$MV generic/Changes $docdir/Changes.generic");
- &runjob("$MV latex/Changes $docdir/Changes.latex");
- &runjob("$MV dvips/Changes $docdir/Changes.dvips");
- #
- &xmkdir ("$DEST/dvips");
- &SYSTEM ("$MV dvips $DEST/dvips/pstricks");
- #
- &xmkdir ("$DEST/tex/generic");
- &SYSTEM ("$MV generic $DEST/tex/generic/pstricks");
- #
- &xmkdir ("$DEST/tex/latex");
- &SYSTEM ("$MV latex $DEST/tex/latex/pstricks");
-}
-
-sub MAKEwilson
-{
- &setup;
-
- my $docdir = "$DEST/doc/$whichdocformat/$package";
- &xchdir ($docdir);
-
- my $mapdir = "$DEST/fonts/map/dvips/$package";
- -d $mapdir || &SYSTEM ("mkdir -p $mapdir");
- &SYSTEM ("$MV *.map $mapdir"); # archaicprw.map
-
- opendir (DIR, '.') || die "opendir(.) failed: $!";
- @dirnames = grep (!/^\.\.?$/, readdir (DIR));
- closedir (DIR);
-
- for my $d (@dirnames) {
- if ($d =~ /\.zip$/) {
- unlink ("$docdir/$d");
- next;
- }
-
- # phaistos and linearA are nothing to do with Wilson's archaic, but
- # are separate packages created by AS.
- if ($d =~ /^(phaistos|linearA)$/) {
- &SYSTEM ("rm -rf $d $docdir/$d");
- next;
- }
-
- my $target = "$docdir/$d";
- next if ! -d $target; # samples/readme files
- print "\t PROCESS Wilson subdir $d\n";
- &xchdir ($target);
-
- if ($d) {
- for my $f (glob ("try*"), glob ("*.pdf"), "README") {
- my $dest = "$docdir/";
- $dest .= "$d-" if $f !~ /$d/;
- $dest .= $f;
- &runjob("$MV $f $dest");
- }
- }
-
- &buildfilelist;
- # run the .ins files (if any) supplied
- $inspatt = $specialins{$package};
- &buildfilelist;
- &runins($inspatt || $standardins);
- &dodvi;
- &domf;
- &dodvi;
-# rebuild again, as we have .dvi files now
- &buildfilelist;
- &runfonts;
- &dobst;
- &dobib;
- &dotex;
- &domakeindex;
- &dosource;
- &dotype1;
- killfiles($standardclean);
- }
- killfiles($standardclean);
-}
-
-sub MAKEt2
-{
- &xchdir ($packagedir);
- &xmkdir ("$DEST/tex/plain");
- &runjob ("$MV cyrplain $DEST/tex/plain");
- #
- &xmkdir ("$DEST/tex/generic/t2");
- &runjob ("$MV cyrfinst $DEST/tex/generic/t2");
- #
- &xmkdir ("$DEST/fonts/enc/t2");
- &runjob ("$CP enc-maps/encfiles/* $DEST/fonts/enc/t2");
- #
- &xmkdir ("$DEST/doc/generic/t2");
- &runjob ("$MV enc-maps/*.* enc-maps/[MR]* $DEST/doc/generic/t2");
- &runjob ("$MV etc examples $DEST/doc/generic/t2");
- #
- &xchdir ("$DEST/doc/generic/t2/etc");
- &xmkdir ("$DEST/tex/latex/t2");
- &runjob ("latex mathtext.ins");
- &runjob ("rm *log; mv *sty $DEST/tex/latex/t2");
- }
-
-# docs in two languages. The English one is in a separate package,
-# mathmode. Just remove it from the copy when building the German one.
-#
-sub MAKEvossde {
- my $docdir = "$DEST/doc/german/$package";
- &SYSTEM("mkdir -p $docdir");
- &SYSTEM("$CP -r $packagedir/* $docdir");
- &SYSTEM("rm -r $docdir/mathmode");
-}
-
-
-# wadalab provides nearly TDS-ready .tar.gz with additional stuff
-#
-sub MAKEwadalab
-{
- print "MAKEwadalab $package - munge tds-ready tarballs\n";
- &setup;
- &xchdir ("$DEST/doc/$whichdocformat/$package");
-
- # each XX.tar.gz contains a tds-ready tree under XX/texmf: use it
- opendir (HERE, ".") || die "opendir(.) failed: $!";
- my @tarfiles = grep /\.tar\.gz$/, readdir HERE;
- closedir (HERE);
- #
- my $destfonts = "$DEST/fonts";
- &SYSTEM ("mkdir -p $destfonts");
- foreach my $tarfile (@tarfiles) {
- &SYSTEM ("tar xzf $tarfile && rm $tarfile");
- $tarfile =~ s/\.tar\.gz$//;
- &SYSTEM ("cp -r $tarfile/texmf/* $DEST");
- &SYSTEM ("rm -r $tarfile/texmf && rmdir $tarfile");
- }
- #
- # except the mincho-1-8-* tarball misses the doc/fonts level.
- &SYSTEM ("$MV $DEST/doc/wadalab/* $DEST/doc/fonts/wadalab/");
- #
- # wadalab has a dir of xdelta from the original fonts. Remove it.
- -d "xdelta" && &SYSTEM ("rm -rf xdelta");
- #
- # rm unused directories.
- &SYSTEM ("rmdir $DEST/*/$whichformat/$package 2>/dev/null");
-}
-
-
-sub MAKEwordcount
-{
- &xchdir ($packagedir);
- #
- print "\t SPECIAL $package: moving wordcount.sh to /tmp\n";
- &SYSTEM('mv wordcount.sh /tmp/');
- #
- &xchdir ("..");
- &donormal ();
- #
- print "YOU-MUST-DO! update /tmp/wordcount.sh to source/texk/texlive\n";
-}
-
-sub MAKEukrhyph {
- chdir($packagedir) || die ("ERROR: cannot open directory");
- &runjob("mkdir -p $DEST/tex/generic/ukrhyph");
- &runjob("mkdir -p $DEST/doc/generic/ukrhyph");
- &runjob("$CP README $DEST/doc/generic/ukrhyph");
- &runjob("$CP *.* $DEST/tex/generic/ukrhyph");
- &runjob("$MV $DEST/tex/generic/ukrhyph/*.pdf $DEST/doc/generic/ukrhyph");
- &runjob("rm $DEST/tex/generic/ukrhyph/*.ps");
- }
-
-# The jadetex distribution is a mess. Last updated in 2003, so no point in
-# trying to push changes upstream that I can see, though.
-sub MAKEjadetex
-{
- # Unpack the tarball.
- &SYSTEM ("cd $packagedir && tar xf jadetex*.tar.gz && mv jadetex-*/* .");
- &SYSTEM ("cd $packagedir && (rm -rf jadetex-3* doc/.cvsignore)");
-
- # Get rid of the useless doc/ dir.
- &MAKEflatten ();
-
- # Rename resulting jadetex/jadetex dirs to jadetex/base.
- &xchdir ($DEST);
- for my $dir ("doc", "source", "tex") {
- &SYSTEM ("$MV $dir/jadetex/jadetex $dir/jadetex/base");
- }
-
- # This didn't get flattened since there's a name clash.
- &SYSTEM ("$MV doc/jadetex/base/doc/Makefile doc/jadetex/base");
-
- # Their pdfjadetex.ini predates pdftexconfig.tex.
- my $pdfini = "tex/jadetex/base/pdfjadetex.ini";
- &SYSTEM ("(echo '\\input pdftexconfig.tex'; cat $pdfini) >/tmp/pj$$;
- mv /tmp/pj$$ $pdfini");
-}
-
-sub MAKElfb
-{
- # remove pregenerated pk files.
- &MAKEflatten ();
- print "\t SPECIAL removing lfb PK files\n";
- &SYSTEM("rm *pk");
-}
-
-sub MAKEliterat {
- &xchdir($packagedir);
- &runjob("mkdir -p $DEST/fonts/tfm/paragrap/literat");
- &runjob("mkdir -p $DEST/fonts/vf/paragrap/literat");
- &runjob("mkdir -p $DEST/fonts/type1/paragrap/literat");
- &runjob("mkdir -p $DEST/fonts/afm/paragrap/literat");
- &runjob("mkdir -p $DEST/tex/latex/literat");
- &runjob("mkdir -p $DEST/dvips/literat");
- &runjob("mkdir -p $DEST/doc/fonts/literat");
-
- &runjob("$CP dvips/* $DEST/dvips/literat");
- &runjob("$CP tex/*tex $DEST/doc/fonts/literat");
- &runjob("$CP psfonts/*pfb $DEST/fonts/type1/paragrap/literat");
- &runjob("$CP psfonts/*inf $DEST/fonts/type1/paragrap/literat");
- &runjob("$CP psfonts/*afm $DEST/fonts/afm/paragrap/literat");
- &runjob("$CP tex/*sty tex/*fd $DEST/tex/latex/literat");
- &runjob("$CP tfm/* $DEST/fonts/tfm/paragrap/literat");
- &runjob("$CP tfm-raw/* $DEST/fonts/tfm/paragrap/literat");
- &runjob("$CP vf/* $DEST/fonts/vf/paragrap/literat");
- &runjob("$CP [A-Z]* insta* license $DEST/doc/fonts/literat");
- }
-
-
-sub MAKExmltex
-{
- &xchdir($packagedir);
- &runjob("mkdir -p $DEST/tex/xmltex/config");
- &runjob("mkdir -p $DEST/tex/xmltex/base");
- &runjob("mkdir -p $DEST/doc/xmltex/base");
-
- &runjob("$CP *.ini $DEST/tex/xmltex/config");
- &runjob("$CP xmltex.tex *xmt xmltex.cfg $DEST/tex/xmltex/base");
- &runjob("$CP manual* *xml test* *txt $DEST/doc/xmltex/base");
- }
-
-sub MAKEbase {
- &SYSTEM("mkdir -p $DEST/tex/latex/base");
- &SYSTEM("mkdir -p $DEST/doc/latex/base");
- &SYSTEM("mkdir -p $DEST/doc/latex/base");
- if (-f "$packagedir/00Contents" ) { unlink "$packagedir/00Contents" ; }
- &SYSTEM("$CP -r $packagedir/* $DEST/doc/latex/base");
- chdir($packagedir) || die ("ERROR: cannot open directory");
- $package="base";
- $DEST="$TDS/ltxbase/texmf-dist";
- print "!$whichformat $packagedir ($package) -> $DEST\n";
- &donormal;
- }
-
-sub MAKEfancyvrb {
- &setup;
- chdir("$DEST/doc/latex/$package");
- print "\t SPECIAL $package: move contrib\n";
- &SYSTEM("$MV contrib/README README.contrib");
- &SYSTEM("$MV contrib/* .; rmdir contrib");
- &buildfilelist;
- &donormal("nosetup");
-}
-
-sub MAKEfeatpost {
- &setup;
- chdir("$DEST/doc/metapost/$package")
- || die "chdir($DEST/doc/metapost/$package) failed: $!";
- print "\t SPECIAL $package, leaving most in doc\n";
- @filenames = glob("macro/*.mp");
- &install("$DEST/metapost/featpost", ".mp");
- &SYSTEM("rm -rf system"); # seeing his texmf.cnf will only confuse people
-}
-
-sub MAKEucs {
- &setup;
- chdir("$DEST/doc/latex/$package");
- &SYSTEM("$MV data $DEST/tex/latex/ucs");
- &SYSTEM("$MV *def *sty $DEST/tex/latex/ucs");
- &SYSTEM("$MV contrib/* $DEST/tex/latex/ucs");
-}
-
-sub MAKEtexsis {
- &setup;
- chdir("$DEST/doc/texsis/$package");
- &SYSTEM("make TXSsite.tex");
- &buildfilelist;
- &donormal;
- &SYSTEM("rm *.ps");
-}
-
-
-sub MAKEIEEEtran {
- print "\t SPECIAL renaming README files, then flatten\n";
- chdir ($packagedir) || die "chdir($packagedir) failed: $!";
- &SYSTEM('for f in *; do test -r $f/README && mv $f/README README.$f; done');
- chdir ("..");
- &MAKEflatten;
- # let's not worry about the fact that the tex run on testflow fails (it
- # wants a paper size); we still get the distributed pdf, which is good enough.
-}
-
-sub MAKEbardiag {
- &setup;
- chdir("$DEST/doc/latex/$package");
- &SYSTEM("$MV doc/* .");
- &buildfilelist;
- &donormal;
-}
-
-
-sub MAKEmathpazo {
- &setup;
- chdir("$DEST/doc/latex/$package");
- &SYSTEM("$MV latex/* type1/* afm/* vf/* tfm/* dvips/* .; rmdir latex type1 afm vf tfm dvips");
- &buildfilelist;
- &donormal;
-}
-
-sub MAKEhaprosper {
- &setup ("nocopytodoc"); # create dirs but that's all
- chdir("$packagedir");
- &SYSTEM("mkdir -p $DEST");
- print "\t SPECIAL copying HA-prosper\n";
- &SYSTEM("$CP -r README Doc/* $DEST/doc/latex/HA-prosper");
- &SYSTEM("$CP -r Run/* $DEST/tex/latex/HA-prosper");
- &SYSTEM("$CP -r Source/* $DEST/source/latex/HA-prosper");
-}
-
-sub MAKEpclnfss {
- chdir("$packagedir");
- &SYSTEM("mkdir -p $DEST/source/fonts/pclnfss");
- &SYSTEM("mkdir -p $DEST/doc/fonts/pclnfss");
- &SYSTEM("$CP -r [A-Z]* $DEST/doc/fonts/pclnfss");
- &SYSTEM("$CP -r fonts $DEST");
- &SYSTEM("$CP -r tex $DEST");
- &SYSTEM("$CP -r src/* tests $DEST/source/fonts/pclnfss");
-
-}
-
-sub MAKEpdf_forms_tutorial
-{
- # called for both the en and de versions. both are the same catalogue
- # entry, which is rather excruciating for us.
- &xchdir ($packagedir);
-
- my $lang;
- my $ll = substr ($package, -2); # en or de
- if ($ll eq "en") {
- $lang = "english";
- } elsif ($ll eq "de") {
- $lang = "german";
- } else {
- die "unexpected language code for $package: $ll";
- }
-
- my $dest_lang = "$DEST/doc/$lang";
- my $dest_pkg = "$dest_lang/pdf-forms-tutorial-$ll";
- &SYSTEM ("mkdir -p $dest_lang");
- &SYSTEM ("$CP -r $ll $dest_pkg");
- &SYSTEM ("$CP README fdl.txt $dest_pkg");
-}
-
-sub MAKEbeamer {
- &xchdir ($packagedir);
- my $destdoc = "$DEST/doc/latex/beamer";
- &SYSTEM ("mkdir -p $destdoc");
- &SYSTEM ("$CP -r * $destdoc");
- &xchdir ($destdoc);
-
- my $desttex = "$DEST/tex/latex/beamer";
- &SYSTEM("mkdir -p $desttex");
- &SYSTEM("$MV base/* themes emulation extensions/multimedia $desttex");
-}
-
-
-# this doesn't work.
-sub MAKEbeebe {
- &setup;
- print "\t SPECIAL moving beebe .bib and .bst\n";
- chdir ("$DEST/doc/latex/$package") || die;
- &SYSTEM("mkdir -p $DEST/bibtex/bib/beebe $DEST/bibtex/bst/beebe");
- &SYSTEM("$MV tex*.bib tug*.bib $DEST/bibtex/bib/beebe");
-#xx ugh, they aren't there &SYSTEM("$MV *.bst $DEST/bibtex/bst/beebe");
- &SYSTEM("rm *");
-
-}
-# pstricks packages usually support both plain and latex.
-#
-sub MAKEpst
-{
- print "\t SPECIAL pst $package starts\n";
- $standardtex = qq{^$package(Obj)?\.(tex|sty)}; # for pst-laboObj.tex
- $whichformat='generic';
- $whichdocformat='generic';
- $specialsourcefmt{$package}='generic';
- $specialsource{$package} = "Makefile|$standardsource";
- &setup;
- &xchdir("$DEST/doc/$whichdocformat/$package");
- &buildfilelist;
-
- $inspatt=$standardins if ! $inspatt;
- &runins($inspatt);
- &buildfilelist;
- &dosource;
- &dotex;
- &dotype1;
- killfiles($standardclean);
- &killfiles ($moreclean{$package}, "more") if $moreclean{$package};
- &SYSTEM("mkdir -p $DEST/tex/latex/$package");
- &SYSTEM("mv $DEST/tex/generic/$package/*sty $DEST/tex/latex/$package");
- &SYSTEM("mv $DEST/doc/generic/$package/*cfg $DEST/tex/latex/$package");
-}
-
-sub MAKEpstgeo
-{
- print "\t SPECIAL pst-geo $package starts\n";
- $standardtex = qq{^$package(Obj)?\.(tex|sty)}; # for pst-laboObj.tex
- $whichformat='generic';
- $whichdocformat='generic';
- $specialsourcefmt{$package}='generic';
- &setup;
- &xchdir("$DEST/doc/$whichdocformat/$package");
- -d <*/*/*/*/*/.> && &SYSTEM("$MV -f */*/*/*/* .");
- -d <*/*/*/*/.> && &SYSTEM("$MV -f */*/*/* .");
- -d <*/*/*/.> && &SYSTEM("$MV -f */*/* .");
- -d <*/*/.> && &SYSTEM("$MV -f */*/* .");
- -d <*/.> && &SYSTEM("$MV -f */* .");
- &SYSTEM("find -type d -print | xargs rmdir 2>/dev/null");
- &SYSTEM("find -type f -print >/tmp/find");
- &buildfilelist;
-
- $inspatt=$standardins if ! $inspatt;
- &runins($inspatt);
- &buildfilelist;
- &dosource;
- &dotex;
- &dotype1;
- killfiles($standardclean);
- &SYSTEM("mkdir -p $DEST/tex/latex/$package");
- &SYSTEM("mv $DEST/tex/generic/$package/*sty $DEST/tex/latex/$package");
- &SYSTEM("mv $DEST/doc/generic/$package/*sty $DEST/tex/latex/$package");
- &SYSTEM("mv $DEST/doc/generic/$package/*cfg $DEST/tex/latex/$package");
-}
-
-
-sub MAKEfontinst
-{
- &xchdir ($packagedir);
- &runjob("mkdir -p $DEST/tex/latex/fontinst");
- &runjob("mkdir -p $DEST/tex/fontinst");
- &runjob("mkdir -p $DEST/source/fontinst");
- &runjob("mkdir -p $DEST/doc/fontinst/base");
- &runjob("$CP -r examples test $DEST/doc/fontinst/base");
- &runjob("$CP -r doc/* README test $DEST/doc/fontinst/base");
- &runjob("$CP -r source $DEST/source/fontinst/base");
- &runjob("$CP -r latex/* $DEST/tex/latex/fontinst");
- &runjob("$CP -r inputs/* $DEST/tex/fontinst");
- print "\t YOU-MUST-DO $package copy fontinst.bat to bin/win32\n";
-}
-
-sub MAKEpsnfss {
- # we use the psnfss.zip from the latex-tds project.
- # But we don't want the actual tfm/vf; TL has many more tfm's (in
- # different packages), and we don't want to mess with that. So just
- # remove the fonts subdir -- except for the map files, which we do want.
- #
- print "\t SPECIAL $package omit fonts from latex-tds version\n";
-
- # Start with the usual straight copy.
- &MAKEcopy ();
-
- # Then remove the entire fonts tree.
- &xchdir ("$DEST/fonts");
- &SYSTEM ("rm -rf enc tfm vf");
-}
-
-
-# CJK
-
-sub I
-{
- my ($s, $d) = @_;
- &SYSTEM ("$INSTALL $s $DEST/$d");
-}
-
-sub MAKEcjk_common
-{
- print "\t SPECIAL $package wholesale rearranging for cjk\n";
-
- &xchdir ($packagedir);
- # also need cjk doc tarball. should move in next release.
- my $cjkdoc = "/home/ftp/tex-archive/language/chinese/cjk-4.8.1-doc.tar.gz";
- &SYSTEM ("tar -C ?.?.? -xf $cjkdoc --strip-components=1");
-
- # remove the version number top-level directory.
- &SYSTEM ("$RM *.zip && $MV ?.?.?/* . && rmdir ?.?.?");
-}
-
-sub MAKEcjk
-{
- &MAKEcjk_common ();
- #require "/home/karl/c/cjk.pl";
-}
-
-sub MAKEbin_cjkutils
-{
- &MAKEcjk_common ();
- #require "/home/karl/c/bin-cjkutils.pl";
-}
-
-sub MAKEc90
-{
- &MAKEcjk_common ();
- #require "/home/karl/c/c90.pl";
-}
-
-sub MAKEdnp
-{
- &MAKEcjk_common ();
- #require "/home/karl/c/dnp.pl";
- # have to mv texmf/fonts/sfd to texmf-dist/fonts/sfd/ttf2tpk and rm DNP.sfd
-}
-
-sub MAKEgaruda_c90
-{
- &MAKEcjk_common ();
- #require "/home/karl/c/garuda-c90.pl";
- # have to figure out how to get existing garuda/norasi files from
- # /home/ftp/tex-archive/language/thai/thailatex/fonts/
-}
-
-sub MAKEnorasi_c90
-{
- &MAKEcjk_common ();
- #require "/home/karl/c/norasi-c90.pl";
-}
-
-sub MAKEkarlcjk
-{
- print "\t SPECIAL $package wholesale rearranging\n";
- #
- &setup ();
- #
- # start by removing the version number top-level directory.
- &xchdir ($DOCDIR);
- &SYSTEM ("$RM *.zip && $MV 4.8.?/* . && rmdir 4.8.?");
- #
- &xchdir ($DEST);
- #
- # move contrib into source subdir.
- &SYSTEM ("$MV $DOCDIR/contrib source/latex/cjk/");
- #
- # rename texinput to tex/latex/cjk.
- &SYSTEM ("rmdir tex/latex/cjk; $MV $DOCDIR/texinput tex/latex/cjk");
- #
- # rename texlive, contains modified KS/HLaTeX .fd files.
- my $ksl_dest = "tex/latex/cjk/contrib/hlatex-texlive";
- &xmkdir ($ksl_dest);
- &SYSTEM ("$MV $DOCDIR/texlive $ksl_dest");
- #
- # move utils into source subdir too, wht we have in
- # Build/source/texk/cjkutils is a tiny subset.
- &SYSTEM ("$MV $DOCDIR/utils source/latex/cjk/");
- #
- # remove the thaifont runtime files which we painfully package separately.
- # but leave other thaifont files here, not worth dealing.
- &SYSTEM ("rm -rf source/latex/cjk/utils/thaifont/texmf");
- #
- # We need the wadalab fd files.
- my $wada_dest = "tex/latex/cjk/contrib/wadalab";
- &xmkdir ($wada_dest);
- &SYSTEM ("$MV source/latex/cjk/contrib/wadalab/*.fd* $wada_dest/");
-}
-
-sub MAKEcmlgc
-{
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &SYSTEM("rm -rf vtex");
- &MAKEflatten;
-}
-
-sub MAKEphonetic
-{
- &setup;
- &xchdir ("$DEST/doc/$whichdocformat/$package");
-
- print "\t SPECIAL MAKE$package\n";
- &SYSTEM ("$MV Doc/2e/* .");
-
- # do the usual.
- &buildfilelist;
- &donormal ("nosetup");
-}
-
-sub MAKEpict2e
-{
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &setup;
- chdir("$DEST/doc/$whichdocformat/$package");
- &buildfilelist;
-# run the .ins files (if any) supplied
- $inspatt = $specialins{$package} || $standardins;
- $Foundry = $specialfoundry{$package} || $standardfoundry;
- &runins($inspatt);
-# rebuild the list of files in the directory
- &SYSTEM("$MV pict2e-example.cfg pict2e.cfg");
- &buildfilelist;
- &dodvi;
-# rebuild again, as we have .dvi files now
- &buildfilelist;
- &dotex;
- &dosource;
- &SYSTEM("rmdir $DEST/tex/$whichformat/$package 2> /dev/null");
- &SYSTEM("rmdir $DEST/source/$whichformat/$package 2> /dev/null");
- &SYSTEM("rmdir $DEST/doc/$whichdocformat/$package 2> /dev/null");
- killfiles($standardclean);
-}
-
-
-sub MAKEpictex
-{
- &setup;
- chdir ($DOCDIR) || die "chdir($DOCDIR) failed: $!";
- &SYSTEM("rm -rf mathspic"); # separate package
- &SYSTEM("$MV addon/* .; rmdir addon");
- &donormal;
-}
-
-
-
-sub PREHOOK_cm_super
-{
- print "PREHOOK_$package - remove dvipdfm map files\n";
- # We generate our own dvipdfm (not to mention pdftex) map files.
- &SYSTEM ("$RM -rf dvipdfm");
-}
-
-sub PREHOOK_ibygrk
-{
- print "PREHOOK_$package - handle ibycus4.map\n";
- # ibygrk has two instances of the same file ibycus4.map; it is
- # both tex source and mf source. the usual method cannot deal, of course.
- &SYSTEM ("$MV fonts/source/public/ibycus4/ibycus4.map .");
- &SYSTEM ("$RM tex/generic/ibycus4/ibycus4.map");
-}
-
-sub PREHOOK_wsuipa
-{
- print "PREHOOK_$package - rearrange directories, except for doc\n";
- # we can't use flatten because we want to preserve the subdirs inside doc.
- # annoyingly, the same filenames are repeated.
- &SYSTEM ("$MV changes/* doc/* macros/* mf/* pk/* tfm/* .");
-}
-
-
-
-sub POSTcontext_lilypond {
- print "POST$package - creating package-level sunbdirectories\n";
- mkdir ("$DEST/doc/context/third/lilypond");
- &SYSTEM ("$MV $DEST/doc/context/third/t-lilypond.pdf "
- . "$DEST/doc/context/third/lilypond");
- mkdir ("$DEST/tex/context/third/lilypond");
- &SYSTEM ("$MV $DEST/tex/context/third/t-lilypond.tex "
- . "$DEST/tex/context/third/lilypond");
-}
-
-sub POSTelsarticle
-{
- print "POST$package - move contrib and src/* to source\n";
- &xchdir ("$DEST/doc/$whichdocformat/$package");
- warn `pwd`;
- warn `vdir`;
- my $dest = "$DEST/source/latex/$package";
- &xmkdir ($dest);
- # we don't need two copies of that file
- &SYSTEM ("rm contrib/elsdoc.pdf");
- &SYSTEM ("mv contrib $dest");
- &SYSTEM ("mv src/* $dest");
- &SYSTEM ("mv elsdoc.tex $dest");
- &SYSTEM ("rmdir src");
-}
-
-sub POSTfpl
-{
- print "POST$package - rename README.source\n";
- &SYSTEM ("$MV README.source $DEST/source/fonts/fpl/README");
-}
-
-sub POSTglossaries
-{
- print "POST$package - move .bat\n";
- my $wdir = "$TOPDEST/bin/win32";
- &SYSTEM ("mkdir -p $wdir");
- &SYSTEM ("$CP $DEST/scripts/glossaries/makeglossaries.bat $wdir/");
-}
-
-sub POSTibygrk
-{
- print "POST$package - second copy of ibycus4.map\n";
- # after the ibygrk structure has been set up, copy ibycus4.map to the
- # tex dir.
- &SYSTEM ("cd $DEST && $CP fonts/source/public/ibygrk/ibycus4.map "
- . "tex/generic/ibygrk/ibycus4.map");
-}
-
-sub POSTimpatient
-{
- print "POST$package - remove fr subdirectory\n";
- &SYSTEM ("$RM -r fr");
-}
-
-sub POSTinteractiveworkbook
-{
- print "POST$package - mv .sty directory\n";
- my $dest = "$DEST/tex/latex/$package";
- &SYSTEM ("mkdir -p $dest");
- &SYSTEM ("$MV interactiveworkbook.sty/* $dest/");
- &SYSTEM ("rmdir interactiveworkbook.sty");
-}
-
-sub POSTknuth
-{
- print "POST$package - rearranging for texmf-doc\n";
- &xchdir ("$DEST/doc");
- &xmkdir ("english");
- &SYSTEM ("$MV knuth english");
- &SYSTEM ("$MV ../source/knuth english/knuth/source");
- &xchdir ("english/knuth");
- #
- # remove nonfree.
- &SYSTEM ("$RM tex/texbook.tex mf/mfbook.tex");
- #
- # remove sources that are in build tree.
- &xchdir ("source");
- &SYSTEM ("rm -rf etc mf mfware tex/tex.web tex/trip* texware web/*.web");
-}
-
-sub POSTkoma
-{
- print "POST$package - removing symlinks\n";
- &SYSTEM ("find $DEST -type l | xargs --no-run-if-empty rm");
-}
-
-sub POSTlatex2html
-{
- print "POST$package - moving $package.perl to doc\n";
- my $dest = "$DEST/doc/latex/$package";
- &SYSTEM ("mkdir -p $dest");
- &SYSTEM ("$MV $DEST/scripts/latex2html/styles/$package.perl $dest");
-}
-
-sub POSTlatex2man
-{
- print "POST$package\n";
- &SYSTEM ("$MV $package.info /tmp");
- print "YOU-MUST-DO! update /tmp/$package.info into texmf/doc/info\n";
-}
-
-sub POSTlibertine
-{
- print "POST$package - remove duplicates, nosource docs";
- # has to be a post routine instead of moreclean because we have to
- # remove a file in a non-doc directory.
- #
- # no source for doku.pdf.
- &SYSTEM ("$RM doc/fonts/libertine/libertinedoku.pdf");
- #
- # these files are in babel and/or ibyhyph.
- &SYSTEM ("$RM -rf tex/latex/libertine/babel");
-}
-
-sub POSTlithuanian
-{
- print "\t SPECIAL $package remove old language support\n";
- #
- # these files are no longer used in TL.
- &SYSTEM ("$RM language.lt.dat $DEST/tex/latex/lithuanian/language.lt.def");
-}
-
-sub POSTpgf
-{
- print "POST$package - mv generic+latex directories\n";
- &SYSTEM ("cd $DEST && mkdir tex && mv context generic latex plain tex");
-}
-
-sub POSTpstcox
-{
- print "POST$package - mv latex .sty, doc Gallery\n";
- &SYSTEM ("mkdir -p $DEST/tex/latex/$package");
- &SYSTEM ("mv -v $DEST/doc/generic/$package/*sty $DEST/tex/latex/$package");
- &xchdir ("$DEST/doc/generic/$package");
- &SYSTEM ("mkdir pst-coxeterp/");
- # oops, depends on find order
- &SYSTEM ("mv -v Gallery.tex pst-coxeterp?* pst-coxeterp/");
- &SYSTEM ("mv -v doc/pst-coxcoor/ pst-coxcoor");
- &SYSTEM ("mv -v pst-coxcoor?* pst-coxcoor");
-}
-
-sub POSTxecjk
-{
- print "POST$package - capitalization, moving non-TDS\n";
-
- &xmkdir ("$DEST/source/xelatex");
- &SYSTEM ("$MV $DEST/utils/xeCJK $DEST/source/xelatex/xecjk");
-
- &SYSTEM ("$MV $DEST/tex/xelatex/xeCJK $DEST/tex/xelatex/xecjk");
- &SYSTEM ("$MV $DEST/doc/xelatex/xeCJK $DEST/doc/xelatex/xecjk");
-
- # the one in MAKEcopy doesn't get it because .../xecjk doesn't exist
- # yet. Not worth a prehook, author should fix.
- &SYSTEM ("$MV $DEST/README $DEST/doc/xelatex/xecjk/README");
-}
-
-sub POSTxecyr
-{
- print "POST$package - handling bat, moving language.dat.add from runtime\n";
- &SYSTEM ("$MV $DEST/tex/generic/xecyr/language.dat.add"
- . " $DEST/doc/xelatex/xecyr");
-
- my $wdir = "$TOPDEST/bin/win32";
- &xmkdir ($wdir);
- &SYSTEM ("$MV $DEST/bin/xecyr/*.bat $wdir/");
-}
-
-sub POSTxetex_pstricks
-{
- print "POST$package - need tex/ level\n";
- &xchdir ($DEST);
- &xmkdir ("tex", "doc/generic/$package");
- &SYSTEM ("$MV README doc/generic/$package");
- &SYSTEM ("$MV generic xelatex xetex tex");
-}
-
-sub POSTxstring
-{
- print "POST$package - xstring.sty under latex\n";
- &xchdir ($DEST);
- &xmkdir ("tex/latex/$package");
- &SYSTEM ("$MV tex/$whichformat/$package/xstring.sty tex/latex/$package/");
-}
-
-
-# Allow overrides. In particular, CTAN can change some hashes to make
-# packages with licenses that TL doesn't allow.
-#
-# Put the config file "ctan2tds-config.pl" in the dir from which you
-# run this script, or better, set the environment variable "CTAN2TDS_CONFIG".
-#
-sub readconfig
-{
- my ($base,$dir,$ext) = fileparse ($0,'\.pl');
-
- my $configFileName = "$dir/$base-config.pl";
- $configFileName = $ENV{"CTAN2TDS_CONFIG"} || $configFileName;
-
- my $result;
- if (-f $configFileName) {
- my $err = "Error: CTAN config file $configFileName";
- $result = eval `cat $configFileName`; # like require, but no look in INC
- die "$err; evaluation in file failed: $@"
- if $@;
- die "$err; yielded result that is false"
- unless $result;
- } else {
- $result=1;
- }
- return $result;
-}
-
-# vim: set tabstop=8 shiftwidth=2 expandtab:
diff --git a/Master/tlpkg/bin/ctan2tl b/Master/tlpkg/bin/ctan2tl
index fec77eac587..c5ccd3046e1 100755
--- a/Master/tlpkg/bin/ctan2tl
+++ b/Master/tlpkg/bin/ctan2tl
@@ -7,8 +7,9 @@
unset CDPATH # avoid extraneous output
LC_ALL=C; export LC_ALL # avoid problems with diff, comm, etc
-mydir=`cd \`dirname $0\` && pwd` # Master/tlpkg/bin
-PATH=$mydir:$PATH # we call lots of our other tools
+mydir=`cd \`dirname $0\` && pwd` # Master/tlpkg/bin
+libexec=`cd $mydir/../libexec && pwd` # Master/tlpkg/libexec
+PATH=$mydir:$libexec:$PATH # we call lots of our other tools
Build=`cd $mydir/../../../Build && pwd`
raw=$Build/tmp.raw
diff --git a/Master/tlpkg/bin/place b/Master/tlpkg/bin/place
deleted file mode 100755
index b977cf6b914..00000000000
--- a/Master/tlpkg/bin/place
+++ /dev/null
@@ -1,301 +0,0 @@
-#!/usr/bin/env perl
-# $Id$
-# Public domain. Originally written by Sebastian Rahtz.
-#
-# Process a "cooked" tree directory (probably created by ctan2tds in
-# Build/tmp.cooked), and integrate into the main texmf trees.
-#
-# Basic usage: place PKG
-# to process ./PKG. Best invoked from ctan2tl, not directly.
-
-BEGIN {
- chomp ($mydir = `dirname $0`); # we are in Master/tlpkg/bin
- unshift (@INC, "$mydir/..");
-}
-
-use File::Basename;
-use File::Find;
-use Cwd;
-use TeXLive::TLConfig qw/$InfraLocation $DatabaseName/;
-use TeXLive::TLPSRC;
-use TeXLive::TLPOBJ;
-use TeXLive::TLPDB;
-use TeXLive::TLTREE;
-
-if ($ARGV[0] eq "-n") {
- $chicken = 1;
- shift;
-} else {
- $chicken = 0;
-}
-print "place: chicken mode = $chicken\n";
-
-die "usage: $0 PKGNAME\n" unless @ARGV == 1;
-$package = $ARGV[0];
-
-$newpackage = 0;
-%dirs = (); # dirs we make changes in
-$TMP = $ENV{"TMPDIR"} || "/tmp";
-$tmpfile = "$TMP/$>.tlplace"; # use effective uid in temp file names
-
-$cooked = getcwd(); # ctan2tl invokes us in the cooked dire
--d "$cooked/$package" || die "$0: No such package in $cooked: $package\n";
-
-&xchdir ("$mydir/../..");
-$M = getcwd();
-
-xchdir ("$cooked/$package");
-if (-d "texmf-dist") {$Root="texmf-dist"; }
-elsif (-d "texmf-doc") {$Root="texmf-doc"; }
-elsif (-d "texmf") {$Root="texmf"; }
-else { die ("no top level texmf in " . `pwd`); }
-
-if ($Root eq 'texmf-doc') {
- $Type = 'Documentation';
-} elsif ($Root eq 'texmf-dist') {
- $Type = 'Package';
-} elsif ($Root eq 'texmf') {
- # can't handle binary stuff yet, but can do some hyphenations.
- $Type = 'TLCore';
-} else {
- die "cannot handle Root=$Root";
-}
-
-die "top-level README in $Root, that can't be right" if -e "$Root/README";
-
-# initialize TLPDB
-my $tlpdb = new TeXLive::TLPDB ('root' => $M);
-# create TLTREE from stuff in cooked/$pkg
-my $tltree = TeXLive::TLTREE->new ('svnroot' => "$cooked/$package");
-$tltree->init_from_files;
-
-# get package from TLPDB;
-my $tlpold = $tlpdb->get_package ($package);
-if (defined($tlpold)) {
- foreach ($tlpold->all_files) {
- $Old{$_} = 1;
- }
-} else {
- $newpackage = 1;
-}
-
-# create new tlpsrc and tlpobj
-my $tlpsrc = TeXLive::TLPSRC;
-my $tlpsrcfile = "$M/tlpkg/tlpsrc/$package.tlpsrc";
-if (! -r $tlpsrcfile) {
- $tlpsrc->name($package);
- $tlpsrc->category($Type);
- if (!$chicken) {
- local *TLPSRC;
- $TLPSRC = ">$tlpsrcfile";
- open (TLPSRC) || die "open($TLPSRC) failed: $!";
- $tlpsrc->writeout(\*TLPSRC);
- close TLPSRC;
- }
-} else {
- $tlpsrc->from_file($tlpsrcfile);
-}
-
-# make the new tlpobj.
-my $tlpnew = $tlpsrc->make_tlpobj($tltree, $M);
-
-# we took over the comparison of files from the ctan2tl script since
-# we are here in perl world, which makes it easier ...
-print "\n\f ";
-if (!defined($tlpold)) {
- print "place: $package not present in $M/$InfraLocation/$DatabaseName\n\n";
-} else {
- print "new vs. present $package (present is indented)\n";
- my @oldfiles = $tlpold->all_files;
- `rm -f $tmpfile.old`;
- foreach (sort @oldfiles) {
- `echo $_ >>$tmpfile.old`;
- }
- my @newfiles = $tlpnew->all_files;
- `rm -f $tmpfile.new`;
- foreach (sort @newfiles) {
- `echo $_ >>$tmpfile.new`;
- }
- print `comm -3 $tmpfile.new $tmpfile.old`;
- my @difffiles = `comm -12 $tmpfile.new $tmpfile.old`;
- chomp (@difffiles);
- my $sum = 0;
- my $identical = 0;
- #
- my $diff_file = "$tmpfile.diff";
- unlink ($diff_file);
- my $diff_cmd = "diff --text --strip-trailing-cr --ignore-all-space -U 0 -s";
- #
- for my $f (@difffiles) {
- my $master_file = "$M/$f";
- my $cooked_file = "$cooked/$package/$f";
- # diff has no options for handling Mac line endings; the above
- # don't suffice. So use our own script for the initial comparison.
- if (system ("cmp-textfiles '$master_file' '$cooked_file'") == 0) {
- $identical++;
- } else {
- my @diff_out = `$diff_cmd $master_file $cooked_file | tee -a $diff_file`;
- $sum += $#diff_out - 2; # zero-based, so first line doesn't count.
- # subtract another two lines for the heading
- # and at least one hunk marker.
- }
- }
- my $nrcommfiles = @difffiles;
- #
- my $changed = $nrcommfiles - $identical;
- print "$nrcommfiles common files, $changed changed, ~$sum lines different ($diff_file)\n\n\f\n";
- #`rm -f $tmpfile.*`
-}
-
-&xchdir ("$cooked/$package");
-
-print "place: checking for case-insensitive clashes\n";
-print `find . '(' -name .svn ')' -prune -o -print | sort | uniq -i -d`;
-print "\n";
-
-find (\&files, ".");
-foreach $file (sort keys %Old) {
- my $status = $New{$file} ? "retained" : "removed";
- print "* $file\t[$status]\n";
-
- # if the old file does not exist, don't try to remove it -- we
- # probably did so by hand and didn't bother to update.
- next unless -e "$M/$file";
-
- # remove old files.
- if (! $New{$file}) {
- &xsystem ("svn remove $M/$file");
- }
-
- my $dname = dirname ("$M/$file");
- $dirs{$dname}++;
-}
-
-# copy files
-my $job = "tar cf - . | (cd $M && tar xf - )";
-&xsystem ($job);
-
-# sort so dirs will be added before subdirs.
-foreach $file (sort keys %New) {
- if (! $Old{$file}) {
- &add_file ("$M/$file");
- }
-}
-
-&xchdir ($cooked);
-&xsystem ("mv $package $package.done");
-
-
-if ($newpackage) {
- &add_file ("$M/tlpkg/tlpsrc/$package.tlpsrc");
-}
-
-# this file will often change, so be sure and include it.
-$dirs{"$M/tlpkg/tlpsrc/$package.tlpsrc"}++;
-
-# print dirs with changed files, for svn commit purposes.
-# if other files have been modified in those same dirs, though, this
-# won't detect it. It would be better to list exactly the *files* which
-# should be committed, but ... lazy.
-#
-# also write dir list to a separate file, for easy passing to a commit.
-#
-my $dirlist_file = "$tmpfile.dirs";
-$DIRLIST = ">$dirlist_file";
-open (DIRLIST) || die "open($DIRLIST) failed: $!";
-#
-print "place: directories are:\n";
-for my $dir (sort keys %dirs) {
- print "$dir\n";
- print DIRLIST "$dir\n";
-}
-#
-close (DIRLIST) || warn "close($DIRLIST) failed: $!";
-
-# Always run svn update, even without --place. This will let a user
-# detect that a particular package update has already been done by
-# someone else.
-print ("\nsvn update of those directories:\n");
-system ("svn update `cat $dirlist_file`");
-
-exit (0);
-
-
-
-#--------------------------------------
-sub dirs
-{
- local @filenames;
- if (-d) {
- @filenames=&buildfilelist($File::Find::name);
- if (!@filenames) { rmdir $File::Find::name;}
- }}
-
-sub buildfilelist
-{
- my($me) = @_;
- my @files;
- opendir(DIR,$me) || cleanup ("cannot open directory $me");
- @files =grep(!/^\.\.?/,readdir(DIR));
- closedir(DIR);
- return @files;
-}
-
-
-sub files
-{
- if (-f || -l) { # consider files or symlinks
- $This = $File::Find::name;
- $This =~ s/^\.\///;
- $New{$This} = 1;
- }
-}
-
-
-# add a file to the repository. for svn, we also have to add the
-# containing dir, and the parent of that dir, if they are new.
-# (Should really just traverse )
-#
-sub add_file
-{
- my ($newfile) = @_;
-
- # when it's needed, (grand)parents must come first, else have svn "not
- # working copy".
- my $newdir = $dir = dirname ($newfile);
- my $needed_dirs = "";
- until (-d "$dir/.svn") {
- $needed_dirs = "$dir $needed_dirs"; # parents first
- $dirs{$dir}++;
- $dir = dirname ($dir);
- }
- &xsystem ("svn add -N $needed_dirs") if $needed_dirs;
-
- &xsystem ("svn add $newfile");
-
- # remember that we changed this directory.
- $dirs{$newdir}++;
-}
-
-
-sub xchdir
-{
- my ($dir) = @_;
- chomp (my $pwd = `pwd`);
- chdir ($dir) || die "chdir($dir) failed: $!\n(cwd=$pwd)";
- print "place: chdir($dir)\n";
-}
-
-
-sub xsystem
-{
- my ($cmd) = @_;
-
- print "place: SYSTEM $cmd\n";
-
- unless ($chicken) {
- my $ret = system ($cmd);
- $ret /= 256;
- die "`$cmd' failed, status=$ret, goodbye\n" if $ret != 0;
- }
-}