[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