From ef3c3bc9b17dad16e63d6519c0f037e7ec65e976 Mon Sep 17 00:00:00 2001 From: Quentin Schulz Date: Fri, 4 Apr 2025 18:47:35 +0200 Subject: [PATCH] package/libcamera: improve future reproducibility by forcing auto features to disabled 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 Signed-off-by: Thomas Petazzoni --- 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 0f52f08e39..ac5c12ff72 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)