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;
   }
