Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 6803 - Оптимизировать сборку wine при тестировании патчей   Make a simular bug
Summary: Оптимизировать сборку wine при тестировании патчей
Status: CLOSED FIXED
Alias: None
Product: WINE-tests
Classification: Свободные проекты (Open source projects)
Component: Общее (show other bugs)
Version: не указана
Hardware: PC Linux
: P4 normal
Target Milestone: ---
Assignee: Виталий Перов
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 6264
  Show dependency treegraph
 
In work:
Reported: 2011-01-19 18:53 MSK by Виталий Перов
Modified: 2011-02-25 18:32 MSK (History)
2 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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
Исправил.
Проверить пока не получается.
Багу закрываю (при возникновении ошибки можно переоткрыть)