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 <quentin.schulz@cherry.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Quentin Schulz
2025-04-04 18:47:35 +02:00
committed by Thomas Petazzoni
parent 569272be91
commit ef3c3bc9b1

View File

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