[OE-core] [PATCH] Small improvement for the initscripts package

Jef.Driesen at niko.eu Jef.Driesen at niko.eu
Fri Sep 29 13:21:49 UTC 2017


On 09/29/2017 11:38 AM, Jef.Driesen at niko.eu wrote:
>> For our system, we are using some custom initscripts. Because of
>> that, some files conflict with the initscripts package, and thus the
>> initscript package gets removed from our build. But when trying to
>> build an sdk, somehow the initscripts-dev package gets pulled in, and
>> since that has an automatic dependency on initscripts, our build
>> fails.
>
> Please do find out why this happens; that's what you really need to fix.

I tried, but I couldn't figure out where this came from.

>> I've been trying to find out why this happens, but without much
>> success so far. But I did found a simple workaround: remove the
>> initscripts-dev package completely. Since the initscripts recipe
>> contains some shell scripts the initscript-dev is empty anyway.
>>
>> I've fixed this locally with a bbappend, but this is probably
>> something that can be applied upstream.
>
> You can use bbappend to instead replace the standard files with the ones
> that you want installed. Or you can add PROVIDES = "initscripts" to your
> recipe with the 'custom' initscripts, and set
> PREFERRED_PROVIDER_initscripts = "my-custom-initscripts" to have that
> installed.

Those custom initscripts are not in our own layer. It's in a layer we build upon. So it's a bit more complex.

Anyway, what we have there is the following. In the machine conf file there is:

VIRTUAL-RUNTIME_initscripts = ""

This replaces the default meta/recipes-core/packagegroups/packagegroup-core-boot.bb:

VIRTUAL-RUNTIME_initscripts ?= "initscripts"

So I assume that's how they remove the initscripts package. And then in the image recipe they have:

PACKAGE_EXCLUDE += "initscripts-dev"

But for some reason this doesn't work for us. It fails with this error:

ERROR: Unable to install packages. Command '/home/bob/nhc2/yocto/build/tmp/sysroots/x86_64-linux/usr/bin/smart --log-level=warning --data-dir=/home/bob/nhc2/yocto/build/tmp/work/emperor-poky-linux-gnueabi/image-sdk-niko/1.0-r0/sdk/image/opt/yotta/2.0.3/sysroots/armv7a-vfp-neon-poky-linux-gnueabi/var/lib/smart install --attempt -y initscripts-dbg at armv7a_vfp_neon initscripts-dev at armv7a_vfp_neon ...' returned 1:
Loading cache...
Updating cache...               ######################################## [100%
Computing transaction...warning: Can't install initscripts-dev-1.0-r155.0 at armv7a_vfp_neon: it's locked
Traceback (most recent call last):
  File "/home/bob/nhc2/yocto/build/tmp/sysroots/x86_64-linux/usr/bin/smart.real", line 200, in <module>
    main(sys.argv[1:])
  File "/home/bob/nhc2/yocto/build/tmp/sysroots/x86_64-linux/usr/bin/smart.real", line 173, in main
    exitcode = iface.run(opts.command, opts.argv)
  File "/home/bob/nhc2/yocto/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/interface.py", line 53, in run
    result = _command.main(self._ctrl, opts)
  File "/home/bob/nhc2/yocto/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/commands/install.py", line 192, in main
    trans.run()
  File "/home/bob/nhc2/yocto/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/site-packages/smart/transaction.py", line 1235, in run
    del changeset[pkg]
KeyError: initscripts-dev-1.0-r155.0 at armv7a_vfp_neon

DEBUG: Python function do_populate_sdk finished
ERROR: Function failed: do_populate_sdk


I'm not even sure whether PACKAGE_EXCLUDE is supposed to be used from an image recipe, because the documentation refers to local.conf. So that might explain why it doesn't work.

Jef
Disclaimer

This e-mail and its attachments is intended only for the person(s) or entity to which it is addressed. If you receive this e-mail by mistake, please delete this e-mail from your system and destroy all copies of it. It may contain confidential and/or privileged information. You should not copy it or use it for any purpose nor disclose its contents to any person unless allowed by a written document between the sender and the addressee.



More information about the Openembedded-core mailing list