glib-2.0: fix mount detection

Currently a USB stick gets mounted on /run/media/sdX, where X is the
letter corresponding to a certain drive. In older builds of core-image-sato
it got mounted in /media/sdX. This change made the drives to not be
displayed in graphical applications which use glib-2.0 such as the
File Manager (pcmanfm). The reason is that the gio component of glib-2.0
which handles mounts contains a function which determines if a mount
is worthy to be displayed in the UI or not. The function is called
g_unix_mount_guess_should_display().

It expects a drive to be mounted in /run/media/<username>/sdX, but
in the current build the username part is missing in case a root user
is authenticated in the system.

The easiest solution is to allow the display of drives mounted in the
path used by the current configuration and that is /run/media/sdX.

[YOCTO #6492]

(From OE-Core rev: da9bbcd2233057a0529005b9b2cc34aff65bc6e2)

Signed-off-by: Marius Avram <marius.avram@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Marius Avram
2014-09-08 12:58:42 +01:00
committed by Richard Purdie
parent 77369679ef
commit c46a54853a
2 changed files with 40 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
From c53e94a520b573aa0dcf12903e9563fe8badc34c Mon Sep 17 00:00:00 2001
From: Marius Avram <marius.avram@intel.com>
Date: Wed, 27 Aug 2014 12:10:41 +0300
Subject: [PATCH] Allow /run/media/sdX drive mount if username root
In case that the username logged in the system is root
the drives are directly mounted in /run/media/sdX and
not /run/media/<username>/sdX as the function
g_unix_mount_guess_should_display() expects.
Without this change USB stick mounts are not accesible from
graphical applications such as the File Manager (pcmanfm).
Upstream-Status: Inappropriate
Signed-off-by: Marius Avram <marius.avram@intel.com>
---
gio/gunixmounts.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
index 4999354..f6c1472 100644
--- a/gio/gunixmounts.c
+++ b/gio/gunixmounts.c
@@ -2136,6 +2136,11 @@ g_unix_mount_guess_should_display (GUnixMountEntry *mount_entry)
mount_path[sizeof ("/run/media/") - 1 + user_name_len] == '/')
is_in_runtime_dir = TRUE;
+ /* Allow no username in path in /run/media if current user is root */
+ if (strcmp(user_name, "root") == 0 &&
+ strncmp (mount_path, "/run/media/", sizeof("run/media")) == 0)
+ is_in_runtime_dir = TRUE;
+
if (is_in_runtime_dir || g_str_has_prefix (mount_path, "/media/"))
{
char *path;
--
1.7.9.5

View File

@@ -13,6 +13,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://ptest-paths.patch \
file://uclibc.patch \
file://0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch \
file://allow-run-media-sdX-drive-mount-if-username-root.patch \
"
SRC_URI_append_class-native = " file://glib-gettextize-dir.patch"