All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.