All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxim Kochetkov <fido_max@inbox.ru>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/postgis: new package
Date: Tue, 26 Jan 2021 16:39:08 +0300	[thread overview]
Message-ID: <20210126133908.680621-1-fido_max@inbox.ru> (raw)

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 <fido_max@inbox.ru>
---
 package/Config.in                             |  1 +
 ...VE_VASPRINTF-HAVE_ASPRINTF-templates.patch | 32 +++++++++++++++++
 ...fig-to-get-PROJ-version-if-available.patch | 36 +++++++++++++++++++
 ...S_DEBUG_LEVEL-define-to-configure.ac.patch | 29 +++++++++++++++
 ...e-forced-static-linking-of-liblwgeom.patch | 31 ++++++++++++++++
 package/postgis/Config.in                     | 12 +++++++
 package/postgis/postgis.hash                  |  3 ++
 package/postgis/postgis.mk                    | 31 ++++++++++++++++
 8 files changed, 175 insertions(+)
 create mode 100644 package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch
 create mode 100644 package/postgis/0002-Use-pkg-config-to-get-PROJ-version-if-available.patch
 create mode 100644 package/postgis/0003-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch
 create mode 100644 package/postgis/0004-Disable-forced-static-linking-of-liblwgeom.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 06dfc32cc6..5ed3f5df8f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1401,6 +1401,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..7c9e46b7af
--- /dev/null
+++ b/package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch
@@ -0,0 +1,32 @@
+From 1bbc5b921d6b444cbeb505e67e4a4edcc696f592 Mon Sep 17 00:00:00 2001
+From: fidomax <adobegitler@gmail.com>
+Date: Tue, 26 Jan 2021 07:33:17 +0300
+Subject: [PATCH 1/4] 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 <fido_max@inbox.ru>
+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.29.2
+
diff --git a/package/postgis/0002-Use-pkg-config-to-get-PROJ-version-if-available.patch b/package/postgis/0002-Use-pkg-config-to-get-PROJ-version-if-available.patch
new file mode 100644
index 0000000000..cfb58853b5
--- /dev/null
+++ b/package/postgis/0002-Use-pkg-config-to-get-PROJ-version-if-available.patch
@@ -0,0 +1,36 @@
+From 6d78c4d09858af136ba7b3b1cbb73f82f4cc1864 Mon Sep 17 00:00:00 2001
+From: fidomax <adobegitler@gmail.com>
+Date: Tue, 26 Jan 2021 08:48:17 +0300
+Subject: [PATCH 2/4] 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 <fido_max@inbox.ru>
+Fetch from: https://github.com/postgis/postgis/commit/b40c456d51bbd5cb4c15ffd1694a9a7266fe5bcf.patch
+---
+ configure.ac | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index dddb3aef7..bee78800a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -888,7 +888,13 @@ AC_CHECK_HEADER([proj_api.h],
+ 	)
+
+ dnl Return the PROJ.4 version number
+-AC_PROJ_VERSION([POSTGIS_PROJ_VERSION])
++if test ! -z "$PKG_CONFIG"; then
++	PKG_CHECK_MODULES([PROJ], [proj], [
++		POSTGIS_PROJ_VERSION=`$PKG_CONFIG proj --modversion | sed 's/\([[0-9]]\).*\([[0-9]]\).*\([[0-9]]\)/\1\2/'`
++	], [])
++else
++	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.29.2
+
diff --git a/package/postgis/0003-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch b/package/postgis/0003-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch
new file mode 100644
index 0000000000..b883106609
--- /dev/null
+++ b/package/postgis/0003-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch
@@ -0,0 +1,29 @@
+From b9a9518c5cf34189524d6b63c069d383c468d2a1 Mon Sep 17 00:00:00 2001
+From: fidomax <adobegitler@gmail.com>
+Date: Tue, 26 Jan 2021 09:17:17 +0300
+Subject: [PATCH 3/4] 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 <fido_max@inbox.ru>
+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 bee78800a..3dbd6f525 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1137,6 +1137,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.29.2
+
diff --git a/package/postgis/0004-Disable-forced-static-linking-of-liblwgeom.patch b/package/postgis/0004-Disable-forced-static-linking-of-liblwgeom.patch
new file mode 100644
index 0000000000..3507f57d31
--- /dev/null
+++ b/package/postgis/0004-Disable-forced-static-linking-of-liblwgeom.patch
@@ -0,0 +1,31 @@
+From 50a6dd09d1c6c1911e4c1a7515d71f07effe4a50 Mon Sep 17 00:00:00 2001
+From: fidomax <adobegitler@gmail.com>
+Date: Tue, 26 Jan 2021 09:49:19 +0300
+Subject: [PATCH 4/4] 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 <fido_max@inbox.ru>
+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.29.2
+
diff --git a/package/postgis/Config.in b/package/postgis/Config.in
new file mode 100644
index 0000000000..b04de3f5db
--- /dev/null
+++ b/package/postgis/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_POSTGIS
+	bool "postgis"
+	depends on BR2_PACKAGE_POSTGRESQL_FULL
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_LIBGEOS
+	select BR2_PACKAGE_PROJ
+	select BR2_PACKAGE_LIBXML2
+	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..0abf2f7297
--- /dev/null
+++ b/package/postgis/postgis.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  da06e2456876cd0c6a9bee0636ff700982e900c597d1e4cb80a99a2623400201  postgis-3.1.0.tar.gz
+sha256  55b69f22e1752830dd565852dc7ff242daf289dbd3a6bfede5db43f90d2e28c9  LICENSE.TXT
diff --git a/package/postgis/postgis.mk b/package/postgis/postgis.mk
new file mode 100644
index 0000000000..85102d323a
--- /dev/null
+++ b/package/postgis/postgis.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# postgis
+#
+################################################################################
+
+POSTGIS_VERSION = 3.1.0
+POSTGIS_SITE = https://download.osgeo.org/postgis/source
+# parallel build issues
+POSTGIS_MAKE = $(MAKE1)
+POSTGIS_LICENSE = GPL
+POSTGIS_LICENSE_FILES = LICENSE
+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
+
+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))
-- 
2.29.2

             reply	other threads:[~2021-01-26 13:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-26 13:39 Maxim Kochetkov [this message]
2021-02-07 10:57 ` [Buildroot] [PATCH 1/1] package/postgis: new package Peter Seiderer
2021-02-08  4:30   ` Maxim Kochetkov
2021-02-08 17:43     ` Peter Seiderer
2021-02-09 20:04   ` Peter Seiderer
2021-02-09 22:33     ` Peter Seiderer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210126133908.680621-1-fido_max@inbox.ru \
    --to=fido_max@inbox.ru \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is 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.