From 677388a3c8652b310f83074efd620cc0a052ed4a Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 13 May 2012 03:53:19 +0000 Subject: multi updmap integration, we have now separate updmap.cfg files git-svn-id: svn://tug.org/texlive/trunk@26320 c570f23f-e606-0410-a88d-b1316a301751 --- Master/install-tl | 7 +- Master/texmf-dist/web2c/updmap.cfg | 236 +++++++++++++++++++++++++++++++ Master/texmf/scripts/texlive/tlmgr.pl | 133 +++++------------ Master/texmf/web2c/updmap-hdr.cfg | 107 ++------------ Master/texmf/web2c/updmap.cfg | 259 +--------------------------------- Master/tlpkg/TeXLive/TLUtils.pm | 67 +-------- 6 files changed, 291 insertions(+), 518 deletions(-) create mode 100644 Master/texmf-dist/web2c/updmap.cfg (limited to 'Master') diff --git a/Master/install-tl b/Master/install-tl index 0e1c9357456..dc8a43bb72d 100755 --- a/Master/install-tl +++ b/Master/install-tl @@ -862,11 +862,10 @@ operations might be disturbed.\n\n"; "$TEXMFSYSVAR/web2c/fmtutil.cnf", "$TEXMFLOCAL/web2c/fmtutil-local.cnf"); - mkdirhier "$vars{'TEXMFSYSCONFIG'}/web2c"; - info("writing updmap.cfg to $TEXMFSYSCONFIG/web2c/updmap.cfg\n"); + mkdirhier "$TEXDIR/texmf-dist/web2c"; + info("writing updmap.cfg to $TEXDIR/texmf-dist/web2c/updmap.cfg\n"); TeXLive::TLUtils::create_updmap ($usedtlpdb, - "$TEXMFSYSCONFIG/web2c/updmap.cfg", - "$TEXMFLOCAL/web2c/updmap-local.cfg"); + "$TEXDIR/texmf-dist/web2c/updmap.cfg"); info("writing language.dat to $TEXMFSYSVAR/tex/generic/config/language.dat\n"); TeXLive::TLUtils::create_language_dat($usedtlpdb, diff --git a/Master/texmf-dist/web2c/updmap.cfg b/Master/texmf-dist/web2c/updmap.cfg new file mode 100644 index 00000000000..76ebbe6d971 --- /dev/null +++ b/Master/texmf-dist/web2c/updmap.cfg @@ -0,0 +1,236 @@ +# +# updmap.cfg +# TEXMFDIST +# only contains the actual maps +# settings are in TEXMFMAIN + +################################################################ +# Map files. +################################################################ +# +# There are two possible entries: Map and MixedMap. Both have one additional +# argument: the filename of the map file. MixedMap ("mixed" means that +# the font is available as bitmap and as outline) lines will not be used +# in the default map of dvips if dvipsPreferOutline is false. Inactive +# Map files should be marked by "#! " (without the quotes), not just #. +# + +Map OrnementsADF.map +Map ArrowsADF.map +Map BulletsADF.map +MixedMap allrunes.map +Map euler.map +MixedMap cm.map +MixedMap cmextra.map +MixedMap cyrillic.map +MixedMap latxfont.map +MixedMap symbols.map +Map uaq.map +Map antt.map +Map arabi.map +MixedMap arabtex.map +Map archaicprw.map +Map arev.map +Map bkaiu.map +Map bsmiu.map +Map gbsnu.map +Map gkaiu.map +Map ascii.map +Map aspectratio.map +Map augie.map +Map auncial.map +Map aurical.map +Map ybv.map +MixedMap bbold.map +Map belleek.map +Map bera.map +Map ybd.map +Map sqrcaps.map +Map boondox.map +Map pbsi.map +Map burmese.map +Map calligra.map +Map cantarell.map +Map cmin.map +MixedMap cbgreek-full.map +MixedMap ccpl.map +Map ccicons.map +Map clm.map +Map chemarrow.map +Map cjhebrew.map +MixedMap cmtext-bsr-interpolated.map +Map cm-lgc.map +MixedMap cm-super-t1.map +MixedMap cm-super-t2a.map +MixedMap cm-super-t2b.map +MixedMap cm-super-t2c.map +MixedMap cm-super-ts1.map +MixedMap cm-super-x2.map +Map cmcyr.map +MixedMap cmll.map +Map comfortaa.map +Map original-context-symbol.map +Map CountriesOfEurope.map +MixedMap csother.map +MixedMap cstext.map +Map cyklop.map +Map dejavu-type1.map +Map dictsym.map +Map dstroke.map +Map droid.map +Map dutchcal.map +Map yes.map +Map epigrafica.map +Map epiolmec.map +MixedMap esint.map +Map ESSTIX.map +Map esvect.map +MixedMap ethiop.map +MixedMap eurosym.map +Map fdsymbol.map +Map fge.map +Map foekfont.map +Map fonetika.map +Map tlwg.map +Map fourier-utopia-expert.map +Map fourier.map +Map frcursive.map +Map garuda-c90.map +Map gfsartemisia.map +Map gfsbaskerville.map +Map gfsbodoni.map +Map gfscomplutum.map +Map gfsdidot.map +Map gfsneohellenic.map +Map gfsporson.map +Map gfssolomos.map +Map yfrak.map +Map ugq.map +Map grverb.map +MixedMap hfbright.map +MixedMap iby.map +Map fi4.map +Map Acorn.map +Map AnnSton.map +Map ArtNouv.map +Map ArtNouvc.map +Map Carrickc.map +Map Eichenla.map +Map Eileen.map +Map EileenBl.map +Map Elzevier.map +Map GotIn.map +Map GoudyIn.map +Map Kinigcap.map +Map Konanur.map +Map Kramer.map +Map MorrisIn.map +Map Nouveaud.map +Map Romantik.map +Map Rothdn.map +Map RoyalIn.map +Map Sanremo.map +Map Starburst.map +Map Typocaps.map +Map Zallman.map +Map iwona.map +KanjiMap otf-@kanjiEmbed@.map +KanjiMap otf-cktx.map +KanjiMap otf-up-@kanjiEmbed@.map +Map kerkis.map +Map knitfont.map +Map kpfonts.map +Map kurier.map +Map lato.map +Map libertine.map +Map yly.map +Map linearA.map +Map l7x-urwvn.map +Map lm.map +MixedMap lxfonts.map +MixedMap manfnt.map +Map marvosym.map +Map mathabx.map +Map mdbch.map +Map mdput.map +Map mdugm.map +Map mdsymbol.map +Map troff-updmap.map +MixedMap mflogo.map +Map MnSymbol.map +MixedMap mongolian.map +MixedMap musix.map +Map ntx.map +Map norasi-c90.map +Map cherokee.map +Map ocrb.map +Map oinuit.map +Map omega.map +Map opensans.map +Map paratype-type1.map +Map phaistos.map +MixedMap pigpen.map +MixedMap plother.map +MixedMap pltext.map +Map ap.map +Map prodint.map +Map charter.map +Map fpls.map +Map pazo.map +Map utopia.map +KanjiMap morisawa.map +KanjiMap ptex-@kanjiEmbed@@kanjiVariant@.map +Map pxfonts.map +Map pxtx.map +Map recycle.map +Map yrd.map +MixedMap rsfs.map +Map rsfso.map +Map skt.map +Map sansmathaccent.map +MixedMap semaf.map +Map SkakNew.map +Map starfont.map +Map icelandic.map +MixedMap stmaryrd.map +Map tabvar.map +Map mathpple.map +Map qag.map +Map qbk.map +Map qcr.map +Map qcs.map +Map qhv.map +Map qpl.map +Map qtm.map +Map qzc.map +Map tfrupee.map +MixedMap tipa.map +MixedMap trajan.map +Map txfonts.map +Map gptimes.map +Map umj.map +MixedMap dvng.map +Map yv1.map +Map yv2.map +Map yv3.map +Map yvo.map +Map yvt.map +Map arevvn.map +Map chartervn.map +Map cmbrightvn.map +Map concretevn.map +Map grotesqvn.map +Map txttvn.map +Map urwvn.map +MixedMap vnrother.map +MixedMap vnrtext.map +Map vntopia.map +Map dgj.map +Map dmj.map +Map mc2j.map +Map mcj.map +Map mr2j.map +Map mrj.map +MixedMap wasy.map +MixedMap xypic.map +MixedMap yhmath.map diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl index 647eb29510d..04460f71290 100755 --- a/Master/texmf/scripts/texlive/tlmgr.pl +++ b/Master/texmf/scripts/texlive/tlmgr.pl @@ -632,47 +632,21 @@ sub handle_execute_actions chomp(my $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`); chomp(my $TEXMFSYSCONFIG = `kpsewhich -var-value=TEXMFSYSCONFIG`); chomp(my $TEXMFLOCAL = `kpsewhich -var-value=TEXMFLOCAL`); + chomp(my $TEXMFDIST = `kpsewhich -var-value=TEXMFDIST`); # # maps handling - # if enabled and disabled -> do nothing - # if only enabled -> enable it - # if only disabled -> disable it - # if the option "generate_updmap" is set, then simply ignore all that - # and run the equivalent of tlmgr generate updmap { my $updmap_run_needed = 0; - my %do_enable; - my %do_disable; for my $m (keys %{$::execute_actions{'enable'}{'maps'}}) { $updmap_run_needed = 1; - $do_enable{$m} = 1; } for my $m (keys %{$::execute_actions{'disable'}{'maps'}}) { $updmap_run_needed = 1; - if (defined($do_enable{$m})) { - # we are upgrading because it is disabled and enabled, so - # delete the entry in do_enable, it is already - delete $do_enable{$m}; - } else { - # not new installed, so simply removed - $do_disable{$m} = 1; - } } - if ($updmap_run_needed && $localtlpdb->option("generate_updmap")) { - my $dest = "$TEXMFSYSCONFIG/web2c/updmap.cfg"; - my $localcfg = "$TEXMFLOCAL/web2c/updmap-local.cfg"; - info("tlmgr: generate_updmap writing new $dest\n"); - TeXLive::TLUtils::create_updmap($localtlpdb, $dest, $localcfg); - } else { - for my $m (keys %do_disable) { - $errors += do_cmd_and_check("updmap-sys --nomkmap --nohash --disable $m"); - } - for my $m (keys %do_enable) { - my $str = "updmap-sys --nomkmap --nohash --enable " . - $::execute_actions{'enable'}{'maps'}{$m} . "=$m"; - $errors += do_cmd_and_check($str); - } + if ($updmap_run_needed) { + my $dest = "$TEXMFDIST/web2c/updmap.cfg"; + TeXLive::TLUtils::create_updmap($localtlpdb, $dest); } $errors += do_cmd_and_check("updmap-sys") if $updmap_run_needed; } @@ -3962,17 +3936,15 @@ sub action_generate { init_local_db(); # we create fmtutil.cnf, language.dat, language.def in TEXMFSYSVAR and - # updmap.cfg in TEXMFSYSCONFIG. The reason is that calls to - # updmap-sys (as is done by the tlmgr update call when packages with - # maps are installed) will create the updmap.cfg file in - # TEXMFSYSCONFIG. It would start from the version in TEXMFSYSVAR, but - # after that the TEXMFSYSCONFIG takes precedence and thus the - # mechanism explained in updmap.cfg header would not work. We don't - # want that. So just use TEXMFSYSCONFIG from the start. + # updmap.cfg in TEXMFDIST. The reason is that we are now using an + # implementation of updmap that supports multiple updmap files. + # Local adaptions should not be made there, but only in TEXMFLOCAL + # or TEXMF(SYS)CONFIG updmap.cfg # chomp (my $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`); chomp (my $TEXMFSYSCONFIG = `kpsewhich -var-value=TEXMFSYSCONFIG`); chomp (my $TEXMFLOCAL = `kpsewhich -var-value=TEXMFLOCAL`); + chomp (my $TEXMFDIST = `kpsewhich -var-value=TEXMFDIST`); # we do generate all config files, treat $opts{"dest"} as pattern # and make it append the respective extensions @@ -4050,10 +4022,9 @@ sub action_generate { } } elsif ($what =~ m/^updmap$/i) { - my $dest = $opts{"dest"} || "$TEXMFSYSCONFIG/web2c/updmap.cfg"; - my $localcfg = $opts{"localcfg"} || "$TEXMFLOCAL/web2c/updmap-local.cfg"; + my $dest = $opts{"dest"} || "$TEXMFDIST/web2c/updmap.cfg"; debug("$prg: writing new updmap.cfg to $dest\n"); - TeXLive::TLUtils::create_updmap($localtlpdb, $dest, $localcfg); + TeXLive::TLUtils::create_updmap($localtlpdb, $dest); if ($opts{"rebuild-sys"}) { do_cmd_and_check("updmap-sys"); @@ -6179,7 +6150,6 @@ the definitive list): sys_bin (directory to which executables are linked by the path action) sys_man (directory to which man pages are linked by the path action) sys_info (directory to which Info files are linked by the path action) - generate_updmap (run the equivalent of tlmgr generate updmap on changes) desktop_integration (Windows-only: create Start menu shortcuts) fileassocs (Windows-only: change file associations) multiuser (Windows-only: install for all users) @@ -6235,9 +6205,6 @@ The C, C, and C options are used on Unix-like systems to control the generation of links for executables, info files and man pages. See the C action for details. -For the C option, see the C section in -L]... I">. - The last three options control behaviour on Windows installations. If C is set, then some packages will install items in a sub-folder of the Start menu for C, documentation, etc. If @@ -6628,31 +6595,20 @@ Do not ask for confirmation, remove immediately. =back The C action overwrites any manual changes made in the -respective files: it recreates them from scratch. - -For C and the language files, this is normal, and both the TeX -Live installer and C routinely call C for them. - -For C, however, C does I use C by default, -because the result would be to disable all maps which have been manually -installed via S>, e.g., for proprietary or local -fonts, which has been the standard method for adding fonts to TeX -installations for years. Rather, the C action only -incorporates the changes in the C<--localcfg> file mentioned below. - -Notwithstanding the above, if you only use the fonts and font packages -within TeX Live, and rigorously maintain your local fonts (if any) using -C, there is nothing wrong with using C. It can be helpful in moving from release to release, -especially. We use it ourselves to generate the C file in -the live source repository. If you want to commit yourself to using -C, you can set the C option and -C will run C for you on update. - -In any case, C updates and maintains the final C in -C (while the other generated files are in -C), because that is the location that C (via -C) historically uses. +respective files: it recreates them from scratch based on the +information of the installed packages, plus local adaptions. + +The TeX Live installer and C routinely call C for +all of these files. + +For managing your own fonts, please see the documentation of +updmap, which supports multiple updmap.cfg files. So by simply +editing TEXMFLOCAL's updmap.cfg they will be accounted for. + +In any case, C updates and maintains C in +C (while the other generated files are in +C), because that is the location where the fonts +are installed. In more detail: C remakes any of the five config files C, C, C, C, @@ -6660,26 +6616,27 @@ and C from the information present in the local TLPDB, plus locally-maintained files. The locally-maintained files are C, -C, C, C, -or C, searched for in C in the respective -directories. If they are present, the final file is made by starting +C, C, or C, +searched for in C in the respective directories. +The formerly supported C is not supported anymore, +since C now supports multiple updmap.cfg files, so local +additions can be put into an updmap.cfg file in TEXMFLOCAL. +If local additions are present, the final file is made by starting with the main file, omitting any entries that the local file specifies to be disabled, and finally appending the local file. Local files specify entries to be disabled with a comment line, namely one of these: - #!NAME %!NAME --!NAME -where C and C use C<#>, C and +where C uses C<#>, C and C use C<%>, and C use C<-->. In any -case, the I is the respective format name, map file name (include -the C<.map> extension), or hyphenation pattern identifier. Examples: +case, the I is the respective format name, or hyphenation pattern +identifier. Examples: #!pdflatex - #!lm.map %!german --!usenglishmax @@ -6692,20 +6649,9 @@ except for the special disabling lines, the local files follow the same syntax as the master files. The form C recreates both the C, the -C and the Cfiles, while the forms with +C and the C files, while the forms with extension recreates only the given language file. -Special consideration for updmap.cfg: in addition to font map files, -this file specifies the setting of five options: C, -C, C, C, and -C. The defaults for these as set in -C are usually fine. If you want to change them, you can -include changed settings for any or all of these five options in your -C file and they will be respected by C. For example: - - dvipsDownloadBase35 true - Options: =over 4 @@ -6713,7 +6659,7 @@ Options: =item B<--dest> I specifies the output file (defaults to the respective location in -C for C and C, and C +C for C and C, and C for C). If C<--dest> is given to C, it serves as a basename onto which C<.dat> will be appended for the name of the C output file, C<.def> will be @@ -6751,13 +6697,6 @@ The respective locations are as follows: web2c/fmtutil.cnf (and fmtutil-local.cnf); web2c/updmap.cfg (and updmap-local.cfg). -Final repetition: as explained above, C does I use -C for font map files. Therefore, if you want to make -use of C, you must run C -and C yourself after making any local changes. If you -make yourself responsible for rigorously using C), set -C