diff options
Diffstat (limited to 'libre/texlive-bin')
-rw-r--r-- | libre/texlive-bin/PKGBUILD | 15 | ||||
-rw-r--r-- | libre/texlive-bin/luatex-poppler-fixes.patch | 125 | ||||
-rw-r--r-- | libre/texlive-bin/pdftex-poppler0.75.patch (renamed from libre/texlive-bin/pdftex-poppler0.72.patch) | 24 |
3 files changed, 144 insertions, 20 deletions
diff --git a/libre/texlive-bin/PKGBUILD b/libre/texlive-bin/PKGBUILD index a5036041c..35f813885 100644 --- a/libre/texlive-bin/PKGBUILD +++ b/libre/texlive-bin/PKGBUILD @@ -13,7 +13,7 @@ pkgname=('texlive-bin' 'libsynctex') pkgver=2018.48691 -pkgrel=6 +pkgrel=7 pkgrel+=.par1 license=('GPL') arch=('x86_64') @@ -26,14 +26,14 @@ makedepends_i686=('pkgconf') url='http://tug.org/texlive/' _commit=f68b0992e13a2e155d71beb3e016ea4139023224 # texlive-2018.2 source=("git+https://github.com/Tex-Live/texlive-source.git#commit=${_commit}" - "pdftex-poppler0.72.patch" + "pdftex-poppler0.75.patch" "luatex-poppler-fixes.patch" "xetex-poppler-fixes.patch" "freetype-pkgconfig.patch" "synctex-missing-header.patch") sha256sums=('SKIP' - 'c70f1cf5bee5cba17b40855d584c7f1e8f67c2bf1ce4633a1c5abcdebb59865c' - 'ea2abcaf57cfb99c22560a1d98daa7468dafd4713425ef01a6fda29803bf39bc' + 'e3f9efc7303cdd0a90f01b02f32ff749eec745afec2ec9c7f5dde300cf6517b3' + '72f0deec8687feeaad7b4ca5565f0a2ddec0ec7d03b5ae4c1d8ede56a1bc9a5d' '7deb8bd50640b0f4ff9b4c11985fe6153906384b62cb9b5a3c4b52397fb941ca' 'bed44f4ccda369410e90eac527cf44b8c1afda7d987ae521b4fd5edb425eef3e' 'b6c81eb091b5910226e0359768edd178680debee56b63ab0a3753c3429c28ab0') @@ -66,9 +66,9 @@ prepare() { # xetex poppler compatibility patch -Np1 -i "${srcdir}/xetex-poppler-fixes.patch" # pdftex poppler compatibility (upstream patches) - patch -Np1 -i "${srcdir}/pdftex-poppler0.72.patch" - cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.72.0,}.cc - cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.72.0,}.cc + patch -Np1 -i "${srcdir}/pdftex-poppler0.75.patch" + cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.75.0,}.cc + cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.75.0,}.cc } build() { @@ -164,7 +164,6 @@ package_texlive-bin() { _poppler_ver=$(pacman -S --print-format='%v' poppler) depends+=("poppler=${_poppler_ver}") - cd "$srcdir/texlive-source" ############################################################# diff --git a/libre/texlive-bin/luatex-poppler-fixes.patch b/libre/texlive-bin/luatex-poppler-fixes.patch index 057e328c8..757ba3a9e 100644 --- a/libre/texlive-bin/luatex-poppler-fixes.patch +++ b/libre/texlive-bin/luatex-poppler-fixes.patch @@ -191,3 +191,128 @@ Luatex fixes for poppler 0.71 uout->pc = uobj->pc; uout->pd = uobj->pd; +--- source/texk/web2c/luatexdir/lua/lepdflib.cc.orig 2019-03-22 11:02:34.966605737 +0000 ++++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2019-03-22 11:09:27.894599672 +0000 +@@ -496,7 +496,7 @@ + double numA = lua_tonumber(L,1); + double genA = lua_tonumber(L,2); + if ( ((numA)==(int)(numA)) && ((genA)==(int)(genA)) ){ +- uout->d = new Object((int)(numA), (int)(genA)); ++ uout->d = new Object({(int)(numA), (int)(genA)}); + uout->atype = ALLOC_LEPDF; + uout->pc = 0; + uout->pd = NULL; +@@ -889,7 +889,7 @@ + if (i > 0 && i <= len) { + uout = new_Object_userdata(L); + uout->d = new Object(); +- *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1); ++ *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1).copy(); + uout->atype = ALLOC_LEPDF; + uout->pc = uin->pc; + uout->pd = uin->pd; +@@ -1190,7 +1190,7 @@ + s = luaL_checkstring(L, 2); + 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 @@ + 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 @@ + pdfdoc_changed_error(L); + num = luaL_checkint(L, 2); + gen = luaL_checkint(L, 3); +- *((Object *) uin->d) = Object(num, gen); ++ *((Object *) uin->d) = Object({num, gen}); + return 0; + } + +@@ -2011,7 +2011,7 @@ + if (i > 0 && i <= len) { + uout = new_Object_userdata(L); + uout->d = new Object(); +- *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1); ++ *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1).copy(); + uout->atype = ALLOC_LEPDF; + uout->pc = uin->pc; + uout->pd = uin->pd; +@@ -2104,7 +2104,7 @@ + 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 @@ + 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; +--- texlive-source/texk/web2c/luatexdir/image/pdftoepdf.w.orig 2019-03-22 19:17:32.861362965 +0000 ++++ texlive-source/texk/web2c/luatexdir/image/pdftoepdf.w 2019-03-22 19:20:22.906973305 +0000 +@@ -412,7 +412,7 @@ + Object obj1; + pdf_begin_array(pdf); + for (i = 0, l = array->getLength(); i < l; ++i) { +- obj1 = array->getNF(i); ++ obj1 = array->getNF(i).copy(); + copyObject(pdf, pdf_doc, &obj1); + } + pdf_end_array(pdf); +@@ -425,7 +425,7 @@ + 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); +@@ -788,12 +788,12 @@ + Now all relevant parts of the Page dictionary are copied. Metadata validity + check is needed(as a stream it must be indirect). + */ +- obj1 = pageDict->lookupNF("Metadata"); ++ obj1 = pageDict->lookupNF("Metadata").copy(); + if (!obj1.isNull() && !obj1.isRef()) + formatted_warning("pdf inclusion","/Metadata must be indirect object"); + /* copy selected items in Page dictionary */ + for (i = 0; pagedictkeys[i] != NULL; i++) { +- obj1 = pageDict->lookupNF(pagedictkeys[i]); ++ obj1 = pageDict->lookupNF(pagedictkeys[i]).copy(); + if (!obj1.isNull()) { + pdf_add_name(pdf, pagedictkeys[i]); + /* preserves indirection */ +@@ -806,13 +806,13 @@ + PDF file, climbing up the tree until the Resources are found. + (This fixes a problem with Scribus 1.3.3.14.) + */ +- obj1 = pageDict->lookupNF("Resources"); ++ obj1 = pageDict->lookupNF("Resources").copy(); + if (obj1.isNull()) { + op1 = &pagesobj1; + 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/libre/texlive-bin/pdftex-poppler0.72.patch b/libre/texlive-bin/pdftex-poppler0.75.patch index 629fe980d..81a32ff6e 100644 --- a/libre/texlive-bin/pdftex-poppler0.72.patch +++ b/libre/texlive-bin/pdftex-poppler0.75.patch @@ -7,11 +7,11 @@ Date: Thu Dec 6 23:31:33 2018 +0000 git-svn-id: svn://tug.org/texlive/trunk/Build/source@49336 c570f23f-e606-0410-a88d-b1316a301751 -diff --git a/texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc b/texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc +diff --git a/texk/web2c/pdftexdir/pdftoepdf-poppler0.75.0.cc b/texk/web2c/pdftexdir/pdftoepdf-poppler0.75.0.cc new file mode 100644 index 000000000..630d3366d --- /dev/null -+++ b/texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc ++++ b/texk/web2c/pdftexdir/pdftoepdf-poppler0.75.0.cc @@ -0,0 +1,1113 @@ +/* +Copyright 1996-2017 Han The Thanh, <thanh@pdftex.org> @@ -307,7 +307,7 @@ index 000000000..630d3366d + Object obj1; + copyName((char *)obj->dictGetKey(i)); + pdf_puts(" "); -+ obj1 = obj->dictGetValNF(i); ++ obj1 = obj->dictGetValNF(i).copy(); + copyObject(&obj1); + pdf_puts("\n"); +} @@ -366,7 +366,7 @@ index 000000000..630d3366d + obj->getTypeName()); + pdf_puts("/ProcSet [ "); + for (i = 0, l = obj->arrayGetLength(); i < l; ++i) { -+ procset = obj->arrayGetNF(i); ++ procset = obj->arrayGetNF(i).copy(); + if (!procset.isName()) + pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>", + procset.getTypeName()); @@ -421,7 +421,7 @@ index 000000000..630d3366d + if (fontdict.isDict()) { + subtype = fontdict.dictLookup("Subtype"); + basefont = fontdict.dictLookup("BaseFont"); -+ fontdescRef = fontdict.dictLookupNF("FontDescriptor"); ++ fontdescRef = fontdict.dictLookupNF("FontDescriptor").copy(); + if (fontdescRef.isRef()) { + fontdesc = fontdescRef.fetch(xref); + } @@ -467,7 +467,7 @@ index 000000000..630d3366d + obj->getTypeName()); + pdf_puts("/Font << "); + for (i = 0, l = obj->dictGetLength(); i < l; ++i) { -+ fontRef = obj->dictGetValNF(i); ++ fontRef = obj->dictGetValNF(i).copy(); + if (fontRef.isRef()) + copyFont((char *)obj->dictGetKey(i), &fontRef); + else if (fontRef.isDict()) { // some programs generate pdf with embedded font object @@ -610,7 +610,7 @@ index 000000000..630d3366d + } else if (obj->isArray()) { + pdf_puts("["); + for (i = 0, l = obj->arrayGetLength(); i < l; ++i) { -+ obj1 = obj->arrayGetNF(i); ++ obj1 = obj->arrayGetNF(i).copy(); + if (!obj1.isName()) + pdf_puts(" "); + copyObject(&obj1); @@ -936,13 +936,13 @@ index 000000000..630d3366d + pdf_puts(stripzeros(s)); + + // Metadata validity check (as a stream it must be indirect) -+ dictObj = pageDict->lookupNF("Metadata"); ++ dictObj = pageDict->lookupNF("Metadata").copy(); + if (!dictObj.isNull() && !dictObj.isRef()) + pdftex_warn("PDF inclusion: /Metadata must be indirect object"); + + // copy selected items in Page dictionary except Resources & Group + for (i = 0; pageDictKeys[i] != NULL; i++) { -+ dictObj = pageDict->lookupNF(pageDictKeys[i]); ++ dictObj = pageDict->lookupNF(pageDictKeys[i]).copy(); + if (!dictObj.isNull()) { + pdf_newline(); + pdf_printf("/%s ", pageDictKeys[i]); @@ -951,7 +951,7 @@ index 000000000..630d3366d + } + + // handle page group -+ dictObj = pageDict->lookupNF("Group"); ++ dictObj = pageDict->lookupNF("Group").copy(); + if (!dictObj.isNull()) { + if (pdfpagegroupval == 0) { + // another pdf with page group was included earlier on the @@ -993,7 +993,7 @@ index 000000000..630d3366d + l = dic1.getLength(); + for (i = 0; i < l; i++) { + groupDict.dictAdd((const char *)copyString(dic1.getKey(i)), -+ dic1.getValNF(i)); ++ dic1.getValNF(i).copy()); + } +// end modification + pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval); @@ -1126,7 +1126,7 @@ index 000000000..630d3366d + delete globalParams; + } +} -diff --git a/texk/web2c/pdftexdir/pdftosrc-poppler0.72.0.cc b/texk/web2c/pdftexdir/pdftosrc-poppler0.72.0.cc +diff --git a/texk/web2c/pdftexdir/pdftosrc-poppler0.75.0.cc b/texk/web2c/pdftexdir/pdftosrc-poppler0.75.0.cc new file mode 100644 index 000000000..6089e68d9 --- /dev/null |