mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH 4/7] poppler: version bump 0.18.0 -> 0.57.0
Date: Mon, 28 Aug 2017 12:18:43 +0200	[thread overview]
Message-ID: <20170828101843.5dbdqojjfly6dz74@pengutronix.de> (raw)
In-Reply-To: <20170823223911.13784-5-r.hieber@pengutronix.de>

On Thu, Aug 24, 2017 at 12:39:08AM +0200, Roland Hieber wrote:
> This is quite a version bump, spanning six years of poppler development.
> Upstream now provides data for rendering cyrillic languages in the
> package poppler-data, but this dependency is only detected at compile
> time, so make sure the build order is right.
> 
> Some applications require the old xpdf headers, the CPP wrapper or CMYK
> support, so make these configure options selectable. Same for the Splash
> backend, which can now also be built with single precision or
> fixed-point arithmetic. PNG and JPEG support is no longer broken,
> poppler now also includes an internal DCT decoder. The GTK dependency
> has been dropped (or was it even necessary in the first place?)
> 
> Don't wonder about --disable-relocatable, it only applies to Windows.
> 
> poppler allows using zlib to uncompress flate streams, but with the
> warning that this is "not totally safe", so it is disabled.
> 
> Additionally, poppler could benefit from packaging libopenjpeg and
> libtiff in ptxdist for parsing embedded JPEG2000 or TIFF in PDFs.
> Likewise, libnss could be packaged for PDF signature support. Also
> there is the option to build a Qt5 wrapper, but I don't have a good way
> to test this, so it is currently disabled.
> 
> Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
> ---
>  ...error-vector-in-namespace-std-does-not-na.patch | 56 ++++++++++++++
>  patches/poppler-0.57.0/series                      |  4 +
>  rules/poppler.in                                   | 86 +++++++++++++++++-----
>  rules/poppler.make                                 | 67 +++++++++++++----
>  4 files changed, 179 insertions(+), 34 deletions(-)
>  create mode 100644 patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
>  create mode 100644 patches/poppler-0.57.0/series
> 
> diff --git a/patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch b/patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
> new file mode 100644
> index 000000000..70bfdc36f
> --- /dev/null
> +++ b/patches/poppler-0.57.0/0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
> @@ -0,0 +1,56 @@
> +From: Roland Hieber <r.hieber@pengutronix.de>
> +Date: Fri, 11 Aug 2017 11:44:26 +0200
> +Subject: [PATCH] Form.h: fix error: 'vector' in namespace 'std' does not name
> + a type
> +
> +Original error message while compiling with
> +OSELAS.Toolchain-2016.06.1-arm-v7a-linux-gnueabi,
> +gcc-5.4.0-glibc-2.23-binutils-2.26-kernel-4.6-sanitized:
> +
> +	make[5]: Entering directory '/ptx/work/dude/WORK_B/rhi/OSELAS.BSP-Miele-PST/platform-cpu20/build-target/poppler-0.57.0/qt4/src'
> +	  CXX      libpoppler_qt4_la-poppler-form.lo
> +	In file included from poppler-form.cc:26:0:
> +	../../poppler/Form.h:544:14: error: 'vector' in namespace 'std' does not name a template type
> +	../../poppler/Form.h:556:8: error: 'vector' in namespace 'std' does not name a template type
> +	Makefile:735: recipe for target 'libpoppler_qt4_la-poppler-form.lo' failed
> +
> +configure arguments were:
> +
> +	--prefix=/usr --sysconfdir=/etc --localstatedir=/var
> +	--libdir=/usr/lib --host=arm-v7a-linux-gnueabi
> +	--build=x86_64-host-linux-gnu --enable-option-checking
> +	--disable-silent-rules --disable-dependency-tracking
> +	--enable-shared --enable-fast-install --enable-libtool-lock
> +	--enable-xpdf-headers --enable-build-type=release
> +	--disable-single-precision --enable-fixedpoint --enable-cmyk
> +	--disable-relocatable --enable-libopenjpeg=none --disable-libnss
> +	--disable-libtiff --enable-largefile --enable-zlib
> +	--disable-zlib-uncompress --enable-libcurl
> +	--enable-dctdecoder=libjpeg --enable-libpng
> +	--disable-splash-output --enable-cairo-output
> +	--enable-poppler-glib --disable-introspection --disable-gtk-doc
> +	--disable-gtk-doc-html --disable-gtk-doc-pdf
> +	--enable-poppler-qt4 --disable-poppler-qt5 --enable-poppler-cpp
> +	--disable-gtk-test --enable-utils --disable-compile-warnings
> +	--enable-cms=lcms1 --without-x
> +	--with-font-configuration=fontconfig --without-libiconv-prefix
> +	--with-testdatadir=
> +
> +Forwarded: https://bugs.freedesktop.org/show_bug.cgi?id=102147
> +Signed-off-by: Roland Hieber <r.hieber@pengutronix.de>
> +---
> + poppler/Form.h | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/poppler/Form.h b/poppler/Form.h
> +index 8ddb6fe3d638..e0a3a28767bb 100644
> +--- a/poppler/Form.h
> ++++ b/poppler/Form.h
> +@@ -27,6 +27,7 @@
> + #include "Annot.h"
> + 
> + #include <set>
> ++#include <vector>
> + 
> + class GooString;
> + class Array;
> diff --git a/patches/poppler-0.57.0/series b/patches/poppler-0.57.0/series
> new file mode 100644
> index 000000000..9e7d355f4
> --- /dev/null
> +++ b/patches/poppler-0.57.0/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-Form.h-fix-error-vector-in-namespace-std-does-not-na.patch
> +# ed2ff81cec7f4cb784b9295817f9d1e8  - git-ptx-patches magic
> diff --git a/rules/poppler.in b/rules/poppler.in
> index b107dc7a5..793e19275 100644
> --- a/rules/poppler.in
> +++ b/rules/poppler.in
> @@ -4,18 +4,21 @@ menuconfig POPPLER
>  	tristate
>  	prompt "poppler                       "
>  	select FONTCONFIG
> +	select FREETYPE
>  	select HOST_GETTEXT
> -	select GLIB		if POPPLER_GLIB
> -	select LIBPNG		if POPPLER_PNG
> -	select LIBJPEG		if POPPLER_JPEG
> -	select CAIRO		if POPPLER_CAIRO
> -	select GTK		if POPPLER_SPLASH && POPPLER_GLIB
> -	select ZLIB		if POPPLER_ZLIB
> -	select LIBCURL		if POPPLER_CURL
> -	select LCMS		if POPPLER_CMS
> -	select QT4		if POPPLER_QT4
> -	select QT4_BUILD_GUI	if POPPLER_QT4
> -	select QT4_BUILD_XML	if POPPLER_QT4
> +	select POPPLER_DATA		if POPPLER_WITH_DATA
> +	select GLIB			if POPPLER_GLIB
> +	select LIBPNG			if POPPLER_PNG
> +	select LIBJPEG			if POPPLER_JPEG
> +	select CAIRO			if POPPLER_CAIRO
> +	select CAIRO_FREETYPE		if POPPLER_CAIRO
> +	select ZLIB			if POPPLER_ZLIB
> +	select LIBCURL			if POPPLER_CURL
> +	select LCMS			if POPPLER_CMS
> +	select QT4			if POPPLER_QT4
> +	select QT4_BUILD_GUI		if POPPLER_QT4
> +	select QT4_BUILD_XML		if POPPLER_QT4
> +	select QT4_BUILD_QTESTLIB	if POPPLER_QT4
>  	help
>  	  Poppler is a PDF rendering library based on the xpdf-3.0 code base.
>  
> @@ -29,6 +32,35 @@ config POPPLER_BIN
>  	  pdffonts, pdfimages, pdfinfo, pdftoabw, pdftohtml, pdftoppm, pdftops,
>  	  pdftotext.
>  
> +config POPPLER_XPDF
> +	bool
> +	prompt "install unsupported xpdf headers"
> +	help
> +	  Install XPDF headers for software that still depends on them.
> +	  Normally, this option should not be needed.
> +
> +config POPPLER_BUILD_DEBUG
> +	bool
> +	prompt "enable poppler debug build"
> +	help
> +	  Build with debug information and without optimization. You probably
> +	  don't want this in a production system.
> +
> +config POPPLER_WITH_DATA
> +	bool
> +	prompt "install poppler-data"
> +	help
> +	  poppler-data contains the encoding files which enable poppler to
> +	  correctly render CJK and Cyrillic.
> +
> +config POPPLER_CMYK
> +	bool
> +	prompt "enable poppler CMYK raster support"
> +
> +config POPPLER_CPP
> +	bool
> +	prompt "enable poppler cpp wrapper"
> +
>  config POPPLER_GLIB
>  	select POPPLER_CAIRO
>  	bool
> @@ -42,14 +74,14 @@ config POPPLER_QT4
>  	help
>  	  build poppler Qt4 wrapper.
>  
> -comment "least one graphics backend should be selected"
> -	depends on !(POPPLER_CAIRO || POPPLER_SPLASH)
> +comment "at least one graphics backend should be selected"
> +	depends on !(POPPLER_CAIRO || POPPLER_SPLASH || POPPLER_QT4)
>  
>  config POPPLER_CAIRO
>  	bool
>  	prompt "enable poppler cairo graphics backend"
>  	help
> -	  built cairo graphics backend
> +	  build cairo graphics backend
>  
>  config POPPLER_SPLASH
>  	bool
> @@ -57,17 +89,31 @@ config POPPLER_SPLASH
>  	help
>  	  build splash graphics backend
>  
> +config POPPLER_SPLASH_FP
> +	bool
> +	prompt "use floating point arithmetic"
> +	depends on POPPLER_SPLASH
> +	default y if HAS_HARDFLOAT
> +	help
> +	  If enabled, the Splash backend will use floating point operations
> +	  instead of fixed-point arithmetic.
> +
> +config POPPLER_SPLASH_FP_DOUBLE
> +	bool
> +	prompt "use double precision"
> +	depends on POPPLER_SPLASH_FP
> +	help
> +	  Use double precision instead of single precision floating point
> +	  arithmetic in Splash backend
> +
>  config POPPLER_PNG
>  	bool
> -	# fails to build with the current libpng
> -	depends on BROKEN
>  	prompt "enable poppler png support"
>  	help
>  	  compiles poppler with png support.
>  
>  config POPPLER_JPEG
>  	bool
> -	depends on BROKEN
>  	prompt "enable poppler jpeg support"
>  	help
>  	  compiles poppler with jpeg support.
> @@ -86,8 +132,10 @@ config POPPLER_CURL
>  
>  config POPPLER_CMS
>  	bool
> -	prompt "enable poppler cms support"
> +	prompt "enable poppler color management support"
>  	help
> -	  compiles poppler with color management system support.
> +	  compiles poppler with color management support.
>  
>  endif
> +
> +# vim: ft=kconfig ts=8 noet tw=80
> diff --git a/rules/poppler.make b/rules/poppler.make
> index 7ac676bf1..5e580f9d1 100644
> --- a/rules/poppler.make
> +++ b/rules/poppler.make
> @@ -2,13 +2,19 @@
>  #
>  # Copyright (C) 2007 by Luotao Fu <l.fu@pengutronix.de>
>  #               2009 by Robert Schwebel
> +#               2017 by Roland Hieber <r.hieber@pengutronix.de>
>  #
>  # See CREDITS for details about who has contributed to this project.
>  #
>  # For further information about the PTXdist project and license conditions
>  # see the README file.
>  #
> -
> +# TODOs for improvement:
> +# - package libnss for signature support in PDFs
> +# - package libtiff for additional TIFF support
> +# - enable and test the Qt5 backend
> +# - package libopenjpeg and build with --enable-libopenjpeg
> +# - update lcms to lcms2 and use --enable-cms=lcms2
>  #
>  # We provide this package
>  #
> @@ -17,10 +23,10 @@ PACKAGES-$(PTXCONF_POPPLER) += poppler
>  #
>  # Paths and names
>  #
> -POPPLER_VERSION	:= 0.18.0
> -POPPLER_MD5	:= 4cd3bf2a0a13fa8eaf00d31368915f77
> +POPPLER_VERSION	:= 0.57.0
> +POPPLER_MD5	:= bc5a191741604552c90d484103229374
>  POPPLER		:= poppler-$(POPPLER_VERSION)
> -POPPLER_SUFFIX	:= tar.gz
> +POPPLER_SUFFIX	:= tar.xz
>  POPPLER_URL	:= http://poppler.freedesktop.org/$(POPPLER).$(POPPLER_SUFFIX)
>  POPPLER_SOURCE	:= $(SRCDIR)/$(POPPLER).$(POPPLER_SUFFIX)
>  POPPLER_DIR	:= $(BUILDDIR)/$(POPPLER)
> @@ -35,17 +41,43 @@ POPPLER_ENV 	:= $(CROSS_ENV)
>  #
>  # autoconf
>  #
> -POPPLER_AUTOCONF := \
> +POPPLER_CONF_TOOL := autoconf
> +POPPLER_CONF_OPT := \
>  	$(CROSS_AUTOCONF_USR) \
> -	$(GLOBAL_LARGE_FILE_OPTION) \
> -	--disable-xpdf-headers \
> -	--$(call ptx/disen, PTXCONF_HAS_HARDFLOAT)-single-precision \
> -	--disable-fixedpoint \
> -	--disable-libopenjpeg \
> +	--enable-option-checking \
> +	--disable-silent-rules \
> +	--disable-dependency-tracking \
> +	--enable-shared \
> +	--enable-fast-install \
> +	--enable-libtool-lock \
> +	--$(call ptx/endis, PTXCONF_POPPLER_XPDF)-xpdf-headers \
> +	--enable-build-type=$(call ptx/ifdef,PTXCONF_POPPLER_BUILD_DEBUG,debug,release)
> +ifdef PTXCONF_POPPLER_SPLASH_FP
> +ifdef PTXCONF_POPPLER_SPLASH_FP_DOUBLE
> +POPPLER_CONF_OPT += \
> +	--disable-single-precision \
> +	--disable-fixedpoint
> +else # PTXCONF_POPPLER_SPLASH_FP && !PTXCONF_POPPLER_SPLASH_FP_DOUBLE
> +POPPLER_CONF_OPT += \
> +	--enable-single-precision \
> +	--disable-fixedpoint
> +endif
> +else # !PTXCONF_POPPLER_SPLASH_FP
> +POPPLER_CONF_OPT += \
> +	--disable-single-precision \
> +	--enable-fixedpoint
> +endif

Can't you use ptx/disen here? The single-precision option should be ignored
for fixedpoint, right?

> +POPPLER_CONF_OPT += \
> +	--$(call ptx/endis, PTXCONF_POPPLER_CMYK)-cmyk \
> +	--disable-relocatable \
> +	--enable-libopenjpeg=none \
> +	--disable-libnss \
>  	--disable-libtiff \
> +	$(GLOBAL_LARGE_FILE_OPTION) \
>  	--$(call ptx/endis, PTXCONF_POPPLER_ZLIB)-zlib \
> +	--disable-zlib-uncompress \
>  	--$(call ptx/endis, PTXCONF_POPPLER_CURL)-libcurl \
> -	--$(call ptx/endis, PTXCONF_POPPLER_JPEG)-libjpeg \
> +	--enable-dctdecoder=$(call ptx/ifdef,PTXCONF_POPPLER_JPEG,libjpeg,none) \
>  	--$(call ptx/endis, PTXCONF_POPPLER_PNG)-libpng \
>  	--$(call ptx/endis, PTXCONF_POPPLER_SPLASH)-splash-output \
>  	--$(call ptx/endis, PTXCONF_POPPLER_CAIRO)-cairo-output \
> @@ -55,14 +87,16 @@ POPPLER_AUTOCONF := \
>  	--disable-gtk-doc-html \
>  	--disable-gtk-doc-pdf \
>  	--$(call ptx/endis, PTXCONF_POPPLER_QT4)-poppler-qt4 \
> -	--disable-poppler-cpp \
> +	--disable-poppler-qt5 \
> +	--$(call ptx/endis, PTXCONF_POPPLER_CPP)-poppler-cpp \
>  	--disable-gtk-test \
>  	--$(call ptx/endis, PTXCONF_POPPLER_BIN)-utils \
>  	--disable-compile-warnings \
> -	--$(call ptx/endis, PTXCONF_POPPLER_CMS)-cms \
> +	--enable-cms=$(call ptx/ifdef,PTXCONF_POPPLER_CMS,lcms1,no) \
>  	--without-x \
>  	--with-font-configuration=fontconfig \
> -	--without-libiconv-prefix
> +	--without-libiconv-prefix \
> +	--with-testdatadir=
>  
>  # ----------------------------------------------------------------------------
>  # Target-Install
> @@ -85,6 +119,9 @@ ifdef PTXCONF_POPPLER_BIN
>  		$(call install_copy, poppler, 0, 0, 0755, -, /usr/bin/$$i); \
>  	done
>  endif
> +ifdef PTXCONF_POPPLER_CPP
> +	@$(call install_lib, poppler, 0, 0, 0644, libpoppler-cpp)
> +endif
>  ifdef PTXCONF_POPPLER_GLIB
>  	@$(call install_lib, poppler, 0, 0, 0644, libpoppler-glib)
>  endif
> @@ -95,4 +132,4 @@ endif
>  
>  	@$(call touch)
>  
> -# vim: syntax=make
> +# vim: ft=make ts=8 tw=80

I don't mind new files with this but don't change it.

Michael

> -- 
> 2.11.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2017-08-28 10:18 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-23 22:39 [ptxdist] [PATCH 0/7] package (some of) the CUPS ecosystem Roland Hieber
2017-08-23 22:39 ` [ptxdist] [PATCH 1/7] libpaper: new package: system-wide papersize configuration Roland Hieber
2017-08-24  7:32   ` Juergen Borleis
2017-08-28  8:20     ` Roland Hieber
2017-08-28  9:47   ` Michael Olbrich
2017-08-23 22:39 ` [ptxdist] [PATCH 2/7] qpdf: new package: PDF inspection library and tools Roland Hieber
2017-08-28  9:52   ` Michael Olbrich
2017-09-11 10:11   ` Juergen Borleis
2017-09-22 10:00     ` Roland Hieber
2017-08-23 22:39 ` [ptxdist] [PATCH 3/7] poppler-data: new package: optional encoding data for poppler Roland Hieber
2017-08-28  9:54   ` Michael Olbrich
2017-08-23 22:39 ` [ptxdist] [PATCH 4/7] poppler: version bump 0.18.0 -> 0.57.0 Roland Hieber
2017-08-28 10:18   ` Michael Olbrich [this message]
2017-08-28 14:11     ` Roland Hieber
2017-08-29  8:43       ` Michael Olbrich
2017-08-23 22:39 ` [ptxdist] [PATCH 5/7] cups: new package: Common Unix Printing System Roland Hieber
2017-08-28 12:44   ` Juergen Borleis
2017-08-28 12:51   ` Michael Olbrich
2017-08-28 14:03     ` Roland Hieber
2017-08-29  8:40       ` Michael Olbrich
2017-09-27  8:16     ` Roland Hieber
2017-08-30  8:42   ` Juergen Borleis
2017-08-23 22:39 ` [ptxdist] [PATCH 6/7] host-cups: new package: CUPS PPD compiler Roland Hieber
2017-08-28 12:57   ` Michael Olbrich
2017-09-22 12:06   ` Juergen Borleis
2017-09-22 14:04     ` Michael Olbrich
2017-09-22 14:37       ` Roland Hieber
2017-08-23 22:39 ` [ptxdist] [PATCH 7/7] cups-filters: new package: additional filters and backends for CUPS Roland Hieber
2017-08-28 13:03   ` Michael Olbrich
2017-08-28 13:56     ` Roland Hieber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170828101843.5dbdqojjfly6dz74@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox