[tlbuild] Building luatex with poppler

Norbert Preining preining at logic.at
Thu Apr 16 18:42:51 CEST 2009


Hi all,

for Debian I have adjusted the libpoppler patch for luatex. Thanks to
the work of Peter it is getting easier and easier, and AFAIS the patch
for TeX Live itself well shrink, too.

Besides the code change (which is rather minimal), the patch to the
Makefile.in and configure is as follows:

Index: luatex-0.39.0/source/configure
===================================================================
--- luatex-0.39.0.orig/source/configure	2009-04-16 18:11:31.000000000 +0200
+++ luatex-0.39.0/source/configure	2009-04-16 18:11:59.000000000 +0200
@@ -2387,7 +2387,7 @@
 esac
 
 test "x$enable_pdftex" = xno || {
-  need_xpdf=yes
+  need_xpdf=no
   need_libpng=yes
   need_obsdcompat=yes
 }
@@ -2401,7 +2401,7 @@
 esac
 
 test "x$enable_luatex" = xno || {
-  need_xpdf=yes
+  need_xpdf=no
   need_libpng=yes
   need_obsdcompat=yes
 }
@@ -2415,7 +2415,7 @@
 esac
 
 test "x$enable_xetex" = xno || {
-  need_xpdf=yes
+  need_xpdf=no
   need_libpng=yes
   need_freetype2=yes
 }

Index: luatex-0.39.0/source/texk/web2c/Makefile.in
===================================================================
--- luatex-0.39.0.orig/source/texk/web2c/Makefile.in	2009-04-16 18:11:31.000000000 +0200
+++ luatex-0.39.0/source/texk/web2c/Makefile.in	2009-04-16 18:11:59.000000000 +0200
@@ -872,10 +872,10 @@
 	-I$(srcdir)/mplibdir -Dextra_version_info=`date +-%Y%m%d%H`
 luatex_ldadd = libluatex.a libff.a libluamisc.a libzzip.a \
 	libluasocket.a liblua51.a $(LIBPNG_LIBS) $(ZLIB_LIBS) \
-	$(XPDF_LIBS) $(OBSDCOMPAT_LIBS) libmd5.a libmplib.a
+	-lpoppler $(OBSDCOMPAT_LIBS) libmd5.a libmplib.a
 luatex_LDADD = $(luatex_ldadd) $(LDADD) $(socketlibs)
 luatex_DEPENDENCIES = $(proglib) libluatex.a $(LIBPNG_DEPEND) \
-	$(ZLIB_DEPEND) $(XPDF_DEPEND) $(OBSDCOMPAT_DEPEND) libmd5.a
+	$(ZLIB_DEPEND) $(OBSDCOMPAT_DEPEND) libmd5.a
 luatex_c_h = luatexini.c luatex0.c luatexcoerce.h luatexd.h
 nodist_luatex_SOURCES = $(luatex_c_h) luatex-pool.c luatexextra.c luatexdir/luatexextra.h
 luatex_sources = luatexdir/luatex.web luatexdir/luatex.ch
@@ -1149,11 +1149,13 @@
     luatexdir/luafontloader/src/ffdummies.c \
     luatexdir/luafontloader/src/luafflib.c
 
+POPPLERVERSION=`pkg-config --modversion poppler`
+
 libluatex_a_DEPENDENCIES = libff.a
 libluatex_a_CPPFLAGS = $(ZLIB_INCLUDES) $(LIBPNG_INCLUDES) \
-	$(XPDF_INCLUDES) $(OBSDCOMPAT_INCLUDES) -I$(srcdir)/libmd5 \
+	-I/usr/include/poppler $(OBSDCOMPAT_INCLUDES) -I$(srcdir)/libmd5 \
 	-Iluatexdir -I$(srcdir)/luatexdir -I$(srcdir)/luatexdir/lua51 \
-	-DpdfTeX
+	-DpdfTeX -DPOPPLERVERSION=\"$(POPPLERVERSION)\"
 libluatex_a_SOURCES = \
 	luatexdir/commands.h  \
 	luatexdir/font/dofont.c  \


The magic with POPPLERVERSION is only necessary because the poppler
library does not support getting the current built version from the
header files, so I have to set it like that for the output in 
source/texk/web2c/luatexdir/utils/utils.c.



Now two things:
1) is there any chance to make that even simpler? I mean if one selects
   --with-poppler we would only have to change the value of
	XPDF_LIBS to -lpoppler
   and
	XPDF_DEPEND to nothing
   (because poppler would be always system wide)
   and
	XPDF_INCLUDES to something given with --with-poppler-include
   Whether the need_xpdf is set to true/false I do not know if it makes 
   any difference.

2) Concerning system libpng: Most things work out of the box if one
   gives
	--with-system-png
   but in source/texk/web2c/luatexdir/image/image.h there is a
	#  include <../libpng/png.h>
   which has to be changed to
	#  include <png.h>
   Taco, any chance to fix that in one or the other way?


In any case, big thanks to all for the nice work.

For completeness, the diffstat of the libpoppler patch:
 source/configure                               |    6 +--
 source/texk/web2c/Makefile.in                  |   10 +++---
	both shown above
 source/texk/web2c/luatexdir/image/pdftoepdf.cc |   39 ++++++++++++-------------
	only header changes and 4 times GString -> GooString
 source/texk/web2c/luatexdir/luatexextra.in     |    2 -
	adjustment of the bannder adding "... using libpoppler"
 source/texk/web2c/luatexdir/utils/utils.c      |    6 +--
	one header change
		#include "xpdf/config.h" 
	to
		#include "poppler/poppler-config.h"
	and replacing xpdfVersion with POPPLERVERSION

That is all.

Best wishes

Norbert

-------------------------------------------------------------------------------
Dr. Norbert Preining <preining at logic.at>        Vienna University of Technology
Debian Developer <preining at debian.org>                         Debian TeX Group
gpg DSA: 0x09C5B094      fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
ZEAL MONACHORUM (n.)
(Skiing term.) To ski with 'zeal monachorum' is to descend the top
three quarters of the mountain in a quivering blue funk, but on
arriving at the gentle bit just in front of the restaurant to whizz to
a stop like a victorious slalom-champion.
                        --- Douglas Adams, The Meaning of Liff


More information about the tlbuild mailing list