diff options
author | Norbert Preining <preining@logic.at> | 2011-11-04 09:11:23 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2011-11-04 09:11:23 +0000 |
commit | aab0d1712319a071f5e2570eb3a722e573f090da (patch) | |
tree | fef2828f74f179e151328144071e667852cb1995 /Build/source/README.distro | |
parent | b9f06f53541ee2d9946f321c7f97acbac1967e83 (diff) |
add some text from the email I wrote to tldistro to the README.distro
git-svn-id: svn://tug.org/texlive/trunk@24487 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/README.distro')
-rw-r--r-- | Build/source/README.distro | 63 |
1 files changed, 60 insertions, 3 deletions
diff --git a/Build/source/README.distro b/Build/source/README.distro index 9b242f772a5..0a3fb25c263 100644 --- a/Build/source/README.distro +++ b/Build/source/README.distro @@ -82,9 +82,66 @@ For a `staged install' (see Automake manual 12.4), e.g., all installation paths are prefixed by the value of DESTDIR. -2. XXXXXXXX -=========== -To be filled in. +2. PACKAGING FOR A DISTRO +========================= +(np, 2011-11-04, email to tldistro) +(this describes Debian packaging, but the basic ideas are the +same for all distros) + +Let us the few important things in turn: +- ls-R files +- updmap-sys/updmap.cfg +- fmtutil-sys/fmtutil.cnf +- fmtutil-sys/language.dat/def/lua.def + +All these files depend on the actually installed packages. So you +should never never use the pre-shipped files (updmap.cfg, ...), because +they refer to *all* fonts in a full installation. + +But if you want to allow for smooth upgrades etc, and partial installs, +you cannot do that. + +So the Debian way for these files is: +- at package build time we knoe which formats/font maps/hypehn patterns + there are, and create snippets for these configuration file, and + at install time put them into /etc/texmf/updmap.d, fmtutil.d, hyphen.d +- after the package has been installed the configuration routine does: + . assemble the pieces together to updmap.cfg/fmtutil.cnf/language.* + . run the necessary commands (also determined at package *build* time, + that is updmap-sys, fmtutil --whatever, etc) +Furthermore, in Debian there is another requirement, namely that +if a sysadm changes confiurations files (hereafter called conffiles) +in /etc, and the package is only removed (that is, the conffiles are +*NOT* deleted) but NOT purged (purged = also conffiles removed), +then a later installation of the package has to honor the changes the +sysadm made. + +That means, there will remain snippets in /etc/updmap.d (for example) +if a font package has been removed, but not purged. THese snippets +should of course NOT be merged into the main config file. So we ship +in addition a file /var/lib/texmf/fmt.d/.... and check at assemble +time if this file is present. If it is present, then the snippet +is used, if not, then it is NOT used. +(BTW, this also happens during partial upgrades, so if you are serious +about packaging, think about that, too). + +Well, that is the story at least till 2007. In later version of the Debian +packages we are now something called "triggers", where a central package +(in our case "tex-common") shows interest in a certain directory, namely +the directories /etc/texmf/fmtutil.d etc (all of them), and if a file +is dropped there or changed there, only some specific code in tex-common +is executed. THis way we can reduce the calls to mktexlsr and updmap-sys +a *LOT* (think about installing every collection of TeX Live, and run +mktexlsr, fmtutil-sys --all, updmap-sys after *EACH* collection, versus +running it only once or twice!). But this is Debian specific, and probably +no other distribution has a similar system (although very useful). + +Puuuuh, long email. BTW, there are loads of documents in the tex-common +package of Debian: http://packages.debian.org/sid/tex-common, especially +the main documents Debian-TeX-Policy and TeX-on-Debian. Although a bit +outdated, they describe the reality quite closely. Get the .deb and +unpack it with ar ;-) + Happy building. Please use the tldistro list for questions or |