modemmanager: Fix build with musl provide canonicalize_file_name()

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
Khem Raj 2018-06-14 20:31:06 -07:00
parent c8f3816f82
commit 1d6ea95918
2 changed files with 69 additions and 1 deletions

View File

@ -0,0 +1,66 @@
From 07f1eda630517816bfa900e811963745a149e57c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 8 Jun 2018 20:38:30 -0700
Subject: [PATCH] Add configure check for canonicalize_file_name() before use
Define canonicalize_file_name API if not provided by system C library
musl e.g. does not provide this API
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
configure.ac | 2 ++
src/kerneldevice/mm-kernel-device-generic.c | 18 ++++++++++++++++++
2 files changed, 20 insertions(+)
Index: ModemManager-1.7.991/configure.ac
===================================================================
--- ModemManager-1.7.991.orig/configure.ac
+++ ModemManager-1.7.991/configure.ac
@@ -72,6 +72,8 @@ AC_SUBST(MM_GLIB_LT_CURRENT)
AC_SUBST(MM_GLIB_LT_REVISION)
AC_SUBST(MM_GLIB_LT_AGE)
+AC_CHECK_FUNCS([canonicalize_file_name])
+
dnl-----------------------------------------------------------------------------
dnl Documentation
dnl
Index: ModemManager-1.7.991/src/kerneldevice/mm-kernel-device-generic.c
===================================================================
--- ModemManager-1.7.991.orig/src/kerneldevice/mm-kernel-device-generic.c
+++ ModemManager-1.7.991/src/kerneldevice/mm-kernel-device-generic.c
@@ -21,6 +21,7 @@
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
+#include "config.h"
#include "mm-kernel-device-generic.h"
#include "mm-kernel-device-generic-rules.h"
#include "mm-log.h"
@@ -100,6 +101,24 @@ read_sysfs_property_as_string (const gch
return contents;
}
+#ifndef HAVE_CANONICALIZE_FILE_NAME
+#include <limits.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+static char * canonicalize_file_name(const char *path)
+{
+ char buf[PATH_MAX] = { };
+
+ snprintf(buf, sizeof(buf) - 1, "%s", path);
+
+ if (!realpath(path, buf))
+ return NULL;
+
+ return strdup(buf);
+}
+#endif
+
/*****************************************************************************/
/* Load contents */

View File

@ -11,7 +11,9 @@ inherit gnomebase gettext systemd vala gobject-introspection bash-completion
DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native"
SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz"
SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
file://0001-Add-configure-check-for-canonicalize_file_name-befor.patch \
"
SRC_URI[md5sum] = "4efe6a240cef212bf8855c95424e7c7f"
SRC_URI[sha256sum] = "4e366243bd4983f2e6efe35cb901cf5da51939307b5d6299fe622a9fcf411745"