From patchwork Fri Oct 2 11:21:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?0JvQtdC+0L3QuNC0INCu0YDRjNC10LIgKExlb25pZCBZdXJpZXYp?= X-Patchwork-Id: 1375655 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=yuriev.ru Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=yuriev-ru.20150623.gappssmtp.com header.i=@yuriev-ru.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=SupQtHRL; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4C2ndr6h6wz9s1t for ; Fri, 2 Oct 2020 21:22:24 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 8510A27422; Fri, 2 Oct 2020 11:22:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p+fCnkpwSAx9; Fri, 2 Oct 2020 11:22:09 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 71B73274E2; Fri, 2 Oct 2020 11:22:06 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 8B0D41BF2E3 for ; Fri, 2 Oct 2020 11:22:05 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 5DC34273E1 for ; Fri, 2 Oct 2020 11:22:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RNCN71IM+zAT for ; Fri, 2 Oct 2020 11:22:03 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by silver.osuosl.org (Postfix) with ESMTPS id 39809204EB for ; Fri, 2 Oct 2020 11:22:03 +0000 (UTC) Received: by mail-lj1-f196.google.com with SMTP id k25so896445ljk.0 for ; Fri, 02 Oct 2020 04:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yuriev-ru.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WDjcvbbebBA8DtIBX+K8q7RQO+lqOkD7bmMc12YUuJ4=; b=SupQtHRLF8ybR5GihS9kFDXpeGoMeWDhRalaKlxp6DANgM43kGAGtzsbobV6IStaza HpVQFdHAyjpendNqA2qOIZ+Nvfg21mQH0kh3XnHC879C5dgezwxjXxBT7hVQsOljmiI2 irqhzzDMgePOQDZ9qGIJ7ofKiZeVtHE3fELak46ion0D1pNg4GV5BT0D4+1XZNT36H1H wKVgz6wTpD7eUTYsuGeSHcYt52vE3qmzj0HpNiTnbvUt+amavF9q2xfs6IdmisdxFsEd 7Db6y94i0t+2YCnia7AdXcf6KnDHXWsVDgR3vqVtWL7K3IRXkUJJWKeBK+TM0XALUM1L 7AOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WDjcvbbebBA8DtIBX+K8q7RQO+lqOkD7bmMc12YUuJ4=; b=b9fIedfFvBKdH+cE+1PsXRgG7gy/1OCNrF1ouXsTU20Dz4R4e9/IoM4oQX6IZ8l8mR 0t3CKQpXRsigskY4kEI7nTKyy3i3mAhC7FztIPCVUOyP1rOkenlwdkNLGvwpbK27xCHU qhZfZgFE5unFWrihj4eOMO4xWf0kt21+tk0V2flWVyGKzGDNODDw7erzC+UL+l4zt22+ /4YrNmtwsZSyltgXAbTKpiKEYc+BrZ0qUE/bkaRszJsSxB69ae90uHLcmcqWnoe5S5+t XzzJ4hdMJtwQbi7SHVBLSRGhEUNS9QkGhOYYOmNRkvvTzcHAyxaT5QQWncmNfioQgVVM BliA== X-Gm-Message-State: AOAM531qGZRag5sgxnB/dxm3D1zelC+ZsqR8cLOfAEIsceDcjSCQCJ3S QdVV3q0NxfEYMeMGepPW8i4HfuRTqQV1Zg== X-Google-Smtp-Source: ABdhPJxVYfR3Fl7bYIxDYe1xdi7HVq6HDIstls96Ga8ldSEozAjQjzVg+ACGSbw0LWKYjoGOM+P3kA== X-Received: by 2002:a2e:9b51:: with SMTP id o17mr627997ljj.141.1601637720919; Fri, 02 Oct 2020 04:22:00 -0700 (PDT) Received: from ly-ThinkPad-X1-Carbon-2nd.router.bigbrother-matrix.ru ([31.130.36.33]) by smtp.gmail.com with ESMTPSA id r4sm245453lfi.25.2020.10.02.04.22.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Oct 2020 04:22:00 -0700 (PDT) From: Leonid Yuriev To: buildroot@buildroot.org Date: Fri, 2 Oct 2020 14:21:43 +0300 Message-Id: <20201002112143.17656-2-leo@yuriev.ru> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201002112143.17656-1-leo@yuriev.ru> References: <20201002112143.17656-1-leo@yuriev.ru> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2 1/1] package/libmdbx: new package (library/database). X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leo@yuriev.ru Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" This patch adds libmdbx v0.9.1: - 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 --- Changes v1 -> v2: - libmdbx version v0.8.2 -> v0.9.1 (released 2020-09-30) Signed-off-by: Leonid Yuriev --- DEVELOPERS | 3 ++ package/Config.in | 1 + package/libmdbx/Config.in | 35 ++++++++++++++++++++++ package/libmdbx/libmdbx.hash | 2 ++ package/libmdbx/libmdbx.mk | 57 ++++++++++++++++++++++++++++++++++++ 5 files changed, 98 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 9352d891d3..301372fc40 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1544,6 +1544,9 @@ N: Leon Anavi F: board/olimex/a10_olinuxino F: configs/olimex_a10_olinuxino_lime_defconfig +N: Leonid Yuriev +F: package/libmdbx + N: Lionel Flandrin F: package/python-babel/ F: package/python-daemonize/ diff --git a/package/Config.in b/package/Config.in index 51583d07d6..f87e0388a0 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1370,6 +1370,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..7d2d321095 --- /dev/null +++ b/package/libmdbx/Config.in @@ -0,0 +1,35 @@ +config BR2_PACKAGE_LIBMDBX + bool "libmdbx" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + depends on BR2_TOOLCHAIN_HAS_SYNC_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 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. + +# C++ API is preliminary for now +#config BR2_PACKAGE_LIBMDBX_CXX +# bool "C++ API" +# select BR2_INSTALL_LIBSTDCPP +# help +# Enable modern C++ API for libmdbx. + +endif + +comment "libmdbx needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/libmdbx/libmdbx.hash b/package/libmdbx/libmdbx.hash new file mode 100644 index 0000000000..f48cd81a7d --- /dev/null +++ b/package/libmdbx/libmdbx.hash @@ -0,0 +1,2 @@ +sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE +sha256 c7fb24381eb4d92f2e2edc17e577cb721269683c816c6cca307c58f6f346e786 libmdbx-amalgamated-0.9.1.tar.gz diff --git a/package/libmdbx/libmdbx.mk b/package/libmdbx/libmdbx.mk new file mode 100644 index 0000000000..894b7f0838 --- /dev/null +++ b/package/libmdbx/libmdbx.mk @@ -0,0 +1,57 @@ +################################################################################ +# +# libmdbx +# +# One of the fastest embeddable key-value ACID database without WAL. libmdbx is +# superior to legendary LMDB in terms of reliability, features and performance. +# +################################################################################ + +LIBMDBX_VERSION = 0.9.1 +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:BOOL=OFF -DBUILD_FOR_NATIVE_CPU:BOOL=OFF + +# C++ API is preliminary for now +#ifeq ($(BR2_PACKAGE_LIBMDBX_CXX),y) +#LIBMDBX_CONF_OPTS += -DMDBX_BUILD_CXX:BOOL=ON +#else +#LIBMDBX_CONF_OPTS += -DMDBX_BUILD_CXX:BOOL=OFF +#endif + +ifeq ($(BR2_STATIC_LIBS),y) +LIBMDBX_CONF_OPTS += -DMDBX_INSTALL_STATIC:BOOL=ON +else +LIBMDBX_CONF_OPTS += -DMDBX_INSTALL_STATIC:BOOL=OFF +endif + +ifeq ($(BR2_SHARED_LIBS),y) +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_SHARED_LIBRARY:BOOL=ON +LIBMDBX_INSTALL_TARGET = YES +ifeq ($(BR2_PACKAGE_LIBMDBX_TOOLS),y) +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_TOOLS:BOOL=ON -DMDBX_LINK_TOOLS_NONSTATIC:BOOL=ON +else +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_TOOLS:BOOL=OFF +endif + +else + +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_SHARED_LIBRARY:BOOL=OFF +ifeq ($(BR2_PACKAGE_LIBMDBX_TOOLS),y) +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_TOOLS:BOOL=ON -DMDBX_LINK_TOOLS_NONSTATIC:BOOL=OFF +LIBMDBX_INSTALL_TARGET = YES +else +LIBMDBX_CONF_OPTS += -DMDBX_BUILD_TOOLS:BOOL=OFF +LIBMDBX_INSTALL_TARGET = NO +endif + +endif + +$(eval $(cmake-package))