Developing

Материал из Русский WINE
Перейти к: навигация, поиск

Особенности разработки в фирме Etersoft продукта WINE@Etersoft

1.WINE@Etersoft представляет собой видоизменённую и доработанную версию Open Source проекта Wine (www.winehq.org)

Состоит из двух частей:

  • Закрытая - содержит интеллектуальную собственность компании Etersoft, с ключевыми изменениями, обеспечивающие работоспособность поддерживаемых приложений. Так же в ней содержатся наработки, которые не относятся напрямую к WinAPI и проекту Wine, но нужны для полноты продукта.
  • Открытая - это код Wine, содержащий наши исправления ошибок, наши реализации функций и прочие доработки. В идеале весь код открытой части должен быть принят в основное древо проекта Wine. Это наш вклад в развитие в проект Wine.

2. Разработка открытой части выглядит примерно так:

  • Выбирается, либо назначается ошибка, зарегистрированная в базе данных ошибок bugs.etersoft.ru.
  • Разработчик изучает ошибку, исследует причины, приводящие к возникновению этой проблемы.
  • Определяются механизмы, модули, участки кода WinAPI (реализованные в Wine), в которых прослеживается ошибка.
  • Пишутся кросс-тесты демонстрирующие наличие этой ошибки в Wine и отсутствие её в Windows.
  • Затем происходит исправление ошибки. Возможны два варианта:
    • В коде Wine найдена ошибка и программист пишет патч, исправляющий её. Патч добавляет в папку Check нашего cvs. Со временем исполнитель добивается, чтобы и тест и патч были приняты в основное дерево Wine.
    • В коде Wine найдено место, в котором возникает ошибка, но не ясны причины, приводящие к возникновению её. Если есть возможность исправить эту ошибку и при этом не нарушается функционирование других частей Wine, то программист создаёт патч и добавляет его в папку hack. Это говорит о том, что пока не ясно как верно с точки зрения АРХИТЕКТУРЫ проекта Wine исправлять данную ошибку, но поскольку исправление обеспечивает нужную функциональность требуемого приложения, то для удобства клиентов, возможно использование этого решения в качестве ВРЕМЕННОГО. Естественно со временем данная ошибка должна быть исправлена более корректным способом.
  • После добавления патча ошибка закрывается и сообщается тестировщику о необходимости проверить и подтвердить исправление ошибки.

3. Взгляд на использование reverse engineering (обратной разработки)

При работе над проектом Wine запрещено использовать знания и наработки, полученные путём изучения исходного кода Windows и дизассемблированием модулей. Отсылая патч в рассылку wine-patches@winehq.org, разработчик подтверждает, что знаком и согласен с этими требованиями. Вместо обратной разработки используется метод написания кросс-тестов (тестов исполняемых под Wine и под Windows), которым получают необходимые знания о работе функций. Также эти тесты являются юнит-тестами проекта Wine, так как позволяют проводить диагностику работоспособности Wine после добавления новых участков кода.

Wine
Search.png
Программы работающие в Wine • Скачать • Школьный Wine
WINE@Etersoft Общие сведения • Установка на 64-битные ОС • Особенности разработки • Патчи для WINE@Etersoft • Административная установка • Дополнительные компоненты • Как получить WINE@Etersoft? • Лицензия на документацию • Глоссарий • Использование аппаратных ключей защиты в Linux • Дополнительная информация • [ Совместная работа | по CIFS • по NFS ] • Изменение системных ограничений • Регистрация продукта • Пошаговая инструкция по установке rpm-пакетов • Обращение в службу поддержки • Терминальные решения • Установка WINE@Etersoft • Подписка на обновления • Настройка WINE@Etersoft • Разработчику • Enterprise • Что такое WINE@Etersoft SQL • Возможности • Среда для запуска приложений Windows • Использование WINE@Etersoft • FAQ по использованию WINE@Etersoft • Основные команды • WINE@Etersoft/Local • Что такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+ • Запуск Консультант+ (сетевой версии) • ГарантF1 • Инфо-Бухгалтер 8.x • Налогоплательщик ЮЛ
1C Отличия от обычного Wine • Местоположение базы 1С • 1C: Предприятие 7.7 в WINE • Настройка 1С 7.7 для работы с SQL-сервером • Установка 1С: Предприятия 8.1 • Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование Winecfg • Использование Regedit • Публичный префикс • Несколько версий • Ключи regedit
Легальность DCOM95 • IE5 • DCOM • MSXML
Утилиты для работы с Wine Winetricks • WineTools • Q4Wine • PlayOnLinux • IEs4Linux • Wine-Doors • Swine • Wine Launcher • Lutris
Разработчику
Компоненты Windows • Запрет отключения защиты программы • Управление обработчиком исключений • StraceNT • Измерение скорости функций WinAPI • GL • Устройство чтения смарт-карт • Профилирование • Тесты для проверки интерфейсов • Написание тестов в системе Wine • Аутентификация в домене AD • Репозитории • Применение Git-патчей
Помощь Создание патчей • Написание приложения под wine • Отправка патчей • Сборка eterhack • Сборка wine-public
Отладка Способы отладки • WINEDEBUG • Winedbg
Разработка WINE
1C • ODBC • WinHelp • Компас • Методика • Тестирование доступа • Цвета • Файловый диалог • Тестирование • Литература • Изображения • Win32 • Шрифты • Файловые блокировки • Ссылки • Ключи защиты • RPM • WineGecko • ListView • Упаковка Wine
Производителю
Родственные проекты
LUK • ReactOS • ARWINSS • CrossOver • KernelEx
Прочее
PageSetupDlg • FreeBSD • Wwr