Buildroot Archive on 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox