[PATCH] kerneldevice: fix build with musl libc

Aleksander Morgado aleksander at aleksander.es
Sun Jun 17 09:51:11 UTC 2018


On 15/06/18 05:30, Baruch Siach wrote:
> musl libc does not implement the canonicalize_file_name() GNU extension.
> Use the POSIX standard realpath() instead.

Ohh, I was meaning to do this change for the MM 1.8 release, looks like I forgot about it :/
Pushed to git master now, it will be included in the next MM 1.8.x stable release as well.

> ---
>  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);
> 


-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list