Archived
1
0
Fork 0

gnu: texlive-bin: Adapt to Poppler 0.75.

This is a follow-up to commit 2eb92ce85f.

* gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch: Update for
Poppler 0.75.
* gnu/packages/tex.scm (texlive-bin)[source](patches): Update pdftex-poppler-0.75.patch.
[arguments]: Adjust accordingly.
This commit is contained in:
Marius Bakke 2019-04-17 17:46:59 +02:00
parent 3b458d5462
commit c078f1b08b
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
2 changed files with 137 additions and 192 deletions

View file

@ -1,23 +1,14 @@
Fix LuaTeX compatibility with Poppler 0.72. Fix LuaTeX compatibility with Poppler 0.75.
Upstream LuaTeX have moved from Poppler to "pplib" and thus upstream Upstream LuaTeX have moved from Poppler to "pplib" and thus upstream
fixes are unavailable. This is based on Arch Linux patches, with minor fixes are unavailable. This is based on Archs patch, with minor
changes for Poppler 0.72: tweaks to comply with texlive-bin-CVE-2018-17407.patch.
https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-bin&id=f1b424435c8fa31d9296c7a6dc17f939a8332780 https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-bin&id=418dd6f008c3d41a461353fdb60f2d73d87c58ed
diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w
--- a/texk/web2c/luatexdir/image/pdftoepdf.w --- a/texk/web2c/luatexdir/image/pdftoepdf.w
+++ b/texk/web2c/luatexdir/image/pdftoepdf.w +++ b/texk/web2c/luatexdir/image/pdftoepdf.w
@@ -35,7 +35,7 @@ @@ -363,7 +363,7 @@ void copyReal(PDF pdf, double d)
extern void md5(Guchar *msg, int msgLen, Guchar *digest);
-static GBool isInit = gFalse;
+static bool isInit = false;
/* Maintain AVL tree of all PDF files for embedding */
@@ -363,10 +363,10 @@ void copyReal(PDF pdf, double d)
static void copyString(PDF pdf, GooString * string) static void copyString(PDF pdf, GooString * string)
{ {
@ -25,11 +16,7 @@ diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image
+ const char *p; + const char *p;
unsigned char c; unsigned char c;
size_t i, l; size_t i, l;
- p = string->getCString(); p = string->getCString();
+ p = string->c_str();
l = (size_t) string->getLength();
if (pdf->cave)
pdf_out(pdf, ' ');
@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string) @@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string)
pdf->cave = true; pdf->cave = true;
} }
@ -39,15 +26,25 @@ diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image
{ {
pdf_out(pdf, '/'); pdf_out(pdf, '/');
for (; *s != 0; s++) { for (; *s != 0; s++) {
@@ -468,14 +468,14 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj) @@ -412,7 +412,7 @@ static void copyArray(PDF pdf, PdfDocument * pdf_doc, Array * array)
break; Object obj1;
/* pdf_begin_array(pdf);
case objNum: for (i = 0, l = array->getLength(); i < l; ++i) {
- GBool isNum() { return type == objInt || type == objReal; } - obj1 = array->getNF(i);
+ bool isNum() { return type == objInt || type == objReal; } + obj1 = array->getNF(i).copy();
break; copyObject(pdf, pdf_doc, &obj1);
*/ }
case objString: pdf_end_array(pdf);
@@ -425,7 +425,7 @@ static void copyDict(PDF pdf, PdfDocument * pdf_doc, Dict * dict)
pdf_begin_dict(pdf);
for (i = 0, l = dict->getLength(); i < l; ++i) {
copyName(pdf, dict->getKey(i));
- obj1 = dict->getValNF(i);
+ obj1 = dict->getValNF(i).copy();
copyObject(pdf, pdf_doc, &obj1);
}
pdf_end_dict(pdf);
@@ -475,7 +475,7 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj)
copyString(pdf, (GooString *)obj->getString()); copyString(pdf, (GooString *)obj->getString());
break; break;
case objName: case objName:
@ -85,31 +82,37 @@ diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image
break; break;
} }
} }
@@ -587,11 +587,11 @@ void read_pdf_info(image_dict * idict) @@ -788,12 +788,12 @@ void write_epdf(PDF pdf, image_dict * idict, int suppress_optional_info)
PDFRectangle *pagebox; Now all relevant parts of the Page dictionary are copied. Metadata validity
int pdf_major_version_found, pdf_minor_version_found; check is needed(as a stream it must be indirect).
float xsize, ysize, xorig, yorig; */
- if (isInit == gFalse) { - obj1 = pageDict->lookupNF("Metadata");
+ if (isInit == false) { + obj1 = pageDict->lookupNF("Metadata").copy();
if (!(globalParams)) if (!obj1.isNull() && !obj1.isRef())
globalParams = new GlobalParams(); formatted_warning("pdf inclusion","/Metadata must be indirect object");
- globalParams->setErrQuiet(gFalse); /* copy selected items in Page dictionary */
- isInit = gTrue; for (i = 0; pagedictkeys[i] != NULL; i++) {
+ globalParams->setErrQuiet(false); - obj1 = pageDict->lookupNF(pagedictkeys[i]);
+ isInit = true; + obj1 = pageDict->lookupNF(pagedictkeys[i]).copy();
} if (!obj1.isNull()) {
if (img_type(idict) == IMG_TYPE_PDF) pdf_add_name(pdf, pagedictkeys[i]);
pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL); /* preserves indirection */
@@ -966,7 +966,7 @@ void epdf_free() @@ -806,13 +806,13 @@ void write_epdf(PDF pdf, image_dict * idict, int suppress_optional_info)
if (PdfDocumentTree != NULL) PDF file, climbing up the tree until the Resources are found.
avl_destroy(PdfDocumentTree, destroyPdfDocument); (This fixes a problem with Scribus 1.3.3.14.)
PdfDocumentTree = NULL; */
- if (isInit == gTrue) - obj1 = pageDict->lookupNF("Resources");
+ if (isInit == true) + obj1 = pageDict->lookupNF("Resources").copy();
delete globalParams; if (obj1.isNull()) {
- isInit = gFalse; op1 = &pagesobj1;
+ isInit = false; op2 = &pagesobj2;
} *op1 = pageDict->lookup("Parent");
while (op1->isDict()) {
- obj1 = op1->dictLookupNF("Resources");
+ obj1 = op1->dictLookupNF("Resources").copy();
if (!obj1.isNull()) {
pdf_add_name(pdf, "Resources");
copyObject(pdf, pdf_doc, &obj1);
diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc
--- a/texk/web2c/luatexdir/lua/lepdflib.cc --- a/texk/web2c/luatexdir/lua/lepdflib.cc
+++ b/texk/web2c/luatexdir/lua/lepdflib.cc +++ b/texk/web2c/luatexdir/lua/lepdflib.cc
@ -122,15 +125,15 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
uout->atype = ALLOC_LEPDF; uout->atype = ALLOC_LEPDF;
uout->pc = uobj->pc; uout->pc = uobj->pc;
uout->pd = uobj->pd; uout->pd = uobj->pd;
@@ -439,7 +439,7 @@ static int l_new_Object(lua_State * L) @@ -496,7 +496,7 @@ static int l_new_Object(lua_State * L)
break; double numA = lua_tonumber(L,1);
case 1: double genA = lua_tonumber(L,2);
if (lua_isboolean (L,1)) { if ( ((numA)==(int)(numA)) && ((genA)==(int)(genA)) ){
- uout->d = new Object(lua_toboolean(L, 1)? gTrue : gFalse); - uout->d = new Object((int)(numA), (int)(genA));
+ uout->d = new Object(lua_toboolean(L, 1)? true : false); + uout->d = new Object({(int)(numA), (int)(genA)});
uout->atype = ALLOC_LEPDF; uout->atype = ALLOC_LEPDF;
uout->pc = 0; uout->pc = 0;
uout->pd = NULL; uout->pd = NULL;
@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) \ @@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) \
uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \ uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
if (uin->pd != NULL && uin->pd->pc != uin->pc) \ if (uin->pd != NULL && uin->pd->pc != uin->pc) \
@ -140,33 +143,15 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
if (o != NULL) { \ if (o != NULL) { \
uout = new_##out##_userdata(L); \ uout = new_##out##_userdata(L); \
uout->d = o; \ uout->d = o; \
@@ -676,7 +676,7 @@ static int m_##in##_##function(lua_State * L) \ @@ -889,7 +889,7 @@ static int m_Array_getNF(lua_State * L)
pdfdoc_changed_error(L); \
gs = (GooString *)((in *) uin->d)->function(); \
if (gs != NULL) \
- lua_pushlstring(L, gs->getCString(), gs->getLength()); \
+ lua_pushlstring(L, gs->c_str(), gs->getLength()); \
else \
lua_pushnil(L); \
return 1; \
@@ -911,7 +911,7 @@ static int m_Array_getString(lua_State * L)
if (i > 0 && i <= len) { if (i > 0 && i <= len) {
gs = new GooString(); uout = new_Object_userdata(L);
if (((Array *) uin->d)->getString(i - 1, gs)) uout->d = new Object();
- lua_pushlstring(L, gs->getCString(), gs->getLength()); - *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1);
+ lua_pushlstring(L, gs->c_str(), gs->getLength()); + *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1).copy();
else uout->atype = ALLOC_LEPDF;
lua_pushnil(L); uout->pc = uin->pc;
delete gs; uout->pd = uin->pd;
@@ -1063,7 +1063,7 @@ static int m_Catalog_getJS(lua_State * L)
if (i > 0 && i <= len) {
gs = ((Catalog *) uin->d)->getJS(i - 1);
if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
delete gs;
@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength); @@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength);
static int m_Dict_add(lua_State * L) static int m_Dict_add(lua_State * L)
@ -182,36 +167,42 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
uobj = (udstruct *) luaL_checkudata(L, 3, M_Object); uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d))); ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d)));
return 0; return 0;
@@ -1378,7 +1378,7 @@ static int m_GooString__tostring(lua_State * L) @@ -1190,7 +1190,7 @@ static int m_Dict_lookupNF(lua_State * L)
uin = (udstruct *) luaL_checkudata(L, 1, M_GooString); s = luaL_checkstring(L, 2);
if (uin->pd != NULL && uin->pd->pc != uin->pc) uout = new_Object_userdata(L);
uout->d = new Object();
- *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s);
+ *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s).copy();
uout->atype = ALLOC_LEPDF;
uout->pc = uin->pc;
uout->pd = uin->pd;
@@ -1263,7 +1263,7 @@ static int m_Dict_getValNF(lua_State * L)
if (i > 0 && i <= len) {
uout = new_Object_userdata(L);
uout->d = new Object();
- *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1);
+ *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1).copy();
uout->atype = ALLOC_LEPDF;
uout->pc = uin->pc;
uout->pd = uin->pd;
@@ -1653,7 +1653,7 @@ static int m_Object_initRef(lua_State * L)
pdfdoc_changed_error(L); pdfdoc_changed_error(L);
- lua_pushlstring(L, ((GooString *) uin->d)->getCString(), num = luaL_checkint(L, 2);
+ lua_pushlstring(L, ((GooString *) uin->d)->c_str(), gen = luaL_checkint(L, 3);
((GooString *) uin->d)->getLength()); - *((Object *) uin->d) = Object(num, gen);
return 1; + *((Object *) uin->d) = Object({num, gen});
}
@@ -1527,9 +1527,9 @@ static int m_Object_initBool(lua_State * L)
pdfdoc_changed_error(L);
luaL_checktype(L, 2, LUA_TBOOLEAN);
if (lua_toboolean(L, 2) != 0)
- *((Object *) uin->d) = Object(gTrue);
+ *((Object *) uin->d) = Object(true);
else
- *((Object *) uin->d) = Object(gFalse);
+ *((Object *) uin->d) = Object(false);
return 0; return 0;
} }
@@ -1814,7 +1814,7 @@ static int m_Object_getString(lua_State * L) @@ -2011,7 +2011,7 @@ static int m_Object_arrayGetNF(lua_State * L)
pdfdoc_changed_error(L); if (i > 0 && i <= len) {
if (((Object *) uin->d)->isString()) { uout = new_Object_userdata(L);
gs = (GooString *)((Object *) uin->d)->getString(); uout->d = new Object();
- lua_pushlstring(L, gs->getCString(), gs->getLength()); - *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1);
+ lua_pushlstring(L, gs->c_str(), gs->getLength()); + *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1).copy();
} else uout->atype = ALLOC_LEPDF;
lua_pushnil(L); uout->pc = uin->pc;
return 1; uout->pd = uin->pd;
@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L) @@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L)
pdfdoc_changed_error(L); pdfdoc_changed_error(L);
if (!((Object *) uin->d)->isDict()) if (!((Object *) uin->d)->isDict())
@ -221,30 +212,42 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
return 0; return 0;
} }
@@ -2470,9 +2470,9 @@ static int m_PDFDoc_getFileName(lua_State * L) @@ -2104,7 +2104,7 @@ static int m_Object_dictLookupNF(lua_State * L)
if (((Object *) uin->d)->isDict()) {
uout = new_Object_userdata(L);
uout->d = new Object();
- *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s);
+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s).copy();
uout->atype = ALLOC_LEPDF;
uout->pc = uin->pc;
uout->pd = uin->pd;
@@ -2169,7 +2169,7 @@ static int m_Object_dictGetValNF(lua_State * L)
if (i > 0 && i <= len) {
uout = new_Object_userdata(L);
uout->d = new Object();
- *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1);
+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1).copy();
uout->atype = ALLOC_LEPDF;
uout->pc = uin->pc;
uout->pd = uin->pd;
@@ -2470,7 +2470,7 @@ static int m_PDFDoc_getFileName(lua_State * L)
uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc); uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
if (uin->pd != NULL && uin->pd->pc != uin->pc) if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L); pdfdoc_changed_error(L);
- gs = ((PdfDocument *) uin->d)->doc->getFileName(); - gs = ((PdfDocument *) uin->d)->doc->getFileName();
+ gs = (GooString *) ((PdfDocument *) uin->d)->doc->getFileName(); + gs = (GooString *) ((PdfDocument *) uin->d)->doc->getFileName();
if (gs != NULL) if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength()); lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else else
lua_pushnil(L); @@ -2559,7 +2559,7 @@ static int m_PDFDoc_readMetadata(lua_State * L)
return 1;
@@ -2559,9 +2559,9 @@ static int m_PDFDoc_readMetadata(lua_State * L)
if (uin->pd != NULL && uin->pd->pc != uin->pc) if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L); pdfdoc_changed_error(L);
if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
- gs = ((PdfDocument *) uin->d)->doc->readMetadata(); - gs = ((PdfDocument *) uin->d)->doc->readMetadata();
+ gs = (GooString *) ((PdfDocument *) uin->d)->doc->readMetadata(); + gs = (GooString *) ((PdfDocument *) uin->d)->doc->readMetadata();
if (gs != NULL) if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength()); lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else else
lua_pushnil(L);
} else
@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * L) @@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * L)
if (uin->pd != NULL && uin->pd->pc != uin->pc) if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L); pdfdoc_changed_error(L);
@ -254,65 +257,3 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
uout = new_StructTreeRoot_userdata(L); uout = new_StructTreeRoot_userdata(L);
uout->d = obj; uout->d = obj;
uout->pc = uin->pc; uout->pc = uin->pc;
@@ -3038,12 +3038,12 @@ m_poppler_get_BOOL(Attribute, isHidden);
static int m_Attribute_setHidden(lua_State * L)
{
- GBool i;
+ bool i;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_Attribute);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- i = (GBool) lua_toboolean(L, 2);
+ i = (bool) lua_toboolean(L, 2);
((Attribute *) uin->d)->setHidden(i);
return 0;
}
@@ -3180,7 +3180,7 @@ static int m_StructElement_getParentRef(lua_State * L)
// Ref is false if the C++ functione return false
static int m_StructElement_getPageRef(lua_State * L)
{
- GBool b;
+ bool b;
Ref *r;
udstruct *uin, *uout;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
@@ -3226,16 +3226,16 @@ static int m_StructElement_setRevision(lua_State * L)
static int m_StructElement_getText(lua_State * L)
{
- GBool i;
+ bool i;
GooString *gs;
udstruct *uin;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
pdfdoc_changed_error(L);
- i = (GBool) lua_toboolean(L, 2);
+ i = (bool) lua_toboolean(L, 2);
gs = ((StructElement *) uin->d)->getText(i);
if (gs != NULL)
- lua_pushlstring(L, gs->getCString(), gs->getLength());
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
else
lua_pushnil(L);
return 1;
@@ -3321,7 +3321,7 @@ static int m_StructElement_findAttribute(lua_State * L)
{
Attribute::Type t;
Attribute::Owner o;
- GBool g;
+ bool g;
udstruct *uin, *uout;
const Attribute *a;
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
@@ -3329,7 +3329,7 @@ static int m_StructElement_findAttribute(lua_State * L)
pdfdoc_changed_error(L);
t = (Attribute::Type) luaL_checkint(L,1);
o = (Attribute::Owner) luaL_checkint(L,2);
- g = (GBool) lua_toboolean(L, 3);
+ g = (bool) lua_toboolean(L, 3);
a = ((StructElement *) uin->d)->findAttribute(t,g,o);
if (a!=NULL){

View file

@ -111,12 +111,12 @@
"&id=" revision)) "&id=" revision))
(file-name (string-append "texlive-bin-" name)) (file-name (string-append "texlive-bin-" name))
(sha256 (base32 hash))))) (sha256 (base32 hash)))))
(arch-revision "e1975bce0b9d270d7c9773c5beb7e87d61ee8f57")) (arch-revision "418dd6f008c3d41a461353fdb60f2d73d87c58ed"))
(append (search-patches "texlive-bin-CVE-2018-17407.patch" (append (search-patches "texlive-bin-CVE-2018-17407.patch"
"texlive-bin-luatex-poppler-compat.patch") "texlive-bin-luatex-poppler-compat.patch")
(list (list
(arch-patch "pdftex-poppler0.72.patch" arch-revision (arch-patch "pdftex-poppler0.75.patch" arch-revision
"0p46b6xxxg2s3hx67r0wpz16g3qygx65hpc581xs3jz5pvsiq3y7") "1cqpcp7h1qyxyp3wjbpcmx2wgvj9ywpz60hvy280mp9w633yzyg3")
(arch-patch "xetex-poppler-fixes.patch" arch-revision (arch-patch "xetex-poppler-fixes.patch" arch-revision
"1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx"))))))) "1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -197,17 +197,21 @@
#t)) #t))
(add-after 'unpack 'use-code-for-new-poppler (add-after 'unpack 'use-code-for-new-poppler
(lambda _ (lambda _
(copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc" (copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.75.0.cc"
"texk/web2c/pdftexdir/pdftoepdf.cc") "texk/web2c/pdftexdir/pdftoepdf.cc")
(copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.72.0.cc" (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.75.0.cc"
"texk/web2c/pdftexdir/pdftosrc.cc") "texk/web2c/pdftexdir/pdftosrc.cc")
#t)) #t))
(add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler (add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
(lambda _ (lambda _
;; Adjust for deprecated types in Poppler 0.73. ;; Adjust for deprecated types in Poppler 0.73 and later.
(substitute* (append (substitute* (append
(find-files "texk/web2c/luatexdir/" "\\.(cc|w)$") (find-files "texk/web2c/luatexdir/" "\\.(cc|w)$")
'("texk/web2c/pdftexdir/pdftosrc.cc")) '("texk/web2c/pdftexdir/pdftosrc.cc"))
(("GBool") "bool")
(("gFalse") "false")
(("gTrue") "true")
(("getCString") "c_str")
(("Guint") "unsigned int") (("Guint") "unsigned int")
(("Guchar") "unsigned char")) (("Guchar") "unsigned char"))
#t)) #t))