diff mbox series

[master/kirkstone,v3,1/3] libcamera: Add recipe for v0.0.5

Message ID 20230706041652.1843102-1-j-luthra@ti.com
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [master/kirkstone,v3,1/3] libcamera: Add recipe for v0.0.5 | expand

Commit Message

Jai Luthra July 6, 2023, 4:16 a.m. UTC
For kirkstone, an older recipe is present in meta-oe which is using
libcamera from December 2021 with many missing features.

TI's 6.1 based kernel can support the simple pipeline of libcamera, and
benefit from the latest features in release v0.0.5, so we override the
recipe here for arago.

The new recipe here is taken as-is from meta-oe master.

Signed-off-by: Jai Luthra <j-luthra@ti.com>
---

v3: No changes
Link to v2: https://lore.kernel.org/all/20230706035522.1817402-1-j-luthra@ti.com/

 .../libcamera/libcamera_0.0.5.bb              | 72 +++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 meta-arago-extras/recipes-multimedia/libcamera/libcamera_0.0.5.bb
diff mbox series

Patch

diff --git a/meta-arago-extras/recipes-multimedia/libcamera/libcamera_0.0.5.bb b/meta-arago-extras/recipes-multimedia/libcamera/libcamera_0.0.5.bb
new file mode 100644
index 00000000..6ad376f2
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/libcamera/libcamera_0.0.5.bb
@@ -0,0 +1,72 @@ 
+SUMMARY = "Linux libcamera framework"
+SECTION = "libs"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+
+LIC_FILES_CHKSUM = "\
+    file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \
+    file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
+"
+
+SRC_URI = " \
+        git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
+"
+
+SRCREV = "fb44403f1c5571549ac128c21daee9761eb9249c"
+
+PE = "1"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}"
+
+PACKAGES =+ "${PN}-gst"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+
+LIBCAMERA_PIPELINES ??= "auto"
+
+EXTRA_OEMESON = " \
+    -Dpipelines=${LIBCAMERA_PIPELINES} \
+    -Dv4l2=true \
+    -Dcam=enabled \
+    -Dlc-compliance=disabled \
+    -Dtest=false \
+    -Ddocumentation=disabled \
+"
+
+RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"
+
+inherit meson pkgconfig python3native
+
+do_configure:prepend() {
+    sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py
+}
+
+do_install:append() {
+    chrpath -d ${D}${libdir}/libcamera.so
+    chrpath -d ${D}${libdir}/v4l2-compat.so
+}
+
+addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata
+do_recalculate_ipa_signatures_package() {
+    local modules
+    for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do
+        module="${module%.sign}"
+        if [ -f "${module}" ] ; then
+            modules="${modules} ${module}"
+        fi
+    done
+
+    ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}"
+}
+
+FILES:${PN} += " ${libdir}/v4l2-compat.so"
+FILES:${PN}-gst = "${libdir}/gstreamer-1.0"
+
+# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
+# both 32 and 64 bit file APIs.
+GLIBC_64BIT_TIME_FLAGS = ""
+