NMU
Материал из ALT Linux Wiki
Версия 15:58, 28 июля 2008
Содержание |
NMU
Закачка не сопровождающим (Non-Maintainer Upload) -- действие скорее чрезвычайного, хотя порой делегируемого характера, обычно имеющее место при необходимости безотлагательного решения срочной проблемы и затруднений со временем или возможностью у человека, ведущего пакет.
Помните, что NMU -- это акт помощи; майнтейнер может быть благодарен за неё. С другой стороны, окончательное решение -- за ним, и если возникли разногласия, не следует этого забывать.
Правила обновления пакета без уведомления мантейнера
Обновление пакета без ожидания реакции мантейнера (далее - NMU) выполняется в случае выполнения одного из нижеследующих условий:
- наличие ошибок в пакете, висящих на нем в системе отслеживания ошибок http://bugzilla.altlinux.org
- отсутствие реакции мантейнера на запросы от любого из участников ALT Linux Team, выполненные через список рассылки devel@, в течении двух недель
- наличие проблем с безопасностью в пакете
- не собираемость пакета в изменённой сборочной среде (например при обновлении gcc, glibc и т.д.)
При выполнении NMU должны обязательно быть выполнены следующие условия:
- при увеличении релиза пакета необходимо прибавить к существующему релизу 0.1 (например исходный пакет alt3, результирующий - alt3.1)
- при сборке новой версии пакета необходимо уведомить мантейнера через список рассылки devel@ о факте сборки новой версии, по запросу - предоставить spec и патчи
- в случае наличия репозитария, в котором мантейнер хранит (разрабатывает) пакет - необходимо при наличии доступа внести изменения в используемый репозитарий
Общие соображения
Перед тем, как делать NMU, следует постараться найти контакт с текущим майнтейнером -- обязательно при помощи отчёта об ошибке в bugzilla, а также электронной почты, IM, телефона или прямого обращения по мере возможности и уместности.
Если в течение срока от суток до месяца, в зависимости от срочности проблемы (серьёзная с безопасностью или разваливающая существенную часть репозитория, мешающая, не единицам пакетов и/или пользователей), положительный ответ не поступил или проблема не исправлена -- следует написать в devel@altlinux запрос и готовить обновление, если оно ещё не собрано для своих нужд.
Если возможно, подготовьте, проверьте и предложите в bugzilla патч, исправляющий проблему -- это облегчит работу майнтейнеру. В любом случае настоятельно рекомендуется прислать майнтейнеру изменения в спеке и патчах, поскольку забыв про NMU -- он может забыть и применить изменения к своей сборке, из которой будет исходить при составлении следующего пакета. В результате исправления могут быть откаченными, а то и вовсе потерянными.
Подготовка
В любом случае при исправлении следует учесть, что изменения должны быть минимальными и настолько неинтрузивными, насколько это возможно. Не следует "зачищать" спек, передвигать модули или файлы и вообще чинить то, что не сломано -- этим следует заниматься майнтейнеру или команде сопровождающих.
Не забывайте и Гиппократа: "превыше всего, не навреди". Лучше на пакете будет висеть открытый багрепорт по серьёзной проблеме, чем она будет "разрешена" нерабочим патчем или даже исправлена, но сломано ещё что-нибудь.
Указание Packager
При отсутствии поля Packager в пакете его необходимо добавить, указав в нём реального майнтейнера, чтобы пакет не перешёл к вам (со всеми своими багами).
Версионирование
Зачастую исправление можно сделать в рамках той же базовой версии пакета; при этом стоит добавить дополнительное число, отделённое точкой и начинающееся с "1", к содержимому тега Release, чтобы не пересечься с нормальной нумерацией версий у основного майнтейнера.
Например, пакет, собранный майнтейнером с релизом alt3, автоматически пересобранный QA Team Robot с релизом alt3.1 -- при NMU должен получить релиз alt3.1.1.
Соответствующая строка в changelog пакета должна содержать слово "NMU", а также ссылки на номера багрепортов. Майнтейнеру следует сохранить или импортировать эту запись при дальнейшем сопровождении пакета.