summaryrefslogtreecommitdiff
path: root/print/luatex
diff options
context:
space:
mode:
authormarkd <markd@pkgsrc.org>2018-05-13 12:46:27 +0000
committermarkd <markd@pkgsrc.org>2018-05-13 12:46:27 +0000
commitefa81812204ba5ff14ecabbe7cb37f2a6644abef (patch)
tree9eac9c214f5554b5ac41732d194c5d90dd293a37 /print/luatex
parent670972bbfe000719f703e4c130820c6f0900158a (diff)
downloadpkgsrc-efa81812204ba5ff14ecabbe7cb37f2a6644abef.tar.gz
luatex: update to 1.07.0
texlive 2018 version
Diffstat (limited to 'print/luatex')
-rw-r--r--print/luatex/Makefile11
-rw-r--r--print/luatex/distinfo17
-rw-r--r--print/luatex/patches/patch-texk_web2c_luatexdir_image_pdftoepdf.w232
-rw-r--r--print/luatex/patches/patch-texk_web2c_luatexdir_lua_lepdflib.cc461
-rw-r--r--print/luatex/patches/patch-texk_web2c_luatexdir_lua_lpdfscannerlib.cc15
-rw-r--r--print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ctype.c16
-rw-r--r--print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ffi.h14
7 files changed, 47 insertions, 719 deletions
diff --git a/print/luatex/Makefile b/print/luatex/Makefile
index 82c4b064e40..8d887b12f36 100644
--- a/print/luatex/Makefile
+++ b/print/luatex/Makefile
@@ -1,10 +1,9 @@
-# $NetBSD: Makefile,v 1.70 2018/04/28 20:19:11 wiz Exp $
+# $NetBSD: Makefile,v 1.71 2018/05/13 12:46:27 markd Exp $
-DISTNAME= texlive-20170524-source
-PKGNAME= luatex-1.0.4
-PKGREVISION= 11
+DISTNAME= texlive-20180414-source
+PKGNAME= luatex-1.07.0
CATEGORIES= print
-MASTER_SITES= ftp://tug.org/historic/systems/texlive/2017/
+MASTER_SITES= ftp://tug.org/historic/systems/texlive/2018/
EXTRACT_SUFX= .tar.xz
MAINTAINER= minskim@NetBSD.org
@@ -24,7 +23,7 @@ USE_TOOLS+= gmake gsed lex perl pkg-config yacc
CONFIGURE_ARGS+= --disable-aleph --disable-etex --disable-pdftex \
--enable-luatex --disable-mf --disable-mf-nowin \
--with-x=no \
- --disable-luajittex --disable-mfluajit \
+ --disable-luatex53 --disable-luajittex --disable-mfluajit \
--disable-mp --disable-pmp --disable-upmp \
--disable-ptex --disable-eptex --disable-uptex --disable-euptex \
--disable-web-progs \
diff --git a/print/luatex/distinfo b/print/luatex/distinfo
index d2abf77a340..6dfac8d52bc 100644
--- a/print/luatex/distinfo
+++ b/print/luatex/distinfo
@@ -1,14 +1,11 @@
-$NetBSD: distinfo,v 1.29 2018/04/29 20:57:26 ryoon Exp $
+$NetBSD: distinfo,v 1.30 2018/05/13 12:46:27 markd Exp $
-SHA1 (texlive-20170524-source.tar.xz) = 1c1383ddb1b871c6b8ce49a4ae3c1a33d454a7b6
-RMD160 (texlive-20170524-source.tar.xz) = a8430c19fe1727cf308fe03e5838105260c0d71e
-SHA512 (texlive-20170524-source.tar.xz) = 18c18940992ab94ce22e22ccd4ad798253ea14ac2ab296a10ea5e9a8da9f33989f2e2641b42b564d1d5fb53bd371da3e68726b676d706b469016ad146cd19daa
-Size (texlive-20170524-source.tar.xz) = 63483372 bytes
+SHA1 (texlive-20180414-source.tar.xz) = 81bdd9999b6ab860d1d3c388cf27062aba960255
+RMD160 (texlive-20180414-source.tar.xz) = 0ff63bbd7f8a0fb6417089f5d1ae1e4124a1dd95
+SHA512 (texlive-20180414-source.tar.xz) = ecac9b8203d2747be7ba7f82d68096d859fb35713276106d7049035dd3a8cfca07f8a8648982f0317b3812f8480db7326714de32f95998e3e6f73571de2aa140
+Size (texlive-20180414-source.tar.xz) = 49770944 bytes
SHA1 (patch-ac) = 1ee83833a03eace2eada892130ddb2198e829f3d
SHA1 (patch-libs_luajit_LuaJIT-src_src_host_buildvm__asm.c) = 34fa742ed696f97df637c5086bf1faf3d718cb69
SHA1 (patch-libs_luajit_LuaJIT-src_src_vm__x86.dasc) = 491d33adbbaab8b2b81a65a8d7ba30aee775b75f
-SHA1 (patch-texk_web2c_luatexdir_image_pdftoepdf.w) = ef0950aeeba70fdb286835dd5eab85555fd1131a
-SHA1 (patch-texk_web2c_luatexdir_lua_lepdflib.cc) = 0758888fd2bf23e339a858fdde84c0aa111a7350
-SHA1 (patch-texk_web2c_luatexdir_lua_lpdfscannerlib.cc) = ddb11816de22cc7b3f286b3a7838dcf6debbf892
-SHA1 (patch-texk_web2c_luatexdir_luaffi_ctype.c) = 57d51564d5dd0200be10154216158fe801d7c630
-SHA1 (patch-texk_web2c_luatexdir_luaffi_ffi.h) = 2fbf91152fc3438d8e989d5f5f95877faaec6790
+SHA1 (patch-texk_web2c_luatexdir_image_pdftoepdf.w) = 9b6d637abe2fbb246a2435caf8aec5070abd1c5f
+SHA1 (patch-texk_web2c_luatexdir_lua_lepdflib.cc) = 24052cbff1a087badbeefe8b58bf7ce97e4ab4fb
diff --git a/print/luatex/patches/patch-texk_web2c_luatexdir_image_pdftoepdf.w b/print/luatex/patches/patch-texk_web2c_luatexdir_image_pdftoepdf.w
index d1f3561de39..5e6dc8bbdee 100644
--- a/print/luatex/patches/patch-texk_web2c_luatexdir_image_pdftoepdf.w
+++ b/print/luatex/patches/patch-texk_web2c_luatexdir_image_pdftoepdf.w
@@ -1,217 +1,27 @@
-$NetBSD: patch-texk_web2c_luatexdir_image_pdftoepdf.w,v 1.4 2018/04/29 20:57:26 ryoon Exp $
+$NetBSD: patch-texk_web2c_luatexdir_image_pdftoepdf.w,v 1.5 2018/05/13 12:46:27 markd Exp $
-The ctangle tex-to-C generator strips whitespace, resulting in "C++11 requires
-a space between literal and identifier" failures. Pull in hacky patch from
-Gentoo which avoids this problem by using newlines.
+Build with poppler 0.64
-Add support for newer poppler's from ArchLinux
-
---- texk/web2c/luatexdir/image/pdftoepdf.w.orig 2016-11-25 18:09:14.000000000 +0000
+--- texk/web2c/luatexdir/image/pdftoepdf.w.orig 2018-01-17 18:00:12.000000000 +0000
+++ texk/web2c/luatexdir/image/pdftoepdf.w
-@@ -71,7 +71,11 @@ static char *get_file_checksum(const cha
- ck = (char *) malloc(PDF_CHECKSUM_SIZE);
- if (ck == NULL)
- formatted_error("pdf inclusion","out of memory while processing '%s'", a);
-- snprintf(ck, PDF_CHECKSUM_SIZE, "%" PRIu64 "_%" PRIu64, (uint64_t) size,(uint64_t) mtime);
-+ snprintf(ck, PDF_CHECKSUM_SIZE, "%"
-+PRIu64
-+"_%"
-+PRIu64
-+, (uint64_t) size,(uint64_t) mtime);
- } else {
- switch (fe) {
- case FE_FAIL:
-@@ -224,7 +228,7 @@ PdfDocument *refMemStreamPdfDocument(cha
- free(checksum);
- }
- if (pdf_doc->doc == NULL) {
-- docmemstream = new MemStream( docstream,0,streamsize, obj.initNull() );
-+ docmemstream = new MemStream( docstream,0,streamsize, Object(objNull) );
- doc = new PDFDoc(docmemstream); /* takes ownership of docmemstream */
- pdf_doc->pc++;
- if (!doc->isOk() || !doc->okToPrint()) {
-@@ -408,9 +412,8 @@ static void copyArray(PDF pdf, PdfDocume
- Object obj1;
- pdf_begin_array(pdf);
- for (i = 0, l = array->getLength(); i < l; ++i) {
-- array->getNF(i, &obj1);
-+ obj1 = array->getNF(i);
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
- }
- pdf_end_array(pdf);
+@@ -361,9 +361,9 @@ void copyReal(PDF pdf, double d)
+ pdf->cave = true;
}
-@@ -422,9 +425,8 @@ static void copyDict(PDF pdf, PdfDocumen
- pdf_begin_dict(pdf);
- for (i = 0, l = dict->getLength(); i < l; ++i) {
- copyName(pdf, dict->getKey(i));
-- dict->getValNF(i, &obj1);
-+ obj1 = dict->getValNF(i);
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
- }
- pdf_end_dict(pdf);
+
+-static void copyString(PDF pdf, GooString * string)
++static void copyString(PDF pdf, const GooString * string)
+ {
+- char *p;
++ const char *p;
+ unsigned char c;
+ size_t i, l;
+ p = string->getCString();
+@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooStrin
+ pdf->cave = true;
}
-@@ -470,10 +472,10 @@ static void copyObject(PDF pdf, PdfDocum
- break;
- */
- case objString:
-- copyString(pdf, obj->getString());
-+ copyString(pdf, const_cast<GooString*>(obj->getString()));
- break;
- case objName:
-- copyName(pdf, obj->getName());
-+ copyName(pdf, const_cast<char*>(obj->getName()));
- break;
- case objNull:
- pdf_add_null(pdf);
-@@ -510,13 +512,12 @@ static void writeRefs(PDF pdf, PdfDocume
- PDFDoc *doc = pdf_doc->doc;
- xref = doc->getXRef();
- for (r = pdf_doc->inObjList; r != NULL;) {
-- xref->fetch(r->ref.num, r->ref.gen, &obj1);
-+ obj1 = xref->fetch(r->ref.num, r->ref.gen);
- if (obj1.isStream())
- pdf_begin_obj(pdf, r->num, OBJSTM_NEVER);
- else
- pdf_begin_obj(pdf, r->num, 2);
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
- pdf_end_obj(pdf);
- n = r->next;
- delete r;
-@@ -740,7 +741,7 @@ void write_epdf(PDF pdf, image_dict * id
- catalog = doc->getCatalog();
- page = catalog->getPage(img_pagenum(idict));
- pageref = catalog->getPageRef(img_pagenum(idict));
-- doc->getXRef()->fetch(pageref->num, pageref->gen, &pageobj);
-+ pageobj = doc->getXRef()->fetch(pageref->num, pageref->gen);
- pageDict = pageobj.getDict();
- /* write the Page header */
- pdf_begin_obj(pdf, img_objnum(idict), OBJSTM_NEVER);
-@@ -757,12 +758,11 @@ void write_epdf(PDF pdf, image_dict * id
- pdf_dict_add_int(pdf, "PTEX.PageNumber", (int) img_pagenum(idict));
- }
- if ((suppress_optional_info & 8) == 0) {
-- doc->getDocInfoNF(&obj1);
-+ obj1 = doc->getDocInfoNF();
- if (obj1.isRef()) {
- /* the info dict must be indirect (PDF Ref p. 61) */
- pdf_dict_add_ref(pdf, "PTEX.InfoDict", addInObj(pdf, pdf_doc, obj1.getRef()));
- }
-- obj1.free();
- }
- if (img_is_bbox(idict)) {
- bbox[0] = sp2bp(img_bbox(idict)[0]);
-@@ -788,19 +788,17 @@ void write_epdf(PDF pdf, image_dict * id
- Now all relevant parts of the Page dictionary are copied. Metadata validity
- check is needed(as a stream it must be indirect).
- */
-- pageDict->lookupNF("Metadata", &obj1);
-+ obj1 = pageDict->lookupNF("Metadata");
- if (!obj1.isNull() && !obj1.isRef())
- formatted_warning("pdf inclusion","/Metadata must be indirect object");
-- obj1.free();
- /* copy selected items in Page dictionary */
- for (i = 0; pagedictkeys[i] != NULL; i++) {
-- pageDict->lookupNF(pagedictkeys[i], &obj1);
-+ obj1 = pageDict->lookupNF(pagedictkeys[i]);
- if (!obj1.isNull()) {
- pdf_add_name(pdf, pagedictkeys[i]);
- /* preserves indirection */
- copyObject(pdf, pdf_doc, &obj1);
- }
-- obj1.free();
- }
- /*
- If there are no Resources in the Page dict of the embedded page,
-@@ -808,32 +806,28 @@ void write_epdf(PDF pdf, image_dict * id
- PDF file, climbing up the tree until the Resources are found.
- (This fixes a problem with Scribus 1.3.3.14.)
- */
-- pageDict->lookupNF("Resources", &obj1);
-+ obj1 = pageDict->lookupNF("Resources");
- if (obj1.isNull()) {
- op1 = &pagesobj1;
- op2 = &pagesobj2;
-- pageDict->lookup("Parent", op1);
-+ *op1 = pageDict->lookup("Parent");
- while (op1->isDict()) {
-- obj1.free();
-- op1->dictLookupNF("Resources", &obj1);
-+ obj1 = op1->dictLookupNF("Resources");
- if (!obj1.isNull()) {
- pdf_add_name(pdf, "Resources");
- copyObject(pdf, pdf_doc, &obj1);
- break;
- }
-- op1->dictLookup("Parent", op2);
-+ *op2 = op1->dictLookup("Parent");
- optmp = op1;
- op1 = op2;
- op2 = optmp;
-- op2->free();
- };
- if (!op1->isDict())
- formatted_warning("pdf inclusion","Page /Resources missing");
-- op1->free();
- }
-- obj1.free();
- /* Write the Page contents. */
-- page->getContents(&contents);
-+ contents = page->getContents();
- if (contents.isStream()) {
- /*
- Variant A: get stream and recompress under control of \pdfcompresslevel
-@@ -844,27 +838,23 @@ void write_epdf(PDF pdf, image_dict * id
- Variant B: copy stream without recompressing
- */
-- contents.streamGetDict()->lookup("F", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("F");
- if (!obj1.isNull()) {
- normal_error("pdf inclusion","unsupported external stream");
- }
-- obj1.free();
-- contents.streamGetDict()->lookup("Length", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("Length");
- pdf_add_name(pdf, "Length");
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
-- contents.streamGetDict()->lookup("Filter", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("Filter");
- if (!obj1.isNull()) {
- pdf_add_name(pdf, "Filter");
- copyObject(pdf, pdf_doc, &obj1);
-- obj1.free();
-- contents.streamGetDict()->lookup("DecodeParms", &obj1);
-+ obj1 = contents.streamGetDict()->lookup("DecodeParms");
- if (!obj1.isNull()) {
- pdf_add_name(pdf, "DecodeParms");
- copyObject(pdf, pdf_doc, &obj1);
- }
- }
-- obj1.free();
- pdf_end_dict(pdf);
- pdf_begin_stream(pdf);
- copyStreamStream(pdf, contents.getStream()->getUndecodedStream());
-@@ -875,8 +865,8 @@ void write_epdf(PDF pdf, image_dict * id
- pdf_end_dict(pdf);
- pdf_begin_stream(pdf);
- for (i = 0, l = contents.arrayGetLength(); i < l; ++i) {
-- copyStreamStream(pdf, (contents.arrayGet(i, &obj1))->getStream());
-- obj1.free();
-+ obj1 = contents.arrayGet(i);
-+ copyStreamStream(pdf, obj1.getStream());
- if (i < (l - 1)) {
- /*
- Put a space between streams to be on the safe side (streams
-@@ -897,8 +887,6 @@ void write_epdf(PDF pdf, image_dict * id
- }
- /* write out all indirect objects */
- writeRefs(pdf, pdf_doc);
-- contents.free();
-- pageobj.free();
- /*
- unrefPdfDocument() must come after contents.free() and pageobj.free()!
- TH: The next line makes repeated pdf inclusion unacceptably slow
+-static void copyName(PDF pdf, char *s)
++static void copyName(PDF pdf, const char *s)
+ {
+ pdf_out(pdf, '/');
+ for (; *s != 0; s++) {
diff --git a/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lepdflib.cc b/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lepdflib.cc
index 87608e3e464..8b7b585e9cf 100644
--- a/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lepdflib.cc
+++ b/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lepdflib.cc
@@ -1,457 +1,24 @@
-$NetBSD: patch-texk_web2c_luatexdir_lua_lepdflib.cc,v 1.4 2018/04/29 20:57:26 ryoon Exp $
+$NetBSD: patch-texk_web2c_luatexdir_lua_lepdflib.cc,v 1.5 2018/05/13 12:46:27 markd Exp $
-Add support for newer poppler's from ArchLinux
+Build with poppler 0.64
---- texk/web2c/luatexdir/lua/lepdflib.cc.orig 2017-03-11 01:04:06.000000000 +0000
+--- texk/web2c/luatexdir/lua/lepdflib.cc.orig 2018-02-14 14:44:38.000000000 +0000
+++ texk/web2c/luatexdir/lua/lepdflib.cc
-@@ -521,7 +521,7 @@ static int m_##in##_##function(lua_State
+@@ -669,7 +669,7 @@ static int m_##in##_##function(lua_State
+ #define m_poppler_get_GOOSTRING(in, function) \
+ static int m_##in##_##function(lua_State * L) \
+ { \
+- GooString *gs; \
++ const GooString *gs; \
+ udstruct *uin; \
uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
if (uin->pd != NULL && uin->pd->pc != uin->pc) \
- pdfdoc_changed_error(L); \
-- gs = ((in *) uin->d)->function(); \
-+ gs = const_cast<GooString*>(((in *) uin->d)->function()); \
- if (gs != NULL) \
- lua_pushlstring(L, gs->getCString(), gs->getLength()); \
- else \
-@@ -538,7 +538,7 @@ static int m_##in##_##function(lua_State
- pdfdoc_changed_error(L); \
- uout = new_Object_userdata(L); \
- uout->d = new Object(); \
-- ((in *) uin->d)->function((Object *) uout->d); \
-+ *((Object *)uout->d) = ((in *) uin->d)->function(); \
- uout->atype = ALLOC_LEPDF; \
- uout->pc = uin->pc; \
- uout->pd = uin->pd; \
-@@ -668,13 +668,11 @@ static const struct luaL_Reg Annots_m[]
+@@ -1807,7 +1807,7 @@ static int m_Object_getNum(lua_State * L
- static int m_Array_incRef(lua_State * L)
+ static int m_Object_getString(lua_State * L)
{
-- int i;
+- GooString *gs;
++ const GooString *gs;
udstruct *uin;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Array);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Array *) uin->d)->incRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
-@@ -685,8 +683,7 @@ static int m_Array_decRef(lua_State * L)
- uin = (udstruct *) luaL_checkudata(L, 1, M_Array);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Array *) uin->d)->decRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
-@@ -702,7 +699,7 @@ static int m_Array_add(lua_State * L)
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (uobj->pd != NULL && uobj->pd->pc != uobj->pc))
- pdfdoc_changed_error(L);
-- ((Array *) uin->d)->add(((Object *) uobj->d));
-+ ((Array *) uin->d)->add(std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -718,7 +715,7 @@ static int m_Array_get(lua_State * L)
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Array *) uin->d)->get(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Array *) uin->d)->get(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -739,7 +736,7 @@ static int m_Array_getNF(lua_State * L)
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Array *) uin->d)->getNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -953,25 +950,21 @@ static const struct luaL_Reg Catalog_m[]
-
- static int m_Dict_incRef(lua_State * L)
- {
-- int i;
- udstruct *uin;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Dict);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Dict *) uin->d)->incRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
- static int m_Dict_decRef(lua_State * L)
- {
-- int i;
- udstruct *uin;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Dict);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- i = ((Dict *) uin->d)->decRef();
-- lua_pushinteger(L, i);
-+ lua_pushinteger(L, 1);
- return 1;
- }
-
-@@ -986,7 +979,7 @@ static int m_Dict_add(lua_State * L)
- pdfdoc_changed_error(L);
- s = copyString(luaL_checkstring(L, 2));
- uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
-- ((Dict *) uin->d)->add(s, ((Object *) uobj->d));
-+ ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -999,7 +992,7 @@ static int m_Dict_set(lua_State * L)
- pdfdoc_changed_error(L);
- s = luaL_checkstring(L, 2);
- uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
-- ((Dict *) uin->d)->set(s, ((Object *) uobj->d));
-+ ((Dict *) uin->d)->set(s, std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1027,7 +1020,7 @@ static int m_Dict_lookup(lua_State * L)
- s = luaL_checkstring(L, 2);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->lookup(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->lookup(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1044,7 +1037,7 @@ static int m_Dict_lookupNF(lua_State * L
- s = luaL_checkstring(L, 2);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->lookupNF(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1096,7 +1089,7 @@ static int m_Dict_getVal(lua_State * L)
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->getVal(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->getVal(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1117,7 +1110,7 @@ static int m_Dict_getValNF(lua_State * L
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Dict *) uin->d)->getValNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1381,9 +1374,9 @@ static int m_Object_initBool(lua_State *
- pdfdoc_changed_error(L);
- luaL_checktype(L, 2, LUA_TBOOLEAN);
- if (lua_toboolean(L, 2) != 0)
-- ((Object *) uin->d)->initBool(gTrue);
-+ *((Object *) uin->d) = Object(gTrue);
- else
-- ((Object *) uin->d)->initBool(gFalse);
-+ *((Object *) uin->d) = Object(gFalse);
- return 0;
- }
-
-@@ -1395,7 +1388,7 @@ static int m_Object_initInt(lua_State *
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- i = luaL_checkint(L, 2);
-- ((Object *) uin->d)->initInt(i);
-+ *((Object *) uin->d) = Object(i);
- return 0;
- }
-
-@@ -1407,7 +1400,7 @@ static int m_Object_initReal(lua_State *
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- d = luaL_checknumber(L, 2);
-- ((Object *) uin->d)->initReal(d);
-+ *((Object *) uin->d) = Object(d);
- return 0;
- }
-
-@@ -1422,7 +1415,7 @@ static int m_Object_initString(lua_State
- pdfdoc_changed_error(L);
- s = luaL_checklstring(L, 2, &len);
- gs = new GooString(s, len);
-- ((Object *) uin->d)->initString(gs);
-+ *((Object *) uin->d) = Object(gs);
- return 0;
- }
-
-@@ -1434,7 +1427,7 @@ static int m_Object_initName(lua_State *
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- s = luaL_checkstring(L, 2);
-- ((Object *) uin->d)->initName(s);
-+ *((Object *) uin->d) = Object(objName, s);
- return 0;
- }
-
-@@ -1444,13 +1437,14 @@ static int m_Object_initNull(lua_State *
uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initNull();
-+ *((Object *) uin->d) = Object(objNull);
- return 0;
- }
-
- static int m_Object_initArray(lua_State * L)
- {
- udstruct *uin, *uxref;
-+ Array *a;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- uxref = (udstruct *) luaL_checkudata(L, 2, M_XRef);
- if (uin->pd != NULL && uxref->pd != NULL && uin->pd != uxref->pd)
-@@ -1458,7 +1452,8 @@ static int m_Object_initArray(lua_State
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (uxref->pd != NULL && uxref->pd->pc != uxref->pc))
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initArray((XRef *) uxref->d);
-+ a = new Array((XRef *) uxref->d);
-+ *((Object *) uin->d) = Object(a);
- return 0;
- }
-
-@@ -1469,6 +1464,7 @@ static int m_Object_initArray(lua_State
- static int m_Object_initDict(lua_State * L)
- {
- udstruct *uin, *uxref;
-+ Dict *d;
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- uxref = (udstruct *) luaL_checkudata(L, 2, M_XRef);
- if (uin->pd != NULL && uxref->pd != NULL && uin->pd != uxref->pd)
-@@ -1476,7 +1472,8 @@ static int m_Object_initDict(lua_State *
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (uxref->pd != NULL && uxref->pd->pc != uxref->pc))
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initDict((XRef *) uxref->d);
-+ d = new Dict((XRef *) uxref->d);
-+ *((Object *) uin->d) = Object(d);
- return 0;
- }
-
-@@ -1490,7 +1487,7 @@ static int m_Object_initStream(lua_State
- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
- || (ustream->pd != NULL && ustream->pd->pc != ustream->pc))
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initStream((Stream *) ustream->d);
-+ *((Object *) uin->d) = Object((Stream *) ustream->d);
- return 0;
- }
-
-@@ -1503,7 +1500,7 @@ static int m_Object_initRef(lua_State *
- pdfdoc_changed_error(L);
- num = luaL_checkint(L, 2);
- gen = luaL_checkint(L, 3);
-- ((Object *) uin->d)->initRef(num, gen);
-+ *((Object *) uin->d) = Object(num, gen);
- return 0;
- }
-
-@@ -1515,7 +1512,7 @@ static int m_Object_initCmd(lua_State *
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- s = luaL_checkstring(L, 2);
-- ((Object *) uin->d)->initCmd(CHARP_CAST s);
-+ *((Object *) uin->d) = Object(objCmd, CHARP_CAST s);
- return 0;
- }
-
-@@ -1525,7 +1522,7 @@ static int m_Object_initError(lua_State
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initError();
-+ *((Object *) uin->d) = Object(objError);
- return 0;
- }
-
-@@ -1535,7 +1532,7 @@ static int m_Object_initEOF(lua_State *
- uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
-- ((Object *) uin->d)->initEOF();
-+ *((Object *) uin->d) = Object(objEOF);
- return 0;
- }
-
-@@ -1551,7 +1548,7 @@ static int m_Object_fetch(lua_State * L)
- pdfdoc_changed_error(L);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->fetch((XRef *) uxref->d, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->fetch((XRef *) uxref->d);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1659,7 +1656,7 @@ static int m_Object_getString(lua_State
- if (uin->pd != NULL && uin->pd->pc != uin->pc)
- pdfdoc_changed_error(L);
- if (((Object *) uin->d)->isString()) {
-- gs = ((Object *) uin->d)->getString();
-+ gs = const_cast<GooString*>(((Object *) uin->d)->getString());
- lua_pushlstring(L, gs->getCString(), gs->getLength());
- } else
- lua_pushnil(L);
-@@ -1816,7 +1813,7 @@ static int m_Object_arrayAdd(lua_State *
- pdfdoc_changed_error(L);
- if (!((Object *) uin->d)->isArray())
- luaL_error(L, "Object is not an Array");
-- ((Object *) uin->d)->arrayAdd((Object *) uobj->d);
-+ ((Object *) uin->d)->arrayAdd(std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1833,7 +1830,7 @@ static int m_Object_arrayGet(lua_State *
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->arrayGet(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGet(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1857,7 +1854,7 @@ static int m_Object_arrayGetNF(lua_State
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->arrayGetNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1897,7 +1894,7 @@ static int m_Object_dictAdd(lua_State *
- pdfdoc_changed_error(L);
- if (!((Object *) uin->d)->isDict())
- luaL_error(L, "Object is not a Dict");
-- ((Object *) uin->d)->dictAdd(copyString(s), (Object *) uobj->d);
-+ ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1915,7 +1912,7 @@ static int m_Object_dictSet(lua_State *
- pdfdoc_changed_error(L);
- if (!((Object *) uin->d)->isDict())
- luaL_error(L, "Object is not a Dict");
-- ((Object *) uin->d)->dictSet(s, (Object *) uobj->d);
-+ ((Object *) uin->d)->dictSet(s, std::move(*((Object *) uobj->d)));
- return 0;
- }
-
-@@ -1930,7 +1927,7 @@ static int m_Object_dictLookup(lua_State
- if (((Object *) uin->d)->isDict()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictLookup(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookup(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1950,7 +1947,7 @@ static int m_Object_dictLookupNF(lua_Sta
- if (((Object *) uin->d)->isDict()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictLookupNF(s, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -1991,7 +1988,7 @@ static int m_Object_dictGetVal(lua_State
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictGetVal(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetVal(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2015,7 +2012,7 @@ static int m_Object_dictGetValNF(lua_Sta
- if (i > 0 && i <= len) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((Object *) uin->d)->dictGetValNF(i - 1, (Object *) uout->d);
-+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2243,7 +2240,7 @@ m_poppler_get_poppler(Page, Stream, getM
- m_poppler_get_poppler(Page, Dict, getPieceInfo);
- m_poppler_get_poppler(Page, Dict, getSeparationInfo);
- m_poppler_get_poppler(Page, Dict, getResourceDict);
--m_poppler_get_OBJECT(Page, getAnnots);
-+m_poppler_get_OBJECT(Page, getAnnotsObject);
-
- m_poppler_get_OBJECT(Page, getContents);
-
-@@ -2270,7 +2267,7 @@ static const struct luaL_Reg Page_m[] =
- {"getPieceInfo", m_Page_getPieceInfo},
- {"getSeparationInfo", m_Page_getSeparationInfo},
- {"getResourceDict", m_Page_getResourceDict},
-- {"getAnnots", m_Page_getAnnots},
-+ {"getAnnots", m_Page_getAnnotsObject},
- {"getContents", m_Page_getContents},
- {"__tostring", m_Page__tostring},
- {NULL, NULL} // sentinel
-@@ -2520,7 +2517,7 @@ static int m_PDFDoc_getDocInfo(lua_State
- if (((PdfDocument *) uin->d)->doc->getXRef()->isOk()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((PdfDocument *) uin->d)->doc->getDocInfo((Object *) uout->d);
-+ *((Object *) uout->d) = ((PdfDocument *) uin->d)->doc->getDocInfo();
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2538,7 +2535,7 @@ static int m_PDFDoc_getDocInfoNF(lua_Sta
- if (((PdfDocument *) uin->d)->doc->getXRef()->isOk()) {
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((PdfDocument *) uin->d)->doc->getDocInfoNF((Object *) uout->d);
-+ *((Object *) uout->d) = ((PdfDocument *) uin->d)->doc->getDocInfoNF();
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -2841,7 +2838,7 @@ static int m_Attribute_getValue(lua_Stat
- uout = new_Object_userdata(L);
- uout->d = new Object();
- origin = (Object *) (((Attribute *) uin->d)->getValue());
-- origin->copy ( ((Object *)uout->d) );
-+ *((Object *) uout->d) = origin->copy();
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -3320,7 +3317,7 @@ static int m_StructTreeRoot_findParentEl
- parent = root->findParentElement(i-1);
- if (parent != NULL) {
- uout = new_StructElement_userdata(L);
-- uout->d = new StructElement( *parent );
-+ uout->d = (StructElement *) parent;
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
-@@ -3370,7 +3367,7 @@ static int m_XRef_fetch(lua_State * L)
- gen = luaL_checkint(L, 3);
- uout = new_Object_userdata(L);
- uout->d = new Object();
-- ((XRef *) uin->d)->fetch(num, gen, (Object *) uout->d);
-+ *((Object *) uout->d) = ((XRef *) uin->d)->fetch(num, gen);
- uout->atype = ALLOC_LEPDF;
- uout->pc = uin->pc;
- uout->pd = uin->pd;
diff --git a/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lpdfscannerlib.cc b/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lpdfscannerlib.cc
deleted file mode 100644
index a6db6e23595..00000000000
--- a/print/luatex/patches/patch-texk_web2c_luatexdir_lua_lpdfscannerlib.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-texk_web2c_luatexdir_lua_lpdfscannerlib.cc,v 1.1 2017/12/31 00:41:19 markd Exp $
-
-Add support for newer poppler's from ArchLinux
-
---- texk/web2c/luatexdir/lua/lpdfscannerlib.cc.orig 2016-11-25 18:09:15.000000000 +0000
-+++ texk/web2c/luatexdir/lua/lpdfscannerlib.cc
-@@ -634,7 +634,7 @@ static int scanner_scan(lua_State * L)
- int i;
- for (i=0;i<count;i++) {
- Object *val = new Object();
-- arrayref->get(i, val);
-+ *val = arrayref->get(i);
- if (val->isStream()) {
- ObjectList *rover = self->_streams;
- ObjectList *item = (ObjectList *)priv_xmalloc (sizeof(ObjectList));
diff --git a/print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ctype.c b/print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ctype.c
deleted file mode 100644
index f845c4d210c..00000000000
--- a/print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ctype.c
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-texk_web2c_luatexdir_luaffi_ctype.c,v 1.1 2017/12/31 00:36:04 markd Exp $
-gcc-7 fix - Dr. Werner Fink <werner@suse.de>
-
---- texk/web2c/luatexdir/luaffi/ctype.c.orig 2017-02-10 01:03:59.000000000 +0000
-+++ texk/web2c/luatexdir/luaffi/ctype.c
-@@ -245,6 +245,10 @@ void* to_cdata(lua_State* L, int idx, st
-
- lua_pop(L, 1); /* mt */
- cd = (struct cdata*) lua_touserdata(L, idx);
-+ if (!cd) {
-+ lua_pushnil(L);
-+ return NULL;
-+ }
- *ct = cd->type;
- lua_getuservalue(L, idx);
-
diff --git a/print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ffi.h b/print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ffi.h
deleted file mode 100644
index e6363fe12ad..00000000000
--- a/print/luatex/patches/patch-texk_web2c_luatexdir_luaffi_ffi.h
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-texk_web2c_luatexdir_luaffi_ffi.h,v 1.1 2017/12/31 00:36:04 markd Exp $
-gcc-7 fix - Dr. Werner Fink <werner@suse.de>
-
---- texk/web2c/luatexdir/luaffi/ffi.h.orig 2017-03-11 01:04:06.000000000 +0000
-+++ texk/web2c/luatexdir/luaffi/ffi.h
-@@ -370,7 +370,7 @@ __declspec(align(16))
- #endif
- struct cdata {
- const struct ctype type
--#ifdef __GNUC__
-+#if 0 /* def __GNUC__ */
- __attribute__ ((aligned(16)))
- #endif
- ;