From patchwork Thu Apr 8 06:28:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Kochetkov X-Patchwork-Id: 1463657 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::137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=inbox.ru header.i=@inbox.ru header.a=rsa-sha256 header.s=mail3 header.b=T0M0/eEG; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (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 4FGBBZ5BzZz9sWC for ; Thu, 8 Apr 2021 16:27:17 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 595944196A; Thu, 8 Apr 2021 06:27:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org 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 Zi4_WfYiALIA; Thu, 8 Apr 2021 06:27:11 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id BEE2D4196C; Thu, 8 Apr 2021 06:27:10 +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 9B72D1BF3CC for ; Thu, 8 Apr 2021 06:27:09 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 953234196C for ; Thu, 8 Apr 2021 06:27:09 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org 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 OptQz6wTtP66 for ; Thu, 8 Apr 2021 06:27:04 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 Received: from smtp41.i.mail.ru (smtp41.i.mail.ru [94.100.177.101]) by smtp4.osuosl.org (Postfix) with ESMTPS id 7DEC94196A for ; Thu, 8 Apr 2021 06:27:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=inbox.ru; s=mail3; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From:From:Subject:Content-Type:Content-Transfer-Encoding:To:Cc; bh=4JVn4UOCfRaDOwyZ71OBZvhVswdv3cI9JB56Q7cvdtg=; b=T0M0/eEGC0qvv2b3ydSE/ZSNPENTHi8Mn0G8lRxzx2PC6TZC6MIOk4EJQB+H5FvaxV8kBHSfHM3dF5++KoRHW45VonbJdr4LFRfLoH80DTn832QvtcM8YtXwszSVixD+kJMSITUYyXG+796xb4NRBSoAkUycDz+PQ4xFKRHRyUI=; Received: by smtp41.i.mail.ru with esmtpa (envelope-from ) id 1lUO84-00016Y-SR; Thu, 08 Apr 2021 09:27:01 +0300 To: buildroot@buildroot.org Date: Thu, 8 Apr 2021 09:28:30 +0300 Message-Id: <20210408062830.1277591-1-fido_max@inbox.ru> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Authentication-Results: smtp41.i.mail.ru; auth=pass smtp.auth=fido_max@inbox.ru smtp.mailfrom=fido_max@inbox.ru X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD912A3E3D5D4B49FC1FEA0A53B931EDD909DE4D58F47F062C400894C459B0CD1B973AB7E3B6A9E129740D34F0563A46FC1E236F5F3DB2A963E090598096E5E7227 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7F9D05773942AAE9CEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F79006377CB294AC37272EBD8638F802B75D45FF914D58D5BE9E6BC1A93B80C6DEB9DEE97C6FB206A91F05B2AC0E39C642B9E2EE5FF0B546552F7E9F3896EE2C32233946D2E47CDBA5A96583C09775C1D3CA48CF17B107DEF921CE79117882F4460429724CE54428C33FAD30A8DF7F3B2552694AC26CFBAC0749D213D2E47CDBA5A9658378DA827A17800CE7328B01A8D746D8839FA2833FD35BB23DF004C90652538430302FCEF25BFAB3454AD6D5ED66289B5278DA827A17800CE7333A559C27A74828D32BA5DBAC0009BE395957E7521B51C20BC6067A898B09E4090A508E0FED6299176DF2183F8FC7C056235C9C6E49608FCD04E86FAF290E2D7E9C4E3C761E06A71DD303D21008E29813377AFFFEAFD269A417C69337E82CC2E827F84554CEF50127C277FBC8AE2E8BA83251EDC214901ED5E8D9A59859A8B6AC294AFEFA671E80089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: 8BD88D57C5CADBC8B2710865C3867510C248AE67FA2728C3A3B1A56EE2B804F6B226C914C996894645FD9D8A29397D6EFF55FE49A3C2BFCFC8C84E951CD0BE2F296C473AB1E14218EA052B563B0B06C67866D6147AF826D85C2355FF3C5F208C5F675DE7D7CC5582F972CCD2F8FE1EF1CFC4036BBF6A4EA975A208F0F36D5786CB5012B2E24CD356 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D3457FA942CB4462B4CFB1F532706E289F8C9E1E0DB0529425A9412DCE9B241DA0E17E60FFBEE0BBE2B1D7E09C32AA3244C6713D55DD1395B9563282CFA0108660FA95CA90A1D8AC565FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2bioju+jaMfvANXqz8+O3RjlvIg== X-Mailru-Sender: 11C2EC085EDE56FA9C10FA2967F5AB24897FECB463393B1C8D055F05DBD61B6F31580690AA8445DCEE9242D420CFEBFD3DDE9B364B0DF2891A624F84B2C74EDA4239CF2AF0A6D4F80DA7A0AF5A3A8387 X-Mras: Ok Subject: [Buildroot] [PATCH v4 1/1] package/postgis: 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: , From: Maxim Kochetkov via buildroot Reply-To: Maxim Kochetkov Cc: Maxim Kochetkov , Peter Seiderer Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL. https://postgis.net/ Signed-off-by: Maxim Kochetkov Signed-off-by: Peter Seiderer Reviewed-by: Peter Seiderer --- Changes v3 -> v4 - Add iconv/locale dependency Changes v2 -> v3 (after review of Peter Seiderer): - Add dependencies description Changes v1 -> v2 (after review of Peter Seiderer): - Bump version to 3.1.1 - Explicit set cross-compile xml2-config path - Fixed check-package warnings - Fix POSTGIS_LICENSE --- package/Config.in | 1 + ...VE_VASPRINTF-HAVE_ASPRINTF-templates.patch | 32 ++++++++++++++ ...S_DEBUG_LEVEL-define-to-configure.ac.patch | 29 +++++++++++++ ...e-forced-static-linking-of-liblwgeom.patch | 31 ++++++++++++++ ...fig-to-get-PROJ-version-if-available.patch | 42 +++++++++++++++++++ package/postgis/Config.in | 18 ++++++++ package/postgis/postgis.hash | 3 ++ package/postgis/postgis.mk | 35 ++++++++++++++++ 8 files changed, 191 insertions(+) create mode 100644 package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch create mode 100644 package/postgis/0002-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch create mode 100644 package/postgis/0003-Disable-forced-static-linking-of-liblwgeom.patch create mode 100644 package/postgis/0004-Use-pkg-config-to-get-PROJ-version-if-available.patch create mode 100644 package/postgis/Config.in create mode 100644 package/postgis/postgis.hash create mode 100644 package/postgis/postgis.mk diff --git a/package/Config.in b/package/Config.in index 1269bc7b51..3c6613b9ef 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1406,6 +1406,7 @@ menu "Database" source "package/mongodb/Config.in" source "package/mysql/Config.in" source "package/postgresql/Config.in" + source "package/postgis/Config.in" source "package/redis/Config.in" source "package/rocksdb/Config.in" source "package/sqlcipher/Config.in" diff --git a/package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch b/package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch new file mode 100644 index 0000000000..3a40afddb2 --- /dev/null +++ b/package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch @@ -0,0 +1,32 @@ +From 7bf2fc388df10bc1760cd06594f50da0c78ee3a2 Mon Sep 17 00:00:00 2001 +From: fidomax +Date: Tue, 26 Jan 2021 07:33:17 +0300 +Subject: [PATCH] Add HAVE_VASPRINTF HAVE_ASPRINTF templates + +It fixes autoreconf error: +autoheader: warning: missing template: HAVE_ASPRINTF +autoheader: Use AC_DEFINE([HAVE_ASPRINTF], [], [Description]) +autoheader: warning: missing template: HAVE_VASPRINTF + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/postgis/postgis/commit/d0ac5df49961d1d1a74b894f9941b973c0695c11.patch +--- + configure.ac | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 9ac7051bb..dddb3aef7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -11,6 +11,8 @@ dnl ********************************************************************** + + AC_INIT() + AC_CONFIG_HEADERS([postgis_config.h]) ++AH_TEMPLATE([HAVE_VASPRINTF]) ++AH_TEMPLATE([HAVE_ASPRINTF]) + AC_CONFIG_MACRO_DIR([macros]) + AC_CONFIG_AUX_DIR([build-aux]) + AC_PROG_INSTALL +-- +2.30.0 + diff --git a/package/postgis/0002-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch b/package/postgis/0002-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch new file mode 100644 index 0000000000..71409ca599 --- /dev/null +++ b/package/postgis/0002-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch @@ -0,0 +1,29 @@ +From 97d0cb4f4a6f3bec50729e3f896d4a84b796c5c6 Mon Sep 17 00:00:00 2001 +From: fidomax +Date: Tue, 26 Jan 2021 09:17:17 +0300 +Subject: [PATCH] Add POSTGIS_DEBUG_LEVEL define to configure.ac + +In case of using autoreconf "#define POSTGIS_DEBUG_LEVEL 0" is removed from postgis_config.h.in so build failed with undefined POSTGIS_DEBUG_LEVEL. + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/postgis/postgis/commit/2b2c2cb159cfcaacb75a4e74f17bd2834d61acd0.patch +--- + configure.ac | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure.ac b/configure.ac +index dddb3aef7..86e1597ee 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1131,6 +1131,8 @@ else + CPPFLAGS="-DNDEBUG $CPPFLAGS" + fi + ++AC_DEFINE([POSTGIS_DEBUG_LEVEL], [0], [Define debug level. Default 0]) ++ + dnl =========================================================================== + dnl Allow the developer to disable the automatic updates of postgis_revision.h + dnl with --without-phony-revision +-- +2.30.0 + diff --git a/package/postgis/0003-Disable-forced-static-linking-of-liblwgeom.patch b/package/postgis/0003-Disable-forced-static-linking-of-liblwgeom.patch new file mode 100644 index 0000000000..4329c9cd80 --- /dev/null +++ b/package/postgis/0003-Disable-forced-static-linking-of-liblwgeom.patch @@ -0,0 +1,31 @@ +From 845c18c1288b7a96592901baadb198f96dd71c46 Mon Sep 17 00:00:00 2001 +From: fidomax +Date: Tue, 26 Jan 2021 09:49:19 +0300 +Subject: [PATCH] Disable forced static linking of liblwgeom + +In case of shared libs build fails: +ld: cannot find -lgeos_c +ld: attempted static link of dynamic object `/usr/lib/libproj.so' + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/postgis/postgis/commit/98070faad220e12fcaed9a583a70a37c510b7c6b.patch +--- + loader/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/loader/Makefile.in b/loader/Makefile.in +index 9aebfe07f..9a0c90d3a 100644 +--- a/loader/Makefile.in ++++ b/loader/Makefile.in +@@ -44,7 +44,7 @@ ICONV_CFLAGS=@ICONV_CFLAGS@ + + # liblwgeom + LIBLWGEOM=../liblwgeom/liblwgeom.la +-LDFLAGS += -static $(LIBLWGEOM) ++LDFLAGS += $(LIBLWGEOM) + + # GTK includes and libraries + GTK_CFLAGS = @GTK_CFLAGS@ @IGE_MAC_CFLAGS@ +-- +2.30.0 + diff --git a/package/postgis/0004-Use-pkg-config-to-get-PROJ-version-if-available.patch b/package/postgis/0004-Use-pkg-config-to-get-PROJ-version-if-available.patch new file mode 100644 index 0000000000..1e65b98d3e --- /dev/null +++ b/package/postgis/0004-Use-pkg-config-to-get-PROJ-version-if-available.patch @@ -0,0 +1,42 @@ +From 876a04a795fcb179e0dc802e260353012c4890f9 Mon Sep 17 00:00:00 2001 +From: Maxim Kochetkov +Date: Thu, 28 Jan 2021 08:12:57 +0300 +Subject: [PATCH] Use pkg-config to get PROJ version if available + +In case of cross-compile AC_PROJ_VERSION([POSTGIS_PROJ_VERSION]) fails. +So try to get version by pkg-config first + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/postgis/postgis/commit/671a878982550e3c590d642620a6621b52c230c7.patch +--- + configure.ac | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 86e1597ee..016f81c7d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -866,6 +866,7 @@ elif test ! -z "$PKG_CONFIG"; then + [ + PROJ_CPPFLAGS="$PROJ_CFLAGS" + PROJ_LDFLAGS="$PROJ_LIBS" ++ POSTGIS_PROJ_VERSION=`$PKG_CONFIG proj --modversion | sed 's/\([[0-9]]\).*\([[0-9]]\).*\([[0-9]]\)/\1\2/'` + ], + [ + PROJ_LDFLAGS="-lproj" +@@ -887,8 +888,10 @@ AC_CHECK_HEADER([proj_api.h], + )] + ) + +-dnl Return the PROJ.4 version number +-AC_PROJ_VERSION([POSTGIS_PROJ_VERSION]) ++dnl Return the PROJ.4 version number if not detected by pkg-config ++if test "x$POSTGIS_PROJ_VERSION" = "x"; then ++ AC_PROJ_VERSION([POSTGIS_PROJ_VERSION]) ++fi + AC_DEFINE_UNQUOTED([POSTGIS_PROJ_VERSION], [$POSTGIS_PROJ_VERSION], [PROJ library version]) + AC_SUBST([POSTGIS_PROJ_VERSION]) + CPPFLAGS="$CPPFLAGS_SAVE" +-- +2.30.0 + diff --git a/package/postgis/Config.in b/package/postgis/Config.in new file mode 100644 index 0000000000..9eb1b762f1 --- /dev/null +++ b/package/postgis/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_POSTGIS + bool "postgis" + depends on BR2_PACKAGE_POSTGRESQL_FULL + depends on BR2_INSTALL_LIBSTDCPP # proj + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11, proj + depends on BR2_TOOLCHAIN_HAS_THREADS # proj + depends on BR2_USE_WCHAR # libgeos, proj + select BR2_PACKAGE_LIBGEOS + select BR2_PACKAGE_PROJ + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + help + PostGIS is a spatial database extender for PostgreSQL + object-relational database. It adds support for + geographic objects allowing location queries + to be run in SQL. + + https://postgis.net/ diff --git a/package/postgis/postgis.hash b/package/postgis/postgis.hash new file mode 100644 index 0000000000..2f0d62728f --- /dev/null +++ b/package/postgis/postgis.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 0e96afef586db6939d48fb22fbfbc9d0de5e6bc1722d6d553d63bb41441a2a7d postgis-3.1.1.tar.gz +sha256 55b69f22e1752830dd565852dc7ff242daf289dbd3a6bfede5db43f90d2e28c9 LICENSE.TXT diff --git a/package/postgis/postgis.mk b/package/postgis/postgis.mk new file mode 100644 index 0000000000..4ab1590302 --- /dev/null +++ b/package/postgis/postgis.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# postgis +# +################################################################################ + +POSTGIS_VERSION = 3.1.1 +POSTGIS_SITE = https://download.osgeo.org/postgis/source +# parallel build issues +POSTGIS_MAKE = $(MAKE1) +POSTGIS_LICENSE = GPL-2.0+ (PostGIS), BSD, MIT, Apache-2.0, ISC, BSL-1.0, CC-BY-SA-3.0 +POSTGIS_LICENSE_FILES = LICENSE.TXT +# configure.ac is patched so need to run autoreconf +POSTGIS_AUTORECONF = YES + +POSTGIS_DEPENDENCIES = postgresql libgeos proj libxml2 + +POSTGIS_CONF_OPTS += \ + --with-pgconfig=$(STAGING_DIR)/usr/bin/pg_config \ + --with-geosconfig=$(STAGING_DIR)/usr/bin/geos-config \ + --with-xml2config=$(STAGING_DIR)/usr/bin/xml2-config + +ifeq ($(BR2_PACKAGE_LIBGDAL),y) +POSTGIS_DEPENDENCIES += libgdal +else +POSTGIS_CONF_OPTS += --without-raster +endif + +ifeq ($(BR2_PACKAGE_PROTOBUF),y) +POSTGIS_DEPENDENCIES += protobuf +else +POSTGIS_CONF_OPTS += --without-protobuf +endif + +$(eval $(autotools-package))