Всем привет!
Есть FC6 KDE и HAL оттуда же штатные.
Есть потребность монтировать CD записанные на винде Nero и т.п. пользователям.
Если метка дисков английская - все более-менее нормально.
Если метка русская (А Nero любит ставить метки "Мой диск"), HAL пытается смонтировать в каталог "/media/Мой диск" и получается ошибка (см. скриншот)
При этом диск успешно монтируется в "/media/Мой диск", но через значек диска получить к нему доступ невозможно,
невозможно и отмонтировать и извлечь его средствами KDE, что справедливо раздражает пользователей.
Под FreeBSD из портов я собирал HAL с патчем который делал точку монтирования совпадающей с именем устройства, а не с меткой диска, что,
в некоторой степени снимало проблему. Как бы то же сделать под FC6?
В FreeBSD патч к другой версии HAL - не подходит.
Автомонтирование CD в KDE (CD c русскими метками монтируются через HAL криво)
Модератор: Модераторы разделов
-
- Сообщения: 86
- ОС: Fedora Core, FreeBSD
Автомонтирование CD в KDE
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 86
- ОС: Fedora Core, FreeBSD
Re: Автомонтирование CD в KDE
Вот патч для hal-0.5.8 (из FC6) который обходит проблему
Код: Выделить всё
--- a/tools/hal-storage-mount.c 2007-10-09 16:01:11.000000000 +0700
+++ b/tools/hal-storage-mount.c 2007-10-09 16:03:43.000000000 +0700
@@ -586,24 +586,12 @@
explicit_mount_point_given = FALSE;
if (strlen (mount_point) == 0) {
char *p;
- const char *label;
-
- if (volume != NULL)
- label = libhal_volume_get_label (volume);
- else
- label = NULL;
-
- if (label != NULL) {
- /* best - use label */
- g_strlcpy (mount_point, label, sizeof (mount_point));
-
- /* TODO: use drive type */
-
- } else {
- /* fallback - use "disk" */
- g_snprintf (mount_point, sizeof (mount_point), "disk");
- }
+ const char *basename;
+ basename = g_path_get_basename (device);
+ g_strlcpy (mount_point, basename, sizeof (mount_point));
+ g_free (basename);
+
/* sanitize computed mount point name, e.g. replace invalid chars with '-' */
p = mount_point;
while (TRUE) {