Summary: | Программы в wine перестали запускаться из-за недоступного на запись TMP | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Vadim Zelenin <VadimZelenin> | ||||
Component: | wine | Assignee: | Vitaly Lipatov <lav> | ||||
Status: | CLOSED WORKSFORME | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | lav | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 40797 | ||||||
Attachments: |
|
Description
Vadim Zelenin
2013-10-24 14:48:39 MSK
Created attachment 5979 [details]
Фрагмент лога с WINEDEBUG=all
Прошу прощения за то, что начал писать ошибку не испробовав все варианты разрешить проблему самостоятельно. Оказалось, что эта ошибка - на 90% моя и только на 10% - wine. История такая. Этот префикс wine у меня упакован в пакет и в домашний директорий пользователя разворачивается из архива. При создании архива я удалил C:\users\<имя пользователя>, но не догадался внести правки в реестр, поэтому там остались настройки типа TMP=C:\users\<имя пользователя>\Temp. Это нисколько не мешало работать windows программе в wine, и моя ошибка была невидима больше года. Как я уже писал, на днях я "расшарил" принтер, avahi подсуетился и wine на ученических машинках стал настраивать принтеры. При этом wine пытается создать директорий %TMP%\wine_ppds\ , но не может сделать этого. В приложении помещу избранные места из отчёта, созданного при WINEDEBUG=all. Признаю свою ошибку, но мне кажется, что было бы полезно внести небольщое изменение в wine. В порядке убывания предпочтительности можно сделать: - Разрешить рекурсивно создавать временный директорий - и/или - В случае неуспеха использования %TMP% предусмотреть fallback C:\Temp - или - завершать запуск winespool.drv, но не сегфолтом, а с сообщением с явным указанием причины прекращения работы. Перенесу на Sisyphus, чтобы предложение не потерялось. > - и/или - В случае неуспеха использования %TMP% предусмотреть fallback C:\Temp
> - или - завершать запуск winespool.drv, но не сегфолтом, а с сообщением с явным
указанием причины прекращения работы.
Падение при невозможности создать временный каталог — это, конечно, ошибка.
А использование %TMP% не должно быть иным, чем в Windows.
Я бы сделал где-то на старте проверку, доступен ли TMP на запись, то есть такая проверка на валидность настроек...
> Падение при невозможности создать временный каталог — это, конечно, ошибка. > А использование %TMP% не должно быть иным, чем в Windows. Согласен, но версий windows было достаточно много и меня укачивает при мысли, что кто-то будет ставить по очереди все версии и проверять как оно там было :) Насколько я помню, для "системных" процессов там был %WINDIR%/Temp, но мой последний windows был W2K. Так что поведение wine в вопросе временных файлов уже отличается от windows. > Я бы сделал где-то на старте проверку, доступен ли TMP на запись, то есть такая > проверка на валидность настроек... Это тоже приемлемо. По крайней мере это сразу выявит ошибки пользователей wine, а не отложит их на полтора года. Не указана версия пакета wine, но думаю, что старая, которая была в p6. Сейчас на wine-1.7.4 вижу такое сообщение: err:winediag:FILE_CreateFile failed to open L"\\??\\C:\\windows\\profiles\\502\\Temp\\wine_ppds\\" because of insufficient access rights Хотя может быть я не воспроизвожу. (В ответ на комментарий №6) > Не указана версия пакета wine, но думаю, что старая, которая была в p6. да, это "штатный" шестёрочный wine-1.6-rc3 Думаю, сейчас всё достаточно изменилось, чтобы такой проблемы не было. |