* [Buildroot] [PATCH v1 1/1] package/libtalloc: update to add libtalloc @ 2020-01-29 15:08 jared.bents at rockwellcollins.com 2020-02-01 22:35 ` Thomas Petazzoni 0 siblings, 1 reply; 3+ messages in thread From: jared.bents at rockwellcollins.com @ 2020-01-29 15:08 UTC (permalink / raw) To: buildroot From: Jared Bents <jared.bents@rockwellcollins.com> update to add libtalloc as a package Signed-off-by: Jared Bents <jared.bents@rockwellcollins.com> --- package/Config.in | 1 + package/libtalloc/Config.in | 8 ++++ package/libtalloc/libtalloc.hash | 2 + package/libtalloc/libtalloc.mk | 74 ++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 package/libtalloc/Config.in create mode 100644 package/libtalloc/libtalloc.hash create mode 100644 package/libtalloc/libtalloc.mk diff --git a/package/Config.in b/package/Config.in index 091f5d39f7..37c2c3df12 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1769,6 +1769,7 @@ menu "Other" source "package/libsigc/Config.in" source "package/libsigsegv/Config.in" source "package/libspatialindex/Config.in" + source "package/libtalloc/Config.in" source "package/libtasn1/Config.in" source "package/libtommath/Config.in" source "package/libtpl/Config.in" diff --git a/package/libtalloc/Config.in b/package/libtalloc/Config.in new file mode 100644 index 0000000000..168d367793 --- /dev/null +++ b/package/libtalloc/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_LIBTALLOC + bool "libtalloc" + help + talloc is a hierarchical, reference counted memory pool + system with destructors. It is the core memory allocator + used in Samba. + + https://talloc.samba.org/talloc/doc/html/index.html diff --git a/package/libtalloc/libtalloc.hash b/package/libtalloc/libtalloc.hash new file mode 100644 index 0000000000..ff1df0f8a9 --- /dev/null +++ b/package/libtalloc/libtalloc.hash @@ -0,0 +1,2 @@ +# Locally calculated after checking pgp signature +sha256 ef4822d2fdafd2be8e0cabc3ec3c806ae29b8268e932c5e9a4cd5585f37f9f77 talloc-2.3.1.tar.gz diff --git a/package/libtalloc/libtalloc.mk b/package/libtalloc/libtalloc.mk new file mode 100644 index 0000000000..82a5bcb45e --- /dev/null +++ b/package/libtalloc/libtalloc.mk @@ -0,0 +1,74 @@ +################################################################################ +# +# libtalloc +# +################################################################################ + +LIBTALLOC_VERSION = 2.3.1 +LIBTALLOC_SITE = https://www.samba.org/ftp/talloc +LIBTALLOC_SOURCE = talloc-$(LIBTALLOC_VERSION).tar.gz +LIBTALLOC_LICENSE = LGPL-3.0+ +# no license file but available in source at man/talloc.3.xml +LIBTALLOC_INSTALL_STAGING = YES +LIBTALLOC_CFLAGS = $(TARGET_CFLAGS) +LIBTALLOC_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) +LIBTALLOC_CONF_ENV = \ + CFLAGS="$(LIBTALLOC_CFLAGS)" \ + LDFLAGS="$(LIBTALLOC_LDFLAGS)" \ + XSLTPROC=false \ + WAF_NO_PREFORK=1 + +ifeq ($(BR2_PACKAGE_LIBTIRPC),y) +LIBTALLOC_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` +LIBTALLOC_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` +LIBTALLOC_DEPENDENCIES += libtirpc host-pkgconf +endif + +ifeq ($(BR2_PACKAGE_PYTHON3),y) +LIBTALLOC_PYTHON = \ + PYTHON="$(HOST_DIR)/bin/python3" \ + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" +LIBTALLOC_DEPENDENCIES += host-python3 python3 +LIBTALLOC_CONF_ENV += \ + $(LIBTALLOC_PYTHON) \ + python_LDFLAGS="" \ + python_LIBDIR="" +# There is not a --enable-python configuration option +else +LIBTALLOC_CONF_OPTS += --disable-python +endif + +define LIBTALLOC_CONFIGURE_CMDS + $(INSTALL) -m 0644 package/samba4/samba4-cache.txt $(@D)/cache.txt; + echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; + (cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + $(LIBTALLOC_CONF_ENV) \ + ./buildtools/bin/waf configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-libiconv=$(STAGING_DIR)/usr \ + --cross-compile \ + --cross-answers=$(@D)/cache.txt \ + --hostcc=gcc \ + --disable-rpath \ + --disable-rpath-install \ + --bundled-libraries='!asn1_compile,!compile_et' \ + $(LIBTALLOC_CONF_OPTS) \ + ) +endef + +define LIBTALLOC_BUILD_CMDS + $(TARGET_MAKE_ENV) $(LIBTALLOC_PYTHON) $(MAKE) -C $(@D) +endef + +define LIBTALLOC_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(LIBTALLOC_PYTHON) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install +endef + +define LIBTALLOC_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(LIBTALLOC_PYTHON) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install +endef + +$(eval $(generic-package)) -- 2.18.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v1 1/1] package/libtalloc: update to add libtalloc 2020-01-29 15:08 [Buildroot] [PATCH v1 1/1] package/libtalloc: update to add libtalloc jared.bents at rockwellcollins.com @ 2020-02-01 22:35 ` Thomas Petazzoni 2020-02-07 21:19 ` Jared Bents 0 siblings, 1 reply; 3+ messages in thread From: Thomas Petazzoni @ 2020-02-01 22:35 UTC (permalink / raw) To: buildroot Hello Jared, Thanks for your contribution. A number of comments/questions below. On Wed, 29 Jan 2020 09:08:41 -0600 jared.bents at rockwellcollins.com wrote: > package/Config.in | 1 + > package/libtalloc/Config.in | 8 ++++ > package/libtalloc/libtalloc.hash | 2 + > package/libtalloc/libtalloc.mk | 74 ++++++++++++++++++++++++++++++++ > 4 files changed, 85 insertions(+) Entry missing in the DEVELOPERS file. > diff --git a/package/libtalloc/Config.in b/package/libtalloc/Config.in > new file mode 100644 > index 0000000000..168d367793 > --- /dev/null > +++ b/package/libtalloc/Config.in > @@ -0,0 +1,8 @@ > +config BR2_PACKAGE_LIBTALLOC > + bool "libtalloc" Really no toolchain dependencies at all? Did you test this package with test-pkg ? > diff --git a/package/libtalloc/libtalloc.hash b/package/libtalloc/libtalloc.hash > new file mode 100644 > index 0000000000..ff1df0f8a9 > --- /dev/null > +++ b/package/libtalloc/libtalloc.hash > @@ -0,0 +1,2 @@ > +# Locally calculated after checking pgp signature > +sha256 ef4822d2fdafd2be8e0cabc3ec3c806ae29b8268e932c5e9a4cd5585f37f9f77 talloc-2.3.1.tar.gz We will need a license file hash. See below. > diff --git a/package/libtalloc/libtalloc.mk b/package/libtalloc/libtalloc.mk > new file mode 100644 > index 0000000000..82a5bcb45e > --- /dev/null > +++ b/package/libtalloc/libtalloc.mk > @@ -0,0 +1,74 @@ > +################################################################################ > +# > +# libtalloc > +# > +################################################################################ > + > +LIBTALLOC_VERSION = 2.3.1 > +LIBTALLOC_SITE = https://www.samba.org/ftp/talloc > +LIBTALLOC_SOURCE = talloc-$(LIBTALLOC_VERSION).tar.gz > +LIBTALLOC_LICENSE = LGPL-3.0+ The python bindings are under GPL-3.0+ > +# no license file but available in source at man/talloc.3.xml I suggest using talloc.h as the license file for LGPL-3.0+ and pytalloc.h as the license file for GPL-3.0+. > +LIBTALLOC_INSTALL_STAGING = YES > +LIBTALLOC_CFLAGS = $(TARGET_CFLAGS) > +LIBTALLOC_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) If you use TARGET_NLS_LIBS here, then you need $(TARGET_NLS_DEPENDENCIES) in the <pkg>_DEPENDENCIES variable. Make sure it is really needed though. > +LIBTALLOC_CONF_ENV = \ > + CFLAGS="$(LIBTALLOC_CFLAGS)" \ > + LDFLAGS="$(LIBTALLOC_LDFLAGS)" \ > + XSLTPROC=false \ > + WAF_NO_PREFORK=1 > + > +ifeq ($(BR2_PACKAGE_LIBTIRPC),y) > +LIBTALLOC_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` > +LIBTALLOC_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` > +LIBTALLOC_DEPENDENCIES += libtirpc host-pkgconf > +endif Are you sure libtirpc is really used by libtalloc ? I know it is checked in lib/replace/wscript, but I don't see where it gets used, and I don't see why a memory allocator library would care about RPC support. Could you comment on this ? > + > +ifeq ($(BR2_PACKAGE_PYTHON3),y) > +LIBTALLOC_PYTHON = \ > + PYTHON="$(HOST_DIR)/bin/python3" \ > + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" I'm not sure we need this LIBTALLOC_PYTHON variable, just put these variables in LIBTALLOC_MAKE_ENV, which itself is initially set to TARGET_MAKE_ENV, and then used in the commands. > +LIBTALLOC_DEPENDENCIES += host-python3 python3 > +LIBTALLOC_CONF_ENV += \ > + $(LIBTALLOC_PYTHON) \ > + python_LDFLAGS="" \ > + python_LIBDIR="" Setting these python_LDFLAGS and python_LIBDIR to empty values looks weird. Why do you need that? Aren't they empty by default anyway? > +define LIBTALLOC_CONFIGURE_CMDS > + $(INSTALL) -m 0644 package/samba4/samba4-cache.txt $(@D)/cache.txt; > + echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; > + (cd $(@D); \ > + $(TARGET_CONFIGURE_OPTS) \ > + $(LIBTALLOC_CONF_ENV) \ > + ./buildtools/bin/waf configure \ > + --prefix=/usr \ > + --sysconfdir=/etc \ > + --localstatedir=/var \ > + --with-libiconv=$(STAGING_DIR)/usr \ > + --cross-compile \ > + --cross-answers=$(@D)/cache.txt \ > + --hostcc=gcc \ > + --disable-rpath \ > + --disable-rpath-install \ > + --bundled-libraries='!asn1_compile,!compile_et' \ > + $(LIBTALLOC_CONF_OPTS) \ Why don't you use the waf-package infrastructure if this is a waf package ? Hm, I see samba4 is also not using the waf package infrastructure for some reason. Thanks, Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v1 1/1] package/libtalloc: update to add libtalloc 2020-02-01 22:35 ` Thomas Petazzoni @ 2020-02-07 21:19 ` Jared Bents 0 siblings, 0 replies; 3+ messages in thread From: Jared Bents @ 2020-02-07 21:19 UTC (permalink / raw) To: buildroot Hi Thomas, On Sat, Feb 1, 2020 at 4:36 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello Jared, > > Thanks for your contribution. A number of comments/questions below. > > On Wed, 29 Jan 2020 09:08:41 -0600 > jared.bents at rockwellcollins.com wrote: > > > package/Config.in | 1 + > > package/libtalloc/Config.in | 8 ++++ > > package/libtalloc/libtalloc.hash | 2 + > > package/libtalloc/libtalloc.mk | 74 ++++++++++++++++++++++++++++++++ > > 4 files changed, 85 insertions(+) > > Entry missing in the DEVELOPERS file. Will include in v2 > > > diff --git a/package/libtalloc/Config.in b/package/libtalloc/Config.in > > new file mode 100644 > > index 0000000000..168d367793 > > --- /dev/null > > +++ b/package/libtalloc/Config.in > > @@ -0,0 +1,8 @@ > > +config BR2_PACKAGE_LIBTALLOC > > + bool "libtalloc" > > Really no toolchain dependencies at all? Did you test this package with > test-pkg ? I missed the toolchain dependencies. Will add those in v2 > > > diff --git a/package/libtalloc/libtalloc.hash b/package/libtalloc/libtalloc.hash > > new file mode 100644 > > index 0000000000..ff1df0f8a9 > > --- /dev/null > > +++ b/package/libtalloc/libtalloc.hash > > @@ -0,0 +1,2 @@ > > +# Locally calculated after checking pgp signature > > +sha256 ef4822d2fdafd2be8e0cabc3ec3c806ae29b8268e932c5e9a4cd5585f37f9f77 talloc-2.3.1.tar.gz > > We will need a license file hash. See below. I'll add both files as license files and get them included in the .hash > > > diff --git a/package/libtalloc/libtalloc.mk b/package/libtalloc/libtalloc.mk > > new file mode 100644 > > index 0000000000..82a5bcb45e > > --- /dev/null > > +++ b/package/libtalloc/libtalloc.mk > > @@ -0,0 +1,74 @@ > > +################################################################################ > > +# > > +# libtalloc > > +# > > +################################################################################ > > + > > +LIBTALLOC_VERSION = 2.3.1 > > +LIBTALLOC_SITE = https://www.samba.org/ftp/talloc > > +LIBTALLOC_SOURCE = talloc-$(LIBTALLOC_VERSION).tar.gz > > +LIBTALLOC_LICENSE = LGPL-3.0+ > > The python bindings are under GPL-3.0+ > > > +# no license file but available in source at man/talloc.3.xml > > I suggest using talloc.h as the license file for LGPL-3.0+ and > pytalloc.h as the license file for GPL-3.0+. > > > +LIBTALLOC_INSTALL_STAGING = YES > > +LIBTALLOC_CFLAGS = $(TARGET_CFLAGS) > > +LIBTALLOC_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) > > If you use TARGET_NLS_LIBS here, then you need > $(TARGET_NLS_DEPENDENCIES) in the <pkg>_DEPENDENCIES variable. Make > sure it is really needed though. It appears it is not needed, will remove > > > +LIBTALLOC_CONF_ENV = \ > > + CFLAGS="$(LIBTALLOC_CFLAGS)" \ > > + LDFLAGS="$(LIBTALLOC_LDFLAGS)" \ > > + XSLTPROC=false \ > > + WAF_NO_PREFORK=1 > > + > > +ifeq ($(BR2_PACKAGE_LIBTIRPC),y) > > +LIBTALLOC_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` > > +LIBTALLOC_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` > > +LIBTALLOC_DEPENDENCIES += libtirpc host-pkgconf > > +endif > > Are you sure libtirpc is really used by libtalloc ? I know it is > checked in lib/replace/wscript, but I don't see where it gets used, and > I don't see why a memory allocator library would care about RPC > support. Could you comment on this ? I see an undef happening related to RPC in lib/replace/system/nis.h. It is refering to a conflict for AUTH_ERROR with rpc/rpc.h. However, that is the only reference I am seeing as nettype.h is not used anywhere. > > > + > > +ifeq ($(BR2_PACKAGE_PYTHON3),y) > > +LIBTALLOC_PYTHON = \ > > + PYTHON="$(HOST_DIR)/bin/python3" \ > > + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" > > I'm not sure we need this LIBTALLOC_PYTHON variable, just put these > variables in LIBTALLOC_MAKE_ENV, which itself is initially set to > TARGET_MAKE_ENV, and then used in the commands. > I can't seem to get the build to work by switching to using LIBTALLOC_MAKE_ENV but if I can get it working, I'll include in v2 > > +LIBTALLOC_DEPENDENCIES += host-python3 python3 > > +LIBTALLOC_CONF_ENV += \ > > + $(LIBTALLOC_PYTHON) \ > > + python_LDFLAGS="" \ > > + python_LIBDIR="" > > Setting these python_LDFLAGS and python_LIBDIR to empty values looks > weird. Why do you need that? Aren't they empty by default anyway? Yeah they appear to not be needed. I had incorrectly assumed they were needed while basing off of samba4 since libtalloc is included in samba4 > > > +define LIBTALLOC_CONFIGURE_CMDS > > + $(INSTALL) -m 0644 package/samba4/samba4-cache.txt $(@D)/cache.txt; > > + echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; > > + (cd $(@D); \ > > + $(TARGET_CONFIGURE_OPTS) \ > > + $(LIBTALLOC_CONF_ENV) \ > > + ./buildtools/bin/waf configure \ > > + --prefix=/usr \ > > + --sysconfdir=/etc \ > > + --localstatedir=/var \ > > + --with-libiconv=$(STAGING_DIR)/usr \ > > + --cross-compile \ > > + --cross-answers=$(@D)/cache.txt \ > > + --hostcc=gcc \ > > + --disable-rpath \ > > + --disable-rpath-install \ > > + --bundled-libraries='!asn1_compile,!compile_et' \ > > + $(LIBTALLOC_CONF_OPTS) \ > > Why don't you use the waf-package infrastructure if this is a waf > package ? Hm, I see samba4 is also not using the waf package > infrastructure for some reason. I'll investigate using the waf-package infrastructure for v2 > > Thanks, > > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com Thank you for the review, Jared -- Jared M. Bents | Sr. Software Engineer | Commercial Avionics COLLINS AEROSPACE 400 Collins Road NE, Cedar Rapids, Iowa 52498 USA jared.bents at collins.com | collinsaerospace.com ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-02-07 21:19 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-01-29 15:08 [Buildroot] [PATCH v1 1/1] package/libtalloc: update to add libtalloc jared.bents at rockwellcollins.com 2020-02-01 22:35 ` Thomas Petazzoni 2020-02-07 21:19 ` Jared Bents
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox