[OE-core] [PATCH v2] connman: fix systemd support for connman-* packages.

Yevhen Kyriukha kirgene at gmail.com
Tue Aug 13 16:08:21 UTC 2013


2013/8/13 Saul Wold <sgw at linux.intel.com>:
> On 08/13/2013 04:26 AM, Yevhen Kyriukha wrote:
>>
>> This patch fixes systemd's postinst/postrm script generation.
>>
>> Signed-off-by: Yevhen Kyriukha <kirgene at gmail.com>
>> ---
>>   meta/recipes-connectivity/connman/connman.inc | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/meta/recipes-connectivity/connman/connman.inc
>> b/meta/recipes-connectivity/connman/connman.inc
>> index 6b5ea0b..37ce3ec 100644
>> --- a/meta/recipes-connectivity/connman/connman.inc
>> +++ b/meta/recipes-connectivity/connman/connman.inc
>> @@ -56,6 +56,14 @@ 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_SERVICE_${PN} = "connman.service"
>>   SYSTEMD_SERVICE_${PN}-vpn = "connman-vpn.service"
>>   SYSTEMD_WIRED_SETUP = "ExecStartPre=-${libdir}/connman/wired-setup"
>>
> Can't you use the base_contains style of anon python in the
> SYSTEMD_PACKAGES:
>
> SYSTEMD_PACKAGES = "${PN} ${@base_contains('PACKAGECONFIG', 'vpn',
> '${PN}-vpn', '', d)}"
>
> Or can any one of those in the list above trigger the vpn, it would be
> cleaner if we just trigger on just one item.
>
> Sau!

Here is how connman detects (in configure.ac) whether to build
connman-vpn or not:
AM_CONDITIONAL(VPN, test "${enable_openconnect}" != "no" -o \
                        "${enable_openvpn}" != "no" -o \
                        "${enable_vpnc}" != "no" -o \
                        "${enable_l2tp}" != "no" -o \
                        "${enable_pptp}" != "no")

This patch is doing the same check: if at least one of VPN
technologies were selected we should build connman-vpn.

base_contains is not an option in this case as it checks whether
environment variable contains all strings that you provide in second
parameter.

Regards,
Yevhen



More information about the Openembedded-core mailing list