diff --git a/srcpkgs/v4l-utils/patches/musl-ioctl.patch b/srcpkgs/v4l-utils/patches/musl-ioctl.patch new file mode 100644 index 00000000000..877ebe18cc7 --- /dev/null +++ b/srcpkgs/v4l-utils/patches/musl-ioctl.patch @@ -0,0 +1,56 @@ +From fd882f9e77b13cbc6a669e6836c3943393b44152 Mon Sep 17 00:00:00 2001 +From: Michal Rostecki +Date: Fri, 6 Sep 2024 14:46:31 +0200 +Subject: libv4l2: Guard the v4l2_ioctl function with HAVE_POSIX_IOCTL + +Lack of this check leads to issues on musl-based system. Even though +compilation of libv4l2 itself with musl doesn't cause any errors, +using the library inside gst-plugins-v4l2 causes a compiler error +due to mismatch of the ioctl signature. + +A similar check is already performed in v4l2convert.c, so the change +doesn't bring any inconsistency. + +Link: https://bugs.gentoo.org/896418 +Signed-off-by: Michal Rostecki +Signed-off-by: Hans Verkuil +--- + lib/include/libv4l2.h | 4 ++++ + lib/libv4l2/libv4l2.c | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/lib/include/libv4l2.h b/lib/include/libv4l2.h +index ea1870db..16565555 100644 +--- a/lib/include/libv4l2.h ++++ b/lib/include/libv4l2.h +@@ -63,7 +63,11 @@ LIBV4L_PUBLIC extern FILE *v4l2_log_file; + LIBV4L_PUBLIC int v4l2_open(const char *file, int oflag, ...); + LIBV4L_PUBLIC int v4l2_close(int fd); + LIBV4L_PUBLIC int v4l2_dup(int fd); ++#ifdef HAVE_POSIX_IOCTL ++LIBV4L_PUBLIC int v4l2_ioctl(int fd, int request, ...); ++#else + LIBV4L_PUBLIC int v4l2_ioctl(int fd, unsigned long int request, ...); ++#endif + LIBV4L_PUBLIC ssize_t v4l2_read(int fd, void *buffer, size_t n); + LIBV4L_PUBLIC ssize_t v4l2_write(int fd, const void *buffer, size_t n); + LIBV4L_PUBLIC void *v4l2_mmap(void *start, size_t length, int prot, int flags, +diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c +index 032a4f1c..1607ec35 100644 +--- a/lib/libv4l2/libv4l2.c ++++ b/lib/libv4l2/libv4l2.c +@@ -1051,7 +1051,11 @@ static int v4l2_s_fmt(int index, struct v4l2_format *dest_fmt) + return 0; + } + ++#ifdef HAVE_POSIX_IOCTL ++int v4l2_ioctl(int fd, int request, ...) ++#else + int v4l2_ioctl(int fd, unsigned long int request, ...) ++#endif + { + void *arg; + va_list ap; +-- +cgit v1.2.3 + diff --git a/srcpkgs/v4l-utils/patches/sbin.patch b/srcpkgs/v4l-utils/patches/sbin.patch new file mode 100644 index 00000000000..016f59ee1c9 --- /dev/null +++ b/srcpkgs/v4l-utils/patches/sbin.patch @@ -0,0 +1,15 @@ +Don't hardcode sbin path. + +diff --git v4l-utils-1.26.1/utils/v4l2-dbg/meson.build~ v4l-utils-1.26.1/utils/v4l2-dbg/meson.build +index c23bf8f351..bfbc10c616 100644 +--- v4l-utils-1.26.1/utils/v4l2-dbg/meson.build~ ++++ v4l-utils-1.26.1/utils/v4l2-dbg/meson.build +@@ -13,7 +13,7 @@ v4l2_dbg_sources = files( + v4l2_dbg = executable('v4l2-dbg', + v4l2_dbg_sources, + install : true, +- install_dir : 'sbin', ++ install_dir : get_option('sbindir'), + include_directories : [ + v4l2_utils_incdir, + utils_common_incdir, diff --git a/srcpkgs/v4l-utils/template b/srcpkgs/v4l-utils/template index aabfb8de79c..e97cce428e6 100644 --- a/srcpkgs/v4l-utils/template +++ b/srcpkgs/v4l-utils/template @@ -1,9 +1,9 @@ # Template file for 'v4l-utils' pkgname=v4l-utils -version=1.24.1 +version=1.28.1 revision=1 -build_style=gnu-configure -configure_args="--disable-qv4l2 --with-udevdir=/usr/lib/udev" +build_style=meson +configure_args="-Dqv4l2=disabled -Dudevdir=/usr/lib/udev -Dgconv=disabled" hostmakedepends="perl pkg-config gettext-devel" makedepends="libjpeg-turbo-devel libsysfs-devel eudev-libudev-devel alsa-lib-devel libX11-devel" @@ -12,8 +12,8 @@ maintainer="Orphaned " license="GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://linuxtv.org/" changelog="https://git.linuxtv.org/v4l-utils.git/plain/ChangeLog" -distfiles="https://linuxtv.org/downloads/v4l-utils/v4l-utils-${version}.tar.bz2" -checksum=cbb7fe8a6307f5ce533a05cded70bb93c3ba06395ab9b6d007eb53b75d805f5b +distfiles="https://linuxtv.org/downloads/v4l-utils/v4l-utils-${version}.tar.xz" +checksum=0fa075ce59b6618847af6ea191b6155565ccaa44de0504581ddfed795a328a82 conf_files="/etc/rc_maps.cfg" case "$XBPS_TARGET_MACHINE" in @@ -23,15 +23,12 @@ case "$XBPS_TARGET_MACHINE" in ;; esac -CFLAGS+=" -fcommon" - v4l-utils-devel_package() { depends="${makedepends} ${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove usr/include vmove usr/lib/pkgconfig - vmove "usr/lib/*.a" vmove "usr/lib/*.so" } }