All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v5 1/2] package/libosmium: new package
@ 2021-04-28  4:12 Maxim Kochetkov
  2021-04-28  4:12 ` [Buildroot] [PATCH v5 2/2] package/osm2pgsql: " Maxim Kochetkov
  2021-07-28 21:02 ` [Buildroot] [PATCH v5 1/2] package/libosmium: " Thomas Petazzoni
  0 siblings, 2 replies; 4+ messages in thread
From: Maxim Kochetkov @ 2021-04-28  4:12 UTC (permalink / raw)
  To: buildroot

A fast and flexible C++ library for working with OpenStreetMap data.
Libosmium works on Linux, macOS and Windows.

https://osmcode.org/libosmium/

Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
---
Changes v4 -> v5:
 - Rebased on master
 - Use version 2.17

Changes v3 -> v4:
 - Some minor cleanup
 - Add protozero dependency

 DEVELOPERS                       |  1 +
 package/Config.in                |  1 +
 package/libosmium/Config.in      | 18 ++++++++++++++++++
 package/libosmium/libosmium.hash |  3 +++
 package/libosmium/libosmium.mk   | 30 ++++++++++++++++++++++++++++++
 5 files changed, 53 insertions(+)
 create mode 100644 package/libosmium/Config.in
 create mode 100644 package/libosmium/libosmium.hash
 create mode 100644 package/libosmium/libosmium.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 573d8d84de..c334c2c093 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1842,6 +1842,7 @@ N:	Max Filippov <jcmvbkbc@gmail.com>
 F:	arch/Config.in.xtensa
 
 N:	Maxim Kochetkov <fido_max@inbox.ru>
+F:	package/libosmium/
 F:	package/postgis/
 F:	package/protozero/
 F:	package/timescaledb/
diff --git a/package/Config.in b/package/Config.in
index 6181aaac2c..001beaa0cf 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1925,6 +1925,7 @@ menu "Other"
 	source "package/libloki/Config.in"
 	source "package/libnpth/Config.in"
 	source "package/libnspr/Config.in"
+	source "package/libosmium/Config.in"
 	source "package/libpfm4/Config.in"
 	source "package/libplatform/Config.in"
 	source "package/libplist/Config.in"
diff --git a/package/libosmium/Config.in b/package/libosmium/Config.in
new file mode 100644
index 0000000000..2b4f683be2
--- /dev/null
+++ b/package/libosmium/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_LIBOSMIUM
+	bool "libosmium"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # boost
+	depends on BR2_USE_WCHAR # boost
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_PROTOZERO
+
+	help
+	  A fast and flexible C++ library for working with OpenStreetMap
+	  data. Libosmium works on Linux, macOS and Windows.
+
+	  https://osmcode.org/libosmium/
+
+comment "libosmium needs a toolchain w/ C++,  wchar, threads, gcc >= 4.7"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libosmium/libosmium.hash b/package/libosmium/libosmium.hash
new file mode 100644
index 0000000000..05d898bc7f
--- /dev/null
+++ b/package/libosmium/libosmium.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  4a7672d7caf4da3bc68619912b298462370c423c697871a0be6273c6686e10d6  libosmium-2.17.0.tar.gz
+sha256  c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566  LICENSE
diff --git a/package/libosmium/libosmium.mk b/package/libosmium/libosmium.mk
new file mode 100644
index 0000000000..4601a22bf9
--- /dev/null
+++ b/package/libosmium/libosmium.mk
@@ -0,0 +1,30 @@
+################################################################################
+#
+# libosmium
+#
+################################################################################
+
+LIBOSMIUM_VERSION = 2.17.0
+LIBOSMIUM_SITE = $(call github,osmcode,libosmium,v$(LIBOSMIUM_VERSION))
+LIBOSMIUM_LICENSE = BSL-1.0
+LIBOSMIUM_LICENSE_FILES = LICENSE
+LIBOSMIUM_INSTALL_STAGING = YES
+LIBOSMIUM_DEPENDENCIES = boost protozero
+
+ifeq ($(BR2_PACKAGE_BZIP2),y)
+LIBOSMIUM_DEPENDENCIES += bzip2
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGEOS),y)
+LIBOSMIUM_DEPENDENCIES += libgeos
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGDAL),y)
+LIBOSMIUM_DEPENDENCIES += libgdal
+endif
+
+ifeq ($(BR2_PACKAGE_PROJ),y)
+LIBOSMIUM_DEPENDENCIES += proj
+endif
+
+$(eval $(cmake-package))
-- 
2.30.2

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

* [Buildroot] [PATCH v5 2/2] package/osm2pgsql: new package
  2021-04-28  4:12 [Buildroot] [PATCH v5 1/2] package/libosmium: new package Maxim Kochetkov
@ 2021-04-28  4:12 ` Maxim Kochetkov
  2021-07-28 21:32   ` Thomas Petazzoni
  2021-07-28 21:02 ` [Buildroot] [PATCH v5 1/2] package/libosmium: " Thomas Petazzoni
  1 sibling, 1 reply; 4+ messages in thread
From: Maxim Kochetkov @ 2021-04-28  4:12 UTC (permalink / raw)
  To: buildroot

osm2pgsql is a tool for loading OpenStreetMap data into a
PostgreSQL / PostGIS database suitable for applications like
rendering into a map, geocoding with Nominatim, or general analysis.

https://osm2pgsql.org

Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
---
 DEVELOPERS                       |  1 +
 package/Config.in                |  1 +
 package/osm2pgsql/Config.in      | 27 ++++++++++++++++++++++++
 package/osm2pgsql/osm2pgsql.hash |  3 +++
 package/osm2pgsql/osm2pgsql.mk   | 35 ++++++++++++++++++++++++++++++++
 5 files changed, 67 insertions(+)
 create mode 100644 package/osm2pgsql/Config.in
 create mode 100644 package/osm2pgsql/osm2pgsql.hash
 create mode 100644 package/osm2pgsql/osm2pgsql.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index c334c2c093..be73011e4d 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1843,6 +1843,7 @@ F:	arch/Config.in.xtensa
 
 N:	Maxim Kochetkov <fido_max@inbox.ru>
 F:	package/libosmium/
+F:	package/osm2pgsql/
 F:	package/postgis/
 F:	package/protozero/
 F:	package/timescaledb/
diff --git a/package/Config.in b/package/Config.in
index 001beaa0cf..b000b8c700 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1410,6 +1410,7 @@ menu "Database"
 	source "package/mysql/Config.in"
 	source "package/postgresql/Config.in"
 if BR2_PACKAGE_POSTGRESQL
+	source "package/osm2pgsql/Config.in"
 	source "package/postgis/Config.in"
 endif
 	source "package/redis/Config.in"
diff --git a/package/osm2pgsql/Config.in b/package/osm2pgsql/Config.in
new file mode 100644
index 0000000000..38810c1350
--- /dev/null
+++ b/package/osm2pgsql/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_OSM2PGSQL
+	bool "osm2pgsql"
+	depends on BR2_PACKAGE_POSTGRESQL
+	depends on BR2_INSTALL_LIBSTDCPP # boost, fmt
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # boost
+	depends on BR2_USE_WCHAR # boost, fmt
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_BOOST_SYSTEM
+	select BR2_PACKAGE_BOOST_FILESYSTEM
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_FMT
+	select BR2_PACKAGE_LIBOSMIUM
+	select BR2_PACKAGE_PROTOZERO
+	select BR2_PACKAGE_ZLIB
+	help
+	  osm2pgsql is a tool for loading OpenStreetMap data into a
+	  PostgreSQL / PostGIS database suitable for applications like
+	  rendering into a map, geocoding with Nominatim,
+	  or general analysis.
+
+	  https://osm2pgsql.org
+
+comment "osm2pgsql needs a toolchain w/ C++,  wchar, threads, gcc >= 4.7"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/osm2pgsql/osm2pgsql.hash b/package/osm2pgsql/osm2pgsql.hash
new file mode 100644
index 0000000000..13e8de4b51
--- /dev/null
+++ b/package/osm2pgsql/osm2pgsql.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  fc68283930ccd468ed9b28685150741b16083fec86800a4b011884ae22eb061c  osm2pgsql-1.4.2.tar.gz
+sha256  ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6  COPYING
diff --git a/package/osm2pgsql/osm2pgsql.mk b/package/osm2pgsql/osm2pgsql.mk
new file mode 100644
index 0000000000..caa6989b3b
--- /dev/null
+++ b/package/osm2pgsql/osm2pgsql.mk
@@ -0,0 +1,35 @@
+################################################################################
+#
+# osm2pgsql
+#
+################################################################################
+
+OSM2PGSQL_VERSION = 1.4.2
+OSM2PGSQL_SITE = $(call github,openstreetmap,osm2pgsql,$(OSM2PGSQL_VERSION))
+OSM2PGSQL_LICENSE = GPL-2.0+
+OSM2PGSQL_LICENSE_FILES = COPYING
+OSM2PGSQL_SUPPORTS_IN_SOURCE_BUILD = NO
+
+OSM2PGSQL_DEPENDENCIES =  boost bzip2 expat fmt libosmium postgresql protozero zlib
+
+OSM2PGSQL_CONF_OPTS += -DBUILD_TESTS=OFF -DBUILD_COVERAGE=OFF
+OSM2PGSQL_CONF_OPTS += -DEXTERNAL_FMT=ON -DEXTERNAL_LIBOSMIUM=ON -DEXTERNAL_PROTOZERO=ON
+
+ifeq ($(BR2_PACKAGE_LUAJIT),y)
+OSM2PGSQL_DEPENDENCIES += luajit
+OSM2PGSQL_CONF_OPTS +=  -DWITH_LUA=ON -DWITH_LUAJIT=ON
+else ifeq ($(BR2_PACKAGE_LUA),y)
+OSM2PGSQL_DEPENDENCIES += lua
+OSM2PGSQL_CONF_OPTS +=  -DWITH_LUA=ON -DWITH_LUAJIT=OFF
+else
+OSM2PGSQL_CONF_OPTS += -DWITH_LUA=OFF -DWITH_LUAJIT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_PROJ),y)
+OSM2PGSQL_DEPENDENCIES += proj
+OSM2PGSQL_CONF_OPTS += -DUSE_PROJ_LIB=auto
+else
+OSM2PGSQL_CONF_OPTS += -DUSE_PROJ_LIB=off
+endif
+
+$(eval $(cmake-package))
-- 
2.30.2

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

* Re: [Buildroot] [PATCH v5 1/2] package/libosmium: new package
  2021-04-28  4:12 [Buildroot] [PATCH v5 1/2] package/libosmium: new package Maxim Kochetkov
  2021-04-28  4:12 ` [Buildroot] [PATCH v5 2/2] package/osm2pgsql: " Maxim Kochetkov
@ 2021-07-28 21:02 ` Thomas Petazzoni
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2021-07-28 21:02 UTC (permalink / raw)
  To: Maxim Kochetkov; +Cc: buildroot

Hello Maxim,

On Wed, 28 Apr 2021 07:12:14 +0300
Maxim Kochetkov via buildroot <buildroot@busybox.net> wrote:

> A fast and flexible C++ library for working with OpenStreetMap data.
> Libosmium works on Linux, macOS and Windows.
> 
> https://osmcode.org/libosmium/
> 
> Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>

Sorry for the long delay in getting to this package submission, but
there's one good news: I finally applied it!

I found the CMake machinery to not be very clear to understand in terms
of what are the mandatory vs. optional dependencies.

> +ifeq ($(BR2_PACKAGE_BZIP2),y)
> +LIBOSMIUM_DEPENDENCIES += bzip2
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBGEOS),y)
> +LIBOSMIUM_DEPENDENCIES += libgeos
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBGDAL),y)
> +LIBOSMIUM_DEPENDENCIES += libgdal
> +endif

This package doesn't exist in Buildroot I'm afraid, so I dropped this.

Also, I've added optional dependencies on zlib, expat, lz4, to match
with the optional dependencies that we have in Buildroot, and which
libosmium can use.

Do not hesitate to check the final commit and see if it works for you.

Best regards,

Thomas Petazzoni
-- 
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] 4+ messages in thread

* Re: [Buildroot] [PATCH v5 2/2] package/osm2pgsql: new package
  2021-04-28  4:12 ` [Buildroot] [PATCH v5 2/2] package/osm2pgsql: " Maxim Kochetkov
@ 2021-07-28 21:32   ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2021-07-28 21:32 UTC (permalink / raw)
  To: Maxim Kochetkov via buildroot; +Cc: Maxim Kochetkov, buildroot

On Wed, 28 Apr 2021 07:12:15 +0300
Maxim Kochetkov via buildroot <buildroot@busybox.net> wrote:

> osm2pgsql is a tool for loading OpenStreetMap data into a
> PostgreSQL / PostGIS database suitable for applications like
> rendering into a map, geocoding with Nominatim, or general analysis.
> 
> https://osm2pgsql.org
> 
> Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
> ---
>  DEVELOPERS                       |  1 +
>  package/Config.in                |  1 +
>  package/osm2pgsql/Config.in      | 27 ++++++++++++++++++++++++
>  package/osm2pgsql/osm2pgsql.hash |  3 +++
>  package/osm2pgsql/osm2pgsql.mk   | 35 ++++++++++++++++++++++++++++++++
>  5 files changed, 67 insertions(+)
>  create mode 100644 package/osm2pgsql/Config.in
>  create mode 100644 package/osm2pgsql/osm2pgsql.hash
>  create mode 100644 package/osm2pgsql/osm2pgsql.mk

Applied to master with a few minor formatting tweaks. Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, 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] 4+ messages in thread

end of thread, other threads:[~2021-07-28 21:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-28  4:12 [Buildroot] [PATCH v5 1/2] package/libosmium: new package Maxim Kochetkov
2021-04-28  4:12 ` [Buildroot] [PATCH v5 2/2] package/osm2pgsql: " Maxim Kochetkov
2021-07-28 21:32   ` Thomas Petazzoni
2021-07-28 21:02 ` [Buildroot] [PATCH v5 1/2] package/libosmium: " Thomas Petazzoni

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.