WINE@Etersoft/Разработчику
Содержание
Общие сведения о WINE@Etersoft
Репозитории, пакеты
Исходный код WINE@Etersoft хранится в двух репозиториях: репозитории отркытой части git.office:/projects/wine/eterhack.git и репозитории закрытой части git.office:/projects/wine/wine-etersoft.git. На основе репозитория закрытой части собираются пакеты wine-etersoft-local/network/sql. Все остальные пакеты собираются из открытой части. Собранные из закрытой части пакеты лежат в /var/ftp/pvt/Etersoft/WINE@Etersoft. Пакеты открытой части лежат в /var/ftp/pub/Etersoft/WINE@Etersoft.
Открытая часть основана на свободном проекте Wine. Она должна, так же как и исходный проект, распространяться на условиях свободной лицензии LGPL. Собственно, поэтому она и называется открытой.
Код закрытой части недоступен для пользователей. Различные пакеты закрытой части соответствуют разным вариантам WINE@Etersoft: Local, Network, SQL. Одновременно может быть установлен только один из них. У нас обычно используется наиболее полная версия SQL.
Запуск, wine prefix
Для запуска WINE@Etersoft надо установить один из пакетов закрытой части и как минимум пакет открытой части wine-etersoft. Также необходимо поместить в /etc/wine файл лицензии wine-etersoft.lic (можно взять в /var/ftp/pvt/Etersoft/WINE@Etersoft/license). После этого можно под обычным пользователем (не под root) выполнить команду wine. В результате через некоторое время создастся так называемый wine prefix (по умолчанию это директория ~/.wine) и wine_c - ссылка на диск c: в нём. В wine prefix находятся файлы реестра, а также директории и файлы, необходимые для работы Windows-программ. В файл install.log в wine prefix будет записан лог его создания.
Путь к wine prefix можно указать с помощью переменной окружения WINEPREFIX. Это позволяет одному пользователю иметь несколько различных wine prefix с разными программами и настройками. Wine prefix`ы, созданные сильно различающимися версиями Wine, несовместимы. Если в wine prefix, созданном WINE@Etersoft 1.0.12, запустить ванильный (оригинальный) Wine или WINE@Etersoft 2.0, то они могут изменить его несовместимым с 1.0.12 образом. При этом может измениться поведение запускаемых в этом wine prefix программ, могут появиться сообщения об ошибках при запуске. При тестировании работы программы в конкретной версии Wine надо следить за тем, чтобы оно производилось в созданном этой версией wine prefix.
Файл лицензии не обязательно должен лежать в /etc/wine, он также может находиться в wine prefix. Wine prefix можно создать без файла лицензии, но запустить Windows-программу без лицензии не получится.
При запуске программы под Wine кроме неё самой запускаются также служебные процессы Wine. Эти процессы запускаются только при первом запуске программы под Wine. Следующая программа, если она запущена одновременно с первой или после завершения первой программы прошло не слишком много времени, использует тот же набор служебных процессов. Для каждого wine prefix запускается свой набор служебных процессов. Основной служебный процесс Wine - wineserver. Его можно принудительно завершить, выполнив команду wineserer -k. При этом будут завершены все работающие в данном wine prefix программы. Если мы запускали программы, указывая WINEPREFIX в командной строке:
$ WINEPREFIX=путь wine программато для завершения соответствующего им wineserver, надо также указать WINEPREFIX:
$ WINEPREFIX=путь wineserver -k
Wine можно запустить из репозитория открытой части. Для этого надо склонировать репозиторий и выполнить сборку. После этого можно запустить Wine с помощью скрипта wine из корня репозитория (если мы склонировали репозиторий в ~/Projects/wine, то можно использовать команду ww). При этом будет использоваться закрытая часть, установленная в системе. Скрипт, который мы при этом запускаем - не тот же, что скрипт wine из пакета wine-etersoft. Последний после сборки будет в etersoft/scripts/wine. Поэтому перед запуском Wine из репозитория у нас уже должен быть wine prefix, созданный с помощью Wine, установленного в системе.
Настройки, версия
После создания wine prefix можно настроить Wine с помощью winecfg и regedit. Настройки хранятся в wine prefix. Также в Wine есть панель управления:
$ wine controlЕсли мы используем ww, то эти программы надо запускать так:
$ ww winecfg $ ww regedit $ ww controlЕсли мы используем скрипт из корня репозитория открытой части, то вместо ww в этих командах должен быть этот скрипт.
Скрипт wine из пакета wine-etersoft читает настройки из конфигурационных файлов: /etc/wine/config, ~/.config/wine и config в wine prefix
Версию Wine можно узнать с помощью параметра --version:
$ wine --versionВместо wine может быть ww или скрипт из репозитория. Эта команда среди прочего выведет строку вида:
WINE@Etersoft SQL 1.5.0/2.0.0-eter1.1/9Здесь 1.5.0 - версия открытой части, 1.1 - сборка открытой части, 2.0.0 - версия закрытой части, 9 - сборка закрытой части. Если бы версия открытой части была такая же, что и у закрытой части, то вывелось бы 2.0.0, а не 2.0.0/2.0.0.