Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/libgdal: new package
Date: Sun, 2 May 2021 16:38:29 +0200	[thread overview]
Message-ID: <20210502163829.69f12088@gmx.net> (raw)
In-Reply-To: <20210502130619.683435-1-dmrauh@posteo.de>

Hello Dominik,

thanks for patch contribution, a quick/first review below:

On Sun,  2 May 2021 13:06:19 +0000, Dominik Michael Rauh <dmrauh@posteo.de> wrote:

> GDAL is a translator library for raster and vector geospatial data
> formats. As a library, it presents a single raster abstract data model
> and single vector abstract data model to the calling application for all
> supported formats. It also comes with a variety of useful command line
> utilities for data translation and processing.
>
> https://gdal.org/
>
> Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>
> ---
>  package/Config.in                             |  1 +
>  ...1-port-cpl_recode_iconv.cpp-use-cast.patch | 38 +++++++++++++++++++
>  package/libgdal/Config.in                     | 22 +++++++++++
>  package/libgdal/libgdal.hash                  |  6 +++
>  package/libgdal/libgdal.mk                    | 26 +++++++++++++
>  5 files changed, 93 insertions(+)
>  create mode 100644 package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
>  create mode 100644 package/libgdal/Config.in
>  create mode 100644 package/libgdal/libgdal.hash
>  create mode 100644 package/libgdal/libgdal.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 6181aaac2c..56c55dffc5 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1915,6 +1915,7 @@ menu "Other"
>  	source "package/libevdev/Config.in"
>  	source "package/libevent/Config.in"
>  	source "package/libffi/Config.in"
> +	source "package/libgdal/Config.in"
>  	source "package/libgee/Config.in"
>  	source "package/libgeos/Config.in"
>  	source "package/libglib2/Config.in"
> diff --git a/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch b/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
> new file mode 100644
> index 0000000000..fd168c769e
> --- /dev/null
> +++ b/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
> @@ -0,0 +1,38 @@
> +From 8f59911ced01da6dba7784098e97eefeef96d3a5 Mon Sep 17 00:00:00 2001
> +From: Dominik Michael Rauh <dmrauh@posteo.de>
> +Date: Sat, 1 May 2021 20:11:30 +0200
> +Subject: [PATCH] port/cpl_recode_iconv.cpp: use cast
> +
> +Fixes error: invalid cast from type 'int' to type 'iconv_t' {aka 'long
> +int'}.
> +
> +Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>
> +---
> + port/cpl_recode_iconv.cpp | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/port/cpl_recode_iconv.cpp b/port/cpl_recode_iconv.cpp
> +index d341bb1..2346012 100644
> +--- a/port/cpl_recode_iconv.cpp
> ++++ b/port/cpl_recode_iconv.cpp
> +@@ -87,7 +87,7 @@ char *CPLRecodeIconv( const char *pszSource,
> +
> +     sConv = iconv_open( pszDstEncoding, pszSrcEncoding );
> +
> +-    if( sConv == reinterpret_cast<iconv_t>(-1) )
> ++    if( sConv == (iconv_t)(-1) )
> +     {
> +         CPLError( CE_Warning, CPLE_AppDefined,
> +                   "Recode from %s to %s failed with the error: \"%s\".",
> +@@ -234,7 +234,7 @@ char *CPLRecodeFromWCharIconv( const wchar_t *pwszSource,
> +
> +     sConv = iconv_open( pszDstEncoding, pszSrcEncoding );
> +
> +-    if( sConv == reinterpret_cast<iconv_t>(-1) )
> ++    if( sConv == (iconv_t)(-1) )
> +     {
> +         CPLFree( pszIconvSrcBuf );
> +         CPLError( CE_Warning, CPLE_AppDefined,
> +--
> +2.31.1
> +
> diff --git a/package/libgdal/Config.in b/package/libgdal/Config.in
> new file mode 100644
> index 0000000000..1d64bfb67f
> --- /dev/null
> +++ b/package/libgdal/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_LIBGDAL
> +	bool "libgdal"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	# configure can't find proj, when linking statically
> +	depends on !BR2_STATIC_LIBS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
> +	select BR2_PACKAGE_PROJ

The full proj dependencies are:

config BR2_PACKAGE_PROJ
        bool "proj"
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_USE_WCHAR
        select BR2_PACKAGE_SQLITE

So BR2_TOOLCHAIN_HAS_THREADS and BR2_USE_WCHAR are missing here (and propagated
dependencies should be marked by a comment like the following '... # proj')...

> +	help
> +	  GDAL is a translator library for raster and vector geospatial
> +	  data formats. As a library, it presents a single raster
> +	  abstract data model and single vector abstract data model to
> +	  the calling application for all supported formats. It also
> +	  comes with a variety of useful command line utilities for data
> +	  translation and processing.
> +
> +	  https://gdal.org/
> +
> +comment "libgdal needs a toolchain w/ C++, dynamic library, gcc >= 4.7, proj"
> +	depends on !BR2_INSTALL_LIBSTDCPP || \
> +		!BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
> +		!BR2_PACKAGE_PROJ

No need for proj/BR2_PACKAGE_PROJ here (as your are already selecting it above)...

> diff --git a/package/libgdal/libgdal.hash b/package/libgdal/libgdal.hash
> new file mode 100644
> index 0000000000..48aad360d7
> --- /dev/null
> +++ b/package/libgdal/libgdal.hash
> @@ -0,0 +1,6 @@
> +# md5 from: https://download.osgeo.org/gdal/3.2.2/gdal-3.2.2.tar.xz.md5, sha256 locally computed:
> +md5  c656be582f7beb528c66486cd1fca7a2  gdal-3.2.2.tar.xz
> +sha256  a7e1e414e5c405af48982bf4724a3da64a05770254f2ce8affb5f58a7604ca57  gdal-3.2.2.tar.xz
> +
> +# Hash for license file:
> +sha256 b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c  LICENSE.TXT
> diff --git a/package/libgdal/libgdal.mk b/package/libgdal/libgdal.mk
> new file mode 100644
> index 0000000000..31bf73ec84
> --- /dev/null
> +++ b/package/libgdal/libgdal.mk
> @@ -0,0 +1,26 @@
> +################################################################################
> +#
> +# libgdal
> +#
> +################################################################################
> +
> +LIBGDAL_VERSION = 3.2.2
> +LIBGDAL_SITE = https://download.osgeo.org/gdal/$(LIBGDAL_VERSION)
> +LIBGDAL_SOURCE = gdal-$(LIBGDAL_VERSION).tar.xz
> +LIBGDAL_LICENSE = MIT
> +LIBGDAL_LICENSE_FILES = LICENSE.TXT

There are (many) more licenses referenced from LICENSE.TXT...

> +LIBGDAL_INSTALL_STAGING = YES
> +LIBGDAL_CONFIG_SCRIPTS = gdal-config
> +LIBGDAL_DEPENDENCIES = host-pkgconf proj
> +
> +ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
> +LIBGDAL_DEPENDENCIES += postgresql
> +LIBGDAL_CONF_OPTS += --with-pg
> +endif

Else case with explicit disable preferred here (in case the
upstream default changes)...

> +
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +LIBGDAL_DEPENDENCIES += libxml2
> +LIBGDAL_CONF_OPTS += --with-xml2
> +endif

Else case with explicit disable preferred here (in case the
upstream default changes)...

Quick look at ./configure --help prevails a lot more configure options
and/or (optional?) dependencies...

Regards,
Peter

> +
> +$(eval $(autotools-package))

  reply	other threads:[~2021-05-02 14:38 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-02 13:06 [Buildroot] [PATCH 1/1] package/libgdal: new package Dominik Michael Rauh
2021-05-02 14:38 ` Peter Seiderer [this message]
2021-05-02 18:03   ` Peter Seiderer
2021-05-04 16:57 ` [Buildroot] [PATCH v2] " Dominik Michael Rauh
2021-05-28 15:29   ` [Buildroot] [PATCH v3] " Dominik Michael Rauh
2021-07-25 19:37     ` Thomas Petazzoni
2021-08-02  9:24     ` [Buildroot] [PATCH v4] " Dominik Michael Rauh
2021-08-03 20:09       ` Arnout Vandecappelle
2021-08-03 20:19         ` Arnout Vandecappelle
2022-05-07  9:46       ` [Buildroot] [PATCH v5] package/gdal: " Dominik Michael Rauh
2022-07-27 10:00         ` Romain Naour
2022-07-27 13:38         ` Thomas Petazzoni via buildroot
2022-07-27 15:04           ` Dominik Rauh

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=20210502163829.69f12088@gmx.net \
    --to=ps.report@gmx.net \
    --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