From patchwork Fri May 28 15:29:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dominik Michael Rauh X-Patchwork-Id: 1485268 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=posteo.de header.i=@posteo.de header.a=rsa-sha256 header.s=2017 header.b=b6kElcTK; dkim-atps=neutral Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Fs7sf3ldrz9sVb for ; Sat, 29 May 2021 01:29:58 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 30F18400AE; Fri, 28 May 2021 15:29:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7wGpHoyS6zAj; Fri, 28 May 2021 15:29:55 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 438844011D; Fri, 28 May 2021 15:29:54 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 5D09E1BF31D for ; Fri, 28 May 2021 15:29:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 4B7F64044B for ; Fri, 28 May 2021 15:29:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp4.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=posteo.de Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0ite5M8f3kwl for ; Fri, 28 May 2021 15:29:50 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from mout02.posteo.de (mout02.posteo.de [185.67.36.66]) by smtp4.osuosl.org (Postfix) with ESMTPS id 373724043A for ; Fri, 28 May 2021 15:29:49 +0000 (UTC) Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id C8B7F2400FC for ; Fri, 28 May 2021 17:29:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1622215786; bh=Wx+dDAP5sL5U+mM8yrfHY5ZkJ6cXkmb4WjqhCquAJcw=; h=From:To:Cc:Subject:Date:From; b=b6kElcTKE3J6t3eCB5QlpnDFZm1saM7Y9ZD9IwunwXu1XmSKvopZtNBeKzoAWfLjf gckNCAYiT1WU5YdqdiPYlflRDNESYymVK4N3UKpnXxya9XXi/J8aQPaBuszKoaoTKF g54uf79pf3IY6VWDPJN6ShHgag4h6DALJ3JH7m1HG1AmICPruCu8ZYypBRkoKjeTbO MCSHwEshq04SRQDzWZu8CjI/f9i8xwoQK419ot/2sP9EhSxukRHuxZGVaDDGnekAIs DhVMMMc2W9kKXhHlJZEuAJrTGyuRvgeLyaF5fGp8FmHRVlxberYodSeDb5EyhsjXOW nBYGWzAgK32DQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Fs7sQ05Srz9rxS; Fri, 28 May 2021 17:29:45 +0200 (CEST) From: Dominik Michael Rauh To: buildroot@buildroot.org Date: Fri, 28 May 2021 15:29:36 +0000 Message-Id: <20210528152936.368915-1-dmrauh@posteo.de> In-Reply-To: <20210504165735.86089-1-dmrauh@posteo.de> References: <20210504165735.86089-1-dmrauh@posteo.de> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v3] package/libgdal: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dominik Michael Rauh , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "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 --- 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 +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 +--- + 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(-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(-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))