gnu: emacs-pdf-tools: Fix build with recent Poppler.

* gnu/packages/patches/emacs-pdf-tools-poppler.patch: New file.
* gnu/packages/emacs.scm (emacs-pdf-tools)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
master
Ludovic Courtès 2018-11-21 12:43:57 +01:00
parent c3d8c6ac7e
commit e555bbfc48
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 44 additions and 1 deletions

View File

@ -667,6 +667,7 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-pdf-tools-poppler.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/emacs-realgud-fix-configure-ac.patch \

View File

@ -1601,7 +1601,8 @@ filters, new key bindings and faces. It can be enabled by
(file-name (git-file-name name version))
(sha256
(base32
"1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))))
"1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s"))
(patches (search-patches "emacs-pdf-tools-poppler.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests

View File

@ -0,0 +1,41 @@
Fix build issue with recent Poppler:
<https://github.com/politza/pdf-tools/issues/372>.
This combines upstream commits
6cd76dec9aece2a8daa90f17ab77fbf773157a1d..50a5297b82e26cfd52f6c00645ddc1057099d6a7
for this file.
diff --git a/server/poppler-hack.cc b/server/poppler-hack.cc
index 0c62f73..427f9df 100644
--- a/server/poppler-hack.cc
+++ b/server/poppler-hack.cc
@@ -51,7 +51,10 @@ GType poppler_annot_markup_get_type (void) G_GNUC_CONST;
double y2;
};
- char *_xpoppler_goo_string_to_utf8(GooString *s)
+ // This function does not modify its argument s, but for
+ // compatibility reasons (e.g. getLength in GooString.h before 2015)
+ // with older poppler code, it can't be declared as such.
+ char *_xpoppler_goo_string_to_utf8(/* const */ GooString *s)
{
char *result;
@@ -85,7 +88,7 @@ GType poppler_annot_markup_get_type (void) G_GNUC_CONST;
// Set the rectangle of an annotation. It was first added in v0.26.
void xpoppler_annot_set_rectangle (PopplerAnnot *a, PopplerRectangle *rectangle)
{
- GooString *state = a->annot->getAppearState ();
+ GooString *state = (GooString*) a->annot->getAppearState ();
char *ustate = _xpoppler_goo_string_to_utf8 (state);
a->annot->setRect (rectangle->x1, rectangle->y1,
@@ -105,7 +108,7 @@ GType poppler_annot_markup_get_type (void) G_GNUC_CONST;
g_return_val_if_fail (POPPLER_IS_ANNOT_MARKUP (poppler_annot), NULL);
annot = static_cast<AnnotMarkup *>(POPPLER_ANNOT (poppler_annot)->annot);
- text = annot->getDate ();
+ text = (GooString*) annot->getDate ();
return text ? _xpoppler_goo_string_to_utf8 (text) : NULL;
}