summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-tex/luatex
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-tex/luatex')
-rw-r--r--dev-tex/luatex/Manifest4
-rw-r--r--dev-tex/luatex/files/includes.patch25
-rw-r--r--dev-tex/luatex/files/kpathsea2012.patch28
-rw-r--r--dev-tex/luatex/files/poppler018.patch160
-rw-r--r--dev-tex/luatex/files/poppler020.patch75
-rw-r--r--dev-tex/luatex/files/poppler022.patch388
-rw-r--r--dev-tex/luatex/files/poppler026-backport.patch99
-rw-r--r--dev-tex/luatex/files/poppler026.patch143
-rw-r--r--dev-tex/luatex/files/remove-zlib-version-check.patch23
-rw-r--r--dev-tex/luatex/luatex-0.70.1-r2.ebuild121
-rw-r--r--dev-tex/luatex/luatex-0.76.0.ebuild104
-rw-r--r--dev-tex/luatex/metadata.xml10
12 files changed, 1180 insertions, 0 deletions
diff --git a/dev-tex/luatex/Manifest b/dev-tex/luatex/Manifest
new file mode 100644
index 000000000000..2e43dce98161
--- /dev/null
+++ b/dev-tex/luatex/Manifest
@@ -0,0 +1,4 @@
+DIST luatex-beta-0.70.1-doc.tar.bz2 1048489 SHA256 4f1d24777725a606efbf5d7a59064245c46fb29b8066236c6b48fb423a595606 SHA512 eb4de91a80a6afccf5cca5cb05d5c1378a60ec35763e5ef5e9dbadaa2a276758a446e01d66e76a78e91442274778c10c73458b513af903e7221d90beb644afa9 WHIRLPOOL 97142a3a3c23d01f3b21963690f7362edf0c7f0de1ad77295361122a81c92459cb2ecd36baaea3588b7ad4f8b81c5dfa81d22df7a5529cb5b8b2b39fe6ce84be
+DIST luatex-beta-0.70.1.tar.bz2 8181155 SHA256 c641a4ba1535ede6ee8e2a958d8c4b436f5979c5be6f3f51d3dec5b4df6bb6ed SHA512 e04a9b96f349bf9036ef4c01746dee96ebf245cd4da6b719f546223e05cb98fb844e20878a64f80f42c77e220fac01ee2d97ad56939c1fb3af44faab53c603cb WHIRLPOOL 63dfdf182d3f1aadd6fc802e424b3791eda4df7eb8d707ad719d2ad0f97946b365316f6b9caed2362d5827280e9ddf2e750c8beeb61277dac72bffaed06a4fc9
+DIST luatex-beta-0.76.0-doc.tar.bz2 995143 SHA256 746b8e8092e017b8b2a32dd80981d0ff6731520f49f6b1caa60519c441809638 SHA512 cd64e1fea3f631c7c6e268d01285f96966325fd16971d8840eef178ccc11b001b40ae5cfcc6c7c3bb026a3f04c04a16b90813f0b6818383bb80686a89ea48596 WHIRLPOOL 215a8dec04a91805fe449ee99e8e210298124261258f8a92fb33850dc52695fc1215be3369de52fcb6a078baf52e1f812b4cac7d8611c3565f356d8a3f188c58
+DIST luatex-beta-0.76.0-source.tar.bz2 11748576 SHA256 71a96c927c9d9032e0126f0bc6c679191f0850a4611cd395de69e69a4d3b7716 SHA512 71ea789a95d419bf177f7f9f8d24d00a9d5639665feadac93cc30c86531e4942d29d848ef39ca3698de3efb1b8da9eb19890b1a06b45664641c7e47a79dd80b0 WHIRLPOOL abfa833b2d0457408d3a38a9229d7fd21d8380eb0743b574a318b6bea1d513e51c84367f5f773ef7c965517840735b43210d62c988bbbb6f7ec6293cdcc4e348
diff --git a/dev-tex/luatex/files/includes.patch b/dev-tex/luatex/files/includes.patch
new file mode 100644
index 000000000000..f93c7312b315
--- /dev/null
+++ b/dev-tex/luatex/files/includes.patch
@@ -0,0 +1,25 @@
+Index: source/texk/web2c/luatexdir/image/pdftoepdf.w
+===================================================================
+--- source.orig/texk/web2c/luatexdir/image/pdftoepdf.w
++++ source/texk/web2c/luatexdir/image/pdftoepdf.w
+@@ -26,6 +26,8 @@ static const char _svn_version[] =
+ // define DEBUG
+ #define __STDC_FORMAT_MACROS /* for PRId64 etc. */
+
++#include <stdint.h>
++#include <inttypes.h>
+ #include "image/epdf.h"
+
+ // This file is mostly C and not very much C++; it's just used to interface
+Index: source/texk/web2c/luatexdir/image/writejp2.w
+===================================================================
+--- source.orig/texk/web2c/luatexdir/image/writejp2.w
++++ source/texk/web2c/luatexdir/image/writejp2.w
+@@ -30,6 +30,7 @@ ISO/IEC 15444-1, Second edition, 2004-09
+ @c
+ #include <math.h>
+ #include <assert.h>
++#include <stdint.h>
+ #include "ptexlib.h"
+ #include "image/image.h"
+ #include "image/writejp2.h"
diff --git a/dev-tex/luatex/files/kpathsea2012.patch b/dev-tex/luatex/files/kpathsea2012.patch
new file mode 100644
index 000000000000..80c356d9de80
--- /dev/null
+++ b/dev-tex/luatex/files/kpathsea2012.patch
@@ -0,0 +1,28 @@
+From TeX Live svn rev 23421.
+Remove unnecessary headers. Fixes build with kpathsea from TeX Live 2012.
+
+
+Index: source/texk/web2c/luatexdir/luatex.c
+===================================================================
+--- source/texk/web2c/luatexdir/luatex.c (revision 23420)
++++ source/texk/web2c/luatexdir/luatex.c (revision 23421)
+@@ -32,7 +32,6 @@
+ #include <kpathsea/readable.h>
+ #include <kpathsea/variable.h>
+ #include <kpathsea/absolute.h>
+-#include <kpathsea/recorder.h>
+ #ifdef WIN32
+ #include <kpathsea/concatn.h>
+ #endif
+Index: source/texk/web2c/lib/texmfmp.c
+===================================================================
+--- source/texk/web2c/lib/texmfmp.c (revision 23420)
++++ source/texk/web2c/lib/texmfmp.c (revision 23421)
+@@ -17,7 +17,6 @@
+ #include <kpathsea/readable.h>
+ #include <kpathsea/variable.h>
+ #include <kpathsea/absolute.h>
+-#include <kpathsea/recorder.h>
+ #ifdef WIN32
+ #include <kpathsea/concatn.h>
+ #endif
diff --git a/dev-tex/luatex/files/poppler018.patch b/dev-tex/luatex/files/poppler018.patch
new file mode 100644
index 000000000000..d21253853db7
--- /dev/null
+++ b/dev-tex/luatex/files/poppler018.patch
@@ -0,0 +1,160 @@
+by Martin von Gagern
+https://bugs.gentoo.org/show_bug.cgi?id=384875
+http://thread.gmane.org/gmane.comp.tex.luatex/2630
+
+--- luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc
++++ luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc
+@@ -89,7 +89,6 @@ new_poppler_userdata(AnnotBorder);
+ 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 @@ static int m_Annot__gc(lua_State * L)
+ 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 @@ static const struct luaL_Reg Annot_m[] =
+ };
+
+ //**********************************************************************
+-// 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 @@ static int m_Catalog_findDest(lua_State
+
+ 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 @@ static const struct luaL_Reg Catalog_m[]
+ {"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 @@ static const struct luaL_Reg Catalog_m[]
+ };
+
+ //**********************************************************************
+-// 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 @@ int luaopen_epdf(lua_State * L)
+ {
+ 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 --git a/dev-tex/luatex/files/poppler020.patch b/dev-tex/luatex/files/poppler020.patch
new file mode 100644
index 000000000000..d3db830d3430
--- /dev/null
+++ b/dev-tex/luatex/files/poppler020.patch
@@ -0,0 +1,75 @@
+https://bugs.gentoo.org/show_bug.cgi?id=416545
+build with poppler-0.20 by Rafał Mużyło
+
+--- source/texk/web2c/luatexdir/lua/lepdflib.cc 2012-05-18 16:23:53.000000000 +0200
++++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2012-05-18 17:43:12.959843483 +0200
+@@ -151,7 +151,7 @@ static int l_new_Annot(lua_State * L)
+ pdfdoc_changed_error(L);
+ uout = new_Annot_userdata(L);
+ uout->d =
+- new Annot((XRef *) uxref->d, (Dict *) udict->d, (Catalog *) ucatalog->d,
++ new Annot(udict->pd->doc, (Dict *) udict->d,
+ (Object *) uref->d);
+ uout->atype = ALLOC_LEPDF;
+ uout->pc = uxref->pc;
+@@ -173,7 +173,7 @@ static int l_new_Annots(lua_State * L)
+ pdfdoc_changed_error(L);
+ uout = new_Annots_userdata(L);
+ uout->d =
+- new Annots((XRef *) uxref->d, (Catalog *) ucatalog->d,
++ new Annots(uannotsobj->pd->doc,
+ (Object *) uannotsobj->d);
+ uout->atype = ALLOC_LEPDF;
+ uout->pc = uxref->pc;
+@@ -363,7 +363,7 @@ static int m_##type##__tostring(lua_Stat
+ // Annot
+
+ m_poppler_get_BOOL(Annot, isOk);
+-m_poppler_get_OBJECT(Annot, getAppearance);
++m_poppler_get_OBJECT(Annot, getAppearanceResDict);
+ m_poppler_get_poppler(Annot, AnnotBorder, getBorder);
+
+ static int m_Annot_match(lua_State * L)
+@@ -398,7 +398,7 @@ static int m_Annot__gc(lua_State * L)
+
+ static const struct luaL_Reg Annot_m[] = {
+ {"isOk", m_Annot_isOk},
+- {"getAppearance", m_Annot_getAppearance},
++ {"getAppearanceResDict", m_Annot_getAppearanceResDict},
+ {"getBorder", m_Annot_getBorder},
+ {"match", m_Annot_match},
+ {"__tostring", m_Annot__tostring},
+@@ -1249,7 +1249,7 @@ static int m_Object_getType(lua_State *
+
+ static int m_Object_getTypeName(lua_State * L)
+ {
+- char *s;
++ const char *s;
+ udstruct *uin;
+ uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+@@ -1936,7 +1936,7 @@ static int m_Page_getLinks(lua_State * L
+ if ((uin->pd != NULL && uin->pd->pc != uin->pc)
+ || (ucat->pd != NULL && ucat->pd->pc != ucat->pd->pc))
+ pdfdoc_changed_error(L);
+- links = ((Page *) uin->d)->getLinks((Catalog *) ucat->d);
++ links = ((Page *) uin->d)->getLinks();
+ if (links != NULL) {
+ uout = new_Links_userdata(L);
+ uout->d = links;
+@@ -2531,7 +2531,6 @@ m_poppler_get_INT(XRef, getNumObjects);
+ m_poppler_get_INT(XRef, getRootNum);
+ m_poppler_get_INT(XRef, getRootGen);
+ // getStreamEnd
+-m_poppler_get_INT(XRef, getSize);
+ // getEntry
+ m_poppler_get_poppler(XRef, Object, getTrailerDict);
+
+@@ -2558,7 +2557,6 @@ static const struct luaL_Reg XRef_m[] =
+ {"getRootNum", m_XRef_getRootNum},
+ {"getRootGen", m_XRef_getRootGen},
+ //
+- {"getSize", m_XRef_getSize},
+ {"getTrailerDict", m_XRef_getTrailerDict},
+ {"__tostring", m_XRef__tostring},
+ {NULL, NULL} // sentinel
diff --git a/dev-tex/luatex/files/poppler022.patch b/dev-tex/luatex/files/poppler022.patch
new file mode 100644
index 000000000000..223cbcb27456
--- /dev/null
+++ b/dev-tex/luatex/files/poppler022.patch
@@ -0,0 +1,388 @@
+Patch updating lepdflib.cc to upstream revision 4415, which basically removes
+part of the exported interface and thereby circumvents the changes in
+poppler-0.20 -> 0.22. Experimental, rebased on our existing Gentoo patches
+poppler-0.18.patch and poppler-0.20.patch. Here to solve bug 449538.
+
+diff -ruN luatex-beta-0.70.1.gentoo/source/texk/web2c/luatexdir/lua/lepdflib.cc
+luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc
+--- luatex-beta-0.70.1.gentoo/source/texk/web2c/luatexdir/lua/lepdflib.cc 2013-03-10 13:31:22.000000000 +0100
++++ luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc 2013-03-10 13:47:24.000000000 +0100
+@@ -1,7 +1,7 @@
+ /* lepdflib.cc
+
+- Copyright 2009-2011 Taco Hoekwater <taco@luatex.org>
+- Copyright 2009-2011 Hartmut Henkel <hartmut@luatex.org>
++ Copyright 2009-2012 Taco Hoekwater <taco@luatex.org>
++ Copyright 2009-2012 Hartmut Henkel <hartmut@luatex.org>
+
+ This file is part of LuaTeX.
+
+@@ -49,15 +49,13 @@
+ //**********************************************************************
+
+ #define M_Annot "Annot"
+-#define M_AnnotBorder "AnnotBorder"
+-#define M_AnnotBorderStyle "AnnotBorderStyle"
+ #define M_Annots "Annots"
+ #define M_Array "Array"
+ #define M_Catalog "Catalog"
+-#define M_EmbFile "EmbFile"
+ #define M_Dict "Dict"
+ #define M_GooString "GooString"
+ #define M_LinkDest "LinkDest"
++#define M_Link "Link"
+ #define M_Links "Links"
+ #define M_Object "Object"
+ #define M_Page "Page"
+@@ -65,8 +63,8 @@
+ #define M_PDFRectangle "PDFRectangle"
+ #define M_Ref "Ref"
+ #define M_Stream "Stream"
+-#define M_XRef "XRef"
+ #define M_XRefEntry "XRefEntry"
++#define M_XRef "XRef"
+
+ //**********************************************************************
+
+@@ -84,13 +82,9 @@
+ new_poppler_userdata(PDFDoc);
+
+ new_poppler_userdata(Annot);
+-new_poppler_userdata(AnnotBorder);
+-//new_poppler_userdata(AnnotBorderStyle);
+-new_poppler_userdata(Annots);
+ new_poppler_userdata(Array);
+ new_poppler_userdata(Catalog);
+ new_poppler_userdata(Dict);
+-//new_poppler_userdata(GooString);
+ new_poppler_userdata(LinkDest);
+ new_poppler_userdata(Links);
+ new_poppler_userdata(Object);
+@@ -99,7 +93,6 @@
+ new_poppler_userdata(Ref);
+ new_poppler_userdata(Stream);
+ new_poppler_userdata(XRef);
+-//new_poppler_userdata(XRefEntry);
+
+ //**********************************************************************
+
+@@ -134,53 +127,6 @@
+ return 1; // doc path
+ }
+
+-static int l_new_Annot(lua_State * L)
+-{
+- udstruct *uxref, *udict, *ucatalog, *uref, *uout;
+- uxref = (udstruct *) luaL_checkudata(L, 1, M_XRef);
+- udict = (udstruct *) luaL_checkudata(L, 2, M_Dict);
+- ucatalog = (udstruct *) luaL_checkudata(L, 3, M_Catalog);
+- uref = (udstruct *) luaL_checkudata(L, 4, M_Ref);
+- if (uxref->pd != ucatalog->pd || uxref->pd != udict->pd
+- || uxref->pd != uref->pd)
+- pdfdoc_differs_error(L);
+- if ((uxref->pd != NULL && uxref->pd->pc != uxref->pc) ||
+- (ucatalog->pd != NULL && ucatalog->pd->pc != ucatalog->pc) ||
+- (udict->pd != NULL && udict->pd->pc != udict->pc) ||
+- (uref->pd != NULL && uref->pd->pc != uref->pc))
+- pdfdoc_changed_error(L);
+- uout = new_Annot_userdata(L);
+- uout->d =
+- new Annot(udict->pd->doc, (Dict *) udict->d,
+- (Object *) uref->d);
+- uout->atype = ALLOC_LEPDF;
+- uout->pc = uxref->pc;
+- uout->pd = uxref->pd;
+- return 1;
+-}
+-
+-static int l_new_Annots(lua_State * L)
+-{
+- udstruct *uxref, *ucatalog, *uannotsobj, *uout;
+- uxref = (udstruct *) luaL_checkudata(L, 1, M_XRef);
+- ucatalog = (udstruct *) luaL_checkudata(L, 2, M_Catalog);
+- uannotsobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
+- if (uxref->pd != ucatalog->pd || uxref->pd != uannotsobj->pd)
+- pdfdoc_differs_error(L);
+- if ((uxref->pd != NULL && uxref->pd->pc != uxref->pc)
+- || (ucatalog->pd != NULL && ucatalog->pd->pc != ucatalog->pc)
+- || (uannotsobj->pd != NULL && uannotsobj->pd->pc != uannotsobj->pc))
+- pdfdoc_changed_error(L);
+- uout = new_Annots_userdata(L);
+- uout->d =
+- new Annots(uannotsobj->pd->doc,
+- (Object *) uannotsobj->d);
+- uout->atype = ALLOC_LEPDF;
+- uout->pc = uxref->pc;
+- uout->pd = uxref->pd;
+- return 1;
+-}
+-
+ static int l_new_Array(lua_State * L)
+ {
+ udstruct *uxref, *uout;
+@@ -235,8 +181,6 @@
+
+ static const struct luaL_Reg epdflib[] = {
+ {"open", l_open_PDFDoc},
+- {"Annot", l_new_Annot},
+- {"Annots", l_new_Annots},
+ {"Array", l_new_Array},
+ {"Dict", l_new_Dict},
+ {"Object", l_new_Object},
+@@ -359,12 +303,26 @@
+ return 1; \
+ }
+
++#define m_poppler_check_string(in, function) \
++static int m_##in##_##function(lua_State * L) \
++{ \
++ const char *s; \
++ udstruct *uin; \
++ uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
++ if (uin->pd != NULL && uin->pd->pc != uin->pc) \
++ pdfdoc_changed_error(L); \
++ s = luaL_checkstring(L, 2); \
++ if (((in *) uin->d)->function((char *) s)) \
++ lua_pushboolean(L, 1); \
++ else \
++ lua_pushboolean(L, 0); \
++ return 1; \
++}
++
+ //**********************************************************************
+ // Annot
+
+ m_poppler_get_BOOL(Annot, isOk);
+-m_poppler_get_OBJECT(Annot, getAppearanceResDict);
+-m_poppler_get_poppler(Annot, AnnotBorder, getBorder);
+
+ static int m_Annot_match(lua_State * L)
+ {
+@@ -398,8 +356,6 @@
+
+ static const struct luaL_Reg Annot_m[] = {
+ {"isOk", m_Annot_isOk},
+- {"getAppearanceResDict", m_Annot_getAppearanceResDict},
+- {"getBorder", m_Annot_getBorder},
+ {"match", m_Annot_match},
+ {"__tostring", m_Annot__tostring},
+ {"__gc", m_Annot__gc},
+@@ -654,6 +610,7 @@
+
+ m_poppler_get_poppler(Catalog, Object, getDests);
+ m_poppler_get_INT(Catalog, numEmbeddedFiles);
++
+ m_poppler_get_INT(Catalog, numJS);
+
+ static int m_Catalog_getJS(lua_State * L)
+@@ -770,20 +727,7 @@
+ return 0;
+ }
+
+-static int m_Dict_is(lua_State * L)
+-{
+- const char *s;
+- udstruct *uin;
+- uin = (udstruct *) luaL_checkudata(L, 1, M_Dict);
+- if (uin->pd != NULL && uin->pd->pc != uin->pc)
+- pdfdoc_changed_error(L);
+- s = luaL_checkstring(L, 2);
+- if (((Dict *) uin->d)->is((char *) s))
+- lua_pushboolean(L, 1);
+- else
+- lua_pushboolean(L, 0);
+- return 1;
+-}
++m_poppler_check_string(Dict, is);
+
+ static int m_Dict_lookup(lua_State * L)
+ {
+@@ -894,6 +838,8 @@
+ return 1;
+ }
+
++m_poppler_check_string(Dict, hasKey);
++
+ m_poppler__tostring(Dict);
+
+ static const struct luaL_Reg Dict_m[] = {
+@@ -910,6 +856,7 @@
+ {"getKey", m_Dict_getKey},
+ {"getVal", m_Dict_getVal},
+ {"getValNF", m_Dict_getValNF},
++ {"hasKey", m_Dict_hasKey},
+ {"__tostring", m_Dict__tostring},
+ {NULL, NULL} // sentinel
+ };
+@@ -1017,9 +964,13 @@
+ //**********************************************************************
+ // Links
+
++m_poppler_get_INT(Links, getNumLinks);
++
+ m_poppler__tostring(Links);
+
+ static const struct luaL_Reg Links_m[] = {
++ {"getNumLinks", m_Links_getNumLinks},
++ //{"getLink", m_Links_getLink},
+ {"__tostring", m_Links__tostring},
+ {NULL, NULL} // sentinel
+ };
+@@ -1925,28 +1876,6 @@
+ m_poppler_get_poppler(Page, Dict, getResourceDict);
+ m_poppler_get_OBJECT(Page, getAnnots);
+
+-static int m_Page_getLinks(lua_State * L)
+-{
+- Links *links;
+- udstruct *uin, *ucat, *uout;
+- uin = (udstruct *) luaL_checkudata(L, 1, M_Page);
+- ucat = (udstruct *) luaL_checkudata(L, 2, M_Catalog);
+- if (uin->pd != NULL && ucat->pd != NULL && uin->pd != ucat->pd)
+- pdfdoc_differs_error(L);
+- if ((uin->pd != NULL && uin->pd->pc != uin->pc)
+- || (ucat->pd != NULL && ucat->pd->pc != ucat->pd->pc))
+- pdfdoc_changed_error(L);
+- links = ((Page *) uin->d)->getLinks();
+- if (links != NULL) {
+- uout = new_Links_userdata(L);
+- uout->d = links;
+- uout->pc = uin->pc;
+- uout->pd = uin->pd;
+- } else
+- lua_pushnil(L);
+- return 1;
+-}
+-
+ m_poppler_get_OBJECT(Page, getContents);
+
+ m_poppler__tostring(Page);
+@@ -1973,7 +1902,6 @@
+ {"getSeparationInfo", m_Page_getSeparationInfo},
+ {"getResourceDict", m_Page_getResourceDict},
+ {"getAnnots", m_Page_getAnnots},
+- {"getLinks", m_Page_getLinks},
+ {"getContents", m_Page_getContents},
+ {"__tostring", m_Page__tostring},
+ {NULL, NULL} // sentinel
+@@ -2158,19 +2086,23 @@
+
+ static int m_PDFDoc_getLinks(lua_State * L)
+ {
+- int i;
++ int i, pages;
+ Links *links;
+ udstruct *uin, *uout;
+ uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+ pdfdoc_changed_error(L);
+ i = luaL_checkint(L, 2);
+- links = ((PdfDocument *) uin->d)->doc->getLinks(i);
+- if (links != NULL) {
+- uout = new_Links_userdata(L);
+- uout->d = links;
+- uout->pc = uin->pc;
+- uout->pd = uin->pd;
++ pages = ((PdfDocument *) uin->d)->doc->getNumPages();
++ if (i > 0 && i <= pages) {
++ links = ((PdfDocument *) uin->d)->doc->getLinks(i);
++ if (links != NULL) {
++ uout = new_Links_userdata(L);
++ uout->d = links;
++ uout->pc = uin->pc;
++ uout->pd = uin->pd;
++ } else
++ lua_pushnil(L);
+ } else
+ lua_pushnil(L);
+ return 1;
+@@ -2249,6 +2181,8 @@
+ m_PDFDoc_INT(getPDFMajorVersion);
+ m_PDFDoc_INT(getPDFMinorVersion);
+
++m_poppler__tostring(PDFDoc);
++
+ static int m_PDFDoc__gc(lua_State * L)
+ {
+ udstruct *uin;
+@@ -2292,6 +2226,7 @@
+ {"getDocInfoNF", m_PDFDoc_getDocInfoNF},
+ {"getPDFMajorVersion", m_PDFDoc_getPDFMajorVersion},
+ {"getPDFMinorVersion", m_PDFDoc_getPDFMinorVersion},
++ {"__tostring", m_PDFDoc__tostring},
+ {"__gc", m_PDFDoc__gc}, // finalizer
+ {NULL, NULL} // sentinel
+ };
+@@ -2437,11 +2372,6 @@
+ "Flate", "JBIG2", "JPX", "Weird", NULL
+ };
+
+-#if 0
+-static const char *StreamColorSpaceModeNames[] =
+- { "CSNone", "CSDeviceGray", "CSDeviceRGB", "CSDeviceCMYK", NULL };
+-#endif
+-
+ m_poppler_get_INT(Stream, getKind);
+
+ static int m_Stream_getKindName(lua_State * L)
+@@ -2527,11 +2457,26 @@
+ m_poppler_get_OBJECT(XRef, getDocInfo);
+ m_poppler_get_OBJECT(XRef, getDocInfoNF);
+ m_poppler_get_INT(XRef, getNumObjects);
+-// getLastXRefPos
+ m_poppler_get_INT(XRef, getRootNum);
+ m_poppler_get_INT(XRef, getRootGen);
+ // getStreamEnd
+-// getEntry
++
++static int m_XRef_getNumEntry(lua_State * L)
++{
++ int i, offset;
++ udstruct *uin;
++ uin = (udstruct *) luaL_checkudata(L, 1, M_XRef);
++ if (uin->pd != NULL && uin->pd->pc != uin->pc)
++ pdfdoc_changed_error(L);
++ offset = luaL_checkint(L, 2);
++ i = ((XRef *) uin->d)->getNumEntry(offset);
++ if (i >= 0)
++ lua_pushinteger(L, i);
++ else
++ lua_pushnil(L);
++ return 1;
++}
++
+ m_poppler_get_poppler(XRef, Object, getTrailerDict);
+
+ m_poppler__tostring(XRef);
+@@ -2553,10 +2498,10 @@
+ {"getDocInfo", m_XRef_getDocInfo},
+ {"getDocInfoNF", m_XRef_getDocInfoNF},
+ {"getNumObjects", m_XRef_getNumObjects},
+- //
+ {"getRootNum", m_XRef_getRootNum},
+ {"getRootGen", m_XRef_getRootGen},
+- //
++ // {"getStreamEnd", m_XRef_getStreamEnd},
++ {"getNumEntry", m_XRef_getNumEntry},
+ {"getTrailerDict", m_XRef_getTrailerDict},
+ {"__tostring", m_XRef__tostring},
+ {NULL, NULL} // sentinel
+@@ -2565,7 +2510,10 @@
+ //**********************************************************************
+ // XRefEntry
+
++m_poppler__tostring(XRefEntry);
++
+ static const struct luaL_Reg XRefEntry_m[] = {
++ {"__tostring", m_XRefEntry__tostring},
+ {NULL, NULL} // sentinel
+ };
+
+@@ -2582,7 +2530,6 @@
+ int luaopen_epdf(lua_State * L)
+ {
+ register_meta(Annot);
+- // TODO register_meta(AnnotBorder);
+ register_meta(Annots);
+ register_meta(Array);
+ register_meta(Catalog);
diff --git a/dev-tex/luatex/files/poppler026-backport.patch b/dev-tex/luatex/files/poppler026-backport.patch
new file mode 100644
index 000000000000..ee151a30b47f
--- /dev/null
+++ b/dev-tex/luatex/files/poppler026-backport.patch
@@ -0,0 +1,99 @@
+diff -ruN luatex-beta-0.70.1.patched.orig/source/texk/web2c/luatexdir/image/epdf.h luatex-beta-0.70.1.patched/source/texk/web2c/luatexdir/image/epdf.h
+--- luatex-beta-0.70.1.patched.orig/source/texk/web2c/luatexdir/image/epdf.h 2011-05-19 07:38:37.000000000 +0200
++++ luatex-beta-0.70.1.patched/source/texk/web2c/luatexdir/image/epdf.h 2014-10-11 12:17:00.028331243 +0200
+@@ -33,6 +33,7 @@
+ # include <sys/stat.h>
+ # include <dirent.h>
+ # include <poppler-config.h>
++# include <StructTreeRoot.h>
+ # include <goo/GooString.h>
+ # include <goo/gmem.h>
+ # include <goo/gfile.h>
+diff -ruN luatex-beta-0.70.1.patched.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc luatex-beta-0.70.1.patched/source/texk/web2c/luatexdir/lua/lepdflib.cc
+--- luatex-beta-0.70.1.patched.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc 2014-10-11 12:24:52.509357663 +0200
++++ luatex-beta-0.70.1.patched/source/texk/web2c/luatexdir/lua/lepdflib.cc 2014-10-11 12:42:03.665415321 +0200
+@@ -48,23 +48,24 @@
+
+ //**********************************************************************
+
+-#define M_Annot "Annot"
+-#define M_Annots "Annots"
+-#define M_Array "Array"
+-#define M_Catalog "Catalog"
+-#define M_Dict "Dict"
+-#define M_GooString "GooString"
+-#define M_LinkDest "LinkDest"
+-#define M_Link "Link"
+-#define M_Links "Links"
+-#define M_Object "Object"
+-#define M_Page "Page"
+-#define M_PDFDoc "PDFDoc"
+-#define M_PDFRectangle "PDFRectangle"
+-#define M_Ref "Ref"
+-#define M_Stream "Stream"
+-#define M_XRefEntry "XRefEntry"
+-#define M_XRef "XRef"
++#define M_Annot "epdf.Annot" /* ls-hh: epdf.* gives better protection in registry */
++#define M_Annots "epdf.Annots"
++#define M_Array "epdf.Array"
++#define M_Catalog "epdf.Catalog"
++#define M_Dict "epdf.Dict"
++#define M_GooString "epdf.GooString"
++#define M_LinkDest "epdf.LinkDest"
++#define M_Link "epdf.Link"
++#define M_Links "epdf.Links"
++#define M_Object "epdf.Object"
++#define M_Page "epdf.Page"
++#define M_PDFDoc "epdf.PDFDoc"
++#define M_PDFRectangle "epdf.PDFRectangle"
++#define M_Ref "epdf.Ref"
++#define M_Stream "epdf.Stream"
++#define M_StructTreeRoot "epdf.StructTreeRoot"
++#define M_XRef "epdf.XRef"
++#define M_XRefEntry "epdf.XRefEntry"
+
+ //**********************************************************************
+
+@@ -92,6 +93,7 @@
+ new_poppler_userdata(PDFRectangle);
+ new_poppler_userdata(Ref);
+ new_poppler_userdata(Stream);
++new_poppler_userdata(StructTreeRoot);
+ new_poppler_userdata(XRef);
+
+ //**********************************************************************
+@@ -565,7 +567,11 @@
+
+ m_poppler_get_GOOSTRING(Catalog, getBaseURI);
+ m_poppler_get_GOOSTRING(Catalog, readMetadata);
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ m_poppler_get_poppler(Catalog, Object, getStructTreeRoot);
++#else
++m_poppler_get_poppler(Catalog, StructTreeRoot, getStructTreeRoot);
++#endif
+
+ static int m_Catalog_findPage(lua_State * L)
+ {
+@@ -2048,14 +2054,22 @@
+
+ static int m_PDFDoc_getStructTreeRoot(lua_State * L)
+ {
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ Object *obj;
++#else
++ StructTreeRoot *obj;
++#endif
+ udstruct *uin, *uout;
+ uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+ pdfdoc_changed_error(L);
+ if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
+ obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot();
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ uout = new_Object_userdata(L);
++#else
++ uout = new_StructTreeRoot_userdata(L);
++#endif
+ uout->d = obj;
+ uout->pc = uin->pc;
+ uout->pd = uin->pd;
diff --git a/dev-tex/luatex/files/poppler026.patch b/dev-tex/luatex/files/poppler026.patch
new file mode 100644
index 000000000000..f7b5ba35b488
--- /dev/null
+++ b/dev-tex/luatex/files/poppler026.patch
@@ -0,0 +1,143 @@
+Source: NetBSD CVS
+http://mail-index.netbsd.org/pkgsrc-bugs/2014/04/29/msg053974.html
+http://cvsweb.de.netbsd.org/cgi-bin/cvsweb.cgi/pkgsrc/print/luatex/patches/
+
+
+diff -ruN luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/image/epdf.h luatex-beta-0.76.0/source/texk/web2c/luatexdir/image/epdf.h
+--- luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/image/epdf.h 2013-04-05 12:58:37.000000000 +0200
++++ luatex-beta-0.76.0/source/texk/web2c/luatexdir/image/epdf.h 2014-05-01 01:39:39.838462783 +0200
+@@ -37,6 +37,7 @@
+ # include <sys/stat.h>
+ # include <dirent.h>
+ # include <poppler-config.h>
++# include <StructTreeRoot.h>
+ # include <goo/GooString.h>
+ # include <goo/gmem.h>
+ # include <goo/gfile.h>
+diff -ruN luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc luatex-beta-0.76.0/source/texk/web2c/luatexdir/lua/lepdflib.cc
+--- luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc 2013-04-05 12:58:37.000000000 +0200
++++ luatex-beta-0.76.0/source/texk/web2c/luatexdir/lua/lepdflib.cc 2014-05-01 01:40:15.698461067 +0200
+@@ -48,25 +48,26 @@
+
+ //**********************************************************************
+
+-#define M_Annot "Annot"
+-#define M_Annots "Annots"
+-#define M_Array "Array"
+-#define M_Catalog "Catalog"
+-#define M_Dict "Dict"
+-#define M_EmbFile "EmbFile"
+-#define M_FileSpec "FileSpec"
+-#define M_GooString "GooString"
+-#define M_LinkDest "LinkDest"
+-#define M_Link "Link"
+-#define M_Links "Links"
+-#define M_Object "Object"
+-#define M_Page "Page"
+-#define M_PDFDoc "PDFDoc"
+-#define M_PDFRectangle "PDFRectangle"
+-#define M_Ref "Ref"
+-#define M_Stream "Stream"
+-#define M_XRefEntry "XRefEntry"
+-#define M_XRef "XRef"
++#define M_Annot "epdf.Annot" /* ls-hh: epdf.* gives better protection in registry */
++#define M_Annots "epdf.Annots"
++#define M_Array "epdf.Array"
++#define M_Catalog "epdf.Catalog"
++#define M_Dict "epdf.Dict"
++#define M_EmbFile "epdf.EmbFile"
++#define M_FileSpec "epdf.FileSpec"
++#define M_GooString "epdf.GooString"
++#define M_LinkDest "epdf.LinkDest"
++#define M_Link "epdf.Link"
++#define M_Links "epdf.Links"
++#define M_Object "epdf.Object"
++#define M_Page "epdf.Page"
++#define M_PDFDoc "epdf.PDFDoc"
++#define M_PDFRectangle "epdf.PDFRectangle"
++#define M_Ref "epdf.Ref"
++#define M_Stream "epdf.Stream"
++#define M_StructTreeRoot "epdf.StructTreeRoot"
++#define M_XRefEntry "epdf.XRefEntry"
++#define M_XRef "epdf.XRef"
+
+ //**********************************************************************
+
+@@ -96,6 +97,7 @@
+ new_poppler_userdata(PDFRectangle);
+ new_poppler_userdata(Ref);
+ new_poppler_userdata(Stream);
++new_poppler_userdata(StructTreeRoot);
+ new_poppler_userdata(XRef);
+
+ //**********************************************************************
+@@ -573,7 +575,11 @@
+
+ m_poppler_get_GOOSTRING(Catalog, getBaseURI);
+ m_poppler_get_GOOSTRING(Catalog, readMetadata);
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ m_poppler_get_poppler(Catalog, Object, getStructTreeRoot);
++#else
++m_poppler_get_poppler(Catalog, StructTreeRoot, getStructTreeRoot);
++#endif
+
+ static int m_Catalog_findPage(lua_State * L)
+ {
+@@ -2146,14 +2152,22 @@
+
+ static int m_PDFDoc_getStructTreeRoot(lua_State * L)
+ {
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ Object *obj;
++#else
++ StructTreeRoot *obj;
++#endif
+ udstruct *uin, *uout;
+ uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+ pdfdoc_changed_error(L);
+ if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
+ obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot();
++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT
+ uout = new_Object_userdata(L);
++#else
++ uout = new_StructTreeRoot_userdata(L);
++#endif
+ uout->d = obj;
+ uout->pc = uin->pc;
+ uout->pd = uin->pd;
+@@ -2617,6 +2631,15 @@
+
+ //**********************************************************************
+
++#ifdef LuajitTeX
++#define setfuncs_meta(type) \
++ luaL_newmetatable(L, M_##type); \
++ lua_pushvalue(L, -1); \
++ lua_setfield(L, -2, "__index"); \
++ lua_pushstring(L, "no user access"); \
++ lua_setfield(L, -2, "__metatable"); \
++ luaL_register(L, NULL, type##_m)
++#else
+ #define setfuncs_meta(type) \
+ luaL_newmetatable(L, M_##type); \
+ lua_pushvalue(L, -1); \
+@@ -2624,6 +2647,7 @@
+ lua_pushstring(L, "no user access"); \
+ lua_setfield(L, -2, "__metatable"); \
+ luaL_setfuncs(L, type##_m, 0)
++#endif
+
+ int luaopen_epdf(lua_State * L)
+ {
+@@ -2646,6 +2670,10 @@
+ setfuncs_meta(XRef);
+ setfuncs_meta(XRefEntry);
+
++#ifdef LuajitTeX
++ luaL_register(L, "epdf", epdflib_f);
++#else
+ luaL_newlib(L, epdflib_f);
++#endif
+ return 1;
+ }
diff --git a/dev-tex/luatex/files/remove-zlib-version-check.patch b/dev-tex/luatex/files/remove-zlib-version-check.patch
new file mode 100644
index 000000000000..985085012511
--- /dev/null
+++ b/dev-tex/luatex/files/remove-zlib-version-check.patch
@@ -0,0 +1,23 @@
+Let soname dictate the ABI and do not check for minor/micro which requires
+needless rebuilds after every zlib update. By Ulrich Müller.
+
+https://bugs.gentoo.org/show_bug.cgi?id=310487
+http://www.ntg.nl/pipermail/dev-luatex/2012-July/004534.html
+
+--- luatex-beta-0.70.1-orig/source/texk/web2c/luatexdir/luazlib/lzlib.c
++++ luatex-beta-0.70.1/source/texk/web2c/luatexdir/luazlib/lzlib.c
+@@ -549,14 +549,6 @@
+
+ /* ====================================================================== */
+
+- /* make sure header and library version are consistent */
+- const char* version = zlibVersion();
+- if (strncmp(version, ZLIB_VERSION, 5))
+- {
+- lua_pushfstring(L, "zlib library version does not match - header: %s, library: %s", ZLIB_VERSION, version);
+- lua_error(L);
+- }
+-
+ /* create new metatable for zlib compression structures */
+ luaL_newmetatable(L, ZSTREAMMETA);
+ lua_pushliteral(L, "__index");
diff --git a/dev-tex/luatex/luatex-0.70.1-r2.ebuild b/dev-tex/luatex/luatex-0.70.1-r2.ebuild
new file mode 100644
index 000000000000..3b5cbe5e919c
--- /dev/null
+++ b/dev-tex/luatex/luatex-0.70.1-r2.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit libtool eutils texlive-common
+
+DESCRIPTION="An extended version of pdfTeX using Lua as an embedded scripting language"
+HOMEPAGE="http://www.luatex.org/"
+SRC_URI="http://foundry.supelec.fr/gf/download/frsrelease/392/1730/${PN}-beta-${PV}.tar.bz2
+ http://foundry.supelec.fr/gf/download/frsrelease/392/1732/${PN}-beta-${PV}-doc.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="dev-libs/zziplib
+ >=media-libs/libpng-1.4
+ app-text/poppler:=[xpdf-headers(+)]
+ sys-libs/zlib
+ >=dev-libs/kpathsea-6.0.1_p20110627"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}-beta-${PV}/source"
+PRELIBS="libs/obsdcompat"
+#texk/kpathsea"
+#kpathsea_extraconf="--disable-shared --disable-largefile"
+
+src_prepare() {
+ has_version '>=app-text/poppler-0.18.0:0' && epatch "${FILESDIR}/poppler018.patch"
+ has_version '>=app-text/poppler-0.20.0:0' && epatch "${FILESDIR}/poppler020.patch"
+ has_version '>=app-text/poppler-0.22.0:0' && epatch "${FILESDIR}/poppler022.patch"
+ has_version '>=app-text/poppler-0.26.0:0' && epatch "${FILESDIR}/poppler026-backport.patch"
+ epatch "${FILESDIR}/kpathsea2012.patch" \
+ "${FILESDIR}/remove-zlib-version-check.patch"
+ S="${S}/build-aux" elibtoolize --shallow
+}
+
+src_configure() {
+ # Too many regexps use A-Z a-z constructs, what causes problems with locales
+ # that don't have the same alphabetical order than ascii. Bug #244619
+ # So we set LC_ALL to C in order to avoid problems.
+ export LC_ALL=C
+
+ local myconf
+ myconf=""
+ #has_version '>=app-text/texlive-core-2009' && myconf="--with-system-kpathsea"
+
+ cd "${S}/texk/web2c"
+ econf \
+ --disable-cxx-runtime-hack \
+ --disable-all-pkgs \
+ --disable-mp \
+ --disable-ptex \
+ --disable-tex \
+ --disable-mf \
+ --disable-largefile \
+ --disable-ipc \
+ --disable-shared \
+ --enable-luatex \
+ --enable-dump-share \
+ --without-mf-x-toolkit \
+ --without-x \
+ --with-system-kpathsea \
+ --with-kpathsea-includes="${EPREFIX}"/usr/include \
+ --with-system-gd \
+ --with-system-libpng \
+ --with-system-teckit \
+ --with-system-zlib \
+ --with-system-t1lib \
+ --with-system-xpdf \
+ --with-system-poppler \
+ --with-system-zziplib \
+ --disable-multiplatform
+
+ for i in ${PRELIBS} ; do
+ einfo "Configuring $i"
+ local j=$(basename $i)_extraconf
+ local myconf
+ eval myconf=\${$j}
+ cd "${S}/${i}"
+ econf ${myconf}
+ done
+}
+
+src_compile() {
+ texk/web2c/luatexdir/getluatexsvnversion.sh || die
+ for i in ${PRELIBS} ; do
+ cd "${S}/${i}"
+ emake || die "failed to build ${i}"
+ done
+ cd "${WORKDIR}/${PN}-beta-${PV}/source/texk/web2c"
+ emake luatex || die "failed to build luatex"
+}
+
+src_install() {
+ cd "${WORKDIR}/${PN}-beta-${PV}/source/texk/web2c"
+ emake DESTDIR="${D}" bin_PROGRAMS="luatex" SUBDIRS="" nodist_man_MANS="" \
+ install-exec-am || die
+
+ dodoc "${WORKDIR}/${PN}-beta-${PV}/README" || die
+ doman "${WORKDIR}/texmf/doc/man/man1/"*.1 || die
+ if use doc ; then
+ dodoc "${WORKDIR}/${PN}-beta-${PV}/manual/"*.pdf || die
+ dodoc "${WORKDIR}/texmf/doc/man/man1/"*.pdf || die
+ fi
+}
+
+pkg_postinst() {
+ if ! has_version '>=dev-texlive/texlive-basic-2008' ; then
+ elog "Note that this package does not install many files, mainly just the"
+ elog "${PN} executable, which needs other files in order to be"
+ elog "useful. Please consider installing a recent TeX distribution such as"
+ elog "TeX Live 2008 or later to take advantage of the full power of"
+ elog "${PN} ."
+ fi
+ efmtutil-sys
+}
diff --git a/dev-tex/luatex/luatex-0.76.0.ebuild b/dev-tex/luatex/luatex-0.76.0.ebuild
new file mode 100644
index 000000000000..81c3919f3c06
--- /dev/null
+++ b/dev-tex/luatex/luatex-0.76.0.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit libtool eutils texlive-common
+
+MY_P=${PN}-beta-${PV}
+DESCRIPTION="An extended version of pdfTeX using Lua as an embedded scripting language"
+HOMEPAGE="http://www.luatex.org/"
+SRC_URI="
+ http://foundry.supelec.fr/frs/download.php/file/15745/${MY_P}-source.tar.bz2
+ http://foundry.supelec.fr/frs/download.php/file/15747/${MY_P}-doc.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc"
+
+RDEPEND="dev-libs/zziplib
+ >=media-libs/libpng-1.4:0=
+ >=x11-libs/cairo-1.12
+ >x11-libs/pixman-0.18
+ app-text/poppler:=[xpdf-headers(+)]
+ sys-libs/zlib
+ >=dev-libs/kpathsea-6.1.0_p20120701"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}/source"
+
+src_prepare() {
+ has_version '>=app-text/poppler-0.26.0:0' && epatch "${FILESDIR}/poppler026.patch"
+ epatch "${FILESDIR}/remove-zlib-version-check.patch" \
+ "${FILESDIR}/includes.patch"
+ S="${S}/build-aux" elibtoolize --shallow
+}
+
+src_configure() {
+ # Too many regexps use A-Z a-z constructs, what causes problems with locales
+ # that don't have the same alphabetical order than ascii. Bug #244619
+ # So we set LC_ALL to C in order to avoid problems.
+ export LC_ALL=C
+
+ cd "${S}/texk/web2c"
+ econf \
+ --disable-cxx-runtime-hack \
+ --disable-all-pkgs \
+ --disable-mp \
+ --disable-ptex \
+ --disable-tex \
+ --disable-mf \
+ --disable-largefile \
+ --disable-ipc \
+ --disable-shared \
+ --enable-luatex \
+ --enable-dump-share \
+ --without-mf-x-toolkit \
+ --without-x \
+ --with-system-kpathsea \
+ --with-kpathsea-includes="${EPREFIX}"/usr/include \
+ --with-system-cairo \
+ --with-system-pixman \
+ --with-system-gd \
+ --with-system-libpng \
+ --with-system-teckit \
+ --with-system-zlib \
+ --with-system-t1lib \
+ --with-system-xpdf \
+ --with-system-poppler \
+ --with-system-zziplib \
+ --with-system-ptexenc \
+ --disable-multiplatform
+}
+
+src_compile() {
+ texk/web2c/luatexdir/getluatexsvnversion.sh || die
+ cd "${WORKDIR}/${MY_P}/source/texk/web2c"
+ emake luatex
+}
+
+src_install() {
+ cd "${WORKDIR}/${MY_P}/source/texk/web2c"
+ emake DESTDIR="${D}" bin_PROGRAMS="luatex" SUBDIRS="" nodist_man_MANS="" \
+ install-exec-am
+
+ dodoc "${WORKDIR}/${MY_P}/README" luatexdir/NEWS
+ cp source/texk/web2c/man
+ cp man/luatex.man "${T}/luatex.1"
+ doman "${T}/luatex.1"
+ use doc && dodoc "${WORKDIR}/${MY_P}/manual/"*.pdf
+}
+
+pkg_postinst() {
+ if ! has_version '>=dev-texlive/texlive-basic-2008' ; then
+ elog "Note that this package does not install many files, mainly just the"
+ elog "${PN} executable, which needs other files in order to be"
+ elog "useful. Please consider installing a recent TeX distribution such as"
+ elog "TeX Live 2008 or later to take advantage of the full power of"
+ elog "${PN} ."
+ fi
+ efmtutil-sys
+}
diff --git a/dev-tex/luatex/metadata.xml b/dev-tex/luatex/metadata.xml
new file mode 100644
index 000000000000..1d2fc95bdaa1
--- /dev/null
+++ b/dev-tex/luatex/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>tex</herd>
+<longdescription lang="en">
+An experimental pdfTeX extension that is to eventually
+become its successor. It is developed by a subset of the
+current pdfTeX team.
+</longdescription>
+</pkgmetadata>