Сейчас, при тестировании патчей, wine собирается несколько раз: после обновления репозитория, после прикладывания патча, после отката патча. Каждый раз используется скрипт etersoft/maintain/build, который собирает wine заново.
И, то что я говорил - возможно, надо удерживать VERSION от изменения, чтобы не изменился config.h, который повлечёт перекомпиляцию большинства кода. Скрипт для сборки вообще лучше не использовать, достаточно просто запускать make, он сам определяет, что нужно пересобрать.
(В ответ на comment #1) > И, то что я говорил - возможно, надо удерживать VERSION от изменения, чтобы не > изменился config.h, который повлечёт перекомпиляцию большинства кода. Думаю, что пока надо идти от простого к сложному. Замена просто вызова make вместо вызова скрипта полной пересборки уже в несколько раз ускоряет сборку. Это даже будет работать с серией патчей: полная пересборка понадобится только для самого первого. А вообще "удерживать VERSION от изменения" довольно сложная задача. Сомневаюсь, что есть простой способ. Предлагаю другой вариант: запускать сборку при каждом обновлении. Таким образом, как только изменяется версия, то репозиторий тут же пересобирается, и его уже когда приходят присланные патчи, они обрабатываются быстро т.к. персборка не требуется. Хотя... наверное не совсем правильно запускать даже "пустую" сборку wine каждые 10 минут. > Скрипт для сборки вообще лучше не использовать, достаточно просто запускать > make, он сам определяет, что нужно пересобрать. Да, именно так и хотел делать
Переделал. Теперь для сборки используется команда 'nice make -j5'. Проверил на локальном репозитории: всё работает. Пустой прогон make по неизменённому репозиторию занимает примерно 30 секунд. Если такая нагрузка на builder каждые 10 минут приемлема, то можно включить пересборку репозитория при каждом запуске скрипта. Это позволит сократить время проверки патчей.
Встретил проблему: запуск 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
Исправил. Проверить пока не получается. Багу закрываю (при возникновении ошибки можно переоткрыть)