[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#651169: luatex: Patch for porting to poppler 0.18



Package: luatex
Version: 0.70.1-1
Severity: normal
Tags: patch
User: ubuntu-devel@lists.ubuntu.com
Usertags: origin-ubuntu precise ubuntu-patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dear Maintainer,

In http://bugs.debian.org/644447 there is some discussion about
updating poppler to 0.18 in Debian. This will cause some FTBFS. We are
doing the transition in Ubuntu now and want to forward patches so that
they are readily available in Ubuntu once 0.18 lands there.

This patch updates luatex to remove the aspects of the poppler API that
are not present in 0.18 and was taken from Gentoo -see 
https://bugs.gentoo.org/384875 for more details.

Thanks for considering the patch.


- -- System Information:
Debian Release: wheezy/sid
  APT prefers precise-updates
  APT policy: (500, 'precise-updates'), (500, 'precise-security'), (500, 'precise')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-generic (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBCAAGBQJO3g7iAAoJEL/srsug59jDqHQQAJt+xCOXhz6ZgItQ/5r8eMPt
CMLIlqd0yHvnpWxOIw0hhDoeg1aRXHvI1WbzxA+vAPQFxBfVKYThn6XpbKF/E6zR
Nuv8Es2XuLOufYqjxugLI+S3Y4BEKoglUNou8nrTIbm+UhR/wB2jOzXknojis/VM
e8VvfcMU5d7RJVsSkM5+rx5HAMZywGDmeESC/IE6BTviYvWJXgf4L3YV36bk+yVa
3wk5TbWO1IpaMsm9v0rpaD14u+hlucL7iyu8nJ6xH53CbTpcHHLW1uZY3d6vQ9sv
G6H8u2MDJeaI4S4ireJ4Tahq/D1bmo7Gjuie/+8xyDucU1uRZeTQgr21c51vvlDF
KfEzVIx/NOH9U3g0dSbOfWUDbxHWMW9u9bnsNf1VHW4N39hmm1DJNy8tK/W7DjEP
mlqFIzYEhl6GiEihRfdXSb5azwshZHG5Ypf+4G7fnBcSyNU2gQTGpAd4zjsKqFri
0mYacuNcAZCugMmKJxsFM3prvgDp9yrx4DNS9bEH92nGFMsyJV9OAT6rSHUFF4V7
eiHbXy4b39t9VxHRMrdGopR91FUIPGRdze0gJ/dc7rS6MGxq8jzoHfW0t2WYA5Vp
0VxqdoP7VPKZklt1iUdOhhAt1f4Nrq0LqcWEMGR/eNzzy8eQvQxPClGyxViIKj59
2Ne4Y5c+/gt+fvmHQgDQ
=71zL
-----END PGP SIGNATURE-----
diff -Nru luatex-0.70.1/debian/patches/poppler-0.18.patch luatex-0.70.1/debian/patches/poppler-0.18.patch
--- luatex-0.70.1/debian/patches/poppler-0.18.patch	1970-01-01 01:00:00.000000000 +0100
+++ luatex-0.70.1/debian/patches/poppler-0.18.patch	2011-12-06 12:32:29.000000000 +0000
@@ -0,0 +1,164 @@
+Description:Make luatex compile against poppler 0.18.0 (only).
+ API which has been removed from poppler will be removed from the LUA
+ bindings as well.  Replacement API isn't added by this patch.
+Author: Martin von Gagern
+Origin: https://bugs.gentoo.org/384875
+
+Index: luatex-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc
+===================================================================
+--- luatex-0.70.1.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc	2011-12-06 12:28:06.645042508 +0000
++++ luatex-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc	2011-12-06 12:31:48.281621143 +0000
+@@ -89,7 +89,6 @@
+ new_poppler_userdata(Annots);
+ new_poppler_userdata(Array);
+ new_poppler_userdata(Catalog);
+-new_poppler_userdata(EmbFile);
+ new_poppler_userdata(Dict);
+ //new_poppler_userdata(GooString);
+ new_poppler_userdata(LinkDest);
+@@ -393,7 +392,7 @@
+     printf("\n===== Annot GC ===== uin=<%p>\n", uin);
+ #endif
+     if (uin->atype == ALLOC_LEPDF)
+-        delete(Annot *) uin->d;
++        ((Annot *) uin->d)->decRefCnt();
+     return 0;
+ }
+ 
+@@ -408,34 +407,6 @@
+ };
+ 
+ //**********************************************************************
+-// AnnotBorderStyle
+-
+-m_poppler_get_DOUBLE(AnnotBorderStyle, getWidth);
+-
+-m_poppler__tostring(AnnotBorderStyle);
+-
+-static int m_Annots__gc(lua_State * L)
+-{
+-    udstruct *uin;
+-    uin = (udstruct *) luaL_checkudata(L, 1, M_Annots);
+-    if (uin->pd != NULL && uin->pd->pc != uin->pc)
+-        pdfdoc_changed_error(L);
+-#ifdef DEBUG
+-    printf("\n===== Annots GC ===== uin=<%p>\n", uin);
+-#endif
+-    if (uin->atype == ALLOC_LEPDF)
+-        delete(Annots *) uin->d;
+-    return 0;
+-}
+-
+-static const struct luaL_Reg AnnotBorderStyle_m[] = {
+-    {"getWidth", m_AnnotBorderStyle_getWidth},
+-    {"__tostring", m_AnnotBorderStyle__tostring},
+-    {"__gc", m_Annots__gc},
+-    {NULL, NULL}                // sentinel
+-};
+-
+-//**********************************************************************
+ // Annots
+ 
+ m_poppler_get_INT(Annots, getNumAnnots);
+@@ -683,31 +654,6 @@
+ 
+ m_poppler_get_poppler(Catalog, Object, getDests);
+ m_poppler_get_INT(Catalog, numEmbeddedFiles);
+-
+-static int m_Catalog_embeddedFile(lua_State * L)
+-{
+-    EmbFile *ef;
+-    int i, len;
+-    udstruct *uin, *uout;
+-    uin = (udstruct *) luaL_checkudata(L, 1, M_Catalog);
+-    if (uin->pd != NULL && uin->pd->pc != uin->pc)
+-        pdfdoc_changed_error(L);
+-    i = luaL_checkint(L, 2);
+-    len = ((Catalog *) uin->d)->numEmbeddedFiles();
+-    if (i > 0 && i <= len) {
+-        ef = ((Catalog *) uin->d)->embeddedFile(i - 1);
+-        if (ef != NULL) {
+-            uout = new_EmbFile_userdata(L);
+-            uout->d = ef;
+-            uout->pc = uin->pc;
+-            uout->pd = uin->pd;
+-        } else
+-            lua_pushnil(L);
+-    } else
+-        lua_pushnil(L);
+-    return 1;
+-}
+-
+ m_poppler_get_INT(Catalog, numJS);
+ 
+ static int m_Catalog_getJS(lua_State * L)
+@@ -749,7 +695,6 @@
+     {"findDest", m_Catalog_findDest},
+     {"getDests", m_Catalog_getDests},
+     {"numEmbeddedFiles", m_Catalog_numEmbeddedFiles},
+-    {"embeddedFile", m_Catalog_embeddedFile},
+     {"numJS", m_Catalog_numJS},
+     {"getJS", m_Catalog_getJS},
+     {"getOutline", m_Catalog_getOutline},
+@@ -759,49 +704,6 @@
+ };
+ 
+ //**********************************************************************
+-// EmbFile
+-
+-m_poppler_get_GOOSTRING(EmbFile, name);
+-m_poppler_get_GOOSTRING(EmbFile, description);
+-m_poppler_get_INT(EmbFile, size);
+-m_poppler_get_GOOSTRING(EmbFile, modDate);
+-m_poppler_get_GOOSTRING(EmbFile, createDate);
+-m_poppler_get_GOOSTRING(EmbFile, checksum);
+-m_poppler_get_GOOSTRING(EmbFile, mimeType);
+-
+-static int m_EmbFile_streamObject(lua_State * L)
+-{
+-    udstruct *uin, *uout;
+-    uin = (udstruct *) luaL_checkudata(L, 1, M_EmbFile);
+-    if (uin->pd != NULL && uin->pd->pc != uin->pc)
+-        pdfdoc_changed_error(L);
+-    uout = new_Object_userdata(L);
+-    uout->d = new Object();     // automatic init to type "none"
+-    ((EmbFile *) uin->d)->streamObject().copy((Object *) uout->d);
+-    uout->pc = uin->pc;
+-    uout->pd = uin->pd;
+-    return 1;
+-}
+-
+-m_poppler_get_BOOL(EmbFile, isOk);
+-
+-m_poppler__tostring(EmbFile);
+-
+-static const struct luaL_Reg EmbFile_m[] = {
+-    {"name", m_EmbFile_name},
+-    {"description", m_EmbFile_description},
+-    {"size", m_EmbFile_size},
+-    {"modDate", m_EmbFile_modDate},
+-    {"createDate", m_EmbFile_createDate},
+-    {"checksum", m_EmbFile_checksum},
+-    {"mimeType", m_EmbFile_mimeType},
+-    {"streamObject", m_EmbFile_streamObject},
+-    {"isOk", m_EmbFile_isOk},
+-    {"__tostring", m_EmbFile__tostring},
+-    {NULL, NULL}                // sentinel
+-};
+-
+-//**********************************************************************
+ // Dict
+ 
+ static int m_Dict_incRef(lua_State * L)
+@@ -2683,11 +2585,9 @@
+ {
+     register_meta(Annot);
+     // TODO register_meta(AnnotBorder);
+-    register_meta(AnnotBorderStyle);
+     register_meta(Annots);
+     register_meta(Array);
+     register_meta(Catalog);
+-    register_meta(EmbFile);
+     register_meta(Dict);
+     register_meta(GooString);
+     register_meta(LinkDest);
diff -Nru luatex-0.70.1/debian/patches/series luatex-0.70.1/debian/patches/series
--- luatex-0.70.1/debian/patches/series	2011-05-20 01:40:33.000000000 +0100
+++ luatex-0.70.1/debian/patches/series	2011-12-06 12:27:45.000000000 +0000
@@ -23,3 +23,4 @@
 no_static_link.patch
 # included upstream
 #fix-luatex-build-with-old-libpng
+poppler-0.18.patch

Reply to: