Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v5 1/1] package/libmdbx: new package (library/database).
Date: Thu, 31 Dec 2020 14:54:56 +0100	[thread overview]
Message-ID: <20201231135456.GF2902@scaer> (raw)
In-Reply-To: <20201127135143.1104192-1-leo@yuriev.ru>

Leonid, All,

On 2020-11-27 16:51 +0300, Leonid Yuriev spake thusly:
> This patch adds libmdbx v0.9.2:
>  - libmdbx is one of the fastest compact embeddable key-value ACID database.
>  - libmdbx has a specific set of properties and capabilities,
>    focused on creating unique lightweight solutions.
>  - libmdbx surpasses the legendary LMDB (Lightning Memory-Mapped Database)
>    in terms of reliability, features and performance.
>  - https://github.com/erthink/libmdbx
> 
> Signed-off-by: Leonid Yuriev <leo@yuriev.ru>

Applied to master, thanks.

I just split the assignment lines that were too long.

Regards,
Yann E. MORIN.

> ---
> Changes v1 -> v2:
>   - libmdbx version v0.8.2 -> v0.9.1 (released 2020-09-30)
> 
> Changes v2 -> v3:
>   - removed outcommented stuff (suggested by Heiko Thiery).
>   - cleaned up and simplified the makefile (suggested by Heiko Thiery).
>   - added patch for C++ header installation.
>   - added patch with fix minor copy&paste typo.
>   - added patch with pthread workaround for buggy toolchain/cmake/buildroot.
>   - added patch for `pthread_yield()`.
>   - passed `utils/check-package package/libmdbx/*` (suggested by Heiko Thiery)
>   - passed `utils/test-pkg -a -p libmdbx`,
>     except w/o threads & w/o MMU (suggested by Heiko Thiery).
> 
> Changes v3 -> v4:
>   - fix passing BR2_PACKAGE_LIBMDBX_TOOLS option to cmake.
>   - fix using `depend on` instead of `select`,
>     and add `comment` for C++ toolchain (suggested by Heiko Thiery).
>   - fix minor help typo.
> 
> Changes v4 -> v5:
>   - libmdbx version v0.9.1 -> v0.9.2 (released 2020-11-27)
>   - dropped all patch since not needed.
>   - cosmetic changes (suggested by Thomas Petazzoni <thomas.petazzoni@bootlin.com>).
>   - added dependence of BR2_TOOLCHAIN_HAS_SYNC_4 (suggested by Thomas Petazzoni <thomas.petazzoni@bootlin.com>).
>   - added dependence of !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 (suggested by Thomas Petazzoni <thomas.petazzoni@bootlin.com>).
>   - take in account the BR2_SHARED_STATIC_LIBS (suggested by Thomas Petazzoni <thomas.petazzoni@bootlin.com>).
> 
> Signed-off-by: Leonid Yuriev <leo@yuriev.ru>
> ---
>  DEVELOPERS                   |  3 +++
>  package/Config.in            |  1 +
>  package/libmdbx/Config.in    | 45 ++++++++++++++++++++++++++++++++++++
>  package/libmdbx/libmdbx.hash |  5 ++++
>  package/libmdbx/libmdbx.mk   | 33 ++++++++++++++++++++++++++
>  5 files changed, 87 insertions(+)
>  create mode 100644 package/libmdbx/Config.in
>  create mode 100644 package/libmdbx/libmdbx.hash
>  create mode 100644 package/libmdbx/libmdbx.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 9ab1e125f4..758ff6a2d5 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1482,6 +1482,9 @@ N:	Leon Anavi <leon.anavi@konsulko.com>
>  F:	board/olimex/a10_olinuxino
>  F:	configs/olimex_a10_olinuxino_lime_defconfig
>  
> +N:	Leonid Yuriev <leo@yuriev.ru>
> +F:	package/libmdbx/
> +
>  N:	Lionel Flandrin <lionel@svkt.org>
>  F:	package/python-babel/
>  F:	package/python-daemonize/
> diff --git a/package/Config.in b/package/Config.in
> index 016a99ed1a..a6f95bfaa9 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1372,6 +1372,7 @@ menu "Database"
>  	source "package/kompexsqlite/Config.in"
>  	source "package/leveldb/Config.in"
>  	source "package/libgit2/Config.in"
> +	source "package/libmdbx/Config.in"
>  	source "package/libodb/Config.in"
>  	source "package/libodb-boost/Config.in"
>  	source "package/libodb-mysql/Config.in"
> diff --git a/package/libmdbx/Config.in b/package/libmdbx/Config.in
> new file mode 100644
> index 0000000000..d13f73938f
> --- /dev/null
> +++ b/package/libmdbx/Config.in
> @@ -0,0 +1,45 @@
> +config BR2_PACKAGE_LIBMDBX
> +	bool "libmdbx"
> +	depends on BR2_USE_MMU
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
> +	help
> +	  One of the fastest compact key-value ACID database
> +	  without WAL. libmdbx has a specific set of properties
> +	  and capabilities, focused on creating unique lightweight
> +	  solutions.
> +
> +	  libmdbx surpasses the legendary LMDB in terms of
> +	  reliability, features and performance.
> +
> +	  https://github.com/erthink/libmdbx
> +
> +if BR2_PACKAGE_LIBMDBX
> +
> +config BR2_PACKAGE_LIBMDBX_TOOLS
> +	bool "install tools"
> +	help
> +	  Install libmdbx tools for checking, dump, restore
> +	  and show statistics of databases.
> +
> +config BR2_PACKAGE_LIBMDBX_CXX
> +	bool "C++ API"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
> +	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
> +	help
> +	  Enable modern C++11/14/17/20 API for libmdbx.
> +
> +comment "libmdbx C++ support needs a toolchain w/ C++11, gcc >= 4.8 w/o bug#64735"
> +	depends on !BR2_INSTALL_LIBSTDCPP || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
> +		BR2_TOOLCHAIN_HAS_GCC_BUG_64735
> +
> +endif
> +
> +comment "libmdbx needs MMU, a toolchain w/ threads, gcc >= 4.4 w/ 4-byte atomics"
> +	depends on BR2_USE_MMU
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_HAS_SYNC_4 || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
> diff --git a/package/libmdbx/libmdbx.hash b/package/libmdbx/libmdbx.hash
> new file mode 100644
> index 0000000000..0d3501f1d9
> --- /dev/null
> +++ b/package/libmdbx/libmdbx.hash
> @@ -0,0 +1,5 @@
> +# Hashes from: https://github.com/erthink/libmdbx/releases/
> +sha256  c35cc53d66d74ebfc86e39441ba26276541ac7892bf91dba1e70c83665a02767  libmdbx-amalgamated-0.9.2.tar.gz
> +
> +# Locally calculated
> +sha256  310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569  LICENSE
> diff --git a/package/libmdbx/libmdbx.mk b/package/libmdbx/libmdbx.mk
> new file mode 100644
> index 0000000000..f3720130ec
> --- /dev/null
> +++ b/package/libmdbx/libmdbx.mk
> @@ -0,0 +1,33 @@
> +################################################################################
> +#
> +# libmdbx
> +#
> +################################################################################
> +
> +LIBMDBX_VERSION = 0.9.2
> +LIBMDBX_SOURCE = libmdbx-amalgamated-$(LIBMDBX_VERSION).tar.gz
> +LIBMDBX_SITE = https://github.com/erthink/libmdbx/releases/download/v$(LIBMDBX_VERSION)
> +LIBMDBX_SUPPORTS_IN_SOURCE_BUILD = NO
> +LIBMDBX_LICENSE = OLDAP-2.8
> +LIBMDBX_LICENSE_FILES = LICENSE
> +LIBMDBX_REDISTRIBUTE = YES
> +LIBMDBX_STRIP_COMPONENTS = 0
> +LIBMDBX_INSTALL_STAGING = YES
> +
> +LIBMDBX_CONF_OPTS = -DMDBX_INSTALL_MANPAGES=OFF -DBUILD_FOR_NATIVE_CPU=OFF \
> +	-DMDBX_BUILD_CXX=$(if $(BR2_PACKAGE_LIBMDBX_CXX),ON,OFF) \
> +	-DMDBX_BUILD_TOOLS=$(if $(BR2_PACKAGE_LIBMDBX_TOOLS),ON,OFF)
> +
> +ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
> +LIBMDBX_CONF_OPTS += -DMDBX_INSTALL_STATIC=ON
> +else
> +LIBMDBX_CONF_OPTS += -DMDBX_INSTALL_STATIC=OFF
> +endif
> +
> +ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
> +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_SHARED_LIBRARY=ON -DMDBX_LINK_TOOLS_NONSTATIC=ON
> +else
> +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_SHARED_LIBRARY=OFF -DMDBX_LINK_TOOLS_NONSTATIC=OFF
> +endif
> +
> +$(eval $(cmake-package))
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2020-12-31 13:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-27 13:51 [Buildroot] [PATCH v5 1/1] package/libmdbx: new package (library/database) Leonid Yuriev
2020-12-31 13:54 ` Yann E. MORIN [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-10-06 19:06 [Buildroot] [PATCH v3 " Леонид Юрьев
2020-10-06 19:27 ` [Buildroot] [PATCH v4 " Leonid Yuriev
2020-11-27 13:47   ` [Buildroot] [PATCH v5 0/1] cover letter for " Leonid Yuriev
2020-11-27 13:47     ` [Buildroot] [PATCH v5 1/1] " Leonid Yuriev

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=20201231135456.GF2902@scaer \
    --to=yann.morin.1998@free.fr \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox