[Need help] How to add one package to build directory of another package


Kuzemko Aleksandr
 

Hello all. This is my first work with Yocto.

It build fine.

Now I want to add some packages (libdotconf and speech-dispatcher). I found old version of it here http://git.openembedded.org/openembedded/plain/recipes/speech-dispatcher/ and http://git.openembedded.org/openembedded/plain/recipes/libdotconf/

I trying to update it for new releases. My changes is here https://github.com/Kuzma30/meta-myconf

 when i run bitbake speech-dispatcher I get this error

 

 

checking for dotconf >= 1.3.. no

 

| configure: error: Package requirements (dotconf >= 1.3) were not met:

 

|

 

| No package 'dotconf' found

 

|

 

| Consider adjusting the PKG_CONFIG_PATH environment variable if you

 

| installed software in a non-standard prefix.

 

|

 

| Alternatively, you may set the environment variables DOTCONF_CFLAGS

 

| and DOTCONF_LIBS to avoid the need to call pkg-config.

| See the pkg-config man page for more details.

 

 

Question

How to add libdotconf to the speech-dispatcher build environment?

 

 


Quentin Schulz
 

Hi,

On 7/28/22 19:14, Kuzemko Aleksandr wrote:
Hello all. This is my first work with Yocto.
I build b2qt for qt6 dev (follow
https://raymii.org/s/tutorials/Yocto_boot2qt_for_the_Raspberry_Pi_4_both_Qt_6_and_Qt_5.html
<https://urldefense.proofpoint.com/v2/url?u=https-3A__raymii.org_s_tutorials_Yocto-5Fboot2qt-5Ffor-5Fthe-5FRaspberry-5FPi-5F4-5Fboth-5FQt-5F6-5Fand-5FQt-5F5.html&d=DwMFaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=c_i3MaPo6ffKKQtAL2EgesCHFHsSQRbKkv-lEgDTmdFnvMZU_1wMkdsDy5rL2C63&s=xBxzYNFdfAtCmLpM_fqzrlUktQ0MnxSfXaruWaqUQ3M&e=>
instruction)
It build fine.
Now I want to add some packages (libdotconf and speech-dispatcher). I found old
version of it here
http://git.openembedded.org/openembedded/plain/recipes/speech-dispatcher/
<https://urldefense.proofpoint.com/v2/url?u=http-3A__git.openembedded.org_openembedded_plain_recipes_speech-2Ddispatcher_&d=DwMFaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=c_i3MaPo6ffKKQtAL2EgesCHFHsSQRbKkv-lEgDTmdFnvMZU_1wMkdsDy5rL2C63&s=daEJD6JsGX9B2YDJXUIxgWO5hoabsYoVLBO2EK1A7Lw&e=>
and http://git.openembedded.org/openembedded/plain/recipes/libdotconf/
<https://urldefense.proofpoint.com/v2/url?u=http-3A__git.openembedded.org_openembedded_plain_recipes_libdotconf_&d=DwMFaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=c_i3MaPo6ffKKQtAL2EgesCHFHsSQRbKkv-lEgDTmdFnvMZU_1wMkdsDy5rL2C63&s=joXx1PvDY27D_crWkeGBjwBzXTATcT_g4KeIQGOxcqI&e=>
I trying to update it for new releases. My changes is here
https://github.com/Kuzma30/meta-myconf
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Kuzma30_meta-2Dmyconf&d=DwMFaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=c_i3MaPo6ffKKQtAL2EgesCHFHsSQRbKkv-lEgDTmdFnvMZU_1wMkdsDy5rL2C63&s=8VkhyIOGEoZkkGHPaRdNU18yQb-37ULpZZW2fGkL0g4&e=>
when i run bitbake speech-dispatcher I get this error
checking for dotconf >= 1.3.. no
| configure: error: Package requirements (dotconf >= 1.3) were not met:
|
| No package 'dotconf' found
|
| Consider adjusting the PKG_CONFIG_PATH environment variable if you
| installed software in a non-standard prefix.
|
| Alternatively, you may set the environment variables DOTCONF_CFLAGS
| and DOTCONF_LIBS to avoid the need to call pkg-config.
| See the pkg-config man page for more details.
more info is here
https://github.com/Kuzma30/meta-myconf/blob/main/recipes-multimedia/libdotconf/log
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Kuzma30_meta-2Dmyconf_blob_main_recipes-2Dmultimedia_libdotconf_log&d=DwMFaQ&c=_sEr5x9kUWhuk4_nFwjJtA&r=LYjLexDn7rXIzVmkNPvw5ymA1XTSqHGq8yBP6m6qZZ4njZguQhZhkI_-172IIy1t&m=c_i3MaPo6ffKKQtAL2EgesCHFHsSQRbKkv-lEgDTmdFnvMZU_1wMkdsDy5rL2C63&s=O_v12F2fX1XevhN9blyuP5HidwfNa01GcWE-D0Q6VcQ&e=>
Question
How to add libdotconf to the speech-dispatcher build environment?
DEPENDS += "libdotconf"

in speech-dispatcher recipe. This adds a dependency on libdotconf target recipe so that it makes it to the sysroot of the speech-dispatcher recipe at build time.

I had a quick glance at your layer and it seems you're targeting kirkstone release but you're still using the old override syntax. Please read https://docs.yoctoproject.org/migration-guides/migration-3.4.html#override-syntax-changes (and the migration guides of all releases between the one supported by the original recipe you got speech dispatcher from so that all required changes are made).

E.g. it's not FILES_${PN} anymore but FILES:${PN}.

Cheers,
Quentin


Kuzemko Aleksandr
 

I have already this string

 https://github.com/Kuzma30/meta-myconf/blob/400deddb4a6eab2e2c5054c482d18623b4c9a498/recipes-multimedia/speech-dispatcher/speech-dispatcher_git.bb#L9

 I will try migrate it to 3.4 release and report here.

 

От: Quentin Schulz
Отправлено: 29 июля 2022 г. в 11:31
Кому: Kuzemko Aleksandr; yocto@...
Тема: Re: [yocto] [Need help] How to add one package to build directory of another package

 

>

> Question

>

> How to add libdotconf to the speech-dispatcher build environment?

>

 

DEPENDS += "libdotconf"

 

in speech-dispatcher recipe. This adds a dependency on libdotconf target

recipe so that it makes it to the sysroot of the speech-dispatcher

recipe at build time.

 

I had a quick glance at your layer and it seems you're targeting

kirkstone release but you're still using the old override syntax. Please

read

https://docs.yoctoproject.org/migration-guides/migration-3.4.html#override-syntax-changes

(and the migration guides of all releases between the one supported by

the original recipe you got speech dispatcher from so that all required

changes are made).

 

E.g. it's not FILES_${PN} anymore but FILES:${PN}.

 

Cheers,

Quentin

 

>

>

>

>

>

 


Kuzemko Aleksandr
 

I have fixed one problem ("No package 'dotconf' found" error) by coping .pc file
https://github.com/Kuzma30/meta-myconf/commit/6b01df5f7adaa3fec1fd1a34d74d9be5d4b9cdbf

But now I has problem with main package (speech-dispatcher)
Log here
https://github.com/Kuzma30/meta-myconf/commit/7c5e3a070f526dafe01b43aa5ba95573dd55d07d

ERROR: speech-dispatcher-git-r0 do_package_qa: QA Issue: -dev package speech-dispatcher-dev contains non-symlink .so '/usr/lib/libvoxin.so'


Khem Raj
 

On Sat, Jul 30, 2022 at 6:20 AM Kuzemko Aleksandr
<kuzemkoyocto@...> wrote:

I have fixed one problem ("No package 'dotconf' found" error) by coping .pc file
https://github.com/Kuzma30/meta-myconf/commit/6b01df5f7adaa3fec1fd1a34d74d9be5d4b9cdbf
I wonder why do you have do_stage task, it should not be defined in
recipes anymore as the bbclasses should be left to handle staging
sysroot creating most of times.

But now I has problem with main package (speech-dispatcher)
Log here
https://github.com/Kuzma30/meta-myconf/commit/7c5e3a070f526dafe01b43aa5ba95573dd55d07d
Your package contains unversioned libraries, so either change them to
use versioning scheme, see
https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

If you really need to keep using unversioned libraries then you have
to tell the packaging system to do the right thing

add something like this in recipe

FILES_SOLIBSDEV = ""
INSANE_SKIP:${PN} += "dev-so"


ERROR: speech-dispatcher-git-r0 do_package_qa: QA Issue: -dev package speech-dispatcher-dev contains non-symlink .so '/usr/lib/libvoxin.so'



Kuzemko Aleksandr
 

Report of progress.
https://github.com/Kuzma30/meta-myconf/commit/25035fdb737aecfb765c963085e898d0f33ac0b9
Have errors
ERROR: speech-dispatcher-git-r0 do_package_qa: QA Issue: non -dev/-dbg/nativesdk- package libspeechd contains symlink .so '/usr/lib/libspeechd.so' [dev-so]
ERROR: speech-dispatcher-git-r0 do_package_qa: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /home/qtembed/b2qt/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/speech-dispatcher/git-r0/temp/log.do_package_qa.26981
ERROR: Task (/home/qtembed/b2qt/sources/meta-myconfig/recipes-multimedia/speech-dispatcher/speech-dispatcher_git.bb:do_package_qa) failed with exit code '1'


Khem Raj
 


Also add

INSANE_SKIP:libspeechd += "dev-so"

On Fri, Aug 5, 2022 at 12:32 AM Kuzemko Aleksandr <kuzemkoyocto@...> wrote:
Report of progress.
https://github.com/Kuzma30/meta-myconf/commit/25035fdb737aecfb765c963085e898d0f33ac0b9
Have errors
ERROR: speech-dispatcher-git-r0 do_package_qa: QA Issue: non -dev/-dbg/nativesdk- package libspeechd contains symlink .so '/usr/lib/libspeechd.so' [dev-so]
ERROR: speech-dispatcher-git-r0 do_package_qa: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /home/qtembed/b2qt/build-raspberrypi4/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/speech-dispatcher/git-r0/temp/log.do_package_qa.26981
ERROR: Task (/home/qtembed/b2qt/sources/meta-myconfig/recipes-multimedia/speech-dispatcher/speech-dispatcher_git.bb:do_package_qa) failed with exit code '1'




Kuzemko Aleksandr
 

Thanks, now it works.

Another question. I have
DEPENDS = "espeak flite pulseaudio libdotconf glib-2.0 libtool gettext"
and
EXTRA_OECONF = " --with-espeak --with-flite --without-ibmtts --without-nas --with-alsa --with-pulse "
Is it possible define espeak flite as option? For example if I in local.conf define something speech-dispatcher[espeak] it will disable from DEPENDS flite depends and in EXTRA_OECONF it wil be as --withot-flite


Alex Kiernan
 

PACKAGECONFIG is what you're after:

https://docs.yoctoproject.org/current/ref-manual/variables.html#term-PACKAGECONFIG


On Sat, Aug 6, 2022 at 10:28 AM Kuzemko Aleksandr
<kuzemkoyocto@...> wrote:

Thanks, now it works.

Another question. I have
DEPENDS = "espeak flite pulseaudio libdotconf glib-2.0 libtool gettext"
and
EXTRA_OECONF = " --with-espeak --with-flite --without-ibmtts --without-nas --with-alsa --with-pulse "
Is it possible define espeak flite as option? For example if I in local.conf define something speech-dispatcher[espeak] it will disable from DEPENDS flite depends and in EXTRA_OECONF it wil be as --withot-flite



--
Alex Kiernan