[meta-multimedia][kirkstone][PATCH] libcamera: fix packaging


Julien STEPHAN
 

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@...>
---
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


Khem Raj
 

Is this needed on master as well ?

On Wed, May 11, 2022 at 1:16 AM Julien STEPHAN <jstephan@...> 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@...>
---
 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





Jiaqing Zhao
 

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@...>
---
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"





Khem Raj
 

On Wed, May 11, 2022 at 8:17 AM Jiaqing Zhao
<jiaqing.zhao@...> 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@...>
---
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"






Julien STEPHAN
 

yes I think it should be also ported on master

Le mer. 11 mai 2022 à 17:05, Khem Raj <raj.khem@...> a écrit :
Is this needed on master as well ?

On Wed, May 11, 2022 at 1:16 AM Julien STEPHAN <jstephan@...> 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@...>
---
 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





Julien STEPHAN
 



Le mer. 11 mai 2022 à 17:20, Khem Raj <raj.khem@...> a écrit :
On Wed, May 11, 2022 at 8:17 AM Jiaqing Zhao
<jiaqing.zhao@...> 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@...>
> > ---
> >  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"
> >
> >
> >
> >
> >
>
>
>