[oe] [oe-commits] Andreas Müller : systemd.bbclass: add *-systemd packages to RRECOMMENDS

Martin Jansa martin.jansa at gmail.com
Mon Jul 16 18:25:28 UTC 2012


On Mon, Jul 16, 2012 at 07:42:56AM +0000, git at git.openembedded.org wrote:
> Module: meta-openembedded.git
> Branch: master
> Commit: 264e5a44e1111f939b43c11bb9514a0b435918db
> URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=264e5a44e1111f939b43c11bb9514a0b435918db
> 
> Author: Andreas Müller <schnitzeltony at googlemail.com>
> Date:   Wed Jul 11 20:46:07 2012 +0200
> 
> systemd.bbclass: add *-systemd packages to RRECOMMENDS

This is a bit unfortunate e.g. when busybox is used in small chroot
image.
busybox pulls busybox-syslog, which now adds busybox-syslog-systemd and
it ends with systemd/dbus/udev/shadow/pam/util-linux/kmod being added to previously small image, see:

http://git.shr-project.org/git/?p=buildhistory.git;a=blobdiff;f=images/crespo/eglibc/chroot-image/installed-package-names.txt;h=07187b9e51bd0199910152a8019d117ed41cc2db;hp=8f401e657dd449e30fe8183dc86a791d09614d9f;hb=ac04304bb15221b49e5af6838068f158e7d628ed;hpb=4c0555e7fa689c3c20902c7fc1ec8e525769723f

So it could be solved by image specific BAD_RECOMMENDATIONs or something
like that, but by default it doesn't work very well in this use-case.

Cheers,

> 
> ---
> 
>  meta-systemd/classes/systemd.bbclass |   26 ++++++++++++++++++++++----
>  1 files changed, 22 insertions(+), 4 deletions(-)
> 
> diff --git a/meta-systemd/classes/systemd.bbclass b/meta-systemd/classes/systemd.bbclass
> index 2e585c3..fce314d 100644
> --- a/meta-systemd/classes/systemd.bbclass
> +++ b/meta-systemd/classes/systemd.bbclass
> @@ -180,8 +180,21 @@ python populate_packages_prepend () {
>  					raise bb.build.FuncFailed, "\n\nFor package %s SYSTEMD_SERVICE-entry %s does not exist" % \
>  						(pkg_systemd, service)
>  
> -	# *-systemd packages get RDEPENDS to systemd and their base package
> -	def systemd_add_rdepends(pkg_systemd):
> +	"""     Setup rdepends / rrecommmends as:
> +
> +                -----------------------------
> +                |  pkg_systemd_base: 'foo'  |
> +                -----------------------------
> +                           |    ^
> +                           |    |                 --------------
> +               rrecommends |    | rdepends        | 'systemd'  |
> +                           |    |               ->--------------
> +                           V    |              / rdepends
> +                ------------------------------/
> +                | pkg_systemd: 'foo-systemd' |
> +                ------------------------------
> +	"""
> +	def systemd_add_rdepends_rrecommends(pkg_systemd):
>  		# RDEPENDS_${pkg_systemd} += pkg_systemd_base systemd
>  		rdepends = d.getVar('RDEPENDS_' + pkg_systemd, 1) or ""
>  		rdepends_arr = rdepends.split()
> @@ -195,13 +208,18 @@ python populate_packages_prepend () {
>  		if len(rdepends_arr) == 0 and pkg_systemd != '${PN}' and not pkg_systemd_base in rdepends:
>  			rdepends = '%s %s' % (rdepends, pkg_systemd_base)
>  		d.setVar('RDEPENDS_' + pkg_systemd, rdepends)
> -
> +		# RRECOMMENDS_${pkg_systemd_base} += pkg_systemd systemd
> +		rrecommends = d.getVar('RRECOMMENDS_' + pkg_systemd_base, 1) or ""
> +		# not rrecommending myself AND avoid double entries
> +		if pkg_systemd != pkg_systemd_base and not pkg_systemd in rrecommends.split():
> +			rrecommends = '%s %s' % (rrecommends, pkg_systemd)
> +		d.setVar('RRECOMMENDS_' + pkg_systemd_base, rrecommends)
>  
>  	# run all modifications once when creating package
>  	if os.path.exists('${D}'):
>  		for pkg_systemd in d.getVar('SYSTEMD_PACKAGES', 1).split():
>  			if get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd) != "":
>  				systemd_generate_package_scripts(pkg_systemd)
> -				systemd_add_rdepends(pkg_systemd)
> +				systemd_add_rdepends_rrecommends(pkg_systemd)
>  		systemd_check_services()
>  }
> 
> 
> _______________________________________________
> Openembedded-commits mailing list
> Openembedded-commits at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20120716/a64ceef1/attachment-0002.sig>


More information about the Openembedded-devel mailing list