On 5/30/14, Matthias Kilian <k...@outback.escape.de> wrote: > Update to xpdf-3.04. > > See http://www.foolabs.com/xpdf/CHANGES for a full list of changes. > > Tested with a couple of (broken and evil) pdf documents on amd64. > > The fix from miod@ (dates back to 2009) shouldn't be necessary any > longer, but to be safe I prefer to keep some asserts around for a > while.
Are there test-cases which can be shared? > I added pdftopng(1) but not pdftohtml(1), because poppler-utils > already contains a program with this name. No idea which one is > more useful. > > Tests, comments and oks are welcome. Only tested a few minutes on amd64, but it does open the postgresql-9.3-US.pdf much(!) quicker than previous version. Thanks for the quick update to the port. --patrick > Ciao, > Kili > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/Makefile,v > retrieving revision 1.83 > diff -u -p -r1.83 Makefile > --- Makefile 11 Mar 2013 11:42:47 -0000 1.83 > +++ Makefile 30 May 2014 14:06:49 -0000 > @@ -2,12 +2,10 @@ > > COMMENT= PDF viewer for X11 > > -DISTNAME= xpdf-3.03 > -REVISION= 0 > +DISTNAME= xpdf-3.04 > CATEGORIES= textproc x11 > > MASTER_SITES= ftp://ftp.foolabs.com/pub/xpdf/ \ > - ftp://gd.tuwien.ac.at/publishing/xpdf/ \ > http://mirror.ctan.org/support/xpdf/ > > HOMEPAGE= http://www.foolabs.com/xpdf/ > @@ -15,7 +13,7 @@ HOMEPAGE= http://www.foolabs.com/xpdf/ > # GPLv2 only or GPLv3 only or both (at our choice) > PERMIT_PACKAGE_CDROM= Yes > > -LIB_DEPENDS+= x11/openmotif > +LIB_DEPENDS+= graphics/png x11/openmotif > USE_GMAKE= Yes > CONFIGURE_STYLE=gnu > CONFIGURE_ARGS= --enable-multithreaded \ > @@ -29,7 +27,7 @@ MAKE_ENV+=MOTIFLIB='-L${LOCALBASE}/lib - > RUN_DEPENDS= print/ghostscript/gnu-fonts > > WANTLIB= ICE SM X11 Xext Xpm Xt freetype Xm \ > - c m pthread stdc++ z > + c m png pthread stdc++ z > > NO_TEST= Yes > > @@ -42,5 +40,9 @@ post-install: > rm ${PREFIX}/man/man1/$i.1 > rm ${PREFIX}/bin/$i > .endfor > +# forgotten in Makefile.in (there's also a pdfthtml, but it conflicts > +# with poppler-utils): > + ${INSTALL_PROGRAM} ${WRKBUILD}/xpdf/pdftopng ${PREFIX}/bin > + ${INSTALL_MAN} ${WRKSRC}/doc/pdftopng.1 ${PREFIX}/man/man1 > > .include <bsd.port.mk> > Index: distinfo > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/distinfo,v > retrieving revision 1.17 > diff -u -p -r1.17 distinfo > --- distinfo 1 Oct 2011 19:46:35 -0000 1.17 > +++ distinfo 30 May 2014 13:14:12 -0000 > @@ -1,5 +1,2 @@ > -MD5 (xpdf-3.03.tar.gz) = r3X3cr7g5a5KgR/50D6sWg== > -RMD160 (xpdf-3.03.tar.gz) = 7xM2wYkCb7Ds0Wnis3taWqIuBL4= > -SHA1 (xpdf-3.03.tar.gz) = SZQj6KeV4O/XbKeYI5600NUv4kg= > -SHA256 (xpdf-3.03.tar.gz) = As9j2PYybtpkQJbND5aeFYhwKthyIsHpOIqTwnD7zso= > -SIZE (xpdf-3.03.tar.gz) = 795537 > +SHA256 (xpdf-3.04.tar.gz) = ETkMdHM6vLJiqspNtocQ8T///UK/4qCGGl38kSspd+U= > +SIZE (xpdf-3.04.tar.gz) = 825519 > Index: patches/patch-doc_sample-xpdfrc > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/patches/patch-doc_sample-xpdfrc,v > retrieving revision 1.4 > diff -u -p -r1.4 patch-doc_sample-xpdfrc > --- patches/patch-doc_sample-xpdfrc 1 Oct 2011 19:46:35 -0000 1.4 > +++ patches/patch-doc_sample-xpdfrc 30 May 2014 13:14:12 -0000 > @@ -1,6 +1,6 @@ > $OpenBSD: patch-doc_sample-xpdfrc,v 1.4 2011/10/01 19:46:35 kili Exp $ > ---- doc/sample-xpdfrc.orig Mon Aug 15 23:08:53 2011 > -+++ doc/sample-xpdfrc Thu Aug 18 21:10:22 2011 > +--- doc/sample-xpdfrc.orig Wed May 28 20:50:50 2014 > ++++ doc/sample-xpdfrc Fri May 30 14:26:13 2014 > @@ -56,7 +56,7 @@ > > # Set the default PostScript file or command. > @@ -10,7 +10,7 @@ $OpenBSD: patch-doc_sample-xpdfrc,v 1.4 > > # Set the default PostScript paper size -- this can be letter, legal, > # A4, or A3. You can also specify a paper size as width and height > -@@ -88,5 +88,5 @@ > +@@ -87,5 +87,5 @@ > # Set the command used to run a web browser when a URL hyperlink is > # clicked. > > Index: patches/patch-splash_Makefile_in > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/patches/patch-splash_Makefile_in,v > retrieving revision 1.1 > diff -u -p -r1.1 patch-splash_Makefile_in > --- patches/patch-splash_Makefile_in 25 Jan 2004 06:02:40 -0000 1.1 > +++ patches/patch-splash_Makefile_in 30 May 2014 13:14:12 -0000 > @@ -1,12 +1,12 @@ > $OpenBSD: patch-splash_Makefile_in,v 1.1 2004/01/25 06:02:40 brad Exp $ > ---- splash/Makefile.in.orig 2004-01-24 23:49:23.000000000 -0500 > -+++ splash/Makefile.in 2004-01-24 23:49:34.000000000 -0500 > +--- splash/Makefile.in.orig Wed May 28 20:50:50 2014 > ++++ splash/Makefile.in Fri May 30 14:29:41 2014 > @@ -16,7 +16,7 @@ GOOLIBDIR = ../goo > FOFISRCDIR = $(srcdir)/../fofi > FOFILIBDIR = ../fofi > > --CXXFLAGS = @CXXFLAGS@ @DEFS@ -I.. -I$(GOOSRCDIR) -I$(FOFISRCDIR) > -I$(srcdir) @t1_CFLAGS@ @freetype2_CFLAGS@ > -+CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ @DEFS@ -I.. -I$(GOOSRCDIR) > -I$(FOFISRCDIR) -I$(srcdir) @t1_CFLAGS@ @freetype2_CFLAGS@ > +-CXXFLAGS = @CXXFLAGS@ @DEFS@ -I.. -I$(srcdir)/.. -I$(GOOSRCDIR) > -I$(FOFISRCDIR) -I$(srcdir) @freetype2_CFLAGS@ > ++CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ @DEFS@ -I.. -I$(srcdir)/.. -I$(GOOSRCDIR) > -I$(FOFISRCDIR) -I$(srcdir) @freetype2_CFLAGS@ > > CXX = @CXX@ > AR = @AR@ > Index: patches/patch-splash_SplashXPath_cc > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/patches/patch-splash_SplashXPath_cc,v > retrieving revision 1.3 > diff -u -p -r1.3 patch-splash_SplashXPath_cc > --- patches/patch-splash_SplashXPath_cc 1 Oct 2011 19:46:35 -0000 > 1.3 > +++ patches/patch-splash_SplashXPath_cc 30 May 2014 13:34:36 -0000 > @@ -1,32 +1,49 @@ > $OpenBSD: patch-splash_SplashXPath_cc,v 1.3 2011/10/01 19:46:35 kili Exp $ > ---- splash/SplashXPath.cc.orig Mon Aug 15 23:08:53 2011 > -+++ splash/SplashXPath.cc Thu Aug 18 21:10:22 2011 > -@@ -73,10 +73,26 @@ SplashXPath::SplashXPath(SplashPath *path, SplashCoord > - sizeof(SplashXPathAdjust)); > - for (i = 0; i < path->hintsLength; ++i) { > - hint = &path->hints[i]; > -+ if (hint->firstPt >= path->length || hint->lastPt >= path->length) > { > -+ path->hintsLength = i; > -+ if (i == 0) { > -+ gfree(adjusts); > -+ adjusts = NULL; > -+ } > -+ break; > -+ } > - x0 = pts[hint->ctrl0 ].x; y0 = pts[hint->ctrl0 ].y; > -- x1 = pts[hint->ctrl0 + 1].x; y1 = pts[hint->ctrl0 + 1].y; > -+ if (hint->ctrl0 + 1 >= path->length) { > -+ x1 = x0; y1 = y0; > -+ } else { > -+ x1 = pts[hint->ctrl0 + 1].x; y1 = pts[hint->ctrl0 + 1].y; > -+ } > - x2 = pts[hint->ctrl1 ].x; y2 = pts[hint->ctrl1 ].y; > -- x3 = pts[hint->ctrl1 + 1].x; y3 = pts[hint->ctrl1 + 1].y; > -+ if (hint->ctrl1 + 1 >= path->length) { > -+ x3 = x2; y3 = y2; > -+ } else { > -+ x3 = pts[hint->ctrl1 + 1].x; y3 = pts[hint->ctrl1 + 1].y; > -+ } > - if (x0 == x1 && x2 == x3) { > - adjusts[i].vert = gTrue; > - adj0 = x0; > + > +Replace Miod's fix from 2009 by some assert's, because the bug > +*should* have been fixed in a different way and I'm too lazy to > +verify it. (needs a change to strokeAdjust(), which is private) > + > +--- splash/SplashXPath.cc.orig Wed May 28 20:50:50 2014 > ++++ splash/SplashXPath.cc Fri May 30 15:31:49 2014 > +@@ -8,6 +8,8 @@ > + > + #include <aconf.h> > + > ++#include <assert.h> > ++ > + #ifdef USE_GCC_PRAGMAS > + #pragma implementation > + #endif > +@@ -69,7 +71,7 @@ SplashXPath::SplashXPath(SplashPath *path, SplashCoord > + > + // do stroke adjustment > + if (path->hints) { > +- strokeAdjust(pts, path->hints, path->hintsLength); > ++ strokeAdjust(pts, path->hints, path->hintsLength, path->length); > + } > + > + segs = NULL; > +@@ -176,7 +178,8 @@ SplashXPath::SplashXPath(SplashPath *path, SplashCoord > + } > + > + void SplashXPath::strokeAdjust(SplashXPathPoint *pts, > +- SplashPathHint *hints, int nHints) { > ++ SplashPathHint *hints, int nHints, > ++ int plength) { > + SplashXPathAdjust *adjusts, *adjust; > + SplashPathHint *hint; > + SplashCoord x0, y0, x1, y1, x2, y2, x3, y3; > +@@ -188,9 +191,12 @@ void SplashXPath::strokeAdjust(SplashXPathPoint *pts, > + adjusts = (SplashXPathAdjust *)gmallocn(nHints, > sizeof(SplashXPathAdjust)); > + for (i = 0; i < nHints; ++i) { > + hint = &hints[i]; > ++ assert(hint->firstPt < plength && hint->lastPt < plength); > + x0 = pts[hint->ctrl0 ].x; y0 = pts[hint->ctrl0 ].y; > ++ assert(hint->ctrl0 + 1 < plength); > + x1 = pts[hint->ctrl0 + 1].x; y1 = pts[hint->ctrl0 + 1].y; > + x2 = pts[hint->ctrl1 ].x; y2 = pts[hint->ctrl1 ].y; > ++ assert(hint->ctrl1 + 1 < plength); > + x3 = pts[hint->ctrl1 + 1].x; y3 = pts[hint->ctrl1 + 1].y; > + if (x0 == x1 && x2 == x3) { > + adjusts[i].vert = gTrue; > Index: patches/patch-splash_SplashXPath_h > =================================================================== > RCS file: patches/patch-splash_SplashXPath_h > diff -N patches/patch-splash_SplashXPath_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-splash_SplashXPath_h 30 May 2014 13:34:45 -0000 > @@ -0,0 +1,18 @@ > +$OpenBSD$ > + > +Replace Miod's fix from 2009 by some assert's, because the bug > +*should* have been fixed in a different way and I'm too lazy to > +verify it. (needs a change to strokeAdjust(), which is private) > + > +--- splash/SplashXPath.h.orig Wed May 28 20:50:50 2014 > ++++ splash/SplashXPath.h Fri May 30 15:33:45 2014 > +@@ -99,7 +99,8 @@ class SplashXPath { (private) > + void transform(SplashCoord *matrix, SplashCoord xi, SplashCoord yi, > + SplashCoord *xo, SplashCoord *yo); > + void strokeAdjust(SplashXPathPoint *pts, > +- SplashPathHint *hints, int nHints); > ++ SplashPathHint *hints, int nHints, > ++ int plength); > + void grow(int nSegs); > + void addCurve(SplashCoord x0, SplashCoord y0, > + SplashCoord x1, SplashCoord y1, > Index: patches/patch-xpdf_GlobalParams_cc > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/patches/patch-xpdf_GlobalParams_cc,v > retrieving revision 1.2 > diff -u -p -r1.2 patch-xpdf_GlobalParams_cc > --- patches/patch-xpdf_GlobalParams_cc 1 Oct 2011 19:46:35 -0000 > 1.2 > +++ patches/patch-xpdf_GlobalParams_cc 30 May 2014 13:14:12 -0000 > @@ -1,7 +1,7 @@ > $OpenBSD: patch-xpdf_GlobalParams_cc,v 1.2 2011/10/01 19:46:35 kili Exp $ > ---- xpdf/GlobalParams.cc.orig Mon Aug 15 23:08:53 2011 > -+++ xpdf/GlobalParams.cc Thu Aug 18 21:56:42 2011 > -@@ -110,11 +110,7 @@ static const char *displayFontDirs[] = { > +--- xpdf/GlobalParams.cc.orig Wed May 28 20:50:50 2014 > ++++ xpdf/GlobalParams.cc Fri May 30 14:27:13 2014 > +@@ -120,14 +120,7 @@ static const char *displayFontDirs[] = { > }; > #else > static const char *displayFontDirs[] = { > @@ -10,6 +10,9 @@ $OpenBSD: patch-xpdf_GlobalParams_cc,v 1 > - "/usr/share/fonts/default/Type1", > - "/usr/share/fonts/default/ghostscript", > - "/usr/share/fonts/type1/gsfonts", > +-#if defined(__sun) && defined(__SVR4) > +- "/usr/sfw/share/ghostscript/fonts", > +-#endif > + LOCALBASE "/share/ghostscript/fonts", > NULL > }; > Index: patches/patch-xpdf_Makefile_in > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/patches/patch-xpdf_Makefile_in,v > retrieving revision 1.5 > diff -u -p -r1.5 patch-xpdf_Makefile_in > --- patches/patch-xpdf_Makefile_in 25 Jan 2004 06:02:40 -0000 1.5 > +++ patches/patch-xpdf_Makefile_in 30 May 2014 13:14:12 -0000 > @@ -1,18 +1,18 @@ > $OpenBSD: patch-xpdf_Makefile_in,v 1.5 2004/01/25 06:02:40 brad Exp $ > ---- xpdf/Makefile.in.orig 2004-01-21 20:26:45.000000000 -0500 > -+++ xpdf/Makefile.in 2004-01-24 23:55:40.000000000 -0500 > +--- xpdf/Makefile.in.orig Wed May 28 20:50:50 2014 > ++++ xpdf/Makefile.in Fri May 30 14:28:24 2014 > @@ -19,7 +19,7 @@ FOFILIBDIR = ../fofi > SPLASHSRCDIR = $(srcdir)/../splash > SPLASHLIBDIR = ../splash > > --CXXFLAGS = @CXXFLAGS@ @DEFS@ -I.. -I$(GOOSRCDIR) -I$(FOFISRCDIR) > -I$(SPLASHSRCDIR) -I$(srcdir) @freetype2_CFLAGS@ @Sgm_CFLAGS@ @Xm_CFLAGS@ > @Xt_CFLAGS@ @Xp_CFLAGS@ @Xext_CFLAGS@ @Xpm_CFLAGS@ @t1_CFLAGS@ > @libpaper_CFLAGS@ @X_CFLAGS@ > -+CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ @DEFS@ -I.. -I$(GOOSRCDIR) > -I$(FOFISRCDIR) -I$(SPLASHSRCDIR) -I$(srcdir) @freetype2_CFLAGS@ > @Sgm_CFLAGS@ @Xm_CFLAGS@ @Xt_CFLAGS@ @Xp_CFLAGS@ @Xext_CFLAGS@ @Xpm_CFLAGS@ > @t1_CFLAGS@ @libpaper_CFLAGS@ @X_CFLAGS@ > +-CXXFLAGS = @CXXFLAGS@ @DEFS@ -I.. -I$(srcdir)/.. -I$(GOOSRCDIR) > -I$(FOFISRCDIR) -I$(SPLASHSRCDIR) -I$(srcdir) @freetype2_CFLAGS@ > @Sgm_CFLAGS@ @Xm_CFLAGS@ @Xt_CFLAGS@ @Xp_CFLAGS@ @Xext_CFLAGS@ @Xpm_CFLAGS@ > @libpng_CFLAGS@ @libpaper_CFLAGS@ @X_CFLAGS@ @EXTRA_CFLAGS@ > ++CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ @DEFS@ -I.. -I$(srcdir)/.. -I$(GOOSRCDIR) > -I$(FOFISRCDIR) -I$(SPLASHSRCDIR) -I$(srcdir) @freetype2_CFLAGS@ > @Sgm_CFLAGS@ @Xm_CFLAGS@ @Xt_CFLAGS@ @Xp_CFLAGS@ @Xext_CFLAGS@ @Xpm_CFLAGS@ > @libpng_CFLAGS@ @libpaper_CFLAGS@ @X_CFLAGS@ @EXTRA_CFLAGS@ > > LDFLAGS = @LDFLAGS@ > > -@@ -32,7 +32,7 @@ SPLASHLIBS = -L$(SPLASHLIBDIR) -lsplash > +@@ -33,7 +33,7 @@ SPLASHLIBS = -L$(SPLASHLIBDIR) -lsplash > > - OTHERLIBS = @LIBS@ @libpaper_LIBS@ \ > + OTHERLIBS = @LIBS@ @libpaper_LIBS@ @EXTRA_LIBS@ \ > -L$(FOFILIBDIR) -lfofi \ > - -L$(GOOLIBDIR) -lGoo > + -L$(GOOLIBDIR) -lGoo -pthread > Index: patches/patch-xpdf_XRef_cc > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/patches/patch-xpdf_XRef_cc,v > retrieving revision 1.6 > diff -u -p -r1.6 patch-xpdf_XRef_cc > --- patches/patch-xpdf_XRef_cc 1 Oct 2011 19:46:35 -0000 1.6 > +++ patches/patch-xpdf_XRef_cc 30 May 2014 13:14:12 -0000 > @@ -1,7 +1,7 @@ > $OpenBSD: patch-xpdf_XRef_cc,v 1.6 2011/10/01 19:46:35 kili Exp $ > ---- xpdf/XRef.cc.orig Mon Aug 15 23:08:53 2011 > -+++ xpdf/XRef.cc Thu Aug 18 21:10:22 2011 > -@@ -806,19 +806,19 @@ void XRef::setEncryption(int permFlagsA, GBool > ownerPa > +--- xpdf/XRef.cc.orig Wed May 28 20:50:50 2014 > ++++ xpdf/XRef.cc Fri May 30 14:26:13 2014 > +@@ -958,19 +958,19 @@ void XRef::setEncryption(int permFlagsA, GBool > ownerPa > } > > GBool XRef::okToPrint(GBool ignoreOwnerPW) { > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/textproc/xpdf/pkg/PLIST,v > retrieving revision 1.12 > diff -u -p -r1.12 PLIST > --- pkg/PLIST 6 Jun 2012 18:28:22 -0000 1.12 > +++ pkg/PLIST 30 May 2014 14:06:33 -0000 > @@ -1,10 +1,12 @@ > @comment $OpenBSD: PLIST,v 1.12 2012/06/06 18:28:22 ajacoutot Exp $ > +@conflict xpdf-utils-* > @pkgpath textproc/xpdf,-main > @pkgpath textproc/xpdf,-utils > -@conflict xpdf-utils-* > @bin bin/pdfdetach > +@bin bin/pdftopng > @bin bin/xpdf > @man man/man1/pdfdetach.1 > +@man man/man1/pdftopng.1 > @man man/man1/xpdf.1 > @man man/man5/xpdfrc.5 > share/examples/xpdf/ > >