diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch b/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch new file mode 100644 index 000000000..e13404387 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch @@ -0,0 +1,82 @@ +From 8333cf300f6010243117aae6da4b823d9d7f30b2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Oct 2016 04:42:26 +0000 +Subject: [PATCH] Detect clang + +Check for clang compiler since we need to disable +unused-function warning for clang, at same time +pass werror when checking for compiler options if +werror is enabled so spurious options do not get +enabled. Only the ones that are supported by given +compiler are accepted. + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +--- + m4/compiler-warnings.m4 | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/m4/compiler-warnings.m4 b/m4/compiler-warnings.m4 +index 5ba490c884dc..92022746487f 100644 +--- a/m4/compiler-warnings.m4 ++++ b/m4/compiler-warnings.m4 +@@ -2,10 +2,30 @@ AC_DEFUN([LIBQMI_COMPILER_WARNINGS], + [AC_ARG_ENABLE(more-warnings, + AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), + set_more_warnings="$enableval",set_more_warnings=error) ++ ++# Clang throws a lot of warnings when it does not understand a flag. Disable ++# this warning for now so other warnings are visible. ++AC_MSG_CHECKING([if compiling with clang]) ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ ++#ifndef __clang__ ++ not clang ++#endif ++ ]])], ++ [CLANG=yes], ++ [CLANG=no] ++) ++AC_MSG_RESULT([$CLANG]) ++AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) ++CFLAGS="$CFLAGS $CLANG_FLAGS" ++LDFLAGS="$LDFLAGS $CLANG_FLAGS" ++ + AC_MSG_CHECKING(for more warnings) + if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + CFLAGS="-Wall -std=gnu89 $CFLAGS" ++ if test "x$set_more_warnings" = xerror; then ++ WERROR="-Werror" ++ fi + + for option in -Wmissing-declarations -Wmissing-prototypes \ + -Wdeclaration-after-statement -Wstrict-prototypes \ +@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + -Wmissing-include-dirs -Waggregate-return \ + -Wformat-security -Wtype-limits; do + SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS $option" ++ CFLAGS="$CFLAGS $option $WERROR" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" ++ else ++ CFLAGS="$SAVE_CFLAGS $option" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done ++ CFLAGS="$CFLAGS $WERROR" + unset option +- if test "x$set_more_warnings" = xerror; then +- CFLAGS="$CFLAGS -Werror" +- fi ++ unset WERROR + else + AC_MSG_RESULT(no) + fi diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch b/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch deleted file mode 100755 index edcfdb07f..000000000 --- a/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Mike Engel -Date: Wed, 15 Mar 2017 18:20:25 +0100 -Subject: [PATCH] meta-digi-dey: Added libqmi patch to DMS version miss match. - -Signed-off-by: Mike Engel ---- - .../src/libqmi-glib/qmi-device.c | 32 +++++++++++++++++----- - 1 file changed, 25 insertions(+), 7 deletions(-) - -diff --git a/src/libqmi-glib/qmi-device.c b/src/libqmi-glib/qmi-device.c -index 5cee156..ef636f0 100644 ---- a/src/libqmi-glib/qmi-device.c -+++ b/src/libqmi-glib/qmi-device.c -@@ -485,8 +485,10 @@ check_message_supported (QmiDevice *self, - GError **error) - { - const QmiMessageCtlGetVersionInfoOutputServiceListService *info; -- guint major = 0; -- guint minor = 0; -+ guint message_major = 0; -+ guint message_minor = 0; -+ guint device_major = 0; -+ guint device_minor = 0; - - /* If we didn't check supported services, just assume it is supported */ - if (!self->priv->supported_services) -@@ -498,7 +500,7 @@ check_message_supported (QmiDevice *self, - - /* If we cannot get in which version this message was introduced, we'll just - * assume it's supported */ -- if (!qmi_message_get_version_introduced (message, &major, &minor)) -+ if (!qmi_message_get_version_introduced (message, &message_major, &message_minor)) - return TRUE; - - /* Get version info. It MUST exist because we allowed creating a client -@@ -506,18 +508,34 @@ check_message_supported (QmiDevice *self, - info = find_service_version_info (self, qmi_message_get_service (message)); - g_assert (info != NULL); - g_assert (info->service == qmi_message_get_service (message)); -+ device_major = info->major_version; -+ device_minor = info->minor_version; -+ -+ /* Some device firmware versions (Quectel EC21) lie about their supported -+ * DMS version, so assume a reasonable DMS version if the WDS version is -+ * high enough */ -+ if (info->service == QMI_SERVICE_DMS && device_major == 1 && device_minor == 0) { -+ const QmiMessageCtlGetVersionInfoOutputServiceListService *wds; -+ -+ wds = find_service_version_info (self, QMI_SERVICE_WDS); -+ g_assert (wds != NULL); -+ if (wds->major_version >= 1 && wds->minor_version >= 9) { -+ device_major = 1; -+ device_minor = 3; -+ } -+ } - - /* If the version of the message is greater than the version of the service, - * report unsupported */ -- if (major > info->major_version || -- (major == info->major_version && -- minor > info->minor_version)) { -+ if (message_major > device_major || -+ (message_major == device_major && -+ message_minor > device_minor)) { - g_set_error (error, - QMI_CORE_ERROR, - QMI_CORE_ERROR_UNSUPPORTED, - "QMI service '%s' version '%u.%u' required, got version '%u.%u'", - qmi_service_get_string (qmi_message_get_service (message)), -- major, minor, -+ message_major, message_minor, - info->major_version, - info->minor_version); - return FALSE; diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi_%.bbappend b/meta-digi-dey/recipes-connectivity/libqmi/libqmi_%.bbappend deleted file mode 100644 index ba7df7d50..000000000 --- a/meta-digi-dey/recipes-connectivity/libqmi/libqmi_%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2017 Digi International Inc. - -FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" - -SRC_URI += " \ - file://0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch \ -" - diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi_1.18.0.bb b/meta-digi-dey/recipes-connectivity/libqmi/libqmi_1.18.0.bb new file mode 100644 index 000000000..e732dae3a --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/libqmi/libqmi_1.18.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol" +DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems \ +and devices which speak the Qualcomm MSM Interface (QMI) protocol" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "glib-2.0 libgudev libmbim" + +inherit autotools pkgconfig bash-completion + +SRC_URI = " \ + http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-Detect-clang.patch \ +" +SRC_URI[md5sum] = "25bae4e383ad77f491ad49b49e04fdcf" +SRC_URI[sha256sum] = "a0a42c55935e75a630208e2f70840bd4407f56fe1c5258f5b0f6c0aaedf88cec"