diff --git a/extra/texlive-bin/PKGBUILD b/extra/texlive-bin/PKGBUILD index 4209cd2e0..d113c0630 100644 --- a/extra/texlive-bin/PKGBUILD +++ b/extra/texlive-bin/PKGBUILD @@ -10,7 +10,7 @@ pkgname=('texlive-bin' 'libsynctex') pkgver=2017.44590 -pkgrel=13 +pkgrel=14 license=('GPL') arch=('x86_64') makedepends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler' @@ -21,11 +21,13 @@ url='http://tug.org/texlive/' source=("https://sources.archlinux.org/other/texlive/texlive-bin-source-${pkgver}.tar.xz" "luatex-gcc7.patch" "texlive-poppler-0.59.patch" - "pdftex-poppler-0.59.patch") + "pdftex-poppler-0.59.patch" + "texlive-poppler-0.64.patch") sha256sums=('4645b4d55fc500ba9be7156a6a330afb44fbf7fda40dfd73fe9cb16d207f2038' 'ee97f3e07e235dee4ad6d0c3e85c2260914c965e94d5ffbf481fa506df5f01ec' 'a5204f110f261de989fc21f93a4b5485876ea2d28773bcdc4817b548fd865024' - 'c7246156104f8e57e80b6fc3a9c9efec7542cd067a525fb51279a15056de4426') + 'c7246156104f8e57e80b6fc3a9c9efec7542cd067a525fb51279a15056de4426' + '02c75172cd25c54acf3d998bf79ef6915e611c9dbb2821638f3289dc87d7479a') prepare() { cd "$srcdir/source" @@ -43,6 +45,9 @@ prepare() { # management. patch -Np1 -i "${srcdir}/texlive-poppler-0.59.patch" patch -Np1 -i "${srcdir}/pdftex-poppler-0.59.patch" + + # Poppler 0.64 now returns const char* in getCString() + patch -Np1 -i "${srcdir}/texlive-poppler-0.64.patch" } build() { diff --git a/extra/texlive-bin/texlive-poppler-0.64.patch b/extra/texlive-bin/texlive-poppler-0.64.patch new file mode 100644 index 000000000..d3a5280be --- /dev/null +++ b/extra/texlive-bin/texlive-poppler-0.64.patch @@ -0,0 +1,99 @@ +diff -ur source/texk/web2c/luatexdir/image/pdftoepdf.w source.new/texk/web2c/luatexdir/image/pdftoepdf.w +--- source/texk/web2c/luatexdir/image/pdftoepdf.w 2018-04-23 08:46:00.031575505 +0200 ++++ source.new/texk/web2c/luatexdir/image/pdftoepdf.w 2018-04-23 08:42:06.762986242 +0200 +@@ -357,9 +357,9 @@ + pdf->cave = true; + } + +-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(); +@@ -389,7 +389,7 @@ + pdf->cave = true; + } + +-static void copyName(PDF pdf, char *s) ++static void copyName(PDF pdf, const char *s) + { + pdf_out(pdf, '/'); + for (; *s != 0; s++) { +diff -ur source/texk/web2c/luatexdir/lua/lepdflib.cc source.new/texk/web2c/luatexdir/lua/lepdflib.cc +--- source/texk/web2c/luatexdir/lua/lepdflib.cc 2018-04-23 08:46:00.032575486 +0200 ++++ source.new/texk/web2c/luatexdir/lua/lepdflib.cc 2018-04-23 08:42:06.762986242 +0200 +@@ -516,7 +516,7 @@ + #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) \ +@@ -1650,7 +1650,7 @@ + + static int m_Object_getString(lua_State * L) + { +- GooString *gs; ++ const GooString *gs; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_Object); + if (uin->pd != NULL && uin->pd->pc != uin->pc) +diff -ur source/texk/web2c/pdftexdir/pdftoepdf.cc source.new/texk/web2c/pdftexdir/pdftoepdf.cc +--- source/texk/web2c/pdftexdir/pdftoepdf.cc 2018-04-23 21:27:36.254598208 +0200 ++++ source.new/texk/web2c/pdftexdir/pdftoepdf.cc 2018-04-23 21:17:36.475663912 +0200 +@@ -275,7 +275,7 @@ + + static void copyObject(Object *); + +-static void copyName(char *s) ++static void copyName(const char *s) + { + pdf_puts("/"); + for (; *s != 0; s++) { +@@ -418,7 +418,7 @@ + && fontdescRef.isRef() + && fontdesc.isDict() + && embeddableFont(&fontdesc) +- && (fontmap = lookup_fontmap(basefont.getName())) != NULL) { ++ && (fontmap = lookup_fontmap((char *)basefont.getName())) != NULL) { + // round /StemV value, since the PDF input is a float + // (see Font Descriptors in PDF reference), but we only store an + // integer, since we don't want to change the struct. +@@ -427,7 +427,7 @@ + charset = fontdesc.dictLookup("CharSet"); + if (!charset.isNull() && + charset.isString() && is_subsetable(fontmap)) +- epdf_mark_glyphs(fd, charset.getString()->getCString()); ++ epdf_mark_glyphs(fd, (char *)charset.getString()->getCString()); + else + embed_whole_font(fd); + addFontDesc(fontdescRef.getRef(), fd); +@@ -554,8 +554,8 @@ + Object obj1; + int i, l, c; + Ref ref; +- char *p; +- GString *s; ++ const char *p; ++ const GString *s; + if (obj->isBool()) { + pdf_printf("%s", obj->getBool()? "true" : "false"); + } else if (obj->isInt()) { +diff -ur source/texk/web2c/pdftexdir/pdftosrc.cc source.new/texk/web2c/pdftexdir/pdftosrc.cc +--- source/texk/web2c/pdftexdir/pdftosrc.cc 2018-04-23 21:27:36.254598208 +0200 ++++ source.new/texk/web2c/pdftexdir/pdftosrc.cc 2018-04-23 08:42:06.762986242 +0200 +@@ -68,7 +68,7 @@ + Stream *s; + Object srcStream, srcName, catalogDict; + FILE *outfile; +- char *outname; ++ const char *outname; + int objnum = 0, objgen = 0; + bool extract_xref_table = false; + int c; +