[NTG-pdftex] [tex-live] Debian TeX -- new packages

Sanjoy Mahajan sanjoy at mrao.cam.ac.uk
Fri Mar 30 16:55:37 CEST 2007

Probably everyone on ntg-pdftex also reads tex-live.  However, for
completeness, here is the relevant piece of the msg that I just sent
to ntg-context and the tex-live list:

  [Using Ubuntu 6.10/i386]

  I couldn't apply (without rejected hunks) the Ubuntu poppler patch at
  <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=356079> to the
  Debian texlive-2007-1 source.  So I just removed
  debian/patches/30_libpoppler from the patch series, returning to using
  the xpdf sources that ship with pdftex.  Then the texlive-2007 src pkg
  compiled into the many .deb's and these binary pkgs installed fine.
  They use libpng-1.2.8 and libc6-2.4.

> If I understand that thread correctly, the use of poppler instead
> of xpdf is now really a requirement on both debian and ubuntu?

Right, both use libpoppler.  

> But at the same time, static binaries with xpdf linked in are not
> usable or 'not done' for some reason?

I think the reason is that xpdf and libpoppler frequently fix buffer
overflows.  By linking against a shared library (libpoppler) instead
of against the xpdf sources, only the shared library needs to be
updated, and there's no need to install new texlive binary packages.

I'm not sure how much I agree with this argument.  It does have

> And you cannot share the binary packages between the various linuxes
> because there are packaging differences that cannot be resolved, at
> all?

Right.  Library version skew.  There are two libraries causing
problems: libpng and libpoppler.

* libpng: Norbert's texlive2007 packages are for Debian unstable and
  they require a libpng >= 1.2.13.  Ubuntu won't be sufficiently
  updated until feisty (7.04, i.e. next month), and all older releases
  of Ubuntu use 1.2.8.  That's not a problem in general because you
  could download the source package and recompile, but...

* libpoppler.  Debian and Ubuntu have decided to use libpoppler as a
  shared library instead of the xpdf sources included in the texlive
  tree already.  Norbert's packages require libpoppler0c2 (which is
  libpoppler 0.4.5).  Ubuntu hasn't used libpoppler0c2 for over a
  year, and they use libpoppler1, which is 0.5.x where x=1 for Dapper
  (6.04) and 4 for Edgy (6.10) and Feisty (7.04).

  So, rebuilding the source package on my system (Ubuntu 6.10) fails
  because my system has the libpoppler1 development library (API),
  which differs from libpoppler0c2 in Unicode string handling.

  One solution is to patch the texlive2007 tree to correctly use
  libpoppler1.  But I don't know how to do that.  Ubuntu has a patch
  but it is for doing the same for tetex-3.0, and I couldn't figure
  out how to get it to apply to texlive2007 (too many rejected hunks
  got me worried).

  So I just removed the use of libpoppler, instead using the xpdf
  in-tree sources, and it compiled fine.  That's a one-line patch to
  the source tree (the debian patch series part of it).

With those changes, I can use Norbert's latest and greatest context
packages.  But I know what I'm doing, relatively speaking.  Most users
on Ubuntu will be stuck until Ubuntu feisty+1 (till October 2007),
because texlive2007 is too late to go into feisty (April 2007) and I
don't think I should recommend these hacks on the context wiki (in the
Ubuntu instructions).  So almost all Ubuntu users will have to upgrade
context by hand -- not good for them or for getting a wide testing
base for context.

One of the issues that would hold up texlive2007 in Ubuntu is that
Debian didn't transition to the newer libpoppler
because of the pain it would cause.  So Ubuntu, which picks up Debian
unstable and does some stuff to it, is divergent from Debian on this
point (Ubuntu has used the newer libpoppler for a while), which was
fine for texlive2005 I guess, but not for texlive2007.  Which means
that Ubuntu would have to do more work to get texlive2007 working --
for which there is no time before the release.

> And that there are different versions of (dynamic) libpoppler that
> are mutually exclusive, even at compile-time?

They are not exclusive at run time, only at compile time.  One
approach I tried was to install a libpoppler0c2 from an old Ubuntu
release, so now I have libpoppler.0 and libpoppler.1 on my system.
Then the texlive-2007 binary pkgs could install except that it
requires libpng >=1.2.13.  Hence the need to recompile from the source
pkg in order to compile against my libpng (1.2.8).  

But the compile fails because of the libpoppler1 headers on my system.
And I cannot install an old libpoppler0 set of development headers,
because those would overwrite the newer libpoppler1 development
headers.  I suppose I could install them, compile the src pkg, then
reinstall the libpoppler1 development headers.  But that's a terrible
hack (plus I didn't think of it until now).


`Not all those who wander are lost.' (J.R.R. Tolkien)

More information about the ntg-pdftex mailing list