From: Mark Hatle <mark.hatle@windriver.com>
To: <poky@yoctoproject.org>
Subject: Re: [yocto] problem about package and subpackage
Date: Wed, 18 Apr 2012 10:45:27 -0500 [thread overview]
Message-ID: <4F8EE197.7020404@windriver.com> (raw)
In-Reply-To: <4F8ED502.9060904@mlbassoc.com>
On 4/18/12 9:51 AM, Gary Thomas wrote:
> On 2012-04-18 08:46, caterwaul wrote:
>>
>>
>>
>>
>> At 2012-04-18 22:06:36,"Gary Thomas"<gary@mlbassoc.com> wrote:
>>> On 2012-04-18 07:57, caterwaul wrote:
>>>> At 2012-04-18 19:57:21,"Gary Thomas"<gary@mlbassoc.com> wrote:
>>>>> On 2012-04-18 05:29, caterwaul wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I wanted to add dhcp(4.2.0) into my image. And I added "dhcp" into IMAGE_INSTALL of my image's bb file. After I runing bitbake, the dhcp package is normally fetched and compiled
>>>>>> and so on. But during do_rootfs bitbake reported as follow:
>>>>>> Processing dhcp...
>>>>>> Unable to find package dhcp (dhcp)!
>>>>>> ERROR: Function 'do_rootfs' failed
>>>>>>
>>>>>> I note that in /meta/recipes-connectivity/dhcp/dhcp4.inc the dhcp package is split into 4 subpackages(PACKAGES += "dhcp-server dhcp-client dhcp-relay dhcp-omshell"). Now If I
>>>>>> remove "dhcp" from IMAGE_INSTALL and add these 4 subpackages' name into IMAGE_INSTALL and run bitbake AGAIN, they can be normally added into my final image.
>>>>>>
>>>>>> I've tried to modify last part of dhcp4.inc as follow: But bitbake still reported "Unable to find package dhcp"
>>>>>> FILES_${PN} = ""
>>>>>> FILES_${PN} += "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server ${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf"
>>>>>> FILES_${PN} += "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
>>>>>> FILES_${PN} += "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
>>>>>> FILES_${PN} += "${bindir}/omshell"
>>>>>> RDEPENDS_${PN} = "bash"
>>>>>>
>>>>>> So How should I config bitbake to get my image with dhcp by running bitbake ONLY ONCE?
>>>>>
>>>>> There is no "dhcp" package, only dhcp-client, dhcp-relay, dhcp-server.
>>>>> Pick the functionality you need and use the appropriate package(s)
>>>>>
>>>>
>>>>
>>>> Thank you very much. But maybe my question is not clear. What I mean is:
>>>> If I pick dhcp-server dhcp-client dhcp-relay and dhcp-omshell, bitbake will NOT start to build and report can NOT find these packages. On the other hand, if I pick dhcp, bitbake
>>>> will start to build, but at do_rootfs stage it will report "Unable to find package dhcp (dhcp)!"(at this moment all dhcp-xxx packages has actually been generated there). So I want
>>>> to know how to config bitbake to complete the build and produce image with whole or part of dhcp.
>>>
>>> You are confusing packages with recipes. Bitbake only knows how to
>>> build recipes which in turn create packages. Most of the time, the
>>> packages have the same name as the recipe, but not always. Sometimes
>>> a recipe only creates "component" packages which, as in the case of dhcp,
>>> do not include a package with exactly the same name as the recipe.
>>>
>>> In order to get any of these component packages built, one needs to
>>> tell bitbake to build the recipe (if you are trying to force it on
>>> the command line). However, the image needs to use the package names,
>>> as that's what gets installed.
>>>
>>> Maybe a bit confusing, but that's how it works.
>>>
>>> n.b. Please keep replies on the mailing list so that everyone may benefit
>>>
>>
>> Thank you again. Could you explain more about how to tell bitbake which recipe I want and which package I want? Should I add both the recipe name(dhcp) and the package names(dhcp-xxx) into IMAGE_INSTALL of the image's recipe? If so, how does bitbake know which name in IMAGE_INSTALL is for recipe and which is for package?
>
> As I said above, you use recipe names when you are running bitbake
> from the command line, e.g.
> % bitbake dhcp
> % bitbake core-image-minimal
> As part of the process of building recipes, bitbake learns what _packages_
> are created by each recipe. Thus, inside recipes, you use package names,
> not recipe names. So to add dhcp-client to your image, simply add that
> package, not the recipe name. bitbake will then realize that it needs to
> build the dhcp _recipe_ in order to build the dhcp-client _package_
>
>
This is the difference between a "DEPENDS" and an "RDEPENDS" as well. DEPENDS
are recipe names or recipe provides (think source code level). While RDEPENDS
are "runtime" depends on binary package name, or some other provide on a binary
package level.
For an image or task, you would add "dhcp" to the DEPENDS, and dhcp-client to
your RDEPENDS. (It happens that an image recipe is a bit unique and RDEPENDS is
specified as IMAGE_INSTALL...)
--Mark
prev parent reply other threads:[~2012-04-18 15:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-18 11:29 problem about package and subpackage caterwaul
2012-04-18 11:57 ` Gary Thomas
[not found] ` <2cd5df9.23e9d.136c5be57cf.Coremail.caterwaul@163.com>
2012-04-18 14:06 ` [yocto] " Gary Thomas
[not found] ` <6f919fc8.2471e.136c5eb4771.Coremail.caterwaul@163.com>
2012-04-18 14:51 ` Gary Thomas
2012-04-18 15:45 ` Mark Hatle [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F8EE197.7020404@windriver.com \
--to=mark.hatle@windriver.com \
--cc=poky@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.