Bug 6803

Summary: Оптимизировать сборку wine при тестировании патчей
Product: [Свободные проекты (Open source projects)] WINE-tests Reporter: Виталий Перов <vitperov>
Component: ОбщееAssignee: Виталий Перов <vitperov>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P4 CC: baraka, lav
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 6264    

Description Виталий Перов 2011-01-19 18:53:13 MSK
Сейчас, при тестировании патчей, wine собирается несколько раз: после обновления репозитория, после прикладывания патча, после отката патча.

Каждый раз используется скрипт etersoft/maintain/build, который собирает wine заново.
Comment 1 Vitaly Lipatov 2011-01-19 18:59:57 MSK
И, то что я говорил - возможно, надо удерживать VERSION от изменения, чтобы не изменился config.h, который повлечёт перекомпиляцию большинства кода.

Скрипт для сборки вообще лучше не использовать, достаточно просто запускать make, он сам определяет, что нужно пересобрать.
Comment 2 Виталий Перов 2011-01-24 16:09:25 MSK
(В ответ на comment #1)
> И, то что я говорил - возможно, надо удерживать VERSION от изменения, чтобы не
> изменился config.h, который повлечёт перекомпиляцию большинства кода.
Думаю, что пока надо идти от простого к сложному. Замена просто вызова make вместо вызова скрипта полной пересборки уже в несколько раз ускоряет сборку.
Это даже будет работать с серией патчей: полная пересборка понадобится только для самого первого.

А вообще "удерживать VERSION от изменения" довольно сложная задача. Сомневаюсь, что есть простой способ.
Предлагаю другой вариант: запускать сборку при каждом обновлении. Таким образом, как только изменяется версия, то репозиторий тут же пересобирается, и его уже когда приходят присланные патчи, они обрабатываются быстро т.к. персборка не требуется.
Хотя... наверное не совсем правильно запускать даже "пустую" сборку wine каждые 10 минут.

> Скрипт для сборки вообще лучше не использовать, достаточно просто запускать
> make, он сам определяет, что нужно пересобрать.
Да, именно так и хотел делать
Comment 3 Виталий Перов 2011-01-24 20:40:39 MSK
Переделал. Теперь для сборки используется команда 'nice make -j5'. Проверил на локальном репозитории: всё работает.

Пустой прогон make по неизменённому репозиторию занимает примерно 30 секунд. Если такая нагрузка на builder каждые 10 минут приемлема, то можно включить пересборку репозитория при каждом запуске скрипта. Это позволит сократить время проверки патчей.
Comment 4 Виталий Перов 2011-02-17 17:38:51 MSK
Встретил проблему:
запуск make не всегда может пересобрать репозиторий:

make[1]: Entering directory `/srv/builder-robot/Projects/eterhack-test/dlls/sti'
make[1]: *** No rule to make target `sti_private.h', needed by `sti.o'.  Stop.
make[1]: Leaving directory `/srv/builder-robot/Projects/eterhack-test/dlls/sti'
make: *** [dlls/sti] Error 2
make: *** Waiting for unfinished jobs....

Думаю надо сделать так, чтобы при неудачной сборке с помощью make запускалось ./configure
Comment 5 Виталий Перов 2011-02-25 18:32:06 MSK
Исправил.
Проверить пока не получается.
Багу закрываю (при возникновении ошибки можно переоткрыть)