Руководство по майнтяинам ALT Linux Team
Типы мейнтейнеров[1]
Можно выделить четыре типа мейнтейнеров:
- Технический любер. Обычно программист, впридачу занявшийся поддержкой пакетов. Пишет скрипты на смеси shell, sed, C, awk, perl и lua.
- Перфекционист. Обычно сильнодействущий администратор (реже — ммм… совсем реже), вынужденный заниматься ещё и упаковкой.
- Экстравагантная личность. Стареющий хакер, обнаруживший, что ни Моссад, ни Горсвет не собираются оплачивать достойно его услуги, вследствие чего подавшийся в ALT Linux Team.
- Гуманитарий. Зачастую болеющий за общее дело человек, сперва повёвшийся на провокации вида «это линукс, тебе надо — ты и делай», а затем не сразу понявший, куда именно угодил.
Как определить, к какому типу принадлежит ваш мейнтейнер?
Ситуация 0. Сборка нетривиального пакета
- Технический любер.
- Пишет набор скриптов для импорта из репозитория, где почти всё уже сделано.
- Перфекционист.
- Устраивает джихад с применением %def_with{,out} на несколько экранов и без применения шаблонов в секции %files. Активно пользуется %define _unpackaged_files_terminate_build 1.
- Экстравагантная личность.
- Обнаруживает, что собравшийся не так, как было задумано, пакет в общем-то тоже неплохо работает. Вздыхает, но успокаивается.
- Гуманитарий.
- Втихомолку правит /etc/sudoers из %post.
Ситуация 1. Кривой апстрим, не умеющий линковать своё поделие
- Технический любер.
- Пишет набор скриптов для мониторинга бинарных зависимостей пакетов и отправления предупреждений почтой, как вариант — для автоматического исправления пакетов. Помещает под управление cron. В результате апстрим остаётся кривым, поскольку уж это-то сообщение там точно не прочитают.
- Перфекционист.
- Делает однострочный патч, после чего долго и тщательно проталкивает его в апстрим.
- Экстравагантная личность.
$ r=obstream; rm -rf ~/git/$r && ssh git.alt rm-db $r && echo "$r в топку" | mutt -s "$r is orphaned" devel
- Гуманитарий.
- Долго возмущается дискриминацией, втихую добавляет -Wl,--no-as-needed и с облегчением заливает src.rpm.
Ситуация 2. Потеря репозитория
- Технический любер.
- Перерабатывает средства импорта из svn и восстанавливает репозиторий заново, по ходу дела консультируясь со своей памятью.
- Перфекционист.
- Не найдя резервную копию, устраивает опрос мнений и не удовлетворившись даже наиболее изощрёнными вариантами — применяет самый простой и уж теперь, казалось бы, очевидный.
- Экстравагантная личность.
- Окончательно решает наконец заняться разведением сортовых кабачков.
- Гуманитарий.
- Берёт последний src.rpm из сизифа и не горюет.
Ситуация 3. Низкая производительность git.alt
- Технический любер.
- Затачивает gitweb, докручивает кэширование, применяет ряд других оптимизаций. Примерно на неделю этого хватает.
- Перфекционист.
- Пытает генерального директора, в очередной раз доказывая вообще-то важность сборочной инфраструктуры. Своего раньше или позже добивается.
- Экстравагантная личность.
- Занимается чем-то ещё, пока байтики неспешно путешествуют между дальними дисками и локальным.
- Гуманитарий.
- Замечает только тормоза при открывании некоторых ссылок из devel@.
Ситуация 4. «Глупые» багрепорты пользователей
- Технический любер.
- Пишет скрипт для автоматического анализа багов байесовым фильтром и автозакрытия не перебравшихся через порог осмысленности. Через некоторое время замечает, что фильтр стоило на чём-то подрессировать.
- Перфекционист.
- Игнорирует багрепорты, пока пристающий не предоставит веские доказательства своей квалификации, или по причине перегруженности ими.
- Экстравагантная личность.
- Может угробить больше времени на повышение квалификации повесившего баг, чем на собственно исправление.
- Гуманитарий.
- Пытается помочь; порой это получается.
Ситуация 5. Обновление версии апстрима
- Технический любер.
- Припоминает, не добавили ли чего незнакомого.
- Перфекционист.
- Изучает исходные тексты новой версии и выбирает из них только то, что ему нравится.
- Экстравагантная личность.
- При хорошем настроении обновляет пакет. При плохом — может и не обновлять (всё равно ведь что-то сломают и потом опять обновлять).
- Гуманитарий.
- По возможности обновляет пакет.
PS: все совпадения случайны, а их характер — вовсе не 1:1. :)