Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing
@ 2025-04-04 16:47 Quentin Schulz
  2025-04-04 16:47 ` [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline Quentin Schulz
                   ` (9 more replies)
  0 siblings, 10 replies; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

This bumps libcamera to v0.5.0, its latest release.

This removes the boost dependency for the VC4 pipeline which hasn't been
needed for a while already.

This improves current reproducibility by adding optional dependencies to
the list of package dependencies whenever their symbols are enabled.

This improves future reproducibility by making all "auto" features
"disabled" so that new auto features aren't detected by meson when
building libcamera as a missing optional dependency in the package mk
file will introduce a reproducibility issue due to build order of
packages.

This adds knobs for Mali-C55 and PiSP pipelines as well as a package for
libpisp, a dependency for the latter pipeline in libcamera.

This also fixes documentation being built regardless of the
"documentation" feature being disabled, if sphinx-build-3 is available
on the host system.

Finally, this fixes a crash when running on Linux kernel predating 6.4.

Note this was only build tested.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
Quentin Schulz (9):
      package/libcamera: remove dependency on boost for rpi/vc4 pipeline
      package/libcamera: fix documentation being built even if disabled
      package/libcamera: fix crash on Rockchip with kernels before 6.4
      package/libcamera: improve future reproducibility by forcing auto features to disabled
      package/libcamera: improve reproducibility for optional dependencies
      package/libcamera: add support for Arm Mali-C55 ISP pipeline
      package/libcamera: bump to 0.5.0
      package/libpisp: add new package
      package/libcamera: add support for PiSP pipeline

 package/Config.in                                  |   1 +
 ...amera-rkisp1-Eliminate-hard-coded-resizer.patch | 110 +++++++++++++++++++++
 ...t-automatically-build-documentation-if-sp.patch |  42 ++++++++
 package/libcamera/Config.in                        |  18 +++-
 package/libcamera/libcamera.hash                   |   2 +-
 package/libcamera/libcamera.mk                     |  47 +++++----
 package/libpisp/Config.in                          |  22 +++++
 package/libpisp/libpisp.hash                       |  11 +++
 package/libpisp/libpisp.mk                         |  33 +++++++
 9 files changed, 265 insertions(+), 21 deletions(-)
---
base-commit: 43abcd4c7dd8ad65d2f2012f3d4292362550a3ed
change-id: 20250404-libcamera-0-5-0-b9ecf899ddb4

Best regards,
-- 
Quentin Schulz <quentin.schulz@cherry.de>

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:25   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled Quentin Schulz
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

Commit c1597f989654 ("ipa: raspberrypi: Use YamlParser to replace
dependency on boost"), part of the v0.0.1 release, removed the
dependency on boost, so let's remove it from the pipeline option and
dependency for Buildroot.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/libcamera/Config.in    | 2 --
 package/libcamera/libcamera.mk | 5 +----
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
index 1df97edc41174a22c76a688b07390f5446eb598c..086a5b3758b9dbddf01170d39383fb0dacbc9186 100644
--- a/package/libcamera/Config.in
+++ b/package/libcamera/Config.in
@@ -63,8 +63,6 @@ config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1
 config BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4
 	bool "rpi/vc4 pipeline"
 	depends on BR2_arm || BR2_aarch64
-	depends on BR2_USE_WCHAR # boost (already enforced for gnutls)
-	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
 	help
 	  Pipeline for Raspberry Pi devices.
diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index b3132dc01658ed2fe9e5f780951f3152596dcfcf..0f52f08e39ab885a4989d337aec13fc3f88d654f 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -61,10 +61,7 @@ endif
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IMX8_ISI) += imx8-isi
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
-ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4),y)
-LIBCAMERA_PIPELINES-y += rpi/vc4
-LIBCAMERA_DEPENDENCIES += boost
-endif
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4) += rpi/vc4
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC) += vimc

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
  2025-04-04 16:47 ` [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:26   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4 Quentin Schulz
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

We currently disable building the documentation via the "documentation"
feature, but it is enabled nonetheless by meson if sphinx-build-3 is
found on the host.

This makes sure it doesn't happen by making the sphinx-build-3 check
only happen when the "documentation" feature is "auto" or "enabled",
which isn't the case for Buildroot.

The bug seems to have been introduced in v0.0.1 release.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 ...t-automatically-build-documentation-if-sp.patch | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/package/libcamera/0001-meson-do-not-automatically-build-documentation-if-sp.patch b/package/libcamera/0001-meson-do-not-automatically-build-documentation-if-sp.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d8975a86cb431ea44b19e168904157dda8a4b018
--- /dev/null
+++ b/package/libcamera/0001-meson-do-not-automatically-build-documentation-if-sp.patch
@@ -0,0 +1,42 @@
+From 1e4db1f9792e4343231a1cf36aa553404a534828 Mon Sep 17 00:00:00 2001
+From: Quentin Schulz <quentin.schulz@cherry.de>
+Date: Fri, 4 Apr 2025 18:01:33 +0200
+Subject: [PATCH] meson: do not automatically build documentation if
+ sphinx-build-3 is found
+
+Commit aba567338b25 ("Documentation: Move all dependencies into
+features") did an incomplete migration of the documentation boolean
+option into a documentation feature.
+
+If sphinx-build-3 binary is found on the host system, the documentation
+is built, regardless of the value of the feature option.
+
+This makes sure that sphinx-build-3 presence is only checked if the
+documentation feature is not disabled (which is the default, as it's
+"auto" by default).
+
+This is essential for reproducibility for build systems where
+sphinx-build-3 may or may not be present when libcamera is built, and
+also to declutter the generated package if documentation isn't desired.
+
+Fixes: aba567338b25 ("Documentation: Move all dependencies into features")
+Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
+Upstream: https://lists.libcamera.org/pipermail/libcamera-devel/2025-April/049705.html
+Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
+---
+ Documentation/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Documentation/meson.build b/Documentation/meson.build
+index 6158320e..c59849f6 100644
+--- a/Documentation/meson.build
++++ b/Documentation/meson.build
+@@ -116,7 +116,7 @@ endif
+ # Sphinx
+ #
+ 
+-sphinx = find_program('sphinx-build-3', required : false)
++sphinx = find_program('sphinx-build-3', required : get_option('documentation'))
+ if not sphinx.found()
+     sphinx = find_program('sphinx-build', required : get_option('documentation'))
+ endif

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
  2025-04-04 16:47 ` [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline Quentin Schulz
  2025-04-04 16:47 ` [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:26   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled Quentin Schulz
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

libcamera migrated to use an ioctl for detecting frame sizes which is
only available in kernels 6.4 and later. If it doesn't exist, default
frame sizes are used. However the min and max resolutions supported by
the pipeline weren't initialized for kernels where that ioctl isn't
available and ended up creating invalid configuration that later
crashed.

The introducing commit was part of the v0.4.0 release.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 ...amera-rkisp1-Eliminate-hard-coded-resizer.patch | 110 +++++++++++++++++++++
 1 file changed, 110 insertions(+)

diff --git a/package/libcamera/0001-Revert-libcamera-rkisp1-Eliminate-hard-coded-resizer.patch b/package/libcamera/0001-Revert-libcamera-rkisp1-Eliminate-hard-coded-resizer.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7013ae30c7dace1ad43d236a204f0096d8cec3a5
--- /dev/null
+++ b/package/libcamera/0001-Revert-libcamera-rkisp1-Eliminate-hard-coded-resizer.patch
@@ -0,0 +1,110 @@
+From 3aa2a8f15f619df7c12339464fb6e5aca7af4de7 Mon Sep 17 00:00:00 2001
+From: Quentin Schulz <quentin.schulz@cherry.de>
+Date: Thu, 3 Apr 2025 17:19:23 +0200
+Subject: [PATCH] Revert "libcamera: rkisp1: Eliminate hard-coded resizer
+ limits"
+
+This reverts commit e85c7ddd38ce8456ab01c2a73baf9e788f6a462e.
+
+Linux kernel predating 6.4 (specifically commit 7cfb35d3a800 ("media:
+rkisp1: Implement ENUM_FRAMESIZES") do not have the ioctl in rkisp1
+driver required to dynamically query the resizer limits.
+
+Because of that, maxResolution and minResolution are both {0, 0}
+(default value for Size objects) which means filterSensorResolution()
+will create an entry for the sensor in sensorSizesMap_ but because the
+sensor resolution cannot fit inside the min and max resolution of the
+rkisp1, no size is put into this entry in sensorSizesMap_.
+On the next call to filterSensorResolution(),
+sensorSizesMap_.find(sensor) will return the entry but when attempting
+to call back() on iter->second, it'll trigger an assert because the size
+array is empty.
+
+Linux kernel 6.1 is supported until December 2027, so it seems premature
+to get rid of those hard-coded resizer limits before this happens.
+
+Let's keep the hard-coded resizer limits by default, they can still be
+queried if necessary.
+
+Fixes: 761545407c76 ("pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline")
+Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
+Upstream: https://lists.libcamera.org/pipermail/libcamera-devel/2025-April/049691.html
+Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
+---
+ src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 21 +++++++++++++------
+ src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  3 ++-
+ 2 files changed, 17 insertions(+), 7 deletions(-)
+
+diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
+index eee5b09e..d43f31e1 100644
+--- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
++++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
+@@ -54,8 +54,11 @@ const std::map<PixelFormat, uint32_t> formatToMediaBus = {
+ 
+ } /* namespace */
+ 
+-RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats)
+-	: name_(name), running_(false), formats_(formats), link_(nullptr)
++RkISP1Path::RkISP1Path(const char *name, const Span<const PixelFormat> &formats,
++		       const Size &minResolution, const Size &maxResolution)
++	: name_(name), running_(false), formats_(formats),
++	  minResolution_(minResolution), maxResolution_(maxResolution),
++	  link_(nullptr)
+ {
+ }
+ 
+@@ -517,10 +520,12 @@ void RkISP1Path::stop()
+ }
+ 
+ /*
+- * \todo Remove the hardcoded formats once all users will have migrated to a
+- * recent enough kernel.
++ * \todo Remove the hardcoded resolutions and formats once all users will have
++ * migrated to a recent enough kernel.
+  */
+ namespace {
++constexpr Size RKISP1_RSZ_MP_SRC_MIN{ 32, 16 };
++constexpr Size RKISP1_RSZ_MP_SRC_MAX{ 4416, 3312 };
+ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{
+ 	formats::YUYV,
+ 	formats::NV16,
+@@ -542,6 +547,8 @@ constexpr std::array<PixelFormat, 18> RKISP1_RSZ_MP_FORMATS{
+ 	formats::SRGGB12,
+ };
+ 
++constexpr Size RKISP1_RSZ_SP_SRC_MIN{ 32, 16 };
++constexpr Size RKISP1_RSZ_SP_SRC_MAX{ 1920, 1920 };
+ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{
+ 	formats::YUYV,
+ 	formats::NV16,
+@@ -555,12 +562,14 @@ constexpr std::array<PixelFormat, 8> RKISP1_RSZ_SP_FORMATS{
+ } /* namespace */
+ 
+ RkISP1MainPath::RkISP1MainPath()
+-	: RkISP1Path("main", RKISP1_RSZ_MP_FORMATS)
++	: RkISP1Path("main", RKISP1_RSZ_MP_FORMATS,
++		     RKISP1_RSZ_MP_SRC_MIN, RKISP1_RSZ_MP_SRC_MAX)
+ {
+ }
+ 
+ RkISP1SelfPath::RkISP1SelfPath()
+-	: RkISP1Path("self", RKISP1_RSZ_SP_FORMATS)
++	: RkISP1Path("self", RKISP1_RSZ_SP_FORMATS,
++		     RKISP1_RSZ_SP_SRC_MIN, RKISP1_RSZ_SP_SRC_MAX)
+ {
+ }
+ 
+diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h
+index 2a1ef0ab..430181d3 100644
+--- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h
++++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h
+@@ -34,7 +34,8 @@ struct V4L2SubdeviceFormat;
+ class RkISP1Path
+ {
+ public:
+-	RkISP1Path(const char *name, const Span<const PixelFormat> &formats);
++	RkISP1Path(const char *name, const Span<const PixelFormat> &formats,
++		   const Size &minResolution, const Size &maxResolution);
+ 
+ 	bool init(MediaDevice *media);
+ 

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (2 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4 Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 5/9] package/libcamera: improve reproducibility for optional dependencies Quentin Schulz
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

meson allows to force all features set to "auto" to default to disabled
except if explicitly enabled via the auto_features argument, c.f.
https://mesonbuild.com/Build-options.html#features

"""
If the value of a feature option is set to auto, that value is
overridden by the global auto_features option (which defaults to auto).
This is intended to be used by packagers who want to have full control
on which dependencies are required and which are disabled, and not rely
on build-deps being installed (at the right version) to get a feature
enabled.
"""

The only auto feature that we hadn't disabled explicitly is the
gstreamer plugin. It is however expected that this wasn't a mistake as
the dependencies for the gstreamer pluging wouldn't have been met
thanks to the explicit LIBCAMERA_DEPENDENCIES we have based on the
presence of the gstreamer symbols in the global config.

This should make it less likely for future releases of libcamera to
regress in terms of reproducibility because of "auto" features (though
changes from "auto" to "enabled" wouldn't be caught and would be
susceptible to race conditions with their dependencies in case they
aren't properly specified and built after libcamera is).

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/libcamera/libcamera.mk | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index 0f52f08e39ab885a4989d337aec13fc3f88d654f..ac5c12ff72d34ec04fba8511bfcb492df17ec284 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -16,9 +16,9 @@ LIBCAMERA_DEPENDENCIES = \
 	libyaml \
 	gnutls
 LIBCAMERA_CONF_OPTS = \
+	-Dauto_features=disabled \
 	-Dandroid=disabled \
 	-Ddocumentation=disabled \
-	-Dqcam=disabled \
 	-Dtest=false \
 	-Dwerror=false
 LIBCAMERA_INSTALL_STAGING = YES
@@ -48,8 +48,6 @@ endif
 ifeq ($(BR2_PACKAGE_LIBCAMERA_PYTHON),y)
 LIBCAMERA_DEPENDENCIES += python3 python-pybind
 LIBCAMERA_CONF_OPTS += -Dpycamera=enabled
-else
-LIBCAMERA_CONF_OPTS += -Dpycamera=disabled
 endif
 
 ifeq ($(BR2_PACKAGE_LIBCAMERA_V4L2),y)
@@ -71,8 +69,6 @@ LIBCAMERA_CONF_OPTS += -Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELIN
 ifeq ($(BR2_PACKAGE_LIBCAMERA_COMPLIANCE),y)
 LIBCAMERA_DEPENDENCIES += gtest libevent
 LIBCAMERA_CONF_OPTS += -Dlc-compliance=enabled
-else
-LIBCAMERA_CONF_OPTS += -Dlc-compliance=disabled
 endif
 
 # gstreamer-video-1.0, gstreamer-allocators-1.0
@@ -84,8 +80,6 @@ endif
 ifeq ($(BR2_PACKAGE_LIBEVENT),y)
 LIBCAMERA_CONF_OPTS += -Dcam=enabled
 LIBCAMERA_DEPENDENCIES += libevent
-else
-LIBCAMERA_CONF_OPTS += -Dcam=disabled
 endif
 
 ifeq ($(BR2_PACKAGE_TIFF),y)
@@ -95,15 +89,11 @@ endif
 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
 LIBCAMERA_CONF_OPTS += -Dudev=enabled
 LIBCAMERA_DEPENDENCIES += udev
-else
-LIBCAMERA_CONF_OPTS += -Dudev=disabled
 endif
 
 ifeq ($(BR2_PACKAGE_LTTNG_LIBUST),y)
 LIBCAMERA_CONF_OPTS += -Dtracing=enabled
 LIBCAMERA_DEPENDENCIES += lttng-libust
-else
-LIBCAMERA_CONF_OPTS += -Dtracing=disabled
 endif
 
 ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 5/9] package/libcamera: improve reproducibility for optional dependencies
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (3 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 6/9] package/libcamera: add support for Arm Mali-C55 ISP pipeline Quentin Schulz
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

libcamera has some optional dependencies that automatically detected at
build time.

To improve reproducibility, we should add a dependency on those optional
dependencies if the symbols that build them are enabled so that the
order in which packages are built does not influence the libcamera
package.

Note that the optional libyuv dependency isn't added as:
1) it is only used for the virtual pipeline and the android feature,
   both of which are disabled/not supported right now,
2) libcamera has it in a submodule if missing (though if that works with
   Buildroot is to be determined),
3) adding the dependency isn't enough as meson somehow doesn't find the
   dependency,

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/libcamera/libcamera.mk | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index ac5c12ff72d34ec04fba8511bfcb492df17ec284..b5b17a5c946490e9798073f51fc03e939a4c8dc1 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -82,6 +82,27 @@ LIBCAMERA_CONF_OPTS += -Dcam=enabled
 LIBCAMERA_DEPENDENCIES += libevent
 endif
 
+ifeq ($(BR2_PACKAGE_ELFUTILS),y)
+# Optional dependency on libdw
+LIBCAMERA_DEPENDENCIES += elfutils
+endif
+
+ifeq ($(BR2_PACKAGE_JPEG),y)
+LIBCAMERA_DEPENDENCIES += jpeg
+endif
+
+ifeq ($(BR2_PACKAGE_LIBDRM),y)
+LIBCAMERA_DEPENDENCIES += libdrm
+endif
+
+ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
+LIBCAMERA_DEPENDENCIES += libunwind
+endif
+
+ifeq ($(BR2_PACKAGE_SDL2),y)
+LIBCAMERA_DEPENDENCIES += sdl2
+endif
+
 ifeq ($(BR2_PACKAGE_TIFF),y)
 LIBCAMERA_DEPENDENCIES += tiff
 endif

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 6/9] package/libcamera: add support for Arm Mali-C55 ISP pipeline
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (4 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 5/9] package/libcamera: improve reproducibility for optional dependencies Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 7/9] package/libcamera: bump to 0.5.0 Quentin Schulz
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

Support was added in v0.4.0 so let's add the knobs for building the
pipeline.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/libcamera/Config.in    | 7 +++++++
 package/libcamera/libcamera.mk | 1 +
 2 files changed, 8 insertions(+)

diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
index 086a5b3758b9dbddf01170d39383fb0dacbc9186..92361bbade9bb6f1cf1d152aa27d861470dd9115 100644
--- a/package/libcamera/Config.in
+++ b/package/libcamera/Config.in
@@ -60,6 +60,13 @@ config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1
 	help
 	  Pipeline for Rockchip ISP1.
 
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_MALI_C55
+	bool "mali-c55 pipeline"
+	depends on BR2_arm || BR2_aarch64
+	select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+	help
+	  Pipeline for Arm Mali-C55 ISP.
+
 config BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4
 	bool "rpi/vc4 pipeline"
 	depends on BR2_arm || BR2_aarch64
diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index b5b17a5c946490e9798073f51fc03e939a4c8dc1..449f66ee36b3d5f97780c1bb374a7c2ad9160c0b 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -58,6 +58,7 @@ endif
 
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IMX8_ISI) += imx8-isi
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_MALI_C55) += mali-c55
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4) += rpi/vc4
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 7/9] package/libcamera: bump to 0.5.0
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (5 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 6/9] package/libcamera: add support for Arm Mali-C55 ISP pipeline Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 8/9] package/libpisp: add new package Quentin Schulz
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

Release notes:
https://lists.libcamera.org/pipermail/libcamera-devel/2025-April/049672.html

There's now a pipeline for the Raspberry Pi 5 ISP (PiSP), that can be
added later on in a separate patch.

v4l2 compatibility layer is now a feature and not a boolean anymore. The
former takes "enabled", "disabled" or "auto"[1] while the latter takes
"true" or "false"[2] so we need to update how we configure the project to
match those expectations.

[1] https://mesonbuild.com/Build-options.html#features
[2] https://mesonbuild.com/Build-options.html#booleans

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/libcamera/libcamera.hash | 2 +-
 package/libcamera/libcamera.mk   | 6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/package/libcamera/libcamera.hash b/package/libcamera/libcamera.hash
index 8c845d0e21dce66f8ab3d218cc5a657a3ee7d817..9f897e023f6ca4b292f01ca83df16a53f50c0849 100644
--- a/package/libcamera/libcamera.hash
+++ b/package/libcamera/libcamera.hash
@@ -1,4 +1,4 @@
-sha256  0b45861dc0430074bf10aaa78a69439b319e9df4ed041496fd5f95e546c8f575  libcamera-v0.4.0-git4.tar.gz
+sha256  cea3b5eebc01aa97930ae64989447ca00bad42ff1e0ce71d90d337650dd9e374  libcamera-v0.5.0-git4.tar.gz
 
 # license files
 sha256  fd38b2c053c0cce46d9c5ef3545a6e34d157a240ba99c9b8dca5d37a8147da6c  LICENSES/BSD-2-Clause.txt
diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index 449f66ee36b3d5f97780c1bb374a7c2ad9160c0b..d7324240154944e60ec546bf1968e9723b79c041 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
-LIBCAMERA_VERSION = v0.4.0
+LIBCAMERA_VERSION = v0.5.0
 LIBCAMERA_SITE_METHOD = git
 LIBCAMERA_DEPENDENCIES = \
 	host-openssl \
@@ -51,9 +51,7 @@ LIBCAMERA_CONF_OPTS += -Dpycamera=enabled
 endif
 
 ifeq ($(BR2_PACKAGE_LIBCAMERA_V4L2),y)
-LIBCAMERA_CONF_OPTS += -Dv4l2=true
-else
-LIBCAMERA_CONF_OPTS += -Dv4l2=false
+LIBCAMERA_CONF_OPTS += -Dv4l2=enabled
 endif
 
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IMX8_ISI) += imx8-isi

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 8/9] package/libpisp: add new package
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (6 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 7/9] package/libcamera: bump to 0.5.0 Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:32   ` Thomas Petazzoni via buildroot
  2025-04-04 16:47 ` [Buildroot] [PATCH 9/9] package/libcamera: add support for PiSP pipeline Quentin Schulz
  2025-05-02 10:44 ` [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Arnout Vandecappelle via buildroot
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

A helper library to generate run-time configuration for the Raspberry Pi
ISP (PiSP), consisting of the Frontend and Backend hardware components.

This PiSP is found on the Raspberry Pi 5.

This will be a dependency of the PiSP pipeline in libcamera in a future
commit.

https://github.com/raspberrypi/libpisp

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/Config.in            |  1 +
 package/libpisp/Config.in    | 22 ++++++++++++++++++++++
 package/libpisp/libpisp.hash | 11 +++++++++++
 package/libpisp/libpisp.mk   | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 67 insertions(+)

diff --git a/package/Config.in b/package/Config.in
index 291e784f269c90d4b88fdebeba8f4add101c113a..d704e9d6b099e1832fbe574c571be6106c93b700 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1987,6 +1987,7 @@ menu "Multimedia"
 	source "package/libopenaptx/Config.in"
 	source "package/libopenh264/Config.in"
 	source "package/libopusenc/Config.in"
+	source "package/libpisp/Config.in"
 	source "package/libtheora/Config.in"
 	source "package/libudfread/Config.in"
 	source "package/libvpx/Config.in"
diff --git a/package/libpisp/Config.in b/package/libpisp/Config.in
new file mode 100644
index 0000000000000000000000000000000000000000..8586c31f42914a219538e04fe93b62de38e0daab
--- /dev/null
+++ b/package/libpisp/Config.in
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_LIBPISP
+	bool "libpisp"
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_PACKAGE_JSON_FOR_MODERN_CPP
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 # V4L2_BUF_TYPE_META_OUTPUT
+	help
+	  A helper library to generate run-time configuration for the
+	  Raspberry Pi ISP (PiSP), consisting of the Frontend and
+	  Backend hardware components.
+
+	  https://github.com/raspberrypi/libpisp
+
+if BR2_PACKAGE_LIBPISP
+
+config BR2_PACKAGE_LIBPISP_LOGGING
+	bool "enable logging"
+	depends on BR2_PACKAGE_BOOST_LOG
+	help
+	  Enable logging
+endif
diff --git a/package/libpisp/libpisp.hash b/package/libpisp/libpisp.hash
new file mode 100644
index 0000000000000000000000000000000000000000..3ec1628651cb17c96625b519901d4e156816e4dc
--- /dev/null
+++ b/package/libpisp/libpisp.hash
@@ -0,0 +1,11 @@
+# Locally computed
+sha256  13862de722511f202ea204644504ca5e6bd616b6a463932e7bc114767a68224d  libpisp-1.2.0.tar.xz
+
+# license files
+sha256  8e68f95d973a272ea3da17d6542ba3991cc012f55ff1263af1e5b24d849c11a2  LICENSE
+sha256  8e68f95d973a272ea3da17d6542ba3991cc012f55ff1263af1e5b24d849c11a2  LICENSES/BSD-2-Clause.txt
+sha256  6a573fb2f9082662978cf21fb153096df0a1981deaea7dbc10a11046fe005d9f  LICENSES/CC0-1.0.txt
+sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSES/GPL-2.0-only.txt
+sha256  606aa26338f69ce178f1cbc648b7574aec4b5bbaeb20f4df36ff49010cb8fbbd  LICENSES/GPL-2.0-or-later.txt
+sha256  e5bcf7b9fdd1313047e4edb2160d5bcb928e211b4ed311b8c543e70764739945  LICENSES/Linux-syscall-note.txt
+sha256  364ad36bdcd4c01dbd8c230a07ae6e8bdee7b4418a7d16c42205d3f2b6fceefd  LICENSES/MIT.txt
diff --git a/package/libpisp/libpisp.mk b/package/libpisp/libpisp.mk
new file mode 100644
index 0000000000000000000000000000000000000000..66a44c0d14c52bf64cecd8eea77b7c3237a815a4
--- /dev/null
+++ b/package/libpisp/libpisp.mk
@@ -0,0 +1,33 @@
+################################################################################
+#
+# libpisp
+#
+################################################################################
+
+LIBPISP_VERSION = 1.2.0
+# The manually generated tarball has version.gen in it which is required for
+# version detection outside of git repos
+LIBPISP_SITE = https://github.com/raspberrypi/libpisp/releases/download/v$(LIBPISP_VERSION)
+LIBPISP_SOURCE = libpisp-$(LIBPISP_VERSION).tar.xz
+LIBPISP_LICENSE = BSD-2-Clause
+LIBPISP_LICENSE_FILES = \
+	LICENSE \
+	LICENSES/BSD-2-Clause.txt \
+	LICENSES/CC0-1.0.txt \
+	LICENSES/GPL-2.0-only.txt \
+	LICENSES/GPL-2.0-or-later.txt \
+	LICENSES/Linux-syscall-note.txt \
+	LICENSES/MIT.txt
+LIBPISP_CONF_OPTS = \
+	-Dauto_features=disabled
+LIBPISP_INSTALL_STAGING = YES
+LIBPISP_DEPENDENCIES = \
+	host-pkgconf \
+	json-for-modern-cpp
+
+ifeq ($(BR2_PACKAGE_LIBPISP_LOGGING),y)
+LIBPISP_CONF_OPTS += -Dlogging=enabled
+LIBPISP_DEPENDENCIES += boost
+endif
+
+$(eval $(meson-package))

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [Buildroot] [PATCH 9/9] package/libcamera: add support for PiSP pipeline
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (7 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 8/9] package/libpisp: add new package Quentin Schulz
@ 2025-04-04 16:47 ` Quentin Schulz
  2025-04-19 20:32   ` Thomas Petazzoni via buildroot
  2025-05-02 10:44 ` [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Arnout Vandecappelle via buildroot
  9 siblings, 1 reply; 24+ messages in thread
From: Quentin Schulz @ 2025-04-04 16:47 UTC (permalink / raw)
  To: buildroot; +Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz

From: Quentin Schulz <quentin.schulz@cherry.de>

v0.5.0 brought support for the ISP found on the Raspberry Pi 5, named
PiSP.

Let's add knobs for it. Note that it has a hard dependency on librt.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 package/libcamera/Config.in    | 9 +++++++++
 package/libcamera/libcamera.mk | 4 ++++
 2 files changed, 13 insertions(+)

diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
index 92361bbade9bb6f1cf1d152aa27d861470dd9115..9f5427e0e22e8df2d9d921397bb72e274616b5ec 100644
--- a/package/libcamera/Config.in
+++ b/package/libcamera/Config.in
@@ -67,6 +67,15 @@ config BR2_PACKAGE_LIBCAMERA_PIPELINE_MALI_C55
 	help
 	  Pipeline for Arm Mali-C55 ISP.
 
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_PISP
+	bool "rpi/pisp pipeline"
+	depends on BR2_arm || BR2_aarch64
+	select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+	select BR2_PACKAGE_LIBPISP
+	help
+	  Pipeline for Raspberry Pi devices with PiSP (Raspberry Pi 5).
+	  Requires librt.
+
 config BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4
 	bool "rpi/vc4 pipeline"
 	depends on BR2_arm || BR2_aarch64
diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
index d7324240154944e60ec546bf1968e9723b79c041..6877662bdf02df1c7f8ff37039b3096e96e52481 100644
--- a/package/libcamera/libcamera.mk
+++ b/package/libcamera/libcamera.mk
@@ -58,6 +58,10 @@ LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IMX8_ISI) += imx8-isi
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_MALI_C55) += mali-c55
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
+ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_PISP),y)
+LIBCAMERA_PIPELINES-y += rpi/pisp
+LIBCAMERA_DEPENDENCIES += libpisp
+endif
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4) += rpi/vc4
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple
 LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo

-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline
  2025-04-04 16:47 ` [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline Quentin Schulz
@ 2025-04-19 20:25   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:25 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:32 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> Commit c1597f989654 ("ipa: raspberrypi: Use YamlParser to replace
> dependency on boost"), part of the v0.0.1 release, removed the
> dependency on boost, so let's remove it from the pipeline option and
> dependency for Buildroot.
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  package/libcamera/Config.in    | 2 --
>  package/libcamera/libcamera.mk | 5 +----
>  2 files changed, 1 insertion(+), 6 deletions(-)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled
  2025-04-04 16:47 ` [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled Quentin Schulz
@ 2025-04-19 20:26   ` Thomas Petazzoni via buildroot
  2025-04-22  9:12     ` Quentin Schulz via buildroot
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:26 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:33 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> We currently disable building the documentation via the "documentation"
> feature, but it is enabled nonetheless by meson if sphinx-build-3 is
> found on the host.
> 
> This makes sure it doesn't happen by making the sphinx-build-3 check
> only happen when the "documentation" feature is "auto" or "enabled",
> which isn't the case for Buildroot.
> 
> The bug seems to have been introduced in v0.0.1 release.
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  ...t-automatically-build-documentation-if-sp.patch | 42 ++++++++++++++++++++++
>  1 file changed, 42 insertions(+)

Applied to master, thanks. However, you got some feedback from upstream
that requested some changes in order for the patch to get merged. Do
you think you will have the chance to follow-up with upstream? (Or
maybe you did and I didn't see it?)

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4
  2025-04-04 16:47 ` [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4 Quentin Schulz
@ 2025-04-19 20:26   ` Thomas Petazzoni via buildroot
  2025-04-22  9:40     ` Quentin Schulz via buildroot
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:26 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:34 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> libcamera migrated to use an ioctl for detecting frame sizes which is
> only available in kernels 6.4 and later. If it doesn't exist, default
> frame sizes are used. However the min and max resolutions supported by
> the pipeline weren't initialized for kernels where that ioctl isn't
> available and ended up creating invalid configuration that later
> crashed.
> 
> The introducing commit was part of the v0.4.0 release.
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  ...amera-rkisp1-Eliminate-hard-coded-resizer.patch | 110 +++++++++++++++++++++
>  1 file changed, 110 insertions(+)

I didn't merged this one for now, as the feedback from upstream isn't
very clear, and it doesn't seem like it has been merged yet. Could you
clarify this?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled
  2025-04-04 16:47 ` [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled Quentin Schulz
@ 2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  2025-04-22  9:07     ` Quentin Schulz via buildroot
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:27 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:35 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> meson allows to force all features set to "auto" to default to disabled
> except if explicitly enabled via the auto_features argument, c.f.
> https://mesonbuild.com/Build-options.html#features

Nice stuff! Should we use this for all meson-based packages? Should we
even put it directly in the meson-package generic code?

Anyway, applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 5/9] package/libcamera: improve reproducibility for optional dependencies
  2025-04-04 16:47 ` [Buildroot] [PATCH 5/9] package/libcamera: improve reproducibility for optional dependencies Quentin Schulz
@ 2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:27 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:36 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> libcamera has some optional dependencies that automatically detected at
> build time.
> 
> To improve reproducibility, we should add a dependency on those optional
> dependencies if the symbols that build them are enabled so that the
> order in which packages are built does not influence the libcamera
> package.
> 
> Note that the optional libyuv dependency isn't added as:
> 1) it is only used for the virtual pipeline and the android feature,
>    both of which are disabled/not supported right now,
> 2) libcamera has it in a submodule if missing (though if that works with
>    Buildroot is to be determined),
> 3) adding the dependency isn't enough as meson somehow doesn't find the
>    dependency,
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  package/libcamera/libcamera.mk | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 6/9] package/libcamera: add support for Arm Mali-C55 ISP pipeline
  2025-04-04 16:47 ` [Buildroot] [PATCH 6/9] package/libcamera: add support for Arm Mali-C55 ISP pipeline Quentin Schulz
@ 2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:27 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:37 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> Support was added in v0.4.0 so let's add the knobs for building the
> pipeline.
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  package/libcamera/Config.in    | 7 +++++++
>  package/libcamera/libcamera.mk | 1 +
>  2 files changed, 8 insertions(+)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 7/9] package/libcamera: bump to 0.5.0
  2025-04-04 16:47 ` [Buildroot] [PATCH 7/9] package/libcamera: bump to 0.5.0 Quentin Schulz
@ 2025-04-19 20:27   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:27 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

On Fri, 04 Apr 2025 18:47:38 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> Release notes:
> https://lists.libcamera.org/pipermail/libcamera-devel/2025-April/049672.html
> 
> There's now a pipeline for the Raspberry Pi 5 ISP (PiSP), that can be
> added later on in a separate patch.
> 
> v4l2 compatibility layer is now a feature and not a boolean anymore. The
> former takes "enabled", "disabled" or "auto"[1] while the latter takes
> "true" or "false"[2] so we need to update how we configure the project to
> match those expectations.
> 
> [1] https://mesonbuild.com/Build-options.html#features
> [2] https://mesonbuild.com/Build-options.html#booleans
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  package/libcamera/libcamera.hash | 2 +-
>  package/libcamera/libcamera.mk   | 6 ++----
>  2 files changed, 3 insertions(+), 5 deletions(-)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 8/9] package/libpisp: add new package
  2025-04-04 16:47 ` [Buildroot] [PATCH 8/9] package/libpisp: add new package Quentin Schulz
@ 2025-04-19 20:32   ` Thomas Petazzoni via buildroot
  2025-04-22 10:04     ` Quentin Schulz via buildroot
  0 siblings, 1 reply; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:32 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

Hello Quentin,

Thanks for this new package! I have a number of comments/requests.

First, very minor, the commit title should be "package/libpisp: new
package", not "add new package".

On Fri, 04 Apr 2025 18:47:39 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

>  package/Config.in            |  1 +
>  package/libpisp/Config.in    | 22 ++++++++++++++++++++++
>  package/libpisp/libpisp.hash | 11 +++++++++++
>  package/libpisp/libpisp.mk   | 33 +++++++++++++++++++++++++++++++++
>  4 files changed, 67 insertions(+)

Could you add an entry in the DEVELOPERS file for this new package?


> diff --git a/package/libpisp/Config.in b/package/libpisp/Config.in
> new file mode 100644
> index 0000000000000000000000000000000000000000..8586c31f42914a219538e04fe93b62de38e0daab
> --- /dev/null
> +++ b/package/libpisp/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_LIBPISP
> +	bool "libpisp"
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_PACKAGE_JSON_FOR_MODERN_CPP

This one should be a "select", not a depends on.

> +	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 # V4L2_BUF_TYPE_META_OUTPUT
> +	help
> +	  A helper library to generate run-time configuration for the
> +	  Raspberry Pi ISP (PiSP), consisting of the Frontend and
> +	  Backend hardware components.
> +
> +	  https://github.com/raspberrypi/libpisp
> +
> +if BR2_PACKAGE_LIBPISP
> +
> +config BR2_PACKAGE_LIBPISP_LOGGING
> +	bool "enable logging"
> +	depends on BR2_PACKAGE_BOOST_LOG

This should be a select BR2_PACKAGE_BOOST + select
BR2_PACKAGE_BOOST_LOG + propagate the dependencies of boost.

> +	help
> +	  Enable logging
> +endif

Here we need a Config.in comment like:

comment "libpisp needs a toolchain w/ C++, gcc >= 8, threads, headers >= 5.0"
	depends on !BR2_INSTALL_LIBSTDCPP ||
		!BR2_TOOLCHAIN_GCC_AT_LEAST_8 ||
		!BR2_TOOLCHAIN_HAS_THREADS ||
		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0


> new file mode 100644
> index 0000000000000000000000000000000000000000..66a44c0d14c52bf64cecd8eea77b7c3237a815a4
> --- /dev/null
> +++ b/package/libpisp/libpisp.mk
> @@ -0,0 +1,33 @@
> +################################################################################
> +#
> +# libpisp
> +#
> +################################################################################
> +
> +LIBPISP_VERSION = 1.2.0
> +# The manually generated tarball has version.gen in it which is required for
> +# version detection outside of git repos
> +LIBPISP_SITE = https://github.com/raspberrypi/libpisp/releases/download/v$(LIBPISP_VERSION)
> +LIBPISP_SOURCE = libpisp-$(LIBPISP_VERSION).tar.xz
> +LIBPISP_LICENSE = BSD-2-Clause

BSD-2-Clause, but there's the text of many other licenses? Could you
clarify the license terms? How can it be BSD-2c if it contains GPLv2,
GPLv2+ code?

> +LIBPISP_LICENSE_FILES = \
> +	LICENSE \
> +	LICENSES/BSD-2-Clause.txt \
> +	LICENSES/CC0-1.0.txt \
> +	LICENSES/GPL-2.0-only.txt \
> +	LICENSES/GPL-2.0-or-later.txt \
> +	LICENSES/Linux-syscall-note.txt \
> +	LICENSES/MIT.txt
> +LIBPISP_CONF_OPTS = \
> +	-Dauto_features=disabled
> +LIBPISP_INSTALL_STAGING = YES
> +LIBPISP_DEPENDENCIES = \
> +	host-pkgconf \
> +	json-for-modern-cpp
> +
> +ifeq ($(BR2_PACKAGE_LIBPISP_LOGGING),y)
> +LIBPISP_CONF_OPTS += -Dlogging=enabled
> +LIBPISP_DEPENDENCIES += boost
> +endif

Otherwise, looks good! Could you spin a v2? Thanks a lot!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 9/9] package/libcamera: add support for PiSP pipeline
  2025-04-04 16:47 ` [Buildroot] [PATCH 9/9] package/libcamera: add support for PiSP pipeline Quentin Schulz
@ 2025-04-19 20:32   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-04-19 20:32 UTC (permalink / raw)
  To: Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan,
	Quentin Schulz

Hello Quentin,

On Fri, 04 Apr 2025 18:47:40 +0200
Quentin Schulz <foss+buildroot@0leil.net> wrote:

> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> +config BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_PISP
> +	bool "rpi/pisp pipeline"
> +	depends on BR2_arm || BR2_aarch64
> +	select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
> +	select BR2_PACKAGE_LIBPISP

Make sure that all dependencies of BR2_PACKAGE_LIBPISP are accounted
for when you "select" it.

Otherwise, looks good!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled
  2025-04-19 20:27   ` Thomas Petazzoni via buildroot
@ 2025-04-22  9:07     ` Quentin Schulz via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Quentin Schulz via buildroot @ 2025-04-22  9:07 UTC (permalink / raw)
  To: Thomas Petazzoni, Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan

Hi Thomas,

On 4/19/25 10:27 PM, Thomas Petazzoni wrote:
> On Fri, 04 Apr 2025 18:47:35 +0200
> Quentin Schulz <foss+buildroot@0leil.net> wrote:
> 
>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>
>> meson allows to force all features set to "auto" to default to disabled
>> except if explicitly enabled via the auto_features argument, c.f.
>> https://mesonbuild.com/Build-options.html#features
> 
> Nice stuff! Should we use this for all meson-based packages? Should we
> even put it directly in the meson-package generic code?
> 

FWIW, Yocto is thinking about having auto_features=enabled by default, 
in the meson-package generic code (meson.bbclass). This would be fine 
for them because they have per-package sysroot so build order or 
mistakes in the package recipe wouldn't impact reproducibility.

Since Buildroot isn't necessarily building with per-package sysroot 
(support still experimental, and for sure just an option, as far as I 
remember), then we should probably disable by default. The issue is that 
you won't get new features enabled by default when upgrading packages. 
If the feature doesn't have dependencies, then it's a missed opportunity 
on enabling it without requiring additional changes in the package mk 
file. But, it would help with reproducibility so I think it would be a 
good idea in any case? I think the downsides outweighs the benefits in 
Buildroot?

Cheers,
Quentin
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled
  2025-04-19 20:26   ` Thomas Petazzoni via buildroot
@ 2025-04-22  9:12     ` Quentin Schulz via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Quentin Schulz via buildroot @ 2025-04-22  9:12 UTC (permalink / raw)
  To: Thomas Petazzoni, Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan

Hi Thomas,

On 4/19/25 10:26 PM, Thomas Petazzoni wrote:
> On Fri, 04 Apr 2025 18:47:33 +0200
> Quentin Schulz <foss+buildroot@0leil.net> wrote:
> 
>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>
>> We currently disable building the documentation via the "documentation"
>> feature, but it is enabled nonetheless by meson if sphinx-build-3 is
>> found on the host.
>>
>> This makes sure it doesn't happen by making the sphinx-build-3 check
>> only happen when the "documentation" feature is "auto" or "enabled",
>> which isn't the case for Buildroot.
>>
>> The bug seems to have been introduced in v0.0.1 release.
>>
>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>> ---
>>   ...t-automatically-build-documentation-if-sp.patch | 42 ++++++++++++++++++++++
>>   1 file changed, 42 insertions(+)
> 
> Applied to master, thanks. However, you got some feedback from upstream
> that requested some changes in order for the patch to get merged. Do
> you think you will have the chance to follow-up with upstream? (Or
> maybe you did and I didn't see it?)
> 

Another patch got merged instead, c.f. 
https://git.libcamera.org/libcamera/libcamera.git/commit/?id=ae2b6cb3cac6a38a6c96625915cea4b9cf3fc180 
so will send a v2 with that patch instead :)

Cheers,
Quentin
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4
  2025-04-19 20:26   ` Thomas Petazzoni via buildroot
@ 2025-04-22  9:40     ` Quentin Schulz via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Quentin Schulz via buildroot @ 2025-04-22  9:40 UTC (permalink / raw)
  To: Thomas Petazzoni, Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan

Hi Thomas,

On 4/19/25 10:26 PM, Thomas Petazzoni wrote:
> On Fri, 04 Apr 2025 18:47:34 +0200
> Quentin Schulz <foss+buildroot@0leil.net> wrote:
> 
>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>
>> libcamera migrated to use an ioctl for detecting frame sizes which is
>> only available in kernels 6.4 and later. If it doesn't exist, default
>> frame sizes are used. However the min and max resolutions supported by
>> the pipeline weren't initialized for kernels where that ioctl isn't
>> available and ended up creating invalid configuration that later
>> crashed.
>>
>> The introducing commit was part of the v0.4.0 release.
>>
>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>> ---
>>   ...amera-rkisp1-Eliminate-hard-coded-resizer.patch | 110 +++++++++++++++++++++
>>   1 file changed, 110 insertions(+)
> 
> I didn't merged this one for now, as the feedback from upstream isn't
> very clear, and it doesn't seem like it has been merged yet. Could you
> clarify this?
> 

Not merged yet, discussion dried out but I'm not entirely sure what's 
the way forward at the moment. Have pinged libcamera community on that.

I am confident something similar will need to be merged in order to 
support pre-ioctl kernels in libcamera but I understand Buildroot may 
want to wait for a patch accepted upstream.

Cheers,
Quentin
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 8/9] package/libpisp: add new package
  2025-04-19 20:32   ` Thomas Petazzoni via buildroot
@ 2025-04-22 10:04     ` Quentin Schulz via buildroot
  0 siblings, 0 replies; 24+ messages in thread
From: Quentin Schulz via buildroot @ 2025-04-22 10:04 UTC (permalink / raw)
  To: Thomas Petazzoni, Quentin Schulz
  Cc: buildroot, Kieran Bingham, Marcus Folkesson, Eric Le Bihan

Hi Thomas,

On 4/19/25 10:32 PM, Thomas Petazzoni wrote:
> Hello Quentin,
> 
> Thanks for this new package! I have a number of comments/requests.
> 
> First, very minor, the commit title should be "package/libpisp: new
> package", not "add new package".
> 
> On Fri, 04 Apr 2025 18:47:39 +0200
> Quentin Schulz <foss+buildroot@0leil.net> wrote:
> 
>>   package/Config.in            |  1 +
>>   package/libpisp/Config.in    | 22 ++++++++++++++++++++++
>>   package/libpisp/libpisp.hash | 11 +++++++++++
>>   package/libpisp/libpisp.mk   | 33 +++++++++++++++++++++++++++++++++
>>   4 files changed, 67 insertions(+)
> 
> Could you add an entry in the DEVELOPERS file for this new package?
> 

I am not planning on maintaining this package as I do not own an RPi 5 
and am not planning on getting one :) I just saw there was a new 
pipeline in libcamera and wanted to add support for it, as part of the 
upgrade.

I understand this could be a blocker for getting this merged, if that is 
the case, then anyone feel free to take over this patch and send a v2 
with yourself in DEVELOPERS :)

> 
>> diff --git a/package/libpisp/Config.in b/package/libpisp/Config.in
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..8586c31f42914a219538e04fe93b62de38e0daab
>> --- /dev/null
>> +++ b/package/libpisp/Config.in
>> @@ -0,0 +1,22 @@
>> +config BR2_PACKAGE_LIBPISP
>> +	bool "libpisp"
>> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17
>> +	depends on BR2_INSTALL_LIBSTDCPP
>> +	depends on BR2_TOOLCHAIN_HAS_THREADS
>> +	depends on BR2_PACKAGE_JSON_FOR_MODERN_CPP
> 
> This one should be a "select", not a depends on.
> 

Thanks, this is documented in 
https://buildroot.org/downloads/manual/manual.html#_config_files 18.2.3. 
Choosing depends on or select. and I missed it :)

>> +	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 # V4L2_BUF_TYPE_META_OUTPUT
>> +	help
>> +	  A helper library to generate run-time configuration for the
>> +	  Raspberry Pi ISP (PiSP), consisting of the Frontend and
>> +	  Backend hardware components.
>> +
>> +	  https://github.com/raspberrypi/libpisp
>> +
>> +if BR2_PACKAGE_LIBPISP
>> +
>> +config BR2_PACKAGE_LIBPISP_LOGGING
>> +	bool "enable logging"
>> +	depends on BR2_PACKAGE_BOOST_LOG
> 
> This should be a select BR2_PACKAGE_BOOST + select
> BR2_PACKAGE_BOOST_LOG + propagate the dependencies of boost.
> 
>> +	help
>> +	  Enable logging
>> +endif
> 
> Here we need a Config.in comment like:
> 
> comment "libpisp needs a toolchain w/ C++, gcc >= 8, threads, headers >= 5.0"
> 	depends on !BR2_INSTALL_LIBSTDCPP ||
> 		!BR2_TOOLCHAIN_GCC_AT_LEAST_8 ||
> 		!BR2_TOOLCHAIN_HAS_THREADS ||
> 		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0
> 
> 

Documented in the same place as the select vs depends on choice, which I 
had missed too.

>> new file mode 100644
>> index 0000000000000000000000000000000000000000..66a44c0d14c52bf64cecd8eea77b7c3237a815a4
>> --- /dev/null
>> +++ b/package/libpisp/libpisp.mk
>> @@ -0,0 +1,33 @@
>> +################################################################################
>> +#
>> +# libpisp
>> +#
>> +################################################################################
>> +
>> +LIBPISP_VERSION = 1.2.0
>> +# The manually generated tarball has version.gen in it which is required for
>> +# version detection outside of git repos
>> +LIBPISP_SITE = https://github.com/raspberrypi/libpisp/releases/download/v$(LIBPISP_VERSION)
>> +LIBPISP_SOURCE = libpisp-$(LIBPISP_VERSION).tar.xz
>> +LIBPISP_LICENSE = BSD-2-Clause
> 
> BSD-2-Clause, but there's the text of many other licenses? Could you
> clarify the license terms? How can it be BSD-2c if it contains GPLv2,
> GPLv2+ code?
> 

libisp README states BSD-2-Clause, c.f. 
https://github.com/raspberrypi/libpisp/blob/main/README.md#license

The LICENSE file at the root of the directory is a symlink to the 
BSD-2-Clause in LICENSES/.

https://github.com/raspberrypi/libpisp/commit/fe25ab2957f030ccfc0340dc79c388fbb4420034 
seems to be giving a hint on which files are under which license(s).

Header files in src/libpisp/{backend,frontend} are GPL-2.0-only WITH 
Linux-syscall-note. Based on the filenames (and license) these are 
headers coming from the Linux kernel. IANAL, but that should be fine?

utils/checkstyle.py is GPL-2.0-or-later but it's only run as part of a 
GitHub action, so I assume Buildroot doesn't care about that one either.

meson files, and libpisp.wrap as well as utils/version.py are all under 
CC0-1.0. libpisp.wrap doesn't seem to be used in the project, but just 
as an example on how to build libpisp from the target project using it, 
e.g. libcamera (c.f. subprojects/libpisp.wrap in the latter).

>> +LIBPISP_LICENSE_FILES = \
>> +	LICENSE \
>> +	LICENSES/BSD-2-Clause.txt \
>> +	LICENSES/CC0-1.0.txt \
>> +	LICENSES/GPL-2.0-only.txt \
>> +	LICENSES/GPL-2.0-or-later.txt \
>> +	LICENSES/Linux-syscall-note.txt \
>> +	LICENSES/MIT.txt
>> +LIBPISP_CONF_OPTS = \
>> +	-Dauto_features=disabled
>> +LIBPISP_INSTALL_STAGING = YES
>> +LIBPISP_DEPENDENCIES = \
>> +	host-pkgconf \
>> +	json-for-modern-cpp
>> +
>> +ifeq ($(BR2_PACKAGE_LIBPISP_LOGGING),y)
>> +LIBPISP_CONF_OPTS += -Dlogging=enabled
>> +LIBPISP_DEPENDENCIES += boost
>> +endif
> 
> Otherwise, looks good! Could you spin a v2? Thanks a lot!

Considering I will not be maintaining this package, do you still want a 
v2 for it? Or would you rather wait for someone to take over this patch?

Cheers,
Quentin
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing
  2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
                   ` (8 preceding siblings ...)
  2025-04-04 16:47 ` [Buildroot] [PATCH 9/9] package/libcamera: add support for PiSP pipeline Quentin Schulz
@ 2025-05-02 10:44 ` Arnout Vandecappelle via buildroot
  9 siblings, 0 replies; 24+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2025-05-02 10:44 UTC (permalink / raw)
  To: Quentin Schulz, buildroot
  Cc: Kieran Bingham, Marcus Folkesson, Eric Le Bihan, Quentin Schulz



On 04/04/2025 18:47, Quentin Schulz wrote:
> This bumps libcamera to v0.5.0, its latest release.
> 
> This removes the boost dependency for the VC4 pipeline which hasn't been
> needed for a while already.
> 
> This improves current reproducibility by adding optional dependencies to
> the list of package dependencies whenever their symbols are enabled.
> 
> This improves future reproducibility by making all "auto" features
> "disabled" so that new auto features aren't detected by meson when
> building libcamera as a missing optional dependency in the package mk
> file will introduce a reproducibility issue due to build order of
> packages.
> 
> This adds knobs for Mali-C55 and PiSP pipelines as well as a package for
> libpisp, a dependency for the latter pipeline in libcamera.
> 
> This also fixes documentation being built regardless of the
> "documentation" feature being disabled, if sphinx-build-3 is available
> on the host system.
> 
> Finally, this fixes a crash when running on Linux kernel predating 6.4.
> 
> Note this was only build tested.
> 
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
> Quentin Schulz (9):
>        package/libcamera: remove dependency on boost for rpi/vc4 pipeline
>        package/libcamera: fix documentation being built even if disabled
>        package/libcamera: fix crash on Rockchip with kernels before 6.4
>        package/libcamera: improve future reproducibility by forcing auto features to disabled
>        package/libcamera: improve reproducibility for optional dependencies

  Applied these 5 to 2025.02.x, thanks.

  Regards,
  Arnout

>        package/libcamera: add support for Arm Mali-C55 ISP pipeline
>        package/libcamera: bump to 0.5.0
>        package/libpisp: add new package
>        package/libcamera: add support for PiSP pipeline
> 
>   package/Config.in                                  |   1 +
>   ...amera-rkisp1-Eliminate-hard-coded-resizer.patch | 110 +++++++++++++++++++++
>   ...t-automatically-build-documentation-if-sp.patch |  42 ++++++++
>   package/libcamera/Config.in                        |  18 +++-
>   package/libcamera/libcamera.hash                   |   2 +-
>   package/libcamera/libcamera.mk                     |  47 +++++----
>   package/libpisp/Config.in                          |  22 +++++
>   package/libpisp/libpisp.hash                       |  11 +++
>   package/libpisp/libpisp.mk                         |  33 +++++++
>   9 files changed, 265 insertions(+), 21 deletions(-)
> ---
> base-commit: 43abcd4c7dd8ad65d2f2012f3d4292362550a3ed
> change-id: 20250404-libcamera-0-5-0-b9ecf899ddb4
> 
> Best regards,

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2025-05-02 10:44 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-04 16:47 [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Quentin Schulz
2025-04-04 16:47 ` [Buildroot] [PATCH 1/9] package/libcamera: remove dependency on boost for rpi/vc4 pipeline Quentin Schulz
2025-04-19 20:25   ` Thomas Petazzoni via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 2/9] package/libcamera: fix documentation being built even if disabled Quentin Schulz
2025-04-19 20:26   ` Thomas Petazzoni via buildroot
2025-04-22  9:12     ` Quentin Schulz via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 3/9] package/libcamera: fix crash on Rockchip with kernels before 6.4 Quentin Schulz
2025-04-19 20:26   ` Thomas Petazzoni via buildroot
2025-04-22  9:40     ` Quentin Schulz via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 4/9] package/libcamera: improve future reproducibility by forcing auto features to disabled Quentin Schulz
2025-04-19 20:27   ` Thomas Petazzoni via buildroot
2025-04-22  9:07     ` Quentin Schulz via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 5/9] package/libcamera: improve reproducibility for optional dependencies Quentin Schulz
2025-04-19 20:27   ` Thomas Petazzoni via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 6/9] package/libcamera: add support for Arm Mali-C55 ISP pipeline Quentin Schulz
2025-04-19 20:27   ` Thomas Petazzoni via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 7/9] package/libcamera: bump to 0.5.0 Quentin Schulz
2025-04-19 20:27   ` Thomas Petazzoni via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 8/9] package/libpisp: add new package Quentin Schulz
2025-04-19 20:32   ` Thomas Petazzoni via buildroot
2025-04-22 10:04     ` Quentin Schulz via buildroot
2025-04-04 16:47 ` [Buildroot] [PATCH 9/9] package/libcamera: add support for PiSP pipeline Quentin Schulz
2025-04-19 20:32   ` Thomas Petazzoni via buildroot
2025-05-02 10:44 ` [Buildroot] [PATCH 0/9] package/libcamera: bump v0.5.0, new pipelines, misc improvements and bug fixing Arnout Vandecappelle via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox