![Baruch Siach](/assets/img/avatar_default.png)
modem-manager version 1.8.0 introduced use of canonicalize_file_name(), which is a GNU extension that musl does not implement. Add a patch switching to POSIX standard realpath(). Fixes: http://autobuild.buildroot.net/results/9f6/9f6859f1854d94d3caba7b5c24d9ca6a14622042/ Cc: Aleksander Morgado <aleksander@aleksander.es> Cc: Carlos Santos <casantos@datacom.com.br> Cc: Petr Vorel <petr.vorel@gmail.com> Cc: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
68 lines
3 KiB
Diff
68 lines
3 KiB
Diff
From ed40ac76b125b1c3b2e2f8522d283b073c23bd3b Mon Sep 17 00:00:00 2001
|
|
From: Baruch Siach <baruch@tkos.co.il>
|
|
Date: Fri, 15 Jun 2018 06:25:46 +0300
|
|
Subject: [PATCH] kerneldevice: fix build with musl libc
|
|
|
|
musl libc does not implement the canonicalize_file_name() GNU extension.
|
|
Use the POSIX standard realpath() instead.
|
|
|
|
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
|
---
|
|
Upstream status: sent to modemmanager-devel@lists.freedesktop.org
|
|
|
|
src/kerneldevice/mm-kernel-device-generic.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c
|
|
index 6b0f072402ff..885bef171f5d 100644
|
|
--- a/src/kerneldevice/mm-kernel-device-generic.c
|
|
+++ b/src/kerneldevice/mm-kernel-device-generic.c
|
|
@@ -120,7 +120,7 @@ preload_sysfs_path (MMKernelDeviceGeneric *self)
|
|
mm_kernel_event_properties_get_subsystem (self->priv->properties),
|
|
mm_kernel_event_properties_get_name (self->priv->properties));
|
|
|
|
- self->priv->sysfs_path = canonicalize_file_name (tmp);
|
|
+ self->priv->sysfs_path = realpath (tmp, NULL);
|
|
if (!self->priv->sysfs_path || !g_file_test (self->priv->sysfs_path, G_FILE_TEST_EXISTS)) {
|
|
mm_warn ("Invalid sysfs path read for %s/%s",
|
|
mm_kernel_event_properties_get_subsystem (self->priv->properties),
|
|
@@ -163,7 +163,7 @@ preload_interface_sysfs_path (MMKernelDeviceGeneric *self)
|
|
* The correct parent dir we want to have is the first one with "usb" subsystem.
|
|
*/
|
|
aux = g_strdup_printf ("%s/device", self->priv->sysfs_path);
|
|
- dirpath = canonicalize_file_name (aux);
|
|
+ dirpath = realpath (aux, NULL);
|
|
g_free (aux);
|
|
|
|
while (dirpath) {
|
|
@@ -179,7 +179,7 @@ preload_interface_sysfs_path (MMKernelDeviceGeneric *self)
|
|
gchar *canonicalized_subsystem;
|
|
gchar *subsystem_name;
|
|
|
|
- canonicalized_subsystem = canonicalize_file_name (subsystem_filepath);
|
|
+ canonicalized_subsystem = realpath (subsystem_filepath, NULL);
|
|
g_free (subsystem_filepath);
|
|
|
|
subsystem_name = g_path_get_basename (canonicalized_subsystem);
|
|
@@ -239,7 +239,7 @@ preload_driver (MMKernelDeviceGeneric *self)
|
|
gchar *tmp2;
|
|
|
|
tmp = g_strdup_printf ("%s/driver", self->priv->interface_sysfs_path);
|
|
- tmp2 = canonicalize_file_name (tmp);
|
|
+ tmp2 = realpath (tmp, NULL);
|
|
if (tmp2 && g_file_test (tmp2, G_FILE_TEST_EXISTS))
|
|
self->priv->driver = g_path_get_basename (tmp2);
|
|
g_free (tmp2);
|
|
@@ -308,7 +308,7 @@ preload_physdev_subsystem (MMKernelDeviceGeneric *self)
|
|
gchar *subsyspath;
|
|
|
|
aux = g_strdup_printf ("%s/subsystem", self->priv->physdev_sysfs_path);
|
|
- subsyspath = canonicalize_file_name (aux);
|
|
+ subsyspath = realpath (aux, NULL);
|
|
self->priv->physdev_subsystem = g_path_get_dirname (subsyspath);
|
|
g_free (subsyspath);
|
|
g_free (aux);
|
|
--
|
|
2.17.1
|
|
|