[oe] guidelines for upstart in oe?

Steffen Sledz sledz at dresearch-fe.de
Sat Sep 17 06:24:25 UTC 2011


Am 16.09.2011 17:32, schrieb Phil Blundell:
> On Fri, 2011-09-16 at 17:29 +0200, Steffen Sledz wrote:
>> On 14.09.2011 17:31, Steffen Sledz wrote:
>>> If i remember right there are some first experiments with using upstart as an sysvinit replacement in some oe based distros.
>>>
>>> Do some guidelines or suggestions exist to make an application recipes upstart ready?
>>>
>>> Nowadays a recipe for a common service contains INITSCRIPT_NAME & Co and installs an init script for sysvinit.
>>>
>>> How should such a recipe be modified to be able to install the application in a native upstart image (without sysvinit compatible runlevels)?
>>
>> Let me put it in concrete terms.
>>
>> Is it possible to write a bb recipe in a way like this?
>>
>> ---------------------->snip<-------------------------
>> ...
>> IF IMAGE USES UPSTART AS INIT THEN
>>
> 
> Fundamentally no, since there is no way to know at the time the recipe
> is evaluated what images it will go into.
> 
> It would be possible to ship both sets of scripts and then have a
> postprocessing step to remove the ones that you don't need.  Or you
> could make upstart vs sysvinit be a DISTRO_FEATURE.  Or, in at least
> some cases, we could probably stop shipping the scripts as discrete
> files altogether and replace them with some symbolic representation from
> which the necessary scripts could be constructed dynamically at install
> time.

Would it be an accepted solution to have two different packages in two recipes with common parts in an include like this?


foo_x.y.bb:
------------------>snip<-------------------
require foo-x.y.inc

RCONFLICTS = "foo-upstart"

inherit update-rc.d

do_install_append() {
    install -d ${D}${sysconfdir}/init.d
    install -m 0755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/foo
}

INITSCRIPT_NAME = "foo"
...
------------------>snip<-------------------


foo-upstart_x.y.bb:
------------------>snip<-------------------
require foo-x.y.inc

RCONFLICTS = "foo"

do_install_append() {
    install -d ${D}${sysconfdir}/init
    install -m 0644 ${S}/upstartscript ${D}${sysconfdir}/init/foo.conf
}
...
------------------>snip<-------------------


foo-x.y.inc:
------------------>snip<-------------------
inherit autotools
...
------------------>snip<-------------------

Steffen

-- 
DResearch Fahrzeugelektronik GmbH
Otto-Schmirgal-Str. 3, 10319 Berlin, Germany
Tel: +49 30 515932-237 mailto:sledz at DResearch.de
Fax: +49 30 515932-299
Geschäftsführer: Dr. Michael Weber, Werner Mögle;
Amtsgericht Berlin Charlottenburg; HRB 130120 B;
Ust.-IDNr. DE273952058




More information about the Openembedded-devel mailing list