Патчи для WINE@Etersoft

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

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

О порядке создания изменений для WINE@Etersoft

  1. Нужно обязательно проверять, что проблема существует и на wine pure (запуском через wwo или как-то ещё). Это позволит узнать, проблема вызвана нашими изменениями или действительна для всех.
  2. Всю разработку нужно вести в ветке eterhack, обновляясь перед началом работы. Это позволит не исправлять баги, которые уже давно исправлены или ведут себя по-другому.
  3. После исправления в eterhack патч надо отправить (при необходимости портировав) в сборку стабильного релиза (сейчас eter-2.0.0)

Если исправление не является хаком, или касается какой-то части кода, изменённой нами в eterwine, то отправлять патч надо в eterwine.

Также напоминаю, что хаки, существенно добавляющие код, стоит по возможности реализовывать в виде отдельных функций, чтобы минимизировать изменения оригинального кода. Если требуется исключить часть кода, её следует поместить в конструкцию #if 0 #endif, не удаляя

Важные моменты:

  1. Патчи из eter-2.0.0 пропадут, потому что следующая версия будет основана на eterhack. Поэтому важно отправлять их одновременно и туда и туда.
  2. Патчи из eterwine автоматически копируются в eterhack

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

Перед созданием хака, специфичного для WINE@Etersoft, нужно приложить максимум усилий для по возможности полного исследования проблемы и её источника, создания минимальной программы для воспроизведения проблемы, и конечно для реального исправления, а не очередного костыля в коде.

Если есть уверенность, что исправление (скорее всего) правильное, рекомендуется пропускать его через фильтр wine-patches@winehq.org. Если такой уверенности нет, то подобные хаки или лучше делать специфическими для конкретной программы, или не делать их вообще, т.к. на своем опыте работы с проблемами перерисовки могу сказать, что возможные поломки (вызванные этим хаком) крайне сложно диагностировать/исследовать/исправить.

Общий подход к поиску источника проблемы:

  1. надо постараться создать минимальный код, который воспроизводит данную проблему
  2. проверить на ванильном wine, не вызвана ли данная проблема другими хаками, влияющими на перерисовку окон (а такие имеюся во множестве).
  3. только убедившись в том, что источник проблемы найден и диагностирован начинать искать пути исправления.
  4. обязательно выполнять 'make test' до и после исправления и убедиться, что все тесты по прежнему выполняюся. Если есть хоть один сломанный тест, это значит, что сломана какая-то программа, которая делает тоже самое, что и этот тест.
  5. помнить, что чем больше хаков добавляется, тем больше самых разных и порой причудливых проблем создается для себя и того парня в будущем.
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