summaryrefslogtreecommitdiff
path: root/Master/bin/i386-kfreebsd
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-03-08 00:54:42 +0000
committerKarl Berry <karl@freefriends.org>2010-03-08 00:54:42 +0000
commit16d4328eddf7525d22a0e8b113432a9ed343935b (patch)
treedcdc49f0d4ce55a929a5d7237b82135735a4be69 /Master/bin/i386-kfreebsd
parent5d87b075aeb9584d0c74eb35ba7c9b45de6ee7ff (diff)
binaries for i386-kfreebsd, from Alan Braslau
git-svn-id: svn://tug.org/texlive/trunk@17370 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/bin/i386-kfreebsd')
l---------Master/bin/i386-kfreebsd/a2ping1
l---------Master/bin/i386-kfreebsd/afm2afm1
-rwxr-xr-xMaster/bin/i386-kfreebsd/afm2plbin0 -> 84088 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/afm2tfmbin0 -> 89388 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/alephbin0 -> 506792 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/allcm118
l---------Master/bin/i386-kfreebsd/allec1
-rwxr-xr-xMaster/bin/i386-kfreebsd/allneeded46
l---------Master/bin/i386-kfreebsd/amstex1
l---------Master/bin/i386-kfreebsd/autoinst1
-rwxr-xr-xMaster/bin/i386-kfreebsd/bboxbin0 -> 7364 bytes
l---------Master/bin/i386-kfreebsd/bg5+latex1
l---------Master/bin/i386-kfreebsd/bg5+pdflatex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/bg5convbin0 -> 3392 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/bg5latex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/bg5pdflatex43
l---------Master/bin/i386-kfreebsd/bibexport1
-rwxr-xr-xMaster/bin/i386-kfreebsd/bibtexbin0 -> 149432 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/bibtex8bin0 -> 178380 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/bibtexubin0 -> 17371592 bytes
l---------Master/bin/i386-kfreebsd/cachepic1
-rwxr-xr-xMaster/bin/i386-kfreebsd/cef5convbin0 -> 4608 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/cef5latex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/cef5pdflatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/cefconvbin0 -> 4504 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/ceflatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/cefpdflatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/cefsconvbin0 -> 4640 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/cefslatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/cefspdflatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/cfftot1bin0 -> 401776 bytes
l---------Master/bin/i386-kfreebsd/cmap2enc1
l---------Master/bin/i386-kfreebsd/context1
l---------Master/bin/i386-kfreebsd/cslatex1
l---------Master/bin/i386-kfreebsd/csplain1
-rwxr-xr-xMaster/bin/i386-kfreebsd/ctanglebin0 -> 92232 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/ctiebin0 -> 71612 bytes
l---------Master/bin/i386-kfreebsd/ctxtools1
-rwxr-xr-xMaster/bin/i386-kfreebsd/cweavebin0 -> 123560 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/detexbin0 -> 83812 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/devnagbin0 -> 25444 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/disdvibin0 -> 10100 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dt2dvbin0 -> 31612 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dv2dtbin0 -> 10700 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvi2fax41
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvi2ttybin0 -> 20096 bytes
l---------Master/bin/i386-kfreebsd/dviasm1
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvibookbin0 -> 21116 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dviconcatbin0 -> 19004 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvicopybin0 -> 104384 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvidvibin0 -> 18752 bytes
l---------Master/bin/i386-kfreebsd/dvigif1
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvihp131
-rwxr-xr-xMaster/bin/i386-kfreebsd/dviljbin0 -> 103276 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvilj2pbin0 -> 103628 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvilj4bin0 -> 110892 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvilj4lbin0 -> 110892 bytes
l---------Master/bin/i386-kfreebsd/dvilj61
l---------Master/bin/i386-kfreebsd/dvilualatex1
l---------Master/bin/i386-kfreebsd/dviluatex1
l---------Master/bin/i386-kfreebsd/dvipdfm1
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvipdfmxbin0 -> 709112 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvipdft105
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvipngbin0 -> 955516 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dviposbin0 -> 94460 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvipsbin0 -> 224464 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvired98
-rwxr-xr-xMaster/bin/i386-kfreebsd/dviselectbin0 -> 20508 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvisvgmbin0 -> 1510088 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvitodvibin0 -> 24284 bytes
l---------Master/bin/i386-kfreebsd/dvitomp1
-rwxr-xr-xMaster/bin/i386-kfreebsd/dvitypebin0 -> 92396 bytes
l---------Master/bin/i386-kfreebsd/e2pall1
l---------Master/bin/i386-kfreebsd/ebb1
l---------Master/bin/i386-kfreebsd/ebong1
l---------Master/bin/i386-kfreebsd/eplain1
-rwxr-xr-xMaster/bin/i386-kfreebsd/epsffitbin0 -> 8264 bytes
l---------Master/bin/i386-kfreebsd/epspdf1
l---------Master/bin/i386-kfreebsd/epspdftk1
l---------Master/bin/i386-kfreebsd/epstopdf1
l---------Master/bin/i386-kfreebsd/etex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/extconvbin0 -> 3392 bytes
l---------Master/bin/i386-kfreebsd/extractbb1
-rwxr-xr-xMaster/bin/i386-kfreebsd/extractres96
l---------Master/bin/i386-kfreebsd/fig4latex1
l---------Master/bin/i386-kfreebsd/findhyph1
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixdlsrps54
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixfmps21
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixmacps95
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixpsditps25
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixpspps58
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixscribeps19
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixtpps28
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixwfwps33
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixwpps31
-rwxr-xr-xMaster/bin/i386-kfreebsd/fixwwps20
-rwxr-xr-xMaster/bin/i386-kfreebsd/fmtutil987
-rwxr-xr-xMaster/bin/i386-kfreebsd/fmtutil-sys29
l---------Master/bin/i386-kfreebsd/font2afm1
-rwxr-xr-xMaster/bin/i386-kfreebsd/fontinst16
l---------Master/bin/i386-kfreebsd/fragmaster1
-rwxr-xr-xMaster/bin/i386-kfreebsd/gbklatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/gbkpdflatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/getafm358
-rwxr-xr-xMaster/bin/i386-kfreebsd/gftodvibin0 -> 96188 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/gftopkbin0 -> 78328 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/gftypebin0 -> 79804 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/gsftopkbin0 -> 80452 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/hbf2gfbin0 -> 90500 bytes
l---------Master/bin/i386-kfreebsd/ht1
l---------Master/bin/i386-kfreebsd/htcontext1
l---------Master/bin/i386-kfreebsd/htlatex1
l---------Master/bin/i386-kfreebsd/htmex1
l---------Master/bin/i386-kfreebsd/httex1
l---------Master/bin/i386-kfreebsd/httexi1
l---------Master/bin/i386-kfreebsd/htxelatex1
l---------Master/bin/i386-kfreebsd/htxetex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/includeres46
l---------Master/bin/i386-kfreebsd/jadetex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/kpseaccessbin0 -> 4168 bytes
l---------Master/bin/i386-kfreebsd/kpsepath1
-rwxr-xr-xMaster/bin/i386-kfreebsd/kpsereadlinkbin0 -> 4120 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/kpsestatbin0 -> 4716 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/kpsetool118
-rwxr-xr-xMaster/bin/i386-kfreebsd/kpsewhere63
-rwxr-xr-xMaster/bin/i386-kfreebsd/kpsewhichbin0 -> 72864 bytes
l---------Master/bin/i386-kfreebsd/kpsexpand1
-rwxr-xr-xMaster/bin/i386-kfreebsd/lacheckbin0 -> 54984 bytes
l---------Master/bin/i386-kfreebsd/lamed1
l---------Master/bin/i386-kfreebsd/latex1
l---------Master/bin/i386-kfreebsd/latex2man1
l---------Master/bin/i386-kfreebsd/latexdiff1
l---------Master/bin/i386-kfreebsd/latexdiff-vc1
l---------Master/bin/i386-kfreebsd/latexmk1
l---------Master/bin/i386-kfreebsd/latexrevise1
l---------Master/bin/i386-kfreebsd/listings-ext.sh1
l---------Master/bin/i386-kfreebsd/lualatex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/luatanglebin0 -> 92092 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/luatexbin0 -> 5026312 bytes
l---------Master/bin/i386-kfreebsd/luatools1
-rwxr-xr-xMaster/bin/i386-kfreebsd/magbin0 -> 4348 bytes
l---------Master/bin/i386-kfreebsd/makeglossaries1
-rwxr-xr-xMaster/bin/i386-kfreebsd/makeindexbin0 -> 133868 bytes
l---------Master/bin/i386-kfreebsd/makempy1
l---------Master/bin/i386-kfreebsd/man1
l---------Master/bin/i386-kfreebsd/metafun1
l---------Master/bin/i386-kfreebsd/mex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/mfbin0 -> 310124 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/mf-nowinbin0 -> 303624 bytes
l---------Master/bin/i386-kfreebsd/mfplain1
-rwxr-xr-xMaster/bin/i386-kfreebsd/mftbin0 -> 102216 bytes
l---------Master/bin/i386-kfreebsd/mk4ht1
l---------Master/bin/i386-kfreebsd/mkgrkindex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/mkindex39
l---------Master/bin/i386-kfreebsd/mkjobtexmf1
-rwxr-xr-xMaster/bin/i386-kfreebsd/mkocp6
-rwxr-xr-xMaster/bin/i386-kfreebsd/mkofm3
l---------Master/bin/i386-kfreebsd/mkt1font1
l---------Master/bin/i386-kfreebsd/mktexfmt1
-rwxr-xr-xMaster/bin/i386-kfreebsd/mktexlsr201
-rwxr-xr-xMaster/bin/i386-kfreebsd/mktexmf139
-rwxr-xr-xMaster/bin/i386-kfreebsd/mktexpk265
-rwxr-xr-xMaster/bin/i386-kfreebsd/mktextfm152
l---------Master/bin/i386-kfreebsd/mllatex1
l---------Master/bin/i386-kfreebsd/mltex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/mmafmbin0 -> 282984 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/mmpfbbin0 -> 348552 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/mpostbin0 -> 491784 bytes
l---------Master/bin/i386-kfreebsd/mpstools1
l---------Master/bin/i386-kfreebsd/mptopdf1
l---------Master/bin/i386-kfreebsd/mtxrun1
l---------Master/bin/i386-kfreebsd/mtxtools1
-rwxr-xr-xMaster/bin/i386-kfreebsd/musixflxbin0 -> 14672 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/odvicopybin0 -> 108480 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/odvitypebin0 -> 96204 bytes
l---------Master/bin/i386-kfreebsd/ofm2opl1
-rwxr-xr-xMaster/bin/i386-kfreebsd/omfontsbin0 -> 156248 bytes
l---------Master/bin/i386-kfreebsd/opl2ofm1
l---------Master/bin/i386-kfreebsd/ot2kpx1
-rwxr-xr-xMaster/bin/i386-kfreebsd/otanglebin0 -> 92092 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/otfinfobin0 -> 472256 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/otftotfmbin0 -> 814056 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/otp2ocpbin0 -> 87916 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/outocpbin0 -> 67584 bytes
l---------Master/bin/i386-kfreebsd/ovf2ovp1
l---------Master/bin/i386-kfreebsd/ovp2ovf1
-rwxr-xr-xMaster/bin/i386-kfreebsd/patgenbin0 -> 31272 bytes
l---------Master/bin/i386-kfreebsd/pdfannotextractor1
l---------Master/bin/i386-kfreebsd/pdfatfi1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pdfclosebin0 -> 6484 bytes
l---------Master/bin/i386-kfreebsd/pdfcrop1
l---------Master/bin/i386-kfreebsd/pdfcslatex1
l---------Master/bin/i386-kfreebsd/pdfcsplain1
l---------Master/bin/i386-kfreebsd/pdfetex1
l---------Master/bin/i386-kfreebsd/pdfjadetex1
l---------Master/bin/i386-kfreebsd/pdflatex1
l---------Master/bin/i386-kfreebsd/pdfmex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pdfopenbin0 -> 7256 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/pdftexbin0 -> 1439184 bytes
l---------Master/bin/i386-kfreebsd/pdfthumb1
l---------Master/bin/i386-kfreebsd/pdftools1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pdftosrcbin0 -> 505640 bytes
l---------Master/bin/i386-kfreebsd/pdfxmltex1
l---------Master/bin/i386-kfreebsd/perltex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pfb2pfabin0 -> 6812 bytes
l---------Master/bin/i386-kfreebsd/pfm2kpx1
l---------Master/bin/i386-kfreebsd/physe1
l---------Master/bin/i386-kfreebsd/phyzzx1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pk2bmbin0 -> 9896 bytes
l---------Master/bin/i386-kfreebsd/pkfix1
l---------Master/bin/i386-kfreebsd/pkfix-helper1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pktogfbin0 -> 75704 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/pktypebin0 -> 71552 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/pltotfbin0 -> 51020 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/pooltypebin0 -> 18204 bytes
l---------Master/bin/i386-kfreebsd/ppower41
-rwxr-xr-xMaster/bin/i386-kfreebsd/ps2eps935
-rwxr-xr-xMaster/bin/i386-kfreebsd/ps2frag11
-rwxr-xr-xMaster/bin/i386-kfreebsd/ps2pkbin0 -> 170356 bytes
l---------Master/bin/i386-kfreebsd/ps4pdf1
-rwxr-xr-xMaster/bin/i386-kfreebsd/psbookbin0 -> 10740 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/pslatex46
-rwxr-xr-xMaster/bin/i386-kfreebsd/psmerge85
-rwxr-xr-xMaster/bin/i386-kfreebsd/psnupbin0 -> 18548 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/psresizebin0 -> 15988 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/psselectbin0 -> 11956 bytes
l---------Master/bin/i386-kfreebsd/pst2pdf1
l---------Master/bin/i386-kfreebsd/pstopdf1
-rwxr-xr-xMaster/bin/i386-kfreebsd/pstopsbin0 -> 16756 bytes
l---------Master/bin/i386-kfreebsd/purifyeps1
l---------Master/bin/i386-kfreebsd/repstopdf1
l---------Master/bin/i386-kfreebsd/rlxtools1
l---------Master/bin/i386-kfreebsd/rpdfcrop1
-rwxr-xr-xMaster/bin/i386-kfreebsd/rubibtex110
-rwxr-xr-xMaster/bin/i386-kfreebsd/rumakeindex77
l---------Master/bin/i386-kfreebsd/rungs1
l---------Master/bin/i386-kfreebsd/runtools1
-rwxr-xr-xMaster/bin/i386-kfreebsd/showchar118
l---------Master/bin/i386-kfreebsd/showglyphs1
l---------Master/bin/i386-kfreebsd/simpdftex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/sjisconvbin0 -> 3408 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/sjislatex43
-rwxr-xr-xMaster/bin/i386-kfreebsd/sjispdflatex43
l---------Master/bin/i386-kfreebsd/splitindex1
l---------Master/bin/i386-kfreebsd/svn-multi1
-rwxr-xr-xMaster/bin/i386-kfreebsd/synctexbin0 -> 117308 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1asciibin0 -> 23564 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1asmbin0 -> 27876 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1binarybin0 -> 23168 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1disasmbin0 -> 27908 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1dotlessjbin0 -> 333728 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1lintbin0 -> 295768 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1macbin0 -> 34776 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1rawafmbin0 -> 295296 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1reencodebin0 -> 328072 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1testpagebin0 -> 311696 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t1unmacbin0 -> 28852 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/t4htbin0 -> 83808 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/tanglebin0 -> 96228 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/tcdialogbin0 -> 134656 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/teckit_compilebin0 -> 1378440 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/texbin0 -> 338680 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/tex4htbin0 -> 141212 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/texconfig1439
-rwxr-xr-xMaster/bin/i386-kfreebsd/texconfig-dialog495
-rwxr-xr-xMaster/bin/i386-kfreebsd/texconfig-sys32
l---------Master/bin/i386-kfreebsd/texcount1
l---------Master/bin/i386-kfreebsd/texdiff1
l---------Master/bin/i386-kfreebsd/texdirflatten1
l---------Master/bin/i386-kfreebsd/texdoc1
l---------Master/bin/i386-kfreebsd/texdoctk1
l---------Master/bin/i386-kfreebsd/texexec1
l---------Master/bin/i386-kfreebsd/texfont1
l---------Master/bin/i386-kfreebsd/texhash1
-rwxr-xr-xMaster/bin/i386-kfreebsd/texlinks333
l---------Master/bin/i386-kfreebsd/texloganalyser1
l---------Master/bin/i386-kfreebsd/texlua1
l---------Master/bin/i386-kfreebsd/texluac1
l---------Master/bin/i386-kfreebsd/texmfstart1
l---------Master/bin/i386-kfreebsd/texsis1
l---------Master/bin/i386-kfreebsd/textools1
l---------Master/bin/i386-kfreebsd/texutil1
-rwxr-xr-xMaster/bin/i386-kfreebsd/tftoplbin0 -> 92100 bytes
l---------Master/bin/i386-kfreebsd/thumbpdf1
-rwxr-xr-xMaster/bin/i386-kfreebsd/tiebin0 -> 67880 bytes
l---------Master/bin/i386-kfreebsd/tlmgr1
l---------Master/bin/i386-kfreebsd/tmftools1
-rwxr-xr-xMaster/bin/i386-kfreebsd/tpic2pdftex455
-rwxr-xr-xMaster/bin/i386-kfreebsd/ttf2afmbin0 -> 84972 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/ttf2pkbin0 -> 224548 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/ttf2tfmbin0 -> 242084 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/ttfdumpbin0 -> 51080 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/ttftotype42bin0 -> 340336 bytes
l---------Master/bin/i386-kfreebsd/ulqda1
-rwxr-xr-xMaster/bin/i386-kfreebsd/updmap1434
-rwxr-xr-xMaster/bin/i386-kfreebsd/updmap-sys30
l---------Master/bin/i386-kfreebsd/utf8mex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/vftovpbin0 -> 100808 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/vlnabin0 -> 10356 bytes
l---------Master/bin/i386-kfreebsd/vpe1
l---------Master/bin/i386-kfreebsd/vpl2ovp1
l---------Master/bin/i386-kfreebsd/vpl2vpl1
-rwxr-xr-xMaster/bin/i386-kfreebsd/vptovfbin0 -> 63312 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/weavebin0 -> 113372 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/xdvi53
-rwxr-xr-xMaster/bin/i386-kfreebsd/xdvi-xawbin0 -> 801728 bytes
-rwxr-xr-xMaster/bin/i386-kfreebsd/xdvipdfmxbin0 -> 1281308 bytes
l---------Master/bin/i386-kfreebsd/xelatex1
-rwxr-xr-xMaster/bin/i386-kfreebsd/xetexbin0 -> 19529160 bytes
l---------Master/bin/i386-kfreebsd/xmltex1
l---------Master/bin/i386-kfreebsd/xmltools1
311 files changed, 9745 insertions, 0 deletions
diff --git a/Master/bin/i386-kfreebsd/a2ping b/Master/bin/i386-kfreebsd/a2ping
new file mode 120000
index 00000000000..5cbfe106996
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/a2ping
@@ -0,0 +1 @@
+../../texmf/scripts/a2ping/a2ping.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/afm2afm b/Master/bin/i386-kfreebsd/afm2afm
new file mode 120000
index 00000000000..c242f1124f6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/afm2afm
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/afm2afm \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/afm2pl b/Master/bin/i386-kfreebsd/afm2pl
new file mode 100755
index 00000000000..f8eb582317a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/afm2pl
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/afm2tfm b/Master/bin/i386-kfreebsd/afm2tfm
new file mode 100755
index 00000000000..59c65054548
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/afm2tfm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/aleph b/Master/bin/i386-kfreebsd/aleph
new file mode 100755
index 00000000000..e1e41a15e2f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/aleph
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/allcm b/Master/bin/i386-kfreebsd/allcm
new file mode 100755
index 00000000000..945c7c88457
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/allcm
@@ -0,0 +1,118 @@
+#!/bin/sh
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+progname=`basename $0`
+tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+
+case "$progname" in
+ allec)
+ encoding=T1;;
+ *)
+ encoding=OT1;;
+esac
+
+case "$1" in
+ -r)
+ DVIPS=dvired
+ shift
+ ;;
+ *)
+ DVIPS=dvips
+ ;;
+esac
+
+body()
+{
+ cat <<-'eof'
+ \pagestyle{empty}
+ \parindent0in
+ \hfuzz=\maxdimen
+ \hbadness=10000
+ \textheight9.5in
+ \textwidth6.5in
+ \newcommand{\myformula}{\sum a_{b_{c_d}} = c}
+ \newcommand{\mytext}{text $\mathcal{\myformula}\mathrm{\myformula}
+ \mathbf{\myformula}\mathsf{\myformula}\mathtt{\myformula}
+ \mathnormal{\myformula}\mathit{\myformula}$}
+
+ \newcommand{\TestSizes}{{%
+ \tiny \mytext\scriptsize \mytext\footnotesize \mytext\small \mytext
+ \normalsize \mytext
+ \large \mytext\Large \mytext\LARGE \mytext\huge \mytext\Huge \mytext}}
+ \newcommand{\TestRM}{rm-family: {\rmfamily\TestSizes}\newline}
+ \newcommand{\TestSF}{sf-family: {\sffamily\TestSizes}\newline}
+ \newcommand{\TestTT}{tt-family: {\ttfamily\TestSizes}\newline}
+ \newcommand{\TestFamilies}{\TestRM\TestSF\TestTT\newline}
+ \newcommand{\TestMD}{md-series: {\mdseries\TestFamilies}}
+ \newcommand{\TestBF}{bf-series: {\bfseries\TestFamilies}}
+ \newcommand{\TestSeries}{\TestBF\TestMD\par}
+ \newcommand{\TestUP}{up-shape: {\upshape\TestSeries}\par}
+ \newcommand{\TestIT}{it-shape: {\itshape\TestSeries}\par}
+ \newcommand{\TestSL}{sl-shape: {\slshape\TestSeries}\par}
+ \newcommand{\TestSC}{sc-shape: {\scshape\TestSeries}\par}
+ \newcommand{\TestShapes}{\TestUP\TestIT\TestSL\TestSC}
+ \begin{document}
+ \TestShapes
+ \end{document}
+eof
+}
+
+head()
+{
+ echo '\documentclass['$1'pt]{article}'
+ echo '\usepackage['$encoding']{fontenc}'
+}
+
+# before we create the tmpdir, set trap for cleanup
+trap '
+ rm -rf $tmpdir
+ exit 1
+' 1 2 3 7 13 15
+
+(umask 077; mkdir "$tmpdir") || {
+ echo "$progname: failed to create temp directory." >&2
+ exit 1
+}
+
+cd $tmpdir || exit 1
+echo >&2
+echo "---------------------------------------------------------------------" >&2
+echo ">>>>>>>>>>> Generating testfiles for 10pt, 11pt and 12pt. <<<<<<<<<<" >&2
+echo "---------------------------------------------------------------------" >&2
+head 10 > allcm10.tex
+head 11 > allcm11.tex
+head 12 > allcm12.tex
+body >> allcm10.tex
+body >> allcm11.tex
+body >> allcm12.tex
+
+echo >&2
+echo "---------------------------------------------------------------------" >&2
+echo ">>>>>>>>>>> Calling latex... <<<<<<<<<<" >&2
+echo "---------------------------------------------------------------------" >&2
+latex allcm10 >/dev/null
+latex allcm11 >/dev/null
+latex allcm12 >/dev/null
+
+echo >&2
+echo "---------------------------------------------------------------------" >&2
+echo ">>>>>>>>>>> Now, calling $DVIPS to make missing fonts... <<<<<<<<<<" >&2
+echo "---------------------------------------------------------------------" >&2
+$DVIPS ${1+"$@"} -V -f allcm10 > /dev/null
+$DVIPS ${1+"$@"} -V -f allcm11 > /dev/null
+$DVIPS ${1+"$@"} -V -f allcm12 > /dev/null
+
+cd /
+rm -rf $tmpdir
diff --git a/Master/bin/i386-kfreebsd/allec b/Master/bin/i386-kfreebsd/allec
new file mode 120000
index 00000000000..6d5b04d0d35
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/allec
@@ -0,0 +1 @@
+allcm \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/allneeded b/Master/bin/i386-kfreebsd/allneeded
new file mode 100755
index 00000000000..15c62c84adb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/allneeded
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+progname=`basename $0`
+dvired=false
+
+case $1 in
+-r) DVIPS="dvips -x707"
+ shift;;
+*) DVIPS=dvips;;
+esac
+
+case $# in
+0) echo "Usage: $progname [-r] files ..." >&2
+ exit ;;
+esac
+
+findopt=
+dvipsopt=
+
+for i
+do
+ if [ -f $i ] || [ -d $i ]; then
+ findopt="$findopt $i"
+ else
+ dvipsopt="$dvipsopt $i"
+ fi
+done
+
+find $findopt -name \*.dvi -type f -print |
+ while true; do
+ read i
+ test -z "$i" && exit
+ echo "processing file '$i' ..."
+ $DVIPS $dvipsopt -f "$i" >/dev/null
+ echo
+ done
diff --git a/Master/bin/i386-kfreebsd/amstex b/Master/bin/i386-kfreebsd/amstex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/amstex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/autoinst b/Master/bin/i386-kfreebsd/autoinst
new file mode 120000
index 00000000000..7986da227cb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/autoinst
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/autoinst \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/bbox b/Master/bin/i386-kfreebsd/bbox
new file mode 100755
index 00000000000..1c9fdbe04ba
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bbox
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/bg5+latex b/Master/bin/i386-kfreebsd/bg5+latex
new file mode 120000
index 00000000000..1366a36e76c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bg5+latex
@@ -0,0 +1 @@
+gbklatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/bg5+pdflatex b/Master/bin/i386-kfreebsd/bg5+pdflatex
new file mode 120000
index 00000000000..1e0ce565ca7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bg5+pdflatex
@@ -0,0 +1 @@
+gbkpdflatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/bg5conv b/Master/bin/i386-kfreebsd/bg5conv
new file mode 100755
index 00000000000..a82de191876
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bg5conv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/bg5latex b/Master/bin/i386-kfreebsd/bg5latex
new file mode 100755
index 00000000000..257a8446e21
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bg5latex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+bg5conv < "$tex" > "$aux" && eval latex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/bg5pdflatex b/Master/bin/i386-kfreebsd/bg5pdflatex
new file mode 100755
index 00000000000..80adc376a93
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bg5pdflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] pdflatex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+bg5conv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/bibexport b/Master/bin/i386-kfreebsd/bibexport
new file mode 120000
index 00000000000..5ce29aa1714
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bibexport
@@ -0,0 +1 @@
+../../texmf-dist/scripts/bibexport/bibexport.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/bibtex b/Master/bin/i386-kfreebsd/bibtex
new file mode 100755
index 00000000000..a1d9290e85c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bibtex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/bibtex8 b/Master/bin/i386-kfreebsd/bibtex8
new file mode 100755
index 00000000000..e79047ebbac
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bibtex8
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/bibtexu b/Master/bin/i386-kfreebsd/bibtexu
new file mode 100755
index 00000000000..0eeb816fb5e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/bibtexu
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/cachepic b/Master/bin/i386-kfreebsd/cachepic
new file mode 120000
index 00000000000..f51faf9afc3
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cachepic
@@ -0,0 +1 @@
+../../texmf-dist/scripts/cachepic/cachepic.tlu \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/cef5conv b/Master/bin/i386-kfreebsd/cef5conv
new file mode 100755
index 00000000000..08d4fee5bbb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cef5conv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/cef5latex b/Master/bin/i386-kfreebsd/cef5latex
new file mode 100755
index 00000000000..7eda1633766
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cef5latex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+cef5conv < "$tex" > "$aux" && eval latex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/cef5pdflatex b/Master/bin/i386-kfreebsd/cef5pdflatex
new file mode 100755
index 00000000000..25fe066a53f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cef5pdflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] pdflatex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+cef5conv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/cefconv b/Master/bin/i386-kfreebsd/cefconv
new file mode 100755
index 00000000000..20ef0f86e0d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cefconv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ceflatex b/Master/bin/i386-kfreebsd/ceflatex
new file mode 100755
index 00000000000..d34244d9a5b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ceflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+cefconv < "$tex" > "$aux" && eval latex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/cefpdflatex b/Master/bin/i386-kfreebsd/cefpdflatex
new file mode 100755
index 00000000000..4c7309f2bf2
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cefpdflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] pdflatex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+cefconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/cefsconv b/Master/bin/i386-kfreebsd/cefsconv
new file mode 100755
index 00000000000..95f5a0a369c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cefsconv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/cefslatex b/Master/bin/i386-kfreebsd/cefslatex
new file mode 100755
index 00000000000..619d08c7577
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cefslatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+cefsconv < "$tex" > "$aux" && eval latex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/cefspdflatex b/Master/bin/i386-kfreebsd/cefspdflatex
new file mode 100755
index 00000000000..02bf6598f71
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cefspdflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+cefsconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/cfftot1 b/Master/bin/i386-kfreebsd/cfftot1
new file mode 100755
index 00000000000..d0d8786b625
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cfftot1
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/cmap2enc b/Master/bin/i386-kfreebsd/cmap2enc
new file mode 120000
index 00000000000..facef66a9b8
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cmap2enc
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/cmap2enc \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/context b/Master/bin/i386-kfreebsd/context
new file mode 120000
index 00000000000..fd177847393
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/context
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/context \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/cslatex b/Master/bin/i386-kfreebsd/cslatex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cslatex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/csplain b/Master/bin/i386-kfreebsd/csplain
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/csplain
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/ctangle b/Master/bin/i386-kfreebsd/ctangle
new file mode 100755
index 00000000000..19c46cdd4d3
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ctangle
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ctie b/Master/bin/i386-kfreebsd/ctie
new file mode 100755
index 00000000000..32062873dc9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ctie
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ctxtools b/Master/bin/i386-kfreebsd/ctxtools
new file mode 120000
index 00000000000..66237b28340
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ctxtools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/ctxtools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/cweave b/Master/bin/i386-kfreebsd/cweave
new file mode 100755
index 00000000000..669602ae542
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/cweave
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/detex b/Master/bin/i386-kfreebsd/detex
new file mode 100755
index 00000000000..0664245ca08
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/detex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/devnag b/Master/bin/i386-kfreebsd/devnag
new file mode 100755
index 00000000000..6af8e1bfca5
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/devnag
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/disdvi b/Master/bin/i386-kfreebsd/disdvi
new file mode 100755
index 00000000000..2b36e1f0f75
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/disdvi
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dt2dv b/Master/bin/i386-kfreebsd/dt2dv
new file mode 100755
index 00000000000..360c20184ed
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dt2dv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dv2dt b/Master/bin/i386-kfreebsd/dv2dt
new file mode 100755
index 00000000000..e80d94a26ff
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dv2dt
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvi2fax b/Master/bin/i386-kfreebsd/dvi2fax
new file mode 100755
index 00000000000..fdfa83211eb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvi2fax
@@ -0,0 +1,41 @@
+#!/bin/sh
+# options for dvips are passwd down
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+progname=`basename "$0"`
+help()
+{
+ echo "Usage: $progname [-hi|-lo] file[.dvi] [options for dvips]"
+ echo " -hi: use high fax resolution (204x196) (default)"
+ echo " -lo: use low fax resolution (204x98)"
+ echo
+ echo "Example: $progname foo -l 2"
+}
+
+dvipsconf=dfaxhigh; gsdev=dfaxhigh
+case $1 in
+ -hi) gsdev=dfaxhigh; shift;;
+ -lo) gsdev=dfaxlow; shift;;
+esac
+
+case $# in
+ 0) help >&2
+ exit 1
+ ;;
+esac
+
+NAME=`basename "$1" .dvi`
+dvips "$@" -P$dvipsconf -f |
+ gs -q -dSAFER -sDEVICE=$gsdev -sOutputFile="$NAME-%03d.fax" -sNOPAUSE -
diff --git a/Master/bin/i386-kfreebsd/dvi2tty b/Master/bin/i386-kfreebsd/dvi2tty
new file mode 100755
index 00000000000..f7ab941a78d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvi2tty
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dviasm b/Master/bin/i386-kfreebsd/dviasm
new file mode 120000
index 00000000000..2b15762a267
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dviasm
@@ -0,0 +1 @@
+../../texmf-dist/scripts/dviasm/dviasm.py \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dvibook b/Master/bin/i386-kfreebsd/dvibook
new file mode 100755
index 00000000000..9ae95e7823b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvibook
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dviconcat b/Master/bin/i386-kfreebsd/dviconcat
new file mode 100755
index 00000000000..7ec6b13ceca
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dviconcat
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvicopy b/Master/bin/i386-kfreebsd/dvicopy
new file mode 100755
index 00000000000..ff3b4381ff2
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvicopy
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvidvi b/Master/bin/i386-kfreebsd/dvidvi
new file mode 100755
index 00000000000..cec2e9e0fc3
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvidvi
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvigif b/Master/bin/i386-kfreebsd/dvigif
new file mode 120000
index 00000000000..c1eef0afe05
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvigif
@@ -0,0 +1 @@
+dvipng \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dvihp b/Master/bin/i386-kfreebsd/dvihp
new file mode 100755
index 00000000000..fdaf3fb87bf
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvihp
@@ -0,0 +1,131 @@
+#!/bin/sh
+# $Id: dvihp,v 1.3 1996/12/03 19:53:56 karl Exp karl $
+# Run dvicopy, then dvilj[k]. Originally written by Karl Berry.
+# Public domain.
+# Try to accept arguments a la dvips, from Thomas Esser.
+
+: ${DVILJ=dvilj4} # the dvilj variant to run
+: ${SPOOL=lpr} # used to print an LJ file
+: ${TMPDIR=${TEMP-${TMP-/tmp}}} # for the dvicopy output
+
+tmpdir="${TMPDIR}"/dvihp$$
+(umask 077; mkdir "$tmpdir") \
+ || { echo "cannot create directory \`$tmpdir'."; exit 1; }
+
+trap '
+ cd "${TMPDIR}"
+ test -d "$tmpdir" && { rm -f "$tmpdir"/*; rmdir "$tmpdir"; }
+ exit 0
+' 0 1 2 3 6 7 13 15
+
+rcs_revision='$Revision: 1.3 $'
+version=`set - $rcs_revision; echo $2`
+
+usage="Usage: `basename $0` [OPTIONS] [DVIFILE[.dvi]].
+ Translate the given DVIFILE to Hewlett-Packard PCL by calling dvicopy
+ and then \$DVILJ (dvilj4 by default).
+ In the absence of other options, pipe the PCL to \$SPOOL (lpr by default).
+
+ Options are recognized from dvips where possible:
+-A print odd pages
+-B print even pages
+-d # set debug bits to # (see documentation)
+-D # set resolution to #
+-f run as filter
+-l # don't print pages after #
+-m manual feed
+-n # print # pages
+-O #,# set/change paper offset to #,# mm
+-o s output to s instead of spooling
+-p # don't print pages before #
+-Ps pass directly to lpr
+-v verbose operation
+-x # set magnification to #
+
+Other options are passed to the dvilj program.
+
+Email bug reports to tex-k@tug.org."
+
+
+if test $# -eq 0; then
+ echo "`basename $0`: Missing argument(s)." >&2
+ echo "Try \``basename $0` --help' for more information." >&2
+ exit 0
+fi
+
+unset infile opt output
+output_opt=-e
+verbose=false
+
+while test $# -gt 0; do
+ case "$1" in
+ -help|--help) echo "$usage"; exit 0;;
+ -version|--version)
+ echo "`basename $0` (Dviljk 2.6) $version"
+ echo "There is NO warranty. This script is public domain."
+ exit 0;;
+ -A) opt="$opt -D1";; # -A => -D1 (odd pages)
+ -B) opt="$opt -D2";; # -B -> -D2 (even pages)
+ -d) shift; opt="$opt --D$1";; # -d => --D (debug)
+ -d*) opt="$opt `echo $1 | sed s/d/-D/`";;
+ -D) shift; opt="$opt -R$1";; # -D => -R (resolution)
+ -f) infile=; output=-;; # -f (run as filter)
+ -l) shift; opt="$opt -t$1";; # -l => -t (ending page)
+ -l*) opt="$opt `echo $1 | sed s/l/t/`";;
+ -m) opt="$opt -A";; # -m => -A (manual feed)
+ -n) shift; opt="$opt -p$1";; # -n => -p (page count)
+ -n*) opt="$opt `echo $1 | sed s/^-n/-p/`";;
+ -o) if test $# -eq 1; then # -o (output file)
+ # No remaining args, output to foo.lj.
+ output=`basename $infile .dvi`.lj
+ else shift; output="$1"; fi;;
+ -o*) output="`echo $1 | sed 's/^-o//'`";;
+ -O) shift; x=`echo $1 | sed 's/,.*//'` # -O => -x, -y (page offsets)
+ y=`echo $1 | sed 's/.*,//'`; opt="$opt -x$x -y$y";;
+ -O*) temp="`echo $1 | sed 's/^-O//'`"
+ x=`echo $temp | sed 's/,.*//'`
+ y=`echo $temp | sed 's/.*,//'`;
+ opt="$opt -x$x -y$y";;
+ -p) shift; opt="$opt -f$1";; # -p => -f (starting page)
+ -p*) opt="$opt `echo $1 | sed s/p/f/`";;
+ -P) shift; output=; spool_opt="-P$1";; # -Pprinter
+ -P*) output=; spool_opt="$1";;
+ -v) verbose=true; opt="$opt -v";;
+ -x) shift; opt="$opt -m$1";; # -x => -m (magnification)
+ -x*) opt="$opt `echo $1 | sed s/x/m/`";;
+ --) shift; infile="$1"; break;; # -- => end of options
+ -*) opt="$opt $1";; # pass other options through
+ *) infile="$1";;
+ esac
+ shift
+done
+
+# Make sure the filenames are unique on MS-DOS
+vfless_dvi="$tmpdir"/dvi$$.vf
+
+# Expand VF references.
+# If $infile is null, this will read standard input.
+# dvilj can't read from a pipe, so always write to a file.
+$verbose && echo "Running dvicopy $infile >$vfless_dvi" >&2
+if dvicopy $infile >"$vfless_dvi"; then :; else
+ echo "$0: dvicopy $infile failed." >&2
+ exit 1
+fi
+$verbose && ls -l "$vfless_dvi" >&2
+
+if test -z "$output"; then
+ output=- # output to stdout
+ # Doing this pipe means the true exit status might get lost, but it
+ # seems worth it to avoid the temporary file. (Bad enough to have one.)
+ maybe_spool_cmd="| $SPOOL $spool_opt"
+else
+ maybe_spool_cmd=
+fi
+
+# Translate DVI to LJ.
+cmd="$DVILJ $opt $output_opt$output \"$vfless_dvi\" $maybe_spool_cmd"
+$verbose && echo "Running $cmd" >&2
+if eval $cmd; then :; else
+ echo "$0: $DVILJ failed." >&2
+ exit 2
+fi
diff --git a/Master/bin/i386-kfreebsd/dvilj b/Master/bin/i386-kfreebsd/dvilj
new file mode 100755
index 00000000000..fd7c63f7cdb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvilj
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvilj2p b/Master/bin/i386-kfreebsd/dvilj2p
new file mode 100755
index 00000000000..81fb00ec984
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvilj2p
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvilj4 b/Master/bin/i386-kfreebsd/dvilj4
new file mode 100755
index 00000000000..057b1b6f9e7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvilj4
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvilj4l b/Master/bin/i386-kfreebsd/dvilj4l
new file mode 100755
index 00000000000..681e5ffb097
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvilj4l
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvilj6 b/Master/bin/i386-kfreebsd/dvilj6
new file mode 120000
index 00000000000..576e6e449cd
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvilj6
@@ -0,0 +1 @@
+dvilj4 \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dvilualatex b/Master/bin/i386-kfreebsd/dvilualatex
new file mode 120000
index 00000000000..8d727021583
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvilualatex
@@ -0,0 +1 @@
+luatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dviluatex b/Master/bin/i386-kfreebsd/dviluatex
new file mode 120000
index 00000000000..8d727021583
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dviluatex
@@ -0,0 +1 @@
+luatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dvipdfm b/Master/bin/i386-kfreebsd/dvipdfm
new file mode 120000
index 00000000000..ab4195592f6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvipdfm
@@ -0,0 +1 @@
+dvipdfmx \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dvipdfmx b/Master/bin/i386-kfreebsd/dvipdfmx
new file mode 100755
index 00000000000..f5661fdb6d9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvipdfmx
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvipdft b/Master/bin/i386-kfreebsd/dvipdft
new file mode 100755
index 00000000000..3bcd0027db1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvipdft
@@ -0,0 +1,105 @@
+#!/bin/sh
+# dvipdft, completely rewritten by Thomas Esser for teTeX after an
+# original script by Mark A. Wicks
+#
+# Thomas Esser. Public Domain.
+#
+# Modified by Matthias Franz for dvipdfmx (when running as dvipdfm) and
+# TeX Live.
+
+# This script makes a first (fast) run with dvipdfm, then calls gs on
+# the resulting pdf file to get the thumbnails and finally calls dvipdfm.
+
+progname=dvipdft
+version=20090604.0046
+
+# set trap for error
+trap '
+ echo "$progname: fatal error." >&2
+ exit 1
+' 1
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+help="Usage: $progname [options] dvifile
+ $progname --help
+ $progname --version"
+
+quoteit()
+{
+ echo "x$1" | sed "s@.@@; s@'@'\\\\''@; s@^@'@; s@\$@'@"
+}
+
+# process args 1 to (n-1) and scan for a -o argument keep a properly
+# quoted backup of the options, so that they can be restored later
+unset s outfile
+while test $# -gt 1; do
+ case $1 in
+ -o) outfile=$2;;
+ esac
+ s="$s${s+ }"`quoteit "$1"`
+ shift
+done
+
+# check for last argument
+case $1 in
+ --help)
+ echo "$help"
+ exit 0
+ ;;
+ --version)
+ echo "$progname version $version by Thomas Esser and others"
+ exit 0
+ ;;
+ "")
+ echo "$help"
+ exit 1
+ ;;
+esac
+
+# args 1 to (n-1) are gone, last one must be the dvifile
+dvifile="$1"
+
+# outfile comes from -o argument, else it is derived from the input file
+test -n "$outfile" \
+ || outfile=`echo "$dvifile" | sed 's@.*/@@; s@\.dvi$@@; s@$@.pdf@'`
+
+# outBase is part of the thumbname files just as dvipdfm expects them:
+outBase=`echo "$outfile" | sed 's@\.pdf$@@'`
+
+ls "$outBase".[1-9]* >/dev/null 2>&1 && {
+ echo "$progname: Please move the following files out of the way:" >&2
+ ls "$outBase".[1-9]* >&2
+ exit 1
+}
+
+# restore args 1 to (n-1):
+eval set x "$s"; shift
+
+# set trap for cleanup
+trap '
+ rm -f "$outBase".[1-9]*
+' 0
+
+# Run dvipdfm with the fastest options for the first pass
+echo "$progname: running dvipdfm $@ -z0 $dvifile" >&2
+dvipdfm ${1+"$@"} -z0 "$dvifile"
+
+# run gs
+echo "$progname: running gs" >&2
+gs -r10 -dNOPAUSE -dBATCH -sDEVICE=png256 -sOutputFile="$outBase.%d" "$outfile"
+
+# run dvipdfm with the users specified options for the last pass
+echo "$progname: running dvipdfm -t $@ $dvifile" >&2
+dvipdfm ${1+"$@"} -t "$dvifile"
diff --git a/Master/bin/i386-kfreebsd/dvipng b/Master/bin/i386-kfreebsd/dvipng
new file mode 100755
index 00000000000..55a650d084d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvipng
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvipos b/Master/bin/i386-kfreebsd/dvipos
new file mode 100755
index 00000000000..12a8602cd67
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvipos
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvips b/Master/bin/i386-kfreebsd/dvips
new file mode 100755
index 00000000000..cd4f7092520
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvips
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvired b/Master/bin/i386-kfreebsd/dvired
new file mode 100755
index 00000000000..4eb3586119d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvired
@@ -0,0 +1,98 @@
+#!/bin/sh
+#==============================================================================
+# Version: 0.3
+# Module: dvired
+# Purpose: Translate dvi-file into postscript with reduced output size.
+# Two logical pages will be put on onto each physical sheet of
+# paper.
+# System: Linux. UNIX(tm) systems may work as well :-)
+# Requires: pstops (http://www.dcs.ed.ac.uk/home/ajcd/psutils/), dvips
+# Created: 19.11.1992
+# Last Change: 13.08.1999
+# Language: sh
+# Author: Thomas Esser
+# Address: te@dbs.uni-hannover.de
+# Copyright: (c) 1994, 1999 by Thomas Esser
+# Copying: GNU GENERAL PUBLIC LICENSE
+#==============================================================================
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+help()
+{
+ cat <<eof
+
+Usage: dvired [options] file
+
+This programm behaves like dvips, execpt fot the fact that two logical
+pages will be put on onto each physical sheet of paper.
+
+For options see dvips(1). This program only interprets the options
+-o, -P and -f. All other options will directly be passed to dvips.
+
+If your paper is not in A4 format, you need to adjust the dimensions
+in this program.
+
+Examples: (it is assumed that the PRINTER-variable is set)
+ dvired -Plw foo send output to printer lw
+ dvired -o foo.ps foo send output to file foo.ps
+ dvired -pp4-7 foo send 4 output-pages to printer
+ dvired foo -f | ghostview - preview output with ghostview
+eof
+}
+
+case $# in
+0) help ; exit 1 ; ;;
+esac
+
+# This will work for A4 paper.
+paper=a4 ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-141.06mm)'
+
+# The following are *UNTESTED*. Please let me know whether they work
+# or not, if you can test them.
+#paper=a3 ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-202.56mm)'
+#paper=letter ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-132.26mm)'
+#paper=legal ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-170.36mm)'
+#paper=ledger ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-132.26mm)'
+#paper=tabloid ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-208.46mm)'
+
+of=""
+lpr_opt=""
+
+case "$PRINTER" in
+"") dvips_pre="" ;;
+*) dvips_pre="-P$PRINTER" ;;
+esac
+
+dvips_pre="$dvips_pre -t $paper -t landscape"
+
+while [ ! -z "$1" ] ; do
+ case $1 in
+ -P) of="" ; dvips_pre="$dvips_pre -P$2" ; lpr_opt="-P$2"
+ shift ;;
+ -P*) of="" ; dvips_pre="$dvips_pre $1" ; lpr_opt="$1" ;;
+ -o) of="$2"
+ shift ;;
+ -o*) of="`echo $1| sed 's/..//'`" ;;
+ -f) of="-" ;;
+ *) opt="$opt $1"
+ esac
+ shift
+done
+
+case "$of" in
+"") dvips -x707 $dvips_pre $opt -f | pstops -q $pstopsopt | lpr $lpr_opt
+ ;;
+"-") dvips -x707 $dvips_pre $opt -f | pstops -q $pstopsopt
+ ;;
+*) dvips -x707 $dvips_pre $opt -f | pstops -q $pstopsopt > "$of"
+ ;;
+esac
diff --git a/Master/bin/i386-kfreebsd/dviselect b/Master/bin/i386-kfreebsd/dviselect
new file mode 100755
index 00000000000..7ddb928d4ad
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dviselect
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvisvgm b/Master/bin/i386-kfreebsd/dvisvgm
new file mode 100755
index 00000000000..2b775bad176
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvisvgm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvitodvi b/Master/bin/i386-kfreebsd/dvitodvi
new file mode 100755
index 00000000000..d5870a4b106
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvitodvi
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/dvitomp b/Master/bin/i386-kfreebsd/dvitomp
new file mode 120000
index 00000000000..96672bbb523
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvitomp
@@ -0,0 +1 @@
+mpost \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/dvitype b/Master/bin/i386-kfreebsd/dvitype
new file mode 100755
index 00000000000..c1c62c0ef36
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/dvitype
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/e2pall b/Master/bin/i386-kfreebsd/e2pall
new file mode 120000
index 00000000000..47465883225
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/e2pall
@@ -0,0 +1 @@
+../../texmf/scripts/tetex/e2pall.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/ebb b/Master/bin/i386-kfreebsd/ebb
new file mode 120000
index 00000000000..ab4195592f6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ebb
@@ -0,0 +1 @@
+dvipdfmx \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/ebong b/Master/bin/i386-kfreebsd/ebong
new file mode 120000
index 00000000000..b0704cb4db1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ebong
@@ -0,0 +1 @@
+../../texmf-dist/scripts/bengali/ebong.py \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/eplain b/Master/bin/i386-kfreebsd/eplain
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/eplain
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/epsffit b/Master/bin/i386-kfreebsd/epsffit
new file mode 100755
index 00000000000..702ee20a08c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/epsffit
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/epspdf b/Master/bin/i386-kfreebsd/epspdf
new file mode 120000
index 00000000000..0195c700955
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/epspdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/epspdf/epspdf \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/epspdftk b/Master/bin/i386-kfreebsd/epspdftk
new file mode 120000
index 00000000000..ef9d117fd47
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/epspdftk
@@ -0,0 +1 @@
+../../texmf-dist/scripts/epspdf/epspdftk \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/epstopdf b/Master/bin/i386-kfreebsd/epstopdf
new file mode 120000
index 00000000000..2356f54942b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/epstopdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/epstopdf/epstopdf.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/etex b/Master/bin/i386-kfreebsd/etex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/etex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/extconv b/Master/bin/i386-kfreebsd/extconv
new file mode 100755
index 00000000000..2e4c6b0dca9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/extconv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/extractbb b/Master/bin/i386-kfreebsd/extractbb
new file mode 120000
index 00000000000..ab4195592f6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/extractbb
@@ -0,0 +1 @@
+dvipdfmx \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/extractres b/Master/bin/i386-kfreebsd/extractres
new file mode 100755
index 00000000000..c54056461a2
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/extractres
@@ -0,0 +1,96 @@
+#!/usr/bin/env perl
+# extractres: extract resources from PostScript file
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$prog = ($0 =~ s=.*/==);
+
+%resources = (); # list of resources included
+%merge = (); # list of resources extracted this time
+%extn = ("font", ".pfa", "file", ".ps", "procset", ".ps", # resource extns
+ "pattern", ".pat", "form", ".frm", "encoding", ".enc");
+%type = ("%%BeginFile:", "file", "%%BeginProcSet:", "procset",
+ "%%BeginFont:", "font"); # resource types
+
+while (@ARGV) {
+ $_ = shift;
+ if (/^-m(erge)?$/) { $merge = 1; }
+ elsif (/^-/) {
+ print STDERR "Usage: $prog [-merge] [file]\n";
+ exit 1;
+ } else {
+ unshift(@ARGV, $_);
+ last;
+ }
+}
+
+if (defined($ENV{TMPDIR})) { # set body file name
+ $body = "$ENV{TMPDIR}/body$$.ps";
+} else {
+ $body = "body$$.ps";
+}
+
+open(BODY, $body) && die "Temporary file $body already exists";
+open(BODY, ">$body") || die "Can't write file $body";
+
+sub filename { # make filename for resource in @_
+ local($name);
+ foreach (@_) { # sanitise name
+ s/[!()\$\#*&\\\|\`\'\"\~\{\}\[\]\<\>\?]//g;
+ $name .= $_;
+ }
+ $name =~ s@.*/@@; # drop directories
+ die "Filename not found for resource ", join(" ", @_), "\n"
+ if $name =~ /^$/;
+ $name;
+}
+
+$output = STDOUT; # start writing header out
+while (<>) {
+ if (/^%%BeginResource:/ || /^%%BeginFont:/ || /^%%BeginProcSet:/) {
+ local($comment, @res) = split(/\s+/); # look at resource type
+ local($type) = defined($type{$comment}) ? $type{$comment} : shift(@res);
+ local($name) = &filename(@res, $extn{$type}); # make file name
+ $saveout = $output;
+ if (!$resources{$name}) {
+ print "%%IncludeResource: $type ", join(" ", @res), "\n";
+ if (!open(RES, $name)) {
+ open(RES, ">$name") || die "Can't write file $name";
+ $resources{$name} = $name;
+ $merge{$name} = $merge;
+ $output = RES;
+ } else { # resource already exists
+ close(RES);
+ undef $output;
+ }
+ } elsif ($merge{$name}) {
+ open(RES, ">>$name") || die "Can't append to file $name";
+ $output = RES;
+ } else { # resource already included
+ undef $output;
+ }
+ } elsif (/^%%EndResource/ || /^%%EndFont/ || /^%%EndProcSet/) {
+ if (defined $output) {
+ print $output $_;
+ close($output);
+ }
+ $output = $saveout;
+ next;
+ } elsif ((/^%%EndProlog/ || /^%%BeginSetup/ || /^%%Page:/)) {
+ $output = BODY;
+ }
+ print $output $_
+ if defined $output;
+}
+
+close(BODY); # close body output file
+
+open(BODY, $body); # reopen body for input
+while (<BODY>) { # print it all
+ print $_;
+}
+close(BODY);
+
+unlink($body); # dispose of body file
+
diff --git a/Master/bin/i386-kfreebsd/fig4latex b/Master/bin/i386-kfreebsd/fig4latex
new file mode 120000
index 00000000000..6c515e55312
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fig4latex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fig4latex/fig4latex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/findhyph b/Master/bin/i386-kfreebsd/findhyph
new file mode 120000
index 00000000000..31f10c8c0de
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/findhyph
@@ -0,0 +1 @@
+../../texmf-dist/scripts/findhyph/findhyph \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/fixdlsrps b/Master/bin/i386-kfreebsd/fixdlsrps
new file mode 100755
index 00000000000..2a1d85a654c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixdlsrps
@@ -0,0 +1,54 @@
+#!/usr/bin/env perl
+# fixdlsrps: fix DviLaser/PS document to work with PSUtils
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$nesting = 0;
+$page = 1;
+$infont = 0;
+
+@fonts = ();
+@body = ();
+$header = 1;
+
+while (<>) {
+ if (/^XP/) {
+ $infont++;
+ push(@fonts, $_);
+ $infont-- if /PXL.*RP/ || /DN?F.*RP/;
+ } elsif ($infont) {
+ push(@fonts, $_);
+ $infont-- if /PXL.*RP/ || /DN?F.*RP/;
+ } elsif ((/^%%EndSetup/ || /^%%Page:/) && $header) {
+ print @body;
+ @body = ("%%EndSetup\n");
+ $header = 0;
+ } elsif (/^%%EndProlog/ && !$nesting) {
+ push(@body,
+ "\$DviLaser begin/GlobalMode{}bdef/LocalMode{}bdef/XP{}def/RP{}def",
+ "/DoInitialScaling{72.0 Resolution div dup scale}bdef end\n", $_);
+ } elsif (/^%%BeginPageSetup/ && !$nesting) {
+ push(@body, "%%Page: $page $page\n", $_,
+ "Resolution 72 div dup scale Magnification 1000 div dup scale\n",
+ "/DocumentInitState where {\n",
+ "/DocumentInitState [ matrix currentmatrix currentlinewidth",
+ " currentlinecap currentlinejoin currentdash currentgray",
+ " currentmiterlimit] cvx put}if\n");
+ $page++;
+ } elsif (/^%%BeginDocument:/ || /^%%BeginBinary:/ || /^%%BeginFile:/) {
+ push(@body, $_);
+ $nesting++;
+ } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) {
+ push(@body, $_);
+ $nesting--;
+ } elsif (!/^%%PageBoundingBox:/ && !/^%%Page:/) {
+ push(@body, $_);
+ }
+}
+
+print @fonts;
+print @body;
+
+exit 0;
+
diff --git a/Master/bin/i386-kfreebsd/fixfmps b/Master/bin/i386-kfreebsd/fixfmps
new file mode 100755
index 00000000000..039ac8e5a3e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixfmps
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl
+# fixfmps: get conforming PostScript out of FrameMaker version 2 file
+# move all FMDEFINEFONTs to start of pages
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+%fonts=();
+
+while (<>) {
+ if (/^([0-9]+) [0-9]+ .* FMDEFINEFONT$/) {
+ $fonts{$1} = $_;
+ } elsif (/^[0-9.]+ [0-9.]+ [0-9]+ FMBEGINPAGE$/) {
+ print $_, join('',values(%fonts));
+ } elsif (m%(.*/PageSize \[paperwidth paperheight\]put )setpagedevice(.*)%) {
+ print "$1pop$2\n";
+ } else {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixmacps b/Master/bin/i386-kfreebsd/fixmacps
new file mode 100755
index 00000000000..f4cfdb10a9e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixmacps
@@ -0,0 +1,95 @@
+#!/usr/bin/env perl
+# fixmacps: swap to sanitised appledict
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$line = 0; # keep line count
+$predir = `kpsewhich -progname=psutils md71_0.ps`;
+$dir=`basename $predir`;
+$prefix = "md";
+$default = "md71_0.ps";
+
+while ($_ = shift(@ARGV)) {
+ if (/^-d(ir)?$/) { $dir = shift(@ARGV); }
+ elsif (/^-n(ame)?$/) { $prefix = shift(@ARGV); }
+ else {
+ unshift(@ARGV, $_);
+ last;
+ }
+}
+
+%fonts = ();
+$nesting = 0;
+
+while (<>) {
+ if (/^%!/) {
+ if (! $line) {
+ print;
+ }
+ } elsif (/^%%(Begin|Include)ProcSet: "?\(AppleDict md\)"? ([0-9]+) ([0-9]+)$/) {
+ local($inc, $mdv, $mdr) = ($1, $2, $3);
+ if (open(SANE, "<$dir/$prefix${mdv}_$mdr.ps") ||
+ open(SANE, "<$dir/$default")) {
+ $sane = <SANE>;
+ local($snv, $snr) =
+ $sane =~ /^%%BeginProcSet: \(AppleDict md\) ([0-9]+) ([0-9]+)$/;
+ if ($mdv == $snv && $mdr == $snr) {
+ if ( $inc eq "Include" ) {
+ print STDERR "Inserting ProcSet \"(AppleDict md)\" $snv $snr\n";
+ print $sane;
+ while(<SANE>) {
+ print;
+ }
+ close(SANE);
+ }
+ else {
+ print STDERR "Substituting ProcSet \"(AppleDict md)\" $snv $snr\n";
+ $ignore = 1;
+ }
+ } else {
+ print STDERR "Unrecognised AppleDict version $mdv $mdr\n";
+ print "%!\n" if !$line;
+ print;
+ }
+ } else {
+ print STDERR "Can't find sanitised AppleDict\n";
+ print "%!\n" if !$line;
+ print;
+ }
+ } elsif (/^%%EndProcSet/) {
+ if ($ignore) {
+ $ignore = 0;
+ print "%!\n" if !$line;
+ print $sane;
+ while(<SANE>) {
+ print;
+ }
+ close(SANE);
+ } else {
+ print "%!\n" if !$line;
+ print;
+ }
+ } elsif (/^%%Page:/ && $nesting == 0) {
+ print $_;
+ print values(%fonts);
+ } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/) {
+ print $_;
+ $nesting++;
+ } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) {
+ print $_;
+ $nesting--;
+ } else {
+ if (! $ignore) {
+ if (/^\{\}mark .*rf$/) {
+ $fonts{$_} = $_;
+ print;
+ } else {
+ print "%!\n" if !$line;
+ print;
+ }
+ }
+ }
+ $line++;
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixpsditps b/Master/bin/i386-kfreebsd/fixpsditps
new file mode 100755
index 00000000000..2a1728a8204
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixpsditps
@@ -0,0 +1,25 @@
+#!/usr/bin/env perl
+# fixpsditps: fix psdit output for use in psutils
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$nesting = 0;
+
+while (<>) {
+ if (/^\/p{pop showpage pagesave restore \/pagesave save def}def$/) {
+ print "/p{pop showpage pagesave restore}def\n";
+ } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/ ) {
+ print $_;
+ $nesting++;
+ } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) {
+ print $_;
+ $nesting--;
+ } elsif (/^%%Page:/ && $nesting == 0) {
+ print $_;
+ print "xi\n";
+ } elsif (! /^xi$/) {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixpspps b/Master/bin/i386-kfreebsd/fixpspps
new file mode 100755
index 00000000000..77bba66d6b7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixpspps
@@ -0,0 +1,58 @@
+#!/usr/bin/env perl
+# mangle PostScript produced by PSPrint to make it almost conforming
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$header = 1; $ignore = 0;
+$verbose = 0;
+@body = ();
+%fonts = (); $font = "";
+$inchar = 0; @char = ();
+
+while (<>) {
+ if (/^\@end$/) {
+ $ignore = 1;
+ } elsif (/^[0-9]+ \@bop0$/) {
+ $ignore = 0;
+ $header = 1;
+ } elsif ($header) {
+ if (/^\/([a-z.0-9]+) \@newfont$/) {
+ if (! defined($fonts{$1})) {
+ $fonts{$1} = 1;
+ print;
+ } elsif ($verbose) {
+ print STDERR "$font already defined\n";
+ }
+ } elsif (/^([a-z.0-9]+) sf$/) {
+ $font = $1;
+ print;
+ } elsif (/^\[</) {
+ $inchar = 1;
+ push (@char, $_);
+ } elsif ($inchar) {
+ push (@char, $_);
+ if (/.*\] ([0-9]+) dc$/) {
+ if (! defined($fonts{$font,$1})) {
+ $fonts{$font,$1} = 1;
+ print (@char);
+ } elsif ($verbose) {
+ print STDERR "$font character $1 already defined\n";
+ }
+ $inchar = 0;
+ @char = ();
+ }
+ } elsif (/^([0-9]+) \@bop1$/) {
+ $header = 0;
+ push (@body, "%%Page: ? $1\n");
+ push (@body, $_);
+ } else {
+ print;
+ }
+ } elsif (! $ignore) {
+ push (@body, $_);
+ }
+}
+print (@body);
+print ("\@end\n");
+
diff --git a/Master/bin/i386-kfreebsd/fixscribeps b/Master/bin/i386-kfreebsd/fixscribeps
new file mode 100755
index 00000000000..bd4e9a0e3e0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixscribeps
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+# fixscribeps: get conforming PostScript out of Scribe
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$inepsf = 0;
+$epsfn = 0;
+while (<>) {
+ if (/^([0-9]+ [0-9]+ [0-9]+ PB) (%!.*)/) {
+ print "$1\n%%BeginDocument: Scribe-EPSF $epsfn 0\n$2\n";
+ $inepsf++;
+ } elsif (/^ PE/ && $inepsf) {
+ print "%%EndDocument\n", $_;
+ } else {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixtpps b/Master/bin/i386-kfreebsd/fixtpps
new file mode 100755
index 00000000000..4239bb9dfc5
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixtpps
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+# fixtpps: fix tpscript document to work with PSUtils
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$nesting = 0;
+$header = 1;
+
+while (<>) {
+ if (/^%%Page:/ && $nesting == 0) {
+ print $_;
+ print "save home\n";
+ $header = 0;
+ } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/) {
+ print $_;
+ $nesting++;
+ } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) {
+ print $_;
+ $nesting--;
+ } elsif (/save home/) {
+ s/save home//;
+ print $_;
+ } elsif (!$header || (! /^save$/ && ! /^home$/)) {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixwfwps b/Master/bin/i386-kfreebsd/fixwfwps
new file mode 100755
index 00000000000..92d88443fe1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixwfwps
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl
+# fixwfwps: fix Word for windows PostScript for printing.
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$nesting = 0;
+while (<>) {
+ tr/\000-\010\012-\014\016-\037//d;
+ foreach (grep($_ ne "", split("\015"))) {
+ s!/SVDoc\s+save\s+def!!g;
+ s!SVDoc\s+restore!!g;
+ if (/^(%!PS-Adobe-\d*\.\d*) EPSF-/ && !$nesting) {
+ print "$1\n";
+ $wfwepsf = 1;
+ } elsif (/^SS\s*$/ && $wfwepsf) {
+ print "%%Page: $wfwepsf $wfwepsf\n";
+ $wfwepsf++;
+ print "$_\n";
+ } elsif (/^%MSEPS Preamble/) {
+ print "%%BeginDocument: (Included EPSF)\n";
+ print "$_\n";
+ $nesting++;
+ } elsif (/^%MSEPS Trailer/) {
+ $nesting--;
+ print "$_\n";
+ print "%%EndDocument\n";
+ } elsif (! /^%%BoundingBox/) {
+ print "$_\n";
+ }
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixwpps b/Master/bin/i386-kfreebsd/fixwpps
new file mode 100755
index 00000000000..83a5fdfaf0b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixwpps
@@ -0,0 +1,31 @@
+#!/usr/bin/env perl
+# fixwpps: get semi-conforming PostScript out of WordPerfect 5.0 file
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$page = 1;
+$nesting = 0;
+
+while (<>) {
+ s/([^\/]_t)([0-9]+)/\1 \2/g; # fix wp 5.0 bug
+ if (m!/_[be][dp]! || m!_bp \d+ \d+ roll!) {
+ print $_;
+ } elsif (/^(.*)(_bp.*)$/) {
+ print "$1\n" if $1 ne "";
+ print "%%Page: $page $page\n";
+ print "$2\n";
+ $page++;
+ $nesting++;
+ } elsif (/_ep$/) {
+ print $_;
+ $nesting--;
+ } elsif (/^(.*)(_ed.*)/) {
+ print "$1\n" if $1 ne "";
+ print "%%Trailer:\n";
+ print "$2\n";
+ } else {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fixwwps b/Master/bin/i386-kfreebsd/fixwwps
new file mode 100755
index 00000000000..bfd58c086da
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fixwwps
@@ -0,0 +1,20 @@
+#!/usr/bin/env perl
+# fixwwps: get semi-conforming PostScript out of Windows Write file
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$page = 1;
+
+while (<>) {
+ if (/^(%!.*) EPSF-\d.\d/) {
+ print $1, "\n";
+ } elsif (/^SS/) {
+ print "%%Page: $page $page\n";
+ print $_;
+ $page++;
+ } else {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/fmtutil b/Master/bin/i386-kfreebsd/fmtutil
new file mode 100755
index 00000000000..83884f7050f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fmtutil
@@ -0,0 +1,987 @@
+#!/bin/sh
+# fmtutil - utility to maintain format files.
+# Public domain. Originally written by Thomas Esser.
+# Run with --help for usage.
+
+# program history:
+# further changes in texk/tetex/ChangeLog.
+# 2007-01-04 patch by JK to support $engine subdir (enabled by default)
+# Fr Apr 8 19:15:05 CEST 2005 cleanup now has an argument for the return code
+# Do Mar 02 10:42:31 CET 2006 add tmpdir to TEXFORMATS
+# So Ma 27 18:52:06 CEST 2005 honor $TMPDIR, $TEMP and $TMP, not just $TMP
+# Sa Jan 15 18:13:46 CET 2005 avoid multiple variable assignments in one statement
+# Di Jan 11 11:42:36 CET 2005 fix --byhyphen with relative hyphenfile
+# Fr Dez 31 16:51:29 CET 2004 option catcfg added (for being called by texconfig)
+# Do Dez 30 21:53:27 CET 2004 rename variable verbose to verboseFlag
+# Sa Dez 25 12:44:23 CET 2004 implementation adopted for teTeX-3.0 (tcfmgr)
+# Do Okt 28 11:09:36 CEST 2004 added --refresh
+# Fr Sep 17 19:25:28 CEST 2004 save $0 in a variable before calling a function
+# Sun May 9 23:24:06 CEST 2004 changes for new web2c: format names
+# are now *.fmt, nothing else, disable
+# "plain" symlinks
+# Thu May 6 14:16:19 CEST 2004: "mv ...</dev/null" to avoid interaction.
+# Sun Mar 21 19:44:36 CET 2004: support aleph
+# Thu Dec 25 22:11:53 CET 2003: add version string
+# Thu Dec 25 12:56:14 CET 2003: new listcfg_loop lists only supported formats
+# Sun Dec 21 10:25:37 CET 2003 "mktexfmt pdflatex" did not work (if called
+# as mktexfmt, an extention was mandatory)
+# Mon Sep 15 13:07:31 CEST 2003 add tmpdir to TEXINPUTS
+# Sun Aug 3 11:09:46 CEST 2003 special case for mptopdf
+# Sun Apr 20 10:27:09 CEST 2003 allow " " as well as tab in config file
+# Wed Feb 19 21:14:52 CET 2003 add eomega support
+# Sat Feb 15 22:01:35 CET 2003 let mf-nowin work without mf
+# Wed Dec 25 09:47:44 CET 2002 bugfix for localized pool files
+# Fri Oct 25 02:29:06 CEST 2002: now more careful about find_hyphenfile()
+# Tue Oct 22 22:46:48 CEST 2002: -jobname, oft extension
+# Fri Oct 4 22:33:17 CEST 2002: add more cli stuff: enablefmt
+# disablefmt listcfg
+# Sun Jul 7 21:28:37 CEST 2002: look at log file for possible problems,
+# and issue a warning
+# Tue Jun 4 21:52:57 CEST 2002: trap / cleanup code from updmap
+# Tue Jun 4 19:32:44 CEST 2002: be smarter about stdout / stderr
+# Tue Apr 9 22:46:34 CEST 2002: pass -progname=mpost for metafun
+# Tue Apr 2 00:37:39 CEST 2002: added mktexfmt functionality
+# Tue Jun 5 14:45:57 CEST 2001: added support for mf / mpost
+###############################################################################
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+progname=fmtutil
+argv0=$0
+version='$Id: fmtutil 16755 2010-01-17 01:19:27Z karl $'
+
+cnf=fmtutil.cnf # name of the config file
+export PATH
+
+###############################################################################
+# cleanup()
+# clean up the temp area and exit with proper exit status
+###############################################################################
+cleanup()
+{
+ rc=$1
+ # for debugging, exit $rc here so $tmpdir with its logs sticks around.
+ $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
+ && { cd / && rm -rf "$tmpdir"; }
+ (exit $rc); exit $rc
+}
+
+###############################################################################
+# help() and version()
+# display help (or version) message and exit
+###############################################################################
+help()
+{
+ cat <<eof
+$version
+Usage: fmtutil [OPTION]... CMD [ARG]...
+
+Rebuild and manage TeX formats (and Metafont bases and MetaPost mems).
+
+Valid options:
+ --cnffile FILE
+ --fmtdir DIRECTORY
+ --no-engine-subdir don't use engine-specific subdir of the fmtdir
+ --quiet (not implemented, just for compatibility)
+ --test (not implemented, just for compatibility)
+ --dolinks (not implemented, just for compatibility)
+ --force (not implemented, just for compatibility)
+
+Valid commands:
+ --all recreate all format files
+ --missing create all missing format files
+ --refresh recreate only existing format files
+ --byengine ENGINENAME (re)create formats using ENGINENAME
+ --byfmt FORMATNAME (re)create format for FORMATNAME
+ --byhyphen HYPHENFILE (re)create formats that depend on HYPHENFILE
+ --enablefmt FORMATNAME enable formatname in config file
+ --disablefmt FORMATNAME disable formatname in config file
+ --listcfg list (enabled and disabled) configurations,
+ filtered to available formats
+ --catcfg output the content of the config file
+ --showhyphen FORMATNAME print name of hyphenfile for format FORMATNAME
+ --edit edit config file
+ --version show version info
+ --help show this message
+
+The config file is named fmtutil.cnf, and
+running kpsewhich fmtutil.cnf should show the active file.
+
+Report bugs to <tex-k@tug.org>.
+eof
+ cleanup 0
+}
+
+version()
+{
+ cat <<eof
+$progname version $version
+eof
+ cleanup 0
+}
+
+###############################################################################
+# setupTmpDir()
+# set up a temp directory and a trap to remove it
+###############################################################################
+setupTmpDir()
+{
+ $needsCleanup && return
+
+ trap 'cleanup 1' 1 2 3 7 13 15
+ needsCleanup=true
+ (umask 077; mkdir "$tmpdir") \
+ || abort "could not create directory \`$tmpdir'"
+}
+
+###############################################################################
+# configReplace(file, pattern, line)
+# The first line in file that matches pattern gets replaced by line.
+# line will be added at the end of the file if pattern does not match.
+###############################################################################
+configReplace()
+{
+ file=$1; pat=$2; line=$3
+
+ if grep "$pat" "$file" >/dev/null; then
+ ed "$file" >/dev/null 2>&1 <<-eof
+ /$pat/
+ c
+ $line
+ .
+ w
+ q
+eof
+ else
+ echo "$line" >> $file
+ fi
+}
+
+###############################################################################
+# setmatch(match)
+# setting the "match state" to true or false. Used to see if there was at
+# least one match.
+###############################################################################
+setmatch()
+{
+ match=$1
+}
+
+###############################################################################
+# getmatch()
+# return success if there was at least one match.
+###############################################################################
+getmatch()
+{
+ test "x$match" = xtrue
+}
+
+###############################################################################
+# initTexmfMain()
+# get $MT_TEXMFMAIN from $TEXMFMAIN
+###############################################################################
+initTexmfMain()
+{
+ case $MT_TEXMFMAIN in
+ "") MT_TEXMFMAIN=`kpsewhich --var-value=TEXMFMAIN`;;
+ esac
+ export MT_TEXMFMAIN
+}
+
+###############################################################################
+# cache_vars()
+# locate files / kpathsea variables and export variables to environment
+# this speeds up future calls to e.g. mktexupd
+###############################################################################
+cache_vars()
+{
+ : ${MT_VARTEXFONTS=`kpsewhich --expand-var='$VARTEXFONTS' | sed 's%^!!%%'`}
+ : ${MT_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`}
+ : ${MT_MKTEXNAM_OPT=`kpsewhich --format='web2c files' mktexnam.opt`}
+ : ${MT_MKTEXDIR=`kpsewhich --format='web2c files' mktexdir`}
+ : ${MT_MKTEXDIR_OPT=`kpsewhich --format='web2c files' mktexdir.opt`}
+ : ${MT_MKTEXUPD=`kpsewhich --format='web2c files' mktexupd`}
+ : ${MT_MKTEX_CNF=`kpsewhich --format='web2c files' mktex.cnf`}
+ : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
+ export MT_VARTEXFONTS MT_MKTEXNAM MT_MKTEXNAM_OPT MT_MKTEXDIR
+ export MT_MKTEXDIR_OPT MT_MKTEXUPD MT_MKTEX_CNF MT_MKTEX_OPT
+}
+
+###############################################################################
+# abort(errmsg)
+# print `errmsg' to stderr and exit with error code 1
+###############################################################################
+abort()
+{
+ echo "$progname: $1." >&2
+ cleanup 1
+}
+
+###############################################################################
+# verboseMsg(msg)
+# print `msg' to stderr is $verbose is true
+###############################################################################
+verboseMsg() {
+ $verboseFlag && verbose echo ${1+"$@"}
+}
+
+###############################################################################
+# byebye()
+# report any failures and exit the program
+###############################################################################
+byebye()
+{
+ if $has_warnings; then
+ {
+ cat <<eof
+
+###############################################################################
+$progname: Warning! Some warnings have been issued.
+Visit the log files in directory
+ $destdir
+for details.
+###############################################################################
+
+This is a summary of all \`warning' messages:
+$log_warning_msg
+eof
+ } >&2
+ fi
+
+ if $has_errors; then
+ {
+ cat <<eof
+
+###############################################################################
+$progname: Error! Not all formats have been built successfully.
+Visit the log files in directory
+ $destdir
+for details.
+###############################################################################
+
+This is a summary of all \`failed' messages:
+$log_failure_msg
+eof
+ } >&2
+ cleanup 1
+ else
+ cleanup 0
+ fi
+}
+
+###############################################################################
+# init_log_warning()
+# reset the list of warning messages
+###############################################################################
+init_log_warning()
+{
+ log_warning_msg=
+ has_warnings=false
+}
+
+###############################################################################
+# init_log_failure()
+# reset the list of failure messages
+###############################################################################
+init_log_failure()
+{
+ log_failure_msg=
+ has_errors=false
+}
+
+###############################################################################
+# log_warning(errmsg)
+# report and save warning message `errmsg'
+###############################################################################
+log_warning()
+{
+ echo "Warning: $@" >&2
+ if test -z "$log_warning_msg"; then
+ log_warning_msg="$@"
+ else
+ OLDIFS=$IFS; IFS=
+ log_warning_msg="$log_warning_msg
+$@"
+ IFS=$OLDIFS
+ fi
+ has_warnings=true
+}
+
+###############################################################################
+# log_failure(errmsg)
+# report and save failure message `errmsg'
+###############################################################################
+log_failure()
+{
+ echo "Error: $@" >&2
+ if test -z "$log_failure_msg"; then
+ log_failure_msg="$@"
+ else
+ OLDIFS=$IFS; IFS=
+ log_failure_msg="$log_failure_msg
+$@"
+ IFS=$OLDIFS
+ fi
+ has_errors=true
+}
+
+###############################################################################
+# verbose (cmd)
+# execute cmd. Redirect output depending on $mktexfmtMode.
+###############################################################################
+verbose()
+{
+ $mktexfmtMode && ${1+"$@"} >&2 || ${1+"$@"}
+}
+
+###############################################################################
+# mktexdir(args)
+# call mktexdir script, disable all features (to prevent sticky directories)
+###############################################################################
+mktexdir()
+{
+ initTexmfMain
+ MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$@" >&2
+}
+
+###############################################################################
+# tcfmgr(args)
+# call tcfmgr script
+###############################################################################
+tcfmgr()
+{
+ initTexmfMain
+ "$MT_TEXMFMAIN/texconfig/tcfmgr" "$@"
+}
+
+###############################################################################
+# mktexupd(args)
+# call mktexupd script
+###############################################################################
+mktexupd()
+{
+ initTexmfMain
+ "$MT_TEXMFMAIN/web2c/mktexupd" "$@"
+}
+
+###############################################################################
+# main()
+# parse commandline arguments, initialize variables,
+# switch into temp. direcrory, execute desired command
+###############################################################################
+main()
+{
+ destdir= # global variable: where do we put the format files?
+ cnf_file= # global variable: full name of the config file
+ cmd= # desired action from command line
+ needsCleanup=false
+ need_find_hyphenfile=false
+ cfgparam=
+ cfgmaint=
+ tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+ verboseFlag=true
+
+ # mktexfmtMode: if called as mktexfmt, set to true. Will echo the
+ # first generated filename after successful generation to stdout then
+ # (and nothing else), since kpathsea can only deal with one.
+ mktexfmtMode=false
+ case $argv0 in
+ mktexfmt|*/mktexfmt)
+ mktexfmtMode=true
+ fullfmt=$1; shift
+ case $fullfmt in
+ *.fmt|*.mem|*.base)
+ set x --byfmt `echo $fullfmt | sed 's@\.[a-z]*$@@'` ${1+"$@"}; shift
+ ;;
+ *.*)
+ abort "unknown format type: $fullfmt"
+ ;;
+ "")
+ help
+ ;;
+ *)
+ set x --byfmt $fullfmt; shift
+ ;;
+ esac
+ ;;
+ esac
+
+ use_engine_dir=true # whether to use web2c/$engine subdirs
+ while
+ case $1 in
+ --cnffile)
+ shift; cnf_file=$1; cfgparam=1;;
+ --cnffile=*)
+ cnf_file=`echo "$1" | sed 's/--cnffile=//'`; cfgparam=1; shift ;;
+ --fmtdir)
+ shift; destdir=$1;;
+ --fmtdir=*)
+ destdir=`echo "$1" | sed 's/--fmtdir=//'`; shift ;;
+ --no-engine-subdir)
+ use_engine_dir=false;;
+ --all|-a)
+ cmd=all;;
+ --edit|-e)
+ cmd=edit; cfgmaint=1;;
+ --missing|-m)
+ cmd=missing;;
+ --refresh|-r)
+ cmd=refresh;;
+ --byengine)
+ shift; cmd=byengine; arg=$1;;
+ --byengine=*)
+ cmd=byengine; arg=`echo "$1" | sed 's/--byengine=//'`; shift ;;
+ --byfmt|-f)
+ shift; cmd=byfmt; arg=$1;;
+ --byfmt=*)
+ cmd=byfmt; arg=`echo "$1" | sed 's/--byfmt=//'`; shift ;;
+ --byhyphen|-h)
+ shift; cmd=byhyphen; arg=$1;;
+ --byhyphen=*)
+ cmd=byhyphen; arg=`echo "$1" | sed 's/--byhyphen=//'`; shift ;;
+ --showhyphen|-s)
+ shift; cmd=showhyphen; arg=$1;;
+ --showhyphen=*)
+ cmd=showhyphen; arg=`echo "$1" | sed 's/--showhyphen=//'`; shift ;;
+ --help|-help)
+ cmd=help;;
+ --version)
+ cmd=version;;
+ --enablefmt)
+ shift; cmd=enablefmt; arg=$1; cfgmaint=1;;
+ --enablefmt=*)
+ cmd=enablefmt; arg=`echo "$1" | sed 's/--enablefmt=//'`; cfgmaint=1; shift;;
+ --disablefmt)
+ shift; cmd=disablefmt; arg=$1; cfgmaint=1;;
+ --disablefmt=*)
+ cmd=disablefmt; arg=`echo "$1" | sed 's/--disablefmt=//'`; cfgmaint=1; shift;;
+ --catcfg)
+ cmd=catcfg;;
+ --listcfg)
+ cmd=listcfg;;
+ --quiet|-q)
+ verboseFlag=false;;
+ --test|--dolinks|--force)
+ ;;
+ "") break;;
+ *) abort "$progname: unknown option \`$1'. Try $progname --help for help";;
+ esac
+ do test $# -gt 0 && shift; done
+
+ case "$cmd" in
+ help|"") help;;
+ version) version;;
+ esac
+
+ if test -n "$cfgparam"; then
+ test -f "$cnf_file" || abort "config file \`$cnf_file' not found (ls-R missing?)"
+ fi
+
+ if test -n "$cfgmaint"; then
+ if test -z "$cfgparam"; then
+ setupTmpDir
+ co=`tcfmgr --tmp $tmpdir --cmd co --file $cnf`
+ test $? = 0 || cleanup 1
+ set x $co; shift
+ id=$1; cnf_file=$3; orig=$4
+ verboseMsg "$progname: initial config file is \`$orig'"
+ fi
+ else
+ if test -z "$cfgparam"; then
+ cnf_file=`tcfmgr --cmd find --file $cnf`
+ test -f "$cnf_file" || abort "config file \`$cnf' not found"
+ fi
+ fi
+
+ # showhyphen and edit do not need any temp. directory, so do it here:
+ case "$cmd" in
+ showhyphen)
+ show_hyphen_file "$arg"
+ cleanup $?
+ ;;
+ edit)
+ ${VISUAL-${EDITOR-vi}} $cnf_file
+ ;;
+ enablefmt|disablefmt)
+ $cmd $arg
+ ;;
+ catcfg)
+ grep -v '^ *#' "$cnf_file" | sed 's@^ *@@; s@ *$@@' | grep . | sort
+ cleanup $?
+ ;;
+ listcfg)
+ listcfg_loop
+ cleanup $?
+ ;;
+ esac
+
+ if test -n "$cfgmaint"; then
+ if test -z "$cfgparam"; then
+ ci=`tcfmgr --tmp $tmpdir --cmd ci --id $id`
+ if test $? = 0; then
+ if test -n "$ci"; then
+ verboseMsg "$progname: configuration file updated: \`$ci'"
+ else
+ verboseMsg "$progname: configuration file unchanged."
+ fi
+ else
+ abort "failed to update configuration file."
+ fi
+ fi
+ cleanup $?
+ fi
+
+ # set up destdir:
+ if test -z "$destdir"; then
+ : ${MT_TEXMFVAR=`kpsewhich -var-value=TEXMFVAR`}
+ destdir=$MT_TEXMFVAR/web2c
+ fi
+ test -d "$destdir" || mktexdir "$destdir" >/dev/null 2>&1
+ test -d "$destdir" || abort "format directory \`$destdir' does not exist"
+ test -w "$destdir" || abort "format directory \`$destdir' is not writable"
+
+ thisdir=`pwd`
+
+ : ${KPSE_DOT=$thisdir}
+ export KPSE_DOT
+
+ # due to KPSE_DOT, we don't search the current directory, so include
+ # it explicitly for formats that \write and later on \read
+ TEXINPUTS="$tmpdir:$TEXINPUTS"; export TEXINPUTS
+ # for formats that load other formats (e.g., jadetex loads latex.fmt),
+ # add the current directory to TEXFORMATS, too. Currently unnecessary
+ # for MFBASES and MPMEMS.
+ TEXFORMATS="$tmpdir:$TEXFORMATS"; export TEXFORMATS
+
+ setupTmpDir
+ cd "$tmpdir" || cleanup 1
+
+ # make local paths absolute:
+ case "$destdir" in
+ /*) ;;
+ *) destdir="$thisdir/$destdir";;
+ esac
+ case "$cnf_file" in
+ /*) ;;
+ *) cnf_file="$thisdir/$cnf_file";;
+ esac
+
+ cache_vars
+ init_log_failure
+ init_log_warning
+ # execute the desired command:
+ case "$cmd" in
+ all)
+ recreate_all;;
+ missing)
+ create_missing;;
+ refresh)
+ recreate_existing;;
+ byengine)
+ recreate_by_engine "$arg";;
+ byfmt)
+ recreate_by_fmt "$arg";;
+ byhyphen)
+ recreate_by_hyphenfile "$arg";;
+ esac
+
+ byebye
+}
+
+###############################################################################
+# parse_line(config_line) sets global variables:
+# format: name of the format, e.g. pdflatex
+# engine: name of the TeX engine, e.g. tex, etex, pdftex
+# texargs: flags for initex and name of the ini file (e.g. -mltex frlatex.ini)
+# fmtfile: name of the format file (without directory, but with extension)
+#
+# Support for building internationalized formats sets:
+# pool: base name of pool file (to support translated pool files)
+# tcx: translation file used when creating the format
+#
+# Example (for fmtutil.cnf):
+# mex-pl tex mexconf.tex nls=tex-pl,il2-pl mex.ini
+#
+# The nls parameter (pool,tcx) can only be specified as the first argument
+# inside the 4th field in fmtutil.cnf.
+#
+# exit code: returns error code if the ini file is not installed
+###############################################################################
+parse_line()
+{
+ case $1 in
+ '#!') disabled=true; shift;;
+ *) disabled=false;;
+ esac
+ format=$1
+ engine=$2
+ hyphenation=$3
+ shift; shift; shift
+
+ # handle nls support: pool + tcx
+ pool=; tcx=
+ case $1 in
+ nls=*)
+ pool=`echo $1 | sed 's@nls=@@; s@,.*@@'`
+ tcx=`echo $1 | sed 's@nls=[^,]*@@; s@^,@@'`
+ shift # nls stuff is not handled by the engine directly,
+ # so we shift this away
+ ;;
+ esac
+
+ texargs="$@"
+
+ case "$engine" in
+ mpost) fmtfile="$format.mem"; kpsefmt=mp; texengine=metapost;;
+ mf|mfw|mf-nowin) fmtfile="$format.base"; kpsefmt=mf; texengine=metafont;;
+ *) fmtfile="$format.fmt"; kpsefmt=tex; texengine=$engine;;
+ esac
+
+ # remove any * for the sake of the kpsewhich lookup.
+ eval lastarg=\$$#
+ inifile=`echo $lastarg | sed 's%^\*%%'`
+
+ # See if we can find $inifile for return code:
+ kpsewhich -progname=$format -format=$kpsefmt $inifile >/dev/null 2>&1
+}
+
+###############################################################################
+# find_hyphenfile(format, hyphenation) searches for hyphenation along
+# searchpath of format
+# exit code: returns error is file is not found
+###############################################################################
+find_hyphenfile()
+{
+ format="$1"; hyphenation="$2"
+ case $hyphenation in
+ -) ;;
+ *) kpsewhich -progname="$format" -format=tex "$hyphenation";;
+ esac
+}
+
+###############################################################################
+# find_info_for_name(format)
+# Look up the config line for format `format' and call parse_line to set
+# global variables.
+###############################################################################
+find_info_for_name()
+{
+ format="$1"
+
+ # set x `awk '$1 == format {print; exit}' format="$format" "$cnf_file"`; shift
+ set x `egrep "^$format( | )" "$cnf_file" | sed q`; shift
+ test $# = 0 && abort "no info for format \`$format'"
+ parse_line "$@"
+}
+
+###############################################################################
+# run_initex()
+# Calls initex. Assumes that global variables are set by parse_line.
+###############################################################################
+run_initex()
+{
+
+ # install a pool file and set tcx flag if requested in lang= option:
+ rm -f *.pool
+ poolfile=
+ tcxflag=
+ test -n "$pool" \
+ && poolfile=`(kpsewhich -progname=$engine $pool.pool) 2>/dev/null`
+ if test -n "$poolfile" && test -f "$poolfile"; then
+ verboseMsg "$progname: attempting to create localized format using pool=$pool and tcx=$tcx."
+ cp "$poolfile" $engine.pool
+ test -n "$tcx" && tcxflag=-translate-file=$tcx
+ localpool=true
+ else
+ localpool=false
+ fi
+
+ jobswitch="-jobname=$format"
+ case "$format" in
+ metafun) prgswitch=-progname=mpost;;
+ mptopdf|cont-??) prgswitch=-progname=context;;
+ *) prgswitch=-progname=$format;;
+ esac
+
+ rm -f $fmtfile
+
+ # Check for infinite recursion before running the iniTeX:
+ # We do this check only if we are running in mktexfmt mode
+ # otherwise double format definitions will create an infinite loop, too
+ $mktexfmtMode || mktexfmt_loop=
+ case :$mktexfmt_loop: in
+ *:"$format/$engine":*)
+ abort "Infinite recursion detected, giving up!" ;;
+ esac
+ mktexfmt_loop=$mktexfmt_loop:$format/$engine
+ export mktexfmt_loop
+
+ verboseMsg "$progname: running \`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' ..."
+
+ # run in a subshell to get a local effect of TEXPOOL manipulation:
+ (
+ # If necessary, set TEXPOOL. Use absolute path, because of KPSE_DOT.
+ $localpool && { TEXPOOL="`pwd`:$TEXPOOL"; export TEXPOOL; }
+ verbose $engine -ini $tcxflag $jobswitch $prgswitch $texargs
+ ) </dev/null
+
+ if test $use_engine_dir; then
+ fulldestdir="$destdir/$texengine"
+ else
+ fulldestdir="$destdir"
+ fi
+ mkdir -p "$fulldestdir"
+ if test -f "$fmtfile"; then
+ grep '^! ' $format.log >/dev/null 2>&1 &&
+ log_warning "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' possibly failed."
+
+ # We don't want user-interaction for the following "mv" commands:
+ mv "$format.log" "$fulldestdir/$format.log" </dev/null
+ #
+ destfile=$fulldestdir/$fmtfile
+ if mv "$fmtfile" "$destfile" </dev/null; then
+ verboseMsg "$progname: $destfile installed."
+ #
+ # As a special special case, we create mplib-luatex.mem for use by
+ # the mplib embedded in luatex if it doesn't already exist. (We
+ # never update it if it does exist.)
+ #
+ # This is used by the luamplib package. This way, an expert user
+ # who wants to try a new version of luatex (hence with a new
+ # version of mplib) can manually update mplib-luatex.mem without
+ # having to tamper with mpost itself.
+ #
+ if test "x$format" = xmpost && test "x$engine" = xmpost; then
+ mplib_mem_name=mplib-luatex.mem
+ mplib_mem_file=$fulldestdir/$mplib_mem_name
+ if test \! -f $mplib_mem_file; then
+ verboseMsg "$progname: copying $destfile to $mplib_mem_file"
+ if cp "$destfile" "$mplib_mem_file" </dev/null; then
+ mktexupd "$fulldestdir" "$mplib_mem_name"
+ else
+ log_warning "cp $destfile $mplib_mem_file failed."
+ fi
+ else
+ verboseMsg "$progname: $mplib_mem_file already exists, not updating."
+ fi
+ fi
+ #
+ # Echo the (main) output filename for our caller.
+ $mktexfmtMode && $mktexfmtFirst \
+ && echo "$destfile" && mktexfmtFirst=false
+ #
+ mktexupd "$fulldestdir" "$fmtfile"
+ fi
+ else
+ log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' failed"
+ fi
+}
+
+###############################################################################
+# recreate_loop()
+# for each line in config file: check match-condition and recreate format
+# if there is a match
+###############################################################################
+recreate_loop()
+{
+ OIFS=$IFS
+ IFS='
+'
+ set `echo x; sed '/^#/d; /^[ ]*$/d' "$cnf_file"`; shift
+ IFS=$OIFS
+ for line
+ do
+ parse_line $line || continue
+ check_match || continue
+ run_initex
+ done
+}
+
+###############################################################################
+# listcfg_loop()
+# prints all format definitions in config files (enabled and disabled ones)
+# for supported formats (i.e. for those which have an existing ini file)
+###############################################################################
+listcfg_loop()
+{
+ OIFS=$IFS
+ IFS='
+'
+ set `echo x; sed '/^#$/d; /^#[^!]/d; /^[ ]*$/d' "$cnf_file"`; shift
+ IFS=$OIFS
+ for line
+ do
+ parse_line $line && echo "$line"
+ done
+}
+
+###############################################################################
+# check_match()
+# recreate all formats
+###############################################################################
+check_match()
+{
+ $need_find_hyphenfile && \
+ this_hyphenfile=`find_hyphenfile "$format" "$hyphenation"`
+
+ eval $match_cmd && setmatch true
+}
+
+###############################################################################
+# recreate_by_fmt(fmtname)
+# recreate all versions of fmtname
+###############################################################################
+recreate_by_fmt()
+{
+ fmtname=$1
+ match_cmd="test x\$format = x$fmtname"
+ recreate_loop
+}
+
+###############################################################################
+# create_missing()
+# create all missing format files
+###############################################################################
+create_missing()
+{
+ # match_cmd='test ! -f $destdir/$fmtfile'
+ match_cmd='test ! -f "`kpsewhich -engine=$texengine -progname=$format $fmtfile`"'
+ recreate_loop
+}
+
+###############################################################################
+# recreate_existing()
+# recreate only existing format files
+###############################################################################
+recreate_existing()
+{
+ match_cmd='test -f "`kpsewhich -engine=$texengine -progname=$format $fmtfile`"'
+ recreate_loop
+}
+
+###############################################################################
+# recreate_all()
+# recreate all formats
+###############################################################################
+recreate_all()
+{
+ match_cmd=true
+ recreate_loop
+}
+
+###############################################################################
+# recreate_by_hyphenfile(hyphenfile)
+# recreate all formats that depend on hyphenfile
+###############################################################################
+recreate_by_hyphenfile()
+{
+ hyphenfile=$1
+
+ case $hyphenfile in
+ /*)
+ :
+ ;;
+ ./*)
+ hyphenfile="$KPSE_DOT/"`echo "$hyphenfile" | sed 's@..@@'`
+ ;;
+ *)
+ hyphenfile="$KPSE_DOT/$hyphenfile"
+ ;;
+ esac
+ need_find_hyphenfile=true
+ match_cmd="test x\$this_hyphenfile = x$hyphenfile"
+
+ # No match before the loop:
+ setmatch false
+
+ recreate_loop
+
+ # Now check if there was at least one match:
+ getmatch || abort "no format depends on hyphen file \`$hyphenfile'"
+}
+
+###############################################################################
+# recreate_by_engine(enginename)
+# recreate all formats that are based on enginename
+###############################################################################
+recreate_by_engine()
+{
+ enginename=$1
+
+ match_cmd="test x\$engine = x$enginename"
+
+ # No match before the loop:
+ setmatch false
+
+ recreate_loop
+
+ # Now check if there was at least one match:
+ getmatch || abort "no format depends on engine \`$enginename'"
+}
+
+
+
+###############################################################################
+# show_hyphen_file(format)
+# prints full name of the hyphenfile for format
+#
+# exit code: returns error code if the ini file is not installed or if
+# the hyphen file cannot be found
+###############################################################################
+show_hyphen_file()
+{
+ fmtname=$1
+
+ find_info_for_name "$fmtname" || abort "no info for format \`$fmtname'"
+ if test "x$hyphenation" = x-; then
+ echo -
+ cleanup 0
+ fi
+ find_hyphenfile "$format" "$hyphenation" \
+ || abort "hyphenfile \`$hyphenation' not found"
+}
+
+###############################################################################
+# disablefmt(format)
+# disables format in configuration file
+###############################################################################
+disablefmt()
+{
+ grep "^$1[ ]" $cnf_file >/dev/null || { (exit 0); return 0; }
+
+ ed $cnf_file >/dev/null 2>&1 <<-eof
+ g/^$1[ ]/s/^/#! /
+ w
+ q
+eof
+ (exit 0); return 0
+}
+
+###############################################################################
+# enablefmt(format)
+# enables format in configuration file
+###############################################################################
+enablefmt()
+{
+ grep "^#![ ]*$1[ ]" $cnf_file >/dev/null || { (exit 0); return 0; }
+ ed $cnf_file >/dev/null 2>&1 <<-eof
+ g/^#![ ]*$1[ ]/s/..[ ]*//
+ w
+ q
+eof
+ (exit 0); return 0
+}
+
+main ${1+"$@"}
+cleanup 0
diff --git a/Master/bin/i386-kfreebsd/fmtutil-sys b/Master/bin/i386-kfreebsd/fmtutil-sys
new file mode 100755
index 00000000000..bfb52f94e1f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fmtutil-sys
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# fmtutil-sys: Thomas Esser, public domain.
+
+# wrapper script for fmtutil with TEXMFVAR and TEXMFCONFIG set to
+# TEXMFSYSVAR / TEXMFSYSCONFIG
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+export PATH
+
+v=`kpsewhich -var-value TEXMFSYSVAR`
+c=`kpsewhich -var-value TEXMFSYSCONFIG`
+
+TEXMFVAR="$v"
+TEXMFCONFIG="$c"
+export TEXMFVAR TEXMFCONFIG
+
+exec fmtutil ${1+"$@"}
diff --git a/Master/bin/i386-kfreebsd/font2afm b/Master/bin/i386-kfreebsd/font2afm
new file mode 120000
index 00000000000..b9cc2541efe
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/font2afm
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/font2afm \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/fontinst b/Master/bin/i386-kfreebsd/fontinst
new file mode 100755
index 00000000000..7d1271517ad
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fontinst
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+tex -progname=fontinst \&tex ${1+"$@"}
diff --git a/Master/bin/i386-kfreebsd/fragmaster b/Master/bin/i386-kfreebsd/fragmaster
new file mode 120000
index 00000000000..ca1bb398b4b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/fragmaster
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fragmaster/fragmaster.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/gbklatex b/Master/bin/i386-kfreebsd/gbklatex
new file mode 100755
index 00000000000..f799f7b6e63
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/gbklatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+extconv < "$tex" > "$aux" && eval latex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/gbkpdflatex b/Master/bin/i386-kfreebsd/gbkpdflatex
new file mode 100755
index 00000000000..6dd3ee3de9e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/gbkpdflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] pdflatex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+extconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/getafm b/Master/bin/i386-kfreebsd/getafm
new file mode 100755
index 00000000000..1c6cd21cf77
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/getafm
@@ -0,0 +1,358 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]; then
+ echo "usage: $0 font-name | gsnd - >font-name.afm" >&2
+ exit 1
+fi
+
+cat << EOF
+%!
+% produce .afm for $1
+% (c) 1993 by Robert Joop <rj@rainbow.in-berlin.de>
+% inspired by two other versions of this theme which are
+% getafm 1.00 (c) AJCD
+% and getafm.ps by an unknown author,
+% modified by J. Daniel Smith <dsmith@mailhost.aa.cad.slb.com>
+
+% Metrics dictionary code added by AJCD, 7/6/93
+
+/getafmdict 100 dict dup begin
+
+ /buf 256 string def
+ /buf2 16 string def
+
+ /prany % dict dictname printname -> dict
+ {
+ 2 index 2 index cvn known
+ {
+ print % printname
+ ( ) print
+ 1 index exch cvn get =
+ }
+ {
+ (Comment /FontInfo contains no /) print
+ 2 copy eq
+ {
+ = % printname
+ pop % dictname
+ }
+ {
+ exch
+ print % dictname
+ (, therefore no ) print
+ = % printname
+ }
+ ifelse
+ }
+ ifelse
+ }
+ bind def
+
+ /printfontname
+ {
+ (FontName)dup prany
+ }
+ bind def
+
+ /printfontinfo
+ {
+ dup /FontInfo known
+ {
+ dup /FontInfo get
+ (FullName)dup prany
+ (FamilyName)dup prany
+ (Weight)dup prany
+ (ItalicAngle)dup prany
+ (isFixedPitch)(IsFixedPitch) prany
+ (UnderlinePosition)dup prany
+ (UnderlineThickness)dup prany
+ (Version)(version) prany
+ (Notice)dup prany
+ pop
+ }
+ {
+ (Comment Font lacks a /FontInfo!)=
+ }
+ ifelse
+ }
+ bind def
+
+ /prbbox % llx lly urx ury -> -
+ {
+ 4 1 roll 3 1 roll exch % swap top 4 elements
+ 4 { ( ) print buf cvs print } repeat
+ }
+ bind def
+
+ /getbbox % fontdict chardict character -> fontdict chardict llx lly urx ury
+ {
+ gsave
+ 2 index setfont 0 0 moveto
+ false charpath flattenpath pathbbox
+ grestore
+ }
+ bind def
+
+ /printmiscinfo
+ {
+ dup /FontBBox known
+ {
+ (FontBBox) print
+ dup /FontBBox get aload pop prbbox ()=
+ }
+ {
+ (Comment missing required /FontBBox)=
+ quit
+ }
+ ifelse
+ 2 copy exch get
+ dup /H known
+ 1 index /x known and
+ 1 index /d known and
+ 1 index /p known and
+ dup /looksRoman exch def
+ {
+ (CapHeight ) print
+ (H) getbbox
+ ceiling cvi = pop pop pop
+ (XHeight ) print
+ (x) getbbox
+ ceiling cvi = pop pop pop
+ (Ascender ) print
+ (d) getbbox
+ ceiling cvi = pop pop pop
+ (Descender ) print
+ (p) getbbox
+ pop pop floor cvi = pop
+ }
+ {
+ (Comment font doesn't contain H, x, d and p; therefore no CapHeight, XHeight, Ascender and Descender)=
+ }
+ ifelse
+ pop
+ dup /Encoding get
+ [
+ [ (ISOLatin1Encoding) /ISOLatin1Encoding ]
+ [ (AdobeStandardEncoding) /StandardEncoding ]
+ ]
+ {
+ aload pop dup where
+ {
+ exch get 2 index eq
+ {
+ (EncodingScheme ) print
+ buf cvs =
+ }
+ {
+ pop
+ }
+ ifelse
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ forall
+ pop
+ }
+ bind def
+
+ /printcharmetric
+ {
+ % chardictname fontdict charnamedict encoding charindex charname
+
+ 4 index dup length dict dup begin exch
+ {
+ 1 index /FID ne
+ 2 index /UniqueID ne
+ and
+ {
+ 1 index /Encoding eq { 256 array copy } if
+ def
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+ end
+ dup /Encoding get 32 3 index put
+ /f2 exch definefont
+ setfont
+
+ (C ) print
+ 1 index buf cvs print
+
+ ( ; WX ) print
+% Metrics entries are:
+% 1 number: which is the character width
+% an array of 2 numbers: which are the left sidebearing and width
+% an array of 4 numbers: x & y left sidebearing, width and height
+ dup 5 index % /charname fontdict
+ dup /Metrics known {
+ /Metrics get exch 2 copy known {
+ get dup type /arraytype eq {
+ dup length 2 eq
+ {1 get} {2 get} ifelse
+ } if
+ round cvi buf cvs print
+ } {
+ pop pop ( ) stringwidth pop round cvi buf cvs print
+ } ifelse
+ } {
+ pop pop ( ) stringwidth pop round cvi buf cvs print
+ } ifelse
+
+ ( ; N ) print
+ dup buf cvs print
+
+ ( ; B) print
+ gsave
+ newpath 0 0 moveto
+ ( ) true charpath flattenpath pathbbox
+ grestore
+ 2 { ceiling cvi 4 1 roll } repeat
+ 2 { floor cvi 4 1 roll } repeat
+ prbbox
+
+ looksRoman
+ {
+ [
+ [ /f [ /i /f /l ] ]
+ [ /ff [ /i /l ] ]
+ ]
+ {
+ aload pop 1 index 3 index eq
+ {
+ {
+ 1 index buf cvs
+ length
+ 1 index buf2 cvs dup length
+ 2 index add
+ buf
+ 4 2 roll putinterval
+ buf 0
+ 3 -1 roll getinterval
+ dup cvn
+ 7 index
+ exch known
+ {
+ exch
+ ( ; L ) print
+ buf2 cvs print
+ ( ) print
+ print
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ forall
+ pop
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ forall
+ }
+ if
+ pop
+
+ ( ;)=
+ }
+ bind def
+
+ /printcharmetrics
+ {
+ (StartCharMetrics ) print
+ 2 copy exch get length 1 sub buf cvs =
+
+ 256 dict dup begin
+ 1 index /Encoding get
+ { null def }
+ forall
+ end
+ % chardictname fontdict charnamedict
+ 1 index /Encoding get
+ 0 1 255
+ {
+ % encoding index
+ 2 copy get
+ dup /.notdef eq { pop } { printcharmetric } ifelse
+ pop % index
+ } for
+
+ -1
+ 3 index 5 index get
+ {
+ pop
+ dup /.notdef eq
+ { pop }
+ {
+ % chardictname fontdict charnamedict encoding charindex charname
+ dup 4 index exch known
+ { pop }
+ { printcharmetric }
+ ifelse
+ }
+ ifelse
+ }
+ forall
+ % charnamedict encoding index
+ pop pop pop
+
+ (EndCharMetrics)=
+ }
+ bind def
+
+ /printfontmetrics
+ {
+ (StartFontMetrics 3.0)=
+ (Comment Produced by getafm 3.0 (which is by rj@rainbow.in-berlin.de))=
+
+ printfontname
+ printfontinfo
+ printmiscinfo
+ printcharmetrics
+
+ (EndFontMetrics)=
+ }
+ bind def
+
+end def
+
+/getafm
+{
+ getafmdict begin
+ save exch
+ findfont 1000 scalefont
+
+ null
+ [ /CharDefs /CharData /CharProcs /CharStrings ]
+ {
+ 2 index 1 index known { exch } if
+ pop
+ }
+ forall
+ dup null eq
+ {
+ (can't find dictionary with character data!)=
+ quit
+ }
+ if
+ exch % dictname fontdict
+
+ printfontmetrics
+
+ pop pop
+ restore
+ end
+}
+bind def
+
+/$1 getafm
+
+EOF
diff --git a/Master/bin/i386-kfreebsd/gftodvi b/Master/bin/i386-kfreebsd/gftodvi
new file mode 100755
index 00000000000..1fd9d2ab713
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/gftodvi
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/gftopk b/Master/bin/i386-kfreebsd/gftopk
new file mode 100755
index 00000000000..800cf0f89d5
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/gftopk
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/gftype b/Master/bin/i386-kfreebsd/gftype
new file mode 100755
index 00000000000..19a81996fdd
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/gftype
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/gsftopk b/Master/bin/i386-kfreebsd/gsftopk
new file mode 100755
index 00000000000..495ba3b07fd
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/gsftopk
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/hbf2gf b/Master/bin/i386-kfreebsd/hbf2gf
new file mode 100755
index 00000000000..94cdd96c26e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/hbf2gf
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ht b/Master/bin/i386-kfreebsd/ht
new file mode 120000
index 00000000000..ecd829558cd
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ht
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/ht.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/htcontext b/Master/bin/i386-kfreebsd/htcontext
new file mode 120000
index 00000000000..d2754ae84fc
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/htcontext
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/htcontext.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/htlatex b/Master/bin/i386-kfreebsd/htlatex
new file mode 120000
index 00000000000..fe0feaa8185
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/htlatex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/htlatex.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/htmex b/Master/bin/i386-kfreebsd/htmex
new file mode 120000
index 00000000000..29032d7b670
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/htmex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/htmex.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/httex b/Master/bin/i386-kfreebsd/httex
new file mode 120000
index 00000000000..ece1bd19046
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/httex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/httex.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/httexi b/Master/bin/i386-kfreebsd/httexi
new file mode 120000
index 00000000000..aa6cd5c8561
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/httexi
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/httexi.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/htxelatex b/Master/bin/i386-kfreebsd/htxelatex
new file mode 120000
index 00000000000..dcaa0fc882c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/htxelatex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/htxelatex.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/htxetex b/Master/bin/i386-kfreebsd/htxetex
new file mode 120000
index 00000000000..c6cf37bfae9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/htxetex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/htxetex.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/includeres b/Master/bin/i386-kfreebsd/includeres
new file mode 100755
index 00000000000..4547357cd93
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/includeres
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+# includeres: include resources in PostScript file
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$prog = ($0 =~ s=.*/==);
+
+%extn = ("font", ".pfa", "file", ".ps", "procset", ".ps", # resource extns
+ "pattern", ".pat", "form", ".frm", "encoding", ".enc");
+%type = ("%%BeginFile:", "file", "%%BeginProcSet:", "procset",
+ "%%BeginFont:", "font"); # resource types
+
+sub filename { # make filename for resource in @_
+ local($name);
+ foreach (@_) { # sanitise name
+ s/[!()\$\#*&\\\|\`\'\"\~\{\}\[\]\<\>\?]//g;
+ $name .= $_;
+ }
+ $name =~ s@.*/@@; # drop directories
+ die "Filename not found for resource ", join(" ", @_), "\n"
+ if $name =~ /^$/;
+ $name;
+}
+
+while (<>) {
+ if (/^%%IncludeResource:/ || /^%%IncludeFont:/ || /^%%IncludeProcSet:/) {
+ local($comment, @res) = split(/\s+/);
+ local($type) = defined($type{$comment}) ? $type{$comment} : shift(@res);
+ local($name) = &filename(@res);
+ local($inc) = ""; # system include directory
+ if (open(RES, $name) || open(RES, "$name$extn{$type}") ||
+ open(RES, "$inc/$name") || open(RES, "$inc/$name$extn{$type}")) {
+ while (<RES>) {
+ print $_;
+ }
+ close(RES);
+ } else {
+ print "%%IncludeResource: ", join(" ", $type, @res), "\n";
+ print STDERR "Resource $name not found\n";
+ }
+ } else {
+ print $_;
+ }
+}
+
diff --git a/Master/bin/i386-kfreebsd/jadetex b/Master/bin/i386-kfreebsd/jadetex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/jadetex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/kpseaccess b/Master/bin/i386-kfreebsd/kpseaccess
new file mode 100755
index 00000000000..9e80cd74c00
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpseaccess
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/kpsepath b/Master/bin/i386-kfreebsd/kpsepath
new file mode 120000
index 00000000000..30de0e13853
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsepath
@@ -0,0 +1 @@
+kpsetool \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/kpsereadlink b/Master/bin/i386-kfreebsd/kpsereadlink
new file mode 100755
index 00000000000..35681337978
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsereadlink
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/kpsestat b/Master/bin/i386-kfreebsd/kpsestat
new file mode 100755
index 00000000000..beb0cc4a25e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsestat
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/kpsetool b/Master/bin/i386-kfreebsd/kpsetool
new file mode 100755
index 00000000000..463097fd4a9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsetool
@@ -0,0 +1,118 @@
+#!/bin/sh
+
+# kpsetool. Script to make teTeX-style kpsetool, kpsexpand and kpsepath
+# available. Web2C's kpsewhich offers a superset of the functionality.
+# For compatibilty with old versions of teTeX, this script provides the
+# old command line interface of kpsetool, kpsexpand and kpsepath. All the
+# real work is done inside Web2C's kpsewhich.
+# Thomas Esser <te@dbs.uni-hannover.de>, Mar 1997, public domain.
+
+export PATH
+
+usage="
+Usage: kpsexpand [options] string
+Usage: kpsetool -w [options] pathtype filename
+Usage: kpsepath [options] pathtype
+
+Valid options are the following:
+ -n progname : pretend to be progname to kpathsea
+ -m mode : set Metafont mode
+ -w : locate files (similar to kpsewhich)
+ -p : act like kpsepath
+ -v : act like kpsexpand
+
+Valid pathtypes are:
+ gf : generic font bitmap
+ pk : packed bitmap font
+ base : Metafont memory dump
+ bib : BibTeX bibliography source
+ bst : BibTeX style files
+ cnf : Kpathsea runtime configuration files
+ fmt : TeX memory dump
+ mem : MetaPost memory dump
+ mf : Metafont source
+ mfpool : Metafont program strings
+ mp : MetaPost source
+ mppool : MetaPost program strings
+ mpsupport : MetaPost support files
+ pict : Other kinds of figures
+ tex : TeX source
+ texpool : TeX program strings
+ tfm : TeX font metrics
+ vf : virtual font
+ dvips_config : dvips config files
+ dvips_header : dvips header files
+ troff_font : troff fonts
+"
+
+action=kpsexpand
+case $0 in
+ */kpsewhich) action=kpsewhich;;
+ */kpsepath) action=kpsepath;;
+esac
+
+progname=`echo $0 | sed 's@.*/@@'`
+flags=''
+
+while true; do
+ case x"$1" in
+ x-n)
+ if test $# = 1; then
+ echo "$progname: missing argument for -n."
+ echo "$usage"; exit 1
+ else
+ flags="$flags -progname=$2"; shift; shift
+ fi;;
+ x-m)
+ if test $# = 1; then
+ echo "$progname: missing argument for -m."
+ echo "$usage"; exit 1
+ else
+ flags="$flags -mode=$2"; shift; shift
+ fi;;
+ x-w) action=kpsewhich; shift;;
+ x-p) action=kpsepath; shift;;
+ x-v) action=kpsexpand; shift;;
+ *) break;;
+ esac
+done
+
+case "$action" in
+ kpsewhich|kpsepath)
+ case "$1" in
+ gf) format='gf';;
+ pk) format='pk';;
+ base) format='.base';;
+ bib) format='.bib';;
+ bst) format='.bst';;
+ cnf) format='.cnf';;
+ fmt) format='.fmt';;
+ mem) format='.mem';;
+ mf) format='.mf';;
+ mfpool) format='.pool';;
+ mp) format='.mp';;
+ mppool) format='.pool';;
+ mpsupport) format='MetaPost support';;
+ pict) format='.eps';;
+ tex) format='.tex';;
+ texpool) format='.pool';;
+ tfm) format='.tfm';;
+ vf) format='.vf';;
+ dvips_config) format='dvips config';;
+ dvips_header) format='.pro';;
+ troff_font) format='Troff fonts';;
+ *) echo "$progname: $1: unknown format"; echo "$usage"; exit 1;;
+ esac
+ shift;;
+esac
+
+case "$action" in
+ kpsewhich)
+ test $# = 1 || { echo "$progname: missing filename"; echo "$usage"; exit 1; }
+ kpsewhich $flags -format="$format" "$1";;
+ kpsepath)
+ kpsewhich $flags -show-path="$format";;
+ kpsexpand)
+ test $# = 1 || { echo "$progname: missing string"; echo "$usage"; exit 1; }
+ kpsewhich $flags -expand-var="$1";;
+esac
diff --git a/Master/bin/i386-kfreebsd/kpsewhere b/Master/bin/i386-kfreebsd/kpsewhere
new file mode 100755
index 00000000000..51088ee80d6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsewhere
@@ -0,0 +1,63 @@
+#!/bin/sh
+#
+# Thomas Esser, Hans Fredrik Nordhaug, 2003, 2004.
+# Public domain.
+#
+# kpsewhere is an extension to kpsewhich (as where is for which in tcsh).
+# The intention is to provide a way to check for conflicts/shadowed
+# files.
+#
+# Original version by Hans Fredrik Nordhaug <hans.fredrik@nordhaug.no>
+#
+# Bugs / limitations:
+# conflicts/shadowed files whithin each texmf tree are not found.
+#
+
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+help='Usage: kpsewhere [OPTION]... [FILENAME]...
+ Expanding kpsewhich to iterate over each texmf tree listed in $TEXMF
+ separately.
+
+ See kpsewhich for help on options.
+
+ --help show this help'
+
+options=
+while
+ case $1 in
+ -h|-help|--help)
+ echo "$help" >&2
+ exit 0;;
+ -*) options="${options} '${1}'";;
+ *) break;;
+ esac
+do shift; done
+
+case $# in
+ 0)
+ echo "$help" >&2
+ exit 1
+ ;;
+esac
+
+IFS=':'
+for file
+do
+ for path in `kpsewhich --expand-path='$TEXMF'`
+ do
+ eval TEXMF=\$path kpsewhich $options \"\$file\"
+ done
+done
+exit 0
diff --git a/Master/bin/i386-kfreebsd/kpsewhich b/Master/bin/i386-kfreebsd/kpsewhich
new file mode 100755
index 00000000000..7e2963d6689
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsewhich
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/kpsexpand b/Master/bin/i386-kfreebsd/kpsexpand
new file mode 120000
index 00000000000..30de0e13853
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/kpsexpand
@@ -0,0 +1 @@
+kpsetool \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/lacheck b/Master/bin/i386-kfreebsd/lacheck
new file mode 100755
index 00000000000..60e1cd9adff
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/lacheck
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/lamed b/Master/bin/i386-kfreebsd/lamed
new file mode 120000
index 00000000000..b02b132b9c1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/lamed
@@ -0,0 +1 @@
+aleph \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/latex b/Master/bin/i386-kfreebsd/latex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/latex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/latex2man b/Master/bin/i386-kfreebsd/latex2man
new file mode 120000
index 00000000000..66d79f878b7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/latex2man
@@ -0,0 +1 @@
+../../texmf-dist/scripts/latex2man/latex2man \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/latexdiff b/Master/bin/i386-kfreebsd/latexdiff
new file mode 120000
index 00000000000..8a08889cc78
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/latexdiff
@@ -0,0 +1 @@
+../../texmf-dist/scripts/latexdiff/latexdiff.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/latexdiff-vc b/Master/bin/i386-kfreebsd/latexdiff-vc
new file mode 120000
index 00000000000..7f25407d7e5
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/latexdiff-vc
@@ -0,0 +1 @@
+../../texmf-dist/scripts/latexdiff/latexdiff-vc.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/latexmk b/Master/bin/i386-kfreebsd/latexmk
new file mode 120000
index 00000000000..4993e09a4e9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/latexmk
@@ -0,0 +1 @@
+../../texmf-dist/scripts/latexmk/latexmk.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/latexrevise b/Master/bin/i386-kfreebsd/latexrevise
new file mode 120000
index 00000000000..d2325c31e6c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/latexrevise
@@ -0,0 +1 @@
+../../texmf-dist/scripts/latexdiff/latexrevise.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/listings-ext.sh b/Master/bin/i386-kfreebsd/listings-ext.sh
new file mode 120000
index 00000000000..943db76d879
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/listings-ext.sh
@@ -0,0 +1 @@
+../../texmf-dist/scripts/listings-ext/listings-ext.sh \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/lualatex b/Master/bin/i386-kfreebsd/lualatex
new file mode 120000
index 00000000000..8d727021583
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/lualatex
@@ -0,0 +1 @@
+luatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/luatangle b/Master/bin/i386-kfreebsd/luatangle
new file mode 100755
index 00000000000..7310cd8482a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/luatangle
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/luatex b/Master/bin/i386-kfreebsd/luatex
new file mode 100755
index 00000000000..38212b692e7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/luatex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/luatools b/Master/bin/i386-kfreebsd/luatools
new file mode 120000
index 00000000000..aaf03c419a9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/luatools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/lua/luatools.lua \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mag b/Master/bin/i386-kfreebsd/mag
new file mode 100755
index 00000000000..c868974794f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mag
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/makeglossaries b/Master/bin/i386-kfreebsd/makeglossaries
new file mode 120000
index 00000000000..526413aa3ea
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/makeglossaries
@@ -0,0 +1 @@
+../../texmf-dist/scripts/glossaries/makeglossaries \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/makeindex b/Master/bin/i386-kfreebsd/makeindex
new file mode 100755
index 00000000000..549b2e777d3
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/makeindex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/makempy b/Master/bin/i386-kfreebsd/makempy
new file mode 120000
index 00000000000..a3df543b304
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/makempy
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/makempy \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/man b/Master/bin/i386-kfreebsd/man
new file mode 120000
index 00000000000..9616d4ec099
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/man
@@ -0,0 +1 @@
+../../texmf/doc/man \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/metafun b/Master/bin/i386-kfreebsd/metafun
new file mode 120000
index 00000000000..96672bbb523
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/metafun
@@ -0,0 +1 @@
+mpost \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mex b/Master/bin/i386-kfreebsd/mex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mf b/Master/bin/i386-kfreebsd/mf
new file mode 100755
index 00000000000..a053200cc2c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mf
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/mf-nowin b/Master/bin/i386-kfreebsd/mf-nowin
new file mode 100755
index 00000000000..47575dadc6d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mf-nowin
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/mfplain b/Master/bin/i386-kfreebsd/mfplain
new file mode 120000
index 00000000000..96672bbb523
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mfplain
@@ -0,0 +1 @@
+mpost \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mft b/Master/bin/i386-kfreebsd/mft
new file mode 100755
index 00000000000..8a95fb4188d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mft
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/mk4ht b/Master/bin/i386-kfreebsd/mk4ht
new file mode 120000
index 00000000000..4b7480809ba
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mk4ht
@@ -0,0 +1 @@
+../../texmf-dist/scripts/tex4ht/mk4ht.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mkgrkindex b/Master/bin/i386-kfreebsd/mkgrkindex
new file mode 120000
index 00000000000..2dc602dd180
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mkgrkindex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/mkgrkindex/mkgrkindex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mkindex b/Master/bin/i386-kfreebsd/mkindex
new file mode 100755
index 00000000000..565f805695d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mkindex
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+progname=`basename $0`
+case $# in
+ 0)
+ echo "usage: `basename $0` file[.idx] ..." 1>&2
+ exit 1
+ ;;
+esac
+
+gind=gind.ist
+gglo=gglo.ist
+
+# remember starting directory
+dir=`pwd`
+
+# loop over all files
+for i
+do
+ destdir=`echo $i | sed 's/^[^\/]*$/./; s/\/[^\/]*$//'`
+ test -d "$destdir"||continue
+ cd "$destdir"
+ FILENAME=`basename $i .idx`
+ test -f "$FILENAME".idx \
+ && makeindex -s $gind "$FILENAME"
+ test -f "$FILENAME".glo \
+ && makeindex -s $gglo -o "$FILENAME".gls "$FILENAME".glo
+ cd "$dir"
+done
diff --git a/Master/bin/i386-kfreebsd/mkjobtexmf b/Master/bin/i386-kfreebsd/mkjobtexmf
new file mode 120000
index 00000000000..90b7a69f9f5
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mkjobtexmf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mkocp b/Master/bin/i386-kfreebsd/mkocp
new file mode 100755
index 00000000000..41ffead8bf1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mkocp
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Initial definition. Will leave the .ocp file in the local directory.
+(
+otp2ocp `basename "$1" .ocp` || exit 1
+) 1>&2 </dev/null
+echo `basename "$1" .ocp`.ocp
diff --git a/Master/bin/i386-kfreebsd/mkofm b/Master/bin/i386-kfreebsd/mkofm
new file mode 100755
index 00000000000..ef820171f08
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mkofm
@@ -0,0 +1,3 @@
+#!/bin/sh
+# Initial definition. For the moment only makes .tfm files.
+mktextfm $*
diff --git a/Master/bin/i386-kfreebsd/mkt1font b/Master/bin/i386-kfreebsd/mkt1font
new file mode 120000
index 00000000000..9a87e88c93a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mkt1font
@@ -0,0 +1 @@
+../../texmf-dist/scripts/accfonts/mkt1font \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mktexfmt b/Master/bin/i386-kfreebsd/mktexfmt
new file mode 120000
index 00000000000..817cc8aaa1b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mktexfmt
@@ -0,0 +1 @@
+fmtutil \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mktexlsr b/Master/bin/i386-kfreebsd/mktexlsr
new file mode 100755
index 00000000000..77aa99e0042
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mktexlsr
@@ -0,0 +1,201 @@
+#!/bin/sh
+# original mktexlsr -- create or rebuild ls-R.
+#
+# (If you change or delete the word `original' on the previous line,
+# installation won't write this script over yours.)
+#
+# Suitable for calling from cron, as in:
+# 0 * * * * cd /your/texmf/root && /usr/local/texlive/bin/mktexlsr
+#
+# Originally written as `texhash' by Thomas Esser
+# <te@dbs.uni-hannover.de>, Okt., 1994.
+# Public domain.
+
+version='$Id: mktexlsr 14402 2009-07-23 17:09:15Z karl $'
+progname=`echo $0 | sed 's%.*/%%'`
+usage="Usage: $progname [OPTION]... [DIR]...
+
+Rebuild ls-R filename databases used by TeX. If one or more arguments
+DIRS are given, these are used as the directories in which to build
+ls-R. Else all directories in the search path for ls-R files
+(\$TEXMFDBS) are used.
+
+Options:
+ --dry-run do not actually update anything
+ --help display this help and exit
+ --quiet cancel --verbose
+ --silent same as --quiet
+ --verbose explain what is being done
+ --version output version information and exit
+
+If standard input is a terminal, --verbose is on by default.
+
+For more information, see the &lsquo;Filename database&rsquo; section of
+Kpathsea manual available at http://tug.org/kpathsea.
+
+Report bugs to tex-k@tug.org.
+"
+
+# MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate
+# directories in path lists whereas Unix uses `:'. Make an exception for
+# Cygwin, which pretends to be UNIX.
+# Create a variable that holds the right character to be used by the scripts.
+DOSISH=no
+case `uname -s` in
+ CYGWIN*|Cygwin*|cygwin*) ;;
+ *) if test -n "$COMSPEC" || test -n "$ComSpec"; then DOSISH=yes; fi
+esac
+if test "$DOSISH" = "no"; then SEP=':'; else SEP=';';fi
+
+# Add the location of the script to the PATH if necessary. This must
+# be done before kpsewhich can be called, and thus cannot be put into
+# mktex.opt.
+dirname=`echo $0 | sed 's%/*[^/][^/]*$%%'`
+case $dirname in
+ "") # Do nothing
+ ;;
+ /* | [A-z]:/*) # Absolute name
+ PATH="$dirname$SEP$PATH"
+ export PATH ;;
+ *) # Relative name
+ PATH="`pwd`/$dirname$SEP$PATH"
+ export PATH ;;
+esac
+
+if tty -s; then verbose=true; else verbose=false; fi
+dry_run=false
+trees=
+
+# A copy of some stuff from mktex.opt, so we can run in the presence of
+# terminally damaged ls-R files.
+while test $# -gt 0; do
+ if test "x$1" = x--help || test "x$1" = x-help; then
+ echo "$usage"
+ exit 0
+ elif test "x$1" = x--version || test "x$1" = x-version; then
+ echo "`basename $0` $version"
+ kpsewhich --version
+ exit 0
+ elif test "x$1" = x--verbose || test "x$1" = x-verbose; then
+ verbose=true
+ elif test "x$1" = x--dry-run || test "x$1" = x-n; then
+ dry_run=true
+ elif test "x$1" = x--quiet || test "x$1" = x--silent \
+ || test "x$1" = x-quiet || test "x$1" = x-silent ; then
+ verbose=false
+ elif test "x$1" = x--; then
+ :
+ elif echo "x$1" | grep '^x-' >/dev/null; then
+ echo "$progname: unknown option $1, try --help if you need it." >&2
+ exit 1
+ else
+ test -d "$1" || echo "$progname: $1 not a directory." >&2
+ trees="$trees $1" # don't want to update system dirs
+ fi
+ shift
+done
+
+# mktexupd and mktexlsr make sure they're coordinated via this. A copy
+# is found mktex.opt.
+ls_R_magic='% ls-R -- filename database for kpathsea; do not change this line.'
+# The old string, which should continue to work.
+old_ls_R_magic='% ls-R -- maintained by MakeTeXls-R; do not change this line.'
+
+trap 'cd /; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp"; exit' 0 1 2 3 7 13 15
+
+# Get list of directories from $TEXMFDBS; eliminate duplicates.
+{
+ if test -n "$trees"; then
+ set x $trees
+ else
+ OIFS=$IFS # want just a newline
+ IFS='
+'
+ set x `kpsewhich --show-path=ls-R | tr : '
+' | sort | uniq`
+ IFS=$OIFS
+ fi
+ shift
+}
+
+for TEXMFLS_R in "$@"; do
+ # Prepend cwd if the directory was relative.
+ case "$TEXMFLS_R" in
+ "") continue ;; # Strictly speaking, it is an error if this case is taken.
+ /* | [A-z]:/*) ;;
+ *) TEXMFLS_R="`pwd`/$TEXMFLS_R"
+ esac
+ # Allow for either ls-R and ls-r to exist. But create ls-R if we're
+ # working from scratch.
+ if test -f "$TEXMFLS_R/ls-R"; then
+ db_file="$TEXMFLS_R/ls-R"
+ elif test -f "$TEXMFLS_R/ls-r"; then
+ db_file="$TEXMFLS_R/ls-r"
+ else
+ db_file="$TEXMFLS_R/ls-R"
+ fi
+ # Follow a possible symlink to get the right filesystem.
+ # The '|| true' construct prevents an sh -e aborting.
+ db_readlink=`kpsereadlink "$TEXMFLS_R/ls-R" 2>/dev/null` || true
+ case "$db_readlink" in
+ "") ;;
+ /* | [A-z]:/*) db_file="$db_readlink" ;;
+ *) db_file="$TEXMFLS_R/$db_readlink"
+ esac
+ db_dir=`echo "$db_file" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname
+
+ # want to be silent if the directory doesn't exist, since the ls-R
+ # path ordinarily contains many nonexistent directories.
+ test -d "$db_dir" || continue
+ test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; }
+
+ if test ! -f "$db_file"; then
+ cp /dev/null "$db_file"
+ # Use same permissions as parent directory, minus x,s, or t bits.
+ chmod `kpsestat -xst "$db_dir"` "$db_file"
+ elif test -s "$db_file" \
+ && test "x`sed '1s/ $//;1q' \"$db_file\"`" != "x$ls_R_magic" \
+ && test "x`sed '1s/ $//;1q' \"$db_file\"`" != "x$old_ls_R_magic"; then
+ echo "$progname: $db_file lacks magic string. Skipping..." >&2
+ continue
+ fi
+
+ # Skip if we cannot write the file:
+ kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; }
+
+ db_dir_tmp="$db_dir/lsR$$.tmp"
+ (umask 077 && mkdir "$db_dir_tmp" ) \
+ || { echo "$progname: could not create directory '$db_dir_tmp'. Skipping..." >&2; continue; }
+ db_file_tmp="$db_dir_tmp/lsR$$.tmp"
+ rm -f "$db_file_tmp"
+
+ $verbose && echo "$progname: Updating $db_file... " >&2
+ $dry_run && continue
+
+ echo "$ls_R_magic" >"$db_file_tmp"
+
+ # The main task. We put ./: in the output, so top-level files can be
+ # found via ls-R. Probably irrelevant in practice. The sed command
+ # inserts the leading ./ for directory names, and removes ., .., and
+ # version control entries from the list. Also omit contents of any
+ # the version directories; sed apparently requires that we do that
+ # operation in a separate invocation. We do not try to support colons
+ # in directory names.
+ #
+ echo "./:" >>"$db_file_tmp"
+ vc_dirs='\.\(bzr\|git\|hg\|svn\)\|CVS\|RCS\|_darcs'
+ (cd "$TEXMFLS_R" && \ls -LRa 2>/dev/null) \
+ | sed -e '/^$/{n;s%^\./%%;s%^%./%;}; /^\.$/d; /^\.\.$/d; /^'$vc_dirs'$/d;' \
+ -e '/^[\.\/]*lsR[0-9]*\.tmp:*$/d' \
+ | sed -e /$vc_dirs'.*:$/,/^$/d' \
+ >>"$db_file_tmp"
+
+ # To be really safe, a loop.
+ until PERMS=`kpsestat = "$db_file"`; do sleep 1; done
+ chmod $PERMS "$db_file_tmp"
+ rm -f "$db_file"
+ mv "$db_file_tmp" "$db_file"
+ rm -rf "$db_dir_tmp"
+done
+$verbose && echo "$progname: Done." >&2
+exit 0
diff --git a/Master/bin/i386-kfreebsd/mktexmf b/Master/bin/i386-kfreebsd/mktexmf
new file mode 100755
index 00000000000..2bd683c7f0a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mktexmf
@@ -0,0 +1,139 @@
+#!/bin/sh
+# original mktexmf -- make a new MF file, because one wasn't found.
+#
+# (If you change or delete the word `original' on the previous line,
+# installation won't write this script over yours.)
+#
+# Originally written by Thomas Esser.
+# Public domain.
+
+version='$Id: mktexmf 16497 2009-12-24 18:38:47Z karl $'
+progname=`echo $0 | sed 's%.*/%%'`
+usage="Usage: $progname FONT.
+
+Makes the Metafont source file for FONT, if possible. For example,
+\`ecr12' or \`cmr11'."
+
+# Common code for all scripts.
+: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
+: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
+test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
+if test ! -f "$MT_MKTEX_OPT"; then
+ echo "$progname: Cannot find mktex.opt; check your installation." >&2
+ exit 1
+fi
+
+. "$MT_MKTEX_OPT"
+
+(
+# See comments in mktexpk.
+name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`"
+rootname=`echo "$name" | sed 's/[0-9]*$//'`
+pointsize=`echo "$name" | sed "s/^$rootname//"`
+
+sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null`
+if test -n "$sauterroot"; then
+ rootfile=$sauterroot
+ rootname=b-$rootname
+else
+ case $rootname in
+ # csso12[0-5][0-9] from CJK package; unsupported by mktexmf
+ csso12[0-5][0-9])
+ rootfile=;;
+ cs*|lcsss*|icscsc*|icstt*|ilcsss*)
+ rootfile=`kpsewhich cscode.mf`;;
+ wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abcdhl][bcdfiorstuvx]*)
+ lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'`
+ rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
+ *)
+ rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
+ esac
+fi
+{ test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1
+
+#if test -z "$MT_MFNAME"; then
+OIFS=$IFS; IFS=$SEP
+set x `"$MT_MKTEXNAM" $name`; shift
+IFS=$OIFS
+MT_MFNAME="$3"
+#fi
+
+destdir=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'`
+test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1
+cd "$destdir" || exit 1
+
+case "$pointsize" in
+ "") echo "$progname: no pointsize."; exit 1;;
+ 11) realsize=10.95;; # \magstephalf
+ 14) realsize=14.4;; # \magstep2
+ 17) realsize=17.28;; # \magstep3
+ 20) realsize=20.74;; # \magstep4
+ 25) realsize=24.88;; # \magstep5
+ 30) realsize=29.86;; # \magstep6
+ 36) realsize=35.83;; # \magstep7
+ # The new convention is to have three or four letters for the
+ # font name and four digits for the pointsize. The number is
+ # pointsize * 100. We effectively divide by 100 by ignoring the
+ # last two digits.
+ ????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;;
+ *) realsize="$pointsize";;
+esac
+
+mfname="$name.mf"
+if test -r "$mfname"; then
+ echo "$progname: $destdir/$mfname already exists."
+ echo "$destdir/$mfname" >$STDOUT
+ "$MT_MKTEXUPD" "$destdir" "$mfname"
+ exit 0
+fi
+
+case "$name" in
+ ec*|tc*)
+ cat > "mf$$.tmp" <<END
+if unknown exbase: input exbase fi;
+gensize:=$realsize;
+generate $rootname;
+END
+ ;;
+ dc*)
+ cat > "mf$$.tmp" <<END
+if unknown dxbase: input dxbase fi;
+gensize:=$realsize;
+generate $rootname;
+END
+ ;;
+ cs*|lcsss*|icscsc*|icstt*|ilcsss*)
+ cat > "mf$$.tmp" <<END
+input cscode
+use_driver;
+END
+ ;;
+ wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]*|l[abcdhl][bcdfiorstuvx]*)
+ cat > "mf$$.tmp" <<END
+input fikparm;
+END
+ ;;
+ g[lmorst][bijmtwx][cilnoru]*)
+ # A small superset of the names of the cbgreek fonts.
+ cat > "mf$$.tmp" <<END
+% generated by mktexmf
+input cbgreek;
+END
+ ;;
+ *)
+ cat > "mf$$.tmp" <<END
+design_size := $realsize;
+input $rootname;
+END
+ ;;
+esac
+
+chmod `kpsestat -xst,go-w .` "mf$$.tmp"
+rm -f "$mfname"
+mv "mf$$.tmp" "$mfname"
+
+echo "$destdir/$mfname" >$STDOUT
+echo "$progname: $destdir/$mfname: successfully generated." >&2
+"$MT_MKTEXUPD" "$destdir" "$mfname"
+exit 0
+) 1>&2 </dev/null
diff --git a/Master/bin/i386-kfreebsd/mktexpk b/Master/bin/i386-kfreebsd/mktexpk
new file mode 100755
index 00000000000..1d0a4b4e2be
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mktexpk
@@ -0,0 +1,265 @@
+#!/bin/sh
+# original mktexpk -- make a new PK font, because one wasn't found.
+#
+# (If you change or delete the word `original' on the previous line,
+# installation won't write this script over yours.)
+#
+# Originally written by Thomas Esser, Karl Berry, and Olaf Weber.
+# Report bugs to tex-k@tug.org.
+# Public domain.
+
+version='$Id: mktexpk 16497 2009-12-24 18:38:47Z karl $'
+progname=`echo $0 | sed 's%.*/%%'`
+usage="Usage: $progname [OPTIONS] NAME [REDIRECT],
+ Create a PK font.
+
+--dpi DPI use resolution DPI.
+--bdpi BDPI use base resolution BDPI.
+--mag MAG use magnificiation MAG.
+--mfmode MODE use MODE as the METAFONT mode.
+--destdir DESTDIR write fonts in DESTDIR.
+
+Try to create a PK file for NAME at resolution DPI, with an assumed
+device base resolution of BDPI, and a Metafont \`mag' of MAG. Use MODE
+for the METAFONT mode. Use DESTDIR for the root of where to install
+into, either the absolute directory name to use (if it starts with a
+/) or relative to the default DESTDIR (if not). REDIRECT, if supplied,
+is a string of the form '>&n', where n is the number of the file
+descriptor which is to receive, instead of stdout, the name of the
+newly created pk file."
+
+# Handle non-positional options, except for --version/--help
+while test $# -gt 0; do
+ case "$1" in
+ --destdir) shift; DEST="$1"; shift ;;
+ --destdir=*) DEST=`echo "$1" | sed 's/--destdir=//'`; shift ;;
+ --dpi) shift; DPI="$1"; shift ;;
+ --dpi=*) DPI=`echo "$1" | sed 's/--dpi=//'`; shift ;;
+ --bdpi) shift; BDPI="$1"; shift ;;
+ --bdpi=*) BDPI=`echo "$1" | sed 's/--bdpi=//'`; shift ;;
+ --mfmode) shift; test "x$1" != "x/" && MODE="$1"; shift ;;
+ --mfmode=*) test "x$1" != "x--mfmode/" \
+ && MODE=`echo "$1" | sed 's/--mfmode=//'`; shift ;;
+ --mag) shift; MAG="$1"; shift;;
+ --mag=*) MAG=`echo "$1" | sed '/s--mag=//'`; shift;;
+ --version|-version) break ;;
+ --help|-help) break ;;
+ *) break ;;
+ esac
+done
+
+if test "x$2" != x; then
+ tail="`echo \"x$2\" | sed 's/^x>&//' | grep '^[0-9]*$'`"
+ if test -z "$tail"; then
+ echo "$progname: argument '$2' ignored - bad file number" >&2
+ elif test "$tail" != 1; then
+ eval 'exec 1>&$tail'
+ fi
+fi
+
+mt_max_args=2
+
+# Common code for all scripts.
+: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
+: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
+test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
+if test ! -f "$MT_MKTEX_OPT"; then
+ echo "$progname: Cannot find mktex.opt; check your installation." >&2
+ exit 1
+fi
+
+. "$MT_MKTEX_OPT"
+
+# Where do potential driver files belong?
+case "$MT_FEATURES" in
+ *nomfdrivers*)
+ : ${MT_MFDESTDIR=`pwd`}
+ export MT_MFDESTDIR;;
+esac
+
+# Since we want to pass the generated filename and only that filename
+# back to the caller on standard output, we do some redirections so
+# regular echo's will end up on stderr, and do an echo >$STDOUT at the end.
+# Then the contents of $STDOUT will be echoed to stdout by a trap.
+
+# start of redirection stdout -> stderr, stdin <- /dev/null
+(
+
+NAME=$1
+
+if kpsewhich $NAME.mf >/dev/null 2>&1 || mktexmf $NAME >/dev/null 2>&1; then
+ # determine the progname of metafont to use; prefer mf-nowin.
+ if (mf-nowin --version) >/dev/null 2>&1; then
+ MF="mf-nowin -progname=mf"
+ else
+ MF=mf
+ fi
+
+ # Check that $BDPI and $MODE are consistent; if not, ignore the mode and
+ # hope we can correctly guess it from bdpi. (People like to specify the
+ # resolution on the command line, not the mode so much.)
+ if test -n "$MODE"; then
+ mf_bdpi=`$MF \
+'\mode:='$MODE';mode_setup;message"BDPI= "&decimal round pixels_per_inch;end.'\
+ </dev/null \
+ | awk '/DPI=/ {print $2}'`
+ if test "x$mf_bdpi" != x$BDPI; then
+ echo "$progname: Mismatched mode $MODE and resolution $BDPI; ignoring mode." >&2
+ MODE=
+ fi
+ fi
+
+ # If an explicit mode is not supplied, try to guess. You can get a
+ # list of extant modes from ftp://ftp.tug.org/tex/modes.mf.
+ if test -z "$MODE" || test "x$MODE" = xdefault; then
+ case "$BDPI" in
+ 85) MODE=sun;;
+ 100) MODE=nextscrn;;
+ 180) MODE=toshiba;;
+ 300) MODE=cx;;
+ 360) MODE=epstylus;;
+ 400) MODE=nexthi;;
+ 600) MODE=ljfour;;
+ 720) MODE=epscszz;;
+ 1200) MODE=ultre;;
+ 1270) MODE=linoone;;
+ 8000) MODE=dpdfezzz;;
+ *) echo "$progname: Can't guess mode for $BDPI dpi devices." >&2
+ echo "$progname: Use a config file or option to specify the mode; see:" >&2
+ echo "$progname: http://tug.org/texinfohtml/kpathsea.html#Unable-to-generate-fonts" >&2
+ exit 1
+ esac
+ fi
+
+ # Run Metafont. Always use plain Metafont, since reading cmbase.mf
+ # does not noticeably slow things down.
+ cmd="$MF \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME"
+else
+ MODE=modeless
+ # ps_to_pk is set in mktex.opt
+ case $ps_to_pk in
+ gsftopk)
+ if $ps_to_pk -t "$NAME"; then
+ cmd="$ps_to_pk $NAME $DPI"
+ fi;;
+ ps2pk)
+ # grep for the font in $PSMAPFILE. These are base font names, such as
+ # rpplr (the original) or pplr0 (an interim step) or pplr8r (current).
+ : ${PSMAPFILE=`kpsewhich --format=map psfonts.map ps2pk.map`}
+ pattern="^$NAME"'([ ]|$)'
+ psline=`egrep "$pattern" $PSMAPFILE | tail -1`
+ if test -n "$psline"; then
+ set x `echo "$psline" | sed 's%[<["]%%g'`
+ shift; shift; shift;
+ encoding=; psname=; slant=; extend=
+ while test ! -z "$1"; do
+ case "$1" in
+ *.enc) encoding="-e $1";;
+ *.pf[ab]) psname="$1";;
+ *SlantFont) slant="-S $lastopt";;
+ *ExtendFont) extend="-E $lastopt";;
+ esac
+ lastopt="$1"
+ shift
+ done
+ # Guessing the name of the type1 font file as fallback:
+ ANAME=`echo $NAME | sed 's/8r$/8a/'`
+ for i in $NAME.pfa $NAME.pfb $ANAME.pfa $ANAME.pfb; do
+ if kpsewhich $i >/dev/null 2>&1; then
+ psname=$i
+ break
+ fi
+ done
+
+ if [ -n "$psname" ]; then
+ cmd="ps2pk -v -X$DPI -R$BDPI $slant $extend $encoding $psname $NAME.${DPI}pk"
+ else
+ if gsftopk -t "$NAME"; then
+ echo "$progname: cannot find $NAME.pfa or $NAME.pfb. Trying gsftopk." >&2
+ cmd="gsftopk $NAME $DPI"
+ fi
+ fi
+ fi;;
+ esac
+
+ # unsupported by $ps_to_pk, try other conversions:
+ if test -z "$cmd"; then
+ if (ttf2pk -t -q $NAME) >/dev/null 2>&1; then
+ cmd="ttf2pk -q $NAME $DPI"
+ elif (hbf2gf -t -q $NAME) >/dev/null 2>&1; then
+ cmd="hbf2gf -q -p $NAME $DPI"
+ else
+ echo "$progname: don't know how to create bitmap font for $NAME." >&2
+ exit 1
+ fi
+ fi
+fi
+
+OIFS=$IFS; IFS=$SEP
+set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift
+IFS=$OIFS
+
+PKDEST="$1"
+PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname
+PKNAME=`basename "$PKDEST"`
+GFNAME=$NAME.${DPI}gf
+
+if test -r "$PKDESTDIR/$PKNAME"; then
+ echo "$progname: $PKDESTDIR/$PKNAME already exists." >&2
+ echo "$PKDESTDIR/$PKNAME" >$STDOUT
+ "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME
+ exit 0
+fi
+
+"$MT_MKTEXDIR" "$PKDESTDIR"
+if test ! -d "$PKDESTDIR"; then
+ echo "$progname: $MT_MKTEXDIR $PKDESTDIR failed." >&2
+ exit 1
+fi
+
+echo "$progname: Running $cmd"
+$cmd </dev/null || {
+ # Don't abort if only "Strange path", "bad pos" or "angle(0,0)"
+ # errors occurr.
+ grep '^!' $NAME.log | sort >$$.errs 2>/dev/null
+ grep '^! Strange path' $$.errs >$$.strange 2>/dev/null
+ grep '^! bad pos.' $$.errs >$$.badpos 2>/dev/null
+ grep '^! angle(0,0) is taken as zero.' $$.errs >$$.angle 2>/dev/null
+ cat $$.badpos $$.strange $$.angle | sort > $$.errs_accept
+ if cmp $$.errs $$.errs_accept >/dev/null 2>&1; then
+ test -s $$.strange >/dev/null 2>&1 \
+ && echo "$progname: warning: \`$cmd' caused strange path errors." >&2
+ test -s $$.badpos >/dev/null 2>&1 \
+ && echo "$progname: warning: \`$cmd' caused bad pos errors." >&2
+ test -s $$.angle >/dev/null 2>&1 \
+ && echo "$progname: warning: \`$cmd' caused angle(0,0) errors." >&2
+ else
+ echo "$progname: \`$cmd' failed." >&2
+ test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT"
+ exit 1;
+ fi
+}
+
+test -r $GFNAME && { gftopk ./$GFNAME $PKNAME || exit 1; }
+test ! -f $PKNAME && test -f $NAME.${DPI}pk && mv $NAME.${DPI}pk $PKNAME
+if test ! -s $PKNAME; then
+ echo "$progname: \`$cmd' failed to make $PKNAME." >&2
+ exit 1
+fi
+
+# Install the PK file carefully, since others may be working simultaneously.
+# Use cp when mv fails, since DOS will fail mv for deeply-nested directories.
+mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \
+ || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1
+cd "$PKDESTDIR" || exit 1
+chmod `kpsestat -xst,go-w .` pk$$.tmp
+test -r $PKNAME || mv pk$$.tmp $PKNAME || exit 1
+
+# Update ls-R if necessary.
+"$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME
+
+# If this line (or an equivalent) is not present, dvipsk/xdvik/dviljk
+# will think mktexpk failed. Any other output to stdout will also lose.
+echo "$PKDESTDIR/$PKNAME" >$STDOUT
+echo "$progname: $PKDESTDIR/$PKNAME: successfully generated." >&2
+) 1>&2 </dev/null
diff --git a/Master/bin/i386-kfreebsd/mktextfm b/Master/bin/i386-kfreebsd/mktextfm
new file mode 100755
index 00000000000..bc65668e92e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mktextfm
@@ -0,0 +1,152 @@
+#!/bin/sh
+# original mktextfm -- make a new TFM file, because one wasn't found.
+#
+# (If you change or delete the word `original' on the previous line,
+# installation won't write this script over yours.)
+#
+# Primarily written by Thomas Esser, Karl Berry, and Olaf Weber.
+# Public domain.
+
+version='$Id: mktextfm 16497 2009-12-24 18:38:47Z karl $'
+progname=`echo $0 | sed 's%.*/%%'`
+usage="Usage: $progname [--destdir DESTDIR] FONT.
+
+Makes a TFM file for FONT, if possible. Use DESTDIR for the root of where
+to install into, either the absolute directory name to use (if it starts
+with a /) or relative to the default DESTDIR (if not)."
+
+# Handle non-positional options, except for --version/--help
+while test $# -gt 0; do
+ case "$1" in
+ --destdir) shift; DEST="$1"; shift ;;
+ --destdir=*) DEST=`echo "$1" | sed 's/--destdir=//'`; shift ;;
+ --version|-version) break ;;
+ --help|-help) break ;;
+ *) break ;;
+ esac
+done
+
+# Common code for all scripts.
+: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
+: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
+test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
+if test ! -f "$MT_MKTEX_OPT"; then
+ echo "$progname: Cannot find mktex.opt; check your installation." >&2
+ exit 1
+fi
+
+. "$MT_MKTEX_OPT"
+
+# Where do potential mf driver files go?
+case "$MT_FEATURES" in
+ *nomfdrivers*)
+ : ${MT_MFDESTDIR=`pwd`}
+ export MT_MFDESTDIR;;
+esac
+
+# start of redirection stdout -> stderr, stdin <- /dev/null
+(
+
+NAME=`basename "$1" .tfm`
+MAG=1 # mag=0 fails with larm1000.mf
+#DEST="$2"
+DPI=$BDPI
+
+OIFS=$IFS; IFS=$SEP
+set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift
+IFS=$OIFS
+
+PKDEST="$1"
+TFMDEST="$2"
+PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname
+TFMDESTDIR=`echo "$TFMDEST" | sed 's%/[^/][^/]*$%%'`
+PKNAME=`basename "$PKDEST"`
+TFMNAME=$NAME.tfm
+GFNAME=$NAME.$DPI'gf'
+
+if test -r "$TFMDESTDIR/$TFMNAME"; then
+ echo "$progname: $TFMDESTDIR/$TFMNAME already exists." >&2
+ echo "$TFMDESTDIR/$TFMNAME" >$STDOUT
+ "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME
+ exit
+fi
+
+# Try to create the destdir first. Do not create fonts, if this fails.
+"$MT_MKTEXDIR" "$TFMDESTDIR"
+if test ! -d "$TFMDESTDIR"; then
+ echo "$progname: mktexdir $TFMDESTDIR failed."
+ exit 1
+fi
+
+# Check if this font is supported by hbf2gf else use metafont.
+if (hbf2gf -q -t $NAME) >/dev/null 2>&1; then
+ cmd="hbf2gf -g $NAME $DPI"
+else
+ # determine the progname of metafont to use; prefer mf-nowin.
+ if (mf-nowin --version) >/dev/null 2>&1; then
+ MF="mf-nowin -progname=mf"
+ else
+ MF=mf
+ fi
+
+ cmd="$MF \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME"
+fi
+
+echo "$progname: Running $cmd"
+$cmd </dev/null || {
+ # Don't abort if only "Strange path", "bad pos" or "angle(0,0)"
+ # errors occurr.
+ grep '^!' $NAME.log | sort >$$.errs 2>/dev/null
+ grep '^! Strange path' $$.errs >$$.strange 2>/dev/null
+ grep '^! bad pos.' $$.errs >$$.badpos 2>/dev/null
+ grep '^! angle(0,0) is taken as zero.' $$.errs >$$.angle 2>/dev/null
+ cat $$.badpos $$.strange $$.angle | sort > $$.errs_accept
+ if cmp $$.errs $$.errs_accept >/dev/null 2>&1; then
+ test -s $$.strange >/dev/null 2>&1 \
+ && echo "$progname: warning: \`$cmd' caused strange path errors." >&2
+ test -s $$.badpos >/dev/null 2>&1 \
+ && echo "$progname: warning: \`$cmd' caused bad pos errors." >&2
+ test -s $$.angle >/dev/null 2>&1 \
+ && echo "$progname: warning: \`$cmd' caused angle(0,0) errors." >&2
+ else
+ echo "$progname: \`$cmd' failed." >&2
+ test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT"
+ exit 1;
+ fi
+}
+
+# hbf2gf just produces a .pl file:
+test -r ./$NAME.pl && pltotf ./$NAME.pl $TFMNAME
+test -r $TFMNAME || { echo "$progname: \`$cmd' failed to make $TFMNAME."; exit 1; }
+
+# Install the TFM file carefully, since others may be working simultaneously.
+# Use cp when mv fails, since DOS will fail mv for deeply-nested directories.
+mv $TFMNAME "$TFMDESTDIR/tfm$$.tmp" 2>/dev/null \
+ || cp $TFMNAME "$TFMDESTDIR/tfm$$.tmp" || exit 1
+cd "$TFMDESTDIR" || exit 1
+chmod `kpsestat -xst,go-w .` tfm$$.tmp
+test -r $TFMNAME || mv tfm$$.tmp $TFMNAME || exit 1
+
+# OK, success with the TFM.
+"$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME
+echo "$TFMDESTDIR/$TFMNAME" >$STDOUT
+echo "$progname: $TFMDESTDIR/$TFMNAME: successfully generated." >&2
+
+# Since we probably made a GF(->PK) file, too, may as well install it if
+# it's needed.
+cd $TEMPDIR
+if test -r $GFNAME && test ! -f "$PKDESTDIR/$PKNAME"; then
+ gftopk ./$GFNAME $PKNAME || exit 1
+ "$MT_MKTEXDIR" "$PKDESTDIR"
+ mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \
+ || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1
+ cd "$PKDESTDIR" || exit 1
+ if test -f $PKNAME; then
+ rm -f pk$$.tmp
+ else
+ chmod `kpsestat -xst,go-w .` pk$$.tmp
+ mv pk$$.tmp $PKNAME
+ "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME
+ fi
+fi
+) 1>&2 </dev/null
diff --git a/Master/bin/i386-kfreebsd/mllatex b/Master/bin/i386-kfreebsd/mllatex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mllatex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mltex b/Master/bin/i386-kfreebsd/mltex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mltex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mmafm b/Master/bin/i386-kfreebsd/mmafm
new file mode 100755
index 00000000000..01a09ba5fc1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mmafm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/mmpfb b/Master/bin/i386-kfreebsd/mmpfb
new file mode 100755
index 00000000000..7aee59677e1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mmpfb
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/mpost b/Master/bin/i386-kfreebsd/mpost
new file mode 100755
index 00000000000..66afa50783e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mpost
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/mpstools b/Master/bin/i386-kfreebsd/mpstools
new file mode 120000
index 00000000000..caf4ae949f7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mpstools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/mpstools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mptopdf b/Master/bin/i386-kfreebsd/mptopdf
new file mode 120000
index 00000000000..83172e791cd
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mptopdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/mptopdf \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mtxrun b/Master/bin/i386-kfreebsd/mtxrun
new file mode 120000
index 00000000000..8825f964657
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mtxrun
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/lua/mtxrun.lua \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/mtxtools b/Master/bin/i386-kfreebsd/mtxtools
new file mode 120000
index 00000000000..d99a8081bb9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/mtxtools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/mtxtools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/musixflx b/Master/bin/i386-kfreebsd/musixflx
new file mode 100755
index 00000000000..d04a303ae25
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/musixflx
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/odvicopy b/Master/bin/i386-kfreebsd/odvicopy
new file mode 100755
index 00000000000..f09c3cbd203
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/odvicopy
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/odvitype b/Master/bin/i386-kfreebsd/odvitype
new file mode 100755
index 00000000000..77d30f2f180
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/odvitype
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ofm2opl b/Master/bin/i386-kfreebsd/ofm2opl
new file mode 120000
index 00000000000..b1299fc008c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ofm2opl
@@ -0,0 +1 @@
+omfonts \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/omfonts b/Master/bin/i386-kfreebsd/omfonts
new file mode 100755
index 00000000000..4c22e6969f0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/omfonts
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/opl2ofm b/Master/bin/i386-kfreebsd/opl2ofm
new file mode 120000
index 00000000000..b1299fc008c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/opl2ofm
@@ -0,0 +1 @@
+omfonts \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/ot2kpx b/Master/bin/i386-kfreebsd/ot2kpx
new file mode 120000
index 00000000000..c96ab52671a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ot2kpx
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/ot2kpx \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/otangle b/Master/bin/i386-kfreebsd/otangle
new file mode 100755
index 00000000000..500cf193bc9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/otangle
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/otfinfo b/Master/bin/i386-kfreebsd/otfinfo
new file mode 100755
index 00000000000..b81859dded7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/otfinfo
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/otftotfm b/Master/bin/i386-kfreebsd/otftotfm
new file mode 100755
index 00000000000..6126727fac3
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/otftotfm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/otp2ocp b/Master/bin/i386-kfreebsd/otp2ocp
new file mode 100755
index 00000000000..e94f7455859
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/otp2ocp
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/outocp b/Master/bin/i386-kfreebsd/outocp
new file mode 100755
index 00000000000..3e4308c3e45
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/outocp
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ovf2ovp b/Master/bin/i386-kfreebsd/ovf2ovp
new file mode 120000
index 00000000000..b1299fc008c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ovf2ovp
@@ -0,0 +1 @@
+omfonts \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/ovp2ovf b/Master/bin/i386-kfreebsd/ovp2ovf
new file mode 120000
index 00000000000..b1299fc008c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ovp2ovf
@@ -0,0 +1 @@
+omfonts \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/patgen b/Master/bin/i386-kfreebsd/patgen
new file mode 100755
index 00000000000..de38d67d4c2
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/patgen
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pdfannotextractor b/Master/bin/i386-kfreebsd/pdfannotextractor
new file mode 120000
index 00000000000..8268b4f9f7c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfannotextractor
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pax/pdfannotextractor.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfatfi b/Master/bin/i386-kfreebsd/pdfatfi
new file mode 120000
index 00000000000..6cd281194e9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfatfi
@@ -0,0 +1 @@
+../../texmf-dist/scripts/oberdiek/pdfatfi.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfclose b/Master/bin/i386-kfreebsd/pdfclose
new file mode 100755
index 00000000000..3631d9c87f1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfclose
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pdfcrop b/Master/bin/i386-kfreebsd/pdfcrop
new file mode 120000
index 00000000000..d5235ebbcb7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfcrop
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pdfcrop/pdfcrop.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfcslatex b/Master/bin/i386-kfreebsd/pdfcslatex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfcslatex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfcsplain b/Master/bin/i386-kfreebsd/pdfcsplain
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfcsplain
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfetex b/Master/bin/i386-kfreebsd/pdfetex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfetex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfjadetex b/Master/bin/i386-kfreebsd/pdfjadetex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfjadetex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdflatex b/Master/bin/i386-kfreebsd/pdflatex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdflatex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfmex b/Master/bin/i386-kfreebsd/pdfmex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfmex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdfopen b/Master/bin/i386-kfreebsd/pdfopen
new file mode 100755
index 00000000000..935abbf0dff
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfopen
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pdftex b/Master/bin/i386-kfreebsd/pdftex
new file mode 100755
index 00000000000..edaf8a75bcb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdftex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pdfthumb b/Master/bin/i386-kfreebsd/pdfthumb
new file mode 120000
index 00000000000..09b8aea456f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfthumb
@@ -0,0 +1 @@
+../../texmf-dist/scripts/ppower4/pdfthumb.tlu \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdftools b/Master/bin/i386-kfreebsd/pdftools
new file mode 120000
index 00000000000..fa012780ccc
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdftools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/pdftools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pdftosrc b/Master/bin/i386-kfreebsd/pdftosrc
new file mode 100755
index 00000000000..745b09cd3b1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdftosrc
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pdfxmltex b/Master/bin/i386-kfreebsd/pdfxmltex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pdfxmltex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/perltex b/Master/bin/i386-kfreebsd/perltex
new file mode 120000
index 00000000000..d135aa6f8e4
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/perltex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/perltex/perltex.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pfb2pfa b/Master/bin/i386-kfreebsd/pfb2pfa
new file mode 100755
index 00000000000..b223bff0573
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pfb2pfa
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pfm2kpx b/Master/bin/i386-kfreebsd/pfm2kpx
new file mode 120000
index 00000000000..70d749ac5f9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pfm2kpx
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/pfm2kpx \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/physe b/Master/bin/i386-kfreebsd/physe
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/physe
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/phyzzx b/Master/bin/i386-kfreebsd/phyzzx
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/phyzzx
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pk2bm b/Master/bin/i386-kfreebsd/pk2bm
new file mode 100755
index 00000000000..0cd4da044f8
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pk2bm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pkfix b/Master/bin/i386-kfreebsd/pkfix
new file mode 120000
index 00000000000..028545a007c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pkfix
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pkfix/pkfix.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pkfix-helper b/Master/bin/i386-kfreebsd/pkfix-helper
new file mode 120000
index 00000000000..44ef5278bd4
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pkfix-helper
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pkfix-helper/pkfix-helper \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pktogf b/Master/bin/i386-kfreebsd/pktogf
new file mode 100755
index 00000000000..d00dc302fc9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pktogf
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pktype b/Master/bin/i386-kfreebsd/pktype
new file mode 100755
index 00000000000..0fc8f52e591
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pktype
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pltotf b/Master/bin/i386-kfreebsd/pltotf
new file mode 100755
index 00000000000..685e69a648e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pltotf
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pooltype b/Master/bin/i386-kfreebsd/pooltype
new file mode 100755
index 00000000000..cf30b3a79f9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pooltype
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ppower4 b/Master/bin/i386-kfreebsd/ppower4
new file mode 120000
index 00000000000..0e24a1c64e9
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ppower4
@@ -0,0 +1 @@
+../../texmf-dist/scripts/ppower4/ppower4.tlu \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/ps2eps b/Master/bin/i386-kfreebsd/ps2eps
new file mode 100755
index 00000000000..7092cbb0007
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ps2eps
@@ -0,0 +1,935 @@
+#!/usr/bin/env perl
+# The expression in the previous line replaces the unix specific line
+# {#!/usr/bin/perl}.
+# ps2eps - convert PostScript to EPS (Encapsulated PostScript) files
+# -------------------------------------------------------------------
+# $Id: ps2eps,v 1.64 2007/01/24 12:32:59 bless Exp $
+# -------------------------------------------------------
+# (C)opyright 1999-2007 Roland Bless
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Author: Roland Bless
+# Send bug reports to roland <at> bless.de
+# -------------------------------------------------------------------
+# Additional filtering is performed when Windows generated PostScript files
+# are processed. Some instructions will otherwise lead to bad output
+# if EPS-file gets embedded into other PostScript files.
+#
+# Requirements:
+# + perl
+# + gs (ghostscript supporting pbm output)
+# + bbox (a little C program [ANSI-C - should work on every platform]
+# for calculation of the actual BoundingBox)
+
+use POSIX;
+
+#use warnings;
+
+#use Getopt package
+use Getopt::Long;
+Getopt::Long::Configure("no_ignore_case");
+
+$prgname= "ps2eps";
+
+if (! -d "/usr/bin")
+{ # we assume that we are running under native windows
+ $ghostscriptname = "gswin32c";
+ $NULLDEV = "nul";
+}
+else
+{ # Unix or cygwin
+ $ghostscriptname = "gs";
+ $NULLDEV = "/dev/null 2>&1";
+}
+
+$bboxver=`bbox >$NULLDEV -V`;
+$bboxname= ($?== -1) ? "" : "bbox";
+$version= '$Id: ps2eps,v 1.64 2007/01/24 12:32:59 bless Exp $'; #'
+$insertPScode= 1; # Insert surrounding Postscript code
+$infhandle = STDIN; # Standard input is the default input file
+$outfhandle = STDOUT; # Standard output is default output if STDIN is input
+$infname= '-';
+$outfname= '-';
+$forceoverwrite=0; # do not overwrite existing files
+$ignoreBB= 0; # ignore existing Bounding Box comment
+$removeDSC= 1; # remove Adobe document structure comments
+$removeADO= 1; # remove Adobe printer Driver console Output [Page: ...]
+$ignoreEOFDSC= 0; # ignore %%EOF DSC hint
+$removePreview= 0; # remove preview
+$quiet= 0; # write progress to stdout
+$resolution= 144; # resolution for bounding box calculation is 2x72 dpi
+$trytofixps= 1; # try to fix postscript code
+$forcefixps= 0; # fix postscript code unconditionally if eq 1
+$filterorientation= 1;# filter Orientation line
+$looseBB=''; # default: tight bounding box
+$clip=0; # do not clip
+$warnings=0; # do not print warnings concerning postscript sanity
+$debuggs=0; # no debugging of ghostscript call, turn this on if you want to see the gs call
+$inch=2.54; # one inch is 2.54cm
+$fullcolors= 1; # use ppm format (24-bit full color)
+$trailerseen= 0; # Trailer comment seen?
+$PSversion="2.0"; # default Postscript Version
+$PSDSCversion="2.0"; # default Postscript DSC Version
+$translate_x= 0; # translate by x postscript points
+$translate_y= 0; # translate by y postscript points
+
+$defaultext = '(ps|prn)'; # default extension
+$defaultoutext = '.eps'; # default output extension
+$envname_size = 'PS2EPS_SIZE';
+$envname_gsbbox = 'PS2EPS_GSBBOX';
+
+$gpar="";
+$known_papersizes="11x17|ledger|legal|letter(small)?|arch[A-E]|a([0-9]|10)|isob[0-6]|b[0-5]|c[0-6]|jisb[0-6]|fls(a|e)|halfletter";
+$papersize_help="11x17,ledger,legal,letter,lettersmall,archA,archB,archC,archD,archE\
+a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,isob0,isob1,isob2,isob3,isob4,isob5,isob6,\
+b0,b1,b2,b3,b4,b5,c0,c1,c2,c3,c4,c5,c6,\
+jisb0,jisb1,jisb2,jisb3,jisb4,jisb5,jisb6,flsa,flse,halfletter\n";
+$trigger= 0;
+$notsane= 0;
+$dummy="";
+
+@ver= split(/ /,$version);
+
+# filename for temporary files
+if ($^O =~ /MSWin32/i or $^O =~ /cygwin/i)
+{
+ # it is less trouble to use the current directory if working on
+ # cygwin and nevertheless using gswin32c.
+ $tmpfname= "$prgname.$$";
+ $win=1;
+}
+elsif (defined($ENV{'TMP'}))
+{
+ $tmpdir= $ENV{'TMP'};
+ $filesep= ($tmpdir =~ /^?\:\\/) ? '\\' : '/';
+ if ($tmpdir =~ /$filesep$/)
+ { $tmpfname= $tmpdir . "$prgname.$$"; }
+ else
+ { $tmpfname= $tmpdir . "$filesep$prgname.$$"; }
+ $win=1;
+}
+else #assume we're on a UNIXBOX
+{
+ $tmpfname= "/tmp/" . "$prgname.$$";
+ $win=0;
+}
+
+
+$licensetxt= "\
+ This program is free software; you can redistribute it and/or modify\
+ it under the terms of the GNU General Public License as published by\
+ the Free Software Foundation; either version 2 of the License, or\
+ (at your option) any later version.\
+\
+ This program is distributed in the hope that it will be useful,\
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\
+ GNU General Public License for more details.\
+\
+ You should have received a copy of the GNU General Public License\
+ along with this program; if not, write to the Free Software\
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n";
+
+@prgidtxt= ( "$prgname - convert PostScript to EPS (Encapsulated PostScript) files\n",
+ "(C)opyright 1998-2007 Roland Bless\n\n" );
+
+@helptxt= ("Version: $ver[2]\n",
+ "Operation:\n",
+ " Without any argument, $prgname reads from standard input\n",
+ " and writes to standard output.\n",
+ " If filenames are given as arguments they are processed\n",
+ " one by one and output files are written to filenames\n",
+ " with extension '$defaultoutext'. If input filenames have the extension\n",
+ " '.ps' or '.prn', this extension is replaced with '$defaultoutext'.\n",
+ " In all other cases '$defaultoutext' is appended to the input filename.\n",
+ " Please note that PostScript files for input should contain\n",
+ " only one single page.\n\n",
+ " If BoundingBox in output seems to be wrong, please try options --size or --ignoreBB.\n\n" );
+
+@usagetxt= ("Syntax:\n",
+ " $prgname [-f] [-q] [-N] [-O] [-n] [-P] [-c] [-C] [-m] [-B] [-E] [-s <pagedim>] [-R +|-|^] [-t <x,y>] [-l] [-g] [-d] [-H] [-h|--help] [-g] [-W] [-L] [-V|--version] [--] [psfile1] [psfile2] [...]\n",
+ "Options:\n",
+ " -f, --force force overwriting existing files\n",
+ " -q, --quiet quiet operation (no output while processing files)\n",
+ " -N, --noinsert do not insert any postscript code\n",
+ " -O, --preserveorientation do not filter Orientation: header comment\n",
+ " -n, --nofix do not try to fix postscript code\n",
+ " -P, --removepreview remove preview image (smaller file, but no preview)\n",
+ " -F, --fixps fix postscript code unconditionally\n",
+ " -c, --comments preserve document structure comments\n",
+ " -C, --clip insert postscript code for clipping\n",
+ " -m, --mono use black/white bitmap as base for calculation\n",
+ " -s, --size=<pagedim> page size (a0-a10,letter,...) or in format XxY[cm|in] (default:cm), where X and Y are numbers\n",
+ " use --size=list to list pre-defined page sizes\n",
+ " -R, --rotate=<direction> rotate resulting EPS. <direction>: +=+90 (clockw.),-=-90 (counter-clockw.) ^=180 degrees\n",
+ " -t, --translate specify x,y offset (may be negative) in postscript points (1/72 dpi)\n",
+ " -r, --resolution specify dpi resolution to render with ghostscript (default 144)",
+ " -l, --loose expand the original bounding box by one point in each direction\n",
+ " -B, --ignoreBB do not use existing bounding box as page size for rendering\n",
+ " -E, --ignoreEOF do not use %%EOF as hint for end of file\n",
+ " -g, --gsbbox use internal bbox device of ghostscript\n",
+ " -H, --no-hires do not use a HiResBoundingBox\n",
+ " -h, --help help information\n",
+ " -L, --license show licensing information\n",
+ " -V, --version show version information\n",
+ " -d, --debuggs show ghostscript call\n",
+ " -W, --warnings show warnings about sanity of generated eps file\n",
+ " -- all following arguments are treated as files\n",
+ " (allows filenames starting with -)\n",
+ "\n",
+ "Arguments:\n",
+ " One or more names of PostScript files for input\n");
+
+## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+## -- argument checking --
+## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+#environment variable for papersize
+if (defined($ENV{"$envname_size"}))
+{
+ $opt_s= $ENV{"$envname_size"};
+}
+else
+{
+ $opt_s = ''; # for s-option
+}
+
+if (defined($ENV{"$envname_gsbbox"}))
+{
+ $bboxname="";
+}
+
+$opt_t = ''; # for t-option
+$opt_R = ''; # for R-option
+$opt_r = ''; # for r-option
+$stopnow = 0;
+die "Wrong option(s), please check usage with $prgname --help\n" unless
+GetOptions('f|force' => \$forceoverwrite,
+ 'q|quiet' => \$quiet,
+ 'm|mono' => sub { $fullcolors = 0 },
+ 'n|nofix' => sub { $trytofixps = 0 },
+ 'F|fixps' => \$forcefixps,
+ 'N|noinsert' => sub { $insertPScode = 0 },
+ 'O|preserveorientation' => sub { $filterorientation= 0 },
+ 'P|removepreview' => \$removePreview,
+ 'c|comments' => sub { $removeDSC = 0 },
+ 'C|clip' => \$clip,
+ 'l|loose' => sub { $looseBB = '-l' },
+ 'B|ignoreBB' => \$ignoreBB,
+ 'E|ignoreEOF'=> \$ignoreEOFDSC,
+ 's|size=s' => \$opt_s,
+ 't|translate=s' => \$opt_t,
+ 'r|resolution=s' => \$opt_r,
+ 'R|rotate=s' => \$opt_R,
+ 'g|gsbbox' => sub { $bboxname=""; },
+ 'H|nohires' => \$nohires,
+ 'h|help' => sub { $stopnow = 1; print @prgidtxt,@helptxt,@usagetxt,"\nAuthor: Roland Bless (roland\@bless.de)\n\n"; },
+ 'L|license' => sub { $stopnow = 1; print @prgidtxt,$licensetxt,"\nAuthor: Roland Bless (roland\@bless.de)\n\n"; },
+ 'd|debuggs' => \$debuggs,
+ 'W|warnings' => \$warnings,
+ 'V|version' => sub { $stopnow = 1; print @prgidtxt,"Version: $ver[2]\n"; });exit if ($stopnow);
+
+## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+## -- wildcard processing --
+## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+## internal wildcard processing for current directory,
+## only used for non UNIX-based OSs (which may lack shell wildcard expansion)
+@filenames = ();
+foreach $object (@ARGV) {
+ if ($win && $object =~ m/\*/o) # asterisk is present in filename
+ {
+ $wildcard = $object;
+ $wildcard =~ s/\./\\\./g; # replace . in pattern with \.
+ $wildcard =~ s/\*/\(\.\*\)/g; # replace * in pattern with (.*)
+ opendir(DIR,'.') || die 'Unable to open current directory, stopped'; # open current directory
+ print STDERR $wildcard;
+ @fid = grep { /$wildcard(\.$defaultext)?/i } readdir(DIR);
+ foreach (@fid) { push @filenames, $_; }
+ closedir DIR;
+ }
+ else { push @filenames, $object; }
+} # end foreach
+$filenames[0]= '-' if (scalar(@filenames) == 0); # no file arguments, use STDIN as input
+
+print STDERR "Input files: @filenames\n" if (!$quiet);
+
+if ($opt_r ne '')
+{
+ $resolution=$opt_r;
+}
+
+# papersize stuff
+if ($opt_s ne '')
+{
+ # if explicit size is given, ignore existing BoundingBox always
+ $ignoreBB = 1;
+ $pagedimension = $opt_s;
+ if ($opt_s eq "list")
+ {
+ print STDERR "Available paper sizes: $papersize_help";
+ exit 0;
+ }
+
+ #explicit format XxY[cm|in]
+ if ($pagedimension =~ /(\d*\.?\d+)x(\d*\.?\d+)/)
+ {
+ ($x_dim, $dummy, $y_dim, $unit)= split(/(x|cm|in)/,$pagedimension);
+ if ( $x_dim !~ /^\d*\.?\d+$/ )
+ { die "$x_dim in $arg is not a valid number, stopped"; }
+ if ( $y_dim !~ /^\d*\.?\d+$/ )
+ { die "$y_dim in $arg is not a valid number, stopped"; }
+
+ #print STDERR "xdim: $x_dim ydim: $y_dim unit:$unit\n" ;
+ if (!defined($unit) )
+ {
+ $unit='cm';
+ $opt_s=$opt_s . $unit;
+ }
+ if ( $unit ne 'in' ) # assume centimeters
+ { # calculate dimension in pixels (remember: resolution is in dpi)
+ $xpixels= int(($x_dim * $resolution) / $inch)+1;
+ $ypixels= int(($y_dim * $resolution) / $inch)+1;
+ $gpar= "-g${xpixels}x${ypixels}";
+ }
+ else
+ {
+ $xpixels= int($x_dim * $resolution)+1;
+ $ypixels= int($y_dim * $resolution)+1;
+ $gpar= "-g${xpixels}x${ypixels}";
+ }
+ } #endif XxY in opt_s
+ else
+ {
+ if ($opt_s =~ /$known_papersizes/)
+ {
+ $gpar="-sPAPERSIZE=$opt_s";
+ }
+ else
+ {
+ print STDERR "Error: Unknown paper size: $opt_s\n Acceptable papersizes are:$papersize_help\n";
+ exit 1;
+ }
+ }
+}
+
+#translate option
+if ($opt_t ne '')
+{
+ ($translate_x,$translate_y)= split(/\,/,$opt_t);
+}
+
+#rotate
+$rotright='-90 rotate';
+$rotleft='90 rotate';
+$rotupsidedown='180 rotate';
+$rotate='';
+if ($opt_R ne '')
+{
+ if ($opt_R eq '+') { $rotate=$rotright; }
+ elsif ($opt_R eq '-') { $rotate=$rotleft; }
+ elsif ($opt_R eq '^') { $rotate=$rotupsidedown; }
+ else { die "Wrong parameter for option -R: Valid are only +,-,^\n"; };
+}
+
+$device= $fullcolors ? "ppmraw" : "pbmraw";
+
+## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+## -- iterate over different input files --
+## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+PROCESSFILE:
+while ($infname= (shift @filenames))
+{
+ # reset filter definitions for each file
+ undef $linefilter;
+ undef $rangefilter_begin;
+ undef $rangefilter_end;
+ $fixthisps= $trytofixps;
+ $fixmsgprinted= 0;
+
+ if (!$quiet) { print STDERR "Processing: $infname\n"; }
+ unless (open($infhandle,"<$infname"))
+ { # skip over this file
+ print STDERR "$prgname: Can't open $infname: $!\n";
+ next PROCESSFILE;
+ }
+
+ # buffer input from stdin into temporary file, because it has to be read twice
+ # one time for ghostscript processing, the second time for generating output
+ if ($infname eq '-') # input is stdin
+ {
+ $tmpfhandle='';
+ open($tmpfhandle,">$tmpfname") or
+ die "Cannot open temporary file $tmpfname for writing: $!\n";
+ }
+ else # input is not stdin
+ {
+ undef $tmpfhandle;
+ #if filename ends with $defaultext usually .ps or .prn, replace the extension with $defaultoutext
+ if ($infname =~ /\.$defaultext$/i)
+ {
+ $outfname= $infname; $outfname =~ s/\.$defaultext$/$defaultoutext/i;
+ }
+ else # otherwise simply append the extension $defaultoutext
+ {
+ $outfname= $infname . "$defaultoutext";
+ }
+ if (!$forceoverwrite and -s "$outfname")
+ {
+ die "$prgname: Sorry, file named $outfname already exists,",
+ " will not overwrite it.\n",
+ " You will have to use the -f option, delete it or rename it",
+ " before running $prgname again.\n";
+ }
+ else
+ {
+ open($outfhandle,">$outfname") or die "Can't open file $outfname for writing: $!\n";
+ }
+ } #end else input is not stdin
+
+ ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ ## -- process input file --
+ ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ $linefilter= '^$'; #'# filter empty lines by default
+ while (<$infhandle>)
+ {
+ # get postscript and DSC version
+ if (/%!PS-Adobe-(\S+).*EPSF-(\S+)/)
+ {
+ $PSversion=$1;
+ $PSDSCversion=$2;
+ if (! ($PSversion =~ /\d+\.\d+/))
+ {
+ $PSDSCversion="2.0";
+ }
+ if (! ($PSDSCversion =~ /\d+\.\d+/))
+ {
+ $PSDSCversion="2.0";
+ }
+ }
+
+ # check for existing BoundingBox parameters
+ if ( /^%%\s*BoundingBox:\s*(.*)/ && !defined($eBBllx) )
+ {
+ $BBarg= $1;
+ # accept even negative and fractional BBs
+ if ( $BBarg =~ /(\-?\d+\.?\d*\s+){3,}\d+/ ) # ignore %% BoundingBox: (atend) comments
+ {
+ ($eBBllx,$eBBlly,$eBBurx,$eBBury,$dummy)= split /\s/,$BBarg;
+ #print STDERR "Existing BB: $eBBllx,$eBBlly,$eBBurx,$eBBury\n";
+ if (int($eBBllx) < 0) { $translate_x= - int($eBBllx-0.5); }
+ if (int($eBBlly) < 0) { $translate_y= - int($eBBlly-0.5); }
+
+ $xpixels= int((($eBBurx-$eBBllx) * $resolution)/72)+1;
+ $ypixels= int((($eBBury-$eBBlly) * $resolution)/72)+1;
+ if (!$ignoreBB)
+ {
+ $gpar= "-g${xpixels}x${ypixels}";
+ # check for meaningful values
+ if (($xpixels <= 1) || ($ypixels <= 1))
+ {
+ $gpar=""; undef $eBBllx; undef $eBBlly;
+ }
+ else
+ {
+ if (!$quiet)
+ {
+ print STDERR "Rendering with existing $_";
+ if (int($eBBllx) < 0 || int($eBBlly) < 0)
+ {
+ print STDERR "WARNING: existing Bounding Box shows negative values - shifting\n";
+ }
+ }
+ }
+ } #endif !$ignoreBB
+ } #endif $BBarg =~
+ }
+
+
+ if ($fixthisps) # try to fix bad postscript code
+ {
+ # check for Windows 3.x output
+ if ( /^Win.*Dict/ )
+ {
+ if (!$quiet && !$fixmsgprinted)
+ { print STDERR "Windows 3.5 generated Postscript file detected, fixing\n"; }
+ $linefilter= '^(EJ|RS)';
+ $rangefilter_begin= '^statusdict';
+ $rangefilter_end= 'cvx\ settransfer$'; #'
+ $fixmsgprinted= 1; # stop printing message
+ }
+ else
+ {
+ if ( /^%%Creator:\s*Wind.U\s*Xprinter/ )
+ {
+ if (!$quiet && !$fixmsgprinted)
+ { print STDERR "Star/OpenOffice generated Postscript file detected, fixing\n"; }
+ $linefilter= '^rs';
+ $fixmsgprinted= 1; # stop printing message
+ }
+ else
+ {
+ if ( $forcefixps ||
+ /^\/NTPS/ ||
+ /Creator:\s*(AdobePS|Pscript|.*Windows)/i ) #check for NT generated output
+ {
+ if (!$quiet && !$fixmsgprinted)
+ {
+ if ($forcefixps)
+ {
+ print STDERR "Postscript filtering requested, fixing\n";
+ }
+ else
+ {
+ print STDERR "Windows generated Postscript file detected, fixing\n";
+ }
+ }
+ $rangefilter_begin= '^((\[\{)|(featurebegin\{))$'; #'
+ $rangefilter_end= '^(\} stopped cleartomark|\}featurecleanup)';
+ $exclude_rangefilter_begin= '^(?i)%%BeginNonPPDFeature'; #'
+ $exclude_rangefilter_end= '^(?i)%%EndNonPPDFeature';
+ #$triggered_rangefilter_begin= ''; #'
+ #$triggered_rangefilter_end= ''; #'
+ $fixsearchpat='(^|\s)(initmatrix|initclip|initgraphics)(\s|$)';
+ $fixreplacepat=' ';
+ $fixmsgprinted= 1; # stop printing message
+ } # end if NTPS
+ } #end else
+ }
+ } #end if trytofixps
+
+ if (defined($tmpfhandle))
+ {
+ print $tmpfhandle $_ or die "$prgname: Failure during writing to temporary file $tmpfname";
+ }
+
+ if (/^%%EOF\s*$/)
+ {
+ $totalEOFDSC++
+ }
+ } #end while <$infhandle>
+
+ if (defined($tmpfhandle))
+ {
+ close($tmpfhandle);
+ }
+ else
+ {
+ $tmpfhandle= $infhandle;
+ $tmpfname= $infname;
+ }
+
+ ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ ## -- calculate the bounding box --
+ ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ if ($translate_x!=0 || $translate_y!=0)
+ {
+ $translation="$translate_x $translate_y translate";
+ $translatecmd="-c $translation";
+ }
+ else
+ {
+ $translation="";
+ $translatecmd="";
+ }
+
+ if (!$quiet)
+ {
+ print STDERR "Calculating Bounding Box...";
+ if ($opt_s)
+ {
+ print STDERR "using page size $opt_s...";
+ }
+ }
+
+ $rotatecmd='';
+ if ($rotate ne '')
+ {
+ $rotatecmd="-c \"$rotate\""
+ }
+ if ($bboxname ne '')
+ {
+ $cmdline="$ghostscriptname -dSAFER -dNOPAUSE -q $gpar -r$resolution -sDEVICE=$device -sOutputFile=- $translatecmd -f $tmpfname -c showpage -c quit | $bboxname -r $resolution";
+ }
+ else
+ {
+ if (!$quiet) {
+ print STDERR "...using bbox device of $ghostscriptname...";
+ }
+ $cmdline = "$ghostscriptname -dSAFER -dBATCH -dNOPAUSE -q $gpar -r$resolution -sDEVICE=bbox -sOutputFile=- -c \"/setpagedevice {pop} def\" $translatecmd -f $tmpfname -c quit 2>&1";
+ }
+
+ if ($debuggs) { print STDERR "\nCalling: $cmdline\n"; }
+
+ # actual ghostscript call
+ $boundingbox=`$cmdline`;
+ if ($debuggs) { print STDERR "Call result: $boundingbox"; }
+
+ # check result of gs call
+ if ($boundingbox !~ /^%%BoundingBox/m)
+ {
+ print STDERR "Error: Could not determine bounding box!\n",
+ "I suppose $ghostscriptname had some trouble interpreting the postscript-file\n";
+ }
+
+ $boundingbox =~ /^%%HiResBoundingBox:\s*(.*)/m;
+ if (defined($1)) # HiResBoundingBox given
+ {
+ ($hcBBllx,$hcBBlly,$hcBBurx,$hcBBury,$dummy)= split(/\s/,$1);
+ $hiresboundingbox="%%HiResBoundingBox: $hcBBllx $hcBBlly $hcBBurx $hcBBury\n";
+ $cBBllx = floor($hcBBllx);
+ $cBBlly = floor($hcBBlly);
+ $cBBurx = ceil($hcBBurx);
+ $cBBury = ceil($hcBBury);
+ }
+ else
+ { #use normal BoundingBox
+ $boundingbox =~ /^%%.*BoundingBox:\s*(.*)/;
+ ($cBBllx,$cBBlly,$cBBurx,$cBBury,$dummy)= split(/\s/,$1);
+ }
+ # if loose BB should be performed by ps2eps
+ # apply changes to resulting bounding box if needed
+ if ($looseBB ne '')
+ {
+ if ($cBBllx > 0) { $cBBllx--; }
+ if ($cBBlly > 0) { $cBBlly--; }
+ $cBBurx++; $cBBury++;
+ }
+ # extend clipping box by 1 point
+ if ($clip)
+ {
+ if ($cBBllx > 0) { $cBBllx--; }
+ if ($cBBlly > 0) { $cBBlly--; }
+ $cBBurx++; $cBBury++;
+ }
+ if ($cBBllx < 0 || $cBBlly < 0)
+ {
+ if (!$quiet)
+ {
+ print STDERR "WARNING! Your drawing had a negative Bounding Box which is deprecated and may cause problems!. I'll shift it.\n";
+ }
+ $translate_x= -int($cBBllx);
+ $translate_y= -int($cBBlly);
+ $cBBllx=0;
+ $cBBurx= $cBBurx + $translate_x;
+ $cBBlly=0;
+ $cBBury= $cBBury + $translate_y;
+
+ $hcBBurx= $hcBBurx + $hcBBllx;
+ $hcBBury= $hcBBury + $hcBBlly;
+ $hcBBllx= 0;
+ $hcBBlly= 0;
+
+ $hiresboundingbox="%%HiResBoundingBox: $hcBBllx $hcBBlly $hcBBurx $hcBBury\n";
+
+ $translation="$translate_x $translate_y translate";
+ $translatecmd="-c \'$translation\'";
+ }
+ $boundingbox = "%%BoundingBox: $cBBllx $cBBlly $cBBurx $cBBury\n";
+
+ if (!$quiet) { print STDERR "ready. $boundingbox" };
+
+ $before_startps= 1;
+ $inserted_prolog= 0;
+ $prolog_passed= 0;
+
+ ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ ## -- Create output file --
+ ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ if (!$quiet) { print STDERR "Creating output file $outfname..."; }
+
+ open($tmpfhandle,"<$tmpfname") or die "Cannot open file $tmpfname for reading";
+ CREATEOUTPUT:
+ while (<$tmpfhandle>)
+ {
+ # check whether we are in a binary section
+
+ $binarysection=(/^(%%BeginBinary)|(beginimage)\r?\n?$/ ... /^(%%EndBinary)|^(endimage)/) ||
+ (/^(doNimage)|(doclutimage)\r?\n?$/ ... /(^|~> )Z\r?\n?$/) || # Pscript_Win_Dib_L2 5.0 0
+ (/^beginjpeg / ... /~> endjpeg\r?\n?$/) || # Pscript_Win_Dib_L2 5.0 0
+ (/^pdfIm/ ... /^%-EOD-/);
+
+ if ( !$binarysection )
+ {
+ s/\r?\n?$//; # remove CR and/or LF at end of line if not in binary section
+ }
+
+ # check where magic Postscript header starts - skip leading binary stuff, e.g., HP PCL/PJL code
+ if ($before_startps)
+ {
+ if ( /%!/ ) # This is usually the smallest magic sequence
+ { # Note: Adobe Photoshop generated a binary heading, so ^ is not applicable
+ # %! may be part of a binary sequence, but then control characters follow
+ # so skip %! if non alphanumeric characters follow
+ if ( ! /%!.*[^\w]{2,}/ )
+ {
+ # some heading without two control characters found
+ $before_startps= 0;
+ if (! /%!PS-Adobe.*/i) # some strange programs use other magics
+ {
+ print STDERR "** Warning **: Weird heading line -- ",$_," -- ";
+ }
+ }
+ }
+ next CREATEOUTPUT;
+ }
+ else # we are hopefully in regular postscript code now
+ {
+ # count %%EOFs as we want to know when we got the last EOF
+ if ( /^%%EOF\s*$/ )
+ {
+ $seenEOF++;
+ }
+
+ # We should insert our own prologue including the newly calculated BoundingBox
+ if (! $inserted_prolog)
+ {
+ print $outfhandle "%!PS-Adobe-$PSversion EPSF-$PSDSCversion\n";
+ # check if we need to rotate
+ $transrotcmd='';
+ if ($rotatecmd)
+ {
+ if ($rotate eq $rotright)
+ {
+ $transrotcmd="-$cBBlly $cBBurx translate";
+ $boundingbox='%%BoundingBox: 0 0 ' . ($cBBury-$cBBlly) . ' ' . ($cBBurx-$cBBllx) . "\n";
+ if ($hiresboundingbox ne "")
+ {
+ $hiresboundingbox='%%HiResBoundingBox: 0 0 ' . ($hcBBury-$hcBBlly) . ' ' . ($hcBBurx-$hcBBllx) . "\n";
+ }
+
+ }
+ elsif ($rotate eq $rotleft)
+ {
+ $transrotcmd="$cBBury -$cBBllx translate";
+ $boundingbox='%%BoundingBox: 0 0 ' . ($cBBury-$cBBlly) . ' ' . ($cBBurx-$cBBllx) . "\n";
+ if ($hiresboundingbox ne "")
+ {
+ $hiresboundingbox= '%%HiResBoundingBox: 0 0 ' . ($hcBBury-$hcBBlly) . ' ' . ($hcBBurx-$hcBBllx) . "\n";
+ }
+ }
+ elsif ($rotate eq $rotupsidedown)
+ {
+ $transrotcmd="$cBBurx $cBBury translate";
+ $boundingbox='%%BoundingBox: 0 0 ' . ($cBBurx-$cBBllx) . ' ' . ($cBBury-$cBBlly) . "\n";
+ if ($hiresboundingbox ne "")
+ {
+ $hiresboundingbox='%%HiResBoundingBox: 0 0 ' . ($hcBBurx-$hcBBllx) . ' ' . ($hcBBury-$hcBBlly) . "\n";
+ }
+ }
+ }
+ print $outfhandle $boundingbox;
+ if (!defined($hiresboundingbox))
+ {
+ $nohires=1;
+ }
+ if (defined($hiresboundingbox) && !defined($nohires)) { print $outfhandle $hiresboundingbox; }
+ $inserted_prolog= 1;
+ redo CREATEOUTPUT;
+ }
+ else # already inserted_prolog
+ {
+ if (! $prolog_passed)
+ {
+ #ignore the following lines in the prologue
+ if ( /^%%(HiRes)?BoundingBox/ ||
+ /^%%Pages/ ||
+ /^%%BeginProlog/ ||
+ /^%%EndProlog/ ||
+ ($filterorientation && /^%%Orientation/) ||
+ ($removeDSC && /^%%.*: \(atend\)/) ||
+ ($removePreview && (/^%%BeginPreview/ ... /^%%EndPreview/)) )
+ {
+ next CREATEOUTPUT;
+ }
+ else
+ {
+ if ( /^[^%].*/ ||
+ /^%%EndComments/ ) # line is not a comment
+ {
+ #output postscript code for proper EPS file
+ if ($insertPScode)
+ {
+ print $outfhandle "%%EndComments\n",
+ "% EPSF created by ps2eps $ver[2]\n",
+ "%%BeginProlog\n";
+ }
+ # Insert own postscript code for clipping
+ if ($clip)
+ {
+ if (!defined($nohires))
+ {
+ printf $outfhandle "newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath clip\n",$hcBBllx-0.1,$hcBBlly-0.1,$hcBBurx+0.1,$hcBBlly-0.1,$hcBBurx+0.1,$hcBBury+0.1,$hcBBllx-0.1,$hcBBury+0.1;
+ }
+ else
+ {
+ printf $outfhandle "newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto closepath clip\n",$cBBllx,$cBBlly,$cBBurx,$cBBlly,$cBBurx,$cBBury,$cBBllx,$cBBury;
+ }
+ } #endif clip
+
+ if ($rotate ne '')
+ {
+ print $outfhandle "$transrotcmd\n";
+ print $outfhandle "$rotate\n";
+ }
+ if ($translation ne '')
+ {
+ print $outfhandle "$translation\n";
+ }
+
+ #insert surrounding postscript code
+ if ($insertPScode)
+ {
+ print $outfhandle "save\n",
+ "countdictstack\n",
+ "mark\n",
+ "newpath\n",
+ "/showpage {} def\n",
+ "/setpagedevice {pop} def\n",
+ "%%EndProlog\n",
+ "%%Page 1 1\n";
+ }
+ $prolog_passed= 1;
+ if (/^%%EndComments/) { next CREATEOUTPUT; }
+ } #endif line is not a comment
+ } #end else
+ } #endif (we are in the prologue section)
+ else #we are in the main part of postscript file
+ {
+ #end of postscript file reached?
+ #Usually the DSC %%EOF signifies the end
+ if ( eof($tmpfhandle) ||
+ ($ignoreEOFDSC == 0 && /^%%EOF\s*$/ && $seenEOF == $totalEOFDSC)
+ || ( $trailerseen && /^II\*\000.*/ )
+ )
+ {
+ #do not forget to print last line if not terminated by LF
+ if ( eof($tmpfhandle) && !/^$/ && !/^%%EOF\s*$/ ) # do not insert %%EOF twice
+ {
+ print $outfhandle $_,"\n";
+ }
+ #add appropriate trailer
+ if ($insertPScode)
+ {
+ print $outfhandle "%%Trailer\n",
+ "cleartomark\n",
+ "countdictstack\n",
+ "exch sub { end } repeat\n",
+ "restore\n",
+ "%%EOF\n";
+ }
+ last CREATEOUTPUT;
+ } # stop output
+
+ # Trailer comment seen?
+ if ( /^%%Trailer\s*$/ )
+ {
+ $trailerseen=1;
+ }
+ else
+ {
+ if (!/^\s*$/) #non empty lines follow
+ {
+ $trailerseen=0;
+ }
+ }
+
+ # check for trigger
+ if (defined($triggerstring) && /^$triggerstring$/)
+ {
+ $trigger= 1;
+ };
+
+ # remove complete lines if one of the expression matches
+ if ( !$binarysection # only when not in binary section
+ &&
+ (
+ ($removePreview && (/^%%BeginPreview/ ... /^%%EndPreview/))
+ || # no preview
+ (defined($rangefilter_begin) &&
+ (/$rangefilter_begin/ ... /$rangefilter_end/) &&
+ (!(/$exclude_rangefilter_begin/ ... /$exclude_rangefilter_end/))
+ )
+ ||
+ (defined($triggered_rangefilter_begin) && defined($triggered_rangefilter_end) &&
+ $trigger &&
+ (/$triggered_rangefilter_begin/ ... /$triggered_rangefilter_end/)
+ )
+ ||
+ /$linefilter/ # lines by linefilter
+ ||
+ ($removeDSC && (/^%( |!)(\w )+/ || /^%%([A-Za-z]+\s)/)) # any type of structured comment
+ ||
+ ($removeADO &&
+ (/^statusdict begin.*ProductName.*print product print.*flush end\r?\n?$/ ||
+ /^\(%%\[\s*(Page:.*|LastPage)\s*\]%%\)\s*=\s*\w*\s*\r?\n?/ ))
+ ||
+ /^$/ # empty lines
+ )
+ )
+ {
+ next CREATEOUTPUT;
+ }
+
+ # replacement
+ if ( defined($fixsearchpat) )
+ {
+ #if (/$fixsearchpat/) { print STDERR "**filter** before:",$_,"\n"; }
+ #if (s/$fixsearchpat/$fixreplacepat/) { print STDERR "**filter** after:",$_,"\n";}
+ s/$fixsearchpat/$fixreplacepat/;
+ }
+
+ # sanity check for potential dangerous commands
+ if ( /(^|\s)(clear|erasepage|initmatrix|initclip|initgraphics|startjob|cleardictstack|setmatrix|setpagedevice|copypage|grestoreall|exitserver|quit)(\s|$)/ )
+ {
+ $notsane= 1;
+ #print STDERR "Warning: dangerous command in line: ",$_,"\n";
+ }
+ } # end else (this is main part)
+
+ # Output the postscript line to result file
+ print $outfhandle $_;
+
+ if (!$binarysection)
+ {
+ print $outfhandle "\n"; # terminate line with LF
+ }
+ } # end else prolog_passed
+ } # end else inserted_prolog
+ } # end while CREATEOUTPUT
+
+ close($tmpfhandle);
+
+ if ($tmpfname ne $infname) { unlink "$tmpfname"; } #remove temporary file
+
+ close ($outfhandle);
+
+ # print warning if magic sequence not found
+ if ( $before_startps )
+ {
+ print STDERR "\n ** Error!! **: could not identify begin of postscript code in file $infname, please check header line!\n First line should start with %!. No output generated.\n";
+ }
+
+ if (!$quiet) { print STDERR "ready.\n"; }
+ if ($warnings and $notsane and !$quiet)
+ {
+ print STDERR "** Warning **: EPS-output for $infname is not sane, at least one\n",
+ "of the following commands was still present:\n",
+ "clear erasepage initmatrix initclip initgraphics startjob\n",
+ "cleardictstack setmatrix setpagedevice copypage grestoreall\n",
+ "exitserver quit\n";
+ }
+} #end while PROCESSFILE
+
+# ---- end of perl-script -------
diff --git a/Master/bin/i386-kfreebsd/ps2frag b/Master/bin/i386-kfreebsd/ps2frag
new file mode 100755
index 00000000000..b8e673be087
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ps2frag
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+tty -s && {
+ echo
+ echo "Warning: the ps2frag script is not needed with this version of psfrag."
+ echo "Please read the manpage ps2frag(1) and the documentation of the"
+ echo "psfrag package."
+ echo
+} >&2
+
+exit 0
diff --git a/Master/bin/i386-kfreebsd/ps2pk b/Master/bin/i386-kfreebsd/ps2pk
new file mode 100755
index 00000000000..ddbf0ae64c5
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ps2pk
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ps4pdf b/Master/bin/i386-kfreebsd/ps4pdf
new file mode 120000
index 00000000000..7e99e0b8d18
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ps4pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pst-pdf/ps4pdf \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/psbook b/Master/bin/i386-kfreebsd/psbook
new file mode 100755
index 00000000000..997f93de418
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/psbook
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pslatex b/Master/bin/i386-kfreebsd/pslatex
new file mode 100755
index 00000000000..4badef0ec12
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pslatex
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+# Copyright 1994 David Carlisle
+# This file may be redistributed and/or modified under the terms of the
+# LaTeX Project Public License distributed from CTAN archives in directory
+# macros/latex/base/lppl.txt; either version 1 of the License, or (at
+# your option) any later version.
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+# we want to be able to use options to latex:
+while :; do
+ case $1 in
+ -*)
+ latexoptions="$latexoptions \"$1\""
+ shift;;
+ *)
+ break;;
+ esac
+done
+
+echo
+echo "*************************************"
+echo "* Using LaTeX, with pslatex package *"
+echo "*************************************"
+echo
+
+# messing around with \PSLATEXTMP is for AUCTeX which calls
+# documents via latex \nonstopmode \input{file}
+
+latex $latexoptions \
+ "\AtBeginDocument{\RequirePackage{pslatex}}"\
+ "\def\PSLATEXTMP{\futurelet\PSLATEXTMP\PSLATEXTMPB}"\
+ "\def\PSLATEXTMPB{\ifx\PSLATEXTMP\nonstopmode\else\input\fi}"\
+ "\PSLATEXTMP" ${1+"$@"}
diff --git a/Master/bin/i386-kfreebsd/psmerge b/Master/bin/i386-kfreebsd/psmerge
new file mode 100755
index 00000000000..9500bcdf7e6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/psmerge
@@ -0,0 +1,85 @@
+#!/usr/bin/env perl
+# psmerge: merge PostScript files produced by same application and setup
+# usage: psmerge [-oout.ps] [-thorough] file1.ps file2.ps ...
+#
+# Copyright (C) Angus J. C. Duggan 1991-1995
+# See file LICENSE for details.
+
+$prog = ($0 =~ s=.*/==);
+
+while ($ARGV[0] =~ /^-/) {
+ $_ = shift;
+ if (/^-o(.+)/) {
+ if (!close(STDOUT) || !open(STDOUT, ">$1")) {
+ print STDERR "$prog: can't open $1 for output\n";
+ exit 1;
+ }
+ } elsif (/^-t(horough)?$/) {
+ $thorough = 1;
+ } else {
+ print STDERR "Usage: $prog [-oout] [-thorough] file...\n";
+ exit 1;
+ }
+}
+
+$page = 0;
+$first = 1;
+$nesting = 0;
+
+@header = ();
+$header = 1;
+
+@trailer = ();
+$trailer = 0;
+
+@pages = ();
+@body = ();
+
+@resources = ();
+$inresource = 0;
+
+while (<>) {
+ if (/^%%BeginFont:/ || /^%%BeginResource:/ || /^%%BeginProcSet:/) {
+ $inresource = 1;
+ push(@resources, $_);
+ } elsif ($inresource) {
+ push(@resources, $_);
+ $inresource = 0 if /^%%EndFont/ || /^%%EndResource/ || /^%%EndProcSet/;
+ } elsif (/^%%Page:/ && $nesting == 0) {
+ $header = $trailer = 0;
+ push(@pages, join("", @body)) if @body;
+ $page++;
+ @body = ("%%Page: ($page) $page\n");
+ } elsif (/^%%Trailer/ && $nesting == 0) {
+ push(@trailer, $_);
+ push(@pages, join("", @body)) if @body;
+ @body = ();
+ $trailer = 1;
+ $header = 0;
+ } elsif ($header) {
+ push(@trailer, $_);
+ push(@pages, join("", @body)) if @body;
+ @body = ();
+ $trailer = 1;
+ $header = 0;
+ } elsif ($trailer) {
+ if (/^%!/ || /%%EOF/) {
+ $trailer = $first = 0;
+ } elsif ($first) {
+ push(@trailer, $_);
+ }
+ } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/) {
+ push(@body, $_);
+ $nesting++;
+ } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) {
+ push(@body, $_);
+ $nesting--;
+ } else {
+ print $_ if $print;
+ }
+}
+
+print @trailer;
+
+exit 0;
+
diff --git a/Master/bin/i386-kfreebsd/psnup b/Master/bin/i386-kfreebsd/psnup
new file mode 100755
index 00000000000..56a42cd4cca
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/psnup
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/psresize b/Master/bin/i386-kfreebsd/psresize
new file mode 100755
index 00000000000..fbcb873af42
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/psresize
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/psselect b/Master/bin/i386-kfreebsd/psselect
new file mode 100755
index 00000000000..404584f91c6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/psselect
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/pst2pdf b/Master/bin/i386-kfreebsd/pst2pdf
new file mode 120000
index 00000000000..7254506bdeb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pst2pdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/pst2pdf/pst2pdf \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pstopdf b/Master/bin/i386-kfreebsd/pstopdf
new file mode 120000
index 00000000000..44478ee1dd4
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pstopdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/pstopdf \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/pstops b/Master/bin/i386-kfreebsd/pstops
new file mode 100755
index 00000000000..8620120cb02
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/pstops
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/purifyeps b/Master/bin/i386-kfreebsd/purifyeps
new file mode 120000
index 00000000000..d6919b530ed
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/purifyeps
@@ -0,0 +1 @@
+../../texmf-dist/scripts/purifyeps/purifyeps \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/repstopdf b/Master/bin/i386-kfreebsd/repstopdf
new file mode 120000
index 00000000000..859052f5166
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/repstopdf
@@ -0,0 +1 @@
+epstopdf \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/rlxtools b/Master/bin/i386-kfreebsd/rlxtools
new file mode 120000
index 00000000000..a5078af4f10
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/rlxtools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/rlxtools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/rpdfcrop b/Master/bin/i386-kfreebsd/rpdfcrop
new file mode 120000
index 00000000000..b915c696540
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/rpdfcrop
@@ -0,0 +1 @@
+pdfcrop \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/rubibtex b/Master/bin/i386-kfreebsd/rubibtex
new file mode 100755
index 00000000000..373e6e1194d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/rubibtex
@@ -0,0 +1,110 @@
+#!/bin/sh
+
+# rubibtex, based on the original version contained in the t2 bundle.
+# Thomas Esser, Public Domain.
+
+progname=rubibtex
+tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+job=$1
+backup="$tmpdir/orig.aux"
+
+case $job in
+ "")
+ echo "usage: $progname file" >&2
+ exit 1
+esac
+
+if test ! -f "$job.aux"; then
+ echo "$progname: file \`$job.aux' does not exist." >&2
+ exit 1
+fi
+
+trap '
+ rm -rf "$tmpdir"
+ exit 1
+' 1 2 3 7 13 15
+(umask 077; mkdir "$tmpdir") \
+ || { echo "$progname: could not create directory \`$tmpdir'" >&2; exit 1; }
+
+cat <"$job.aux" >"$backup" || {
+ echo "$progname: could not create backup of file \`$job.aux' as \`$backup'." >&2
+ rm -rf "$tmpdir"
+ exit 1
+}
+
+sed '
+ /^\\citation/ {
+ s/\\IeC {\\CYRA }/á/g
+ s/\\IeC {\\CYRB }/â/g
+ s/\\IeC {\\CYRV }/÷/g
+ s/\\IeC {\\CYRG }/ç/g
+ s/\\IeC {\\CYRD }/ä/g
+ s/\\IeC {\\CYRE }/å/g
+ s/\\IeC {\\CYRYO }/³/g
+ s/\\IeC {\\CYRZH }/ö/g
+ s/\\IeC {\\CYRZ }/ú/g
+ s/\\IeC {\\CYRI }/é/g
+ s/\\IeC {\\CYRISHRT }/ê/g
+ s/\\IeC {\\CYRK }/ë/g
+ s/\\IeC {\\CYRL }/ì/g
+ s/\\IeC {\\CYRM }/í/g
+ s/\\IeC {\\CYRN }/î/g
+ s/\\IeC {\\CYRO }/ï/g
+ s/\\IeC {\\CYRP }/ð/g
+ s/\\IeC {\\CYRR }/ò/g
+ s/\\IeC {\\CYRS }/ó/g
+ s/\\IeC {\\CYRT }/ô/g
+ s/\\IeC {\\CYRU }/õ/g
+ s/\\IeC {\\CYRF }/æ/g
+ s/\\IeC {\\CYRH }/è/g
+ s/\\IeC {\\CYRC }/ã/g
+ s/\\IeC {\\CYRCH }/þ/g
+ s/\\IeC {\\CYRSH }/û/g
+ s/\\IeC {\\CYRSHCH }/ý/g
+ s/\\IeC {\\CYRHRDSN }/ÿ/g
+ s/\\IeC {\\CYRERY }/ù/g
+ s/\\IeC {\\CYRSFTSN }/ø/g
+ s/\\IeC {\\CYREREV }/ü/g
+ s/\\IeC {\\CYRYU }/à/g
+ s/\\IeC {\\CYRYA }/ñ/g
+ s/\\IeC {\\cyra }/Á/g
+ s/\\IeC {\\cyrb }/Â/g
+ s/\\IeC {\\cyrv }/×/g
+ s/\\IeC {\\cyrg }/Ç/g
+ s/\\IeC {\\cyrd }/Ä/g
+ s/\\IeC {\\cyre }/Å/g
+ s/\\IeC {\\cyryo }/£/g
+ s/\\IeC {\\cyrzh }/Ö/g
+ s/\\IeC {\\cyrz }/Ú/g
+ s/\\IeC {\\cyri }/É/g
+ s/\\IeC {\\cyrishrt }/Ê/g
+ s/\\IeC {\\cyrk }/Ë/g
+ s/\\IeC {\\cyrl }/Ì/g
+ s/\\IeC {\\cyrm }/Í/g
+ s/\\IeC {\\cyrn }/Î/g
+ s/\\IeC {\\cyro }/Ï/g
+ s/\\IeC {\\cyrp }/Ð/g
+ s/\\IeC {\\cyrr }/Ò/g
+ s/\\IeC {\\cyrs }/Ó/g
+ s/\\IeC {\\cyrt }/Ô/g
+ s/\\IeC {\\cyru }/Õ/g
+ s/\\IeC {\\cyrf }/Æ/g
+ s/\\IeC {\\cyrh }/È/g
+ s/\\IeC {\\cyrc }/Ã/g
+ s/\\IeC {\\cyrch }/Þ/g
+ s/\\IeC {\\cyrsh }/Û/g
+ s/\\IeC {\\cyrshch }/Ý/g
+ s/\\IeC {\\cyrhrdsn }/ß/g
+ s/\\IeC {\\cyrery }/Ù/g
+ s/\\IeC {\\cyrsftsn }/Ø/g
+ s/\\IeC {\\cyrerev }/Ü/g
+ s/\\IeC {\\cyryu }/À/g
+ s/\\IeC {\\cyrya }/Ñ/g
+ }
+' <"$backup" >"$job.aux"
+
+bibtex "$job"
+
+cat "$backup" > "$job.aux"
+rm -rf "$tmpdir"
+exit 0
diff --git a/Master/bin/i386-kfreebsd/rumakeindex b/Master/bin/i386-kfreebsd/rumakeindex
new file mode 100755
index 00000000000..b7b0c072729
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/rumakeindex
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+BASE=`basename "$1" .idx`
+IDX=$BASE.idx
+IND=$BASE.ind
+ILG=$BASE.ilg
+
+sed '
+/^\\indexentry{/ {
+s/\\IeC {\\CYRA }/¾/g
+s/\\IeC {\\cyra }/¿/g
+s/\\IeC {\\CYRB }/À/g
+s/\\IeC {\\cyrb }/Á/g
+s/\\IeC {\\CYRV }/Â/g
+s/\\IeC {\\cyrv }/Ã/g
+s/\\IeC {\\CYRG }/Ä/g
+s/\\IeC {\\cyrg }/Å/g
+s/\\IeC {\\CYRD }/Æ/g
+s/\\IeC {\\cyrd }/Ç/g
+s/\\IeC {\\CYRE }/È/g
+s/\\IeC {\\cyre }/É/g
+s/\\IeC {\\CYRYO }/Ê/g
+s/\\IeC {\\cyryo }/Ë/g
+s/\\IeC {\\CYRZH }/Ì/g
+s/\\IeC {\\cyrzh }/Í/g
+s/\\IeC {\\CYRZ }/Î/g
+s/\\IeC {\\cyrz }/Ï/g
+s/\\IeC {\\CYRI }/Ð/g
+s/\\IeC {\\cyri }/Ñ/g
+s/\\IeC {\\CYRISHRT }/Ò/g
+s/\\IeC {\\cyrishrt }/Ó/g
+s/\\IeC {\\CYRK }/Ô/g
+s/\\IeC {\\cyrk }/Õ/g
+s/\\IeC {\\CYRL }/Ö/g
+s/\\IeC {\\cyrl }/×/g
+s/\\IeC {\\CYRM }/Ø/g
+s/\\IeC {\\cyrm }/Ù/g
+s/\\IeC {\\CYRN }/Ú/g
+s/\\IeC {\\cyrn }/Û/g
+s/\\IeC {\\CYRO }/Ü/g
+s/\\IeC {\\cyro }/Ý/g
+s/\\IeC {\\CYRP }/Þ/g
+s/\\IeC {\\cyrp }/ß/g
+s/\\IeC {\\CYRR }/à/g
+s/\\IeC {\\cyrr }/á/g
+s/\\IeC {\\CYRS }/â/g
+s/\\IeC {\\cyrs }/ã/g
+s/\\IeC {\\CYRT }/ä/g
+s/\\IeC {\\cyrt }/å/g
+s/\\IeC {\\CYRU }/æ/g
+s/\\IeC {\\cyru }/ç/g
+s/\\IeC {\\CYRF }/è/g
+s/\\IeC {\\cyrf }/é/g
+s/\\IeC {\\CYRH }/ê/g
+s/\\IeC {\\cyrh }/ë/g
+s/\\IeC {\\CYRC }/ì/g
+s/\\IeC {\\cyrc }/í/g
+s/\\IeC {\\CYRCH }/î/g
+s/\\IeC {\\cyrch }/ï/g
+s/\\IeC {\\CYRSH }/ð/g
+s/\\IeC {\\cyrsh }/ñ/g
+s/\\IeC {\\CYRSHCH }/ò/g
+s/\\IeC {\\cyrshch }/ó/g
+s/\\IeC {\\CYRHRDSN }/ô/g
+s/\\IeC {\\cyrhrdsn }/õ/g
+s/\\IeC {\\CYRERY }/ö/g
+s/\\IeC {\\cyrery }/÷/g
+s/\\IeC {\\CYRSFTSN }/ø/g
+s/\\IeC {\\cyrsftsn }/ù/g
+s/\\IeC {\\CYREREV }/ú/g
+s/\\IeC {\\cyrerev }/û/g
+s/\\IeC {\\CYRYU }/ü/g
+s/\\IeC {\\cyryu }/ý/g
+s/\\IeC {\\CYRYA }/þ/g
+s/\\IeC {\\cyrya }/ÿ/g
+}' $IDX | makeindex -t $ILG | tr '¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' \
+ 'áÁâÂ÷×çÇäÄåų£öÖúÚéÉêÊëËìÌíÍîÎïÏðÐòÒóÓôÔõÕæÆèÈãÃþÞûÛýÝÿßùÙøØüÜàÀñÑ' > $IND
diff --git a/Master/bin/i386-kfreebsd/rungs b/Master/bin/i386-kfreebsd/rungs
new file mode 120000
index 00000000000..3efeab3b3d4
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/rungs
@@ -0,0 +1 @@
+../../texmf/scripts/texlive/rungs.tlu \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/runtools b/Master/bin/i386-kfreebsd/runtools
new file mode 120000
index 00000000000..127f29a36df
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/runtools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/runtools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/showchar b/Master/bin/i386-kfreebsd/showchar
new file mode 100755
index 00000000000..e685e99ae8c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/showchar
@@ -0,0 +1,118 @@
+#!/bin/sh
+# showchar: show character with information
+# usage:
+# showchar Font-Name Char-Name | lpr -Pprinter
+
+if [ $# != 2 ]; then
+ echo "Usage: `basename $0` Font-Name Char-Name" >&2
+ exit 1
+fi
+
+cat <<EOF
+%!
+% Get character metrics and bounding box for $1
+/ns 30 string def
+/fname /$1 def
+/cname /$2 def
+/fn fname findfont 1000 scalefont def
+/thin 0.7 def
+/reduction 2.0 def
+
+/sn { ns cvs show } def
+/sc { (\()show exch sn (,)show sn (\))show } def
+
+/Times-Roman findfont 10 scalefont setfont
+
+72 242 translate % one inch in, 3 1/2 inch up
+newpath 0 0 moveto
+gsave % print character name
+ 0 468 rmoveto
+ ($2 from font $1 displayed on `date` by `basename $0` 1.00 (C) AJCD 1991)
+ show
+grestore
+
+gsave
+ thin setlinewidth % cross hairs
+ -9 0 rmoveto 18 0 rlineto
+ -9 -9 rmoveto 0 18 rlineto
+ stroke % position info
+ -9 -9 moveto ((0,0)) stringwidth pop neg 0 rmoveto
+ ((0,0)) show
+grestore
+
+% create encoding with a single character at all positions
+/MyEncoding 256 array def
+
+0 1 255 { % fill out with notdefs
+ MyEncoding exch cname put
+} for
+
+fn dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding MyEncoding def
+ currentdict
+end /newfont exch definefont
+/fn exch def
+/en MyEncoding def
+
+gsave % draw character (enlarged)
+ .75 setgray
+ fn 1 reduction div scalefont setfont
+ (\000) show
+grestore
+
+% show character info
+fn /Metrics known {
+ dup fn /Metrics get exch get
+ dup type /arraytype eq {
+ dup length 2 eq
+ {1 get 0} {dup 2 get exch 3 get} ifelse
+ } {
+ round 0
+ } ifelse
+} {
+ gsave
+ fn setfont (\000) stringwidth round exch round exch
+ grestore
+} ifelse
+gsave % show width
+ thin setlinewidth
+ 2 copy
+ reduction div exch reduction div exch rlineto
+ gsave
+ 1 1 rmoveto sc
+ grestore
+ -4 -3 rlineto 0 6 rmoveto 4 -3 rlineto
+ stroke
+grestore
+
+gsave
+ gsave % get bounding box
+ fn setfont
+ (\000) true charpath flattenpath pathbbox
+ grestore
+ thin setlinewidth
+ 3 index reduction div % put coords on top of stack
+ 3 index reduction div
+ 3 index reduction div
+ 3 index reduction div
+ 3 index 3 index moveto
+ gsave % llx lly
+ 0 -9 rmoveto 7 index 7 index sc
+ grestore
+ 1 index 3 index lineto
+ gsave % urx lly
+ 0 -9 rmoveto 5 index 7 index sc
+ grestore
+ 1 index 1 index lineto
+ gsave % urx ury
+ 0 9 rmoveto 5 index 5 index sc
+ grestore
+ 3 index 1 index lineto
+ gsave % llx ury
+ 0 9 rmoveto 7 index 5 index sc
+ grestore
+ closepath stroke
+grestore
+showpage
+EOF
diff --git a/Master/bin/i386-kfreebsd/showglyphs b/Master/bin/i386-kfreebsd/showglyphs
new file mode 120000
index 00000000000..5745ac821e0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/showglyphs
@@ -0,0 +1 @@
+../../texmf-dist/scripts/fontools/showglyphs \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/simpdftex b/Master/bin/i386-kfreebsd/simpdftex
new file mode 120000
index 00000000000..8b9c2132185
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/simpdftex
@@ -0,0 +1 @@
+../../texmf/scripts/simpdftex/simpdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/sjisconv b/Master/bin/i386-kfreebsd/sjisconv
new file mode 100755
index 00000000000..18614730fb4
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/sjisconv
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/sjislatex b/Master/bin/i386-kfreebsd/sjislatex
new file mode 100755
index 00000000000..68c554e6d71
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/sjislatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+sjisconv < "$tex" > "$aux" && eval latex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/sjispdflatex b/Master/bin/i386-kfreebsd/sjispdflatex
new file mode 100755
index 00000000000..e8d070e9dc6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/sjispdflatex
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in doc/COPYING; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+n=1
+argv=
+
+# get last argument
+while test 1 -lt $#; do
+ eval argv$n=\$1
+ argv="$argv \"\$argv$n\""
+ n=`expr $n + 1`
+ shift
+done
+
+# replace extension with .cjk or append .cjk if there is no extension
+tex=$1
+case $tex in
+""|*.cjk)
+ echo >&2 "Usage: $0 [options] latex-file"
+ exit 1;;
+*)
+ aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;;
+esac
+
+sjisconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux"
+
+# EOF
diff --git a/Master/bin/i386-kfreebsd/splitindex b/Master/bin/i386-kfreebsd/splitindex
new file mode 120000
index 00000000000..2a8232f7a9d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/splitindex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/splitindex/perl/splitindex.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/svn-multi b/Master/bin/i386-kfreebsd/svn-multi
new file mode 120000
index 00000000000..9f3e6f9d9b7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/svn-multi
@@ -0,0 +1 @@
+../../texmf-dist/scripts/svn-multi/svn-multi.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/synctex b/Master/bin/i386-kfreebsd/synctex
new file mode 100755
index 00000000000..3e82fbb9f40
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/synctex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1ascii b/Master/bin/i386-kfreebsd/t1ascii
new file mode 100755
index 00000000000..c8b3c1b4356
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1ascii
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1asm b/Master/bin/i386-kfreebsd/t1asm
new file mode 100755
index 00000000000..5ddb662fa72
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1asm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1binary b/Master/bin/i386-kfreebsd/t1binary
new file mode 100755
index 00000000000..ba4ea6fbea0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1binary
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1disasm b/Master/bin/i386-kfreebsd/t1disasm
new file mode 100755
index 00000000000..4ff33bdd960
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1disasm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1dotlessj b/Master/bin/i386-kfreebsd/t1dotlessj
new file mode 100755
index 00000000000..80783af9bfa
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1dotlessj
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1lint b/Master/bin/i386-kfreebsd/t1lint
new file mode 100755
index 00000000000..45e36d9651d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1lint
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1mac b/Master/bin/i386-kfreebsd/t1mac
new file mode 100755
index 00000000000..8795c6607a0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1mac
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1rawafm b/Master/bin/i386-kfreebsd/t1rawafm
new file mode 100755
index 00000000000..6c254d78ecb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1rawafm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1reencode b/Master/bin/i386-kfreebsd/t1reencode
new file mode 100755
index 00000000000..c91e0644e8a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1reencode
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1testpage b/Master/bin/i386-kfreebsd/t1testpage
new file mode 100755
index 00000000000..3c168fcb7ab
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1testpage
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t1unmac b/Master/bin/i386-kfreebsd/t1unmac
new file mode 100755
index 00000000000..7a100e32c04
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t1unmac
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/t4ht b/Master/bin/i386-kfreebsd/t4ht
new file mode 100755
index 00000000000..1708eaeb85e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/t4ht
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/tangle b/Master/bin/i386-kfreebsd/tangle
new file mode 100755
index 00000000000..7bb7569f7f0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tangle
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/tcdialog b/Master/bin/i386-kfreebsd/tcdialog
new file mode 100755
index 00000000000..278ba4bc514
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tcdialog
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/teckit_compile b/Master/bin/i386-kfreebsd/teckit_compile
new file mode 100755
index 00000000000..0c79516e945
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/teckit_compile
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/tex b/Master/bin/i386-kfreebsd/tex
new file mode 100755
index 00000000000..5a4896fc20e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/tex4ht b/Master/bin/i386-kfreebsd/tex4ht
new file mode 100755
index 00000000000..739d4199996
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tex4ht
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/texconfig b/Master/bin/i386-kfreebsd/texconfig
new file mode 100755
index 00000000000..fe0927136e0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texconfig
@@ -0,0 +1,1439 @@
+#!/bin/sh
+
+# TeXConfig version 3.0
+# Originally written by Thomas Esser. Public domain.
+# Now maintained as part of TeX Live; correspondence to tex-live@tug.org.
+
+# invoke the right shell:
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+# initializations...
+progname=texconfig
+
+# the version string
+version=20080708.1050
+
+envVars="
+ AFMFONTS BIBINPUTS BSTINPUTS CMAPFONTS CWEBINPUTS ENCFONTS GFFONTS
+ GLYPHFONTS INDEXSTYLE LIGFONTS MFBASES MFINPUTS MFPOOL MFTINPUTS
+ MISCFONTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS OFMFONTS
+ OPENTYPEFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PDFTEXCONFIG PKFONTS
+ PSHEADERS SFDFONTS T1FONTS T1INPUTS T42FONTS TEXBIB TEXCONFIG TEXDOCS
+ TEXFONTMAPS TEXFONTS TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF
+ TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS
+ TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS
+"
+tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$
+needsCleanup=false
+lastUpdatedFile=
+
+#
+###############################################################################
+# setupFMT(void) - find a suitable version of fmt / adjust
+#
+setupFMT()
+{
+ case $FMT in
+ "")
+ FMT=fmt
+ test ! -x /bin/fmt && test ! -f /usr/bin/fmt &&
+ { test -x /bin/adjust || test -x /usr/bin/adjust; } && FMT=adjust
+ ;;
+ *)
+ return
+ ;;
+ esac
+}
+
+###############################################################################
+# myFmt(args) - run $FMT
+#
+myFmt()
+{
+ setupFMT
+ $FMT ${1+"$@"}
+}
+
+###############################################################################
+# echoShowVariable(args ...)
+# show environment variables which names are as args and their values
+#
+echoShowVariable()
+{
+ for esv
+ do
+ var=$esv
+ eval val=\"\${$var+=}\${$var- is unset}\"
+ echo "$var$val"
+ done | grep -v 'is unset$'
+}
+
+###############################################################################
+# echoShowKpseVariable(args ...)
+# show kpathsea variables which names are as args and their values
+#
+echoShowKpseVariable()
+{
+ for eskv
+ do
+ var=$eskv
+ val=`kpsewhich -var-value="$eskv"`
+ echo "$var=$val"
+ done
+}
+
+###############################################################################
+# echoLocateBinary(args ...) - show where programs actually exist
+#
+echoLocateBinary()
+{
+ for elb
+ do
+ elbLoc=`checkForBinary "$elb"`
+ if test -n "$ELB_PATH_ONLY"; then
+ test -n "$elbLoc" && echo "$elbLoc"
+ else
+ case $elbLoc in
+ "") echo "$elb: not found";;
+ *) echo "$elb: $elbLoc";;
+ esac
+ fi
+ done
+}
+
+###############################################################################
+# echoLocateCfgfile(args ...) - show where files actually exist
+#
+echoLocateCfgfile()
+{
+ for elc
+ do
+ case $elc in
+ texmf.cnf) elcLoc=`kpsewhich $elc`;;
+ *) elcLoc=`tcfmgr --cmd find --file "$elc"`;;
+ esac
+ case $elcLoc in
+ "") echo "$elc: not found";;
+ *) echo "$elcLoc";;
+ esac
+ done
+}
+
+###############################################################################
+# checkForBinary(prog) - echo full path of prog
+#
+checkForBinary()
+{
+ cfbBinary=$1
+
+ OLDIFS=$IFS
+ IFS=:
+ set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g'`; shift
+ found=false
+ for pathElem
+ do
+ case $pathElem in
+ "") continue;;
+ *) test -f "$pathElem/$cfbBinary" && { echo "$pathElem/$cfbBinary"; found=true; break; }
+ esac
+ done
+ IFS=$OLDIFS
+ case $found in
+ true) (exit 0); return 0;;
+ false) (exit 1); return 1;;
+ esac
+}
+
+###############################################################################
+# cleanup() - clean up the temp area and exit with proper exit status
+#
+cleanup()
+{
+ rc=$1
+ $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
+ && { cd / && rm -rf "$tmpdir"; }
+ (exit $rc); exit $rc
+}
+
+###############################################################################
+# setupTmpDir() - set up a temp directory and a trap to remove it
+#
+setupTmpDir()
+{
+ case $needsCleanup in
+ true) return;;
+ esac
+
+ trap 'cleanup 1' 1 2 3 7 13 15
+ needsCleanup=true
+ (umask 077; mkdir "$tmpdir") \
+ || abort "could not create directory \`$tmpdir'"
+}
+
+###############################################################################
+# setupTexmfmain() - get value for MT_TEXMFMAIN (with caching)
+#
+setupTexmfmain()
+{
+ case $MT_TEXMFMAIN in
+ "") MT_TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`;;
+ *) return;;
+ esac
+}
+
+###############################################################################
+# setupTexmfmain() - get value for MT_TEXMFDIST (with caching)
+#
+setupTexmfdist()
+{
+ case $MT_TEXMFDIST in
+ "") MT_TEXMFDIST=`kpsewhich -var-value=TEXMFDIST`;;
+ *) return;;
+ esac
+}
+
+###############################################################################
+# setupTexmfvar() - get value for MT_TEXMFVAR (with caching)
+#
+setupTexmfvar()
+{
+ case $MT_TEXMVAR in
+ "") MT_TEXMVAR=`kpsewhich -var-value=TEXMFVAR`;;
+ *) return;;
+ esac
+}
+
+###############################################################################
+# setupSystexmf() - get value for MT_SYSTEXMF (with caching)
+#
+setupSystexmf()
+{
+ case $MT_SYSTEXMF in
+ "") MT_SYSTEXMF=`kpsewhich -var-value=SYSTEXMF`;;
+ *) return;;
+ esac
+}
+
+###############################################################################
+# abort(errmsg)
+# print `errmsg' to stderr and exit with error code 1
+#
+abort()
+{
+ echo "$progname: $1." >&2
+ cleanup 1
+}
+
+###############################################################################
+# mktexdir(args)
+# call mktexdir script, disable all features (to prevent sticky directories)
+#
+mktexdir()
+{
+ setupTexmfmain
+ MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$@" >&2
+}
+
+###############################################################################
+# tcfmgr(args) - call tcfmgr script
+#
+tcfmgr()
+{
+ setupTexmfmain
+ "$MT_TEXMFMAIN/texconfig/tcfmgr" "$@"
+}
+
+###############################################################################
+# mktexupd(args) - call mktexupd script
+#
+mktexupd()
+{
+ setupTexmfmain
+ "$MT_TEXMFMAIN/web2c/mktexupd" "$@"
+}
+
+###############################################################################
+# getRelDir(file)
+# matches file against SYSTEXMF. Returns relative directory of file within
+# a texmf tree in variable relPart.
+#
+getRelDir()
+{
+ file=$1
+ relPart=
+
+ setupSystexmf
+ OLDIFS=$IFS
+ IFS='
+'
+ set x `echo "$MT_SYSTEXMF" | tr : '
+'`; shift
+ IFS=$OLDIFS
+
+ # now loop over all components of SYSTEXMF
+ for dir
+ do
+ test -n "$dir" || continue
+ case "$file" in
+ $dir/*)
+ relPart=`echo "$file" | sed "s%$dir/*%%"`
+ break
+ ;;
+ esac
+ done
+
+ # now check for success / failure
+ case $relPart in
+ ""|$file)
+ # empty or full filename -> getRelDir failed!
+ (exit 1); return 1
+ ;;
+ *)
+ # relPart should just have the "dirname" part:
+ relPart=`echo "$relPart" | sed 's%/*[^/]*$%%'`
+ (exit 0); return 0
+ ;;
+ esac
+}
+
+###############################################################################
+# configReplace(file pattern line)
+# The first line in file that matches pattern gets replaced by line.
+# line will be added at the end of the file if pattern does not match.
+#
+configReplace()
+{
+ configReplaceFile=$1; configReplacePat=$2; configReplaceLine=$3
+
+ if grep "$configReplacePat" "$configReplaceFile" >/dev/null; then
+ ed "$configReplaceFile" >/dev/null 2>&1 <<-eof
+ /$configReplacePat/c
+ $configReplaceLine
+ .
+ w
+ q
+eof
+ else
+ echo "$configReplaceLine" >> $configReplaceFile
+ fi
+}
+
+###############################################################################
+# fmgrConfigReplace (file regex value)
+# replaces line matching regex by value in file
+#
+fmgrConfigReplace()
+{
+ fmgrConfigReplaceChanged=false
+
+ moreArgs=""
+ while
+ case $1 in
+ --*) moreArgs="$moreArgs $1 $2";;
+ *) break;;
+ esac
+ do shift; shift; done
+ fmgrConfigReplaceFile=$1
+ fmgrConfigReplaceRegex=$2
+ fmgrConfigReplaceValue=$3
+
+ setupTmpDir
+ co=`tcfmgr $moreArgs --tmp $tmpdir --cmd co --file $fmgrConfigReplaceFile`
+ if test $? != 0; then
+ echo "$progname: fmgrConfigReplace co failed for \`$fmgrConfigReplaceFile'" >&2
+ (exit 1); return 1
+ fi
+ set x $co; shift
+ fmgrConfigReplaceID=$1; fmgrConfigReplaceCfgFile=$3; fmgrConfigReplaceOrigFile=$4
+ configReplace "$fmgrConfigReplaceCfgFile" "$fmgrConfigReplaceRegex" "$fmgrConfigReplaceValue"
+ ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$fmgrConfigReplaceID"`
+ if test $? != 0; then
+ echo "$progname: fmgrConfigReplace ci failed for \`$fmgrConfigReplaceFile'" >&2
+ (exit 1); return 1
+ fi
+ case $ci in
+ "") :;;
+ $lastUpdatedFile)
+ fmgrConfigReplaceChanged=true;;
+ *) echo "$progname: updated configuration saved as file \`$ci'" >&2
+ fmgrConfigReplaceChanged=true
+ lastUpdatedFile=$ci;;
+ esac
+ (exit 0); return 0
+}
+
+###############################################################################
+# setupDvipsPaper(paper)
+# rearranges config.ps to make paper the first paper definition
+#
+setupDvipsPaper()
+{
+ setupDvipsPaperChanged=false
+ setupDvipsPaperFile=config.ps
+ setupDvipsPaperDftPaper=$1
+
+ setupTmpDir
+ co=`tcfmgr --tmp $tmpdir --cmd co --file $setupDvipsPaperFile`
+ if test $? != 0; then
+ echo "$progname: setupDvipsPaper co failed for \`$setupDvipsPaperFile'" >&2
+ (exit 1); return 1
+ fi
+ set x $co; shift
+ setupDvipsPaperID=$1; setupDvipsPaperCfgFile=$3; setupDvipsPaperOrigFile=$4
+
+ ed "$setupDvipsPaperCfgFile" > /dev/null 2>&1 <<-eof
+ /@ /ka
+ \$a
+ @
+ .
+ /@ $setupDvipsPaperDftPaper /;/@ /-1m'a-1
+ \$d
+ w
+ q
+eof
+
+ ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$setupDvipsPaperID"`
+ if test $? != 0; then
+ echo "$progname: setupDvipsPaper ci failed for \`$setupDvipsPaperFile'" >&2
+ (exit 1); return 1
+ fi
+ case $ci in
+ "") :;;
+ $lastUpdatedFile)
+ setupDvipsPaperChanged=true;;
+ *) echo "$progname: updated configuration saved as file \`$ci'" >&2
+ setupDvipsPaperChanged=true
+ lastUpdatedFile=$ci;;
+ esac
+ (exit 0); return 0
+}
+
+###############################################################################
+# setupModesMfFile(void) - find modes.mf file (with caching)
+#
+setupModesMfFile()
+{
+ case $modesMfFile in
+ "")
+ modesMfFile=`tcfmgr --cmd find --file modes.mf`
+ ;;
+ *)
+ return
+ ;;
+ esac
+}
+
+###############################################################################
+# locateConfigPsFile(void) - find config.ps file (with caching)
+#
+locateConfigPsFile()
+{
+ case $configPsFile in
+ "")
+ configPsFile=`tcfmgr --cmd find --file config.ps`
+ ;;
+ *)
+ return
+ ;;
+ esac
+}
+
+###############################################################################
+# listMfModes(file) - list modes from modes.mf file
+#
+listMfModes()
+{
+ grep mode_def "$modesMfFile" |
+ sed -e "s/mode_def //" \
+ -e "s/ .*%[^ ]* / '/" \
+ -e "s/\$/' /" |
+ egrep -v "^(help|%)" | sort
+}
+
+###############################################################################
+# listDvipsPapers(void) - list paper definitions from config.ps
+#
+listDvipsPapers()
+{
+ grep '@ ' $configPsFile | sed "s/..//;s/ / '/;s/\$/' /"
+}
+
+###############################################################################
+# getFormatsForHyphen(void)
+# list all formats which have customizable hyphenation
+#
+getFormatsForHyphen()
+{
+ fmtutil --catcfg | awk '$3 != "-" {print $1}' | sort
+}
+
+###############################################################################
+# getRes(mode) - print resolution (both X and Y axis) to metafont mode
+#
+getRes()
+{
+ getResMode=$1
+ (
+ cd $tmpdir
+ cat >mftmp.mf <<-'eof'
+ let myexit = primitive_end_;
+ mode_setup;
+ string xdpi;
+ xdpi := decimal round pixels_per_inch;
+ message "XDPI = " & xdpi;
+ string ydpi;
+ ydpi := decimal round (pixels_per_inch * aspect_ratio);
+ message "YDPI = " & ydpi;
+ fontmaking := 0;
+ myexit;
+eof
+ mf '\mode='"$getResMode"'; \input ./mftmp' </dev/null \
+ | awk '$1 == "XDPI" || $1 == "YDPI" { print $3 }'
+ )
+}
+
+###############################################################################
+# checkElemInList(elem, list)
+# check if element exists in list
+###############################################################################
+checkElemInList()
+{
+ checkElemInListElem=$1; shift
+ checkElemInListFound=false
+ for checkElemInListIter
+ do
+ case "x$checkElemInListElem" in
+ x$checkElemInListIter)
+ checkElemInListFound=true
+ break
+ ;;
+ esac
+ done
+ case $checkElemInListFound in
+ true) (exit 0); return 0;;
+ esac
+ (exit 1); return 1
+}
+
+
+# show version information from the distribution, if we have any.
+showDistVersionInfo()
+{
+ # TeX Live file.
+ test -f $MT_TEXMFMAIN/../release-texlive.txt \
+ && sed 1q $MT_TEXMFMAIN/../release-texlive.txt
+
+ # no harm in continuing to look for the teTeX files.
+ test -f $MT_TEXMFMAIN/release-tetex-src.txt \
+ && "teTeX-src release: `cat $MT_TEXMFMAIN/release-tetex-src.txt`"
+ test -f $MT_TEXMFDIST/release-tetex-texmf.txt \
+ && "teTeX-texmf release: `cat $MT_TEXMFDIST/release-tetex-texmf.txt`"
+}
+
+#
+###############################################################################
+# tcBatch(args)
+# handle batch mode
+###############################################################################
+tcBatch()
+{
+ help="texconfig supports adjusting and updating many aspects of
+the TeX installation.
+
+Usage: $progname conf (show configuration information)
+ $progname dvipdfmx paper PAPER (dvipdfmx paper size)
+ $progname dvipdfm paper PAPER (dvipdfm paper size)
+ $progname dvips [OPTION...] (dvips options)
+ $progname faq (show teTeX faq)
+ $progname findprog PROG... (show locations of PROGs, a la which)
+ $progname font vardir DIR
+ $progname font ro
+ $progname font rw
+ $progname formats (edit fmtutil.cnf)
+ $progname help (or --help; show this help)
+ $progname hyphen FORMAT (edit hyphenation config for FORMAT)
+ $progname init [FORMAT]... (rebuild FORMATs, or all formats
+ plus run texlinks and updmap)
+ $progname mode MODE (set Metafont MODE)
+ $progname paper PAPER (set default paper size to PAPER)
+ $progname pdftex [OPTION]... (pdftex options)
+ $progname rehash (rebuild ls-R files with mktexlsr)
+ $progname version (or --version; show version info)
+ $progname xdvi paper PAPER (xdvi paper size)
+
+Get more help with:
+ $progname dvipdfmx
+ $progname dvipdfm
+ $progname dvips
+ $progname font
+ $progname hyphen
+ $progname mode
+ $progname paper
+ $progname pdftex
+ $progname xdvi
+
+See http://tug.org/texlive/ for other documentation, etc.
+Report bugs to <tex-k@tug.org>."
+
+ case $1 in
+ # texconfig conf
+ conf|confall)
+ setupTexmfmain
+ setupTexmfdist
+ echo '=========================== version information =========================='
+ showDistVersionInfo
+ echo
+ echo '==================== binaries found by searching $PATH ==================='
+ echo "PATH=$PATH"
+ echoLocateBinary kpsewhich updmap fmtutil texconfig tex pdftex mktexpk dvips dvipdfm
+ echo
+ echo '=========================== active config files =========================='
+ echoLocateCfgfile texmf.cnf updmap.cfg fmtutil.cnf config.ps mktex.cnf XDvi pdftexconfig.tex config | sort -k 2
+ echo
+ echo '============================= font map files ============================='
+ for m in psfonts.map pdftex.map ps2pk.map dvipdfm.map; do
+ echo "$m: `kpsewhich $m`"
+ done
+ echo
+ echo '=========================== kpathsea variables ==========================='
+ echoShowKpseVariable TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG TEXMFVAR TEXMFCONFIG TEXMFHOME VARTEXFONTS TEXMF SYSTEXMF TEXMFDBS WEB2C TEXPSHEADERS TEXCONFIG ENCFONTS TEXFONTMAPS
+
+ echo
+ echo '==== kpathsea variables from environment only (ok if no output here) ===='
+ echoShowVariable $envVars
+ ;;
+
+ # texconfig dvipdfm
+ dvipdfm)
+ help="Usage: $progname dvipdfm paper PAPER
+
+Valid PAPER settings:
+ letter legal ledger tabloid a4 a3"
+ case $2 in
+ # texconfig dvipdfm paper
+ paper-list)
+ for p in letter legal ledger tabloid a4 a3; do echo $p; done
+ ;;
+ paper)
+ case $3 in
+ letter|legal|ledger|tabloid|a4|a3)
+ fmgrConfigReplace config '^p' "p $3";;
+ "") echo "$help" >&2; rc=1;;
+ *)
+ echo "$progname: unknown PAPER \`$3' given as argument for \`$progname dvipdfm paper'" >&2
+ echo "$progname: try \`$progname dvipdfm paper' for help" >&2
+ rc=1 ;;
+ esac ;;
+ # texconfig dvipdfm ""
+ "")
+ echo "$help" >&2; rc=1 ;;
+ # texconfig dvipdfm <unknown>
+ *)
+ echo "$progname: unknown option \`$2' given as argument for \`$progname dvipdfm'" >&2
+ echo "$progname: try \`$progname dvipdfm' for help" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+
+ # texconfig dvipdfmx
+ dvipdfmx)
+ help="Usage: $progname dvipdfmx paper PAPER
+
+Valid PAPER settings:
+ letter legal ledger tabloid a4 a3"
+ case $2 in
+ # texconfig dvipdfmx paper
+ paper-list)
+ for p in letter legal ledger tabloid a4 a3; do echo $p; done
+ ;;
+ paper)
+ case $3 in
+ letter|legal|ledger|tabloid|a4|a3)
+ fmgrConfigReplace dvipdfmx.cfg '^p' "p $3";;
+ "") echo "$help" >&2; rc=1;;
+ *)
+ echo "$progname: unknown PAPER \`$3' given as argument for \`$progname dvipdfmx paper'" >&2
+ echo "$progname: try \`$progname dvipdfmx paper' for help" >&2
+ rc=1 ;;
+ esac ;;
+ # texconfig dvipdfmx ""
+ "")
+ echo "$help" >&2; rc=1 ;;
+ # texconfig dvipdfmx <unknown>
+ *)
+ echo "$progname: unknown option \`$2' given as argument for \`$progname dvipdfmx'" >&2
+ echo "$progname: try \`$progname dvipdfmx' for help" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+
+ # texconfig dvips
+ dvips)
+ shift
+ help="Usage: $progname dvips add PRINTER
+ $progname dvips del PRINTER
+ $progname dvips paper PAPER
+ $progname dvips [-P PRINTER] mode MODE
+ $progname dvips [-P PRINTER] offset OFFSET
+ $progname dvips [-P PRINTER] printcmd CMD"
+ case $1 in
+ -P)
+ case $2 in
+ "")
+ echo "$progname: missing arg for parameter -P" >&2
+ rc=1; (exit $rc); return $rc
+ ;;
+ *)
+ otherPrinter=true
+ otherPrinterName=$2
+ otherPrinterFile=`kpsewhich -format='dvips config' "config.$otherPrinterName"`
+ case $otherPrinterFile in
+ "")
+ echo "$progname: configuration file \`config.$otherPrinterName' for printer \`$otherPrinterName' not found" >&2
+ rc=1; (exit $rc); return $rc
+ ;;
+ *) shift; shift;;
+ esac
+ ;;
+ esac
+ ;;
+ *)
+ otherPrinter=false
+ ;;
+ esac
+ case $otherPrinter in
+ true)
+ tcBatchDvipsPrinter=$otherPrinterName
+ moreFmgrArgs="--reldir dvips/config --infile $otherPrinterFile"
+ ;;
+ *)
+ tcBatchDvipsPrinter=ps
+ ;;
+ esac
+ case $1 in
+ add)
+ case $2 in
+ "")
+ echo "Usage: $progname dvips add PRINTER" >&2
+ rc=1
+ ;;
+ *)
+ printerName=$2
+ pFile=`kpsewhich -format='dvips config' "config.$printerName"`
+ case $pFile in
+ "")
+ setupTmpDir
+ tcfRet=`tcfmgr --emptyinfile --reldir dvips/config --cmd co --tmp $tmpdir --file "config.$printerName"`
+ if test $? != 0; then
+ echo "$progname: failed to add new configuration file \`config.$printerName'" >&2
+ rc=1
+ else
+ set x $tcfRet; shift
+ tcBatchDvipsAddID=$1; tcBatchDvipsAddFile=$3
+ echo "% file config.$printerName; added by texconfig" > "$tcBatchDvipsAddFile"
+ tcfRet=`tcfmgr --tmp $tmpdir --id "$tcBatchDvipsAddID" --cmd ci`
+ if test $? != 0; then
+ echo "$progname: failed to add new configuration file \`config.$printerName'" >&2
+ rc=1
+ else
+ echo "$progname: file $tcfRet added" >&2
+ fi
+ fi
+ ;;
+ *)
+ echo "$progname: configuration file for printer \`$printerName' already exists (\`$pFile')" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ del)
+ case $2 in
+ "")
+ echo "Usage: $progname dvips del PRINTER" >&2
+ rc=1
+ ;;
+ *)
+ printerName=$2
+ pFile=`kpsewhich -format='dvips config' "config.$printerName"`
+ case $pFile in
+ "")
+ echo "$progname: configuration file for printer \`$printerName' (config.$printerName) not found" >&2
+ rc=1
+ ;;
+ *)
+ if rm "$pFile"; then
+ echo "$progname: file \`$pFile' removed" >&2
+ else
+ echo "$progname: failed to remove file \`$pFile'" >&2
+ rc=1
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ paper-list)
+ locateConfigPsFile
+ listDvipsPapers
+ ;;
+ paper)
+ case $2 in
+ "")
+ echo "Usage: $progname dvips paper PAPER" >&2
+ echo >&2; echo "Valid PAPER settings:" >&2
+ locateConfigPsFile
+ listDvipsPapers | sed 's@ .*@@; s@^@ @' | myFmt
+ rc=1
+ ;;
+ *)
+ tcBatchDvipsPaper=$2
+ locateConfigPsFile
+ case "$configPsFile" in
+ "")
+ echo "$progname: file config.ps not found" >&2; rc=1
+ ;;
+ *)
+ if grep "@ $tcBatchDvipsPaper " $configPsFile >/dev/null 2>&1; then
+ setupDvipsPaper "$tcBatchDvipsPaper"
+ else
+ echo "$progname: paper \`$tcBatchDvipsPaper' not found in file \`$configPsFile'" >&2; rc=1
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ mode)
+ case $2 in
+ "")
+ echo "Usage: $progname dvips mode MODE
+
+Valid MODE settings:"
+ setupModesMfFile
+ listMfModes | sed 's@ .*@@; s@^@ @' | myFmt
+ rc=1
+ ;;
+ *)
+ tcBatchDvipsMode=$2
+ setupTmpDir
+ setupModesMfFile
+ if checkElemInList "$tcBatchDvipsMode" `listMfModes | sed 's@ .*@@'`; then
+ set x `getRes "$tcBatchDvipsMode"`; shift
+ resX=$1; resY=$2
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^M' "M $tcBatchDvipsMode"
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^D' "D $resX"
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^X' "X $resX"
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^Y' "Y $resY"
+ else
+ echo "$progname: unknown MODE \`$tcBatchDvipsMode' given as argument for \`$progname dvips mode'" >&2
+ echo "$progname: try \`$progname dvips mode' for help" >&2
+ rc=1
+ fi
+ ;;
+ esac
+ ;;
+ offset)
+ offset=$2
+ case $offset in
+ "")
+ echo "Usage: $progname dvips offset OFFSET"
+ rc=1
+ ;;
+ *)
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^O' "O $offset"
+ esac
+ ;;
+ printcmd)
+ printcmd=$2
+ case $printcmd in
+ "")
+ echo "Usage: $progname dvips printcmd CMD"
+ rc=1
+ ;;
+ -)
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' o
+ ;;
+ *)
+ fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' "o |$printcmd"
+ ;;
+ esac
+ ;;
+ "")
+ echo "$help" >&2; rc=1
+ ;;
+ *)
+ echo "$progname: unknown option \`$1' given as argument for \`$progname dvips'" >&2
+ echo "$progname: try \`$progname dvips' for help" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+
+ faq)
+ setupTexmfmain
+ if test -f $MT_TEXMFMAIN/doc/tetex/teTeX-FAQ; then
+ <$MT_TEXMFMAIN/doc/tetex/teTeX-FAQ eval ${PAGER-more}
+ else
+ echo "$progname: faq not found (usually in \$TEXMFMAIN/doc/tetex/teTeX-FAQ)" >&2
+ rc=1
+ fi
+ ;;
+
+ findprog)
+ shift
+ ELB_PATH_ONLY=1 echoLocateBinary "$@"
+ ;;
+
+ # handle "texconfig font"
+ font)
+ help="Usage: $progname font vardir DIR
+ $progname font ro
+ $progname font rw
+
+The vardir option changes the VARTEXFONTS variable in the texmf.cnf file.
+
+The rw option makes the VARTEXFONTS directory (and subtrees pk, tfm,
+source) world writable and sets the features appendonlydir:varfonts
+in mktex.cnf.
+
+The ro option makes the VARTEXFONTS directory (and subtrees pk, tfm,
+source) writable for the owner only and sets the feature texmfvar in
+mktex.cnf.
+
+For more information about these \`features', consult the teTeX manual
+(e.g. by running \`texdoc TETEXDOC')."
+
+ case $2 in
+ vardir)
+ case $3 in
+ "")
+ echo "$help" >&2
+ rc=1
+ ;;
+ *)
+ tcBatchFontVardir=$3
+ tfc=`kpsewhich texmf.cnf`
+ if test -n "$tfc"; then
+ if test -w "$tfc"; then
+ configReplace "$tfc" '^VARTEXFONTS' "VARTEXFONTS = $tcBatchFontVardir"
+ else
+ echo "$progname: setting up vardir failed. Reason: no permission to write file \`$tfc'" >&2
+ rc=1
+ fi
+ else
+ echo "$progname: setting up vardir failed. Reason: failed to find file texmf.cnf" >&2
+ rc=1
+ fi
+ ;;
+ esac
+ ;;
+ rw)
+ MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS`
+ if test -z "$MT_VARTEXFONTS"; then
+ echo "$progname: failed to set \`font rw'; reason: could not determine VARTEXFONTS variable." >&2; rc=1
+ return
+ fi
+ test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS"
+ if test ! -d "$MT_VARTEXFONTS"; then
+ echo "$progname: failed to set \`font rw'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1
+ return
+ fi
+ chmod 1777 "$MT_VARTEXFONTS" || {
+ echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1
+ return;
+ }
+ (
+ cd "$MT_VARTEXFONTS" || exit
+ echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2
+ for d in pk tfm source; do
+ test -d "$d" && find $d -type d -exec chmod 1777 '{}' \;
+ done
+ echo "$progname: all permissions set." >&2
+ )
+ setupTmpDir
+ fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=appendonlydir:varfonts}"
+ ;;
+ ro)
+ MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS`
+ if test -z "$MT_VARTEXFONTS"; then
+ echo "$progname: failed to set \`font ro'; reason: could not determine VARTEXFONTS variable." >&2; rc=1
+ return
+ fi
+ test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS"
+ if test ! -d "$MT_VARTEXFONTS"; then
+ echo "$progname: failed to set \`font ro'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1
+ return
+ fi
+ chmod 755 "$MT_VARTEXFONTS" || {
+ echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1
+ return;
+ }
+ (
+ cd "$MT_VARTEXFONTS" || exit
+ echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2
+ for d in pk tfm source; do
+ test -d "$d" && find "$d" -type d -exec chmod 755 '{}' \;
+ done
+ echo "$progname: all permissions set." >&2
+ )
+ setupTmpDir
+ fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=texmfvar}"
+ ;;
+ "") echo "$help" >&2; rc=1;;
+ *) echo "$progname: unknown option \`$2' given as argument for \`$progname font'" >&2
+ echo "$progname: try \`$progname font' for help" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+
+ formats)
+ cat >&2 <<EOM
+texconfig formats is no longer supported, because manual edits of
+fmtutil.cnf will be overwritten by the new TeX Live package manager,
+tlmgr, which regenerates that file as needed upon package changes.
+Thus, to add or remove formats, the recommended method is to use tlmgr
+to add or remove the appropriate package.
+
+If you need to make manual additions, you can edit the file
+fmtutil-local.cnf under TEXMFLOCAL. Further information with
+tlmgr --help and at http://tug.org/texlive/tlmgr.html.
+
+Exiting.
+EOM
+ exit 1 # but leave the real code for posterity
+
+ setupTmpDir
+ echo "$progname: analyzing old configuration..." >&2
+ fmtutil --catcfg > $tmpdir/pre
+ fmtutil --edit
+ echo "$progname: analyzing new configuration..." >&2
+ fmtutil --catcfg > $tmpdir/post
+
+ if cmp $tmpdir/pre $tmpdir/post >/dev/null 2>&1; then
+ echo "$progname: no new/updated formats available ..." >&2
+ else
+ echo "$progname: updating formats ..." >&2
+ comm -13 $tmpdir/pre $tmpdir/post > $tmpdir/addOrChange
+ for i in `awk '{print $1}' $tmpdir/addOrChange`; do
+ fmtutil --byfmt "$i" || rc=1
+ done
+ texlinks --multiplatform || rc=1
+ fi
+ ;;
+
+ help|--help|-h)
+ echo "$help"
+ ;;
+
+ # "hyphen FORMAT"
+ hyphen)
+ cat >&2 <<EOM
+texconfig hyphen is no longer supported, because manual edits of
+language.dat (or language.def) will be overwritten by the new TeX Live
+package manager, tlmgr, which regenerates those configuration files as
+needed upon package changes. Thus, to add or remove hyphenation
+patterns, the recommended method is to use tlmgr to add or remove the
+appropriate package.
+
+If you need to make manual additions, you can edit the files
+language-local.dat and language-local.def under TEXMFLOCAL. Further
+information with tlmgr --help and at http://tug.org/texlive/tlmgr.html.
+
+Exiting.
+EOM
+ exit 1 # but leave the real code for posterity
+
+ tcBatchHyphenFormat=$2
+ formatsForHyphen=`getFormatsForHyphen`
+ formatsForHyphenFmt=`echo "$formatsForHyphen" | myFmt | sed 's@^@ @'`
+ help="Usage: $progname hyphen FORMAT
+
+Valid FORMATs are:
+$formatsForHyphenFmt"
+ case $tcBatchHyphenFormat in
+ "")
+ echo "$help" >&2; rc=1
+ ;;
+ *)
+ if checkElemInList "$tcBatchHyphenFormat" $formatsForHyphen; then
+
+ tcBatchHyphenFile=`fmtutil --showhyphen "$tcBatchHyphenFormat"`
+ case $tcBatchHyphenFile in
+ "")
+ echo "$progname: could not find hyphen setup file for format \`$tcBatchHyphenFormat'" >&2
+ rc=1
+ return
+ ;;
+ esac
+
+ getRelDir "$tcBatchHyphenFile"
+ case $relPart in
+ "")
+ # edit tcBatchHyphenFile directly
+ tcBatchHFID=
+ setupTmpDir
+ tcBatchHFEdit=$tcBatchHyphenFile
+ tcBatchHFOrig=$tmpdir/hforig
+ cp "$tcBatchHyphenFile" "$tcBatchHFOrig"
+ ;;
+ *)
+ # use tcfmgr
+ tcBatchHyphenFileBasename=`echo "$tcBatchHyphenFile" | sed 's@.*/@@'`
+ setupTmpDir
+ co=`tcfmgr --tmp $tmpdir --cmd co --file "$tcBatchHyphenFileBasename" --reldir "$relPart" --infile "$tcBatchHyphenFile"`
+ if test $? != 0; then
+ echo "$progname: failed to check out file \`$tcBatchHyphenFile'" >&2
+ rc=1
+ return 1
+ else
+ set x $co; shift
+ tcBatchHFID=$1; tcBatchHFEdit=$3; tcBatchHFOrig=$4
+ fi
+ ;;
+ esac
+ ${VISUAL-${EDITOR-vi}} "$tcBatchHFEdit"
+ if cmp "$tcBatchHFEdit" "$tcBatchHFOrig" >/dev/null 2>&1; then
+ echo "$progname: configuration unchanged." >&2
+ else
+ case $tcBatchHFID in
+ "")
+ tcBatchHFOut=$tcBatchHFEdit
+ echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2
+ lastUpdatedFile=$ci
+ ;;
+ *)
+ ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$tcBatchHFID"`
+ if test $? != 0; then
+ echo "$progname: failed to check in file \`$tcBatchHyphenFileBasename'" >&2
+ rc=1
+ return
+ else
+ tcBatchHFOut=$ci
+ echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2
+ lastUpdatedFile=$ci
+ fi
+ ;;
+ esac
+ fmtutil --byhyphen "$tcBatchHFOut"
+ fi
+ else
+ echo "$progname: invalid format \`$tcBatchHyphenFormat' specified as argument for \`$progname hyphen'" >&2
+ echo "$progname: for getting help, try \`$progname hyphen'" >&2
+ rc=1
+ fi
+ ;;
+ esac
+ ;;
+
+ hyphen-list)
+ getFormatsForHyphen
+ ;;
+
+ init)
+ if test -n "$texconfig_sys"; then # set by texconfig-sys
+ fmtutil=fmtutil-sys
+ updmap=updmap-sys
+ else
+ fmtutil=fmtutil
+ updmap=updmap
+ fi
+
+ case $2 in
+ "")
+ if $fmtutil --all \
+ && texlinks --multiplatform \
+ && $updmap; then
+ :
+ else
+ rc=1
+ fi
+ ;;
+ *)
+ shift 1
+ for i in "$@"; do
+ $fmtutil --byfmt "$i" || rc=1
+ done
+ ;;
+ esac
+ ;;
+
+ mode-list)
+ setupModesMfFile
+ listMfModes
+ ;;
+
+ mode)
+ case $2 in
+ "")
+ echo "Usage: $progname mode MODE
+
+Valid MODE settings:"
+ setupModesMfFile
+ listMfModes | sed 's@ .*@@; s@^@ @' | myFmt
+ rc=1
+ ;;
+ *)
+ tcBatchMode=$2
+ setupModesMfFile
+ if checkElemInList $tcBatchMode `listMfModes | sed 's@ .*@@'`; then
+
+ # modify mktex.cnf
+ setupTmpDir
+ fmgrConfigReplace mktex.cnf '^: ..MODE=' ": \${MODE=$tcBatchMode}"
+ set x `getRes "$tcBatchMode"`; shift
+ tcBatchRes=$1
+ fmgrConfigReplace mktex.cnf '^: ..BDPI=' ": \${BDPI=$tcBatchRes}"
+
+ if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then
+ tcBatch dvips mode "$tcBatchMode"
+ fi
+ if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then
+ tcBatch pdftex mode "$tcBatchMode"
+ fi
+ else
+ echo "$progname: unknown mode \`$tcBatchMode' specified as argument for \`$progname mode'" >&2; rc=1
+ fi
+ ;;
+ esac
+ ;;
+
+ paper)
+ help="Usage: $progname paper PAPER
+
+Valid PAPER settings:
+ letter a4"
+
+ p=$2; pXdvi=$2; pDvips=$2
+ case $2 in
+ letter)
+ pXdvi=us;;
+ a4)
+ pXdvi=a4;;
+ "") echo "$help" >&2; rc=1; return;;
+ *)
+ echo "$progname: unknown PAPER \`$2' given as argument for \`$progname paper'" >&2
+ echo "$progname: try \`$progname paper' for help" >&2
+ rc=1
+ return;;
+ esac
+ if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then
+ tcBatch dvips paper $pDvips
+ fi
+ if checkForBinary dvipdfm >/dev/null && tcfmgr --cmd find --file config >/dev/null 2>&1; then
+ tcBatch dvipdfm paper $p
+ fi
+ if checkForBinary dvipdfmx >/dev/null && tcfmgr --cmd find --file dvipdfmx.cfg >/dev/null 2>&1; then
+ tcBatch dvipdfmx paper $p
+ fi
+ if checkForBinary xdvi >/dev/null && tcfmgr --cmd find --file XDvi >/dev/null 2>&1; then
+ tcBatch xdvi paper $pXdvi
+ fi
+ if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then
+ tcBatch pdftex paper $p
+ fi
+ ;;
+
+ pdftex)
+ help="Usage: $progname pdftex paper PAPER
+
+Valid PAPER settings:
+ a4 letter"
+ case $2 in
+
+ mode)
+ case $3 in
+ "")
+ echo "Usage: $progname pdftex mode MODE"
+ rc=1
+ ;;
+ *)
+ tcBatchPdftexMode=$3
+ setupTmpDir
+ setupModesMfFile
+ if checkElemInList "$tcBatchPdftexMode" `listMfModes | sed 's@ .*@@'`; then
+ set x `getRes "$tcBatchPdftexMode"`; shift
+ fmgrConfigReplace pdftexconfig.tex 'pdfpkresolution' "\\pdfpkresolution=$1"
+ if $fmgrConfigReplaceChanged; then
+ fmtutil --refresh
+ fi
+ else
+ echo "$progname: unknown MODE \`$tcBatchPdftexMode' given as argument for \`$progname pdftex mode'" >&2
+ rc=1
+ fi
+ ;;
+ esac
+ ;;
+
+ paper)
+ case $3 in
+ letter)
+ w="8.5 true in"; h="11 true in"
+ setupTmpDir
+ fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w"
+ wChanged=$fmgrConfigReplaceChanged
+ fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h"
+ if $wChanged || $fmgrConfigReplaceChanged; then
+ fmtutil --refresh
+ fi
+ ;;
+ a4)
+ w="210 true mm"; h="297 true mm"
+ fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w"
+ wChanged=$fmgrConfigReplaceChanged
+ fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h"
+ if $wChanged || $fmgrConfigReplaceChanged; then
+ fmtutil --refresh
+ fi
+ ;;
+ "") echo "$help" >&2; rc=1;;
+ *)
+ echo "$progname: unknown PAPER \`$3' given as argument for \`$progname pdftex paper'" >&2
+ echo "$progname: try \`$progname pdftex paper' for help" >&2
+ rc=1 ;;
+ esac ;;
+ "")
+ echo "$help" >&2; rc=1;;
+ *)
+ echo "$progname: unknown option \`$2' given as argument for \`$progname pdftex'" >&2
+ echo "$progname: try \`$progname pdftex' for help" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+
+ rehash)
+ mktexlsr
+ ;;
+
+ #
+ version|--version)
+ echo "$progname version $version"
+ setupTexmfmain
+ setupTexmfdist
+ showDistVersionInfo
+ (exit 0); exit 0;;
+
+ # handle "xdvi paper PAPER"
+ xdvi)
+ tcBatchXdviPapers='us "8.5x11"
+usr "11x8.5"
+legal "8.5x14"
+foolscap "13.5x17.0"
+a1 "59.4x84.0cm"
+a2 "42.0x59.4cm"
+a3 "29.7x42.0cm"
+a4 "21.0x29.7cm"
+a5 "14.85x21.0cm"
+a6 "10.5x14.85cm"
+a7 "7.42x10.5cm"
+a1r "84.0x59.4cm"
+a2r "59.4x42.0cm"
+a3r "42.0x29.7cm"
+a4r "29.7x21.0cm"
+a5r "21.0x14.85cm"
+a6r "14.85x10.5cm"
+a7r "10.5x7.42cm"
+b1 "70.6x100.0cm"
+b2 "50.0x70.6cm"
+b3 "35.3x50.0cm"
+b4 "25.0x35.3cm"
+b5 "17.6x25.0cm"
+b6 "13.5x17.6cm"
+b7 "8.8x13.5cm"
+b1r "100.0x70.6cm"
+b2r "70.6x50.0cm"
+b3r "50.0x35.3cm"
+b4r "35.3x25.0cm"
+b5r "25.0x17.6cm"
+b6r "17.6x13.5cm"
+b7r "13.5x8.8cm"
+c1 "64.8x91.6cm"
+c2 "45.8x64.8cm"
+c3 "32.4x45.8cm"
+c4 "22.9x32.4cm"
+c5 "16.2x22.9cm"
+c6 "11.46x16.2cm"
+c7 "8.1x11.46cm"
+c1r "91.6x64.8cm"
+c2r "64.8x45.8cm"
+c3r "45.8x32.4cm"
+c4r "32.4x22.9cm"
+c5r "22.9x16.2cm"
+c6r "16.2x11.46cm"
+c7r "11.46x8.1cm"'
+ help="Usage: $progname xdvi paper PAPER
+
+Valid PAPER settings:
+ a1 a1r a2 a2r a3 a3r a4 a4r a5 a5r a6 a6r a7 a7r
+ b1 b1r b2 b2r b3 b3r b4 b4r b5 b5r b6 b6r b7 b7r
+ c1 c1r c2 c2r c3 c3r c4 c4r c5 c5r c6 c6r c7 c7r
+ foolscap legal us usr"
+ case $2 in
+ paper-list)
+ echo "$tcBatchXdviPapers"
+ ;;
+ paper)
+ case $3 in
+ a1|a1r|a2|a2r|a3|a3r|a4|a4r|a5|a5r|a6|a6r|a7|a7r|b1|b1r|b2|b2r|b3|b3r|b4|b4r|b5|b5r|b6|b6r|b7|b7r|c1|c1r|c2|c2r|c3|c3r|c4|c4r|c5|c5r|c6|c6r|c7|c7r|foolscap|legal|us|usr)
+ fmgrConfigReplace XDvi paper: "*paper: $3"
+ ;;
+ "") echo "$help" >&2; rc=1;;
+ *)
+ echo "$progname: unknown PAPER \`$3' given as argument for \`$progname xdvi paper'" >&2
+ echo "$progname: try \`$progname xdvi paper' for help" >&2
+ rc=1 ;;
+ esac ;;
+ "")
+ echo "$help" >&2; rc=1;;
+ *)
+ echo "$progname: unknown option \`$2' given as argument for \`$progname xdvi'" >&2
+ echo "$progname: try \`$progname xdvi' for help" >&2
+ rc=1
+ ;;
+ esac
+ ;;
+ *)
+ echo "$progname: unknown option \`$1' given as argument for \`$progname'" >&2
+ echo "$progname: try \`$progname help' for help" >&2
+ rc=1
+ esac
+}
+
+###############################################################################
+# tcInteractive(void)
+# handle interactive mode
+###############################################################################
+tcInteractive()
+{
+ texconfig-dialog
+}
+
+###############################################################################
+# main()
+###############################################################################
+rc=0
+case $# in
+ 0) tcInteractive;;
+ *) tcBatch "$@";;
+esac
+
+cleanup $rc
diff --git a/Master/bin/i386-kfreebsd/texconfig-dialog b/Master/bin/i386-kfreebsd/texconfig-dialog
new file mode 100755
index 00000000000..8ccda930dd7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texconfig-dialog
@@ -0,0 +1,495 @@
+#!/bin/sh
+
+# TeX-Config version 3.0
+# Thomas Esser, te@dbs.uni-hannover.de. Public domain.
+
+# invoke the right shell:
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+# the version string
+version=1184605103 # seconds since `00:00:00 1970-01-01 UTC'
+ # date '+%s' (with GNU date)
+
+: ${PAGER=more}
+progname=texconfig-dialog
+tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tcdtmp.$$
+log=$tmpdir/log
+tmpmenu=$tmpdir/tmpmenu
+needsCleanup=false
+
+###############################################################################
+# cleanup()
+# clean up the temp area and exit with proper exit status
+###############################################################################
+cleanup()
+{
+ rc=$1
+ $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
+ && { cd / && rm -rf "$tmpdir"; }
+ termCtl reset
+ (exit $rc); exit $rc
+}
+
+###############################################################################
+# setupTmpDir()
+# set up a temp directory and a trap to remove it
+###############################################################################
+setupTmpDir()
+{
+ case $needsCleanup in
+ true) return;;
+ esac
+
+ trap 'cleanup 1' 1 2 3 7 13 15
+ needsCleanup=true
+ (umask 077; mkdir "$tmpdir") \
+ || abort "could not create directory \`$tmpdir'"
+}
+
+###############################################################################
+# abort(errmsg)
+# print `errmsg' to stderr and exit with error code 1
+###############################################################################
+abort()
+{
+ echo "$progname: $1." >&2
+ cleanup 1
+}
+
+logexec()
+{
+ (echo; echo ">>> Executing \`$@' <<<") >> $log
+ "$@" 2>&1 | tee -a $log
+}
+
+###############################################################################
+# runDialog(args, ...)
+# execute the right dialog program with the right default parameters
+###############################################################################
+runDialog()
+{
+ termCtl clear
+ if test -n "$DIALOG_PROG"; then
+ $DIALOG_PROG --title "TeX setup utility" ${1+"$@"}
+ runDialogRc=$?
+ else
+ TERM=$DIALOG_TERM TERMINFO=$DIALOG_TERMINFO \
+ tcdialog --title "TeX setup utility" ${1+"$@"}
+ runDialogRc=$?
+ fi
+ termCtl clear
+ (exit $runDialogRc)
+ return $runDialogRc
+}
+
+###############################################################################
+# findDialog(void)
+# Some systems have their own dialog. Use it then and do not use
+# faked TERM and TERMINFO variables when calling that dialog.
+###############################################################################
+findDialog()
+{
+ for bin in whiptail dialog
+ do
+ binLoc=`texconfig findprog $bin`
+ case $binLoc in
+ "") DIALOG_PROG="";;
+ *) DIALOG_PROG=$binLoc; break;;
+ esac
+ done
+ case $DIALOG_PROG in
+ "")
+ : ${DIALOG_TERMINFO=$TEXMFMAIN/texconfig}
+ : ${DIALOG_TERM=generic}
+ esac
+}
+
+###############################################################################
+# mktexdir(args)
+# call mktexdir script, disable all features (to prevent sticky directories)
+###############################################################################
+mktexdir()
+{
+ MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2
+}
+
+###############################################################################
+# termCtl(arg)
+# some convenience utilities for terminal control
+###############################################################################
+termCtl()
+{
+ case $1 in
+ clear)
+ test -n "$NO_CLEAR" && return
+ tty >/dev/null 2>&1 && clear
+ ;;
+ reset)
+ test -n "$NO_CLEAR" && return
+ reset 2>/dev/null
+ stty sane 2>/dev/null
+ reset 2>/dev/null
+ termCtl clear
+ ;;
+ readln)
+ echo
+ echo "press return to continue..."
+ read a
+ ;;
+ esac
+}
+
+###############################################################################
+# menuMain(void)
+# the main menu
+###############################################################################
+menuMain()
+{
+ cat <<-'eof'
+ The interactive texconfig utility will be started now. Make sure
+ your screen has at least 24 rows and 80 columns. If texconfig
+ crashes now, you can still set up your teTeX system using the
+ batch mode of texconfig. Try 'texconfig help' to get a list
+ of options.
+
+ The interactive mode works best with a real vt100 terminal or
+ inside an xterm window.
+eof
+ termCtl readln
+
+ while :; do
+ logMessage='view logfile'
+
+ runDialog \
+ --menu "
+Hint: all output of external commands (e.g. tex) is logged into
+a file. You can look at this file using "LOG". If cursor keys make
+trouble, you may have more luck with +/- and TAB.
+" \
+ 23 80 14 \
+ EXIT 'exit' \
+ PAPER 'default paper: A4 or letter (us)' \
+ MODE 'default metafont mode and resolution' \
+ REHASH 'rebuild filename databases' \
+ FORMATS 'edit format definitions' \
+ HYPHENATION 'customize hyphenation' \
+ DVIPS 'dvips configuration' \
+ FAQ 'view frequently asked questions + answers' \
+ CONF 'show configuration' \
+ LOG "$logMessage" \
+ 2>"$tmpmenu" || break
+
+ case `cat "$tmpmenu"` in
+ EXIT)
+ break
+ ;;
+ PAPER)
+ menuPaper
+ ;;
+ MODE)
+ menuMode
+ ;;
+ REHASH)
+ logexec texconfig rehash
+ termCtl readln
+ ;;
+ FORMATS)
+ texconfig formats
+ termCtl readln
+ ;;
+ HYPHENATION)
+ menuHyphenation
+ ;;
+ DVIPS)
+ menuDvips
+ ;;
+ FAQ)
+ texconfig faq
+ termCtl readln
+ ;;
+ CONF)
+ logexec texconfig conf
+ termCtl readln
+ ;;
+ LOG)
+ <"$log" eval $PAGER
+ termCtl readln
+ ;;
+ esac
+ done
+}
+
+menuGetMode()
+{
+ # we need eval to get the command line right... :-(
+ eval \
+ runDialog \
+ --menu \""
+Chosse a mode to be used when metafont generates font bitmaps. The resolution is the most important point, but there might
+be differences between modes of the same resolution. See the comments in the file modes.mf for more details.
+\"" \
+ 23 80 14 \
+ `texconfig mode-list` 2>"$tmpmenu"
+}
+
+menuMode()
+{
+ menuGetMode
+ mode=`cat "$tmpmenu"`
+
+ if test -n "$mode"; then
+ logexec texconfig mode "$mode"
+ termCtl readln
+ fi
+}
+
+menuDvips()
+{
+ menuDvipsDest=ps
+
+ while :; do
+ case $menuDvipsDest in
+ ps)
+ menuDvipsPrinterOpt=
+ menuDvipsMsg="
+dvips GLOBAL section. Define the most common default settings (config.ps).
+To define settings for a specific printer, first ADD a printer definition,
+then CHANGE it.
+"
+ ;;
+ *)
+ menuDvipsPrinterOpt="-P $menuDvipsDest"
+ menuDvipsMsg="
+dvips settings for printer $menuDvipsDest (config.$menuDvipsDest). Define
+local settings for this printer. To switch back to global settings mode,
+select GLOBAL.
+"
+ ;;
+ esac
+
+ runDialog \
+ --menu "$menuDvipsMsg
+You can use dvips for non PostScript printers, if you can setup your
+printing system to convert PostScript to a format that your printer can
+handle. Maybe, you can use GhostScript to do the conversion (if your
+printer is supported)." \
+ 23 80 9 \
+ RETURN 'back to the main menu' \
+ DEST 'define default destination of the generated Postscript' \
+ MODE 'change metafont mode/resolution' \
+ OFFSET 'shift output by some offset' \
+ PAPER 'define the default paper' \
+ GLOBAL 'change global settings (config.ps)' \
+ CHANGE 'change printer settings (config.$PRINTER)' \
+ ADD 'add a printer configuration' \
+ DEL 'remove a printer configuration' \
+ 2>"$tmpmenu" || break
+
+ menuDvipsAns=`cat "$tmpmenu"`
+ case $menuDvipsAns in
+ RETURN)
+ break
+ ;;
+ DEST)
+ runDialog --inputbox "Enter the command to print.
+
+In general, you need a command like 'lpr' or 'lpr -Pfoo'.
+
+NOTE: If you just press return, printing will be disabled and the output saved to a file by default.
+" 23 80 2>"$tmpmenu"
+ if test $? = 0; then
+ menuDvipsAns=`cat "$tmpmenu"`
+ case $menuDvipsAns in
+ "")
+ menuDvipsPrintOpt=-
+ ;;
+ *)
+ menuDvipsPrintOpt=$menuDvipsAns
+ ;;
+ esac
+ logexec texconfig dvips $menuDvipsPrinterOpt printcmd "$menuDvipsPrintOpt"
+ termCtl readln
+ fi
+ ;;
+ MODE)
+ menuGetMode
+ mode=`cat "$tmpmenu"`
+
+ if test -n "$mode"; then
+ logexec texconfig dvips $menuDvipsPrinterOpt mode "$mode"
+ termCtl readln
+ fi
+ ;;
+ OFFSET)
+ runDialog --inputbox "Enter a dimension pair (a rightwards offset and a downwards
+offset), e.g. 2mm,-0.5in (right 2mm and up .5in):" 23 80 2>"$tmpmenu"; menuDvipsAns=`cat "$tmpmenu"`
+ case $menuDvipsAns in
+ "") : ;;
+ *)
+ logexec texconfig dvips $menuDvipsPrinterOpt offset "$menuDvipsAns"
+ termCtl readln
+ ;;
+ esac
+ ;;
+ PAPER)
+ eval runDialog \
+ --menu \'\\n\\nChoose the default papersize definition for dvips.\\n\\n\' \
+ 23 80 8 `texconfig dvips paper-list` \
+ 2>"$tmpmenu"
+ paper=`cat "$tmpmenu"`
+ if test -n "$paper"; then
+ logexec texconfig dvips paper "$paper"
+ termCtl readln
+ fi
+ ;;
+ GLOBAL)
+ menuDvipsDest=ps
+ ;;
+ CHANGE)
+ runDialog --inputbox "Printer name (for future settings of DEST / MODE / OFFSET)" 23 80 2>"$tmpmenu"
+ menuDvipsAns=`cat $tmpmenu`
+ case $menuDvipsAns in
+ "") : ;;
+ *) menuDvipsDest=$menuDvipsAns;;
+ esac
+ ;;
+ ADD)
+ runDialog --inputbox "Printer name (for printer to add)" 23 80 2>"$tmpmenu"
+ menuDvipsAns=`cat $tmpmenu`
+ case $menuDvipsAns in
+ "") : ;;
+ *)
+ logexec texconfig dvips add $menuDvipsAns
+ termCtl readln
+ ;;
+ esac
+ ;;
+ DEL)
+ runDialog --inputbox "Printer name (for printer to delete)" 23 80 2>"$tmpmenu"
+ menuDvipsAns=`cat $tmpmenu`
+ case $menuDvipsAns in
+ "") : ;;
+ *)
+ logexec texconfig dvips del $menuDvipsAns
+ termCtl readln
+ ;;
+ esac
+ ;;
+ esac
+ done
+}
+
+menuPaper()
+{
+ runDialog \
+ --menu "
+Select your default paper format.
+" \
+ 23 80 14 \
+ RETURN 'return to the main menu' \
+ A4 'ISO A4 (210x297mm)' \
+ LETTER 'US (8.5x11in)' 2>"$tmpmenu"
+
+ p=`cat "$tmpmenu"`
+ case $p in
+ A4)
+ logexec texconfig paper a4
+ termCtl readln
+ ;;
+ LETTER)
+ logexec texconfig paper letter
+ termCtl readln
+ ;;
+ esac
+}
+
+menuHyphenation()
+{
+ runDialog \
+ --menu "
+Choose format to set up hyphenation for.
+" \
+ 23 80 14 \
+ `texconfig hyphen-list | sed 's@\(.*\)@\1 \1@'` 2>"$tmpmenu"
+ p=`cat "$tmpmenu"`
+ case $p in
+ "")
+ return
+ ;;
+ *)
+ texconfig hyphen "$p"
+ termCtl readln
+ esac
+}
+
+# main()
+
+case $1 in
+ help|--help)
+ cat <<-eof
+ Usage: $progname [--help|--version]
+eof
+ exit 0
+ ;;
+ --version)
+ cat <<-eof
+ $progname version $version.
+eof
+ exit 0
+ ;;
+esac
+
+
+: ${TEXMFCONFIG=`kpsewhich -var-value=TEXMFCONFIG`}
+: ${TEXMFVAR=`kpsewhich -var-value=TEXMFVAR`}
+: ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`}
+export TEXMFCONFIG TEXMFVAR TEXMFMAIN
+
+setupTmpDir
+echo "$progname: started `date`" > $log
+findDialog
+
+test -d "$TEXMFCONFIG" \
+ || mktexdir "$TEXMFCONFIG" >/dev/null 2>&1 \
+ || echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) does not exist and cannot be created" >&2
+
+canWriteConfig=false
+if test -d "$TEXMFCONFIG"; then
+ if test -w "$TEXMFCONFIG"; then
+ canWriteConfig=true
+ else
+ echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) is not writable."
+ echo "$progname: configuration data cannot be changed." >&2
+ fi
+fi
+
+test -d "$TEXMFVAR" \
+ || mktexdir "$TEXMFVAR" >/dev/null 2>&1 \
+ || echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) does not exist and cannot be created" >&2
+
+canWriteVardata=false
+if test -d "$TEXMFVAR"; then
+ if test -w "$TEXMFVAR"; then
+ canWriteVardata=true
+ else
+ echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) is not writable."
+ echo "$progname: cached variable runtime data files cannot be written." >&2
+ fi
+fi
+
+menuMain
+cleanup 0
diff --git a/Master/bin/i386-kfreebsd/texconfig-sys b/Master/bin/i386-kfreebsd/texconfig-sys
new file mode 100755
index 00000000000..8a88750098c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texconfig-sys
@@ -0,0 +1,32 @@
+#!/bin/sh
+# $Id: texconfig-sys 5067 2007-09-30 18:06:26Z karl $
+
+# texconfig-sys: Thomas Esser, public domain.
+
+# wrapper script for texconfig with TEXMFVAR and TEXMFCONFIG set to
+# TEXMFSYSVAR / TEXMFSYSCONFIG
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+v=`kpsewhich -var-value TEXMFSYSVAR`
+c=`kpsewhich -var-value TEXMFSYSCONFIG`
+
+TEXMFVAR="$v"
+TEXMFCONFIG="$c"
+texconfig_sys=1
+export TEXMFVAR TEXMFCONFIG
+
+exec texconfig ${1+"$@"}
diff --git a/Master/bin/i386-kfreebsd/texcount b/Master/bin/i386-kfreebsd/texcount
new file mode 120000
index 00000000000..44f81a2944e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texcount
@@ -0,0 +1 @@
+../../texmf-dist/scripts/texcount/texcount.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texdiff b/Master/bin/i386-kfreebsd/texdiff
new file mode 120000
index 00000000000..7964051040c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texdiff
@@ -0,0 +1 @@
+../../texmf-dist/scripts/texdiff/texdiff \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texdirflatten b/Master/bin/i386-kfreebsd/texdirflatten
new file mode 120000
index 00000000000..02636a7693d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texdirflatten
@@ -0,0 +1 @@
+../../texmf-dist/scripts/texdirflatten/texdirflatten \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texdoc b/Master/bin/i386-kfreebsd/texdoc
new file mode 120000
index 00000000000..90a4a24bcb0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texdoc
@@ -0,0 +1 @@
+../../texmf/scripts/texdoc/texdoc.tlu \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texdoctk b/Master/bin/i386-kfreebsd/texdoctk
new file mode 120000
index 00000000000..56729104154
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texdoctk
@@ -0,0 +1 @@
+../../texmf/scripts/tetex/texdoctk.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texexec b/Master/bin/i386-kfreebsd/texexec
new file mode 120000
index 00000000000..36d22caefe7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texexec
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/texexec \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texfont b/Master/bin/i386-kfreebsd/texfont
new file mode 120000
index 00000000000..a3756e037ce
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texfont
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/texfont \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texhash b/Master/bin/i386-kfreebsd/texhash
new file mode 120000
index 00000000000..fe296c273bb
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texhash
@@ -0,0 +1 @@
+mktexlsr \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texlinks b/Master/bin/i386-kfreebsd/texlinks
new file mode 100755
index 00000000000..c77ceea60c0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texlinks
@@ -0,0 +1,333 @@
+#!/bin/sh
+# $Id: texlinks 13904 2009-06-23 00:47:00Z karl $
+
+# Thomas Esser, 1999, 2002, 2003. public domain.
+
+# texlinks: script to maintain symlinks from format to engine. Interprets
+# the lines given in fmtutil.cnf.
+
+# History:
+# (Further changes in ChangeLog.)
+# Tue Oct 9 14:23:01 BST 2007
+# Added unlink option (-u) to aid OpenBSD package uninstall
+# Edd Barrett <vext01@gmail.com>
+# Sun Aug 28 21:41:06 CEST 2005
+# remove special cases for csplain,cslatex,pdfcslatex,pdfcsplain
+# Fr Apr 8 19:15:05 CEST 2005
+# cleanup now has an argument for the return code
+# So Mar 27 18:52:06 CEST 2005
+# honor $TMPDIR, $TEMP and $TMP, not just $TMP
+# Mon May 10 20:52:48 CEST 2004
+# kpseaccess instead of access
+# Thu Dec 25 22:11:53 CET 2003, te:
+# add version string
+# Tue Apr 9 22:46:34 CEST 2002, te:
+# do not create symlinks for cont-??, metafun and mptopdf
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+unset RUNNING_SH5
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+version=20090623.0228
+progname=texlinks
+cnf=fmtutil.cnf # name of the config file
+
+usage='Usage: texlinks [OPTION]... [DIRECTORY]...
+
+Create symbolic links format -> engine according to fmtutil setup.
+
+Mandatory arguments to long options are mandatory for short options too.
+ -e, --exeext EXT append EXT to symlink targets (default: none)
+ -f, --cnffile FILE use FILE as config file (default: fmtutil.cnf)
+ -m, --multiplatform operate in all platform specific directories
+ (default: operate only in directory for this platform)
+ -q, --quiet silently skip existing scripts / binaries
+ (default: issue warning)
+ -s, --silent same as -q
+ -u, --unlink remove symlinks created by texlinks
+ -v, --verbose enable verbose messages (default: off)
+ -h, --help show this help text
+ --version show version string
+
+The DIRECTORY arguments are an optional list of directories in which to
+operate. If no directories are specified and --multiplatform is
+likewise not specified, the directory of this script itself is used.
+With --multiplatform, all child dirs of an upper-level bin/ dir are used.
+
+Report bugs to tex-k@tug.org.'
+
+###############################################################################
+# abort(errmsg)
+# print `errmsg' to stderr and exit with error code 1
+###############################################################################
+abort() { errmsg "texlinks: $1."; cleanup 1; }
+
+# error message to stderr:
+errmsg() { echo "$@" >&2; }
+
+# give message to stderr only if "verbose" mode is on:
+verbose_echo() { $verbose && errmsg "$@"; }
+
+# in verbose mode: show command that is executed:
+verbose_do() { verbose_echo "$@"; "$@"; }
+
+###############################################################################
+# cleanup()
+# clean up the temp area and exit with proper exit status
+###############################################################################
+cleanup()
+{
+ rc=$1
+ $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
+ && { rm -f "$tmpdir"/*; cd /; rmdir "$tmpdir"; }
+ exit $rc
+}
+
+###############################################################################
+# setupTmpDir()
+# set up a temp directory and a trap to remove it
+###############################################################################
+setupTmpDir()
+{
+ $needsCleanup && return
+
+ trap 'cleanup 1' 1 2 3 7 13 15
+ needsCleanup=true
+ (umask 077; mkdir "$tmpdir") \
+ || abort "could not create directory \`$tmpdir'"
+}
+
+
+# search a binary along $PATH:
+check_for_binary()
+{
+ testbin=$1
+ set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g; s/:/ /g'`; shift
+ for i
+ do
+ if [ -x "$i/$testbin" ]; then
+ echo "$i/$testbin"
+ return 0
+ fi
+ done
+ return 1
+}
+
+
+###############################################################################
+# install_link(dest src)
+# create a symlink like ln -s dest src, but make sure that src is not
+# an existing binary, possibly adding the executable extension if
+# passed on the command.
+###############################################################################
+install_link()
+{
+ # make symlink src -> dest
+ dest=$1; src=$2
+
+ case $src in
+ */mf)
+ if test "$dest" = mf-nowin; then
+ if test -f $selfautoloc/mfw; then
+ dest=mfw # name for windows-enabled mf, once upon a time
+ verbose_echo "both mfw and mf-nowin exists, $src linked to $dest"
+ fi
+ if test -f $selfautoloc/mf && test -f $selfautoloc/mf-nowin; then
+ # have both mf and mf-nowin binaries. no link.
+ verbose_echo "skipped metafont symlink $src -> $dest (special case)"
+ return
+ fi
+ fi
+ ;;
+ esac
+
+ # append .exe if supplied (for cygwin).
+ test -n "$exeext" && dest="$dest$exeext"
+
+ case $src in
+ */cont-??|*/mptopdf)
+ # context includes wrapper scripts that create/run these.
+ verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)"
+ ;;
+ *)
+ test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" &&
+ rm -f "$src"
+
+ if test -f "$src"; then
+ case $silent in
+ true)
+ ;;
+ *)
+ errmsg "install_link $src -> $dest failed: file already exists."
+ ;;
+ esac
+ else
+ verbose_do ln -s "$dest" "$src"
+ fi
+ ;;
+ esac
+}
+
+###############################################################################
+# search_symlinkdir()
+# look if $PATH has only symlinks to the real binaries and find that
+# directory. Also check if this directory is writable.
+###############################################################################
+search_symlinkdir()
+{
+ kpsewhich=`check_for_binary kpsewhich`
+ test -z "$kpsewhich" && return 1
+ symlinkdir=`echo $kpsewhich | sed 's@/*kpsewhich$@@'`
+ kpseaccess -w "$symlinkdir" || return 1
+ touch "$symlinkdir/tl$$"
+ if test -f "$selfautoloc/tl$$"; then
+ rm -f "$symlinkdir/tl$$"
+ return 1
+ else
+ rm -f "$symlinkdir/tl$$"
+ return 0
+ fi
+}
+
+###############################################################################
+# upd_symlinkdir()
+# if $PATH has only symlinks to the real binaries, update that directory
+# that holds the symlinks
+###############################################################################
+upd_symlinkdir()
+{
+ search_symlinkdir || return 0
+ for i in `sed 's@ .*@@' cnf_file_ln.$$`; do
+ install_link "$selfautoloc/$i" "$symlinkdir/$i"
+ done
+}
+
+###############################################################################
+# rm_link()
+# Delete a previously installed link
+###############################################################################
+rm_link()
+{
+ link=$1;
+ if test -e $link; then
+ if test -h $link; then
+ verbose_do rm -Rf $link
+ else
+ verbose_echo "kept $link, since not a symlink"
+ fi
+ else
+ verbose_echo "skipped $link, non-existent"
+ fi
+}
+
+###############################################################################
+# main()
+# parse commandline arguments, initialize variables,
+# switch into temp. direcrory, execute desired command
+###############################################################################
+main()
+{
+ cnf_file= # global variable: full name of the config file
+ dirs=
+ needsCleanup=false
+
+ exeext=
+ multiplatform=false
+ verbose=false
+ unlink=false
+ silent=false
+ thisdir=`pwd`
+ : ${KPSE_DOT=$thisdir}; export KPSE_DOT
+ selfautoloc=`kpsewhich --expand-var='$SELFAUTOLOC'`
+ while
+ case $1 in
+ --h*|-h)
+ echo "$usage"; exit 0;;
+ --version)
+ echo "$progname version $version"; exit 0;;
+ --cnffile|-f)
+ shift; cnf_file=$1;;
+ --e*|-e) shift; exeext=$1;;
+ --m*|-m) multiplatform=true;;
+ --s*|-s|--q*|-q) silent=true;;
+ --u*|-u) unlink=true;;
+ --v*|-v) verbose=true;;
+ -*) errmsg "fmtutil: unknown option \`$1' ignored.";;
+ *) break;;
+ esac
+ do test $# -gt 0 && shift; done
+ dirs="$*"
+
+ # if no cnf_file from command-line, look it up with kpsewhich:
+ test -z "$cnf_file" && cnf_file=`kpsewhich --format='web2c files' $cnf`
+ test -f "$cnf_file" || abort "config file \`$cnf' not found"
+
+
+ tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/texlinks.$$
+ setupTmpDir
+ cd "$tmpdir" || cleanup 1
+
+ sed '/^[ ]*#/d; /^[ ]*$/d' $cnf_file \
+ | awk '{print $1, $2}' > cnf_file_ln.$$
+
+ if test -z "$dirs"; then
+ if test $multiplatform = true; then
+ case $selfautoloc in
+ */bin) dirs=$selfautoloc;;
+ *) parent=`kpsewhich --expand-var='$SELFAUTODIR'`
+ dirs=`find $parent -type f -name kpsewhich -print \
+ | sed 's@/kpsewhich$@@'`;;
+ esac
+ else
+ dirs=$selfautoloc
+ fi
+ fi
+
+ for d in $dirs; do
+ kpseaccess -w $d \
+ || { errmsg "$d: no write permissions. Skipping..."; continue; }
+ # cnf_file_ln.$$ has lines with "format engine" pairs
+ set x `cat cnf_file_ln.$$`; shift
+ while test $# != 0; do
+ fmt=$1; engine=$2; shift; shift
+
+ # Some broken shells destroy the positional arguments when calling a
+ # shellfunction. Therefore, we save and restore them "by hand" in the
+ # main_args_while variable.
+ main_args_while="$@"
+
+ test "x$fmt" = "x$engine" && continue
+ if test -f "$d/$engine"; then
+ case $unlink in
+ true)
+ rm_link "$d/$fmt";;
+ *)
+ install_link "$engine" "$d/$fmt";;
+ esac
+ else
+ verbose_echo "skipped $d/$engine, engine does not exist"
+ fi
+
+ # restore positional arguments:
+ set x $main_args_while; shift
+
+ done
+ done
+ upd_symlinkdir
+}
+
+main ${1+"$@"}
+
+# set successful return code
+cleanup 0
diff --git a/Master/bin/i386-kfreebsd/texloganalyser b/Master/bin/i386-kfreebsd/texloganalyser
new file mode 120000
index 00000000000..a0dd3486cd7
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texloganalyser
@@ -0,0 +1 @@
+../../texmf-dist/scripts/texloganalyser/texloganalyser \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texlua b/Master/bin/i386-kfreebsd/texlua
new file mode 120000
index 00000000000..8d727021583
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texlua
@@ -0,0 +1 @@
+luatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texluac b/Master/bin/i386-kfreebsd/texluac
new file mode 120000
index 00000000000..8d727021583
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texluac
@@ -0,0 +1 @@
+luatex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texmfstart b/Master/bin/i386-kfreebsd/texmfstart
new file mode 120000
index 00000000000..db6dee0a29c
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texmfstart
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/ruby/texmfstart.rb \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texsis b/Master/bin/i386-kfreebsd/texsis
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texsis
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/textools b/Master/bin/i386-kfreebsd/textools
new file mode 120000
index 00000000000..d1a20375405
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/textools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/textools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/texutil b/Master/bin/i386-kfreebsd/texutil
new file mode 120000
index 00000000000..78f249c7f02
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/texutil
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/texutil \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/tftopl b/Master/bin/i386-kfreebsd/tftopl
new file mode 100755
index 00000000000..bb9535c2879
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tftopl
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/thumbpdf b/Master/bin/i386-kfreebsd/thumbpdf
new file mode 120000
index 00000000000..98a72428616
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/thumbpdf
@@ -0,0 +1 @@
+../../texmf-dist/scripts/thumbpdf/thumbpdf.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/tie b/Master/bin/i386-kfreebsd/tie
new file mode 100755
index 00000000000..e7a6096d2f1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tie
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/tlmgr b/Master/bin/i386-kfreebsd/tlmgr
new file mode 120000
index 00000000000..dd7cddf2d67
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tlmgr
@@ -0,0 +1 @@
+../../texmf/scripts/texlive/tlmgr.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/tmftools b/Master/bin/i386-kfreebsd/tmftools
new file mode 120000
index 00000000000..444a68a40ee
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tmftools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/tmftools \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/tpic2pdftex b/Master/bin/i386-kfreebsd/tpic2pdftex
new file mode 100755
index 00000000000..8277e0d3c7b
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/tpic2pdftex
@@ -0,0 +1,455 @@
+#!/bin/sh -
+#
+# $Id: tpic2pdftex,v 1.97 2010/01/16 11:51:43 hahe Exp $
+#
+# Experimental awk-script for conversion of tpic \specials as produced
+# by (groff-)pic into pdfTeX \pdfliteral sections for further processing
+# by pdftex.
+#
+# Usage:
+# $ pic -t somefile.pic | tpic2pdftex > somefile.tex
+#
+# Process somefile.tex by pdftex/pdflatex.
+#
+# tpic \special desciption see e. g.:
+# Goossens, Rahtz, Mittelbach: The LaTeX Graphics Companion,
+# Addison-Wesley, 1997, pp. 464.
+#
+# Bugs:
+# Spline curve shapes not fully authentic (unknown algorithm).
+# Bounding box does not care for line thickness (groff pic feature).
+# Splines might be outside bounding box.
+#
+# Copyright (C) 2002--2010 by Hartmut Henkel
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or (at
+# your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# The author may be contacted via the e-mail address
+#
+# hartmut_henkel@gmx.de
+#
+# NEWS:
+# 24 Dec. 2009 - use gawk for default awk only if it exists
+# (patch by Karl Berry).
+# 14 Jan. 2007 - make it executable shell script, calling awk
+# 16 Dec. 2004 - Replaced // {print} by {print} (some AWKs did choke)
+# 09 Apr. 2004 - Locale check: Decimal point in float numbers?
+# 30 Oct. 2003 - Replaced print statements by printf to avoid
+# underflow numbers like 1e-14 in \pdfliterals. Remove trailing
+# zeroes of floating point numbers.
+# 02 May 2003 - Lines starting with \ allow TeX insertions,
+# e. g. of pdfTeX \pdfliteral{}
+# 29 Apr. 2003 - Changed for pic of groff 1.19
+# 16 Mar. 2003 - Bug corrected: Dashed lines shorter than minimum
+# dash-pause length now drawn solid.
+# 11 Nov. 2002 - Spline drawing improved: First half of first and last
+# half of last spline segments are drawn by straight lines.
+# 28 Nov. 2002 - Arc and circle drawing cleaned up. Full circle is now
+# drawn by 4 Bezier curves, as is common use. Arcs split evenly into
+# Bezier curves, to minimize max. error.
+# 02 Dec. 2002 - Experimental pic (groff > 1.18.1) with improved
+# vertical picture positioning supported.
+# 04 Dec. 2002 - Experiment with modified pic (\vtop -> \vbox),
+# Formula for Bezier constant c reduced.
+#
+########################################################################
+
+# In case someone pedantic insists on using grep -E.
+: ${EGREP=egrep}}
+
+# Systems which define $COMSPEC or $ComSpec use semicolons to separate
+# directories in TEXINPUTS -- except for Cygwin et al., where COMSPEC
+# might be inherited, but : is used.
+
+if test -n "$COMSPEC$ComSpec" \
+ && uname | $EGREP -iv 'cygwin|mingw|djgpp' >/dev/null; then
+ path_sep=";"
+else
+ path_sep=":"
+fi
+
+# findprog PROG
+# -------------
+# Return true if PROG is somewhere in PATH, else false.
+
+findprog ()
+{
+ local saveIFS="$IFS"
+ IFS=$path_sep # break path components at the path separator
+ for dir in $PATH; do
+ IFS=$saveIFS
+ # The basic test for an executable is `test -f $f && test -x $f'.
+ # (`test -x' is not enough, because it can also be true for directories.)
+ # We have to try this both for $1 and $1.exe.
+ #
+ # Note: On Cygwin and DJGPP, `test -x' also looks for .exe. On Cygwin,
+ # also `test -f' has this enhancement, bot not on DJGPP. (Both are
+ # design decisions, so there is little chance to make them consistent.)
+ # Thusly, it seems to be difficult to make use of these enhancements.
+ #
+ if { test -f "$dir/$1" && test -x "$dir/$1"; } ||
+ { test -f "$dir/$1.exe" && test -x "$dir/$1.exe"; }; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+if test -z "$AWK"; then # if set by user, leave it.
+ if findprog gawk; then
+ AWK=gawk
+ else
+ AWK=awk
+ fi
+fi
+
+export LANG="C"
+
+AWKPROG='
+# begin of awk input file
+
+function qprintf(a) {
+ gsub(/0* /," ", a); # trailing zeroes in %f
+ gsub(/\. /," ", a); # orphaned decimal dots
+ gsub(/0*]/,"]", a); # trailing zeroes in brackets
+ gsub(/0X/,"0", a); # guard integer zeroes
+ gsub(/-0 /,"0 ", a); # correct -0 to 0
+ print a;
+}
+
+function startpdfliteral() {
+ if (pdfliteral == 0) {
+ print "\\pdfliteral{";
+ printf("q [] 0 d %d J %d j\n", linecap, linejoin); # no qprintf!
+ qprintf(sprintf("%f w", linethickness * wscale));
+ }
+ pdfliteral = 1;
+}
+
+function stoppdfliteral() {
+ if (pdfliteral == 1) {
+ print "Q";
+ print "}%";
+ }
+ pdfliteral = 0;
+}
+
+########################################################################
+
+BEGIN{
+ wscale = 72.0 / 1000;
+ tpicmode = 0;
+ pdfliteral = 0;
+ pointbuf = 0;
+ filled = 0;
+ fillval = 0;
+ linecap = 1;
+ linejoin = 1;
+ defaultlinethickness = 8;
+ drawarc = 0;
+ pi = atan2(0, -1);
+ if (match(sprintf("%f", 0.5), /\./) == 0) {
+ print "ERROR: Floating point numbers miss decimal point. Do"
+ print " export LANG=\"C\""
+ print "before calling awk."
+ print "ERROR: Floating point numbers miss decimal point. Do" > "/dev/stderr"
+ print " export LANG=\"C\"" > "/dev/stderr"
+ print "before calling awk." > "/dev/stderr"
+ exit 1;
+ }
+}
+
+########################################################################
+
+# the following expression triggers tpic processing for pic <= 1.18.1
+
+/^\\setbox\\graph=\\vtop{/ {
+ pdfliteral = 0;
+ tpicmode = 1;
+ linethickness = defaultlinethickness;
+}
+
+# the following expression triggers tpic processing for pic = 1.19
+
+/^\\expandafter\\setbox\\csname graph\\endcsname/ {
+ pdfliteral = 0;
+ tpicmode = 1;
+ linethickness = defaultlinethickness;
+}
+
+# TeX parts end \pdfliteral, and also TeX parts embedded in .PS ... .PE
+# section end \pdfliteral
+
+/^ *\\graphtemp|^ *\\rlap|^ *\\advance|^\\|^ *\\hbox/ {
+ if(tpicmode == 1)
+ stoppdfliteral();
+}
+
+/^}%/ {
+ if(tpicmode == 1)
+ tpicmode = 0;
+}
+
+########################################################################
+
+# all specials handling
+
+/^ *\\special/ {
+ if(tpicmode == 1)
+ startpdfliteral();
+}
+
+# <pn> set pen size
+
+/^ *\\special{pn/ {
+ gsub(/[{}]/, " ");
+ linethickness = $3 + 0;
+ qprintf(sprintf("%f w", linethickness * wscale));
+ next;
+}
+
+# <pa> add point to path
+
+/^ *\\special{pa/ {
+ gsub(/[{}]/, " ");
+ x[pointbuf] = $3 + 0;
+ y[pointbuf] = $4 + 0;
+ pointbuf++;
+ next;
+}
+
+# <fp> print path as straight lines
+
+/^ *\\special{fp/ {
+ if (filled == 1)
+ qprintf(sprintf("q %f g", 1 - fillval));
+ qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale));
+ for (i = 1; i < pointbuf; i++)
+ qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale));
+ if (filled == 1)
+ print "B Q";
+ else
+ print "S";
+ pointbuf = 0;
+ filled = 0;
+ next;
+}
+
+# <da> print path as straight dashed lines
+
+/^ *\\special{da/ {
+ gsub(/[{}]/, " ");
+ don = ($3 + 0) * 1000;
+ if (filled == 1) {
+ qprintf(sprintf("q %f g", 1 - fillval));
+ qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale));
+ for (i = 1; i < pointbuf; i++)
+ qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale));
+ print "f Q";
+ }
+ for (i = 1; i < pointbuf; i++) {
+ dx = x[i] - x[i - 1];
+ dy = y[i] - y[i - 1];
+ len = sqrt(dx * dx + dy * dy);
+ non = int(0.5 * len / don + 0.75);
+ noff = non - 1;
+ lon = don * non;
+ loff = len - lon;
+ if(noff > 0) {
+ doff = loff / noff;
+ qprintf(sprintf("q [%f %f] 0X d", don * wscale, doff * wscale));
+ } else {
+ print "q [] 0 d";
+ }
+ qprintf(sprintf("%f %f m", x[i - 1] * wscale, -y[i - 1] * wscale));
+ qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale));
+ print "S Q";
+ }
+ pointbuf = 0;
+ filled = 0;
+ next;
+}
+
+# <dt> print path as straight dotted lines
+
+/^ *\\special{dt/ {
+ gsub(/[{}]/, " ");
+ dt = ($3 + 0) * 1000;
+ if (filled == 1) {
+ qprintf(sprintf("q %f g", 1 - fillval));
+ qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale));
+ for (i = 1; i < pointbuf; i++)
+ qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale));
+ print "f Q";
+ }
+ for (i = 1; i < pointbuf; i++) {
+ dx = x[i] - x[i - 1];
+ dy = y[i] - y[i - 1];
+ len = sqrt(dx * dx + dy * dy);
+ dl = int (len / dt + 0.5);
+ if (!dl)
+ dtl = len;
+ else
+ dtl = len / dl;
+ qprintf(sprintf("q [0X %f] 0X d", dtl * wscale));
+ qprintf(sprintf("%f %f m", x[i - 1] * wscale, -y[i - 1] * wscale));
+ qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale));
+ print "S Q";
+ }
+ pointbuf = 0;
+ filled = 0;
+ next;
+}
+
+# <ip> like <fp>, but path actually not drawn
+
+/^ *\\special{ip/ {
+ if (filled == 1)
+ qprintf(sprintf("q %f g", 1 - fillval));
+ qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale));
+ for (i = 1; i < pointbuf; i++)
+ qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale));
+ if (filled == 1)
+ print "f Q";
+ else
+ print "f";
+ pointbuf = 0;
+ filled = 0;
+ next;
+}
+
+# <sp> like <fp>, but path printed as splines
+
+/^ *\\special{sp/ {
+ gsub(/[{}]/, " ");
+ don = ($3 + 0) * 1000;
+ a = 0.68; # fudge, visually optimized
+ x[pointbuf] = x[pointbuf - 1];
+ y[pointbuf] = y[pointbuf - 1];
+
+ if (don > 0)
+ qprintf(sprintf("q [%f] 0X d", don * wscale));
+ if (don < 0)
+ qprintf(sprintf("q [0X %f] 0X d", -don * wscale));
+
+ qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale));
+
+ if(pointbuf < 3)
+ qprintf(sprintf("%f %f l", x[pointbuf - 1] * wscale, -y[pointbuf - 1] * wscale));
+ else {
+ qprintf(sprintf("%f %f l", 0.5 * (x[0] + x[1]) * wscale, \
+ -0.5 * (y[0] + y[1]) * wscale)); # start straight, see cstr116.ps
+ for (i = 1; i < pointbuf - 1; i++)
+ qprintf(sprintf("%f %f %f %f %f %f c", \
+ (a * x[i] + (1 - a) * 0.5 * (x[i] + x[i - 1])) * wscale, \
+ -(a * y[i] + (1 - a) * 0.5 * (y[i] + y[i - 1])) * wscale, \
+ (a * x[i] + (1 - a) * 0.5 * (x[i] + x[i + 1])) * wscale, \
+ -(a * y[i] + (1 - a) * 0.5 * (y[i] + y[i + 1])) * wscale, \
+ 0.5 * (x[i] + x[i + 1]) * wscale, -0.5 * (y[i] + y[i + 1]) * wscale));
+ qprintf(sprintf("%f %f l", x[pointbuf - 1] * wscale, -y[pointbuf - 1] * wscale));
+ }
+ if (filled == 1) {
+ qprintf(sprintf("q %f g", 1 - fillval));
+ print "B Q";
+ }
+ else
+ print "S";
+ if (don != 0)
+ print "Q";
+ pointbuf = 0;
+ filled = 0;
+ next;
+}
+
+# <sh> prepare shading of object interior
+
+/^ *\\special{sh/ {
+ gsub(/[{}]/, " ");
+ fillval = $3 + 0;
+ filled = 1;
+ next;
+}
+
+# <ar> draw arc
+# <ia> like <ar>, but arc actually not drawn
+
+/^ *\\special{ar/ {
+ drawarc = 1;
+}
+
+/^ *\\special{ar|^ *\\special{ia/ {
+ gsub(/[{}]/, " ");
+ xc = $3 + 0;
+ yc = $4 + 0;
+ rx = $5 + 0;
+ ry = $6 + 0;
+ s = $7 + 0;
+ e = $8 + 0;
+ if (e - s > 2 * pi) e = s + 2 * pi;
+ if (s - e > 2 * pi) e = s - 2 * pi;
+ curvespercircle = 4; # max. number Bezier curves per circle
+ phi_max = 1.001 * 2 * pi / curvespercircle;
+ if (e > s)
+ imax = int ((e - s) / phi_max) + 1;
+ else
+ imax = int ((s - e) / phi_max) + 1;
+ phi = (e - s) / imax;
+
+ # parameter for Bezier control vectors, c(90 deg.) = 0.55228...:
+ c = 4 * (1 - cos(0.5 * phi)) / (3 * sin(0.5 * phi));
+
+ x0 = rx * cos(s) + xc;
+ y0 = ry * sin(s) + yc;
+ qprintf(sprintf("%f %f m", x0 * wscale, -y0 * wscale));
+ for (i = 0; i < imax; i++) {
+ x1 = x0 - rx * c * sin(s + i * phi);
+ y1 = y0 + ry * c * cos(s + i * phi);
+ x3 = rx * cos(s + (i + 1) * phi) + xc;
+ y3 = ry * sin(s + (i + 1) * phi) + yc;
+ x2 = x3 + rx * c * sin(s + (i + 1) * phi);
+ y2 = y3 - ry * c * cos(s + (i + 1) * phi);
+ qprintf(sprintf("%f %f %f %f %f %f c", x1 * wscale, -y1 * wscale, \
+ x2 * wscale, -y2 * wscale, x3 * wscale, -y3 * wscale));
+ x0 = x3;
+ y0 = y3;
+ }
+ if(drawarc == 1) {
+ if (filled == 1) {
+ qprintf(sprintf("h q %f g", 1 - fillval));
+ print "B Q";
+ }
+ else
+ print "S";
+ } else {
+ if (filled == 1) {
+ qprintf(sprintf("h q %f g", 1 - fillval));
+ print "f Q";
+ }
+ else
+ print "f";
+ }
+ filled = 0;
+ drawarc = 0;
+ next;
+}
+
+########################################################################
+
+{print}
+
+########################################################################
+'
+# end of awk input file
+
+$AWK "$AWKPROG" "$@"
diff --git a/Master/bin/i386-kfreebsd/ttf2afm b/Master/bin/i386-kfreebsd/ttf2afm
new file mode 100755
index 00000000000..0d1f88f74c6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ttf2afm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ttf2pk b/Master/bin/i386-kfreebsd/ttf2pk
new file mode 100755
index 00000000000..5933694b313
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ttf2pk
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ttf2tfm b/Master/bin/i386-kfreebsd/ttf2tfm
new file mode 100755
index 00000000000..df4cd3bd68f
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ttf2tfm
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ttfdump b/Master/bin/i386-kfreebsd/ttfdump
new file mode 100755
index 00000000000..aa738c42634
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ttfdump
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ttftotype42 b/Master/bin/i386-kfreebsd/ttftotype42
new file mode 100755
index 00000000000..f12555f2bf0
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ttftotype42
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/ulqda b/Master/bin/i386-kfreebsd/ulqda
new file mode 120000
index 00000000000..8ca9386b37d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/ulqda
@@ -0,0 +1 @@
+../../texmf-dist/scripts/ulqda/ulqda.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/updmap b/Master/bin/i386-kfreebsd/updmap
new file mode 100755
index 00000000000..d8a18b69006
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/updmap
@@ -0,0 +1,1434 @@
+#!/bin/sh
+# updmap - utility to maintain map files for outline fonts.
+# Public domain. Originally written by Thomas Esser.
+# Run with --help for usage.
+
+###############################################################################
+# program history:
+# further changes in texk/tetex/ChangeLog.
+# Sun May 25 21:05:32 CEST 2008 (Reinhard Kotucha)
+# add function symlink_or_copy needed by tl-portable.
+# Post-te retirement, now maintained in TeX Live; see
+# Build/texk/tetex/ChangeLog for further changes.
+# Fr Jul 22 07:22:38 CEST 2005
+# write hint about log file into output files
+# Fr Apr 8 19:15:05 CEST 2005
+# cleanup now has an argument for the return code
+# So Mär 27 18:52:06 CEST 2005
+# honor $TMPDIR, $TEMP and $TMP, not just $TMP
+# Do Mär 10 19:31:39 CET 2005
+# add a few quotes for $cnfFile with whitespace
+# Sa Jan 15 18:13:46 CET 2005
+# avoid multiple variable assignments in one statement
+# Sa Dez 25 12:44:23 CET 2004
+# implementaion adopted for teTeX-3.0 (tcfmgr)
+# Mi Nov 3 16:33:22 CET 2004
+# add "--setoption option=value" syntax
+# Fr Okt 29 21:05:53 CEST 2004
+# add --enable Map=... / --enable MixedMap=...
+# Mi Okt 20 19:17:19 CEST 2004
+# transcript added; even better warnings / error messages
+# So Okt 17 19:07:17 CEST 2004
+# improved warnings / error messages
+# added --syncwithtrees
+# added --listavailablemaps
+# Mi Okt 6 16:37:49 CEST 2004
+# commenty may start with any of *#;%
+# Sun Aug 1 11:42:14 CEST 2004, te
+# remove pdftex related hacks; pdftex no longer needs them!
+# Thu May 13 22:04:23 CEST 2004, te
+# support user with new map file locations
+# Fri Mar 19 15:22:55 CET 2004, te
+# output "xxx yyy" instead of " xxx yyy " (less blanks)
+# Fri Jan 2 22:41:11 CET 2004, te:
+# add version string
+# Wed Aug 20 18:51:47 CEST 2003
+# store map files to fonts/map, add options for dvipsoutputdir,
+# pdftexoutputdir, dvipdfmoutputdir
+# Mon Mar 24 13:40:55 CET 2003
+# fix fmex[789] for dvipdfm (no -r option)
+# Sun Mar 23 18:58:00 CET 2003
+# make the script robust against whitespace in filenames
+# Mon Jan 27 22:38:44 CET 2003
+# don't call a function before processOptions; we may loose our
+# argument list with some broken shells
+# Mon Jan 27 06:55:28 CET 2003
+# fix unportable egrep / sed
+# Sat Jan 18 10:10:26 CET 2003
+# use $tmp8 in dvips2dvipdfm()
+# Thu Jan 2 23:14:34 CET 2003
+# add umask 022, so generated files are always world-readable
+# Sun Oct 27 11:33:04 CET 2002
+# write output in normalized format
+# add support for dvipdfm
+# Mon Sep 22 19:18:57 CEST 2002
+# fix typo: buildin -> builtin
+# Mon Sep 2 19:18:57 CEST 2002
+# fix condensed <-> narrow mapping
+# Sun Sep 1 15:02:28 CEST 2002
+# add dvipsDownloadBase35 / pdftexDownloadBase14 options
+# Wed May 22 20:00:13 CEST 2002
+# listmaps option added by Gerben Wierda
+# Tue May 21 05:27:37 CEST 2002
+# now removing map files before rewriting them; fixes permission problems
+# Tue May 21 05:05:34 CEST 2002:
+# cli options added: showoptions, setoption, enable, disable, nomkmap
+# now even more verbose; now reporting non-existing map files
+# fixing trap for MAC OS/X compatibility
+# Fri May 17 22:38:37 CEST 2002:
+# rewritten from teTeX-1.0 version; Completely new designed.
+###############################################################################
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+# the version string
+version='$Id: updmap 16755 2010-01-17 01:19:27Z karl $'
+
+#
+###############################################################################
+# help()
+# display help message and exit
+###############################################################################
+help()
+{
+ cat <<eof
+$version
+Usage: updmap [OPTION]... [COMMAND]...
+
+Update the default font map files used by pdftex, dvips, and dvipdfm, as
+determined by updmap.cfg (the one returned by running "kpsewhich
+updmap.cfg").
+
+Among other things, these font map files are used to determine which
+fonts should be used as bitmaps and which as outlines, and to determine
+which fonts are included in the output.
+
+By default, the TeX filename database is also rebuilt (with mktexlsr).
+
+Valid options:
+ --cnffile FILE read FILE for the updmap configuration
+ --pdftexoutputdir DIR specify output directory (pdftex syntax)
+ --dvipsoutputdir DIR specify output directory (dvips syntax)
+ --dvipdfmoutputdir DIR specify output directory (dvipdfm syntax)
+ --outputdir DIR specify output directory (for all files)
+ --copy cp generic files rather than using symlinks
+ --nomkmap do not recreate map files
+ --nohash do not run texhash
+ -n, --dry-run only show the configuration, no output
+ --quiet reduce verbosity
+
+Valid commands:
+ --help show this message
+ --edit edit $cnfFileShort file
+ --showoptions ITEM show alternatives for options
+ --setoption OPTION VALUE set option, where OPTION is one of:
+ dvipsPreferOutline LW35 dvipsDownloadBase35
+ pdftexDownloadBase14 dvipdfmDownloadBase14
+ --setoption OPTION=VALUE see above, just different syntax
+ --enable MAPTYPE MAPFILE add "MAPTYPE MAPFILE" to updmap.cfg,
+ where MAPTYPE is either Map or MixedMap
+ --enable Map=MAPFILE add "Map MAPFILE" to updmap.cfg
+ --enable MixedMap=MAPFILE add "MixedMap MAPFILE" to updmap.cfg
+ --disable MAPFILE disable MAPFILE, whether Map or MixedMap
+ --syncwithtrees entries with unavailable map files will be
+ disabled in the config file
+ --listmaps list all active and inactive maps
+ --listavailablemaps same as --listmaps, but without
+ unavailable map files
+
+Explanation of the map types: the (only) difference between Map and
+MixedMap is that MixedMap entries are not added to psfonts_pk.map. The
+purpose is to help users with printers that render Type 1 outline fonts
+worse than mode-tuned Type 1 bitmap fonts. So MixedMap is used for
+fonts that are available as both Type 1 and Metafont.
+
+To see the precise locations of the various files that will be read and
+written, run updmap -n.
+
+For step-by-step instructions on making new fonts known to TeX, see
+http://tug.org/fonts/fontinstall.html.
+
+Report bugs to <tex-k@tug.org>.
+eof
+ (exit 0); exit
+}
+
+#
+###############################################################################
+# verboseMsg(msg)
+# print `msg' to stderr is $verbose is true
+###############################################################################
+verboseMsg() {
+ test -n "$log" && echo ${1+"$@"} >> "$log"
+ $verbose && echo ${1+"$@"} >&2
+}
+
+###############################################################################
+# verboseCat()
+# cat to stderr is $verbose is true
+###############################################################################
+verboseCat() {
+ if $verbose; then
+ if test -n "$log"; then
+ cat ${1+"$@"} | tee -a "$log" >&2
+ else
+ cat ${1+"$@"} >&2
+ fi
+ else
+ test -n "$log" && cat ${1+"$@"} >> "$log"
+ fi
+}
+
+###############################################################################
+# warn(msg)
+# print `msg' to stderr
+###############################################################################
+warn()
+{
+ test -n "$log" && echo ${1+"$@"} >> "$log"
+ echo ${1+"$@"} >&2
+}
+
+###############################################################################
+# abort(errmsg)
+# print `errmsg' to stderr and exit with error code 1
+###############################################################################
+abort()
+{
+ warn "$progname: $1."
+ cleanup 1
+}
+
+###############################################################################
+# cfgval(variable)
+# read variable ($1) from config file, first match wins
+###############################################################################
+cfgval()
+{
+ cat "$cnfFile" | sed -n 's/^'"$1"'[ =][ =]*//p' | sed q
+}
+
+###############################################################################
+# symlink_or_copy()
+# if --copy is not set, try to create a symlink. If this fails, write
+# a message to stderr and copy the file instead.
+###############################################################################
+symlink_or_copy()
+{
+ if $copy; then
+ $copy_cmd "$1" "$2"
+ else
+ $link_cmd "$1" "$2" ||
+ {
+ echo "Creating symbolic link failed, the file is copied instead." 1>&2 &&
+ $copy_cmd "$1" "$2"
+ }
+ fi
+}
+
+###############################################################################
+# setupSymlinks()
+# set symlink (or copy)
+# for psfonts.map according to dvipsPreferOutline variable,
+# and for pdftex.map and dvipdfm.map according to pdftexDownloadBase14.
+###############################################################################
+setupSymlinks()
+{
+ (
+ cd "$dvipsoutputdir" || exit 1
+ rm -f psfonts.map
+ if test "x$dvipsPreferOutline" = xtrue; then
+ symlink_or_copy psfonts_t1.map psfonts.map
+ else
+ symlink_or_copy psfonts_pk.map psfonts.map
+ fi
+
+ cd "$pdftexoutputdir" || exit 1
+ rm -f pdftex.map
+ if test "x$pdftexDownloadBase14" = xtrue; then
+ symlink_or_copy pdftex_dl14.map pdftex.map
+ else
+ symlink_or_copy pdftex_ndl14.map pdftex.map
+ fi
+
+ cd "$dvipdfmoutputdir" || exit 1
+ rm -f dvipdfm.map
+ if test "x$dvipdfmDownloadBase14" = xtrue; then
+ symlink_or_copy dvipdfm_dl14.map dvipdfm.map
+ else
+ symlink_or_copy dvipdfm_ndl14.map dvipdfm.map
+ fi
+ )
+}
+
+###############################################################################
+# transLW35(args ...)
+# transform fontname and filenames according to transformation specified
+# by mode
+###############################################################################
+transLW35()
+{
+ case $mode in
+ ""|URWkb)
+ cat ${1+"$@"}
+ ;;
+ URW)
+ fileURW ${1+"$@"}
+ ;;
+ ADOBE|ADOBEkb)
+ psADOBE ${1+"$@"} | file$mode
+ ;;
+ esac
+}
+
+###############################################################################
+# catMaps(regex)
+# filter config file by regex for map lines and extract the map filenames.
+# These are then looked up (by kpsewhich in locateMap) and the content of
+# all map files is send to stdout.
+###############################################################################
+catMaps()
+{
+ rm -f $catMapsFailed
+ egrep "$1" "$cnfFile" \
+ | sed 's@#.*@@' \
+ | awk '{print $2}' \
+ | sort \
+ | uniq \
+ | grep . > $tmp4
+
+ while read map; do
+ file=`locateMap "$map"` || { touch $catMapsFailed; break; }
+
+ # output the file; also output a newline, because the final newline
+ # might be missing in the map file; Empty lines are filtered out later,
+ # so it does not really hurt do do this here.
+ test -n "$file" && { cat "$file"; echo; }
+ done < $tmp4
+ if test -f $catMapsFailed; then
+ false; return 1
+ else
+ true; return 0
+ fi
+}
+
+###############################################################################
+# configReplace(file, pattern, line)
+# The first line in file that matches pattern gets replaced by line.
+# line will be added at the end of the file if pattern does not match.
+###############################################################################
+configReplace()
+{
+ file=$1; pat=$2; line=$3
+
+ if grep "$pat" "$file" >/dev/null; then
+ ed "$file" >/dev/null 2>&1 <<-eof
+ /$pat/
+ c
+ $line
+ .
+ w
+ q
+eof
+ else
+ echo "$line" >> "$file"
+ fi
+}
+
+###############################################################################
+# setOption (option, value)
+# sets option to value in the config file (replacing the existing setting
+# or by adding a new line to the config file).
+###############################################################################
+setOption()
+{
+ opt=$1
+ val=$2
+ case "$opt" in
+ LW35)
+ case "$val" in
+ URWkb|URW|ADOBE|ADOBEkb)
+ ;;
+ *)
+ abort "invalid value $val for option $opt"
+ ;;
+ esac
+ ;;
+ dvipsPreferOutline|dvipsDownloadBase35|pdftexDownloadBase14|dvipdfmDownloadBase14)
+ case "$val" in
+ true|false)
+ ;;
+ *)
+ abort "invalid value $val for option $opt"
+ esac
+ ;;
+ *)
+ abort "unsupported option $opt"
+ ;;
+ esac
+
+ configReplace "$cnfFile" "^$opt[ ]" "$opt $val"
+}
+
+###############################################################################
+# enableMap (type, map)
+# enables an entry in the config file for map with a given type.
+###############################################################################
+enableMap()
+{
+ case $1 in
+ Map|MixedMap)
+ ;;
+ *)
+ abort "invalid mapType $1"
+ ;;
+ esac
+
+ # a map can only have one type, so we carefully disable everything
+ # about map here:
+ disableMap "$2"
+
+ # now enable with the right type:
+ configReplace "$cnfFile" "^#![ ]*$1[ ]*$2" "$1 $2"
+}
+
+###############################################################################
+# disableMap (map)
+# disables map in config file (any type)
+###############################################################################
+disableMap()
+{
+ #mapType=`awk '($1 == "MixedMap" || $1 == "Map") && $2 == map { print $1 }' \
+ # map=$1 <"$cnfFile" | sort | uniq`
+ map=$1
+ mapType=`egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$cnfFile" | awk '{print $1}' | sort | uniq`
+ for type in $mapType; do
+ configReplace "$cnfFile" "^$type[ ]*$1" "#! $type $1"
+ done
+}
+
+###############################################################################
+# psADOBE()
+# transform fontnames from URW to Adobe
+###############################################################################
+psADOBE()
+{
+ sed \
+ -e 's/ URWGothicL-Demi / AvantGarde-Demi /' \
+ -e 's/ URWGothicL-DemiObli / AvantGarde-DemiOblique /' \
+ -e 's/ URWGothicL-Book / AvantGarde-Book /' \
+ -e 's/ URWGothicL-BookObli / AvantGarde-BookOblique /' \
+ -e 's/ URWBookmanL-DemiBold / Bookman-Demi /' \
+ -e 's/ URWBookmanL-DemiBoldItal / Bookman-DemiItalic /' \
+ -e 's/ URWBookmanL-Ligh / Bookman-Light /' \
+ -e 's/ URWBookmanL-LighItal / Bookman-LightItalic /' \
+ -e 's/ NimbusMonL-Bold / Courier-Bold /' \
+ -e 's/ NimbusMonL-BoldObli / Courier-BoldOblique /' \
+ -e 's/ NimbusMonL-Regu / Courier /' \
+ -e 's/ NimbusMonL-ReguObli / Courier-Oblique /' \
+ -e 's/ NimbusSanL-Bold / Helvetica-Bold /' \
+ -e 's/ NimbusSanL-BoldCond / Helvetica-Narrow-Bold /' \
+ -e 's/ NimbusSanL-BoldItal / Helvetica-BoldOblique /' \
+ -e 's/ NimbusSanL-BoldCondItal / Helvetica-Narrow-BoldOblique /' \
+ -e 's/ NimbusSanL-Regu / Helvetica /' \
+ -e 's/ NimbusSanL-ReguCond / Helvetica-Narrow /' \
+ -e 's/ NimbusSanL-ReguItal / Helvetica-Oblique /' \
+ -e 's/ NimbusSanL-ReguCondItal / Helvetica-Narrow-Oblique /' \
+ -e 's/ CenturySchL-Bold / NewCenturySchlbk-Bold /' \
+ -e 's/ CenturySchL-BoldItal / NewCenturySchlbk-BoldItalic /' \
+ -e 's/ CenturySchL-Roma / NewCenturySchlbk-Roman /' \
+ -e 's/ CenturySchL-Ital / NewCenturySchlbk-Italic /' \
+ -e 's/ URWPalladioL-Bold / Palatino-Bold /' \
+ -e 's/ URWPalladioL-BoldItal / Palatino-BoldItalic /' \
+ -e 's/ URWPalladioL-Roma / Palatino-Roman /' \
+ -e 's/ URWPalladioL-Ital / Palatino-Italic /' \
+ -e 's/ StandardSymL / Symbol /' \
+ -e 's/ NimbusRomNo9L-Medi / Times-Bold /' \
+ -e 's/ NimbusRomNo9L-MediItal / Times-BoldItalic /' \
+ -e 's/ NimbusRomNo9L-Regu / Times-Roman /' \
+ -e 's/ NimbusRomNo9L-ReguItal / Times-Italic /' \
+ -e 's/ URWChanceryL-MediItal / ZapfChancery-MediumItalic /' \
+ -e 's/ Dingbats / ZapfDingbats /' \
+ ${1+"$@"}
+}
+
+###############################################################################
+# fileADOBEkb()
+# transform filenames from URW to ADOBE (both berry names)
+###############################################################################
+fileADOBEkb()
+{
+ sed \
+ -e 's/\([^A-Za-z]\)uagd8a.pfb/\1pagd8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1pagdo8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uagk8a.pfb/\1pagk8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uagko8a.pfb/\1pagko8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1pbkd8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1pbkdi8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1pbkl8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1pbkli8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1pcrb8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1pcrbo8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1pcrr8a.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1pcrro8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1phvb8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1phvb8an.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1phvbo8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1phvbo8an.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1phvr8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1phvr8an.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1phvro8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1phvro8an.pfb/' \
+ -e 's/\([^A-Za-z]\)uncb8a.pfb/\1pncb8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1pncbi8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uncr8a.pfb/\1pncr8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uncri8a.pfb/\1pncri8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uplb8a.pfb/\1pplb8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1pplbi8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uplr8a.pfb/\1pplr8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uplri8a.pfb/\1pplri8a.pfb/' \
+ -e 's/\([^A-Za-z]\)usyr.pfb/\1psyr.pfb/' \
+ -e 's/\([^A-Za-z]\)utmb8a.pfb/\1ptmb8a.pfb/' \
+ -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1ptmbi8a.pfb/' \
+ -e 's/\([^A-Za-z]\)utmr8a.pfb/\1ptmr8a.pfb/' \
+ -e 's/\([^A-Za-z]\)utmri8a.pfb/\1ptmri8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1pzcmi8a.pfb/' \
+ -e 's/\([^A-Za-z]\)uzdr.pfb/\1pzdr.pfb/' \
+ ${1+"$@"}
+}
+
+###############################################################################
+# fileURW()
+# transform filenames from URWkb (berry names) to URW (vendor names)
+###############################################################################
+fileURW()
+{
+ sed \
+ -e 's/\([^A-Za-z]\)uagd8a.pfb/\1a010015l.pfb/' \
+ -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1a010035l.pfb/' \
+ -e 's/\([^A-Za-z]\)uagk8a.pfb/\1a010013l.pfb/' \
+ -e 's/\([^A-Za-z]\)uagko8a.pfb/\1a010033l.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1b018015l.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1b018035l.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1b018012l.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1b018032l.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1n022004l.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1n022024l.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1n022003l.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1n022023l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1n019004l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1n019044l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1n019024l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1n019064l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1n019003l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1n019043l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1n019023l.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1n019063l.pfb/' \
+ -e 's/\([^A-Za-z]\)uncb8a.pfb/\1c059016l.pfb/' \
+ -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1c059036l.pfb/' \
+ -e 's/\([^A-Za-z]\)uncr8a.pfb/\1c059013l.pfb/' \
+ -e 's/\([^A-Za-z]\)uncri8a.pfb/\1c059033l.pfb/' \
+ -e 's/\([^A-Za-z]\)uplb8a.pfb/\1p052004l.pfb/' \
+ -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1p052024l.pfb/' \
+ -e 's/\([^A-Za-z]\)uplr8a.pfb/\1p052003l.pfb/' \
+ -e 's/\([^A-Za-z]\)uplri8a.pfb/\1p052023l.pfb/' \
+ -e 's/\([^A-Za-z]\)usyr.pfb/\1s050000l.pfb/' \
+ -e 's/\([^A-Za-z]\)utmb8a.pfb/\1n021004l.pfb/' \
+ -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1n021024l.pfb/' \
+ -e 's/\([^A-Za-z]\)utmr8a.pfb/\1n021003l.pfb/' \
+ -e 's/\([^A-Za-z]\)utmri8a.pfb/\1n021023l.pfb/' \
+ -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1z003034l.pfb/' \
+ -e 's/\([^A-Za-z]\)uzdr.pfb/\1d050000l.pfb/' \
+ ${1+"$@"}
+}
+
+###############################################################################
+# fileADOBE()
+# transform filenames from URWkb (berry names) to ADOBE (vendor names)
+###############################################################################
+fileADOBE()
+{
+ sed \
+ -e 's/\([^A-Za-z]\)uagd8a.pfb/\1agd_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1agdo____.pfb/' \
+ -e 's/\([^A-Za-z]\)uagk8a.pfb/\1agw_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uagko8a.pfb/\1agwo____.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1bkd_____.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1bkdi____.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1bkl_____.pfb/' \
+ -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1bkli____.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1cob_____.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1cobo____.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1com_____.pfb/' \
+ -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1coo_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1hvb_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1hvnb____.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1hvbo____.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1hvnbo___.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1hv______.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1hvn_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1hvo_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1hvno____.pfb/' \
+ -e 's/\([^A-Za-z]\)uncb8a.pfb/\1ncb_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1ncbi____.pfb/' \
+ -e 's/\([^A-Za-z]\)uncr8a.pfb/\1ncr_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uncri8a.pfb/\1nci_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uplb8a.pfb/\1pob_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1pobi____.pfb/' \
+ -e 's/\([^A-Za-z]\)uplr8a.pfb/\1por_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uplri8a.pfb/\1poi_____.pfb/' \
+ -e 's/\([^A-Za-z]\)usyr.pfb/\1sy______.pfb/' \
+ -e 's/\([^A-Za-z]\)utmb8a.pfb/\1tib_____.pfb/' \
+ -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1tibi____.pfb/' \
+ -e 's/\([^A-Za-z]\)utmr8a.pfb/\1tir_____.pfb/' \
+ -e 's/\([^A-Za-z]\)utmri8a.pfb/\1tii_____.pfb/' \
+ -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1zcmi____.pfb/' \
+ -e 's/\([^A-Za-z]\)uzdr.pfb/\1zd______.pfb/' \
+ ${1+"$@"}
+}
+
+###############################################################################
+# locateWeb2c (file ...)
+# apply kpsewhich with format 'web2c files'
+###############################################################################
+locateWeb2c()
+{
+ kpsewhich --format='web2c files' ${1+"$@"}
+}
+
+###############################################################################
+# locateMap (file ...)
+# apply kpsewhich with format 'map'
+###############################################################################
+locateMap()
+{
+
+ # Always use the "migration checking version". This might become
+ # consigurable, but for now, we always want to check.
+ if :; then
+ locateMapMigrate "$@"
+ return $?
+ fi
+
+ # The old version of the code; not used at the moment.
+ for map
+ do
+ file=`kpsewhich --format=map "$map"`
+ if test -f "$file"; then
+ verboseMsg "$progname: using map file \`$file'"
+ echo "$file"
+ else
+ warn "map file \`$map' not found."
+ fi
+ done
+}
+
+###############################################################################
+# locateMapMigrate (file ...)
+# look for map file; assist user with possibly files in wrong locations;
+# also watch out for possibly hidden conflicts
+###############################################################################
+locateMapMigrate()
+{
+ for map
+ do
+ # look up using the new search path
+ file=`kpsewhich --format=map "$map"`
+
+ # look up using the old search path
+ file2=`kpsewhich --format='dvips config' "$map"`
+
+ # Well, the search paths should not overlap. If they do, and if
+ # file1 = file2, we don't want to complain about file2, so:
+ test "x$file" = "x$file2" && file2=
+
+ if test -f "$file"; then
+
+ verboseMsg "$progname: using map file \`$file'"
+ echo "$file"
+
+ # we have found the file where we should. If we have additional
+ # ones: complain!
+ if test -f "$file2"; then
+ mapCmp "$file" "$file2" \
+ && mapWarn obsoleteCopy "$map" "$file2" \
+ || mapWarn manualResolve "$map" "$file" "$file2"
+ fi
+
+ else
+ if test -f "$file2"; then
+ # bad: map file exists in the wrong location only
+ mapWarn badLocation "$map" "$file2"
+ else
+ # bad: map file does not exist at all
+ mapWarn notFound "$map"
+ fi
+ false; return 1
+ fi
+ done
+ true; return 0
+}
+
+###############################################################################
+# mapCmp(file, file2)
+# compare two map files like cmp; but less strict, so changes regarding
+# whitespaces, comments etc. are tolerated. Important is only the
+# return value here.
+###############################################################################
+mapCmp()
+{
+ file=$1; file2=$2
+
+ # For reasons of speed only. Avoid normalizeLines if files are 100%
+ # the same.
+ cmp "$file" "$file2" >/dev/null 2>&1 && return 0
+
+ normalizeLines <"$file" >"$tmpdir/mapCmp-1"
+ normalizeLines <"$file2" >"$tmpdir/mapCmp-2"
+ cmp "$tmpdir/mapCmp-1" "$tmpdir/mapCmp-2" >/dev/null 2>&1
+}
+
+###############################################################################
+# mapWarn()
+###############################################################################
+mapWarn()
+{
+
+ case $1 in
+ obsoleteCopy)
+ warn "
+!!! WARNING: Identical copy of used file for \`$2'
+ exists in obsolete location
+ $3
+ Please, consider removing this file.
+"
+ touch $mapWarnCalled
+ ;;
+ manualResolve)
+ warn "
+!!! WARNING: While searching for the right map file for \`$2', we have
+ found the file
+ $3
+ in the right location and we are using this
+ file. However, a map file with different content has been found in
+ the obsolete location
+ $4
+ Please, see which version you want to use and eventually update the
+ content of the used map file. Additionally, consider removing the
+ obsolete file.
+"
+ touch $mapWarnCalled
+ ;;
+ badLocation)
+ map=$2
+ location=$3
+
+ m="
+!!! ERROR: The right location for map files has been
+ changed for this release and the map file \`$map' has
+ not been found in the right location, but in the obsolete
+ location
+ $location
+ instead.
+
+ To fix this, please move this file into an appropriate
+ subdirectory of fonts/map in one of your texmf trees.
+
+ For more information about the changed search paths, see
+ the release notes section in the teTeX manual. You probably
+ can read this document by executing the command
+ texdoc TETEXDOC
+ else visit the web page
+ http://tug.org/texlive/mapenc.html
+"
+ warn "$m"
+ false; return 1
+ ;;
+ notFound)
+ warn "
+!!! ERROR! The map file \`$2' has not been found at all.
+
+ Either put this file into the right place or remove the
+ reference from the configuration file. An automatic way
+ to disable unavailable map files is to call
+ $progname --syncwithtrees
+
+ For manual editing, call
+ $progname --edit
+"
+
+ false; return 1
+ ;;
+ esac
+}
+
+###############################################################################
+# cleanup()
+# clean up the temp area and exit with proper exit status
+###############################################################################
+cleanup()
+{
+ rc=$1
+ $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
+ && { cd $orig_pwd && rm -rf "$tmpdir"; }
+ (exit $rc); exit $rc
+}
+
+###############################################################################
+# setupTmpDir()
+# set up a temp directory and a trap to remove it
+###############################################################################
+setupTmpDir()
+{
+ $needsCleanup && return
+
+ trap 'cleanup 1' 1 2 3 7 13 15
+ needsCleanup=true
+ mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
+}
+
+###############################################################################
+# showOptions(item)
+# show Options for an item
+###############################################################################
+showOptions()
+{
+ item=$1
+
+ case "$item" in
+ LW35)
+ echo "URWkb URW ADOBE ADOBEkb"
+ ;;
+ dvipsPreferOutline|pdftexDownloadBase14|dvipdfmDownloadBase14|dvipsDownloadBase35)
+ echo "true false"
+ ;;
+ *)
+ abort "Unknown item \"$item\". Choose one of LW35, dvipsPreferOutline, dvipsDownloadBase35, pdftexDownloadBase14 or dvipdfmDownloadBase14"
+ ;;
+ esac
+
+ (exit 0); exit 0
+}
+
+###############################################################################
+# mktexdir(args)
+# call mktexdir script, disable all features (to prevent sticky directories)
+###############################################################################
+mktexdir()
+{
+ MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2
+}
+
+###############################################################################
+# setupDestDir()
+# Assign output directories which are not yet assigned. Always use
+# the TEXMFVAR for this.
+###############################################################################
+setupDestDir()
+{
+ vartexmf=`kpsewhich -var-value=TEXMFVAR`
+
+ # dvips
+ if test -z "$dvipsoutputdir"; then
+ dvipsoutputdir=$vartexmf/fonts/map/dvips/updmap
+ fi
+
+ # pdftex
+ if test -z "$pdftexoutputdir"; then
+ pdftexoutputdir=$vartexmf/fonts/map/pdftex/updmap
+ fi
+
+ # dvipdfm
+ if test -z "$dvipdfmoutputdir"; then
+ dvipdfmoutputdir=$vartexmf/fonts/map/dvipdfm/updmap
+ fi
+
+ mktexdir "$dvipsoutputdir" "$pdftexoutputdir" "$dvipdfmoutputdir" >/dev/null 2>&1
+ for d in "$dvipsoutputdir" "$pdftexoutputdir" "$dvipdfmoutputdir"; do
+ test -d "$d" || abort "output directory \`$d' does not exist"
+ test -w "$d" || abort "output directory \`$d' is not writable"
+ done
+
+}
+
+###############################################################################
+# setupLog(cfgFile)
+# try to set up a log file in $TEXMFVAR/web2c
+###############################################################################
+setupLog()
+{
+ vartexmf=`kpsewhich -var-value=TEXMFVAR`
+ dir=$vartexmf/web2c
+ mktexdir "$dir" >/dev/null 2>&1
+ log="$dir/$progname.log"
+ if test -d "$dir" && test -w "$dir"; then
+ rm -f "$log"
+ > "$log"
+ fi
+ if test -w "$log"; then
+ if $chicken_mode; then
+ log=
+ else
+ date > "$log"
+ verboseMsg "$progname: This is $progname, version $version"
+ verboseMsg "$progname: using transcript file \`$log'"
+ fi
+ else
+ log=
+ verboseMsg "$progname: This is $progname, version $version"
+ verboseMsg "$progname: no permissions for writing $dir/$progname.log', so no transcript"
+ fi
+}
+
+###############################################################################
+# setupCfgFile()
+# find config file if none specified on cmd line.
+###############################################################################
+setupCfgFile()
+{
+ case "$cnfFile" in
+ "") cnfFile=`locateWeb2c $cnfFileShort`
+ case "$cnfFile" in
+ "") abort "config file $cnfFileShort not found (ls-R missing?)"
+ esac;;
+ esac
+ setupLog
+}
+
+###############################################################################
+# processOptions()
+# process cmd line options
+###############################################################################
+processOptions()
+{
+ while
+ case $1 in
+ --quiet|-q)
+ verbose=false;;
+ --cnffile)
+ cfgparam=1; cnfFile=$2; shift;;
+ --cnffile=*)
+ cfgparam=1; cnfFile=`echo "$1" | sed 's/--cnffile=//'`;;
+ --copy)
+ copy=true;;
+ --dry-run|-n)
+ chicken_mode=true;;
+ --dvipsoutputdir)
+ dvipsoutputdirparam=1; dvipsoutputdir=$2; shift;;
+ --dvipsoutputdir=*)
+ dvipsoutputdirparam=1; dvipsoutputdir=`echo "$1" | sed 's/--dvipsoutputdir=//'`;;
+ --pdftexoutputdir)
+ pdftexoutputdirparam=1; pdftexoutputdir=$2; shift;;
+ --pdftexoutputdir=*)
+ pdftexoutputdirparam=1; pdftexoutputdir=`echo "$1" | sed 's/--pdftexoutputdir=//'`;;
+ --dvipdfmoutputdir)
+ dvipdfmoutputdirparam=1; dvipdfmoutputdir=$2; shift;;
+ --dvipdfmoutputdir=*)
+ dvipdfmoutputdirparam=1; dvipdfmoutputdir=`echo "$1" | sed 's/--dvipdfmoutputdir=//'`;;
+ --outputdir)
+ dvipsoutputdirparam=1; dvipsoutputdir=$2
+ pdftexoutputdirparam=1; pdftexoutputdir=$2
+ dvipdfmoutputdirparam=1; dvipdfmoutputdir=$2
+ shift
+ ;;
+ --outputdir=*)
+ outputdir=`echo "$1" | sed 's/--outputdir=//'`
+ dvipsoutputdirparam=1; dvipsoutputdir=$outputdir
+ pdftexoutputdirparam=1; pdftexoutputdir=$outputdir
+ dvipdfmoutputdirparam=1; dvipdfmoutputdir=$outputdir
+ ;;
+ --setoption)
+ cfgmaint=1
+ cmd=setoption
+ case $2 in
+ *=*)
+ setoptionOpt=`echo $2 | sed 's@=.*@@'`
+ setoptionVal=`echo $2 | sed 's@[^=]*=@@'`
+ shift
+ ;;
+ *)
+ test $# -ge 3 || { abort "--setoption needs two parameters: option value"; }
+ setoptionOpt=$2; setoptionVal=$3; shift; shift
+ ;;
+ esac
+ ;;
+ --enable)
+ cfgmaint=1
+ cmd=enable
+ case $2 in
+ Map=*)
+ enableMapType=Map; enableMapFile=`echo "$2" | sed 's/Map=//'`; shift;;
+ MixedMap=*)
+ enableMapType=MixedMap; enableMapFile=`echo "$2" | sed 's/MixedMap=//'`; shift;;
+ Map|MixedMap)
+ test $# -ge 3 || { abort "--enable needs two parameters: mapType mapFile"; }
+ enableMapType=$2; enableMapFile=$3; shift; shift;;
+ *)
+ abort "--enable needs two parameters mapType mapFile";;
+ esac
+ ;;
+ --syncwithtrees)
+ cfgmaint=1
+ cmd=syncwithtrees;;
+ --disable)
+ cfgmaint=1
+ cmd=disable; disableMapFile=$2; shift
+ ;;
+ --disable=*)
+ cfgmaint=1
+ disableMapFile=`echo "$1" | sed 's/--disable=//'`
+ cmd=disable
+ ;;
+ --edit|-e)
+ cfgmaint=1
+ cmd=edit;;
+ --listmaps|-l)
+ cmd=listmaps;;
+ --listavailablemaps)
+ cmd=listavailablemaps;;
+ --showoptions)
+ cmd=showoptions; showoptionsItem=$2; shift;;
+ --showoptions=*)
+ cmd=showoptions; showoptionsItem=`echo "$1" | sed 's/--showoptions=//'`;;
+
+ --nohash)
+ texhashEnabled=false;;
+ --nomkmap)
+ mkmapEnabled=false;;
+ --help|-help|-h)
+ help;;
+ --version)
+ echo "$progname version $version"; (exit 0); exit 0;;
+ "") break;;
+ *) abort "$progname: unknown option \`$1'. Try $progname --help for help";;
+ esac
+ do test $# -gt 0 && shift; done
+
+ if test -n "$cfgparam"; then
+ if test -z "$cnfFile" || test ! -f "$cnfFile"; then
+ abort "config file \`$cnfFileShort' not found"
+ fi
+ fi
+
+ if test -n "$dvipdoutputdirparam"; then
+ if test -z "$dvipdoutputdir" || test ! -d "$dvipdoutputdir"; then
+ abort "dvips output directory \`$1' not found"
+ fi
+ fi
+ if test -n "$pdftexoutputdirparam"; then
+ if test -z "$pdftexoutputdir" || test ! -d "$pdftexoutputdir"; then
+ abort "pdftex output directory \`$1' not found"
+ fi
+ fi
+ if test -n "$dvipdfmoutputdirparam"; then
+ if test -z "$dvipdfmoutputdir" || test ! -d "$dvipdfmoutputdir"; then
+ abort "dvipdfm output directory \`$1' not found"
+ fi
+ fi
+
+}
+
+###############################################################################
+# listMaps()
+# list all maps mentioned in the config file
+###############################################################################
+listMaps()
+{
+ egrep '^(#! *)?(Mixed)?Map' "$cnfFile"
+}
+
+###############################################################################
+# listAvailableMaps()
+# list maps mentioned in the config file if they are available
+###############################################################################
+listAvailableMaps()
+{
+ # loop over each possible line in the config file (-> $line)
+ # extract the name of the map file (-> $m)
+ # check if the map file exists and in that case echo the line
+ OLDIFS=$IFS
+ IFS='
+'
+ for line in `egrep '^(#! *)?(Mixed)?Map' "$cnfFile"`; do
+ m=`echo "$line" | sed 's@[ ]*$@@; s@.*[ ]@@'`
+ kpsewhich --format=map "$m" >/dev/null && echo "$line"
+ done
+ IFS=$OLDIFS
+}
+
+###############################################################################
+# syncWithTrees()
+# update the config file: uncomment all lines which refer to map files that
+# are unavailabe in the texmf trees
+###############################################################################
+syncWithTrees()
+{
+ for i in `egrep '^(Mixed)?Map' "$cnfFile" | sed 's@.* @@'`; do
+ kpsewhich --format=map "$i" >/dev/null || echo "$i"
+ done > $tmp1
+ {
+ sed 's@/@\\/@g; s@^@/^MixedMap[ ]*@; s@$@$/s/^/#! /@' <$tmp1
+ sed 's@/@\\/@g; s@^@/^Map[ ]*@; s@$@$/s/^/#! /@' <$tmp1
+ } > $tmp2
+ sed -f $tmp2 "$cnfFile" > $tmp3 && cat $tmp3 > "$cnfFile"
+}
+
+###############################################################################
+# normalizeLines()
+# remove comments, whitespace is exactly one space, no empty lines,
+# no whitespace at end of line, one space before and after ",
+# no CR's (as in skaknew).
+###############################################################################
+normalizeLines()
+{
+ sed \
+ -e '/^[*#;%]/d' \
+ -e 's@[ ][ ]*@ @g' \
+ -e '/^ *$/d' \
+ -e 's@ $@@' \
+ -e 's@ *" *@ " @g' \
+ -e 's@" \([^"]*\) "@"\1"@g' \
+ | tr -d '\r' \
+ | sort | uniq
+}
+
+###############################################################################
+# dvips2dvipdfm()
+# reads from stdin, writes to stdout. It transforms "dvips"-like syntax into
+# "dvipdfm"-like syntax. It is a very ugly hack.
+###############################################################################
+dvips2dvipdfm()
+{
+ sed -e 's@$@ %@' \
+ -e 's@^\(\([^ ]*\).*\)@\1\2@' \
+ -e 's@\(.*<\[* *\([^ ]*\)\.enc\(.*\)\)@\1 \2@' \
+ -e '/%[^ ]*$/s@$@ default@' \
+ -e 's@\(.*<<* *\([^ ]*\)\.pf[ab].*\)@\1 \2@' \
+ -e '/%[^ ]* [^ ]*$/s@\( \([^ ]*\).*\)$@\1 \2@' \
+ -e 's@\(.*[" ]\([.0-9-][.0-9-]*\) *ExtendFont.*\)@\1 -e \2@' \
+ -e 's@\(.*[" ]\([.0-9-][.0-9-]*\) *SlantFont.*\)@\1 -s \2@' \
+ -e 's@.*%@@' |
+ awk '$1 == $3 && $2 == "default" {$2=""; $3=""} {print}' > $tmp8
+
+ egrep '^(cm|eu|la|lc|line|msam|xy)' $tmp8 \
+ | sed 's@$@ -r@; s@\(fmex[789]\) -r$@\1@'
+ egrep -v '^(cm|eu|la|lc|line|msam|xy)' $tmp8
+}
+
+
+###############################################################################
+# mkMaps()
+# the main task of this script: create the output files
+###############################################################################
+mkMaps()
+{
+ newline='
+'
+ mode=`cfgval LW35`
+ dvipsPreferOutline=`cfgval dvipsPreferOutline`
+ dvipsDownloadBase35=`cfgval dvipsDownloadBase35`
+ pdftexDownloadBase14=`cfgval pdftexDownloadBase14`
+ dvipdfmDownloadBase14=`cfgval dvipdfmDownloadBase14`
+
+ # defaults
+ test -z "$mode" && mode=URWkb
+ test -z "$dvipsPreferOutline" && dvipsPreferOutline=true
+ test -z "$dvipsDownloadBase35" && dvipsDownloadBase35=false
+ test -z "$pdftexDownloadBase14" && pdftexDownloadBase14=false
+ test -z "$dvipdfmDownloadBase14" && dvipdfmDownloadBase14=false
+
+ outputFiles="$dvipsoutputdir/download35.map
+$dvipsoutputdir/builtin35.map
+$dvipsoutputdir/psfonts_t1.map
+$dvipsoutputdir/psfonts_pk.map
+$pdftexoutputdir/pdftex_dl14.map
+$pdftexoutputdir/pdftex_ndl14.map
+$dvipdfmoutputdir/dvipdfm_dl14.map
+$dvipdfmoutputdir/dvipdfm_ndl14.map
+$dvipsoutputdir/ps2pk.map"
+
+ outputLinks="$dvipsoutputdir/psfonts.map
+$pdftexoutputdir/pdftex.map
+$dvipdfmoutputdir/dvipdfm.map"
+
+ allOutput="$outputFiles
+$outputLinks"
+
+ notfound=false
+ OLDIFS=$IFS; IFS=$newline
+ for o in $allOutput; do
+ test -f "$o" || notfound=true
+ done
+ IFS=$OLDIFS
+ $notfound || texhashEnabled=false
+
+ verboseCat <<-eof
+ updmap is creating new map files using the following configuration:
+
+ config file: \`$cnfFile'
+ dvips output directory: \`$dvipsoutputdir'
+ pdftex output directory: \`$pdftexoutputdir'
+ dvipdfm output directory: \`$dvipdfmoutputdir'
+
+ prefer outlines: \`$dvipsPreferOutline'
+ texhash enabled: \`$texhashEnabled'
+ download standard fonts (dvips): \`$dvipsDownloadBase35'
+ download standard fonts (pdftex): \`$pdftexDownloadBase14'
+ download standard fonts (dvipdfm): \`$dvipdfmDownloadBase14'
+eof
+
+ verboseMsg
+ verboseMsg "$progname: scanning for LW35 support files"
+ dvips35=`locateMap dvips35.map` || cleanup 1
+ pdftex35=`locateMap pdftex35.map` || cleanup 1
+ dvipdfm35=`locateMap dvipdfm35.map` || cleanup 1
+ ps2pk35=`locateMap ps2pk35.map` || cleanup 1
+
+ if $chicken_mode; then
+ echo
+ echo "$progname: chicken mode, skipping all output generation, goodbye."
+ exit 0
+ fi
+
+ verboseMsg
+ verboseMsg "$progname: Scanning for MixedMap entries:"
+ catMaps '^MixedMap' > $tmp1 || cleanup 1
+
+ verboseMsg
+ verboseMsg "$progname: Scanning for Map entries:"
+ catMaps '^Map' > $tmp2 || cleanup 1
+ verboseMsg
+
+ # files should be world-readable
+ umask 022
+
+ OLDIFS=$IFS; IFS=$newline
+ for file in $allOutput; do
+ rm -f "$file"
+ cat > "$file" <<-eof
+ % $file: maintained by the script updmap.
+ % Don't change this file directly. Edit texmf/web2c/$cnfFileShort
+ % and run updmap to recreate this file.
+eof
+ if test -n "$log"; then
+ cat >> "$file" <<-eof
+ % A log of the updmap run that has created this file is available here:
+ % $log
+eof
+ fi
+ done
+ IFS=$OLDIFS
+
+ verboseMsg "$progname: Generating output for ps2pk..."
+ { transLW35 "$ps2pk35"; cat $tmp1 $tmp2; } \
+ | normalizeLines >> "$dvipsoutputdir/ps2pk.map"
+
+ verboseMsg "$progname: Generating output for dvips..."
+ { transLW35 "$ps2pk35"; } \
+ | normalizeLines >> "$dvipsoutputdir/download35.map"
+ { transLW35 "$dvips35"; } \
+ | normalizeLines >> "$dvipsoutputdir/builtin35.map"
+
+ if test "x$dvipsDownloadBase35" = xtrue; then
+ dftdvips=$ps2pk35
+ else
+ dftdvips=$dvips35
+ fi
+ { transLW35 "$dftdvips"; cat $tmp1 $tmp2; } \
+ | normalizeLines >> "$dvipsoutputdir/psfonts_t1.map"
+ { transLW35 "$dftdvips"; cat $tmp2; } \
+ | normalizeLines >> "$dvipsoutputdir/psfonts_pk.map"
+
+ verboseMsg "$progname: Generating output for pdftex..."
+ # remove PaintType due to Sebastian's request
+ { transLW35 "$pdftex35"; cat $tmp1 $tmp2; } \
+ | grep -v PaintType | grep . > $tmp3
+ { transLW35 "$dvipdfm35"; cat $tmp1 $tmp2; } \
+ | grep -v PaintType | grep . > $tmp6
+ { transLW35 "$ps2pk35"; cat $tmp1 $tmp2; } \
+ | grep -v PaintType | grep . > $tmp7
+
+ <$tmp3 normalizeLines >> "$pdftexoutputdir/pdftex_ndl14.map"
+ <$tmp7 normalizeLines >> "$pdftexoutputdir/pdftex_dl14.map"
+
+ verboseMsg "$progname: Generating output for dvipdfm..."
+ <$tmp7 normalizeLines | dvips2dvipdfm | normalizeLines >> "$dvipdfmoutputdir/dvipdfm_dl14.map"
+ <$tmp6 normalizeLines | dvips2dvipdfm | normalizeLines >> "$dvipdfmoutputdir/dvipdfm_ndl14.map"
+ verboseMsg "$progname: All output generated."
+ verboseMsg
+
+ setupSymlinks
+ $texhashEnabled && { $verbose && texhash || texhash >/dev/null 2>&1; }
+
+ verboseMsg
+ verboseMsg "$progname: Files generated:"
+ OLDIFS=$IFS; IFS=$newline
+ ls -l $outputFiles | verboseCat
+ IFS=$OLDIFS
+ verboseMsg
+
+ verboseMsg "$progname: Map file links or copies:"
+ ls -l "$dvipsoutputdir"/psfonts.map \
+ "$pdftexoutputdir"/pdftex.map \
+ "$dvipdfmoutputdir"/dvipdfm.map | verboseCat
+
+ if test -f $mapWarnCalled; then
+ m="
+
+!!! NOTICE:
+
+ With this release, the search paths for map files have been changed
+ and we have found that some files exist in the new path as well as
+ in the obsolete path.
+
+ This is not an error per se, but please consider removing duplicates
+ from the old location and search the above output"
+
+ test -n "$log" && m="$m or the transcript file
+ $log
+ "
+
+ m="$m for warnings.
+
+ For more information about the changed search paths, see
+ the release notes section in the teTeX manual. You probably
+ can read this document by executing the command
+ texdoc TETEXDOC
+ else visit the web page
+ http://tug.org/texlive/mapenc.html
+"
+ warn "$m"
+ fi
+
+ verboseMsg
+ verboseMsg "$progname: Done."
+ return 0
+}
+
+###############################################################################
+# main()
+# execution starts here
+###############################################################################
+main()
+{
+ # initialize global variables
+ progname=updmap
+ cmd=
+ log=
+ chicken_mode=false
+ link_cmd="ln -s"
+ copy_cmd="cp"
+ copy=false
+ orig_pwd=`pwd`
+
+ cfgparam=
+ outputdirparam=
+ cfgmaint=
+ texhashEnabled=true
+ mkmapEnabled=true
+ verbose=true
+ needsCleanup=false
+
+ cnfFileShort=updmap.cfg
+ cnfFile=
+ dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir=
+ : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`}
+
+ tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+ tmp1=$tmpdir/a
+ tmp2=$tmpdir/b
+ tmp3=$tmpdir/c
+ tmp4=$tmpdir/d
+ tmp5=$tmpdir/e
+ tmp6=$tmpdir/f
+ tmp7=$tmpdir/g
+ tmp8=$tmpdir/h
+ mapWarnCalled=$tmpdir/mapWarnCalled
+ catMapsFailed=$tmpdir/catMapsFailed
+
+ processOptions ${1+"$@"}
+
+ case "$cmd" in
+ showoptions) showOptions "$showoptionsItem"; (exit 0); exit;;
+ help) help; (exit 0); exit;;
+ esac
+
+ setupCfgFile
+ case "$cmd" in
+ listmaps) listMaps; (exit 0); exit;;
+ listavailablemaps) listAvailableMaps; (exit 0); exit;;
+ esac
+
+ # keep a copy of config file, so that we can see if the file was modified
+ setupTmpDir
+
+ if test -n "$cfgmaint"; then
+ if test -z "$cfgparam"; then
+ co=`"$TEXMFMAIN/texconfig/tcfmgr" --tmp $tmpdir --cmd co --file $cnfFileShort`
+ test $? = 0 || cleanup 1
+ set x $co; shift
+ id=$1; cnfFile=$3; orig=$4
+ verboseMsg "$progname: initial config file is \`$orig'"
+ else
+ verboseMsg "$progname: config file is \`$cnfFile'"
+ cp "$cnfFile" $tmp5
+ fi
+
+ case "$cmd" in
+ edit)
+ ${VISUAL-${EDITOR-vi}} "$cnfFile";;
+ setoption)
+ setOption "$setoptionOpt" "$setoptionVal";;
+ enable)
+ enableMap "$enableMapType" "$enableMapFile";;
+ disable)
+ disableMap "$disableMapFile";;
+ syncwithtrees)
+ syncWithTrees;;
+ esac
+
+ unchanged=true
+ if test -z "$cfgparam"; then
+ ci=`"$TEXMFMAIN/texconfig/tcfmgr" --tmp $tmpdir --cmd ci --id $id`
+ test $? = 0 || cleanup 1
+ case "$ci" in
+ "") : ;;
+ *) unchanged=false
+ cnfFile=$ci
+ ;;
+ esac
+ else
+ cmp "$cnfFile" $tmp5 >/dev/null 2>&1 || unchanged=false
+ fi
+ case $unchanged in
+ true) if $mkmapEnabled; then
+ verboseMsg "$progname: configuration (updmap.cfg) unchanged. Map files will not be recreated."
+ mkmapEnabled=false
+ else
+ verboseMsg "$progname: configuration (updmap.cfg) unchanged."
+ fi;;
+ *)
+ verboseMsg "$progname: configuration file updated: \`$cnfFile'";;
+ esac
+ fi
+
+ $mkmapEnabled || return
+ setupDestDir
+ mkMaps
+}
+
+main ${1+"$@"}
+cleanup 0
diff --git a/Master/bin/i386-kfreebsd/updmap-sys b/Master/bin/i386-kfreebsd/updmap-sys
new file mode 100755
index 00000000000..6f3c8365658
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/updmap-sys
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+# updmap-sys: Thomas Esser, public domain.
+
+# wrapper script for updmap with TEXMFVAR and TEXMFCONFIG set to
+# TEXMFSYSVAR / TEXMFSYSCONFIG
+
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+unset RUNNING_BSH
+
+export PATH
+
+# hack around a bug in zsh:
+test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+
+v=`kpsewhich -var-value TEXMFSYSVAR`
+c=`kpsewhich -var-value TEXMFSYSCONFIG`
+
+TEXMFVAR="$v"
+TEXMFCONFIG="$c"
+export TEXMFVAR TEXMFCONFIG
+
+exec updmap ${1+"$@"}
diff --git a/Master/bin/i386-kfreebsd/utf8mex b/Master/bin/i386-kfreebsd/utf8mex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/utf8mex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/vftovp b/Master/bin/i386-kfreebsd/vftovp
new file mode 100755
index 00000000000..85e5a893353
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/vftovp
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/vlna b/Master/bin/i386-kfreebsd/vlna
new file mode 100755
index 00000000000..c886335ca4e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/vlna
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/vpe b/Master/bin/i386-kfreebsd/vpe
new file mode 120000
index 00000000000..ed1727b6ff8
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/vpe
@@ -0,0 +1 @@
+../../texmf-dist/scripts/vpe/vpe.pl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/vpl2ovp b/Master/bin/i386-kfreebsd/vpl2ovp
new file mode 120000
index 00000000000..4588c86090a
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/vpl2ovp
@@ -0,0 +1 @@
+../../texmf-dist/scripts/accfonts/vpl2ovp \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/vpl2vpl b/Master/bin/i386-kfreebsd/vpl2vpl
new file mode 120000
index 00000000000..e7a12e7dad4
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/vpl2vpl
@@ -0,0 +1 @@
+../../texmf-dist/scripts/accfonts/vpl2vpl \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/vptovf b/Master/bin/i386-kfreebsd/vptovf
new file mode 100755
index 00000000000..f1f1bb56206
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/vptovf
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/weave b/Master/bin/i386-kfreebsd/weave
new file mode 100755
index 00000000000..c1044608359
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/weave
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/xdvi b/Master/bin/i386-kfreebsd/xdvi
new file mode 100755
index 00000000000..29632097df1
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xdvi
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# This is the xdvi wrapper script for teTeX, version 0.2.
+# Copyright Thomas Esser, 1998. Permission to distribute under the terms
+# of the GNU general public license version 2 or later.
+
+# This script sets some environment variables to make sure that xdvi's
+# resource file in $XDVIINPUTS/xdvi is read by xdvi.bin.
+
+test -f /bin/sh5 && test -z "$RUNNING_SH5" \
+ && test x"`(uname -s) 2>&1`" = xULTRIX \
+ && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; }
+RUNNING_SH5=
+
+test -f /bin/bsh && test -z "$RUNNING_BSH" \
+ && test x"`(uname -s) 2>&1`" = xAIX \
+ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+RUNNING_BSH=
+
+# -help and -version only used to work if they were the only options,
+# so the "-name xdvi" parameter wasn't used in that case. With current
+# xdvik, it should work in any case, but we keep this logic for compatibility
+# with older xdvik and plain xdvi versions.
+have_basename=`basename foo/bar 2>&1 | grep -i 'not found'`
+if [ "$have_basename"xxx = "xxx" ]; then
+ BASE_NAME=`basename $0`
+else
+ BASE_NAME=`echo $0 | sed 's!.*/!!'`
+fi
+
+case "$#:$1" in
+ 1:-help|1:-version)
+ NAMEOPT=;;
+ *)
+ NAMEOPT="-name $BASE_NAME";;
+esac
+
+xdviappfile=`kpsewhich -progname=xdvi --format='other text files' XDvi`
+if test -n "$xdviappfile"; then
+ xdviappdir=`dirname "$xdviappfile"`
+ xdviapppath="${xdviappdir}/%l_%t/%N:${xdviappdir}/%N"
+
+ # For R3, we have to set XAPPLRESDIR.
+ ### SU: removed, xdvik won't work with R3 anyway, and XAPPLRESDIR is
+ ### for user customizations in current X
+ ### XAPPLRESDIR="$xdviappdir"; export XAPPLRESDIR
+
+ # For R4 or later, we have to set XFILESEARCHPATH, since XAPPLRESDIR might
+ # be ignored (if XUSERFILESEARCHPATH is set)
+ XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH
+fi
+
+exec xdvi-xaw $NAMEOPT ${1+"$@"}
diff --git a/Master/bin/i386-kfreebsd/xdvi-xaw b/Master/bin/i386-kfreebsd/xdvi-xaw
new file mode 100755
index 00000000000..bb05765bc93
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xdvi-xaw
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/xdvipdfmx b/Master/bin/i386-kfreebsd/xdvipdfmx
new file mode 100755
index 00000000000..5c3dba615c6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xdvipdfmx
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/xelatex b/Master/bin/i386-kfreebsd/xelatex
new file mode 120000
index 00000000000..ef9fe406fd6
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xelatex
@@ -0,0 +1 @@
+xetex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/xetex b/Master/bin/i386-kfreebsd/xetex
new file mode 100755
index 00000000000..e80fc32a95d
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xetex
Binary files differ
diff --git a/Master/bin/i386-kfreebsd/xmltex b/Master/bin/i386-kfreebsd/xmltex
new file mode 120000
index 00000000000..f68cc91498e
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xmltex
@@ -0,0 +1 @@
+pdftex \ No newline at end of file
diff --git a/Master/bin/i386-kfreebsd/xmltools b/Master/bin/i386-kfreebsd/xmltools
new file mode 120000
index 00000000000..873458dcc92
--- /dev/null
+++ b/Master/bin/i386-kfreebsd/xmltools
@@ -0,0 +1 @@
+../../texmf-dist/scripts/context/stubs/unix/xmltools \ No newline at end of file