четверг, 10 декабря 2009 г.

Опять запускаем 1С 7.7 в Linux для Школ

Обзор способа запуска платформы 1С:Предприятие 7.7, предложенного компанией PingWin Software на странице Портала информационно-справочного обслуживания пользователей ПСПО для ОУ РФ (пакета свободного программного обеспечения для общеобразовательных учреждений Российской Федерации).

В представленном ISO-образе от 4.12.2009

содержатся zip-архивы с rpm-пакетами, дистрибутив платформы 1С:Предприятие 7.7, дистрибутив конфигурации 1С:Хронограф, дополнительные файлы для установки, а также инструкция по установке всего этого.

К установке предлагается rpm-пакет wine-1.1.32. Пакет не имеет исходников, но, предположительно,
просто собран из оригинальных исходников winehq, и никаких улучшений для работы 1С не содержит.

Прилагаемый скрипт 2_start.sh выполняет следующее:

1. Скачиваются из сети и устанавливаются шрифты из набора Microsoft CoreFonts, Liberation. (около 5Мб)

2. Запускается установка платформы 1С 7.7 (при этом шрифты на заднем плане некорректны) и конфигурации.

(В нашем случае установка конфигурации не выполнилась, выдавая ошибку на файлах в диске 4 (DISK4). Проверено два раза.)

3. Устанавливаются изменения в реестре (reg-файлы), выполняющие различные замены в реестре (не ясно, зачем в инструкции расписывается дополнительные изменения с помощью winecfg).

4. Устанавливается vc6redistsetup_enu.exe (2Мб) (из которого ставятся библиотеки oleaut32, olepro32, stdole2.tlb)

5. С помощью модифицированного winetricks под названием wine_hack ставятся mfc40 mfc42 msxml3 msxml4 riched20 riched30 (6Мб). Также была команда на установку dcom98, но скачивание и установка его закомментированы в самом скрипте (в этом и суть модификации wine_hack).

6. С помощью cabextract распаковывается поставляемый в ISO-образе файл oleupd.exe (идентичный загружаемому с http://download.microsoft.com/download/win95/update/1.25.96/w95/en-us/oleupd.exe - подробнее на http://support.microsoft.com/kb/139432)

7. Ole32.dll, распакованный из oleupd.exe, патчится прилагаемым бинарным патчем ole_patch. Сжатый патч по размеру больше оригинального файла, видимо, патч меняет весь файл. Получающийся файл имеет в себе польскую, французскую, немецкую локализацию. Копирайтов внутри не содержит. Судя по строке public\sdk\lib\chicago\i386\ole32.dll, представляет из себя файл из технологической сборки Windows района 1996 года. Судя по строке “Wine placeholder DLL”, отчасти dll содержит и мусор.

Необходимость в данном патче не ясна, поскольку 1С работает и просто с ole32.dll из oleupd.exe.
По видимому, упор делается на то, что получающаяся библиотека неизвестного происхождения не может быть идентифицирована с каким-либо официальном дистрибутивом или каким-либо поставщиком.

Для поставляемого в ISO-образе архива oleupd.exe отсутствует лицензия, то есть нет явного разрешения на распространение и модификацию, необходимого для редистрибуции данного программного компонента.

Таким образом, необходимые для 1С 7.7 библиотеки oleaut32, olepro32, stdole2.tlb, ole32 ставятся из компонент vc6redistsetup_enu.exe и oleupd.exe, которые не имеют явных лицензионных ограничений на исполнение.

Отличительной особенностью данного решения является требование доступа к сети Интернет для скачивание различных компонент (около 8Мб) и шрифтов (около 5Мб).

Замеченные проблемы:
- поставляется сетевая версия программы 1С:Хронограф, но совместная различных пользователей невозможна в связи с отсутствием поддержки одновременного доступа к файлам;
- отключена панель окон, и пользоваться несколькими окнами внутри программы очень неудобно;
- если не отключена панель окон, программа падает при открытии любого окна (при установке с нуля проблема замаскирована тем, что в файлах 1c_fix_hronograf.reg и 1c_fix_hronograf_demo.reg поставляются фрагменты реестра, отключающие панель окон по умоланию);
- если выбрать “Файл->Параметры страницы”, программа падает;
- чтобы скрыть проблемы с фокусом окон, в данном решении отключено управление окнами (файлом x11.reg), поэтому окна
программы всегда на переднем плане, что затрудняет переключение в другие программы;
- из Конфигуратора не вызывается Предприятие (по клавише F11).

Примерный перечень исправлений и дополнений, который потребовалось внести компании Etersoft за 5 лет разработки в оригинальный wine, чтобы его можно было использовать для 1С 7.7, опубликован здесь.

Резюме:
1. Данное решение не является разработкой, поскольку используется оригинальный Wine с добавлением скачиваемых из сети библиотек Microsoft.
2. Данное решение не может быть применено для запуска сетевой версии ПО управления школой, так как совместная работа нескольких пользователей с одной базой не поддерживается.
3. Отсутствие сотрудничества с Etersoft, хотя бы в виде заимствования открытых наработок, стало принципиальной технической особенностью данного решения.

2 комментария:

edo комментирует...

возникают встречные вопросы:
- каково происхождение используемых у Вас версий библиотек?
- какие из упомянутых доработок для 1С были возращены в wine?

Виталий Липатов комментирует...

- происхождение используемых библиотек различно, но это не имеет никакого значения, не ищите;
- некоторые доработки возвращены (которые не являются хаками — в winehq высокие требования к качеству кода).