From 36055a452ba2dc82d3f08895b500894c948f4230 Mon Sep 17 00:00:00 2001 From: Kai Knoblich Date: Wed, 22 May 2019 06:40:01 +0000 Subject: [PATCH] graphics/impressive: Update to 0.12.0 * Switch to MuPDF as default renderer for PDF files and give users the choice to choose alternate or additional PDF renderers (Ghostscript, Poppler and Xpdf) * Make further dependencies optional but leave them as default to keep in sync with upstream's defaults * Limit the port to Python 2.7 because Python 3 is not (yet) supported and add "python" to CATEGORIES to make searching somewhat easier * Introduce a patch to prevent possible runtime errors if graphics/py-pillow is updated to 6.0.0 [1] [2] * Pet portlint * Take maintainership Notable changes since 0.11.1: * Many zoom mode related changes * Many video related changes * Made Impressive suitable for Raspberry Pi-based digital signage * Fixed --auto mode that was broken in 0.11.2 (only worked properly for the first page) * Fixed excessive mouse sensitivity in full-screen mode * Fixed crashes when clicking hyperlinks in some PDFs * Fixed non-working hyperlinks when more than one input document is specified * Added new MuPDF renderer, uses no temporary files or named pipes on POSIX with MuPDF >= 1.4 * Can now use MuPDF's mutool instead of pdftk to get basic file information and unpack PDF files (for hyperlink decoding) * pdftk is no longer required to open "modern" PDF files * Only page title extraction still needs pdftk * Input files are now checked for playability (to prevent users from accidentally playing .info files) * Fixed non-responsiveness to any controls on slow systems where rendering a page takes longer than the --auto interval * First page is now shown as early as possible (before fonts etc. have been preloaded) * Fixed occasional re-rendering of pages that have already been rendered * Fixed 'keys' PageProp that was broken since 0.11.0 * Fixed crash in --verbose mode * Changed shebang line to 'python2' to avoid issues with Linux distributions that use Python 3.x by default http://impressive.sourceforge.net/news.php PR: 237426 (related) [1] Obtained from: Upstream [2] --- graphics/impressive/Makefile | 49 ++++++++++++++----- graphics/impressive/distinfo | 6 +-- graphics/impressive/files/patch-impressive.py | 18 +++++++ 3 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 graphics/impressive/files/patch-impressive.py diff --git a/graphics/impressive/Makefile b/graphics/impressive/Makefile index a9e42f79a1ce..dafb8274641e 100644 --- a/graphics/impressive/Makefile +++ b/graphics/impressive/Makefile @@ -2,28 +2,25 @@ # $FreeBSD$ PORTNAME= impressive -PORTVERSION= 0.11.1 -PORTREVISION= 5 -CATEGORIES= graphics +PORTVERSION= 0.12.0 +CATEGORIES= graphics python MASTER_SITES= SF/${PORTNAME}/Impressive/${PORTVERSION}/ DISTNAME= Impressive-${PORTVERSION} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= kai@FreeBSD.org COMMENT= Stylish way of giving presentations LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/license.txt RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}PyOpenGL>=0:graphics/py-PyOpenGL@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} \ - xpdf:graphics/xpdf \ - pdftk:print/pdftk \ - xdg-open:devel/xdg-utils \ - mplayer:multimedia/mplayer + ${PYTHON_PKGNAMEPREFIX}game>0:devel/py-game@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} -USES= ghostscript:run python shebangfix -SHEBANG_FILES= impressive.py +USES= python:2.7 sdl shebangfix USE_SDL= sdl + +SHEBANG_FILES= impressive.py NO_BUILD= yes NO_ARCH= yes PLIST_FILES= bin/${PORTNAME} \ @@ -32,6 +29,36 @@ PLIST_FILES= bin/${PORTNAME} \ PORTDOCS= ${PORTNAME}.html demo.pdf OPTIONS_DEFINE= DOCS +OPTIONS_GROUP= MULTIMEDIA PDFFEATURE +OPTIONS_MULTI= PDFENGINE +OPTIONS_DEFAULT=FFMPEG MPLAYER MUPDF PDFTK XDG + +OPTIONS_GROUP_MULTIMEDIA= FFMPEG MPLAYER +OPTIONS_GROUP_PDFFEATURE= PDFTK XDG +OPTIONS_MULTI_PDFENGINE= GHOSTSCRIPT MUPDF POPPLER XPDF + +FFMPEG_DESC= Optimize generation of video preview images +MPLAYER_DESC= Enable audio/video playback +PDFTK_DESC= Enable automatic extraction of PDF page titles +XDG_DESC= Enable web/e-mail hyperlinks in PDF files +GHOSTSCRIPT_DESC= Use Ghostscript for PDF rendering +MUPDF_DESC= Use MuPDF for PDF rendering +POPPLER_DESC= Use Poppler for PDF rendering +XPDF_DESC= Use Xpdf for PDF rendering + +FFMPEG_IMPLIES= MPLAYER +GHOSTSCRIPT_IMPLIES= PDFTK +POPPLER_IMPLIES= PDFTK +XPDF_IMPLIES= PDFTK + +FFMPEG_RUN_DEPENDS= ffmpeg:multimedia/ffmpeg +MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer +PDFTK_RUN_DEPENDS= pdftk:print/pdftk +XDG_RUN_DEPENDS= xdg-open:devel/xdg-utils +GHOSTSCRIPT_USES= ghostscript:run +MUPDF_RUN_DEPENDS= mupdf:graphics/mupdf +POPPLER_RUN_DEPENDS= pdftoppm:graphics/poppler-utils +XPDF_RUN_DEPENDS= ${LOCALBASE}/libexec/xpdf/pdftoppm:graphics/xpdf do-install: ${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME}.py ${STAGEDIR}${PREFIX}/bin/${PORTNAME} diff --git a/graphics/impressive/distinfo b/graphics/impressive/distinfo index 975991cc73a6..0b8f8db237b3 100644 --- a/graphics/impressive/distinfo +++ b/graphics/impressive/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1471876119 -SHA256 (Impressive-0.11.1.tar.gz) = 593f616eb72a18a826bc7687c9952a2ae5dded5483d2688bab5b5ca68caf792c -SIZE (Impressive-0.11.1.tar.gz) = 195743 +TIMESTAMP = 1558123299 +SHA256 (Impressive-0.12.0.tar.gz) = 7dc78de333e4a942036ba4bda53358799f493114f2f655b2ab2689b6fdc0587d +SIZE (Impressive-0.12.0.tar.gz) = 209514 diff --git a/graphics/impressive/files/patch-impressive.py b/graphics/impressive/files/patch-impressive.py new file mode 100644 index 000000000000..094df9ec5c13 --- /dev/null +++ b/graphics/impressive/files/patch-impressive.py @@ -0,0 +1,18 @@ +--- impressive.py.orig 2018-02-04 20:31:39 UTC ++++ impressive.py +@@ -6332,7 +6332,14 @@ def run_main(): + print >>sys.stderr, "Impressive version:", __version__ + print >>sys.stderr, "Python version:", sys.version + print >>sys.stderr, "PyGame version:", pygame.__version__ +- print >>sys.stderr, "PIL version:", Image.VERSION ++ if hasattr(Image, "__version__"): # Pillow >= 5.2 ++ print >>sys.stderr, "PIL version: Pillow", Image.__version__ ++ elif hasattr(Image, "PILLOW_VERSION"): # Pillow < 7.0 ++ print >>sys.stderr, "PIL version: Pillow", Image.PILLOW_VERSION ++ elif hasattr(Image, "VERSION"): # classic PIL or Pillow 1.x ++ print >>sys.stderr, "PIL version: classic", Image.VERSION ++ else: ++ print >>sys.stderr, "PIL version: unknown" + if PDFRenderer: + print >>sys.stderr, "PDF renderer:", PDFRenderer.name + else: