Rewriting fmtutil in Perl
TeX Live 2015 is still a few months of, but one of the things I am planning for it is to rewrite fmtutil in Perl, and change its functionality slightly. This follows the rewrite of updmap in the last years. The main user-visible change will be that fmtutil, like updmap will go “multi”, that means it will read all fmtutil.cnf files instead of only the first.
Up to now we are generating the final fmtutil.cnf from the information in the texlive.tlpdb, merged/overridden by fmtutil-local.cnf. This approach has worked for years, but I wouldn’t call it standard, and it needs special treatment of the -local.cnf file. Furthermore, user-specific adaptions are not possible.
Font configuration had the same problem, and we solved it by reading all available updmap.cfg files. This allows for
- separation of the information into the trees where the respective files are provided
- easier upgradability with preserving of changes
- per-user font configuration can easily be handled.
For a more detailed explanation on how multi-updmap works, see this post.
The same reasoning actually applies to formats, and in addition we wanted to unify the sources. At the moment there is a shell script for Unix, and an executable (compiled) fmtutil for Windows. By rewriting it in perl we can use the same script on both Windows and Unix, and new features can easily be applied and shipped.
I am developing this (and some other scripts) in my GitHub project texlive-rewrite, in case you are interested, or want to contribute.
Current status: working on both Windows and Unix on normal invocations, but I want to create also a test suite to check all command line options. As soon as the new Perl script is operational, I will publish a detailed explanation following the one for updmap.
Hope you enjoy it!
We live in 2015. Wouldn’t Python be nicer? Jihn
No, because Perl is easier to have on all architectures/os, while python is not guaranteed, plus python versioning problem (2 vs 3 vs who knows).