Message ID | 20240403085424.1650628-1-francois.perrad@gadz.org |
---|---|
State | Superseded |
Headers | show |
Series | [1/3] package/lmdb: new package | expand |
François, All, +Mauro for pyhon-lmdb +Emile for python-zlmdb On 2024-04-03 10:54 +0200, Francois Perrad spake thusly: > Signed-off-by: Francois Perrad <francois.perrad@gadz.org> [--SNIP--] > diff --git a/package/lmdb/Config.in b/package/lmdb/Config.in > new file mode 100644 > index 0000000000..f4ae9f3103 > --- /dev/null > +++ b/package/lmdb/Config.in > @@ -0,0 +1,13 @@ > +config BR2_PACKAGE_LMDB > + bool "lmdb" > + depends on BR2_TOOLCHAIN_HAS_THREADS > + help > + OpenLDAP Lightning Memory-Mapped Database > + > + LMDB is compact, fast, powerful, and robust and implements > + a simplified variant of the BerkeleyDB (BDB) API. > + > + https://symas.com/lmdb/ > + > +comment "lmdb needs a toolchain w/ threads" > + depends on !BR2_TOOLCHAIN_HAS_THREADS Mauro, Emile: python-lmdb bundles a copy of lmdb, but it is possible to configure it to use the system-provided library instead [0]. Do you know if there would be adverse effects to do so in Buildroot? Indeed, we prefer to configure packages to use system libraries rather than use there bundled copy whenever possible... [0] https://lmdb.readthedocs.io/en/release/#installation-unix I haven't looked at python-zlmdb, though... [--SNIP--] > diff --git a/package/lmdb/lmdb.mk b/package/lmdb/lmdb.mk > new file mode 100644 > index 0000000000..5e2ad2d05a > --- /dev/null > +++ b/package/lmdb/lmdb.mk > @@ -0,0 +1,35 @@ > +################################################################################ > +# > +# lmdb > +# > +################################################################################ > + > +LMDB_VERSION = 0.9.31 > +LMDB_SITE = $(call github,LMDB,lmdb,LMDB_$(LMDB_VERSION)) > +LMDB_LICENSE = OpenLDAP Public License I think we want to use the SPDX short tag here: OLDAP-2.8. Incidentally, this is also what is already used for python-lmdb. > +LMDB_LICENSE_FILES = libraries/liblmdb/LICENSE > +LMDB_INSTALL_STAGING = YES > + > +define LMDB_BUILD_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > + CC="$(TARGET_CC)" \ > + XCFLAGS="$(TARGET_CFLAGS)" \ > + AR="$(TARGET_CROSS)ar" \ Why not use $(TARGET_CONFIGURE_OPTS) and just add the special XCFLAGS? > + all 'all' is usually the default target, for being the first in the Makefile, which is also the cae here, so there is no reason to specify it. > +endef > + > +define LMDB_INSTALL_STAGING_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > + DESTDIR="$(STAGING_DIR)" \ > + prefix=/usr \ > + install > +endef > + > +define LMDB_INSTALL_TARGET_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > + DESTDIR="$(TARGET_DIR)" \ > + prefix=/usr \ > + install > +endef > + > +$(eval $(generic-package)) > -- > 2.39.2 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Hi, My only interest in python-zlmdb was to be able to build a more recent version of Crossbar, and I didn't even use that database component of Crossbar that depended on ZLMDB. I no longer use Crossbar (I'm developing my own C++ WAMP router), so I've lost interest in those packages long ago. Sorry, but I don't remember much about what I did concerning Crossbar and Buildroot. I can tell you that the philosophy behind Crossbar's build is not to rely too much on installed system packages. Unless someone is still actively using it, you may want to consider dropping Crossbar support in Buildroot because the amount of work needed to be able to build the latest version in Buildroot is monumental. Cheers, Emile Cormier On Wed, Apr 3, 2024 at 5:57 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > François, All, > > +Mauro for pyhon-lmdb > +Emile for python-zlmdb > > On 2024-04-03 10:54 +0200, Francois Perrad spake thusly: > > Signed-off-by: Francois Perrad <francois.perrad@gadz.org> > [--SNIP--] > > diff --git a/package/lmdb/Config.in b/package/lmdb/Config.in > > new file mode 100644 > > index 0000000000..f4ae9f3103 > > --- /dev/null > > +++ b/package/lmdb/Config.in > > @@ -0,0 +1,13 @@ > > +config BR2_PACKAGE_LMDB > > + bool "lmdb" > > + depends on BR2_TOOLCHAIN_HAS_THREADS > > + help > > + OpenLDAP Lightning Memory-Mapped Database > > + > > + LMDB is compact, fast, powerful, and robust and implements > > + a simplified variant of the BerkeleyDB (BDB) API. > > + > > + https://symas.com/lmdb/ > > + > > +comment "lmdb needs a toolchain w/ threads" > > + depends on !BR2_TOOLCHAIN_HAS_THREADS > > Mauro, Emile: python-lmdb bundles a copy of lmdb, but it is possible to > configure it to use the system-provided library instead [0]. Do you know > if there would be adverse effects to do so in Buildroot? Indeed, we > prefer to configure packages to use system libraries rather than use > there bundled copy whenever possible... > > [0] https://lmdb.readthedocs.io/en/release/#installation-unix > > I haven't looked at python-zlmdb, though... > > [--SNIP--] > > diff --git a/package/lmdb/lmdb.mk b/package/lmdb/lmdb.mk > > new file mode 100644 > > index 0000000000..5e2ad2d05a > > --- /dev/null > > +++ b/package/lmdb/lmdb.mk > > @@ -0,0 +1,35 @@ > > > +################################################################################ > > +# > > +# lmdb > > +# > > > +################################################################################ > > + > > +LMDB_VERSION = 0.9.31 > > +LMDB_SITE = $(call github,LMDB,lmdb,LMDB_$(LMDB_VERSION)) > > +LMDB_LICENSE = OpenLDAP Public License > > I think we want to use the SPDX short tag here: OLDAP-2.8. Incidentally, > this is also what is already used for python-lmdb. > > > +LMDB_LICENSE_FILES = libraries/liblmdb/LICENSE > > +LMDB_INSTALL_STAGING = YES > > + > > +define LMDB_BUILD_CMDS > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > > + CC="$(TARGET_CC)" \ > > + XCFLAGS="$(TARGET_CFLAGS)" \ > > + AR="$(TARGET_CROSS)ar" \ > > Why not use $(TARGET_CONFIGURE_OPTS) and just add the special XCFLAGS? > > > + all > > 'all' is usually the default target, for being the first in the > Makefile, which is also the cae here, so there is no reason to specify > it. > > > +endef > > + > > +define LMDB_INSTALL_STAGING_CMDS > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > > + DESTDIR="$(STAGING_DIR)" \ > > + prefix=/usr \ > > + install > > +endef > > + > > +define LMDB_INSTALL_TARGET_CMDS > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > > + DESTDIR="$(TARGET_DIR)" \ > > + prefix=/usr \ > > + install > > +endef > > + > > +$(eval $(generic-package)) > > -- > > 2.39.2 > > > > _______________________________________________ > > buildroot mailing list > > buildroot@buildroot.org > > https://lists.buildroot.org/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. | > > '------------------------------^-------^------------------^--------------------' >
Emile, All, On 2024-04-03 18:17 -0300, Emile Cormier spake thusly: > My only interest in python-zlmdb was to be able to build a more recent version > of Crossbar, and I didn't even use that database component of Crossbar that > depended on ZLMDB. [--SNIP--] > Unless someone is still actively using it, you may want to consider dropping > Crossbar support in Buildroot because the amount of work needed to be able to > build the latest version in Buildroot is monumental. We've already removed crossbar a little while ago, as it is not python-3.12 compatible, and it did not seem to be on the radar upstream... As for python-zlmdb, unless it gets broken, there is no reason to drop it for now. Thanks for your quick reply providing some useful context! :-) Regards, Yann E. MORIN. > Cheers, > Emile Cormier > > On Wed, Apr 3, 2024 at 5:57 PM Yann E. MORIN <[1]yann.morin.1998@free.fr> > wrote: > > François, All, > > +Mauro for pyhon-lmdb > +Emile for python-zlmdb > > On 2024-04-03 10:54 +0200, Francois Perrad spake thusly: > > Signed-off-by: Francois Perrad <[2]francois.perrad@gadz.org> > [--SNIP--] > > diff --git a/package/lmdb/Config.in b/package/lmdb/Config.in > > new file mode 100644 > > index 0000000000..f4ae9f3103 > > --- /dev/null > > +++ b/package/lmdb/Config.in > > @@ -0,0 +1,13 @@ > > +config BR2_PACKAGE_LMDB > > + bool "lmdb" > > + depends on BR2_TOOLCHAIN_HAS_THREADS > > + help > > + OpenLDAP Lightning Memory-Mapped Database > > + > > + LMDB is compact, fast, powerful, and robust and implements > > + a simplified variant of the BerkeleyDB (BDB) API. > > + > > + [3]https://symas.com/lmdb/ > > + > > +comment "lmdb needs a toolchain w/ threads" > > + depends on !BR2_TOOLCHAIN_HAS_THREADS > > Mauro, Emile: python-lmdb bundles a copy of lmdb, but it is possible to > configure it to use the system-provided library instead [0]. Do you know > if there would be adverse effects to do so in Buildroot? Indeed, we > prefer to configure packages to use system libraries rather than use > there bundled copy whenever possible... > > [0] [4]https://lmdb.readthedocs.io/en/release/#installation-unix > > I haven't looked at python-zlmdb, though... > > [--SNIP--] > > diff --git a/package/lmdb/[5]lmdb.mk b/package/lmdb/[6]lmdb.mk > > new file mode 100644 > > index 0000000000..5e2ad2d05a > > --- /dev/null > > +++ b/package/lmdb/[7]lmdb.mk > > @@ -0,0 +1,35 @@ > > +######################################################################## > ######## > > +# > > +# lmdb > > +# > > +######################################################################## > ######## > > + > > +LMDB_VERSION = 0.9.31 > > +LMDB_SITE = $(call github,LMDB,lmdb,LMDB_$(LMDB_VERSION)) > > +LMDB_LICENSE = OpenLDAP Public License > > I think we want to use the SPDX short tag here: OLDAP-2.8. Incidentally, > this is also what is already used for python-lmdb. > > > +LMDB_LICENSE_FILES = libraries/liblmdb/LICENSE > > +LMDB_INSTALL_STAGING = YES > > + > > +define LMDB_BUILD_CMDS > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > > + CC="$(TARGET_CC)" \ > > + XCFLAGS="$(TARGET_CFLAGS)" \ > > + AR="$(TARGET_CROSS)ar" \ > > Why not use $(TARGET_CONFIGURE_OPTS) and just add the special XCFLAGS? > > > + all > > 'all' is usually the default target, for being the first in the > Makefile, which is also the cae here, so there is no reason to specify > it. > > > +endef > > + > > +define LMDB_INSTALL_STAGING_CMDS > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > > + DESTDIR="$(STAGING_DIR)" \ > > + prefix=/usr \ > > + install > > +endef > > + > > +define LMDB_INSTALL_TARGET_CMDS > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ > > + DESTDIR="$(TARGET_DIR)" \ > > + prefix=/usr \ > > + install > > +endef > > + > > +$(eval $(generic-package)) > > -- > > 2.39.2 > > > > _______________________________________________ > > buildroot mailing list > > [8]buildroot@buildroot.org > > [9]https://lists.buildroot.org/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 | > | [10]http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v > conspiracy. | > '------------------------------^-------^------------------^ > --------------------' > > > References: > > [1] mailto:yann.morin.1998@free.fr > [2] mailto:francois.perrad@gadz.org > [3] https://symas.com/lmdb/ > [4] https://lmdb.readthedocs.io/en/release/#installation-unix > [5] http://lmdb.mk/ > [6] http://lmdb.mk/ > [7] http://lmdb.mk/ > [8] mailto:buildroot@buildroot.org > [9] https://lists.buildroot.org/mailman/listinfo/buildroot > [10] http://ymorin.is-a-geek.org/ > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/DEVELOPERS b/DEVELOPERS index 904c7ebf2d..5b47ee4e29 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1126,6 +1126,7 @@ F: package/libwpe/ F: package/linenoise/ F: package/ljlinenoise/ F: package/lua-inotify/ +F: package/lmdb/ F: package/lpeg/ F: package/lpty/ F: package/lrandom/ diff --git a/package/Config.in b/package/Config.in index 5a3410d758..4473169544 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1556,6 +1556,7 @@ menu "Database" source "package/libodb-mysql/Config.in" source "package/libodb-pgsql/Config.in" source "package/libpqxx/Config.in" + source "package/lmdb/Config.in" source "package/mongodb/Config.in" source "package/mysql/Config.in" source "package/postgresql/Config.in" diff --git a/package/lmdb/Config.in b/package/lmdb/Config.in new file mode 100644 index 0000000000..f4ae9f3103 --- /dev/null +++ b/package/lmdb/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_LMDB + bool "lmdb" + depends on BR2_TOOLCHAIN_HAS_THREADS + help + OpenLDAP Lightning Memory-Mapped Database + + LMDB is compact, fast, powerful, and robust and implements + a simplified variant of the BerkeleyDB (BDB) API. + + https://symas.com/lmdb/ + +comment "lmdb needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/lmdb/lmdb.hash b/package/lmdb/lmdb.hash new file mode 100644 index 0000000000..d72c66aace --- /dev/null +++ b/package/lmdb/lmdb.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 dd70a8c67807b3b8532b3e987b0a4e998962ecc28643e1af5ec77696b081c9b0 lmdb-0.9.31.tar.gz +sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 libraries/liblmdb/LICENSE diff --git a/package/lmdb/lmdb.mk b/package/lmdb/lmdb.mk new file mode 100644 index 0000000000..5e2ad2d05a --- /dev/null +++ b/package/lmdb/lmdb.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# lmdb +# +################################################################################ + +LMDB_VERSION = 0.9.31 +LMDB_SITE = $(call github,LMDB,lmdb,LMDB_$(LMDB_VERSION)) +LMDB_LICENSE = OpenLDAP Public License +LMDB_LICENSE_FILES = libraries/liblmdb/LICENSE +LMDB_INSTALL_STAGING = YES + +define LMDB_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ + CC="$(TARGET_CC)" \ + XCFLAGS="$(TARGET_CFLAGS)" \ + AR="$(TARGET_CROSS)ar" \ + all +endef + +define LMDB_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ + DESTDIR="$(STAGING_DIR)" \ + prefix=/usr \ + install +endef + +define LMDB_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libraries/liblmdb \ + DESTDIR="$(TARGET_DIR)" \ + prefix=/usr \ + install +endef + +$(eval $(generic-package))
Signed-off-by: Francois Perrad <francois.perrad@gadz.org> --- DEVELOPERS | 1 + package/Config.in | 1 + package/lmdb/Config.in | 13 +++++++++++++ package/lmdb/lmdb.hash | 3 +++ package/lmdb/lmdb.mk | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 53 insertions(+) create mode 100644 package/lmdb/Config.in create mode 100644 package/lmdb/lmdb.hash create mode 100644 package/lmdb/lmdb.mk