[meta-multimedia,kirkstone] libcamera: fix packaging

Message ID 20220511081409.3437145-1-jstephan@baylibre.com
State Under Review
Headers show
Series [meta-multimedia,kirkstone] libcamera: fix packaging | expand

Commit Message

Julien Stephan May 11, 2022, 8:14 a.m. UTC
libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev although
they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
This trigger the following error when trying to run the `cam` utility
(packaged inside ${PN}):

$ cam -l
cam: error while loading shared libraries: libcamera.so.0: cannot open shared object file: No such file or directory

$ read-elf -d /usr/bin/cam
Dynamic section at offset 0x2c740 contains 37 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libcamera.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libcamera-base.so.0]
[...]

So package libcamera is broken and need to be installed along with
libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
libcamera-base.so.0 into ${PN}

Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
---
 meta-multimedia/recipes-multimedia/libcamera/libcamera.bb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Khem Raj May 11, 2022, 3:05 p.m. UTC | #1
Is this needed on master as well ?

On Wed, May 11, 2022 at 1:16 AM Julien STEPHAN <jstephan@baylibre.com>
wrote:

> libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev although
> they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
> This trigger the following error when trying to run the `cam` utility
> (packaged inside ${PN}):
>
> $ cam -l
> cam: error while loading shared libraries: libcamera.so.0: cannot open
> shared object file: No such file or directory
>
> $ read-elf -d /usr/bin/cam
> Dynamic section at offset 0x2c740 contains 37 entries:
>   Tag        Type                         Name/Value
>  0x0000000000000001 (NEEDED)             Shared library: [libcamera.so.0]
>  0x0000000000000001 (NEEDED)             Shared library:
> [libcamera-base.so.0]
> [...]
>
> So package libcamera is broken and need to be installed along with
> libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
> libcamera-base.so.0 into ${PN}
>
> Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
> ---
>  meta-multimedia/recipes-multimedia/libcamera/libcamera.bb | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> index 713626069..0b9f3f7a5 100644
> --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> @@ -64,10 +64,10 @@ do_recalculate_ipa_signatures_package() {
>
>  FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
>  FILES:${PN}-dev += " ${libdir}/libcamera.so"
> -FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
> +FILES:${PN} += " ${libdir}/libcamera.so.0"
>  FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
>  FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
> -FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
> +FILES:${PN} += " ${libdir}/libcamera-base.so.0"
>  FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
>  FILES:${PN} += " ${libdir}/v4l2-compat.so"
>  FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
> --
> 2.35.2
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#97034):
> https://lists.openembedded.org/g/openembedded-devel/message/97034
> Mute This Topic: https://lists.openembedded.org/mt/91031240/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Jiaqing Zhao May 11, 2022, 3:17 p.m. UTC | #2
On 2022-05-11 16:14, Julien STEPHAN wrote:
> libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev although
> they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
> This trigger the following error when trying to run the `cam` utility
> (packaged inside ${PN}):
> 
> $ cam -l
> cam: error while loading shared libraries: libcamera.so.0: cannot open shared object file: No such file or directory
> 
> $ read-elf -d /usr/bin/cam
> Dynamic section at offset 0x2c740 contains 37 entries:
>   Tag        Type                         Name/Value
>  0x0000000000000001 (NEEDED)             Shared library: [libcamera.so.0]
>  0x0000000000000001 (NEEDED)             Shared library: [libcamera-base.so.0]
> [...]
> 
> So package libcamera is broken and need to be installed along with
> libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
> libcamera-base.so.0 into ${PN}
> 
> Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
> ---
>  meta-multimedia/recipes-multimedia/libcamera/libcamera.bb | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> index 713626069..0b9f3f7a5 100644
> --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> @@ -64,10 +64,10 @@ do_recalculate_ipa_signatures_package() {
>  
>  FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
>  FILES:${PN}-dev += " ${libdir}/libcamera.so"

Maybe this should also be added to be packaged in ${PN}, this should be a link to libcamera.so.0.0.0

> -FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
> +FILES:${PN} += " ${libdir}/libcamera.so.0"
>  FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
>  FILES:${PN}-dev += " ${libdir}/libcamera-base.so"

Also this one

> -FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
> +FILES:${PN} += " ${libdir}/libcamera-base.so.0"
>  FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
>  FILES:${PN} += " ${libdir}/v4l2-compat.so"
>  FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#97034): https://lists.openembedded.org/g/openembedded-devel/message/97034
> Mute This Topic: https://lists.openembedded.org/mt/91031240/6787970
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [jiaqing.zhao@linux.intel.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj May 11, 2022, 3:19 p.m. UTC | #3
On Wed, May 11, 2022 at 8:17 AM Jiaqing Zhao
<jiaqing.zhao@linux.intel.com> wrote:
>
> On 2022-05-11 16:14, Julien STEPHAN wrote:
> > libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev although
> > they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
> > This trigger the following error when trying to run the `cam` utility
> > (packaged inside ${PN}):
> >
> > $ cam -l
> > cam: error while loading shared libraries: libcamera.so.0: cannot open shared object file: No such file or directory
> >
> > $ read-elf -d /usr/bin/cam
> > Dynamic section at offset 0x2c740 contains 37 entries:
> >   Tag        Type                         Name/Value
> >  0x0000000000000001 (NEEDED)             Shared library: [libcamera.so.0]
> >  0x0000000000000001 (NEEDED)             Shared library: [libcamera-base.so.0]
> > [...]
> >
> > So package libcamera is broken and need to be installed along with
> > libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
> > libcamera-base.so.0 into ${PN}
> >
> > Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
> > ---
> >  meta-multimedia/recipes-multimedia/libcamera/libcamera.bb | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> > index 713626069..0b9f3f7a5 100644
> > --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> > +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> > @@ -64,10 +64,10 @@ do_recalculate_ipa_signatures_package() {
> >
> >  FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
> >  FILES:${PN}-dev += " ${libdir}/libcamera.so"
>
> Maybe this should also be added to be packaged in ${PN}, this should be a link to libcamera.so.0.0.0

.so are normally dev symlinks, so this should be fine as long as it is
not used as unversioned lib.

>
> > -FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
> > +FILES:${PN} += " ${libdir}/libcamera.so.0"
> >  FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
> >  FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
>
> Also this one
>
> > -FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
> > +FILES:${PN} += " ${libdir}/libcamera-base.so.0"
> >  FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
> >  FILES:${PN} += " ${libdir}/v4l2-compat.so"
> >  FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
> >
> >
> >
> >
> >
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#97037): https://lists.openembedded.org/g/openembedded-devel/message/97037
> Mute This Topic: https://lists.openembedded.org/mt/91031240/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Julien Stephan May 11, 2022, 3:21 p.m. UTC | #4
yes I think it should be also ported on master

Le mer. 11 mai 2022 à 17:05, Khem Raj <raj.khem@gmail.com> a écrit :

> Is this needed on master as well ?
>
> On Wed, May 11, 2022 at 1:16 AM Julien STEPHAN <jstephan@baylibre.com>
> wrote:
>
>> libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev although
>> they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
>> This trigger the following error when trying to run the `cam` utility
>> (packaged inside ${PN}):
>>
>> $ cam -l
>> cam: error while loading shared libraries: libcamera.so.0: cannot open
>> shared object file: No such file or directory
>>
>> $ read-elf -d /usr/bin/cam
>> Dynamic section at offset 0x2c740 contains 37 entries:
>>   Tag        Type                         Name/Value
>>  0x0000000000000001 (NEEDED)             Shared library: [libcamera.so.0]
>>  0x0000000000000001 (NEEDED)             Shared library:
>> [libcamera-base.so.0]
>> [...]
>>
>> So package libcamera is broken and need to be installed along with
>> libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
>> libcamera-base.so.0 into ${PN}
>>
>> Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
>> ---
>>  meta-multimedia/recipes-multimedia/libcamera/libcamera.bb | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
>> b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
>> index 713626069..0b9f3f7a5 100644
>> --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
>> +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
>> @@ -64,10 +64,10 @@ do_recalculate_ipa_signatures_package() {
>>
>>  FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
>>  FILES:${PN}-dev += " ${libdir}/libcamera.so"
>> -FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
>> +FILES:${PN} += " ${libdir}/libcamera.so.0"
>>  FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
>>  FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
>> -FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
>> +FILES:${PN} += " ${libdir}/libcamera-base.so.0"
>>  FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
>>  FILES:${PN} += " ${libdir}/v4l2-compat.so"
>>  FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
>> --
>> 2.35.2
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#97034):
>> https://lists.openembedded.org/g/openembedded-devel/message/97034
>> Mute This Topic: https://lists.openembedded.org/mt/91031240/1997914
>> Group Owner: openembedded-devel+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
>> raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>>
Julien Stephan May 11, 2022, 3:23 p.m. UTC | #5
Le mer. 11 mai 2022 à 17:20, Khem Raj <raj.khem@gmail.com> a écrit :

> On Wed, May 11, 2022 at 8:17 AM Jiaqing Zhao
> <jiaqing.zhao@linux.intel.com> wrote:
> >
> > On 2022-05-11 16:14, Julien STEPHAN wrote:
> > > libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev
> although
> > > they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
> > > This trigger the following error when trying to run the `cam` utility
> > > (packaged inside ${PN}):
> > >
> > > $ cam -l
> > > cam: error while loading shared libraries: libcamera.so.0: cannot open
> shared object file: No such file or directory
> > >
> > > $ read-elf -d /usr/bin/cam
> > > Dynamic section at offset 0x2c740 contains 37 entries:
> > >   Tag        Type                         Name/Value
> > >  0x0000000000000001 (NEEDED)             Shared library:
> [libcamera.so.0]
> > >  0x0000000000000001 (NEEDED)             Shared library:
> [libcamera-base.so.0]
> > > [...]
> > >
> > > So package libcamera is broken and need to be installed along with
> > > libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
> > > libcamera-base.so.0 into ${PN}
> > >
> > > Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
> > > ---
> > >  meta-multimedia/recipes-multimedia/libcamera/libcamera.bb | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> > > index 713626069..0b9f3f7a5 100644
> > > --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> > > +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
> > > @@ -64,10 +64,10 @@ do_recalculate_ipa_signatures_package() {
> > >
> > >  FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
> > >  FILES:${PN}-dev += " ${libdir}/libcamera.so"
> >
> > Maybe this should also be added to be packaged in ${PN}, this should be
> a link to libcamera.so.0.0.0
>
> .so are normally dev symlinks, so this should be fine as long as it is
> not used as unversioned lib.
>
> yes, agree with you. No need for .so to be in ${PN}

> >
> > > -FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
> > > +FILES:${PN} += " ${libdir}/libcamera.so.0"
> > >  FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
> > >  FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
> >
> > Also this one
> >
> > > -FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
> > > +FILES:${PN} += " ${libdir}/libcamera-base.so.0"
> > >  FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
> > >  FILES:${PN} += " ${libdir}/v4l2-compat.so"
> > >  FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
> > >
> > >
> > >
> > >
> > >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#97037):
> https://lists.openembedded.org/g/openembedded-devel/message/97037
> > Mute This Topic: https://lists.openembedded.org/mt/91031240/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>

Patch

diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
index 713626069..0b9f3f7a5 100644
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
@@ -64,10 +64,10 @@  do_recalculate_ipa_signatures_package() {
 
 FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
 FILES:${PN}-dev += " ${libdir}/libcamera.so"
-FILES:${PN}-dev += " ${libdir}/libcamera.so.0"
+FILES:${PN} += " ${libdir}/libcamera.so.0"
 FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
 FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
-FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0"
+FILES:${PN} += " ${libdir}/libcamera-base.so.0"
 FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
 FILES:${PN} += " ${libdir}/v4l2-compat.so"
 FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"