All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/postgis: new package
Date: Tue, 9 Feb 2021 23:33:18 +0100	[thread overview]
Message-ID: <20210209233318.7f2538aa@gmx.net> (raw)
In-Reply-To: <20210209210453.42073e66@gmx.net>

Hello Maxim,

and one last task (hopefully)...

On Tue, 9 Feb 2021 21:04:53 +0100, Peter Seiderer <ps.report@gmx.net> wrote:

> Hello Maxim,
>
> some more review comments, see inline...
>
> On Sun, 7 Feb 2021 11:57:57 +0100, Peter Seiderer <ps.report@gmx.net> wrote:
>
> > Hello Maxim,
> >
> > thanks for the patch, did a (compile) test of the package, found one
> > major problem, fixed by [1]...
> >
> > And some minor check-package warnings to improve, see below...
> >
> > On Tue, 26 Jan 2021 16:39:08 +0300, Maxim Kochetkov via buildroot <buildroot@busybox.net> wrote:
> >
> > > 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
> >
> > package/postgis/0001-Add-HAVE_VASPRINTF-HAVE_ASPRINTF-templates.patch:4: generate your patches with 'git format-patch -N'
> >
> > > +
> > > +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
> >
> > package/postgis/0002-Use-pkg-config-to-get-PROJ-version-if-available.patch:4: generate your patches with 'git format-patch -N'
> >
> > > +
> > > +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
> >
> > package/postgis/0003-Add-POSTGIS_DEBUG_LEVEL-define-to-configure.ac.patch:4: generate your patches with 'git format-patch -N'
> >
> > > +
> > > +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
> >
> > package/postgis/0004-Disable-forced-static-linking-of-liblwgeom.patch:4: generate your patches with 'git format-patch -N'
> >
> > > +
> > > +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

LIBGEOS depends on BR2_USE_WCHAR, needs to propagated here...

> > > +	select BR2_PACKAGE_PROJ

Depends on:

        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

needs to propagated here...

Regards,
Peter

> > > +	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.
> >
> > package/postgis/Config.in:9: help text: <tab><2 spaces><62 chars> (http://nightly.buildroot.org/#writing-rules-config-in)
> > package/postgis/Config.in:10: help text: <tab><2 spaces><62 chars> (http://nightly.buildroot.org/#writing-rules-config-in)
> >
> > > +
> > > +	  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
>
> Main license is GPLv2 and later, the correct SPDX identifier is GPL-2.0+
>
> The full text from LICENSE.TXT mentions some more licenses:
>
>   In general PostGIS may be distributed and/or modified under the conditions
>   of the GNU General Public License, either version 2 or (at your option) any
>   later version. Please refer to the COPYING file for details.
>
>   PostGIS has dependencies on other libraries which are not under GPL and
>   that are commonly distributed with PostGIS core libraries.  In general
>   these are dynamically linked libraries.  Libraries are as follows:
>
>   Proj4 - http://proj.osgeo.org -- X/MIT License
>   GEOS - http://geos.osgeo.org -- LGPL License
>   LibXML - http://xmlsoft.org/ -- X/MIT License
>   GDAL - http://gdal.osgeo.org/ -- X/MIT Style License
>
>   Source files included with PostGIS not under GPL
>   ------------------------------------------------
>
>   -- The following loader/dumper files are derivative works or direct ports
>   of ShapeLib which is under an X/MIT License: loader/dbfopen, safileio.*,
>   shapefil.h, shpopen.c (copyrighted by Frank Warmerdam and Even Rouault).
>
>   -- loader/getopt.* are under AT&T public domain (Copyright (c) 1984, 1985 AT&T).
>
>   -- Doc/xsl files
>   These are under a BSD Style license
>
>   -- liblwgeom/lookup3.c is released under Public Domain by Bob Jenkins, May 2006.
>
>   -- deps/ryu (see LICENSE in folder) is released under the Apache 2.0 license;
>   alternatively, in can be used under the Boost 1.0 license. Copyrighted by Ulf
>   Adams and contributors.
>
>   -- deps/uthash (see LICENSE in folder) is released under a simplified BSD
>   license. Copyright (c) 2005-2018, Troy D. Hanson.
>
>   -- deps/wagyu (see LICENSE.README in folder) includes code released under the
>   ISC license (copyrighted by Mapbox) and the Boost Software License (copyrighted
>   by Angus Johnson and Mapbox). Copyright for "almost_equal.hpp" file is held by
>   Google Inc and its license is listed at the top of that file.
>
>   The documentation for PostGIS is under a creative commons share-alike
>   3.0 license.  http://creativecommons.org/licenses/by-sa/3.0/
>
>   Data used in documentation falls in one of the following categories
>   - Many of the examples in the topology and tiger geocoder section utilize
>     data from US Census Tiger data 2010
>     http://www.census.gov/geo/www/tiger/tgrshp2010/tgrshp2010.html
>   - data or snapshots generated by community
>   - many images autogenerated by PostGIS documentation generator (which
>     utilizes ImageMagick) as described
>     http://trac.osgeo.org/postgis/wiki/DevWikiDocNewFeature
>   - PostGIS raster output functions such as the ST_AsPNG etc.
>   - raster/vector data from MassGIS: http://www.mass.gov/mgis/laylist.htm
>
> So the POSTGIS_LICENSE entry needs some more info added...
>
> > > +POSTGIS_LICENSE_FILES = LICENSE
>
> The file is called LICENSE.TXT (as your did in the postgis.hash file)...
>
> > > +POSTGIS_AUTORECONF = YES
>
> Should be prefixed by a comment like '# patch touching configure.ac'...
>
> Regards,
> Peter
>
> > > +
> > > +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))
> >
> > Regards,
> > Peter
> >
> > [1] http://patchwork.ozlabs.org/project/buildroot/patch/20210207105028.24251-1-ps.report at gmx.net/
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

      reply	other threads:[~2021-02-09 22:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-26 13:39 [Buildroot] [PATCH 1/1] package/postgis: new package Maxim Kochetkov
2021-02-07 10:57 ` 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 [this message]

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=20210209233318.7f2538aa@gmx.net \
    --to=ps.report@gmx.net \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

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

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