Help needed: upgrade/replace and dpkg-divert
Hi all,
I am stuck in TeX Live/luaTeX package upgrades with the following problem:
Up to unstable luatex ships with two diversions for /usr/bin/texdoc
and /usr/share/man/man1/texdoc.1. The diversion have been created with
dpkg-divert --add --package luatex --rename \
--divert /usr/bin/texdoc.notluatex /usr/bin/texdoc
(and similar for man page). In the luatex package we shipped
texdoc -> texdoclua
in /usr/bin.
The current/unstable postrm called:
dpkg-divert --remove --package luatex --rename \
--divert /usr/bin/texdoc.notluatex /usr/bin/texdoc
Now TL2009 and luatex from experimental come into play: There texdoc
has moved back into texlive-base package, and we want to remove these
diversions, luatex package will not ship anything else but the luatex
binary (and it's man page).
How can I manage that?
I have added
texlive-base replaces luatex (<< EXPERIMENTAL_VERSION)
and then tried the following things:
First try: put removal code into luatex.preinst *without* --rename
in the dpkg-divert --remove ... call
Effect: The diversion was removed, but the new texdoc not reinstantiated.
Second try: add the --rename
Effect: dpkg-divert dies:
-----
...
Unpacking replacement texlive-base ...
Replacing files in old package luatex ...
...
Preparing to replace luatex 0.40.6-1+b1 (using .../luatex_0.46.0-2_amd64.deb)
...
Removing `diversion of /usr/bin/texdoc to /usr/bin/texdoc.notluatex by luatex'
dpkg-divert: rename involves overwriting `/usr/bin/texdoc' with
different file `/usr/bin/texdoc.notluatex', not allowed
Removing `diversion of /usr/share/man/man1/texdoc.1.gz to
/usr/share/man/man1/texdoc.notluatex.1.gz by luatex'
Unpacking replacement luatex ...
-----
That gave me:
$ ls -l /usr/bin/texdoc* gives:
lrwxrwxrwx 1 root root 9 Nov 29 17:20 /usr/bin/texdoc -> texdoclua
lrwxrwxrwx 1 root root 48 Nov 29 17:21 /usr/bin/texdoc.notluatex ->
../share/texmf-texlive/scripts/texdoc/texdoc.tlu
and dpkg -S /usr/bin/texdoc:
diversion by luatex from: /usr/bin/texdoc
diversion by luatex to: /usr/bin/texdoc.notluatex
texlive-base: /usr/bin/texdoc
Of course that happened because luatex still has the
texdoc -> texdoclua
link when the preinst is running, so the dpkg-divert was unhappy.
Third try: move the same removal code into the *postinst* of the new
luatex, but the same happened:
-----
....
Unpacking replacement texlive-base ...
Replacing files in old package luatex ...
...
Removing `diversion of /usr/bin/texdoc to /usr/bin/texdoc.notluatex by luatex'
dpkg-divert: rename involves overwriting `/usr/bin/texdoc' with
different file `/usr/bin/texdoc.notluatex', not allowed
....
----
$ dpkg -S /usr/bin/texdoc
diversion by luatex from: /usr/bin/texdoc
diversion by luatex to: /usr/bin/texdoc.notluatex
texlive-base: /usr/bin/texdoc
$ ls -l /usr/bin/texdoc*
lrwxrwxrwx 1 root root 9 Nov 29 17:41 /usr/bin/texdoc -> texdoclua
lrwxrwxrwx 1 root root 48 Nov 29 17:42 /usr/bin/texdoc.notluatex ->
../share/texmf-texlive/scripts/texdoc/texdoc.tlu
But the new package texlua does NOT ship a link texdoc -> texdoclua.
==============================0
So to sum up what we want to do:
Old status:
- texlive-base shipped /u/b/texdoc as shell script
- luatex diverted /u/b/texdoc by renaming to /u/b/texdoc.notluatex
- luatex ships a link /u/b/texdoc -> /u/b/texdoclua
New status should be:
- texlive-base ships /u/b/texdoc -> ../../share/texmf-dist/.../texdoc.tlu
- no diversion in luatex
- luatex does no ship any texdoc files
Can anyone help me here?
Best wishes
Norbert
-------------------------------------------------------------------------------
Dr. Norbert Preining Associate Professor
JAIST Japan Advanced Institute of Science and Technology preining@jaist.ac.jp
Vienna University of Technology preining@logic.at
Debian Developer (Debian TeX Task Force) preining@debian.org
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
SLIGO (n.)
An unnamed and exotic sexual act which people like to believe that
famous films stars get up to in private. 'To commit sligo.'
--- Douglas Adams, The Meaning of Liff
Reply to: