All of 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 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.