[oe] [meta-networking][PATCH 1/4] libtalloc: fixes for deterministic builds

Huang, Jie (Jackie) Jackie.Huang at windriver.com
Wed Sep 21 00:51:09 UTC 2016



> -----Original Message-----
> From: openembedded-devel-bounces at lists.openembedded.org [mailto:openembedded-devel-
> bounces at lists.openembedded.org] On Behalf Of Martin Jansa
> Sent: Tuesday, September 20, 2016 4:14 PM
> To: openembedded-devel
> Subject: Re: [oe] [meta-networking][PATCH 1/4] libtalloc: fixes for deterministic builds
> 
> something like:
> PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind,"

That's what I wanted as well, but there is not an implicit option "--without-pkg" when
"--with-pkg" is added, we have to explicitly add both of them, which I thought may not
be necessary.

It's definitely more clear, so I will add them as suggested in v2.

Thanks,
Jackie

> 
> 
> On Tue, Sep 20, 2016 at 9:32 AM, Huang, Jie (Jackie) <
> Jackie.Huang at windriver.com> wrote:
> 
> >
> >
> > > -----Original Message-----
> > > From: openembedded-devel-bounces at lists.openembedded.org [mailto:
> > openembedded-devel-
> > > bounces at lists.openembedded.org] On Behalf Of Martin Jansa
> > > Sent: Tuesday, September 20, 2016 2:47 PM
> > > To: openembedded-devel at lists.openembedded.org
> > > Subject: Re: [oe] [meta-networking][PATCH 1/4] libtalloc: fixes for
> > deterministic builds
> > >
> > > On Tue, Sep 20, 2016 at 01:42:23PM +0800, jackie.huang at windriver.com
> > wrote:
> > > > From: Jackie Huang <jackie.huang at windriver.com>
> > > >
> > > > * Add configure option and PACKAGECONFIG for
> > > >   the following packages:
> > > >   - acl
> > > >   - attr
> > > >   - libaio
> > > >   - libcap
> > > >   - valgrind
> > > >
> > > > * They are all optional, so disable by default
> > > >   or control them based on DISTRO_FEATURES.
> > > >
> > > > * Remove the direct dependency on libaio
> > > >
> > > > Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> > > > ---
> > > >  ...talloc-Add-configure-options-for-packages.patch | 124
> > +++++++++++++++++++++
> > > >  .../recipes-support/libtalloc/libtalloc_2.1.8.bb   |  16 ++-
> > > >  2 files changed, 137 insertions(+), 3 deletions(-)
> > > >  create mode 100644 meta-networking/recipes-
> > support/libtalloc/libtalloc/talloc-Add-configure-
> > > options-for-packages.patch
> > > >
> > > > diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/
> > talloc-Add-configure-options-for-
> > > packages.patch b/meta-networking/recipes-support/libtalloc/libtalloc/
> > talloc-Add-configure-
> > > options-for-packages.patch
> > > > new file mode 100644
> > > > index 0000000..d383df4
> > > > --- /dev/null
> > > > +++ b/meta-networking/recipes-support/libtalloc/libtalloc/
> > talloc-Add-configure-options-for-
> > > packages.patch
> > > > @@ -0,0 +1,124 @@
> > > > +From 77fd757624c9b20073a7abefaca8382caa4fd376 Mon Sep 17 00:00:00
> > 2001
> > > > +From: Jackie Huang <jackie.huang at windriver.com>
> > > > +Date: Wed, 14 Sep 2016 11:11:35 +0800
> > > > +Subject: [PATCH] talloc: Add configure options for packages
> > > > +
> > > > +Add configure options for the following packages:
> > > > + - acl
> > > > + - attr
> > > > + - libaio
> > > > + - libcap
> > > > + - valgrind
> > > > +
> > > > +Upstream-Status: Inappropriate [oe deterministic build specific]
> > > > +
> > > > +Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> > > > +---
> > > > + lib/replace/system/wscript_configure |  6 ++++-
> > > > + lib/replace/wscript                  | 43
> > +++++++++++++++++++++++++++++++-----
> > > > + wscript                              |  4 ++++
> > > > + 3 files changed, 46 insertions(+), 7 deletions(-)
> > > > +
> > > > +diff --git a/lib/replace/system/wscript_configure
> > b/lib/replace/system/wscript_configure
> > > > +index 2035474..10f9ae7 100644
> > > > +--- a/lib/replace/system/wscript_configure
> > > > ++++ b/lib/replace/system/wscript_configure
> > > > +@@ -1,6 +1,10 @@
> > > > + #!/usr/bin/env python
> > > > +
> > > > +-conf.CHECK_HEADERS('sys/capability.h')
> > > > ++import Options
> > > > ++
> > > > ++if Options.options.enable_libcap:
> > > > ++    conf.CHECK_HEADERS('sys/capability.h')
> > > > ++
> > > > + conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
> > > > +
> > > > + # solaris varients of getXXent_r
> > > > +diff --git a/lib/replace/wscript b/lib/replace/wscript
> > > > +index fc43e1a..a899dd2 100644
> > > > +--- a/lib/replace/wscript
> > > > ++++ b/lib/replace/wscript
> > > > +@@ -23,6 +23,22 @@ def set_options(opt):
> > > > +     opt.PRIVATE_EXTENSION_DEFAULT('')
> > > > +     opt.RECURSE('buildtools/wafsamba')
> > > > +
> > > > ++    opt.add_option('--with-acl',
> > > > ++                   help=("Enable use of acl"),
> > > > ++                   action="store_true", dest='enable_acl',
> > default=False)
> > > > ++
> > > > ++    opt.add_option('--with-attr',
> > > > ++                   help=("Enable use of attr"),
> > > > ++                   action="store_true", dest='enable_attr',
> > default=False)
> > > > ++
> > > > ++    opt.add_option('--with-libaio',
> > > > ++                   help=("Enable use of libaio"),
> > > > ++                   action="store_true", dest='enable_libaio',
> > default=False)
> > > > ++
> > > > ++    opt.add_option('--with-libcap',
> > > > ++                   help=("Enable use of libcap"),
> > > > ++                   action="store_true", dest='enable_libcap',
> > default=False)
> > > > ++
> > > > + @Utils.run_once
> > > > + def configure(conf):
> > > > +     conf.RECURSE('buildtools/wafsamba')
> > > > +@@ -32,12 +48,25 @@ def configure(conf):
> > > > +     conf.DEFINE('HAVE_LIBREPLACE', 1)
> > > > +     conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
> > > > +
> > > > +-    conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h
> > compat.h')
> > > > +-    conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h
> > dustat.h')
> > > > ++    conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
> > > > ++    conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
> > > > +     conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h
> > langinfo.h')
> > > > +-    conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
> > > > +-    conf.CHECK_HEADERS('shadow.h sys/acl.h')
> > > > +-    conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h
> > sys/capability.h sys/dir.h sys/epoll.h')
> > > > ++    conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
> > > > ++    conf.CHECK_HEADERS('shadow.h')
> > > > ++    conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
> > > > ++
> > > > ++    if Options.options.enable_acl:
> > > > ++        conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
> > > > ++
> > > > ++    if Options.options.enable_attr:
> > > > ++        conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
> > > > ++
> > > > ++    if Options.options.enable_libaio:
> > > > ++        conf.CHECK_HEADERS('libaio.h')
> > > > ++
> > > > ++    if Options.options.enable_libcap:
> > > > ++        conf.CHECK_HEADERS('sys/capability.h')
> > > > ++
> > > > +     conf.CHECK_HEADERS('port.h')
> > > > +     conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h
> > sys/fs/s5param.h sys/fs/vx/quota.h')
> > > > +     conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h
> > sys/mode.h sys/ndir.h
> > > sys/priv.h')
> > > > +@@ -73,7 +102,9 @@ def configure(conf):
> > > > +
> > > > +     conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h',
> > define='HAVE_RPCSVC_YP_PROT_H')
> > > > +
> > > > +-    conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h
> > valgrind/memcheck.h')
> > > > ++    if Options.options.enable_valgrind:
> > > > ++        conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h
> > valgrind/memcheck.h')
> > > > ++
> > > > +     conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
> > > > +     conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h
> > sys/cdefs.h')
> > > > +     conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
> > > > +diff --git a/wscript b/wscript
> > > > +index 41f3be7..f900c24 100644
> > > > +--- a/wscript
> > > > ++++ b/wscript
> > > > +@@ -35,6 +35,10 @@ def set_options(opt):
> > > > +         opt.add_option('--disable-python',
> > > > +                        help=("disable the pytalloc module"),
> > > > +                        action="store_true", dest='disable_python',
> > default=False)
> > > > ++        opt.add_option('--with-valgrind',
> > > > ++                       help=("enable use of valgrind"),
> > > > ++                       action="store_true", dest='enable_valgrind',
> > default=False)
> > > > ++
> > > > +
> > > > +
> > > > + def configure(conf):
> > > > +--
> > > > +2.8.3
> > > > +
> > > > diff --git a/meta-networking/recipes-support/libtalloc/libtalloc_2.
> > 1.8.bb b/meta-
> > > networking/recipes-support/libtalloc/libtalloc_2.1.8.bb
> > > > index 7c85ab3..8b2ae33 100644
> > > > --- a/meta-networking/recipes-support/libtalloc/libtalloc_2.1.8.bb
> > > > +++ b/meta-networking/recipes-support/libtalloc/libtalloc_2.1.8.bb
> > > > @@ -3,9 +3,11 @@ HOMEPAGE = "http://talloc.samba.org"
> > > >  SECTION = "libs"
> > > >  LICENSE = "LGPL-3.0+ & GPL-3.0+"
> > > >
> > > > -DEPENDS += "libaio libbsd"
> > > > +DEPENDS += "libbsd"
> > > >
> > > > -SRC_URI = "http://samba.org/ftp/talloc/talloc-${PV}.tar.gz"
> > > > +SRC_URI = "http://samba.org/ftp/talloc/talloc-${PV}.tar.gz \
> > > > +           file://talloc-Add-configure-options-for-packages.patch \
> > > > +"
> > > >  LIC_FILES_CHKSUM = "file://${COREBASE}/meta/
> > files/common-licenses/LGPL-
> > > 3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
> > > >                      file://${COREBASE}/meta/files/
> > common-licenses/GPL-
> > > 3.0;md5=c79ff39f19dfec6d293b95dea7b07891"
> > >
> > > I know you haven't changed this, but
> > >
> > > This is wrong, we should use some files in talloc source, not
> > > common-license.
> >
> > Yes, I will fix this as follow-up.
> >
> > >
> > > >
> > > > @@ -15,7 +17,15 @@ SRC_URI[sha256sum] =
> > > "22d14911164d4de67ff76b5269fa5250d01f78c955bc77e28615350996
> > > >
> > > >  inherit waf-samba
> > > >
> > > > -PACKAGECONFIG[attr] = ",,attr"
> > > > +PACKAGECONFIG ??= "\
> > > > +    ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \
> > > > +    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}
> > \
> > > > +"
> > > > +PACKAGECONFIG[acl] = "--with-acl,,acl"
> > > > +PACKAGECONFIG[attr] = "--with-attr,,attr"
> > > > +PACKAGECONFIG[libaio] = "--with-libaio,,libaio,"
> > > > +PACKAGECONFIG[libcap] = "--with-libcap,,libcap,"
> > > > +PACKAGECONFIG[valgrind] = "--with-valgrind,,valgrind,"
> > >
> > > What about disable options for clarity?
> >
> > Do you mean something like:
> > PACKAGECONFIG[valgrind] = ",--disable-valgrind,valgrind,"
> >
> > Thanks,
> > Jackie
> >
> > >
> > > >
> > > >  SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '',
> > 'file://avoid-attr-unless-
> > > wanted.patch', d)}"
> > > >
> > > > --
> > > > 2.8.3
> > > >
> > > > --
> > > > _______________________________________________
> > > > Openembedded-devel mailing list
> > > > Openembedded-devel at lists.openembedded.org
> > > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> > >
> > > --
> > > Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list