All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/libgdal: new package
@ 2021-05-02 13:06 Dominik Michael Rauh
  2021-05-02 14:38 ` Peter Seiderer
  2021-05-04 16:57 ` [Buildroot] [PATCH v2] " Dominik Michael Rauh
  0 siblings, 2 replies; 13+ messages in thread
From: Dominik Michael Rauh @ 2021-05-02 13:06 UTC (permalink / raw)
  To: buildroot

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
+	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
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
+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
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+LIBGDAL_DEPENDENCIES += libxml2
+LIBGDAL_CONF_OPTS += --with-xml2
+endif
+
+$(eval $(autotools-package))
-- 
2.31.1

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

* [Buildroot] [PATCH 1/1] package/libgdal: new package
  2021-05-02 13:06 [Buildroot] [PATCH 1/1] package/libgdal: new package Dominik Michael Rauh
@ 2021-05-02 14:38 ` Peter Seiderer
  2021-05-02 18:03   ` Peter Seiderer
  2021-05-04 16:57 ` [Buildroot] [PATCH v2] " Dominik Michael Rauh
  1 sibling, 1 reply; 13+ messages in thread
From: Peter Seiderer @ 2021-05-02 14:38 UTC (permalink / raw)
  To: buildroot

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))

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

* [Buildroot] [PATCH 1/1] package/libgdal: new package
  2021-05-02 14:38 ` Peter Seiderer
@ 2021-05-02 18:03   ` Peter Seiderer
  0 siblings, 0 replies; 13+ messages in thread
From: Peter Seiderer @ 2021-05-02 18:03 UTC (permalink / raw)
  To: buildroot

On Sun, 2 May 2021 16:38:29 +0200, Peter Seiderer <ps.report@gmx.net> wrote:

> 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...


A test with utils/test-pkg and the following config:

BR2_PACKAGE_PROJ=y
BR2_PACKAGE_LIBGDAL=y

gives:
                             andes-nds32 [ 1/45]: SKIPPED
                             arm-aarch64 [ 2/45]: FAILED
                   bootlin-aarch64-glibc [ 3/45]: FAILED
               bootlin-arcle-hs38-uclibc [ 4/45]: OK
                    bootlin-armv5-uclibc [ 5/45]: OK
                     bootlin-armv7-glibc [ 6/45]: OK
                   bootlin-armv7m-uclibc [ 7/45]: SKIPPED
                      bootlin-armv7-musl [ 8/45]: OK
                bootlin-m68k-5208-uclibc [ 9/45]: SKIPPED
               bootlin-m68k-68040-uclibc [10/45]: FAILED
             bootlin-microblazeel-uclibc [11/45]: OK
                bootlin-mipsel32r6-glibc [12/45]: OK
                   bootlin-mipsel-uclibc [13/45]: OK
                     bootlin-nios2-glibc [14/45]: FAILED

.../bootlin-nios2-glibc/host/opt/ext-toolchain/bin/../lib/gcc/nios2-buildroot-linux-gnu/9.3.0/../../../../nios2-buildroot-linux-gnu/bin/ld: BFD (GNU Binutils) 2.33.1 assertion fail elf32-nios2.c:1887


                 bootlin-openrisc-uclibc [15/45]: FAILED

swq_op_general.cpp:(.text+0x2500): relocation truncated to fit: R_OR1K_GOT16 against symbol `vtable for CPLSafeIntOverflow' defined in .data.rel.ro._ZTV18CPLSafeIntOverflow[_ZTV18CPLSafeIntOverflow] section in ./ogr/.libs/swq_op_general.o

        bootlin-powerpc64le-power8-glibc [16/45]: FAILED

.../bootlin-powerpc64le-power8-glibc/host/opt/ext-toolchain/bin/../lib/gcc/powerpc64le-buildroot-linux-gnu/9.3.0/../../../../powerpc64le-buildroot-linux-gnu/bin/ld: .../bootlin-powerpc64le-power8-glibc/build/libgdal-3.2.2/.libs/libgdal.so: undefined reference to `png_init_filter_functions_vsx'

           bootlin-powerpc-e500mc-uclibc [17/45]: OK
                   bootlin-riscv32-glibc [18/45]: OK
                   bootlin-riscv64-glibc [19/45]: OK
                    bootlin-riscv64-musl [20/45]: OK
                      bootlin-sh4-uclibc [21/45]: OK
                   bootlin-sparc64-glibc [22/45]: OK
                    bootlin-sparc-uclibc [23/45]: OK
                    bootlin-x86-64-glibc [24/45]: OK
                     bootlin-x86-64-musl [25/45]: OK
                   bootlin-x86-64-uclibc [26/45]: OK
                   bootlin-xtensa-uclibc [27/45]: OK
                            br-arm-basic [28/45]: SKIPPED
                    br-arm-full-nothread [29/45]: SKIPPED
                      br-arm-full-static [30/45]: SKIPPED
                   br-i386-pentium4-full [31/45]: OK
                br-i386-pentium-mmx-musl [32/45]: OK
                      br-mips64-n64-full [33/45]: OK
                 br-mips64r6-el-hf-glibc [34/45]: OK
               br-powerpc-603e-basic-cpp [35/45]: SKIPPED
               br-powerpc64-power7-glibc [36/45]: FAILED

.../br-powerpc64-power7-glibc/host/opt/ext-toolchain/bin/../lib/gcc/powerpc64-buildroot-linux-gnu/9.3.0/../../../../powerpc64-buildroot-linux-gnu/bin/ld: .../br-powerpc64-power7-glibc/build/libgdal-3.2.2/.libs/libgdal.so: undefined reference to `png_init_filter_functions_vsx'


                       linaro-aarch64-be [37/45]: FAILED

.../linaro-aarch64-be/build/libgdal-3.2.2/.libs/libgdal.so: undefined reference to `png_init_filter_functions_neon'

                          linaro-aarch64 [38/45]: FAILED

.../linaro-aarch64/build/libgdal-3.2.2/.libs/libgdal.so: undefined reference to `png_init_filter_functions_neon'

                              linaro-arm [39/45]: OK
                     sourcery-arm-armv4t [40/45]: OK
                            sourcery-arm [41/45]: OK
                     sourcery-arm-thumb2 [42/45]: OK
                         sourcery-mips64 [43/45]: OK
                           sourcery-mips [44/45]: OK
                          sourcery-nios2 [45/45]: FAILED

.../sourcery-nios2/host/opt/ext-toolchain/bin/../lib/gcc/nios2-linux-gnu/7.3.1/../../../../nios2-linux-gnu/bin/ld: BFD (Sourcery CodeBench Lite 2018.05-5) 2.28.51 assertion fail /scratch/sandra/nios2-linux-spring-release/obj/binutils-src-2018.05-5-nios2-linux-gnu-i686-pc-linux-gnu/bfd/elf32-nios2.c:1906

Regars,
Peter

>
> Regards,
> Peter
>
> > +
> > +$(eval $(autotools-package))
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v2] package/libgdal: new package
  2021-05-02 13:06 [Buildroot] [PATCH 1/1] package/libgdal: new package Dominik Michael Rauh
  2021-05-02 14:38 ` Peter Seiderer
@ 2021-05-04 16:57 ` Dominik Michael Rauh
  2021-05-28 15:29   ` [Buildroot] [PATCH v3] " Dominik Michael Rauh
  1 sibling, 1 reply; 13+ messages in thread
From: Dominik Michael Rauh @ 2021-05-04 16:57 UTC (permalink / raw)
  To: buildroot

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>
---
Changes v1 -> v2 (after review by Peter Seiderer):
-  Disable NEON and VSX support when using libgdal's libpng
-  Disable compilation for toolchains with binutils bug 21464 or 27597
-  Add the proper "depends" demanded by proj
-  Fix the comment in Config.in
-  Hopefully add the complete LIBGDAL_LICENSE information

 package/Config.in                             |  1 +
 ...1-port-cpl_recode_iconv.cpp-use-cast.patch | 38 +++++++++++++++
 package/libgdal/Config.in                     | 27 +++++++++++
 package/libgdal/libgdal.hash                  |  6 +++
 package/libgdal/libgdal.mk                    | 48 +++++++++++++++++++
 5 files changed, 120 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 7ac10b9d42..0b82b833c6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1914,6 +1914,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..9fa958524f
--- /dev/null
+++ b/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
@@ -0,0 +1,38 @@
+From 0730ebc7a1e22a169bf3a1d873e130e079a68b3d 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..a197d25aff
--- /dev/null
+++ b/package/libgdal/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_LIBGDAL
+	bool "libgdal"
+	depends on BR2_INSTALL_LIBSTDCPP # proj
+	# configure can't find proj, when linking statically
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
+	depends on BR2_TOOLCHAIN_HAS_THREADS # proj
+	depends on BR2_USE_WCHAR # proj
+	select BR2_PACKAGE_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, not binutils bug 21464, 27597, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_USE_WCHAR
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..e3d7b325c1
--- /dev/null
+++ b/package/libgdal/libgdal.mk
@@ -0,0 +1,48 @@
+################################################################################
+#
+# 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 (GDAL/OGR), BSD-3-Clause, BSD-Style, APACHE-2.0
+LIBGDAL_LICENSE_FILES = LICENSE.TXT
+LIBGDAL_INSTALL_STAGING = YES
+LIBGDAL_CONFIG_SCRIPTS = gdal-config
+LIBGDAL_DEPENDENCIES = host-pkgconf proj
+
+# libgdal fails to detect NEON support on aarch64 or ARM platforms
+# resp. VSX support on PowerPC based platforms. While linking an
+# application with libgdal.so, we get an undefined reference to
+# png_init_filter_functions_neon resp. png_init_filter_functions_vsx.
+# Some files are missing in the libpng bundled with libgdal, in
+# particular arm/arm_init.c and powerpc/powerpc_init.c, so disable NEON
+# and VSX support completely when using libgdal's internal libpng.
+
+ifeq ($(BR2_PACKAGE_LIBPNG),y)
+LIBGDAL_DEPENDENCIES += libpng
+LIBGDAL_CONF_OPTS += --with-png=$(STAGING_DIR)/usr
+else
+LIBGDAL_CONF_OPTS += --with-png=internal
+LIBGDAL_CPPFLAGS += -DPNG_ARM_NEON_OPT=0 -DPNG_POWERPC_VSX_OPT=0
+endif
+
+ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
+LIBGDAL_DEPENDENCIES += postgresql
+LIBGDAL_CONF_OPTS += --with-pg=yes
+else
+LIBGDAL_CONF_OPTS += --with-pg=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+LIBGDAL_DEPENDENCIES += libxml2
+LIBGDAL_CONF_OPTS += --with-xml2=yes
+else
+LIBGDAL_CONF_OPTS += --with-xml2=no
+endif
+
+LIBGDAL_CONF_OPTS += CPPFLAGS="$(TARGET_CPPFLAGS) $(LIBGDAL_CPPFLAGS)"
+
+$(eval $(autotools-package))
-- 
2.31.1

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

* [Buildroot] [PATCH v3] package/libgdal: new package
  2021-05-04 16:57 ` [Buildroot] [PATCH v2] " Dominik Michael Rauh
@ 2021-05-28 15:29   ` Dominik Michael Rauh
  2021-07-25 19:37     ` Thomas Petazzoni
  2021-08-02  9:24     ` [Buildroot] [PATCH v4] " Dominik Michael Rauh
  0 siblings, 2 replies; 13+ messages in thread
From: Dominik Michael Rauh @ 2021-05-28 15:29 UTC (permalink / raw)
  To: buildroot

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>
---
Changes v2 -> v3:
-  Bump version from 3.2.2 to 3.3.0

Changes v1 -> v2 (after review by Peter Seiderer):
-  Disable NEON and VSX support when using libgdal's libpng
-  Disable compilation for toolchains with binutils bug 21464 or 27597
-  Add the proper "depends" demanded by proj
-  Fix the comment in Config.in
-  Hopefully add the complete LIBGDAL_LICENSE information

 package/Config.in                             |  1 +
 ...1-port-cpl_recode_iconv.cpp-use-cast.patch | 38 +++++++++++++++
 package/libgdal/Config.in                     | 27 +++++++++++
 package/libgdal/libgdal.hash                  |  6 +++
 package/libgdal/libgdal.mk                    | 48 +++++++++++++++++++
 5 files changed, 120 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 82b28d2835..c2262835cc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1914,6 +1914,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..9fa958524f
--- /dev/null
+++ b/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
@@ -0,0 +1,38 @@
+From 0730ebc7a1e22a169bf3a1d873e130e079a68b3d 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..a197d25aff
--- /dev/null
+++ b/package/libgdal/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_LIBGDAL
+	bool "libgdal"
+	depends on BR2_INSTALL_LIBSTDCPP # proj
+	# configure can't find proj, when linking statically
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
+	depends on BR2_TOOLCHAIN_HAS_THREADS # proj
+	depends on BR2_USE_WCHAR # proj
+	select BR2_PACKAGE_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, not binutils bug 21464, 27597, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_USE_WCHAR
diff --git a/package/libgdal/libgdal.hash b/package/libgdal/libgdal.hash
new file mode 100644
index 0000000000..2dc6dc3766
--- /dev/null
+++ b/package/libgdal/libgdal.hash
@@ -0,0 +1,6 @@
+# md5 from: https://download.osgeo.org/gdal/3.3.0/gdal-3.3.0.tar.xz.md5, sha256 locally computed:
+md5  000db27a7b3e146b9dcb3838aabde2ab  gdal-3.3.0.tar.xz
+sha256  190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7  gdal-3.3.0.tar.xz
+
+# Hash of license file:
+sha256  b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c  LICENSE.TXT
diff --git a/package/libgdal/libgdal.mk b/package/libgdal/libgdal.mk
new file mode 100644
index 0000000000..b86b2154e4
--- /dev/null
+++ b/package/libgdal/libgdal.mk
@@ -0,0 +1,48 @@
+################################################################################
+#
+# libgdal
+#
+################################################################################
+
+LIBGDAL_VERSION = 3.3.0
+LIBGDAL_SITE = https://download.osgeo.org/gdal/$(LIBGDAL_VERSION)
+LIBGDAL_SOURCE = gdal-$(LIBGDAL_VERSION).tar.xz
+LIBGDAL_LICENSE = MIT (GDAL/OGR), BSD-3-Clause, BSD-Style, APACHE-2.0
+LIBGDAL_LICENSE_FILES = LICENSE.TXT
+LIBGDAL_INSTALL_STAGING = YES
+LIBGDAL_CONFIG_SCRIPTS = gdal-config
+LIBGDAL_DEPENDENCIES = host-pkgconf proj
+
+# libgdal fails to detect NEON support on aarch64 or ARM platforms
+# resp. VSX support on PowerPC based platforms. While linking an
+# application with libgdal.so, we get an undefined reference to
+# png_init_filter_functions_neon resp. png_init_filter_functions_vsx.
+# Some files are missing in the libpng bundled with libgdal, in
+# particular arm/arm_init.c and powerpc/powerpc_init.c, so disable NEON
+# and VSX support completely when using libgdal's internal libpng.
+
+ifeq ($(BR2_PACKAGE_LIBPNG),y)
+LIBGDAL_DEPENDENCIES += libpng
+LIBGDAL_CONF_OPTS += --with-png=$(STAGING_DIR)/usr
+else
+LIBGDAL_CONF_OPTS += --with-png=internal
+LIBGDAL_CPPFLAGS += -DPNG_ARM_NEON_OPT=0 -DPNG_POWERPC_VSX_OPT=0
+endif
+
+ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
+LIBGDAL_DEPENDENCIES += postgresql
+LIBGDAL_CONF_OPTS += --with-pg=yes
+else
+LIBGDAL_CONF_OPTS += --with-pg=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+LIBGDAL_DEPENDENCIES += libxml2
+LIBGDAL_CONF_OPTS += --with-xml2=yes
+else
+LIBGDAL_CONF_OPTS += --with-xml2=no
+endif
+
+LIBGDAL_CONF_OPTS += CPPFLAGS="$(TARGET_CPPFLAGS) $(LIBGDAL_CPPFLAGS)"
+
+$(eval $(autotools-package))
-- 
2.31.1

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

* Re: [Buildroot] [PATCH v3] package/libgdal: new package
  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
  1 sibling, 0 replies; 13+ messages in thread
From: Thomas Petazzoni @ 2021-07-25 19:37 UTC (permalink / raw)
  To: Dominik Michael Rauh; +Cc: buildroot

Hello Dominik,

Thanks for your contribution, see below for some comments, actually
just one main comment.

On Fri, 28 May 2021 15:29:36 +0000
Dominik Michael Rauh <dmrauh@posteo.de> wrote:

> +# libgdal fails to detect NEON support on aarch64 or ARM platforms
> +# resp. VSX support on PowerPC based platforms. While linking an
> +# application with libgdal.so, we get an undefined reference to
> +# png_init_filter_functions_neon resp. png_init_filter_functions_vsx.
> +# Some files are missing in the libpng bundled with libgdal, in
> +# particular arm/arm_init.c and powerpc/powerpc_init.c, so disable NEON
> +# and VSX support completely when using libgdal's internal libpng.
> +
> +ifeq ($(BR2_PACKAGE_LIBPNG),y)
> +LIBGDAL_DEPENDENCIES += libpng
> +LIBGDAL_CONF_OPTS += --with-png=$(STAGING_DIR)/usr
> +else
> +LIBGDAL_CONF_OPTS += --with-png=internal
> +LIBGDAL_CPPFLAGS += -DPNG_ARM_NEON_OPT=0 -DPNG_POWERPC_VSX_OPT=0
> +endif

If libgdal can use an external png, then we only want to use the
external libpng, so libpng should be a mandatory dependency (I've tried
building using --without-png, and it fails).

However, you really need to look at the other configure options, and
handle them, at least by explicitly disabling the features.

It seems like there are a number of other libraries for which libgdal
is by default using an internal copy, and where we will want to use the
external library itself:

  DODS support:              no
  ECW support:               no
  Expat support:             no
  EXR support:               no
  FGDB support:              no
  FreeXL support:            no
  GEORASTER support:         no
  GEOS support:              no
  Google libkml support:     no
  GRASS support:             no
  GTA support:               no
  HDF4 support:              no
  HDF5 support:              no
  HDFS support:              no
  HEIF support:              no
  INFORMIX DataBlade support:no
  Ingres support:            no
  JP2Lura support:           no
  JPEG 12 bit:               yes
  JPEG-in-TIFF 12 bit:       yes
  JPEG JasPer support:       no
  JPEG-Lossless/CharLS:      no
  Kakadu support:            no
  Kea support:               no
  LERC support:              internal
  libdeflate support:        no
  LIBGEOTIFF support:        internal
  LIBGIF support:            internal
  LIBJPEG support:           internal
  LIBLZMA support:           no
  LIBPNG support:            no
  LIBTIFF support:           internal (BigTIFF=yes)
  libxml2 support:           no
  LIBZ support:              internal
  MDB support:               no
  MongoCXX v3 support:       no
  MongoDB support:           no
  MrSID/MG4 Lidar support:   no
  MrSID support:             no
  MSG support:               no
  MySQL support:             no
  NetCDF support:            no
  OCI support:               no
  ODBC support:              no
  OGDI support:              no
  OpenCL support:            no
  OpenJPEG support:          no
  PCIDSK support:            internal
  PCRaster support:          internal
  PCRE support:              no
  PDFium support:            no
  Podofo support:            no
  Poppler support:           no
  PostgreSQL support:        no
  QHull support:             internal
  Rasdaman support:          no
  RasterLite2 support:       no
  RDB support:               no
  SFCGAL support:            no
  SOSI support:              no
  SpatiaLite support:        no
  SQLite support:            no
  Teigha (DWG and DGNv8):    no
  TileDB support:            no
  userfaultfd support:       yes
  WebP support:              no
  Xerces-C support:          no
  ZSTD support:              no

Again, you don't need to support all those optional dependencies, but
for the ones you don't handle in libgdal.mk, make sure to pass
--without-<foo> so that libgdal doesn't pick it up "by chance".

Could you improve your package submission according to these guidelines?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v4] package/libgdal: new package
  2021-05-28 15:29   ` [Buildroot] [PATCH v3] " Dominik Michael Rauh
  2021-07-25 19:37     ` Thomas Petazzoni
@ 2021-08-02  9:24     ` Dominik Michael Rauh
  2021-08-03 20:09       ` Arnout Vandecappelle
  2022-05-07  9:46       ` [Buildroot] [PATCH v5] package/gdal: " Dominik Michael Rauh
  1 sibling, 2 replies; 13+ messages in thread
From: Dominik Michael Rauh @ 2021-08-02  9:24 UTC (permalink / raw)
  To: buildroot; +Cc: Dominik Michael Rauh, Thomas Petazzoni

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>
---
Changes v3 -> v4 (after review by Thomas Petazzoni):
-  Bump version from 3.3.0 to 3.3.1
-  Configure libgdal to use external libraries where possible
-  Explicitely disable libraries not yet handled by Buildroot

Changes v2 -> v3:
-  Bump version from 3.2.2 to 3.3.0

Changes v1 -> v2 (after review by Peter Seiderer):
-  Disable NEON and VSX support when using libgdal's libpng
-  Disable compilation for toolchains with binutils bug 21464 or 27597
-  Add the proper "depends" demanded by proj
-  Fix the comment in Config.in
-  Hopefully add the complete LIBGDAL_LICENSE information

 package/Config.in                             |   1 +
 ...1-port-cpl_recode_iconv.cpp-use-cast.patch |  38 ++++++
 package/libgdal/Config.in                     |  31 +++++
 package/libgdal/libgdal.hash                  |   6 +
 package/libgdal/libgdal.mk                    | 121 ++++++++++++++++++
 5 files changed, 197 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 046c04e994..dbbdc35390 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1929,6 +1929,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..9fa958524f
--- /dev/null
+++ b/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
@@ -0,0 +1,38 @@
+From 0730ebc7a1e22a169bf3a1d873e130e079a68b3d 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..1f3861e944
--- /dev/null
+++ b/package/libgdal/Config.in
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_LIBGDAL
+	bool "libgdal"
+	depends on BR2_INSTALL_LIBSTDCPP # proj, libjson
+	# configure can't find proj, when linking statically
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
+	depends on BR2_TOOLCHAIN_HAS_THREADS # proj
+	depends on BR2_USE_WCHAR # proj
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBJSON
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_PROJ
+	select BR2_PACKAGE_ZLIB
+	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, not binutils bug 21464, 27597, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_USE_WCHAR
diff --git a/package/libgdal/libgdal.hash b/package/libgdal/libgdal.hash
new file mode 100644
index 0000000000..ea770a38d2
--- /dev/null
+++ b/package/libgdal/libgdal.hash
@@ -0,0 +1,6 @@
+# md5 from: https://download.osgeo.org/gdal/3.3.1/gdal-3.3.1.tar.xz.md5, sha256 locally computed:
+md5  7611300fece06853a1a88149e0cc8922  gdal-3.3.1.tar.xz
+sha256  48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70  gdal-3.3.1.tar.xz
+
+# Hash of license file:
+sha256  b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c  LICENSE.TXT
diff --git a/package/libgdal/libgdal.mk b/package/libgdal/libgdal.mk
new file mode 100644
index 0000000000..337b8a7fb7
--- /dev/null
+++ b/package/libgdal/libgdal.mk
@@ -0,0 +1,121 @@
+################################################################################
+#
+# libgdal
+#
+################################################################################
+
+LIBGDAL_VERSION = 3.3.1
+LIBGDAL_SITE = https://download.osgeo.org/gdal/$(LIBGDAL_VERSION)
+LIBGDAL_SOURCE = gdal-$(LIBGDAL_VERSION).tar.xz
+LIBGDAL_LICENSE = MIT (GDAL/OGR), BSD-3-Clause, BSD-Style, APACHE-2.0
+LIBGDAL_LICENSE_FILES = LICENSE.TXT
+LIBGDAL_INSTALL_STAGING = YES
+LIBGDAL_CONFIG_SCRIPTS = gdal-config
+# libgdal at its core only needs host-pkgconf, libgeotiff, proj and tiff but
+# since by default mrf driver support is enabled, it also needs jpeg, libpng
+# and zlib. By default there are also many other drivers enabled but it seems,
+# in contrast to mrf driver support, that they can be implicitely disabled, by
+# configuring libgdal without their respectively needed dependencies.
+LIBGDAL_DEPENDENCIES = host-pkgconf jpeg libgeotiff libpng proj tiff zlib
+
+ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
+LIBGDAL_DEPENDENCIES += postgresql
+LIBGDAL_CONF_OPTS += --with-pg
+else
+LIBGDAL_CONF_OPTS += --without-pg
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+LIBGDAL_DEPENDENCIES += libxml2
+LIBGDAL_CONF_OPTS += --with-xml2
+else
+LIBGDAL_CONF_OPTS += --without-xml2
+endif
+
+LIBGDAL_CONF_OPTS += --with-cpp14 \
+					 --with-geotiff \
+					 --with-libjson-c \
+					 --with-libtiff \
+					 --with-libtool \
+					 --with-libz \
+					 --with-jpeg \
+					 --with-png \
+					 --with-proj
+
+# disable not yet handled packages and thus the associated libgdal drivers
+LIBGDAL_CONF_OPTS += --without-armadillo \
+					 --without-cfitsio \
+					 --without-crypto \
+					 --without-cryptopp \
+					 --without-curl \
+					 --without-dds \
+					 --without-dods-root \
+					 --without-ecw \
+					 --without-expat \
+					 --without-exr \
+					 --without-fgdb \
+					 --without-fme \
+					 --without-freexl \
+					 --without-geos \
+					 --without-gnm \
+					 --without-libkml \
+					 --without-grass \
+					 --without-libgrass \
+					 --without-gta \
+					 --without-hdf4 \
+					 --without-hdf5 \
+					 --without-hdfs \
+					 --without-heif \
+					 --without-idb \
+					 --without-ingres \
+					 --without-java \
+					 --without-jp2lura \
+					 --without-jpeg12 \
+					 --without-jasper \
+					 --without-charls \
+					 --without-kakadu \
+					 --without-kea \
+					 --without-lerc \
+					 --without-gif \
+					 --without-liblzma \
+					 --without-libdeflate \
+					 --without-mdb \
+					 --without-mongocxx \
+					 --without-mongocxxv3 \
+					 --without-mrsid \
+					 --without-jp2mrsid \
+					 --without-macosx-framework \
+					 --without-mrsid_lidar \
+					 --without-msg \
+					 --without-mysql \
+					 --without-netcdf \
+					 --without-null \
+					 --without-oci \
+					 --without-odbc \
+					 --without-ogdi \
+					 --without-opencl \
+					 --without-openjpeg \
+					 --without-pam \
+					 --without-pcidsk \
+					 --without-pcraster \
+					 --without-pcre \
+					 --without-pdfium \
+					 --without-perl \
+					 --without-podofo \
+					 --without-poppler \
+					 --without-python \
+					 --without-qhull \
+					 --without-rasdaman \
+					 --without-rasterlite2 \
+					 --without-rdb \
+					 --without-sfcgal \
+					 --without-sosi \
+					 --without-spatialite \
+					 --without-sqlite3 \
+					 --without-teigha \
+					 --without-tiledb \
+					 --without-webp \
+					 --without-xerces \
+					 --without-zstd
+
+$(eval $(autotools-package))
-- 
2.32.0

_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH v4] package/libgdal: new package
  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
  1 sibling, 1 reply; 13+ messages in thread
From: Arnout Vandecappelle @ 2021-08-03 20:09 UTC (permalink / raw)
  To: Dominik Michael Rauh, buildroot; +Cc: Maxim Kochetkov, Thomas Petazzoni

 Hi Dominik,

 I still have a few comments. I could make the necessary changes myself, but I'm
feeling lazy today :-).

On 02/08/2021 11:24, Dominik Michael Rauh 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>

 It's really nice that you add this package, because when I added postgis
(contributed by Maxim) I didn't notice that it had on optional dependency on
GDAL, which wasn't added yet...

> ---
> Changes v3 -> v4 (after review by Thomas Petazzoni):
> -  Bump version from 3.3.0 to 3.3.1
> -  Configure libgdal to use external libraries where possible
> -  Explicitely disable libraries not yet handled by Buildroot
> 
> Changes v2 -> v3:
> -  Bump version from 3.2.2 to 3.3.0
> 
> Changes v1 -> v2 (after review by Peter Seiderer):
> -  Disable NEON and VSX support when using libgdal's libpng
> -  Disable compilation for toolchains with binutils bug 21464 or 27597
> -  Add the proper "depends" demanded by proj
> -  Fix the comment in Config.in
> -  Hopefully add the complete LIBGDAL_LICENSE information
> 
>  package/Config.in                             |   1 +
>  ...1-port-cpl_recode_iconv.cpp-use-cast.patch |  38 ++++++
>  package/libgdal/Config.in                     |  31 +++++
>  package/libgdal/libgdal.hash                  |   6 +
>  package/libgdal/libgdal.mk                    | 121 ++++++++++++++++++
>  5 files changed, 197 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 046c04e994..dbbdc35390 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1929,6 +1929,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..9fa958524f
> --- /dev/null
> +++ b/package/libgdal/0001-port-cpl_recode_iconv.cpp-use-cast.patch
> @@ -0,0 +1,38 @@
> +From 0730ebc7a1e22a169bf3a1d873e130e079a68b3d 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>

 Please add a line here with the upstream status. The intention is that you
contribute the patch to the upstream project, so it can be removed again after
updating to a future release.

 If for any reason the patch is not applicable to the upstream project, please
indicate why not

> +---
> + 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) )

 The proper C++ way is to use static_cast. An alternative is to use an explicit
type initilisation. So either

if( sConv == static_cast<iconv_t>(-1) )

or

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..1f3861e944
> --- /dev/null
> +++ b/package/libgdal/Config.in
> @@ -0,0 +1,31 @@
> +config BR2_PACKAGE_LIBGDAL
> +	bool "libgdal"
> +	depends on BR2_INSTALL_LIBSTDCPP # proj, libjson
> +	# configure can't find proj, when linking statically
> +	depends on !BR2_STATIC_LIBS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj
> +	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464
> +	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597

 Please explain in the commit message how you arrive here. So add:

test-pkg shows that this package is affected by binutils bugs 21464 and 27597.

> +	depends on BR2_TOOLCHAIN_HAS_THREADS # proj
> +	depends on BR2_USE_WCHAR # proj
> +	select BR2_PACKAGE_JPEG
> +	select BR2_PACKAGE_LIBJSON
> +	select BR2_PACKAGE_LIBPNG
> +	select BR2_PACKAGE_PROJ
> +	select BR2_PACKAGE_ZLIB
> +	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, not binutils bug 21464, 27597, threads, wchar"
> +	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
> +		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_21464 || \
> +		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_USE_WCHAR
> diff --git a/package/libgdal/libgdal.hash b/package/libgdal/libgdal.hash
> new file mode 100644
> index 0000000000..ea770a38d2
> --- /dev/null
> +++ b/package/libgdal/libgdal.hash
> @@ -0,0 +1,6 @@
> +# md5 from: https://download.osgeo.org/gdal/3.3.1/gdal-3.3.1.tar.xz.md5, sha256 locally computed:
> +md5  7611300fece06853a1a88149e0cc8922  gdal-3.3.1.tar.xz
> +sha256  48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70  gdal-3.3.1.tar.xz
> +
> +# Hash of license file:
> +sha256  b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c  LICENSE.TXT
> diff --git a/package/libgdal/libgdal.mk b/package/libgdal/libgdal.mk
> new file mode 100644
> index 0000000000..337b8a7fb7
> --- /dev/null
> +++ b/package/libgdal/libgdal.mk
> @@ -0,0 +1,121 @@
> +################################################################################
> +#
> +# libgdal
> +#
> +################################################################################
> +
> +LIBGDAL_VERSION = 3.3.1
> +LIBGDAL_SITE = https://download.osgeo.org/gdal/$(LIBGDAL_VERSION)
> +LIBGDAL_SOURCE = gdal-$(LIBGDAL_VERSION).tar.xz

 We generally try to follow the name of the upstream package - that's also
easier for CPE and release-monitoring tracking. So it would be better to call
this package gdal instead of libgdal.


> +LIBGDAL_LICENSE = MIT (GDAL/OGR), BSD-3-Clause, BSD-Style, APACHE-2.0

 Where does the BSD-Style come from?

> +LIBGDAL_LICENSE_FILES = LICENSE.TXT

 PROVENANCE.txt gives a nice overview of the different, complicated licenses, so
I think it's useful to add that as well.

> +LIBGDAL_INSTALL_STAGING = YES
> +LIBGDAL_CONFIG_SCRIPTS = gdal-config
> +# libgdal at its core only needs host-pkgconf, libgeotiff, proj and tiff but
> +# since by default mrf driver support is enabled, it also needs jpeg, libpng
> +# and zlib. By default there are also many other drivers enabled but it seems,
> +# in contrast to mrf driver support, that they can be implicitely disabled, by
> +# configuring libgdal without their respectively needed dependencies.
> +LIBGDAL_DEPENDENCIES = host-pkgconf jpeg libgeotiff libpng proj tiff zlib
> +
> +ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
> +LIBGDAL_DEPENDENCIES += postgresql
> +LIBGDAL_CONF_OPTS += --with-pg
> +else
> +LIBGDAL_CONF_OPTS += --without-pg
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +LIBGDAL_DEPENDENCIES += libxml2
> +LIBGDAL_CONF_OPTS += --with-xml2
> +else
> +LIBGDAL_CONF_OPTS += --without-xml2
> +endif
> +
> +LIBGDAL_CONF_OPTS += --with-cpp14 \

 In Config.in, the comment is C++11 and the minimum GCC version is 4.7. Here,
however, you claim that C++14 is supported, which means 4.9 or 5 (depending on
exactly which features are used). Perhaps just remove the option and let the
configure script figure it out?

> +					 --with-geotiff \

 Continuation lines should be indented with a single tab.

 You can make them align nicely by writing:

LIBGDAL_CONF_OPTS += \
	--with-cpp14 \
	--with-geotiff \


 Regards,
 Arnout

> +					 --with-libjson-c \
> +					 --with-libtiff \
> +					 --with-libtool \
> +					 --with-libz \
> +					 --with-jpeg \
> +					 --with-png \
> +					 --with-proj
> +
> +# disable not yet handled packages and thus the associated libgdal drivers
> +LIBGDAL_CONF_OPTS += --without-armadillo \
> +					 --without-cfitsio \
> +					 --without-crypto \
> +					 --without-cryptopp \
> +					 --without-curl \
> +					 --without-dds \
> +					 --without-dods-root \
> +					 --without-ecw \
> +					 --without-expat \
> +					 --without-exr \
> +					 --without-fgdb \
> +					 --without-fme \
> +					 --without-freexl \
> +					 --without-geos \
> +					 --without-gnm \
> +					 --without-libkml \
> +					 --without-grass \
> +					 --without-libgrass \
> +					 --without-gta \
> +					 --without-hdf4 \
> +					 --without-hdf5 \
> +					 --without-hdfs \
> +					 --without-heif \
> +					 --without-idb \
> +					 --without-ingres \
> +					 --without-java \
> +					 --without-jp2lura \
> +					 --without-jpeg12 \
> +					 --without-jasper \
> +					 --without-charls \
> +					 --without-kakadu \
> +					 --without-kea \
> +					 --without-lerc \
> +					 --without-gif \
> +					 --without-liblzma \
> +					 --without-libdeflate \
> +					 --without-mdb \
> +					 --without-mongocxx \
> +					 --without-mongocxxv3 \
> +					 --without-mrsid \
> +					 --without-jp2mrsid \
> +					 --without-macosx-framework \
> +					 --without-mrsid_lidar \
> +					 --without-msg \
> +					 --without-mysql \
> +					 --without-netcdf \
> +					 --without-null \
> +					 --without-oci \
> +					 --without-odbc \
> +					 --without-ogdi \
> +					 --without-opencl \
> +					 --without-openjpeg \
> +					 --without-pam \
> +					 --without-pcidsk \
> +					 --without-pcraster \
> +					 --without-pcre \
> +					 --without-pdfium \
> +					 --without-perl \
> +					 --without-podofo \
> +					 --without-poppler \
> +					 --without-python \
> +					 --without-qhull \
> +					 --without-rasdaman \
> +					 --without-rasterlite2 \
> +					 --without-rdb \
> +					 --without-sfcgal \
> +					 --without-sosi \
> +					 --without-spatialite \
> +					 --without-sqlite3 \
> +					 --without-teigha \
> +					 --without-tiledb \
> +					 --without-webp \
> +					 --without-xerces \
> +					 --without-zstd
> +
> +$(eval $(autotools-package))
> 
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH v4] package/libgdal: new package
  2021-08-03 20:09       ` Arnout Vandecappelle
@ 2021-08-03 20:19         ` Arnout Vandecappelle
  0 siblings, 0 replies; 13+ messages in thread
From: Arnout Vandecappelle @ 2021-08-03 20:19 UTC (permalink / raw)
  To: Dominik Michael Rauh, buildroot; +Cc: Maxim Kochetkov, Thomas Petazzoni



On 03/08/2021 22:09, Arnout Vandecappelle wrote:
>  Hi Dominik,
> 
>  I still have a few comments. I could make the necessary changes myself, but I'm
> feeling lazy today :-).
> 
> On 02/08/2021 11:24, Dominik Michael Rauh 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>
>  It's really nice that you add this package, because when I added postgis
> (contributed by Maxim) I didn't notice that it had on optional dependency on
> GDAL, which wasn't added yet...

 Turns out that postgis with gdal actually doesn't build:

checking GDAL version... not found
configure: error: gdal-config not found. Use --without-raster or try
--with-gdalconfig=<path to gdal-config>


We'll probably need to add --with-gdalconfig=$(STAGING_DIR)/usr/bin/gdal-config
to postgis, and LIBGDAL_CONFIG_SCRIPTS = gdal-config


 Regards,
 Arnout
_______________________________________________
buildroot mailing list
buildroot@busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v5] package/gdal: new package
  2021-08-02  9:24     ` [Buildroot] [PATCH v4] " Dominik Michael Rauh
  2021-08-03 20:09       ` Arnout Vandecappelle
@ 2022-05-07  9:46       ` Dominik Michael Rauh
  2022-07-27 10:00         ` Romain Naour
  2022-07-27 13:38         ` Thomas Petazzoni via buildroot
  1 sibling, 2 replies; 13+ messages in thread
From: Dominik Michael Rauh @ 2022-05-07  9:46 UTC (permalink / raw)
  To: buildroot; +Cc: Dominik Michael Rauh, Thomas Petazzoni

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/

test-pkg shows that this package is affected by binutils bug 27597.

Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>
---
Changes v4 -> v5 (after review by Arnout Vandecappelle):
- Bump version from 3.3.1 to 3.4.3
- Rename libgdal to gdal (following upstream)
- Add upstream status to patch
- Remove binutils bug 21464 from Config.in
- Rework license information
- Rework configuration options

Changes v3 -> v4 (after review by Thomas Petazzoni):
-  Bump version from 3.3.0 to 3.3.1
-  Configure libgdal to use external libraries where possible
-  Explicitely disable libraries not yet handled by Buildroot

Changes v2 -> v3:
-  Bump version from 3.2.2 to 3.3.0

Changes v1 -> v2 (after review by Peter Seiderer):
-  Disable NEON and VSX support when using libgdal's libpng
-  Disable compilation for toolchains with binutils bug 21464 or 27597
-  Add the proper "depends" demanded by proj
-  Fix the comment in Config.in
-  Hopefully add the complete LIBGDAL_LICENSE information

 package/Config.in                             |   1 +
 ...ode_iconv.cpp-fix-invalid-cast-error.patch |  50 +++++++
 package/gdal/Config.in                        |  30 +++++
 package/gdal/gdal.hash                        |   7 +
 package/gdal/gdal.mk                          | 127 ++++++++++++++++++
 package/postgis/postgis.mk                    |   4 +-
 6 files changed, 217 insertions(+), 2 deletions(-)
 create mode 100644 package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch
 create mode 100644 package/gdal/Config.in
 create mode 100644 package/gdal/gdal.hash
 create mode 100644 package/gdal/gdal.mk

diff --git a/package/Config.in b/package/Config.in
index 8892134133..ddf1936235 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1945,6 +1945,7 @@ menu "Other"
 	source "package/flatbuffers/Config.in"
 	source "package/flatcc/Config.in"
 	source "package/gconf/Config.in"
+	source "package/gdal/Config.in"
 	source "package/gflags/Config.in"
 	source "package/gli/Config.in"
 	source "package/glibmm/Config.in"
diff --git a/package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch b/package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch
new file mode 100644
index 0000000000..39593ab2ee
--- /dev/null
+++ b/package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch
@@ -0,0 +1,50 @@
+From c54ba241e4ed6dd43f3a63576f94169c4cafa798 Mon Sep 17 00:00:00 2001
+From: Dominik Michael Rauh <dmrauh@posteo.de>
+Date: Fri, 6 May 2022 21:29:49 +0200
+Subject: [PATCH] port/cpl_recode_iconv.cpp: fix invalid cast error
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes:
+
+cpl_recode_iconv.cpp: In function ‘char* CPLRecodeIconv(const char*, const char*, const char*)’:
+cpl_recode_iconv.cpp:90:18: error: invalid cast from type ‘int’ to type ‘iconv_t’ {aka ‘long int’}
+   90 |     if( sConv == reinterpret_cast<iconv_t>(-1) )
+      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+cpl_recode_iconv.cpp: In function ‘char* CPLRecodeFromWCharIconv(const wchar_t*, const char*, const char*)’:
+cpl_recode_iconv.cpp:239:18: error: invalid cast from type ‘int’ to type ‘iconv_t’ {aka ‘long int’}
+  239 |     if( sConv == reinterpret_cast<iconv_t>(-1) )
+      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>
+[Upstream: https://github.com/OSGeo/gdal/pull/5684]
+---
+ 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 33c2e06..d752b75 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\".",
+@@ -236,7 +236,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.35.1
+
diff --git a/package/gdal/Config.in b/package/gdal/Config.in
new file mode 100644
index 0000000000..55a8c7fb83
--- /dev/null
+++ b/package/gdal/Config.in
@@ -0,0 +1,30 @@
+config BR2_PACKAGE_GDAL
+	bool "gdal"
+	depends on BR2_INSTALL_LIBSTDCPP # proj, libjson
+	# configure can't find proj, when linking statically
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj
+	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
+	depends on BR2_TOOLCHAIN_HAS_THREADS # proj
+	depends on BR2_USE_WCHAR # proj
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBGEOTIFF
+	select BR2_PACKAGE_LIBJSON
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_PROJ
+	select BR2_PACKAGE_ZLIB
+	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 "gdal needs a toolchain w/ C++, dynamic library, gcc >= 4.7, not binutils bug 27597, threads, wchar"
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
+		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
diff --git a/package/gdal/gdal.hash b/package/gdal/gdal.hash
new file mode 100644
index 0000000000..e6f25f9c54
--- /dev/null
+++ b/package/gdal/gdal.hash
@@ -0,0 +1,7 @@
+# md5 from: https://download.osgeo.org/gdal/3.4.3/gdal-3.4.3.tar.xz.md5, sha256 locally computed:
+md5  36576fa060bcde5be3bb18fd3ddfd151  gdal-3.4.3.tar.xz
+sha256  02a27b35899e1c4c3bcb6007da900128ddd7e8ab7cd6ccfecf338a301eadad5a  gdal-3.4.3.tar.xz
+
+# Hashes of license files:
+sha256  b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c  LICENSE.TXT
+sha256  8afa5b03af2e776c7e484768c01bbd4ceee89a3baf590e2092e4611ad4c78c7f  PROVENANCE.TXT
diff --git a/package/gdal/gdal.mk b/package/gdal/gdal.mk
new file mode 100644
index 0000000000..346dc34dd2
--- /dev/null
+++ b/package/gdal/gdal.mk
@@ -0,0 +1,127 @@
+################################################################################
+#
+# gdal
+#
+################################################################################
+
+GDAL_VERSION = 3.4.3
+GDAL_SITE = https://download.osgeo.org/gdal/$(GDAL_VERSION)
+GDAL_SOURCE = gdal-$(GDAL_VERSION).tar.xz
+GDAL_LICENSE = MIT (GDAL/OGR), BSD-3-Clause, APACHE-2.0
+GDAL_LICENSE_FILES = LICENSE.TXT PROVENANCE.TXT
+GDAL_INSTALL_STAGING = YES
+GDAL_CONFIG_SCRIPTS = gdal-config
+# gdal at its core only needs host-pkgconf, libgeotiff, proj and tiff but since
+# by default mrf driver support is enabled, it also needs jpeg, libpng and
+# zlib. By default there are also many other drivers enabled but it seems, in
+# contrast to mrf driver support, that they can be implicitly disabled, by
+# configuring gdal without their respectively needed dependencies.
+GDAL_DEPENDENCIES = host-pkgconf jpeg libgeotiff libpng proj tiff zlib
+
+ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
+GDAL_DEPENDENCIES += postgresql
+GDAL_CONF_OPTS += --with-pg
+else
+GDAL_CONF_OPTS += --without-pg
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+GDAL_DEPENDENCIES += libxml2
+GDAL_CONF_OPTS += --with-xml2
+else
+GDAL_CONF_OPTS += --without-xml2
+endif
+
+GDAL_CONF_OPTS += \
+	--with-geotiff \
+	--with-libjson-c \
+	--with-libtiff \
+	--with-libtool \
+	--with-libz \
+	--with-jpeg \
+	--with-png \
+	--with-proj
+
+# disable not yet handled packages and thus their associated gdal drivers
+GDAL_CONF_OPTS += \
+	--without-armadillo \
+	--without-blosc \
+	--without-brunsli \
+	--without-cfitsio \
+	--without-crypto \
+	--without-cryptopp \
+	--without-curl \
+	--without-dds \
+	--without-dods-root \
+	--without-ecw \
+	--without-expat \
+	--without-exr \
+	--without-fgdb \
+	--without-fme \
+	--without-freexl \
+	--without-geos \
+	--without-gnm \
+	--without-libkml \
+	--without-lz4 \
+	--without-grass \
+	--without-libgrass \
+	--without-gta \
+	--without-hdf4 \
+	--without-hdf5 \
+	--without-hdfs \
+	--without-heif \
+	--without-idb \
+	--without-ingres \
+	--without-jp2lura \
+	--without-jasper \
+	--without-java \
+	--without-jpeg12 \
+	--without-jxl \
+	--without-charls \
+	--without-kakadu \
+	--without-kea \
+	--without-lerc \
+	--without-gif \
+	--without-liblzma \
+	--without-libdeflate \
+	--without-mdb \
+	--without-mongocxx \
+	--without-mongocxxv3 \
+	--without-mrsid \
+	--without-jp2mrsid \
+	--without-macosx-framework \
+	--without-mrsid_lidar \
+	--without-msg \
+	--without-mysql \
+	--without-netcdf \
+	--without-null \
+	--without-oci \
+	--without-odbc \
+	--without-ogdi \
+	--without-opencl \
+	--without-openjpeg \
+	--without-pam \
+	--without-pcidsk \
+	--without-pcraster \
+	--without-pcre \
+	--without-pcre2 \
+	--without-pdfium \
+	--without-perl \
+	--without-podofo \
+	--without-poppler \
+	--without-python \
+	--without-qhull \
+	--without-rasdaman \
+	--without-rasterlite2 \
+	--without-rdb \
+	--without-sfcgal \
+	--without-sosi \
+	--without-spatialite \
+	--without-sqlite3 \
+	--without-teigha \
+	--without-tiledb \
+	--without-webp \
+	--without-xerces \
+	--without-zstd
+
+$(eval $(autotools-package))
diff --git a/package/postgis/postgis.mk b/package/postgis/postgis.mk
index b77071d03b..e26693410e 100644
--- a/package/postgis/postgis.mk
+++ b/package/postgis/postgis.mk
@@ -21,8 +21,8 @@ POSTGIS_CONF_OPTS += \
 	--with-geosconfig=$(STAGING_DIR)/usr/bin/geos-config \
 	--with-xml2config=$(STAGING_DIR)/usr/bin/xml2-config
 
-ifeq ($(BR2_PACKAGE_LIBGDAL),y)
-POSTGIS_DEPENDENCIES += libgdal
+ifeq ($(BR2_PACKAGE_GDAL),y)
+POSTGIS_DEPENDENCIES += gdal
 POSTGIS_CONF_OPTS += --with-raster
 else
 POSTGIS_CONF_OPTS += --without-raster
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH v5] package/gdal: new package
  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
  1 sibling, 0 replies; 13+ messages in thread
From: Romain Naour @ 2022-07-27 10:00 UTC (permalink / raw)
  To: Dominik Michael Rauh, buildroot; +Cc: Thomas Petazzoni

Hello Dominik

Le 07/05/2022 à 11:46, Dominik Michael Rauh a écrit :
> 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/
> 
> test-pkg shows that this package is affected by binutils bug 27597.
> 
> Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>
> ---
> Changes v4 -> v5 (after review by Arnout Vandecappelle):
> - Bump version from 3.3.1 to 3.4.3
> - Rename libgdal to gdal (following upstream)
> - Add upstream status to patch
> - Remove binutils bug 21464 from Config.in
> - Rework license information
> - Rework configuration options
> 
> Changes v3 -> v4 (after review by Thomas Petazzoni):
> -  Bump version from 3.3.0 to 3.3.1
> -  Configure libgdal to use external libraries where possible
> -  Explicitely disable libraries not yet handled by Buildroot
> 
> Changes v2 -> v3:
> -  Bump version from 3.2.2 to 3.3.0
> 
> Changes v1 -> v2 (after review by Peter Seiderer):
> -  Disable NEON and VSX support when using libgdal's libpng
> -  Disable compilation for toolchains with binutils bug 21464 or 27597
> -  Add the proper "depends" demanded by proj
> -  Fix the comment in Config.in
> -  Hopefully add the complete LIBGDAL_LICENSE information
> 
>  package/Config.in                             |   1 +
>  ...ode_iconv.cpp-fix-invalid-cast-error.patch |  50 +++++++
>  package/gdal/Config.in                        |  30 +++++
>  package/gdal/gdal.hash                        |   7 +
>  package/gdal/gdal.mk                          | 127 ++++++++++++++++++
>  package/postgis/postgis.mk                    |   4 +-
>  6 files changed, 217 insertions(+), 2 deletions(-)
>  create mode 100644 package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch
>  create mode 100644 package/gdal/Config.in
>  create mode 100644 package/gdal/gdal.hash
>  create mode 100644 package/gdal/gdal.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 8892134133..ddf1936235 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1945,6 +1945,7 @@ menu "Other"
>  	source "package/flatbuffers/Config.in"
>  	source "package/flatcc/Config.in"
>  	source "package/gconf/Config.in"
> +	source "package/gdal/Config.in"
>  	source "package/gflags/Config.in"
>  	source "package/gli/Config.in"
>  	source "package/glibmm/Config.in"
> diff --git a/package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch b/package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch
> new file mode 100644
> index 0000000000..39593ab2ee
> --- /dev/null
> +++ b/package/gdal/0001-port-cpl_recode_iconv.cpp-fix-invalid-cast-error.patch
> @@ -0,0 +1,50 @@
> +From c54ba241e4ed6dd43f3a63576f94169c4cafa798 Mon Sep 17 00:00:00 2001
> +From: Dominik Michael Rauh <dmrauh@posteo.de>
> +Date: Fri, 6 May 2022 21:29:49 +0200
> +Subject: [PATCH] port/cpl_recode_iconv.cpp: fix invalid cast error
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Fixes:
> +
> +cpl_recode_iconv.cpp: In function ‘char* CPLRecodeIconv(const char*, const char*, const char*)’:
> +cpl_recode_iconv.cpp:90:18: error: invalid cast from type ‘int’ to type ‘iconv_t’ {aka ‘long int’}
> +   90 |     if( sConv == reinterpret_cast<iconv_t>(-1) )
> +      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +cpl_recode_iconv.cpp: In function ‘char* CPLRecodeFromWCharIconv(const wchar_t*, const char*, const char*)’:
> +cpl_recode_iconv.cpp:239:18: error: invalid cast from type ‘int’ to type ‘iconv_t’ {aka ‘long int’}
> +  239 |     if( sConv == reinterpret_cast<iconv_t>(-1) )
> +      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>
> +[Upstream: https://github.com/OSGeo/gdal/pull/5684]
Your patch has been merged upstream!

> +---
> + 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 33c2e06..d752b75 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\".",
> +@@ -236,7 +236,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.35.1
> +
> diff --git a/package/gdal/Config.in b/package/gdal/Config.in
> new file mode 100644
> index 0000000000..55a8c7fb83
> --- /dev/null
> +++ b/package/gdal/Config.in
> @@ -0,0 +1,30 @@
> +config BR2_PACKAGE_GDAL
> +	bool "gdal"
> +	depends on BR2_INSTALL_LIBSTDCPP # proj, libjson
> +	# configure can't find proj, when linking statically
> +	depends on !BR2_STATIC_LIBS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj
> +	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # proj
> +	depends on BR2_USE_WCHAR # proj
> +	select BR2_PACKAGE_JPEG
> +	select BR2_PACKAGE_LIBGEOTIFF
> +	select BR2_PACKAGE_LIBJSON
> +	select BR2_PACKAGE_LIBPNG
> +	select BR2_PACKAGE_PROJ
> +	select BR2_PACKAGE_ZLIB
> +	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 "gdal needs a toolchain w/ C++, dynamic library, gcc >= 4.7, not binutils bug 27597, threads, wchar"
> +	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
> +		BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597 || \
> +		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
> diff --git a/package/gdal/gdal.hash b/package/gdal/gdal.hash
> new file mode 100644
> index 0000000000..e6f25f9c54
> --- /dev/null
> +++ b/package/gdal/gdal.hash
> @@ -0,0 +1,7 @@
> +# md5 from: https://download.osgeo.org/gdal/3.4.3/gdal-3.4.3.tar.xz.md5, sha256 locally computed:
> +md5  36576fa060bcde5be3bb18fd3ddfd151  gdal-3.4.3.tar.xz
> +sha256  02a27b35899e1c4c3bcb6007da900128ddd7e8ab7cd6ccfecf338a301eadad5a  gdal-3.4.3.tar.xz
> +
> +# Hashes of license files:
> +sha256  b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c  LICENSE.TXT
> +sha256  8afa5b03af2e776c7e484768c01bbd4ceee89a3baf590e2092e4611ad4c78c7f  PROVENANCE.TXT

Is PROVENANCE.TXT file really useful as license file ? it contains a list of
contributors that will be likely be updated for each release.

Here we want to check the license file hash to "detect" any license change.

> diff --git a/package/gdal/gdal.mk b/package/gdal/gdal.mk
> new file mode 100644
> index 0000000000..346dc34dd2
> --- /dev/null
> +++ b/package/gdal/gdal.mk
> @@ -0,0 +1,127 @@
> +################################################################################
> +#
> +# gdal
> +#
> +################################################################################
> +
> +GDAL_VERSION = 3.4.3
> +GDAL_SITE = https://download.osgeo.org/gdal/$(GDAL_VERSION)
> +GDAL_SOURCE = gdal-$(GDAL_VERSION).tar.xz
> +GDAL_LICENSE = MIT (GDAL/OGR), BSD-3-Clause, APACHE-2.0

The liscense is really complex to describe here, gdal contains a lot of code
with different license.  At least add a comment saying that gdal bundle several
bundled libraries with different licenses.

https://git.buildroot.net/buildroot/tree/package/supertux/supertux.mk?h=2022.05.1#n11

It seems Info-ZIP license is missing.

> +GDAL_LICENSE_FILES = LICENSE.TXT PROVENANCE.TXT
> +GDAL_INSTALL_STAGING = YES
> +GDAL_CONFIG_SCRIPTS = gdal-config
> +# gdal at its core only needs host-pkgconf, libgeotiff, proj and tiff but since
> +# by default mrf driver support is enabled, it also needs jpeg, libpng and
> +# zlib. By default there are also many other drivers enabled but it seems, in
> +# contrast to mrf driver support, that they can be implicitly disabled, by
> +# configuring gdal without their respectively needed dependencies.
> +GDAL_DEPENDENCIES = host-pkgconf jpeg libgeotiff libpng proj tiff zlib
> +
> +ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
> +GDAL_DEPENDENCIES += postgresql
> +GDAL_CONF_OPTS += --with-pg
> +else
> +GDAL_CONF_OPTS += --without-pg
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +GDAL_DEPENDENCIES += libxml2
> +GDAL_CONF_OPTS += --with-xml2
> +else
> +GDAL_CONF_OPTS += --without-xml2
> +endif
> +
> +GDAL_CONF_OPTS += \
> +	--with-geotiff \
> +	--with-libjson-c \
> +	--with-libtiff \
> +	--with-libtool \
> +	--with-libz \
> +	--with-jpeg \
> +	--with-png \
> +	--with-proj
> +
> +# disable not yet handled packages and thus their associated gdal drivers
> +GDAL_CONF_OPTS += \
> +	--without-armadillo \
> +	--without-blosc \
> +	--without-brunsli \
> +	--without-cfitsio \
> +	--without-crypto \
> +	--without-cryptopp \
> +	--without-curl \
> +	--without-dds \
> +	--without-dods-root \
> +	--without-ecw \
> +	--without-expat \
> +	--without-exr \
> +	--without-fgdb \
> +	--without-fme \
> +	--without-freexl \
> +	--without-geos \
> +	--without-gnm \
> +	--without-libkml \
> +	--without-lz4 \
> +	--without-grass \
> +	--without-libgrass \
> +	--without-gta \
> +	--without-hdf4 \
> +	--without-hdf5 \
> +	--without-hdfs \
> +	--without-heif \
> +	--without-idb \
> +	--without-ingres \
> +	--without-jp2lura \
> +	--without-jasper \
> +	--without-java \
> +	--without-jpeg12 \
> +	--without-jxl \
> +	--without-charls \
> +	--without-kakadu \
> +	--without-kea \
> +	--without-lerc \
> +	--without-gif \
> +	--without-liblzma \
> +	--without-libdeflate \
> +	--without-mdb \
> +	--without-mongocxx \
> +	--without-mongocxxv3 \
> +	--without-mrsid \
> +	--without-jp2mrsid \
> +	--without-macosx-framework \
> +	--without-mrsid_lidar \
> +	--without-msg \
> +	--without-mysql \
> +	--without-netcdf \
> +	--without-null \
> +	--without-oci \
> +	--without-odbc \
> +	--without-ogdi \
> +	--without-opencl \
> +	--without-openjpeg \
> +	--without-pam \
> +	--without-pcidsk \
> +	--without-pcraster \
> +	--without-pcre \
> +	--without-pcre2 \
> +	--without-pdfium \
> +	--without-perl \
> +	--without-podofo \
> +	--without-poppler \
> +	--without-python \
> +	--without-qhull \
> +	--without-rasdaman \
> +	--without-rasterlite2 \
> +	--without-rdb \
> +	--without-sfcgal \
> +	--without-sosi \
> +	--without-spatialite \
> +	--without-sqlite3 \
> +	--without-teigha \
> +	--without-tiledb \
> +	--without-webp \
> +	--without-xerces \
> +	--without-zstd
> +
> +$(eval $(autotools-package))
> diff --git a/package/postgis/postgis.mk b/package/postgis/postgis.mk
> index b77071d03b..e26693410e 100644
> --- a/package/postgis/postgis.mk
> +++ b/package/postgis/postgis.mk
> @@ -21,8 +21,8 @@ POSTGIS_CONF_OPTS += \
>  	--with-geosconfig=$(STAGING_DIR)/usr/bin/geos-config \
>  	--with-xml2config=$(STAGING_DIR)/usr/bin/xml2-config
>  
> -ifeq ($(BR2_PACKAGE_LIBGDAL),y)
> -POSTGIS_DEPENDENCIES += libgdal
> +ifeq ($(BR2_PACKAGE_GDAL),y)
> +POSTGIS_DEPENDENCIES += gdal
>  POSTGIS_CONF_OPTS += --with-raster
>  else
>  POSTGIS_CONF_OPTS += --without-raster

Actually this part should be a separate commit.

Best regards,
Romain

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH v5] package/gdal: new package
  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
  1 sibling, 1 reply; 13+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-07-27 13:38 UTC (permalink / raw)
  To: Dominik Michael Rauh; +Cc: buildroot

Hello Dominik,

On Sat,  7 May 2022 09:46:50 +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/
> 
> test-pkg shows that this package is affected by binutils bug 27597.
> 
> Signed-off-by: Dominik Michael Rauh <dmrauh@posteo.de>

Believe it or not, but we finally applied your patch! I had to do a few
changes:

 - Addition of an entry to the DEVELOPERS file

 - Removal of PROVENANCE.TXT as a license file, and simplification of
   the license variable to just "MIT, many others" as the licensing
   situation of GDAL is very complicated.

 - Use GDAL_CONF_OPTS = (and not +=) to define all unconditional
   options, and do that before the conditional features.

 - Removal of the postgis change for gdal support, which I have moved
   to a separate commit. It also required an extra patch to PostGIS to
   build properly.

 - Bump to the latest version of gdal.

You can see the final 3 commits at:

  https://gitlab.com/buildroot.org/buildroot/-/commit/d48af707737ece6242d58e83b98e5c601fa55acc
  https://gitlab.com/buildroot.org/buildroot/-/commit/1e64fa2956171cdc9d6e6c8896b4b589ce573513
  https://gitlab.com/buildroot.org/buildroot/-/commit/b9a38a42ac817b963be2b4b51d218c5eabb1059d

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH v5] package/gdal: new package
  2022-07-27 13:38         ` Thomas Petazzoni via buildroot
@ 2022-07-27 15:04           ` Dominik Rauh
  0 siblings, 0 replies; 13+ messages in thread
From: Dominik Rauh @ 2022-07-27 15:04 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot

[-- Attachment #1: Type: text/html, Size: 2582 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2022-07-27 15:04 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-02 13:06 [Buildroot] [PATCH 1/1] package/libgdal: new package Dominik Michael Rauh
2021-05-02 14:38 ` Peter Seiderer
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

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.