[OE-core] [oe-core][systemd][PATCH] some dependencies in systemd seem not to be taken into account in systemd_229.bb

Herve Jourdain herve.jourdain at neuf.fr
Mon Mar 7 12:01:08 UTC 2016


Dear Anders,

Regarding the binfmt part, you're right, it should be a second patch... I
will resend it separately.

For the gcrypt/resolved patch, I will rework it.
One thing, though, the idea was to add the --disable-gcrypt in the
EXTRA_OECONF, if neither gcrypt nor resolved are enabled.
Hence the removal of "--disable-gcrypt" in the PACKAGECONFIG[gcrypt] line...
That seemed easier at the time, but I'll try to find a different way to
achieve this.

This patch seems to build/work fine on my system, but I'll try to find a
better one.

Thanks,

Herve

-----Original Message-----
From: Anders Darander [mailto:anders at chargestorm.se] 
Sent: lundi 7 mars 2016 12:47
To: Herve Jourdain <herve.jourdain at neuf.fr>
Cc: openembedded-core at lists.openembedded.org
Subject: Re: [OE-core] [oe-core][systemd][PATCH] some dependencies in
systemd seem not to be taken into account in systemd_229.bb

(Resending as it didn't go to the list).

Thanks!

I've just ran into this myself this morning.

A few comments are inlined.

* Herve Jourdain <herve.jourdain at neuf.fr> [160307 11:51]:

> # Sign the journal for anti-tampering

> -PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"

Please, keep this line as it is. If gcrypt isn't enabled, we need to pass
--disable-gcrypt. Tnus, it should be part of this line.

> +# RESOLVED depends on GCRYPT, so disable gcrypt only if resolved and 
> +gcrypt
> are NOT part of PACKAGECONFIG - done in EXTRA_OECONF

Remove the comment.

> +PACKAGECONFIG[gcrypt] = "--enable-gcrypt,,libgcrypt"

As above, keep the original line.


> -PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved"

> +# RESOLVED depends on GCRYPT, so enable gcrypt any time resolved is 
> +in
> PACKAGECONFIG

Either keep this comment, and keep enabling gcrypt.

Though, I'd prefer to follow the precedence of importd, and just have the
comment stating what you need to enable.

> +PACKAGECONFIG[resolved] = "--enable-resolved
> --enable-gcrypt,--disable-resolved,libgcrypt"

No, don't add --enable-gcrypt to the resolved PACKAGECONFIG.


> +# RESOLVED depends on GCRYPT, so disable gcrypt only if resolved and 
> +gcrypt
> are NOT part of PACKAGECONFIG

> +EXTRA_OECONF += "${@bb.utils.contains_any('PACKAGECONFIG', 'resolved
> gcrypt', '', '--disable-gcrypt', d)}
> <mailto:$%7b at bb.utils.contains_any('PACKAGECONFIG',%20'resolved%20gcry
> pt',%2
> 0'',%20'--disable-gcrypt',%20d)%7d> "

Skip this part.


> +             if [ ${@bb.utils.contains('PACKAGECONFIG
> <mailto:$%7b at bb.utils.contains('PACKAGECONFIG> ', 'resolved', 'true', 
> 'false', d)} -a \

> +         ! ${@bb.utils.contains('PACKAGECONFIG
> <mailto:$%7b at bb.utils.contains('PACKAGECONFIG> ', 'gcrypt', 'true', 
> 'false', d)} ]; then

> +                           PACKAGECONFIG_append = "gcrypt"

> +             fi

Isn't this too late? (I've not runtime tested this).

If you go the route of modifying PACKAGECONFIG automatically, I'd prefer an
anonymous python funtion doing this at the recipe processing stage.


> -SYSTEMD_PACKAGES = "${PN}-binfmt"

> -SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"

> +#SYSTEMD_PACKAGES = "${PN}-binfmt"

> +#SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"

> +SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt',
> '${PN}-binfmt', '', d)}
> <mailto:$%7b at bb.utils.contains('PACKAGECONFIG',%20'binfmt',%20'$%7bPN%
> 7d-bin
> fmt',%20'',%20d)%7d> "

> +SYSTEMD_SERVICE_${PN}-binfmt = "${@bb.utils.contains('PACKAGECONFIG',
> 'binfmt', 'systemd-binfmt.service', '', d)} 
> <mailto:$%7b at bb.utils.contains('PACKAGECONFIG',%20'binfmt',%20'systemd
> -binfm
> t.service',%20'',%20d)%7d> "

This looks good, but should probably be a separate patch.

Cheers,
Anders

--
Anders Darander, Senior System Architect ChargeStorm AB / eStorm AB



More information about the Openembedded-core mailing list