* IPK naming oddity for ipkg's containing archived ${PN}-dev files
@ 2013-09-24 20:17 Glenn Schmottlach
2013-09-24 20:35 ` Khem Raj
0 siblings, 1 reply; 2+ messages in thread
From: Glenn Schmottlach @ 2013-09-24 20:17 UTC (permalink / raw)
To: yocto
[-- Attachment #1: Type: text/plain, Size: 2067 bytes --]
I've run across what appears to be a naming inconsistency (not sure if it's
intentional or a bug) that seems to impact the name given to the ipk file
for recipe's "dev" files.
Let me be more clear. My recipe produces a shared object library called:
libtts_engine.so
This shared library is deployed in /usr/lib and the package-split directory
structure looks like the following in my recipe workdir:
package-split/tts-sdk-dev
package-split/tts-sdk-dev/usr
package-split/tts-sdk-dev/usr/lib
package-split/tts-sdk-dev/usr/lib/libtts_engine.so
package-split/tts-sdk-dev/usr/include
package-split/tts-sdk-dev/usr/include/tts.h
So, when Yocto generates my ipk archive I would expect it to be named
something like:
tts-sdk-dev_${PV}_${PACKAGE_ARCH}.ipk
Instead, Yocto is generating the following name for the "dev" ipk:
libtts_engine-dev_${PV}_${PACKAGE_ARCH}.ipk
This is *not* consistent with how the other ipk are named by Yocto, e.g.
tts-sdk_${PV}_${PACKAGE_ARCH}.ipk
tts-sdk-doc_${PV}_${PACKAGE_ARCH}.ipk
tts-sdk-dbg_${PV}_${PACKAGE_ARCH}.ipk
In the poky class file (package_ipk.bbclass) I looked at the
do_package_ipk() python function and see that there is an explicit query
for the following variable to determine the base name of the ipk file:
pkgname = localdata.getVar('PKG_%s' % pkg, True)
In most cases, this look-up returns the expected name, e.g. tts-sdk-doc,
tts-sdk-dbg, etc.... But for some reason, the "dev" package name is
remapped from tts-sdk to libtts_engine. My only counter-measure to correct
this is to add the following explicit assignment in my recipe:
PKG_${PN}-dev = "${PN}-dev"
This seems to "correct" the name. Can anyone explain to me the behavior I
am observing? Is there some reason the "dev" package (and only the "dev"
package) is named differently when the ipk is created. Am I breaking an
expected behavior by forcing it to use the more consistent
tts-sdk-dev_${PV}_${PACKAGE_ARCH}.ipk name? I can't find any documentation
that answers this question.
Thanks . . .
[-- Attachment #2: Type: text/html, Size: 2455 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: IPK naming oddity for ipkg's containing archived ${PN}-dev files
2013-09-24 20:17 IPK naming oddity for ipkg's containing archived ${PN}-dev files Glenn Schmottlach
@ 2013-09-24 20:35 ` Khem Raj
0 siblings, 0 replies; 2+ messages in thread
From: Khem Raj @ 2013-09-24 20:35 UTC (permalink / raw)
To: Glenn Schmottlach; +Cc: yocto
On Sep 24, 2013, at 1:17 PM, Glenn Schmottlach <gschmottlach@gmail.com> wrote:
> I've run across what appears to be a naming inconsistency (not sure if it's intentional or a bug) that seems to impact the name given to the ipk file for recipe's "dev" files.
>
>
> Let me be more clear. My recipe produces a shared object library called:
>
> libtts_engine.so
may be this should be something libtts_engine.so.X and libtts_engine.so is then a symlink to it which is commonly the
case with shared libraries
>
> This shared library is deployed in /usr/lib and the package-split directory structure looks like the following in my recipe workdir:
>
> package-split/tts-sdk-dev
> package-split/tts-sdk-dev/usr
> package-split/tts-sdk-dev/usr/lib
> package-split/tts-sdk-dev/usr/lib/libtts_engine.so
> package-split/tts-sdk-dev/usr/include
> package-split/tts-sdk-dev/usr/include/tts.h
>
> So, when Yocto generates my ipk archive I would expect it to be named something like:
>
> tts-sdk-dev_${PV}_${PACKAGE_ARCH}.ipk
>
> Instead, Yocto is generating the following name for the "dev" ipk:
>
> libtts_engine-dev_${PV}_${PACKAGE_ARCH}.ipk
this is because of debian library naming. see http://www.debian.org/doc/debian-policy/ch-sharedlibs.html
and http://www.v7w.com/debian/libpkg-guide.html#naminglibpkg
>
> This is *not* consistent with how the other ipk are named by Yocto, e.g.
>
> tts-sdk_${PV}_${PACKAGE_ARCH}.ipk
> tts-sdk-doc_${PV}_${PACKAGE_ARCH}.ipk
> tts-sdk-dbg_${PV}_${PACKAGE_ARCH}.ipk
>
> In the poky class file (package_ipk.bbclass) I looked at the do_package_ipk() python function and see that there is an explicit query for the following variable to determine the base name of the ipk file:
>
> pkgname = localdata.getVar('PKG_%s' % pkg, True)
>
> In most cases, this look-up returns the expected name, e.g. tts-sdk-doc, tts-sdk-dbg, etc.... But for some reason, the "dev" package name is remapped from tts-sdk to libtts_engine. My only counter-measure to correct this is to add the following explicit assignment in my recipe:
>
> PKG_${PN}-dev = "${PN}-dev"
>
> This seems to "correct" the name. Can anyone explain to me the behavior I am observing? Is there some reason the "dev" package (and only the "dev" package) is named differently when the ipk is created. Am I breaking an expected behavior by forcing it to use the more consistent tts-sdk-dev_${PV}_${PACKAGE_ARCH}.ipk name? I can't find any documentation that answers this question.
>
> Thanks . . .
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-09-24 20:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-24 20:17 IPK naming oddity for ipkg's containing archived ${PN}-dev files Glenn Schmottlach
2013-09-24 20:35 ` Khem Raj
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.