# глюки в связке hal+kde

## APolozov

Решил отказаться от записей в fstab для динамически втыкаемых устройств (потому как задолбался на каждый чих править fstab) и все переложить на плечи связки HAL+KDE

Вроде бы даже всё настроил. Во всяком случае при втыкание диска в привод иконка устройства на десктопе появляется, ежели сказать "Открыть в новом окне" в /media создается папка совпадающая с именем тома

(как пример "Вавилон-5 (1-13)"), диск туда благополучно монтируется (название папки и имена файлов в другим софтом видится прекрасно). А вот кеды выдают следующую ошибку "Файл или папка /media/ÐÐ°Ð²Ð¸Ð»Ð¾Ð½-5 (1-13) не существует." и обламываются. Локаль ru_RU.UTF-8 то есть как бы проблем возникать не должно. Куда копать?Last edited by APolozov on Fri Jan 04, 2008 11:10 am; edited 1 time in total

----------

## APolozov

Пока ждал ответа, чуть-чуть порыл сам.   :Very Happy: 

Как я понял кеды берут строчку c меткой тома в UTF-8 (скорее всего от HAL) и пытаются ее использовать для открытия папки устройства как URL, но урлы с русскими символами надо еще преобразовывать в URL-encode according to RFC 1738 (в терминах php операция называется rawurlencode) 

То есть патчить нужно где-то на этапе образования урла.

ЗЫ: Только у меня такая проблема?

----------

## ArtSh

Да, только у Вас. Если хотите её подправить, то надо копать в сторону <append key="volume.mount.valid_options" type="strlist">locale=</append> или создания обёртки mount.fstype

----------

## APolozov

 *ArtSh wrote:*   

> Да, только у Вас. 

 

Это догадка?

 *ArtSh wrote:*   

> Если хотите её подправить, то надо копать в сторону <append key="volume.mount.valid_options" type="strlist">locale=</append> или создания обёртки mount.fstype

 

Дык эта, монтируется то оно правильно. И от HAL название передается правильно. И в mtab оно записано правильно. И даже на десктопе KDE оно показано правильно. Глюк, насколько я ничего не понимаю в программировании, исключительно в самом KDE, на этапе попытки открыть устройство как URL. 

Но URL с русскими символами по стандарту должен передаваться нифига не в выставленной локали (о чем буржуи со своими 127 символами нифига не помнят), даже если эта локаль UTF-8. (Я же не спроста привел команду из PHP она служит именно для преобразования строки символов в последовательнось URL).

----------

## ArtSh

 *APolozov wrote:*   

> 
> 
> Это догадка?
> 
> 

 

Нет, это факт. По крайней мере на этом форуме.

 *APolozov wrote:*   

> 
> 
> Дык эта, монтируется то оно правильно. И от HAL название передается правильно. И в mtab оно записано правильно. И даже на десктопе KDE оно показано правильно. Глюк, насколько я ничего не понимаю в программировании, исключительно в самом KDE, на этапе попытки открыть устройство как URL. 
> 
> 

 

Если монтируется правильно, от HAL название передаётся правильно (hal-device кстати смотрели?), в mtab записано правильно, в KDE катлоги с русскими буквами открываются, то это значит только одно: Вы нашли ошибку kio или локали всё-таки где-то не совпадают.

P.S. то что отображается в строке Konqueror имеет к url отдалённое отношение, но не как не прямое.

----------

## APolozov

 *ArtSh wrote:*   

>  *APolozov wrote:*   
> 
> Это догадка? 
> 
> Нет, это факт. По крайней мере на этом форуме.

 

То есть вы попробовали воткнуть что-то с русской меткой и оно нормально засвистело?   :Shocked: 

Тогда я не понимаю почему у меня это не работает? Никаких самопальных патчей не накладывал, значит и сломать ничего не мог.

 *ArtSh wrote:*   

>  *APolozov wrote:*   
> 
> Дык эта, монтируется то оно правильно. И от HAL название передается правильно. И в mtab оно записано правильно. И даже на десктопе KDE оно показано правильно. Глюк, насколько я ничего не понимаю в программировании, исключительно в самом KDE, на этапе попытки открыть устройство как URL. 
> 
>  
> ...

 

Еще раз. Монтируется нормально. Отображается нормально. В mtab все нормально (строка появляется и убирается) Вот, что выдает lshal | grep volume.label

  volume.label = 'Вавилон-5 (27-39)'  (string)

Конкуерор ( если заходить в папку /media/Вавилон (27-39)/ ) заходит и содержимое видит и корректно отображает.

Проблемы начинаются когда кокуерор пытается открыть том как media:/sr1 

Причем только на дисках с именами содержащими кирилические символы (если все символы из ASCII - все нормально)

 *ArtSh wrote:*   

> P.S. то что отображается в строке Konqueror имеет к url отдалённое отношение, но не как не прямое.

 

Мне почему то показалось, что если в строке адреса идут адреса типа media:/bla-bla system:/bla-bla

то это все-же урл к сокету.Last edited by APolozov on Fri Jan 04, 2008 4:39 pm; edited 1 time in total

----------

## APolozov

Забыл сказать, KDE у меня 3.5.8 (текущий ~x86) может быть дело в этом? (Типа сломали что нибудь).

----------

## ArtSh

 *Quote:*   

> 
> 
> То есть вы попробовали воткнуть что-то с русской меткой и оно нормально засвистело? 
> 
> 

 

Да.

 *Quote:*   

> 
> 
> Вот, что выдает lshal | grep volume.label
> 
> volume.label = 'Вавилон-5 (27-39)' (string)
> ...

 

надо смотреть не label а mountpoint

 *Quote:*   

> 
> 
> Проблемы начинаются когда кокуерор пытается открыть том как media:/sr1
> 
> Причем только на дисках с именами содержащими кирилические символы (если все символы из ASCII - все нормально) 
> ...

 

Могу только повторить: Вы нашли ошибку kio (тогда Вам надо запостить баг на багзилле) или локали всё-таки где-то не совпадают.

 *Quote:*   

> 
> 
> Мне почему то показалось, что если в строке адреса идут адреса типа media:/bla-bla system:/bla-bla
> 
> то это все-же урл к сокету.
> ...

 

читать про kio и kio-slave

----------

## APolozov

 *ArtSh wrote:*   

>  *Quote:*   
> 
> То есть вы попробовали воткнуть что-то с русской меткой и оно нормально засвистело? 
> 
>  
> ...

 

Значит глюк всё-же локальный   :Laughing: 

 *ArtSh wrote:*   

>  *Quote:*   
> 
> Вот, что выдает lshal | grep volume.label
> 
> volume.label = 'Вавилон-5 (27-39)' (string)
> ...

 

тут тоже все нормально:

volume.mount_point = '/media/Вавилон-5 (27-39)'  (string)

зато нашел ненормальность

info.udi = '/org/freedesktop/Hal/devices/volume_label________________5__27_39_'  (string)

тогда как для тома

volume.label = 'REMOVABLE'  (string)

info.udi = '/org/freedesktop/Hal/devices/volume_uuid_9AECA082ECA05A71'  (string)

то есть hal как то не так работает (хотя настройки дефолтные, специально вчера снёс вместе с конфигами и переустановил заново) еще не доходя до kde

 *ArtSh wrote:*   

>  *Quote:*   
> 
> Проблемы начинаются когда кокуерор пытается открыть том как media:/sr1
> 
> Причем только на дисках с именами содержащими кирилические символы (если все символы из ASCII - все нормально) 
> ...

 

Если бы это была ошибка kio она бы проявлялась не только у меня (или просто я один юзаю диски с русскими лабелями?) Да и с багзилой у меня проблемы в том плане, что мое знание английского не позволяет внятно объяснить проблему (я уже пытался постить багрепорт - его банально прибили).

 *ArtSh wrote:*   

>  *Quote:*   
> 
> Мне почему то показалось, что если в строке адреса идут адреса типа media:/bla-bla system:/bla-bla
> 
> то это все-же урл к сокету.
> ...

 

Я от программирования достаточно далёк, ткнёшь где именно читать? Что-б с поправкой на непрограммистов.   :Laughing: 

----------

## APolozov

поиски на яндексе показали, что глюк не только у меня и не только на дженте

http://linuxforum.ru/index.php?showtopic=50482

народ патчит HAL

----------

