Re: [yocto] executable depends on the library that is built in the same recipe

2017-12-11 Thread Jeremy A. Puhlman
Given it is looking for libMyTool.so and not a versioned library, my 
guess is that the shared
library is not setting a proper soname when being built. All libraries 
should be built with a soname,
and if done correctly should be versioned.  The .so file generally 
shouldn't be the runtime library
but a link back to the versioned library, so you get something that 
looks like:


/usr/lib/libz.so -> libz.zo.1.2.11
/usr/lib/libz.so.1.2.11
/usr/lib/libz.so.1 -> libz.so.1


On 12/11/2017 11:45 AM, Rail Shafigulin wrote:

I have a recipe that builds a library and an executable. Executable
depends on the library which built int he same recipe. When I run
bitbake I get the following error:

WARNING: mytool-1.0+gitAUTOINC+3e2b76e330-r0 do_package_qa: QA Issue:
/bin/mytool contained in package mytool requires libMyTool.so, but no
providers found in RDEPENDS_mytool? [file-rdeps]

I tried the suggestion given by the bitbake putting mytool in
REDEPNDS_${PN}, but that didn't work. I also tried looking online for
the solution but didn't find one.

Can someone help out?




--
Jeremy A. Puhlman
jpuhl...@mvista.com

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] Release directory layout 2.3.2

2017-09-25 Thread Jeremy A. Puhlman
Was the change to the directory structure release for 2.3.2 intentional. 
All the other releases are under:

http://downloads.yoctoproject.org/releases/yocto/yocto-
where as 2.3.2 is
http://downloads.yoctoproject.org/releases/yocto/yocto-version>/yocto-


--
Jeremy A. Puhlman
jpuhl...@mvista.com

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] BBMASK not working for me?

2017-03-01 Thread Jeremy A. Puhlman



On 3/1/2017 12:06 PM, chris warth wrote:

Can anyone suggest why my BBMASK is not working?
Maybe I'm not putting it into the right file?
Did I construct the regex incorrectly?

In my conf/bblayers.conf I have,

 BBMASK .= "qemu"


This basically concatenates qemu to what ever is already in BBMASK. It 
is a regex expression so you want to treat it as such.

You want to likely do something like:
BBMASK .= "|(qemu)"

OTOH, qemu matches anythin with qemu in the path. You likely want to use 
the full filename:

BBMASK .= "|(qemu_qoriq.bb <http://qemu_qoriq.bb>)"




Then I wipe out the cache by deleting the "tmp/" directory.

Now I would expect
bitbake -n -c fetch qemu
to give a 'Nothing PROVIDES' error.

That is not what happens.   Instead it still completes normally.

I am trying to ignore recipes like
 meta-freescale/recipes-devtools/qemu/qemu_qoriq.bb 
<http://qemu_qoriq.bb>


Thanks in advance for any help.

- Chris




--
Jeremy A. Puhlman
jpuhl...@mvista.com

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Best practice for building a large amount of source files

2015-12-10 Thread Jeremy A. Puhlman



On 12/10/2015 1:16 PM, Michael Habibi wrote:

If I have some source I want to bring into my layer, for example:

Recipe dir:
meta-mylayer/recipes-management/myapplication/myapplication_1.0/of source files>


What is the best option for adding all of these and compiling? As far 
as I know, you have to do one of the following:


1) Use a fetch that fetches a tarball with all your source, or a repo 
with all of your source
2) Use a million-line long SRC_URI assignment to include every file 
that your application uses.


Is there a third (or fourth) option that I may have missed?
Not necessarily best practice, but it is something that bitbake has 
supported.


If you create a directory under myapplication_1.0 that is unique and not 
an override, you can specify the directory name

as the SRC_URI and bitbake will pull the directory and its contents in.

Something like 
meta-mylayer/recipes-management/myapplication/myapplication_1.0/mysources/of source files>


and SRC_URI file://mysources

It should work.

Something like the following:

> find recipes/
recipes/
recipes/myapp
recipes/myapp/files
recipes/myapp/files/mysources
recipes/myapp/files/mysources/Makefile
recipes/myapp/myapp_1.0.bb
> cat recipes/myapp/myapp_1.0.bb
LICENSE="MIT"
LIC_FILES_CHKSUM = 
"file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"


SRC_URI = "file://mysources"

S="${WORKDIR}/mysources"



Michael






--
Jeremy A. Puhlman
jpuhl...@mvista.com

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] Packaging an externally built library?

2015-10-23 Thread Jeremy A. Puhlman

FILES_${PN} += " ${libdir}/*.so"

If I look through the packaging logs it looks like it attampts to 
create a bunch of different packages (cdp-fsw, cdp-fsw-dbg, 
cdp-fsw-dev, cdp-fsw-doc, cdp-fsw-locale) but most of them end up 
being empty except cdp-fsw-dev.  Then if I look through the RPMs there 
is no cdp-fsw there is only a cdp-fsw-dev and cdp-fsw-dbg.


Then when do_rootfs is executed it fails because it can’t find a 
package provider for cdp-fsw.


Why is it automatically creating a -dev package? Can I override 
this?




Because the package list has PN at the end by default:
PACKAGES="${@bb.utils.contains('PTEST_ENABLED', '1', '${PN}-ptest', '', 
d)} ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale 
${PACKAGE_BEFORE_PN} ${PN}"

and
${PN}-dev lists ${libdir}/*.so
"${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la ${libdir}/*.o 
${libdir}/pkgconfig ${datadir}/pkgconfig ${datadir}/aclocal 
${base_libdir}/*.o ${libdir}/${BPN}/*.la ${base_libdir}/*.la"

As part of its files list.

When the packages-split directory is created, it processes the packages 
list in order extracting the files for each package. When ${PN} is 
processes "*.so" files have already been pulled

in to the ${PN}-dev package.

Normally in linux *.so files are symlinks to the actual versioned 
libraries only used for linking. You can fix the binary libraries to 
conform more correctly. If the library is using soname you will likely 
need to do this
anyways to run applications linked against it. To get the soname you 
would do:

-objdump -x libz.so.1  | grep SONAME
if it gives you something like:
SONAME   libz.so.1

You would need to install the library with the name returned from 
objdump, then create a .so symlink to that library. The versioned 
library would get picked up in ${PN}.


If it is not using soname and the linked applications are really only 
looking for lib.so, then you can redefine PACKAGES to include 
just ${PN} or a subset of the normally defined

packages.

--
Jeremy A. Puhlman
jpuhl...@mvista.com
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto