summaryrefslogtreecommitdiff
path: root/libre/texlive-bin
diff options
context:
space:
mode:
Diffstat (limited to 'libre/texlive-bin')
-rw-r--r--libre/texlive-bin/PKGBUILD15
-rw-r--r--libre/texlive-bin/luatex-poppler-fixes.patch125
-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