summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2011-11-04 09:11:23 +0000
committerNorbert Preining <preining@logic.at>2011-11-04 09:11:23 +0000
commitaab0d1712319a071f5e2570eb3a722e573f090da (patch)
treefef2828f74f179e151328144071e667852cb1995
parentb9f06f53541ee2d9946f321c7f97acbac1967e83 (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
-rw-r--r--Build/source/README.distro63
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