All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe MacDonald <Joe_MacDonald@mentor.com>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: openembedded-devel <openembedded-devel@lists.openembedded.org>
Subject: Re: [meta-networking][PATCH] strongswan: Split plugins
Date: Wed, 26 Apr 2017 10:57:29 -0400	[thread overview]
Message-ID: <20170426145729.GF11025@mentor.com> (raw)
In-Reply-To: <CA+chaQcHQvssOS6gjeTWfKF2o0h+6gvxxrDEEk-N2jh7AYJoCA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 8682 bytes --]

[Re: [oe] [meta-networking][PATCH] strongswan: Split plugins] On 17.04.20 (Thu 16:36) Martin Jansa wrote:

> I think currently the preferred way is only one -dev/-dbg/-staticdev
> package per recipe.
> 
> Why not set RDEPENDS_${PN} based on plugins packaged in first
> do_split_packages call?
> 
> Just my 2c - I'm not using strongswan and Joe has last word for
> meta-networking.

Yeah, I've been giving this some thought and I'm inclined to agree.  The
RDEPENDS_${PN} being set with a canned list that doesn't reflect what
was configured for the build seems non-intuitive.

As for not breaking compatibility with the current configuration, if
RDEPENDS_${PN} is set based on the build, won't that come essentially
for free?

-J.

> On Thu, Apr 20, 2017 at 3:57 PM, David Vincent <freesilicon@gmail.com>
> wrote:
> 
> > strongSwan offers a plugin mechanism therefore it should not be
> > mandatory to install all of them when installing the package. Each
> > plugin is now a self-contained package with the library and its
> > configuration.
> >
> > To remain compatible with the current configuration, a default set of
> > plugins has been selected as RDEPENDS of the main package. This default
> > list is based on the default strongSwan list minus some plugins enabled
> > via PACKAGECONFIG
> > (see https://wiki.strongswan.org/projects/strongswan/PluginList).
> >
> > Signed-off-by: David Vincent <freesilicon@gmail.com>
> > ---
> >  .../recipes-support/strongswan/strongswan_5.5.1.bb | 101
> > ++++++++++++++++++---
> >  1 file changed, 88 insertions(+), 13 deletions(-)
> >
> > diff --git a/meta-networking/recipes-support/strongswan/strongswan_
> > 5.5.1.bb b/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb
> > index f9e7ae3c1..d63214ba4 100644
> > --- a/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb
> > +++ b/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb
> > @@ -24,17 +24,17 @@ EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES',
> > 'systemd', '--with-syst
> >  PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \
> >          ${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)} \
> >  "
> > -PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,"
> > +PACKAGECONFIG[aesni] = "--enable-aesni,--disable-
> > aesni,,${PN}-plugin-aesni"
> >  PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
> > -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
> > -PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,"
> > -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,"
> > -PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
> > -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,"
> > +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,
> > curl,${PN}-plugin-curl"
> > +PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp"
> > +PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,
> > openldap,${PN}-plugin-ldap"
> > +PACKAGECONFIG[mysql] = "--enable-mysql,--disable-
> > mysql,mysql5,${PN}-plugin-mysql"
> > +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-
> > openssl,openssl,${PN}-plugin-openssl"
> >  PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient,"
> > -PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,"
> > -PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,"
> > -PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,"
> > +PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,
> > libsoup-2.4,${PN}-plugin-soup"
> > +PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-
> > sqlite,sqlite3,${PN}-plugin-sqlite"
> > +PACKAGECONFIG[stroke] = "--enable-stroke,--disable-
> > stroke,,${PN}-plugin-stroke"
> >  PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc"
> >
> >  # requires swanctl
> > @@ -44,10 +44,85 @@ inherit autotools systemd pkgconfig
> >
> >  RRECOMMENDS_${PN} = "kernel-module-ipsec"
> >
> > -FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}
> > ${libdir}/ipsec/plugins/*.so"
> > -FILES_${PN}-dbg += "${libdir}/ipsec/.debug ${libdir}/ipsec/plugins/.debug
> > ${libexecdir}/ipsec/.debug"
> > -FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV}
> > ${libdir}/ipsec/*.la ${libdir}/ipsec/plugins/*.la"
> > -FILES_${PN}-staticdev += "${libdir}/ipsec/*.a ${libdir}/ipsec/plugins/*.a"
> > +FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
> > +FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/ipsec/.debug
> > ${libexecdir}/ipsec/.debug"
> > +FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV}
> > ${libdir}/ipsec/*.la"
> > +FILES_${PN}-staticdev += "${libdir}/ipsec/*.a"
> > +
> > +CONFFILES_${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf
> > ${sysconfdir}/strongswan.d/*.conf"
> > +
> > +PACKAGES += "${PN}-plugins"
> > +ALLOW_EMPTY_${PN}-plugins = "1"
> > +
> > +PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
> > +NOAUTOPACKAGEDEBUG = "1"
> > +
> > +python split_strongswan_plugins () {
> > +    sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon')
> > +    libdir = d.expand('${libdir}/ipsec/plugins')
> > +    dbglibdir = os.path.join(libdir, '.debug')
> > +
> > +    def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename):
> > +        dvar = d.getVar('PKGD', True)
> > +        oldfiles = d.getVar('CONFFILES_' + pkg, True)
> > +        newfile = '/' + os.path.relpath(f, dvar)
> > +
> > +        if not oldfiles:
> > +            d.setVar('CONFFILES_' + pkg, newfile)
> > +        else:
> > +            d.setVar('CONFFILES_' + pkg, oldfiles + " " + newfile)
> > +
> > +    split_packages = do_split_packages(d, libdir,
> > 'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin',
> > prepend=True)
> > +    do_split_packages(d, sysconfdir, '(.*)\.conf', '${PN}-plugin-%s',
> > 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf)
> > +
> > +    split_dbg_packages = do_split_packages(d, dbglibdir,
> > 'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin -
> > Debugging files', prepend=True, extra_depends='${PN}-dbg')
> > +    split_dev_packages = do_split_packages(d, libdir,
> > 'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin -
> > Development files', prepend=True, extra_depends='${PN}-dev')
> > +    split_staticdev_packages = do_split_packages(d, libdir,
> > 'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin
> > - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-
> > staticdev')
> > +
> > +    if split_packages:
> > +        pn = d.getVar('PN', True)
> > +        d.setVar('RRECOMMENDS_' + pn + '-plugins', '
> > '.join(split_packages))
> > +        d.appendVar('RRECOMMENDS_' + pn + '-dbg', ' ' + '
> > '.join(split_dbg_packages))
> > +        d.appendVar('RRECOMMENDS_' + pn + '-dev', ' ' + '
> > '.join(split_dev_packages))
> > +        d.appendVar('RRECOMMENDS_' + pn + '-staticdev', ' ' + '
> > '.join(split_staticdev_packages))
> > +}
> > +
> > +PACKAGESPLITFUNCS_prepend = "split_strongswan_plugins "
> > +
> > +# Install some default plugins based on default strongSwan ./configure
> > options
> > +# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist
> > +RDEPENDS_${PN} += "\
> > +    ${PN}-plugin-aes \
> > +    ${PN}-plugin-attr \
> > +    ${PN}-plugin-cmac \
> > +    ${PN}-plugin-constraints \
> > +    ${PN}-plugin-des \
> > +    ${PN}-plugin-dnskey \
> > +    ${PN}-plugin-hmac \
> > +    ${PN}-plugin-kernel-netlink \
> > +    ${PN}-plugin-md5 \
> > +    ${PN}-plugin-nonce \
> > +    ${PN}-plugin-pem \
> > +    ${PN}-plugin-pgp \
> > +    ${PN}-plugin-pkcs1 \
> > +    ${PN}-plugin-pkcs7 \
> > +    ${PN}-plugin-pkcs8 \
> > +    ${PN}-plugin-pkcs12 \
> > +    ${PN}-plugin-pubkey \
> > +    ${PN}-plugin-random \
> > +    ${PN}-plugin-rc2 \
> > +    ${PN}-plugin-resolve \
> > +    ${PN}-plugin-revocation \
> > +    ${PN}-plugin-sha1 \
> > +    ${PN}-plugin-sha2 \
> > +    ${PN}-plugin-socket-default \
> > +    ${PN}-plugin-sshkey \
> > +    ${PN}-plugin-updown \
> > +    ${PN}-plugin-vici \
> > +    ${PN}-plugin-x509 \
> > +    ${PN}-plugin-xauth-generic \
> > +    ${PN}-plugin-xcbc \
> > +    "
> >
> >  RPROVIDES_${PN} += "${PN}-systemd"
> >  RREPLACES_${PN} += "${PN}-systemd"
> > --
> > 2.12.2
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
-- 
-Joe MacDonald.
:wq

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 484 bytes --]

  reply	other threads:[~2017-04-26 14:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-20 13:57 [meta-networking][PATCH] strongswan: Split plugins David Vincent
2017-04-20 14:36 ` Martin Jansa
2017-04-26 14:57   ` Joe MacDonald [this message]
2017-04-27  7:45     ` David Vincent

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=20170426145729.GF11025@mentor.com \
    --to=joe_macdonald@mentor.com \
    --cc=martin.jansa@gmail.com \
    --cc=openembedded-devel@lists.openembedded.org \
    /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.