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

Andreas Müller schnitzeltony at googlemail.com
Wed Jul 18 14:35:44 UTC 2012


On Wed, Jul 18, 2012 at 4:28 PM, Martin Jansa <martin.jansa at gmail.com> wrote:
> On Wed, Jul 18, 2012 at 04:21:19PM +0200, Andreas Müller wrote:
>> On Wed, Jul 18, 2012 at 2:31 PM, Martin Jansa <martin.jansa at gmail.com> wrote:
>> > On Tue, Jul 17, 2012 at 11:23:43AM +0200, Koen Kooi wrote:
>> >> -----BEGIN PGP SIGNED MESSAGE-----
>> >> Hash: SHA1
>> >>
>> >> Op 17-07-12 11:18, Martin Jansa schreef:
>> >> > On Tue, Jul 17, 2012 at 10:54:41AM +0200, Andreas Müller wrote:
>> >> >> On Mon, Jul 16, 2012 at 8:25 PM, Martin Jansa <martin.jansa at gmail.com>
>> >> >> wrote:
>> >> >>> 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,
>> >> >>>
>> >> >> I think the image specific BAD_RECOMMENDATION is not that easy to
>> >> >> implement and to handle by user. I am 'dreaming' of of a distro layer
>> >> >> blacklist. So in your case the distro could mask out whole
>> >> >> meta-systemd. Could you live with that?
>> >> >
>> >> > No, as the same distro is used to create full images with systemd and
>> >> > this chroot-image is just small initramfs for kernel (where
>> >> > systemd+friends is really not needed/expected).
>> >>
>> >> I think the easiest solution is to remove 'inherit systemd' from busybox.
>> >
>> > I have similar problem with gpsd/fso-gpsd and gpsd-systemd too.. On some
>> > devices I would like to include gpsd-systemd in image (e.g. with
>> > systemd-machine-units or through some machine specific task), but on
>> > others (e.g. om-gta02) I need only fso-gpsd.service to provide gpsd
>> > (gpsd-systemd locks gpsd port).
>> >
>> > So maybe I didn't understand Andreas right.. I can put all *-systemd
>> > packages to BAD_RECOMMENDATIONs and then include only needed in
>> > tasks/images like I did before..
>> >
>> Martin,
>>
>> Correct me if I go wrong but I think you are mixing up two issues:
>
> yes but slightly related, see bellow
>>
>> issue 1. busybox: automatic redepending drags in things you don't want.
>> issue 2. gpsd: If I understand you right: there are two services
>> shipped and auto-enabled and that is leading to a conflict.
>
> Yes, but sofar having gpsd installed was fine, because it didn't pull
> gpsd-systemd too (so user was able to start gpsd manually if needed).
>
> Now with PN-systemd pulled by PN I need to be more carefull with images
> having both gpsd/fso-gpsd.
>
>> My suggestions:
>> issue 1. Similar as Koen suggested but I would add an additional
>> variable - something like SYSTEMD_NO_RRECOMMENDS_{PN}. If this is set
>> to "1", the automatic rrecommends are not appended.
>> issue 2. The conflict could be resolved by SYSTEMD_AUTO_ENABLE = "disable".
>
> I'm trying BAD_RECOMMENDATIONS to resolve this:
> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=679453cdbc2c58b6558c8ede8e6e17826dbb7b3d
> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=fe8a92f123ef3137a9e08e6419315f97f4a663fb
> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=1afdd57475bd3ce586e622bfe6baeb3906bedc2f
> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=af74fe87eeb606b167697453d515a269e2280eb6
>
> but it needs more testing (other builds still running) and for some
> reason opkg refuses to remove gpsd-systemd:
>
> SHRZ root at zjama ~ $ opkg remove gpsd-systemd
> No packages removed.
> Collected errors:
>  * print_dependents_warning: Package gpsd-systemd is depended upon by packages:
>  * print_dependents_warning:    task-shr-systemd
>  * print_dependents_warning:    gpsd
>  * print_dependents_warning: These might cease to work if package gpsd-systemd is removed.
>
>  * print_dependents_warning: Force removal of this package with --force-depends.
>  * print_dependents_warning: Force removal of this package and its dependents
>  * print_dependents_warning: with --force-removal-of-dependent-packages.
> SHRZ root at zjama ~ $ opkg info gpsd
> Package: gpsd
> Version: 3.4-r7
> Depends: libgps20 (>= 3.4), update-rc.d, gpsd-gpsctl, libgpsd20 (>= 3.4), bluez4 (>= 4.101), libusb-1.0-0 (>= 1.0.8), libc6 (>= 2.16)
> Recommends: gpsd-conf, gpsd-systemd
>
> even when it's only in gpsd's Recommends..
>
> will check buildhistory after image build if it works there..
>
As far as I remember, opkg treats rrecommends same as rdepends.

To remove there is some force-dependency param in opkg.

Andreas




More information about the Openembedded-devel mailing list