From e444ad95fab96303c51d974e67cd5f01f3d2e962 Mon Sep 17 00:00:00 2001
From: asie <kontakt@asie.pl>
Date: Sat, 22 Jun 2019 08:48:30 +0200
Subject: [PATCH] xpdf: update to 4.01.01.

---
 srcpkgs/xpdf/patches/permissions.patch | 167 +++++++------------------
 srcpkgs/xpdf/template                  |  23 ++--
 2 files changed, 60 insertions(+), 130 deletions(-)

diff --git a/srcpkgs/xpdf/patches/permissions.patch b/srcpkgs/xpdf/patches/permissions.patch
index 4c250fd6ae4..e672379d720 100644
--- a/srcpkgs/xpdf/patches/permissions.patch
+++ b/srcpkgs/xpdf/patches/permissions.patch
@@ -1,67 +1,45 @@
-diff -u -Naur xpdf-3.03-old/xpdf/PDFCore.cc xpdf-3.03-new/xpdf/PDFCore.cc
---- xpdf-3.03-old/xpdf/PDFCore.cc	2011-08-15 23:08:53.000000000 +0200
-+++ xpdf-3.03-new/xpdf/PDFCore.cc	2011-08-20 13:47:13.508475137 +0200
-@@ -4,6 +4,8 @@
- //
- // Copyright 2004 Glyph & Cog, LLC
- //
-+// Modified for Debian by Hamish Moffatt, 18 August 2005.
-+//
- //========================================================================
- 
- #include <aconf.h>
-@@ -1619,9 +1621,11 @@
-   int x0, y0, x1, y1, t;
-   GString *s;
+diff -u -Naur xpdf-4.01.01/xpdf/pdfimages.cc xpdf-4.01.01-new/xpdf/pdfimages.cc
+--- xpdf-4.01.01/xpdf/pdfimages.cc	2019-03-14 22:01:02.000000000 +0100
++++ xpdf-4.01.01-new/xpdf/pdfimages.cc	2019-06-22 08:20:28.728639349 +0200
+@@ -126,6 +126,7 @@
+     goto err1;
+   }
  
 +#ifdef ENFORCE_PERMISSIONS
+   // check for copy permission
    if (!doc->okToCopy()) {
-     return NULL;
+     error(errNotAllowed, -1,
+@@ -133,6 +134,7 @@
+     exitCode = 3;
+     goto err1;
    }
 +#endif
-   if ((page = findPage(pg))) {
-     cvtUserToDev(pg, xMin, yMin, &x0, &y0);
-     cvtUserToDev(pg, xMax, yMax, &x1, &y1);
-diff -u -Naur xpdf-3.03-old/xpdf/pdfimages.cc xpdf-3.03-new/xpdf/pdfimages.cc
---- xpdf-3.03-old/xpdf/pdfimages.cc	2011-08-15 23:08:53.000000000 +0200
-+++ xpdf-3.03-new/xpdf/pdfimages.cc	2011-08-20 13:50:39.638162542 +0200
-@@ -4,6 +4,8 @@
- //
- // Copyright 1998-2003 Glyph & Cog, LLC
- //
-+// Modified for Debian by Hamish Moffatt, 22 May 2002.
-+//
- //========================================================================
  
- #include <aconf.h>
-@@ -119,12 +121,14 @@
+   // get page range
+   if (firstPage < 1)
+diff -u -Naur xpdf-4.01.01/xpdf/pdftohtml.cc xpdf-4.01.01-new/xpdf/pdftohtml.cc
+--- xpdf-4.01.01/xpdf/pdftohtml.cc	2019-03-14 22:01:02.000000000 +0100
++++ xpdf-4.01.01-new/xpdf/pdftohtml.cc	2019-06-22 08:20:37.809638762 +0200
+@@ -138,6 +138,7 @@
+     goto err1;
    }
  
-   // check for copy permission
 +#ifdef ENFORCE_PERMISSIONS
+   // check for copy permission
    if (!doc->okToCopy()) {
      error(errNotAllowed, -1,
- 	  "Copying of images from this document is not allowed.");
+@@ -145,6 +146,7 @@
      exitCode = 3;
      goto err1;
    }
 +#endif
  
    // get page range
-   if (firstPage < 1)
-diff -u -Naur xpdf-3.03-old/xpdf/pdftops.cc xpdf-3.03-new/xpdf/pdftops.cc
---- xpdf-3.03-old/xpdf/pdftops.cc	2011-08-15 23:08:53.000000000 +0200
-+++ xpdf-3.03-new/xpdf/pdftops.cc	2011-08-20 13:51:03.830253411 +0200
-@@ -4,6 +4,8 @@
- //
- // Copyright 1996-2003 Glyph & Cog, LLC
- //
-+// Modified for Debian by Hamish Moffatt, 22 May 2002.
-+//
- //========================================================================
- 
- #include <aconf.h>
-@@ -278,12 +280,14 @@
+   if (firstPage < 1) {
+diff -u -Naur xpdf-4.01.01/xpdf/pdftops.cc xpdf-4.01.01-new/xpdf/pdftops.cc
+--- xpdf-4.01.01/xpdf/pdftops.cc	2019-03-14 22:01:02.000000000 +0100
++++ xpdf-4.01.01-new/xpdf/pdftops.cc	2019-06-22 08:21:06.118636934 +0200
+@@ -318,12 +318,14 @@
      goto err1;
    }
  
@@ -76,19 +54,10 @@ diff -u -Naur xpdf-3.03-old/xpdf/pdftops.cc xpdf-3.03-new/xpdf/pdftops.cc
  
    // construct PostScript file name
    if (argc == 3) {
-diff -u -Naur xpdf-3.03-old/xpdf/pdftotext.cc xpdf-3.03-new/xpdf/pdftotext.cc
---- xpdf-3.03-old/xpdf/pdftotext.cc	2011-08-15 23:08:53.000000000 +0200
-+++ xpdf-3.03-new/xpdf/pdftotext.cc	2011-08-20 13:51:24.367184150 +0200
-@@ -4,6 +4,8 @@
- //
- // Copyright 1997-2003 Glyph & Cog, LLC
- //
-+// Modified for Debian by Hamish Moffatt, 22 May 2002.
-+//
- //========================================================================
- 
- #include <aconf.h>
-@@ -168,6 +170,7 @@
+diff -u -Naur xpdf-4.01.01/xpdf/pdftotext.cc xpdf-4.01.01-new/xpdf/pdftotext.cc
+--- xpdf-4.01.01/xpdf/pdftotext.cc	2019-03-14 22:01:02.000000000 +0100
++++ xpdf-4.01.01-new/xpdf/pdftotext.cc	2019-06-22 08:20:10.134640549 +0200
+@@ -197,6 +197,7 @@
      goto err2;
    }
  
@@ -96,7 +65,7 @@ diff -u -Naur xpdf-3.03-old/xpdf/pdftotext.cc xpdf-3.03-new/xpdf/pdftotext.cc
    // check for copy permission
    if (!doc->okToCopy()) {
      error(errNotAllowed, -1,
-@@ -175,6 +178,7 @@
+@@ -204,6 +205,7 @@
      exitCode = 3;
      goto err2;
    }
@@ -104,70 +73,30 @@ diff -u -Naur xpdf-3.03-old/xpdf/pdftotext.cc xpdf-3.03-new/xpdf/pdftotext.cc
  
    // construct text file name
    if (argc == 3) {
-diff -u -Naur xpdf-3.03-old/xpdf/XPDFCore.cc xpdf-3.03-new/xpdf/XPDFCore.cc
---- xpdf-3.03-old/xpdf/XPDFCore.cc	2011-08-15 23:08:53.000000000 +0200
-+++ xpdf-3.03-new/xpdf/XPDFCore.cc	2011-08-20 13:48:54.902483779 +0200
-@@ -4,6 +4,8 @@
- //
- // Copyright 2002-2003 Glyph & Cog, LLC
- //
-+// Modified for Debian by Hamish Moffatt, 22 May 2002.
-+//
- //========================================================================
- 
- #include <aconf.h>
-@@ -384,12 +386,16 @@
- #ifndef NO_TEXT_SELECT
-       if (selectULX != selectLRX &&
- 	  selectULY != selectLRY) {
-+#ifdef ENFORCE_PERMISSIONS
- 	if (doc->okToCopy()) {
- 	  copySelection();
- 	} else {
- 	  error(errNotAllowed, -1,
- 		"Copying of text from this document is not allowed.");
- 	}
-+#else
-+        copySelection();
-+#endif
-       }
- #endif
-     }
-@@ -408,9 +414,11 @@
-   int pg;
-   double ulx, uly, lrx, lry;
+diff -u -Naur xpdf-4.01.01/xpdf-qt/QtPDFCore.cc xpdf-4.01.01-new/xpdf-qt/QtPDFCore.cc
+--- xpdf-4.01.01/xpdf-qt/QtPDFCore.cc	2019-03-14 22:01:02.000000000 +0100
++++ xpdf-4.01.01-new/xpdf-qt/QtPDFCore.cc	2019-06-22 08:21:56.460633683 +0200
+@@ -447,9 +447,11 @@
+   QChar c;
+   int i;
  
 +#ifdef ENFORCE_PERMISSIONS
    if (!doc->okToCopy()) {
-     return;
+     return "";
    }
 +#endif
-   if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) {
-     //~ for multithreading: need a mutex here
-     if (currentSelection) {
-diff -u -Naur xpdf-3.03-old/xpdf/XPDFViewer.cc xpdf-3.03-new/xpdf/XPDFViewer.cc
---- xpdf-3.03-old/xpdf/XPDFViewer.cc	2011-08-15 23:08:53.000000000 +0200
-+++ xpdf-3.03-new/xpdf/XPDFViewer.cc	2011-08-20 13:49:52.908140863 +0200
-@@ -4,6 +4,8 @@
- //
- // Copyright 2002-2003 Glyph & Cog, LLC
- //
-+// Modified for Debian by Hamish Moffatt, 22 May 2002.
-+//
- //========================================================================
- 
- #include <aconf.h>
-@@ -3492,10 +3494,12 @@
-   PSOutputDev *psOut;
- 
-   doc = viewer->core->getDoc();
+   if (!(s = getSelectedText())) {
+     return "";
+   }
+@@ -476,9 +478,11 @@
+   if (!toClipboard && !QApplication::clipboard()->supportsSelection()) {
+     return;
+   }
 +#ifdef ENFORCE_PERMISSIONS
-   if (!doc->okToPrint()) {
-     error(errNotAllowed, -1, "Printing this document is not allowed.");
+   if (!doc->okToCopy()) {
      return;
    }
 +#endif
- 
-   viewer->core->setBusyCursor(gTrue);
- 
-
+   if (hasSelection()) {
+     QApplication::clipboard()->setText(getSelectedTextQString(),
+ 				       toClipboard ? QClipboard::Clipboard
diff --git a/srcpkgs/xpdf/template b/srcpkgs/xpdf/template
index d6d8d11ae09..9a38c876d8a 100644
--- a/srcpkgs/xpdf/template
+++ b/srcpkgs/xpdf/template
@@ -1,29 +1,30 @@
 # Template file for 'xpdf'
 pkgname=xpdf
-version=3.04
-revision=2
-build_style=gnu-configure
-configure_args="--enable-multithreaded
- --with-freetype2-library=${XBPS_CROSS_BASE}/usr/lib
- --with-freetype2-includes=${XBPS_CROSS_BASE}/usr/include/freetype2
- --x-includes=${XBPS_CROSS_BASE}/usr/include"
+version=4.01.01
+revision=1
+build_style=cmake
+configure_args="-DSYSTEM_XPDFRC=/etc/xpdfrc"
 conf_files="/etc/xpdfrc"
-makedepends="lesstif-devel libpaper-devel libXt-devel libXpm-devel libXp-devel freetype-devel"
+makedepends="freetype-devel qt5-devel libpaper-devel zlib-devel libpng-devel cups-devel"
 depends="gsfonts"
 short_desc="Viewer for Portable Document Format (PDF) files"
 maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="GPL-2.0-or-later, GPL-3.0-or-later"
 homepage="http://www.foolabs.com/xpdf/"
-distfiles="https://xpdfreader-dl.s3.amazonaws.com/old/xpdf-$version.tar.gz"
-checksum=11390c74733abcb262aaca4db68710f13ffffd42bfe2a0861a5dfc912b2977e5
+distfiles="https://xpdfreader-dl.s3.amazonaws.com/xpdf-$version.tar.gz"
+checksum=ba550c7d3e4f73b1833cfcdcd9dbe39849dd0cd459b6774c4ecdfeca993204a4
 patch_args="-Np1"
 
 post_extract() {
 	sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' xpdf/GlobalParams.cc
-	sed -i 's:times-medium-r-normal--16:times-medium-r-normal--14:' xpdf/XPDFViewer.cc
 }
 
 post_install() {
+	vdoc CHANGES
+	vdoc README
+	# copy sample xpdfrc
+	vmkdir etc
+	vinstall doc/sample-xpdfrc 644 etc xpdfrc
 	# already in poppler-utils
 	rm $DESTDIR/usr/bin/pdf*
 	rm $DESTDIR/usr/share/man/man1/pdf*
