Bug 1154

Summary: Пользователь в wine должен быть администратором
Product: WINE@Etersoft Reporter: Константин Кондратюк <kondratyuk>
Component: ОбщееAssignee: Денис Баранов <baraka>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P2 CC: boris, coust, lav, mid, regan, renatrahimov
Version: 1.0.12   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: 17487 Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 437, 777, 7504    

Description Константин Кондратюк 2008-02-14 12:30:55 MSK
В wine пользователь, имеющий все права на всю свою .wine, не является администратором с точки зрения методов, определяющих это из программы.

В частности, из-за этого возникают проблемы с регистрацией базовой 1С 8.1.
Comment 1 Константин Кондратюк 2008-02-14 12:32:51 MSK
Необходимо узнать, как программа определяет, что пользователь является администратором. Мой вариант - чтение соответствующего ключа в реестре, а в wine такого ключа нет.
Comment 2 Boris Savelev 2008-02-14 12:35:01 MSK
проверить можно в бутылке
swine 1c81AccountingBase
Comment 3 Alexander 2008-02-14 18:00:54 MSK
Информация "к сведению".
Проверяя вариант, что wine не получает прав администратора, решил проверить, будет ли такая же ошибка вод виндовс, если устанавливать и пытаться зарегистрировать 1С от имени обычного пользователя, не администратора.
Делал я это еще три недели назад, как только обнаружил баг.
Так вот, 1С выдавал нормальное окошко с двумя кнопками: "Да" и "Нет".
Я не располагаю всей информацией по "нутру" wine и windows, но подумал что это замечание может быть полезным, не исключено что причина не в том, что нет прав администратора, но утверждать конечно ничего не могу.
Comment 4 Boris Savelev 2008-02-14 18:03:37 MSK
кстати нет. видимо пользователь у Вас входит в группу "Администраторы" т.к., во-первых, у мы добились этого в Windows (запустив под "гостем"), во-вторых это окошко не имело бы смысла вообще если в  WIndows все "гладко" при любом раскладе
Comment 5 Vitaly Lipatov 2008-02-14 20:55:43 MSK
Возможно стоит проверить не под гостем? Может нужна не чётко административная группа, а какая-либо ещё?
Мы тут нашли в книге об этом немного, я принёс Косте.
Comment 6 Константин Кондратюк 2008-02-15 10:37:26 MSK
В "учётных записях" нашей WinXP есть только два состояния - администраторская запись и ограниченная. В одном случае работает, в другом - нет. Проверял под своей учёткой, не гостевой.
Comment 7 Константин Кондратюк 2008-02-15 11:29:40 MSK
Сделал diff по реестру WinXP.
HKEY_LOCAL_MACHINE идентичны
HKEY_USERS различаются только одним "последним открытым файлом", что к нам точно не относится.
Comment 8 Константин Кондратюк 2008-02-15 15:32:52 MSK
Такая же ошибка при запуске 1С в Windows 98.
Видимо, предположение про работу COM-объекта и wbem/wbemprox.dll из WinNT оказывается правильным.

Кстати, 1С 8.1 официально работает в Windows 98.
Comment 9 Boris Savelev 2008-02-15 15:35:27 MSK
(In reply to comment #8)
> Такая же ошибка при запуске 1С в Windows 98.
> Видимо, предположение про работу COM-объекта
> и wbem/wbemprox.dll из WinNT оказывается правильным.
> 
> Кстати, 1С 8.1 официально работает в Windows 98.
> 

Насчет работает мы еще посмотрим. Но оффициально поддерживается -- это точно
( http://v8.1c.ru/requirements/ )
Comment 10 Boris Savelev 2008-02-18 18:51:30 MSK
удалось получить желаемый результат с 1с 81 Бухгалтерия Базовая, после установки необходимого комплекса библиотек поставляемых в WMI 1.5 ( http://www.microsoft.com/downloads/details.aspx?FamilyId=98A4C5BA-337B-4E92-8C18-A63847760EA5&displaylang=en )
НО! По первичным данным:
Установка противоречит лицензии WINE! Использование возможно лишь при наличии лицензии на Windows.

Основной по трейсам является wbemprox.dll -- WBEM Locator

trace:ole:apartment_getclassobject added new loaded dll L"C:\\windows\\system32\\wbem\\wbemprox.dll"
trace:ole:apartment_getclassobject calling DllGetClassObject 0x74eb20e2
trace:ole:CoCreateInstance (rclsid={8bc3f05e-d86b-11d0-a075-00c04fb68820}, pUnkOuter=(nil), dwClsContext=00000014, riid={0000
trace:ole:CoGetClassObject
        CLSID:  {8bc3f05e-d86b-11d0-a075-00c04fb68820},
        IID:    {00000001-0000-0000-c000-000000000046}
trace:ole:RPC_GetLocalClassObject rclsid={8bc3f05e-d86b-11d0-a075-00c04fb68820}, iid={00000001-0000-0000-c000-000000000046}
trace:ole:WINE_StringFromCLSID 0x74eb1a5c->{8BC3F05E-D86B-11D0-A075-00C04FB68820}
trace:ole:RPC_GetLocalClassObject waiting for L"\\\\.\\pipe\\{8BC3F05E-D86B-11D0-A075-00C04FB68820}"
trace:ole:create_local_service Attempting to start Local service for {8bc3f05e-d86b-11d0-a075-00c04fb68820}
trace:ole:WINE_StringFromCLSID 0x74eb1a5c->{8BC3F05E-D86B-11D0-A075-00C04FB68820}
trace:ole:WINE_StringFromCLSID 0x74eb1a5c->{8BC3F05E-D86B-11D0-A075-00C04FB68820}
err:ole:create_server class {8bc3f05e-d86b-11d0-a075-00c04fb68820} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported

***
trace:reg:NtOpenKey (0x74,L"CLSID\\{4590F811-1D3A-11D0-891F-00AA004B2E24}\\InprocServer32",f003f,0x7fdeeab4)


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

Проверить можно в swine 1c81AccountingBase
удалив c:\windows\system32\WBEM
Comment 11 Синицын Иван 2008-02-19 12:21:19 MSK
Зделал заглушку для первого вызываемого объекта IWbemLocator. Пока не помогло т.к. требует возвращения объекта IWbemServices. Делаю IWbemServices.
Comment 12 Синицын Иван 2008-02-19 14:51:03 MSK
Реализовал заглушку для IWbemServices. При запуске 1С видим, что она вызываем метод CreateInstanceEnum, со строкой запроса "Win32_DiskDrive" и требует возвращения перечисления IEnumWbemClassObject. Возвращаемые значения, такие как "метод не реализован" или "S_OK" не дают результатов. Требуется реализация IEnumWbemClassObject.
Comment 13 Boris Savelev 2008-02-19 18:45:28 MSK
может это поможет:

http://openwbem.org/
http://www.dmtf.org/standards/wbem/
Comment 14 Alexander 2008-02-19 18:55:05 MSK
:-)
Может, не в тему в данном баге.
Но после регистрации при создании базы программа валится через раз.
Точнее - один раз базу создать получилось - все следующие разы - выкидывает дамп и просит подождать.
Когда создадите новый - включите меня в список подписчиков пожалуйста.
Comment 15 Alexander 2008-02-19 21:16:32 MSK
Вот на это можно твердо полагаться или это непрочная отмазка?

"alexander@book:~$ ieinstall

Программа установки Internet Explorer.
Для использования IE требуется выполнение одного из следующих условий:
  1. У Вас имеется лицензия на Windows версии больше Win95;
  2. Устанавливаемый дистрибутив IE 6 поставляется совместно с приложением,
     для которого Вы устанавливаете IE 6 (Например 1С:Предприятие 8.1)."
Comment 16 Vitaly Lipatov 2008-02-19 21:35:30 MSK
Это непрочная отмазка, впрочем возникающий риск близок к 0.
Мы выпустим новую версию WINE@Etersoft с исправлением проблемы падения
и включим туда команду ieuninstall для удаления установленных компонент IE.
Comment 17 Синицын Иван 2008-02-21 11:11:19 MSK
Все есть DLL-заглушка, при работе которой
появляется окно о регистрации 1С базовой.
Осталось добавить информацию о
регистрации dll, сейчас используется
информация оставшаяся от регистрации WMI.
Comment 18 Синицын Иван 2008-02-22 10:38:42 MSK
Сделал патч. Поместил в наш cvs, но в сборку не включал. Отправил на wine-patches, ждем ответа.
Comment 19 Alexeev Alexey 2008-04-03 18:46:36 MSD
Ошибка воспроизводится на последней сборке wine в SuSe 10.3.
Вывод rpm -qa | grep wine:
wine-20071130-eter10suse
wine-etersoft-sql-1.0.8-eter7suse
libwine-20071130-eter10suse
Comment 20 Vitaly Lipatov 2008-04-03 22:31:40 MSD
Сейчас добавлю в сборку.
Будет в следующей сборке, 04.04.08 вечером.
Comment 21 Vitaly Lipatov 2008-05-27 11:28:52 MSD
DLL добавлена, ошибку закрываю.
Comment 22 Shestakov Dmitriy 2011-01-19 15:46:17 MSK
Надо проверить на текущей ветке testing- есть жалоба от клиента, что не работает.
Comment 23 Boris Savelev 2011-01-20 13:23:43 MSK
не надо убирать СС
Comment 25 Shestakov Dmitriy 2011-01-27 20:56:52 MSK
Дистрибутив 1с лежит здесь /var/ftp/pvt/Windows/Testing/RT/17487.
Comment 26 renatr 2011-02-21 00:27:14 MSK
задача актуальна.
попробовал установить 1Ску в Windows. зарегестрировал (работает). на втором разделе поднял CentOS с wine..попробовал заупстить туже 1Ску - результата аналогичный, нет приветствия для регистрации, сразу выходит окно об отсутствии ключа hasp.
Comment 27 Константин Кондратюк 2011-02-21 11:04:52 MSK
Хм, а причём тут ключ защиты? Бага заведена по проблеме с базовой 1С, которая регистрируется программно, без ключа. Я не вижу связи ситуации "нет прав администратора" с ситуацией "не найден ключ защиты".

Просьба разобраться и завести отдельную багу, если потребуется.
Comment 28 renatr 2011-02-21 19:35:44 MSK
в том то и проблемма, 1Ска с програмной регистрацией (без физического ключа), а ведет себя в линксе как будто она имеет ключ hasp.
Comment 29 Денис Баранов 2011-02-24 21:45:19 MSK
(В ответ на comment #28)
> в том то и проблемма, 1Ска с програмной регистрацией (без физического ключа), а
> ведет себя в линксе как будто она имеет ключ hasp.

Вы могли бы нам прислать дистрибутив 1С с програмной регистрацией (без физического ключа), залить можно на ftp.etersoft.ru логин/пароль etersoft/etersoft
Comment 30 Vitaly Lipatov 2011-02-25 07:00:30 MSK
(В ответ на comment #28)
> в том то и проблемма, 1Ска с програмной регистрацией (без физического ключа), а
> ведет себя в линксе как будто она имеет ключ hasp.
Всё примерно понятно. Но бага должна быть отдельной (потому что речь идёт о совершенно другой реализации программной привязки) и должна блокировать новый релиз.
Comment 31 renatr 2011-02-25 08:12:54 MSK
уже давно отправил дистирибутив.
Дистрибутив 1с лежит здесь /var/ftp/pvt/Windows/Testing/RT/17487.

вопрос: зависит ли работа wine от ОСи, т.е. если попробовать этот дистрибутив не под CentOS, а например в той же ubuntu(Debian) ?!
Comment 32 Денис Баранов 2011-02-25 19:13:09 MSK
(В ответ на comment #31)
> вопрос: зависит ли работа wine от ОСи, т.е. если попробовать этот дистрибутив
> не под CentOS, а например в той же ubuntu(Debian) ?!

Я думаю ничего не изменится.
Завел другой багу по вашей проблеме, просьба теперь общаться там:
http://bugs.etersoft.ru/show_bug.cgi?id=6961