[OE-core] [PATCH] gstreamer: Fix reproducibility issue around libcap
Martin Hundebøll
martin at geanix.com
Thu Feb 20 11:56:29 UTC 2020
Hi,
On 19/02/2020 16.23, Richard Purdie wrote:
> Add an option to avoid builds depending on the presence of setcap
> from the host system.
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> .../gstreamer/gstreamer1.0/capfix.patch | 37 +++++++++++++++++++
> .../gstreamer/gstreamer1.0_1.16.1.bb | 2 +
> 2 files changed, 39 insertions(+)
> create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
>
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
> new file mode 100644
> index 00000000000..7ca3d5ad4a6
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
> @@ -0,0 +1,37 @@
> +Currently gstreamer configuration depends on whether setcap is found on the host
> +system. Turn this into a configure option to make builds deterinistic.
> +
> +RP 2020/2/19
> +Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> +Upstream-Status: Pending
> +
> +Index: gstreamer-1.16.1/libs/gst/helpers/meson.build
> +===================================================================
> +--- gstreamer-1.16.1.orig/libs/gst/helpers/meson.build
> ++++ gstreamer-1.16.1/libs/gst/helpers/meson.build
> +@@ -73,7 +73,12 @@ if have_ptp
> + endif
> + endif
> +
> +- setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
> ++ setcap_feature = get_option('setcap')
> ++ if setcap_feature.disabled()
> ++ setcap = find_program('dontexist', required : false)
> ++ else
> ++ setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
> ++ endif
I think this can be simplified by using get_option() directly for the
"required" argument:
setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap',
required : get_option('setcap'))
// Martin
> +
> + # user/group to change to in gst-ptp-helper
> + ptp_helper_setuid_user = get_option('ptp-helper-setuid-user')
> +Index: gstreamer-1.16.1/meson_options.txt
> +===================================================================
> +--- gstreamer-1.16.1.orig/meson_options.txt
> ++++ gstreamer-1.16.1/meson_options.txt
> +@@ -26,6 +26,7 @@ option('libunwind', type : 'feature', va
> + option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
> + option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
> + option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
> ++option('setcap', type : 'feature', value : 'auto', description : 'Use setcap')
> +
> + # Common feature options
> + option('examples', type : 'feature', value : 'auto', yield : true)
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb
> index 6b8a5a0eb01..68f5ca649fe 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.1.bb
> @@ -21,6 +21,7 @@ SRC_URI = " \
> file://0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
> file://0003-meson-Add-valgrind-feature.patch \
> file://0004-meson-Add-option-for-installed-tests.patch \
> + file://capfix.patch \
> "
> SRC_URI[md5sum] = "c505fb818b36988daaa846e9e63eabe8"
> SRC_URI[sha256sum] = "02211c3447c4daa55919c5c0f43a82a6fbb51740d57fc3af0639d46f1cf4377d"
> @@ -39,6 +40,7 @@ PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
> PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils"
> PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion"
> PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled"
> +PACKAGECONFIG[setcap] = "-Dsetcap=enabled,-Dsetcap=disabled,libcap"
>
> # TODO: put this in a gettext.bbclass patch
> def gettext_oemeson(d):
>
More information about the Openembedded-core
mailing list