Package: linphone
Version: 3.5.2-2
Severity: serious
Tags: patch
Justification: fails to build from source (but built successfully in the past)
User: [email protected]
Usertags: kfreebsd
Hi,
linphone 3.5.x currently fails to build on kFreeBSD.
The problem is that the mediastreamer2 configure detects the Linux
v4l headers (linux/videodev.h and linux/videodev2.h) that newer FreeBSD
kernels provide, but then the v4l code assumes is it a Linux system.
The solution is to disable the v4l1/2 support in any non-Linux OS
(patch non-linux.diff, which also explicitly disables ALSA); although,
to really disable the detection of the videodev*.h headers,
mediastreamer2's configure has to be patched to do the lookup only if
the current OS is linux (patch linux_headers_linux_only.diff).
Please note the latest patch needs autoreconf, which seems to work only
using the provided autogen.sh (and not manually calling autoreconf).
Thanks,
--
Pino
--- a/debian/rules
+++ b/debian/rules
@@ -1,9 +1,15 @@
#!/usr/bin/make -f
+
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+ifneq ($(DEB_HOST_ARCH_OS),linux)
+ CONFIGURE_ARGS += --disable-alsa --disable-libv4l1 --disable-libv4l2
+endif
+
%:
dh $@ --parallel --with autotools_dev
override_dh_auto_configure:
- dh_auto_configure -- --disable-strict
+ dh_auto_configure -- --disable-strict $(CONFIGURE_ARGS)
override_dh_makeshlibs:
dh_makeshlibs -V
--- a/mediastreamer2/configure.ac
+++ b/mediastreamer2/configure.ac
@@ -625,17 +625,25 @@
AC_SUBST(PACKAGE_DATA_DIR)
dnl check for video4linux headers
-AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h)
-if test "${ac_cv_header_linux_videodev_h}" = "yes" ; then
- found_v4l1=yes
-else
+case $host_os in
+linux*)
+ AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h)
+ if test "${ac_cv_header_linux_videodev_h}" = "yes" ; then
+ found_v4l1=yes
+ else
+ found_v4l1=no
+ fi
+ if test "${ac_cv_header_linux_videodev2_h}" = "yes" ; then
+ found_v4l2=yes
+ else
+ found_v4l2=no
+ fi
+ ;;
+*)
found_v4l1=no
-fi
-if test "${ac_cv_header_linux_videodev2_h}" = "yes" ; then
- found_v4l2=yes
-else
found_v4l2=no
-fi
+ ;;
+esac
AM_CONDITIONAL(BUILD_V4L1, test x$found_v4l1 = xyes )
AM_CONDITIONAL(BUILD_V4L2, test x$found_v4l2 = xyes )