From: Gerard van den Bosch <gerard@de-haardt.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: poky <poky@yoctoproject.org>
Subject: Re: wrong rpm name qt package
Date: Fri, 27 May 2011 08:10:21 +0200 [thread overview]
Message-ID: <4DDF404D.2010504@de-haardt.com> (raw)
In-Reply-To: <1306418056.27470.181.camel@rex>
[-- Attachment #1: Type: text/plain, Size: 4337 bytes --]
On 05/26/2011 03:54 PM, Richard Purdie wrote:
> On Thu, 2011-05-26 at 13:22 +0200, Gerard van den Bosch wrote:
>> On 05/26/2011 11:43 AM, Richard Purdie wrote:
>>> On Thu, 2011-05-26 at 09:31 +0200, Gerard van den Bosch wrote:
>>>> I have developed a shared library using Qt, it compiles without any
>>>> problems but it goes wrong with rpm packaging.
>>>> When it packages it should create a rpm package with the name
>>>> "libxmlpcpqt" but it creates a package with "libxmlpcpqt1".
>>>> My question is where does the '1' come from?
>>>>
>>>> The install part from the recipe is as follows:
>>>> do_install() {
>>>> install -d ${D}${libdir}
>>>> install -m 0755 ${S}/${PN}.so ${D}${libdir}
>>>> }
>>>>
>>>> In
>>>> the /tmp/work/armv7a-poky-linux-gnueabi/libxmlpcpqt-0.1-r1/image/usr/lib the libxmlpcpqt.so file correctly exists.
>>> This happens as debian style package naming is enabled (debian.bbclass
>>> is inherited).
>>>
>>> Cheers,
>>>
>>> Richard
>>>
>> I tried removing debian from the INHERITS+= variable in the poky.conf
>> but then it printed it couldn't find the function that is inside
>> debian.bbclass and didn't create the package.
>> Modifying debian.bbclass would be too drastic so I work around it like
>> this:
>> Added PACKAGES+= ${PN}1 to my recipe
>> Modified the IMAGE_INSTALL+= variable from libxmlpcpqt to libxmlpcpqt1
>> This resulted in a working solution.
> This is a bug and you should never need to do this. IMAGE_INSTALL should
> be getting remapped to the new names. The code that is meant to do that
> is at the top of image.bbclass:
>
> # If we don't do this we try and run the mapping hooks while parsing which is slow
> # bitbake should really provide something to let us know this...
> if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
> runtime_mapping_rename("PACKAGE_INSTALL", d)
> runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
>
> Can you check that the code is being called? I suspect something to do
> with the BB_WORKERCONTEXT variable has been broken. We should be doing
> this in a better way anyhow...
>
> Cheers,
>
> Richard
>
Ok, I have tried the following with the Bernard release:
print "hello"
print bb.data.getVar('BB_WORKERCONTEXT', d, True)
if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
print "hello2"
runtime_mapping_rename("PACKAGE_INSTALL", d)
runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
The "hello" gets printed, and the variable outputs "None", the "hello2" doesn't get printed because the variable is None.
In the laverne release I use here it checks on something else namely:
if bb.data.getVar('__RUNQUEUE_DO_NOT_USE_EXTERNALLY', d, True) is not None:
I can't add print commands there because it gives ident errors, found that has something todo with spaces but couldn't get it working.
I tried searching some further, I see in this commit that the if is added, that is in the laverne release:
http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/meta/classes/image.bbclass?id=4e0ee648b4c18b770aba11921370258f3e2aaeef
Then a few commits later it is changed to the BB_WORKERCONTEXT:
http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/meta/classes/image.bbclass?id=e427f251a457f3015c4b1cdf1648c53a9acc646d
Thus I tried to figure out what sets the BB_WORKERCONTEXT, I found it in two files in bitbake namely cooker.py and runqueue.py.
Eventually it leads to the loading of the configuration file and something set BB_WORKERCONTEXT then but I couldn't figure out what sets the variable.
I looked up the commits where it is added to bitbake:
http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/runqueue.py?id=1f3e313fd5cc5ae8ea838bf8fcdedace3cb72584 <http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/runqueue.py?id=1f3e313fd5cc5ae8ea838bf8fcdedace3cb72584>
http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/cooker.py?id=ca09a6f08cc29f79f9742058d737deaef9d6d5ef <http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/cooker.py?id=ca09a6f08cc29f79f9742058d737deaef9d6d5ef>
But I couldn't figure out what the changes did and I did not come further than this.
If I need to try something else out, let me know.
Regards,
Gerard
[-- Attachment #2: Type: text/html, Size: 5333 bytes --]
next prev parent reply other threads:[~2011-05-27 6:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-26 7:31 wrong rpm name qt package Gerard van den Bosch
2011-05-26 9:43 ` Richard Purdie
2011-05-26 11:22 ` Gerard van den Bosch
2011-05-26 13:54 ` Richard Purdie
2011-05-26 14:13 ` Gerard van den Bosch
2011-05-27 6:10 ` Gerard van den Bosch [this message]
2011-05-27 12:49 ` Richard Purdie
2011-05-27 13:24 ` Gerard van den Bosch
2011-05-27 14:31 ` Richard Purdie
2011-05-27 16:24 ` Gerard van den Bosch
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=4DDF404D.2010504@de-haardt.com \
--to=gerard@de-haardt.com \
--cc=poky@yoctoproject.org \
--cc=richard.purdie@linuxfoundation.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.