Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/2] package/poppler: bump version to 0.69.0
Date: Sat, 1 Jun 2019 23:06:20 +0200	[thread overview]
Message-ID: <20190601230620.158deb22@windsurf> (raw)
In-Reply-To: <20181005133142.1205-1-olivier.schonken@gmail.com>

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

      parent reply	other threads:[~2019-06-01 21:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]

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=20190601230620.158deb22@windsurf \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@busybox.net \
    /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