Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions conf/machine/include/rpi-default-providers.inc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ PREFERRED_PROVIDER_virtual/mesa ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc
PREFERRED_PROVIDER_virtual/libgbm ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
PREFERRED_PROVIDER_jpeg ?= "jpeg"

PACKAGE_EXCLUDE:append = " libcamera"
PREFERRED_PROVIDER_libcamera ?= "rpi-libcamera"

PREFERRED_PROVIDER_virtual/libomxil ?= "userland"
VIRTUAL-RUNTIME_libomxil = "userland"

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

22 changes: 22 additions & 0 deletions recipes-multimedia/rpi-libcamera/libpisp_1.3.0.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
SUMMARY = "libpisp - PISP library"
DESCRIPTION = "Library for PISP pipeline handler"

LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3417a46e992fdf62e5759fba9baef7a7"

SRC_URI = "git://github.com/raspberrypi/libpisp.git;protocol=https;branch=main"
PV = "1.3.0+git${SRCPV}"
SRCREV = "9ba67e6680f03f31f2b1741a53e8fd549be82cbe"

inherit meson pkgconfig

DEPENDS = "\
boost \
nlohmann-json \
"

CXXFLAGS:append = " -Wno-unused-result "

INSANE_SKIP:${PN} = "buildpaths"
INSANE_SKIP:${PN}-dev = "buildpaths"

Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
SUMMARY = "Raspberry PI libcamera fork"
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://github.com/raspberrypi/libcamera.git;protocol=https;branch=main"

PV = "0.5.2+rpt20250903+git${SRCPV}"
SRCREV = "bfd68f786964636b09f8122e6c09c230367390e7"

PE = "1"

DEPENDS = "\
python3-pyyaml-native \
python3-jinja2-native \
python3-ply-native \
python3-jinja2-native \
udev \
gnutls \
chrpath-native \
libevent \
libyaml \
\
${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)} \
"

PACKAGES =+ "${PN}-gst ${PN}-pycamera"

PACKAGECONFIG ??= "dng gst pycamera"
PACKAGECONFIG[dng] = ",,tiff"
PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
PACKAGECONFIG[pycamera] = "-Dpycamera=enabled,-Dpycamera=disabled,python3 python3-pybind11"
PACKAGECONFIG[pisp] = "-Dpipelines=rpi/pisp -Dipas=rpi/pisp, -Dpipelines=rpi/vc4 -Dipas=rpi/vc4, libpisp"

# machines which uses pisp
PACKAGECONFIG:append:raspberrypi5 = " pisp"

EXTRA_OEMESON = " \
-Dv4l2=enabled \
-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/codegen/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py
}

do_install:append() {
chrpath -d ${D}${libdir}/libcamera.so
chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so
}

do_package:append() {
bb.build.exec_func("do_package_recalculate_ipa_signatures", d)
}

do_package_recalculate_ipa_signatures() {
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} += "\
${libexecdir}/libcamera/v4l2-compat.so \
${libdir}/libcamera/ipa/* \
${datadir}/libcamera/pipeline/rpi/* \
${datadir}/libcamera/ipa/rpi* \
"
FILES:${PN}-gst = "${libdir}/gstreamer-1.0"
FILES:${PN}-pycamera = "${PYTHON_SITEPACKAGES_DIR}/libcamera"

# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
# both 32 and 64 bit file APIs.
GLIBC_64BIT_TIME_FLAGS = ""
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SUMMARY = "A suite of libcamera-based apps"
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
copy the functionality of the existing \"raspicam\" apps."
SUMMARY = "suite of libcamera-based applications"
DESCRIPTION = "This is a small suite of libcamera-based applications to \
drive the cameras on a Raspberry Pi platform."
HOMEPAGE = "https://github.com/raspberrypi/rpicam-apps"
SECTION = "console/utils"

Expand All @@ -9,15 +9,11 @@ LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"

SRC_URI = "\
git://github.com/raspberrypi/rpicam-apps.git;protocol=https;branch=main \
file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
file://add-missing-header.patch \
"
PV = "1.9.1+git${SRCPV}"
SRCREV = "6782818adcb8b5559c2657bb144e78d69607681f"

SRCREV = "eca9928b76c106141667288f1cef935d02ba59b3"

PROVIDES += "rpicam-apps"

DEPENDS = "libcamera libexif jpeg tiff libpng boost"
DEPENDS = "rpi-libcamera libexif jpeg tiff libpng boost"

PACKAGECONFIG ??= "drm"
PACKAGECONFIG[libav] = "-Denable_libav=enabled, -Denable_libav=disabled, libav"
Expand All @@ -36,12 +32,17 @@ NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
EXTRA_OEMESON += "${NEON_FLAGS}"

# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
# QA Issue: File /usr/lib/pkgconfig/rpicam_app.pc in package libcamera-apps-dev contains reference to TMPDIR
do_install:append() {
rm -v ${D}/${bindir}/camera-bug-report
sed -i "s,${RECIPE_SYSROOT}${libdir},$\{libdir},g" ${D}${libdir}/pkgconfig/rpicam_app.pc
}

FILES:${PN} += "${libdir}/rpicam-apps-postproc \
${libdir}/rpicam-apps-preview \
${datadir}/rpi-camera-assets"
# not picked automatically, because it's missing common 'lib' prefix
FILES:${PN}-dev += "${libdir}/rpicam_app.so"

FILES:${PN} += "\
${libdir}/rpicam_app.so.${@d.getVar("PV", False).__str__().split('+')[0]} \
${libdir}/rpicam-apps* \
${datadir}/rpi-camera-assets/* \
"

INSANE_SKIP:${PN}-dev = "buildpaths"