[tex-live] hyphen -- nearly all languages added by default

Norbert Preining preining at logic.at
Thu Jun 16 15:59:07 CEST 2016


Hi Werner,

On Thu, 16 Jun 2016, Dr. Werner Fink wrote:
> Indeed using TeXLive::TLPDB creates via
> 
>   our $hyphen = "$texdir/tex/generic/config/language.dat";
>   our $hlocal = "/var/lib/texmf/config/language.dat";
>   TeXLive::TLUtils::create_language_dat($tlpdb, $hyphen, $hlocal);
> 
> the same content as already in archive/hyphen-base.tar.xz ...

But from *which* tlpdb did you generate the language.dat?

My guess is that you are misundersstanding TLPDBs. They describe
the status of the TeX Live installation at *that*point*.

That means, the TLPDB from tlnet (or DVD, or svn) contains *all*
packages - because all are installed, and thus also all AddHyphen
lines.

> That is what I've tried but the TLPDB does include all AddHyphen lines
> found in texlive.tlpdb but do not skip the not installed packages.

This is incorrect - or you are using the wrong TLPDB. I just started
install-tl and selected scheme-minimal, and then grepped fro AddHyphen
lines
[~/tlfoo/2016/tlpkg] grep AddHyphen texlive.tlpdb 
norbert at wienerschnitzel:   1
[~/tlfoo/2016/tlpkg] 

Nothing.

THe reason is that the installer *creates* a new TLPDB, and adds only
those packages that are actually installed.

On the Debian side we don't do this, because we don't allow for
tlmgr to do anything but user mode, and thus we *know* at package
build time what are the execute actions.

Again my guess: You are doing this from the *full* tlpdb from which you
are selecting package to be installed.

My suggestion: You need to create a *new* tlpdb, and for each package
$pkg installed into the package you include in the rpm, you need to 
collect the execute lines ($tlpobj->executes plus some utility
functions in TLUtils).

Another approach would be that:
* each rom ships the .tlpobj files for teh TL packages included in it
* on installation the tlpobj are *added* to the user computer tlpdb
* language.dat (etc) is generated in the postinst form the user computer tlpdb
But that sounds complicated.

Don't you have something like "many packages contribute to one configuration 
file via snippets" ? How does SuSE do that with emacs packages, python,
perl, etc?

> Also it would be a great win if TLPDB could read xz-zipped texlive.tlpdb ;)

It does already, but in a slightly tricky way ;-) SOrry for that
	my $tlpdb = TeXLive::TLPDB->new;
	my $nr_pkgs_loaded = $tlpdb->from_file("file://path/to/root/")
*should* try to load
	/path/to/root/tlpkg/texlive.tlpdb.xz
and only then the non-xz variant.

But this is a hardly travelled code path ... so I don't put my hand
into the fire for it ;-)

But I will think about to extend this to reading .xz files from
	TeXLive::TLPDB->new(root => "/path/to/root")

Hope the above explanations help - although I am still stymed what 
has changed so deeply to 2016 that your scripts broke.

ALl the best

Norbert

--
PREINING Norbert + TeX Live & Debian Developer + http://www.preining.info
GPG: 0x860CDC13    fp: F7D8 A928 26E3 16A1 9FA0  ACF0 6CAC A448 860C DC13


More information about the tex-live mailing list