All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0
@ 2018-10-05 13:31 Olivier Schonken
  2018-10-05 13:31 ` [Buildroot] [PATCH 2/2] package/poppler: Remove patch which is not needed for poppler 0.69.0 Olivier Schonken
  2019-06-01 21:06 ` [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0 Thomas Petazzoni
  0 siblings, 2 replies; 3+ messages in thread
From: Olivier Schonken @ 2018-10-05 13:31 UTC (permalink / raw)
  To: buildroot

For the version bump, the makefile had to be rewritten for CMake, as
the project moved from autotools to CMake.

Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>
---
 package/poppler/Config.in    |  38 +++++++++---
 package/poppler/poppler.hash |   2 +-
 package/poppler/poppler.mk   | 114 ++++++++++++-----------------------
 3 files changed, 71 insertions(+), 83 deletions(-)

diff --git a/package/poppler/Config.in b/package/poppler/Config.in
index 9b03df8d27..bc69e361de 100644
--- a/package/poppler/Config.in
+++ b/package/poppler/Config.in
@@ -2,7 +2,11 @@ config BR2_PACKAGE_POPPLER
 	bool "poppler"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
 	select BR2_PACKAGE_FONTCONFIG
+	select BR2_PACKAGE_OPENJPEG
+	select BR2_PACKAGE_LCMS2
+	select BR2_PACKAGE_JPEG
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
 	help
@@ -13,14 +17,6 @@ config BR2_PACKAGE_POPPLER
 
 if BR2_PACKAGE_POPPLER
 
-config BR2_PACKAGE_POPPLER_QT
-	bool "Qt support"
-	depends on BR2_PACKAGE_QT
-	select BR2_PACKAGE_QT_GUI_MODULE
-	select BR2_PACKAGE_QT_XML
-	help
-	  Build Qt support into the Poppler library
-
 config BR2_PACKAGE_POPPLER_QT5
 	bool "Qt5 support"
 	depends on BR2_PACKAGE_QT5
@@ -30,6 +26,32 @@ config BR2_PACKAGE_POPPLER_QT5
 	help
 	  Build Qt support into the Poppler library
 
+config BR2_PACKAGE_POPPLER_FIXED_POINT
+	bool "use fixed-point" if !BR2_SOFT_FLOAT
+	default y if BR2_SOFT_FLOAT
+	help
+	  Compile without floating point operations (for machines
+	  without a fast enough FPU).
+
+config BR2_PACKAGE_POPPLER_LIBCURL
+	bool "libcurl support"
+	depends on BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_QT5BASE_GUI
+	help
+	  Build poppler with libcurl based HTTP support.
+
+config BR2_PACKAGE_POPPLER_ZLIB
+	bool "zlib support"
+	depends on BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_ZLIB
+	help
+	  Build poppler with with zlib.
+
+config BR2_PACKAGE_POPPLER_UTILS
+	bool "command line utils"
+	help
+	  Compile poppler command line utils.
+
 endif
 
 comment "poppler needs a toolchain w/ C++, threads"
diff --git a/package/poppler/poppler.hash b/package/poppler/poppler.hash
index 7aa14c681c..ca00e12217 100644
--- a/package/poppler/poppler.hash
+++ b/package/poppler/poppler.hash
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 a3d626b24cd14efa9864e12584b22c9c32f51c46417d7c10ca17651f297c9641  poppler-0.59.0.tar.xz
+sha256 637ff943f805f304ff1da77ba2e7f1cbd675f474941fd8ae1e0fc01a5b45a3f9  poppler-0.69.0.tar.xz
diff --git a/package/poppler/poppler.mk b/package/poppler/poppler.mk
index bad61a6613..0e065274b9 100644
--- a/package/poppler/poppler.mk
+++ b/package/poppler/poppler.mk
@@ -4,109 +4,75 @@
 #
 ################################################################################
 
-POPPLER_VERSION = 0.59.0
+POPPLER_VERSION = 0.69.0
 POPPLER_SOURCE = poppler-$(POPPLER_VERSION).tar.xz
 POPPLER_SITE = http://poppler.freedesktop.org
-POPPLER_DEPENDENCIES = fontconfig host-pkgconf
-POPPLER_LICENSE = GPL-2.0+
-POPPLER_LICENSE_FILES = COPYING
+POPPLER_DEPENDENCIES = fontconfig host-pkgconf openjpeg lcms2 libjpeg
+POPPLER_LICENSE = GPL-2.0+ GPL-3.0+
+POPPLER_LICENSE_FILES = COPYING COPYING3
 POPPLER_INSTALL_STAGING = YES
-POPPLER_CONF_OPTS = --with-font-configuration=fontconfig \
-	--enable-xpdf-headers
 
-ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-POPPLER_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -latomic"
-endif
-
-ifeq ($(BR2_PACKAGE_CAIRO),y)
-POPPLER_CONF_OPTS += --enable-cairo-output
-POPPLER_DEPENDENCIES += cairo
-else
-POPPLER_CONF_OPTS += --disable-cairo-output
-endif
+POPPLER_CONF_OPTS = \
+	-DENABLE_XPDF_HEADERS=ON \
+	-DBUILD_GTK_TESTS=OFF \
+	-DBUILD_QT5_TESTS=OFF \
+	-DBUILD_CPP_TESTS=OFF \
+	-DENABLE_GOBJECT_INTROSPECTION=OFF \
+	-DENABLE_GTK_DOC=OFF
 
-ifeq ($(BR2_PACKAGE_LCMS2),y)
-POPPLER_CONF_OPTS += --enable-cms=lcms2
-POPPLER_DEPENDENCIES += lcms2
+ifeq ($(BR2_PACKAGE_POPPLER_LIBCURL),y)
+POPPLER_DEPENDENCIES += libcurl
+POPPLER_CONF_OPTS += -DENABLE_LIBCURL=ON
 else
-POPPLER_CONF_OPTS += --enable-cms=none
+POPPLER_CONF_OPTS += -DENABLE_LIBCURL=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_CAIRO)$(BR2_PACKAGE_LIBGLIB2),yy)
-POPPLER_CONF_OPTS += --enable-poppler-glib
-POPPLER_DEPENDENCIES += libglib2
+ifeq ($(BR2_PACKAGE_POPPLER_QT5),y)
+POPPLER_DEPENDENCIES += qt5base
+POPPLER_CONF_OPTS += -DENABLE_QT5=ON
 else
-POPPLER_CONF_OPTS += --disable-poppler-glib
+POPPLER_CONF_OPTS += -DENABLE_QT5=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_TIFF),y)
-POPPLER_CONF_OPTS += --enable-libtiff
-# Help poppler to find libtiff in static linking scenarios
-POPPLER_CONF_ENV += \
-	LIBTIFF_LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtiff-4`"
-POPPLER_DEPENDENCIES += tiff
+ifeq ($(BR2_PACKAGE_POPPLER_UTILS),y)
+POPPLER_CONF_OPTS += -DENABLE_UTILS=ON
 else
-POPPLER_CONF_OPTS += --disable-libtiff
+POPPLER_CONF_OPTS += -DENABLE_UTILS=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_JPEG),y)
-POPPLER_CONF_OPTS += --enable-dctdecoder=libjpeg
-POPPLER_DEPENDENCIES += jpeg
+ifeq ($(BR2_PACKAGE_POPPLER_ZLIB),y)
+POPPLER_DEPENDENCIES += zlib
+POPPLER_CONF_OPTS += -DENABLE_ZLIB=ON
 else
-POPPLER_CONF_OPTS += --enable-dctdecoder=none
+POPPLER_CONF_OPTS += -DENABLE_ZLIB=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_LIBPNG),y)
-POPPLER_CONF_OPTS += --enable-libpng
 POPPLER_DEPENDENCIES += libpng
-else
-POPPLER_CONF_OPTS += --disable-libpng
 endif
 
-ifeq ($(BR2_PACKAGE_ZLIB),y)
-POPPLER_CONF_OPTS += --enable-zlib
-POPPLER_DEPENDENCIES += zlib
-else
-POPPLER_CONF_OPTS += --disable-zlib
-endif
-
-ifeq ($(BR2_PACKAGE_LIBCURL),y)
-POPPLER_CONF_OPTS += --enable-libcurl
-POPPLER_DEPENDENCIES += libcurl
-else
-POPPLER_CONF_OPTS += --disable-libcurl
+ifeq ($(BR2_PACKAGE_CAIRO),y)
+POPPLER_DEPENDENCIES += cairo
 endif
 
-ifeq ($(BR2_PACKAGE_XORG7),y)
-POPPLER_CONF_OPTS += --with-x
-POPPLER_DEPENDENCIES += xlib_libX11 xlib_libXext
-else
-POPPLER_CONF_OPTS += --without-x
+ifeq ($(BR2_PACKAGE_TIFF),y)
+POPPLER_DEPENDENCIES += tiff
 endif
 
-ifeq ($(BR2_PACKAGE_POPPLER_QT),y)
-POPPLER_DEPENDENCIES += qt
-POPPLER_CONF_OPTS += --enable-poppler-qt4
-else
-POPPLER_CONF_OPTS += --disable-poppler-qt4
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+POPPLER_DEPENDENCIES += libglib2
 endif
 
-ifeq ($(BR2_PACKAGE_POPPLER_QT5),y)
-POPPLER_DEPENDENCIES += qt5base
-POPPLER_CONF_OPTS += --enable-poppler-qt5
-# since Qt5.7.x c++11 is needed (LTS Qt5.6.x is the last one without this requirement)
-ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
-POPPLER_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
-endif
-else
-POPPLER_CONF_OPTS += --disable-poppler-qt5
+ifeq ($(BR2_PACKAGE_LIBNSS),y)
+POPPLER_DEPENDENCIES += libnss
 endif
 
-ifeq ($(BR2_PACKAGE_OPENJPEG),y)
-POPPLER_DEPENDENCIES += openjpeg
-POPPLER_CONF_OPTS += --enable-libopenjpeg=openjpeg2
+ifeq ($(BR2_PACKAGE_POPPLER_FIXED_POINT),y)
+POPPLER_CONF_OPTS += -USE_FIXEDPOINT=ON
+POPPLER_CONF_OPTS += -DUSE_FLOAT=OFF
 else
-POPPLER_CONF_OPTS += --enable-libopenjpeg=none
+POPPLER_CONF_OPTS += -USE_FIXEDPOINT=OFF
+POPPLER_CONF_OPTS += -DUSE_FLOAT=ON
 endif
 
-$(eval $(autotools-package))
+$(eval $(cmake-package))
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 2/2] package/poppler: Remove patch which is not needed for poppler 0.69.0
  2018-10-05 13:31 [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0 Olivier Schonken
@ 2018-10-05 13:31 ` Olivier Schonken
  2019-06-01 21:06 ` [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0 Thomas Petazzoni
  1 sibling, 0 replies; 3+ messages in thread
From: Olivier Schonken @ 2018-10-05 13:31 UTC (permalink / raw)
  To: buildroot

The patch has been applied to the upstream project,
https://github.com/freedesktop/poppler/commit/d3f12611b30e6421f05603a9838ed9131b1aa61e
and is thus not needed anymore.

Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>
---
 ...c-include-ctype.h-to-fix-build-error.patch | 37 -------------------
 1 file changed, 37 deletions(-)
 delete mode 100644 package/poppler/0001-Form.cc-include-ctype.h-to-fix-build-error.patch

diff --git a/package/poppler/0001-Form.cc-include-ctype.h-to-fix-build-error.patch b/package/poppler/0001-Form.cc-include-ctype.h-to-fix-build-error.patch
deleted file mode 100644
index 8d210dab99..0000000000
--- a/package/poppler/0001-Form.cc-include-ctype.h-to-fix-build-error.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f40143f7acca81b7d39d774ed4c349aec8d9310b Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd.kuhls@t-online.de>
-Date: Sat, 23 Sep 2017 11:37:23 +0200
-Subject: [PATCH] Form.cc: include ctype.h to fix build error
-
-Fixes
-Form.cc:546:28: error: 'isdigit' was not declared in this scope
-Form.cc:548:34: error: 'isxdigit' was not declared in this scope
-Form.cc:575:40: error: 'isxdigit' was not declared in this scope
-
-detected by buildroot autobuilders:
-http://autobuild.buildroot.net/results/a6a/a6a336f8b6a0136b204a34091e33dc4598178125/
-when cross-compiling with
-gcc version 4.7.3 (crosstool-NG hg+-c65fcf8a34b7)
-
-Patch sent upstream: https://bugs.freedesktop.org/show_bug.cgi?id=102951
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- poppler/Form.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/poppler/Form.cc b/poppler/Form.cc
-index 83bceb20..e7efae95 100644
---- a/poppler/Form.cc
-+++ b/poppler/Form.cc
-@@ -32,6 +32,7 @@
- #include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <ctype.h>
- #include "goo/gmem.h"
- #include "goo/GooString.h"
- #include "Error.h"
--- 
-2.11.0
-
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0
  2018-10-05 13:31 [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0 Olivier Schonken
  2018-10-05 13:31 ` [Buildroot] [PATCH 2/2] package/poppler: Remove patch which is not needed for poppler 0.69.0 Olivier Schonken
@ 2019-06-01 21:06 ` Thomas Petazzoni
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2019-06-01 21:06 UTC (permalink / raw)
  To: buildroot

Hello Olivier,

On Fri,  5 Oct 2018 15:31:41 +0200
Olivier Schonken <olivier.schonken@gmail.com> wrote:

> For the version bump, the makefile had to be rewritten for CMake, as
> the project moved from autotools to CMake.
> 
> Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>

So I finally look into this patch, and merged it, but after doing a
*lot* of changes.

First of all your PATCH 1/2 and 2/2 should have been squashed into a
single patch, otherwise the series is not bisectable: with just PATCH
1/2 applied, poppler doesn't build.

Also, since poppler 0.69 was old, I bumped all the way to 0.77.

> diff --git a/package/poppler/Config.in b/package/poppler/Config.in
> index 9b03df8d27..bc69e361de 100644
> --- a/package/poppler/Config.in
> +++ b/package/poppler/Config.in
> @@ -2,7 +2,11 @@ config BR2_PACKAGE_POPPLER
>  	bool "poppler"
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14

I had to change this to GCC_AT_LEAST_5 for poppler 0.77. Also, you had
forgotten to update the Config.in comment about this gcc version
dependency.

>  	select BR2_PACKAGE_FONTCONFIG
> +	select BR2_PACKAGE_OPENJPEG
> +	select BR2_PACKAGE_LCMS2
> +	select BR2_PACKAGE_JPEG

None of these dependencies are mandatory, they can be disabled just
like they could with the old version of poppler.

>  	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
>  	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7

These dependencies were apparently no longer needed.

>  	help
> @@ -13,14 +17,6 @@ config BR2_PACKAGE_POPPLER
>  
>  if BR2_PACKAGE_POPPLER
>  
> -config BR2_PACKAGE_POPPLER_QT
> -	bool "Qt support"
> -	depends on BR2_PACKAGE_QT
> -	select BR2_PACKAGE_QT_GUI_MODULE
> -	select BR2_PACKAGE_QT_XML
> -	help
> -	  Build Qt support into the Poppler library

This option had been removed in the mean time.

> -
>  config BR2_PACKAGE_POPPLER_QT5
>  	bool "Qt5 support"
>  	depends on BR2_PACKAGE_QT5
> @@ -30,6 +26,32 @@ config BR2_PACKAGE_POPPLER_QT5
>  	help
>  	  Build Qt support into the Poppler library
>  
> +config BR2_PACKAGE_POPPLER_FIXED_POINT
> +	bool "use fixed-point" if !BR2_SOFT_FLOAT
> +	default y if BR2_SOFT_FLOAT
> +	help
> +	  Compile without floating point operations (for machines
> +	  without a fast enough FPU).

I dropped this option, and directly used BR2_SOFT_FLOAT in poppler.mk.

> +
> +config BR2_PACKAGE_POPPLER_LIBCURL
> +	bool "libcurl support"
> +	depends on BR2_PACKAGE_LIBCURL
> +	select BR2_PACKAGE_QT5BASE_GUI
> +	help
> +	  Build poppler with libcurl based HTTP support.

I dropped this option, and directly used BR2_PACKAGE_LIBCURL in
poppler.mk. I'm not sure why you were selecting QT5BASE_GUI here.

> +
> +config BR2_PACKAGE_POPPLER_ZLIB
> +	bool "zlib support"
> +	depends on BR2_PACKAGE_ZLIB
> +	select BR2_PACKAGE_ZLIB
> +	help
> +	  Build poppler with with zlib.

I dropped this option, and directly used BR2_PACKAGE_ZLIB in poppler.mk.

>  comment "poppler needs a toolchain w/ C++, threads"

This is where I have added the comment about the gcc version dependency.

> -POPPLER_VERSION = 0.59.0
> +POPPLER_VERSION = 0.69.0

So, I bumped to 0.77.0

>  POPPLER_SOURCE = poppler-$(POPPLER_VERSION).tar.xz
>  POPPLER_SITE = http://poppler.freedesktop.org
> -POPPLER_DEPENDENCIES = fontconfig host-pkgconf
> -POPPLER_LICENSE = GPL-2.0+
> -POPPLER_LICENSE_FILES = COPYING
> +POPPLER_DEPENDENCIES = fontconfig host-pkgconf openjpeg lcms2 libjpeg

I didn't add openjpeg, lcms2 and libjpeg here, because they are still
optional dependencies. BTW, libjpeg was wrong, it should have been just
"jpeg".

> +POPPLER_LICENSE = GPL-2.0+ GPL-3.0+
> +POPPLER_LICENSE_FILES = COPYING COPYING3

To me, the licensing terms are unclear. All files have a "GPL version 2
or later", but the documentation says the code is forked from Xpdf,
which is licensed under GPLv2 or GPLv3 (but not "or any later version",
and they really insist on this).

I should probably send a separate e-mail to Yann/Arnout on this to get
their opinion.

> -ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -POPPLER_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -latomic"
> -endif

Something like this was still needed, but of course changed for the
CMake build system.

And overall, for the rest of the .mk file, I just adapted to the
changes I described above: lcms2, openjpeg and jpeg are optional, and
sub-options in Config.in were not added.

Since poppler 0.77.0 changed some APIs, I had to bump cups-filters to
1.23.0 as a preparation patch.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-06-01 21:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-05 13:31 [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0 Olivier Schonken
2018-10-05 13:31 ` [Buildroot] [PATCH 2/2] package/poppler: Remove patch which is not needed for poppler 0.69.0 Olivier Schonken
2019-06-01 21:06 ` [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0 Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.