From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Greylist: delayed 340 seconds by postgrey-1.34 at layers.openembedded.org; Mon, 30 Jan 2017 22:25:15 UTC Received: from mail.dream-property.net (mail.dream-property.net [82.149.226.172]) by mail.openembedded.org (Postfix) with ESMTP id A823671D87 for ; Mon, 30 Jan 2017 22:25:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.dream-property.net (Postfix) with ESMTP id D28ED31C429F for ; Mon, 30 Jan 2017 23:19:34 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mail.dream-property.net Received: from mail.dream-property.net ([127.0.0.1]) by localhost (mail.dream-property.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id EkerE5IYHO5F for ; Mon, 30 Jan 2017 23:19:32 +0100 (CET) Received: from t510.zcs.saftware.de (55d41ba8.access.ecotel.net [85.212.27.168]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.dream-property.net (Postfix) with ESMTPSA id 2423331C6962 for ; Mon, 30 Jan 2017 23:19:32 +0100 (CET) Date: Mon, 30 Jan 2017 23:19:30 +0100 From: Andreas Oberritter To: openembedded-core@lists.openembedded.org Message-ID: <20170130231930.30dd039c@t510.zcs.saftware.de> In-Reply-To: <1480977713-4663-1-git-send-email-obi@opendreambox.org> References: <1480977713-4663-1-git-send-email-obi@opendreambox.org> MIME-Version: 1.0 Subject: Re: [PATCH] connman: Simplify and fix packaging of VPN plug-ins X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jan 2017 22:25:16 -0000 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Ping. On Mon, 5 Dec 2016 23:41:53 +0100 Andreas Oberritter wrote: > - Use simple static packaging. > - Move VPN runtime dependencies from connman to the individual plug-ins. > - Create a connmann-ppp package containing libppp-plugin.so, which is > a shared library needed by l2tp and pptp plug-ins. > - Let connman suggest VPN packages instead of recommending them, so they > don't get installed by default. > - Remove unknown configure options (--with-pptp --with-l2tp) > > Signed-off-by: Andreas Oberritter > --- > v2: Made dependencies from meta-networking conditional. Now the reported > errors should appear only if meta-network is not available and a > packageconfig option related to VPN was enabled. > > Note: I can't build-test it right now, because python3-native has weird > conflicts populating sysroot. But this patch doesn't cause parse > errors, so I guess syntax is fine. > > meta/recipes-connectivity/connman/connman.inc | 95 +++++++++------------------ > 1 file changed, 32 insertions(+), 63 deletions(-) > > diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc > index 35a7eed..671d533 100644 > --- a/meta/recipes-connectivity/connman/connman.inc > +++ b/meta/recipes-connectivity/connman/connman.inc > @@ -46,24 +46,17 @@ PACKAGECONFIG[wifi] = "--enable-wifi, --disable-wifi, wpa-supplicant, wpa-suppli > PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}, ${BLUEZ}" > PACKAGECONFIG[3g] = "--enable-ofono, --disable-ofono, ofono, ofono" > PACKAGECONFIG[tist] = "--enable-tist,--disable-tist," > -PACKAGECONFIG[openvpn] = "--enable-openvpn --with-openvpn=${sbindir}/openvpn,--disable-openvpn,,openvpn" > -PACKAGECONFIG[vpnc] = "--enable-vpnc --with-vpnc=${sbindir}/vpnc,--disable-vpnc,,vpnc" > -PACKAGECONFIG[l2tp] = "--enable-l2tp --with-l2tp=${sbindir}/xl2tpd,--disable-l2tp,,xl2tpd" > -PACKAGECONFIG[pptp] = "--enable-pptp --with-pptp=${sbindir}/pptp,--disable-pptp,,pptp-linux" > +PACKAGECONFIG[openvpn] = "--enable-openvpn --with-openvpn=${sbindir}/openvpn,--disable-openvpn" > +PACKAGECONFIG[vpnc] = "--enable-vpnc --with-vpnc=${sbindir}/vpnc,--disable-vpnc" > +PACKAGECONFIG[l2tp] = "--enable-l2tp,--disable-l2tp" > +PACKAGECONFIG[pptp] = "--enable-pptp,--disable-pptp" > # WISPr support for logging into hotspots, requires TLS > PACKAGECONFIG[wispr] = "--enable-wispr,--disable-wispr,gnutls," > > INITSCRIPT_NAME = "connman" > INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." > > -python __anonymous () { > - systemd_packages = "${PN}" > - pkgconfig = d.getVar('PACKAGECONFIG', True) > - if ('openvpn' or 'vpnc' or 'l2tp' or 'pptp') in pkgconfig.split(): > - systemd_packages += " ${PN}-vpn" > - d.setVar('SYSTEMD_PACKAGES', systemd_packages) > -} > - > +SYSTEMD_PACKAGES = "${PN} ${PN}-vpn" > SYSTEMD_SERVICE_${PN} = "connman.service" > SYSTEMD_SERVICE_${PN}-vpn = "connman-vpn.service" > SYSTEMD_SERVICE_${PN}-wait-online = "connman-wait-online.service" > @@ -103,36 +96,6 @@ RDEPENDS_${PN} = "\ > dbus \ > " > > -PACKAGES_DYNAMIC += "^${PN}-plugin-.*" > - > -def add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, add_insane_skip): > - plugintype = pkg.split( '-' )[-1] > - if plugintype in depmap: > - rdepends = map(lambda x: multilib_prefix + x, \ > - depmap[plugintype].split()) > - d.setVar("RDEPENDS_%s" % pkg, " ".join(rdepends)) > - if add_insane_skip: > - d.appendVar("INSANE_SKIP_%s" % pkg, "dev-so") > - > -python populate_packages_prepend() { > - depmap = dict(pppd="ppp") > - multilib_prefix = (d.getVar("MLPREFIX", True) or "") > - > - hook = lambda file,pkg,x,y,z: \ > - add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, False) > - plugin_dir = d.expand('${libdir}/connman/plugins/') > - plugin_name = d.expand('${PN}-plugin-%s') > - do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, \ > - '${PN} plugin for %s', extra_depends='', hook=hook, prepend=True ) > - > - hook = lambda file,pkg,x,y,z: \ > - add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, True) > - plugin_dir = d.expand('${libdir}/connman/plugins-vpn/') > - plugin_name = d.expand('${PN}-plugin-vpn-%s') > - do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, \ > - '${PN} VPN plugin for %s', extra_depends='', hook=hook, prepend=True ) > -} > - > PACKAGES =+ "${PN}-tools ${PN}-tests ${PN}-client" > > FILES_${PN}-tools = "${bindir}/wispr" > @@ -152,7 +115,12 @@ FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ > > FILES_${PN}-dev += "${libdir}/connman/*/*.la" > > -PACKAGES =+ "${PN}-vpn ${PN}-wait-online" > +PACKAGES =+ "${PN}-vpn ${PN}-wait-online \ > + ${PN}-ppp \ > + ${PN}-plugin-vpn-l2tp \ > + ${PN}-plugin-vpn-openvpn \ > + ${PN}-plugin-vpn-pptp \ > + ${PN}-plugin-vpn-vpnc" > > SUMMARY_${PN}-vpn = "A daemon for managing VPN connections within embedded devices" > DESCRIPTION_${PN}-vpn = "The ConnMan VPN provides a daemon for \ > @@ -161,10 +129,10 @@ operating system. The connman-vpnd handles all the VPN connections \ > and starts/stops VPN client processes when necessary. The connman-vpnd \ > provides a DBus API for managing VPN connections. All the different \ > VPN technogies are implemented using plug-ins." > -FILES_${PN}-vpn += "${sbindir}/connman-vpnd \ > - ${sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf \ > - ${datadir}/dbus-1/system-services/net.connman.vpn.service \ > - ${systemd_unitdir}/system/connman-vpn.service" > +FILES_${PN}-vpn = "${sbindir}/connman-vpnd \ > + ${sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf \ > + ${datadir}/dbus-1/system-services/net.connman.vpn.service \ > + ${systemd_unitdir}/system/connman-vpn.service" > > SUMMARY_${PN}-wait-online = "A program that will return once ConnMan has connected to a network" > DESCRIPTION_${PN}-wait-online = "A service that can be enabled so that \ > @@ -175,31 +143,32 @@ FILES_${PN}-wait-online += "${sbindir}/connmand-wait-online \ > SUMMARY_${PN}-plugin-vpn-openvpn = "An OpenVPN plugin for ConnMan VPN" > DESCRIPTION_${PN}-plugin-vpn-openvpn = "The ConnMan OpenVPN plugin uses openvpn client \ > to create a VPN connection to OpenVPN server." > -FILES_${PN}-plugin-vpn-openvpn += "${libdir}/connman/scripts/openvpn-script \ > - ${libdir}/connman/plugins-vpn/openvpn.so" > -RDEPENDS_${PN}-plugin-vpn-openvpn += "${PN}-vpn" > -RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','openvpn','${PN}-plugin-vpn-openvpn', '', d)}" > +FILES_${PN}-plugin-vpn-openvpn = "${libdir}/connman/scripts/openvpn-script \ > + ${libdir}/connman/plugins-vpn/openvpn.so" > +RDEPENDS_${PN}-plugin-vpn-openvpn = "${PN}-vpn ${@bb.utils.contains('PACKAGECONFIG', 'openvpn', 'openvpn', '', d)}" > +RSUGGESTS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','openvpn','${PN}-plugin-vpn-openvpn', '', d)}" > > SUMMARY_${PN}-plugin-vpn-vpnc = "A vpnc plugin for ConnMan VPN" > DESCRIPTION_${PN}-plugin-vpn-vpnc = "The ConnMan vpnc plugin uses vpnc client \ > to create a VPN connection to Cisco3000 VPN Concentrator." > -FILES_${PN}-plugin-vpn-vpnc += "${libdir}/connman/scripts/openconnect-script \ > - ${libdir}/connman/plugins-vpn/vpnc.so" > -RDEPENDS_${PN}-plugin-vpn-vpnc += "${PN}-vpn" > -RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','vpnc','${PN}-plugin-vpn-vpnc', '', d)}" > +FILES_${PN}-plugin-vpn-vpnc = "${libdir}/connman/scripts/openconnect-script \ > + ${libdir}/connman/plugins-vpn/vpnc.so" > +RDEPENDS_${PN}-plugin-vpn-vpnc = "${PN}-vpn ${@bb.utils.contains('PACKAGECONFIG', 'vpnc', 'vpnc', '', d)}" > +RSUGGESTS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','vpnc','${PN}-plugin-vpn-vpnc', '', d)}" > > SUMMARY_${PN}-plugin-vpn-l2tp = "A L2TP plugin for ConnMan VPN" > DESCRIPTION_${PN}-plugin-vpn-l2tp = "The ConnMan L2TP plugin uses xl2tpd daemon \ > to create a VPN connection to L2TP server." > -FILES_${PN}-plugin-vpn-l2tp += "${libdir}/connman/scripts/libppp-plugin.so* \ > - ${libdir}/connman/plugins-vpn/l2tp.so" > -RDEPENDS_${PN}-plugin-vpn-l2tp += "${PN}-vpn" > -RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','l2tp','${PN}-plugin-vpn-l2tp', '', d)}" > +FILES_${PN}-plugin-vpn-l2tp = "${libdir}/connman/plugins-vpn/l2tp.so" > +RDEPENDS_${PN}-plugin-vpn-l2tp = "${PN}-vpn ${PN}-ppp ${@bb.utils.contains('PACKAGECONFIG', 'l2tp', 'xl2tpd', '', d)}" > +RSUGGESTS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','l2tp','${PN}-plugin-vpn-l2tp', '', d)}" > > SUMMARY_${PN}-plugin-vpn-pptp = "A PPTP plugin for ConnMan VPN" > DESCRIPTION_${PN}-plugin-vpn-pptp = "The ConnMan PPTP plugin uses pptp-linux client \ > to create a VPN connection to PPTP server." > -FILES_${PN}-plugin-vpn-pptp += "${libdir}/connman/scripts/libppp-plugin.so* \ > - ${libdir}/connman/plugins-vpn/pptp.so" > -RDEPENDS_${PN}-plugin-vpn-pptp += "${PN}-vpn" > -RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','pptp','${PN}-plugin-vpn-pptp', '', d)}" > +FILES_${PN}-plugin-vpn-pptp = "${libdir}/connman/plugins-vpn/pptp.so" > +RDEPENDS_${PN}-plugin-vpn-pptp = "${PN}-vpn ${PN}-ppp ${@bb.utils.contains('PACKAGECONFIG', 'pptp', 'pptp-linux', '', d)}" > +RSUGGESTS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','pptp','${PN}-plugin-vpn-pptp', '', d)}" > + > +FILES_${PN}-ppp = "${libdir}/connman/scripts/libppp-plugin.so" > +RDEPENDS_${PN}-ppp = "ppp"