Краткое руководство для начинающих мейнтейнеров
Материал из Mandriva Russian Community Wiki
Содержание |
Краткое руководство для начинающих мейнтейнеров
Итак, вы решили стать мейнтейнером Mandriva, выполнили шаги, описанные на странице en:Development/Resources/Account#Applying, нашли ментора, убедились в работоспособности учётной записи @mandriva.org, подписались на список рассылки мейнтейнеров, обновили регистрационную информацию в учётных записях для my.mandriva.com и bugzilla, и жаждете начать работы. Сначала необходимо понять, как работает сборочная система Mandriva, и какие требования предъявляются ко всем мейнтейнерам.
Политики, которым должны следовать мейнтейнеры, начиная с релиза версии 2011, можно найти на странице политика сборки пакетов. Прочтите внимательно данную политику, чтобы понять, какая роль отведена мейнтейнеру, и какие задачи он должен выполнять.
Если вы согласны принять условия политики и хотите начать сопровождать пакеты в репозитории Mandriva, прочтите это краткое руководство.
Как собирать и работать с пакетами
Основные шаги описаны на странице Development/Packaging/RepositorySystem/Quickstart. Поэкспериментируйте с утилитами repsys и mdvsys, и приложениями bm и rpmbuild. Попробоуйте извлечь пакет из репозитория и собрать его локально.
Те, кто не знаком с RPM, необходимо прочитать en:Development/Howto/RPM.
Посмотрите, как располагаются файлы пакеты внутри репозитория, как repsys/mdvsys извлекает их. Заметьте, что в репозитории хранятся только файлы SPECS/ и SOURCES/. Бинарные rpm-файлы и rpm с исходниками (srpm) создаются сборочной системой автоматически, поэтому нет необходимости включать бинарные файлы в пакет.
Внимательно прочтите политики Mandriva. В обязательно порядке необходимо ознакомиться со страницами Post-Release Support, Bug policy, and all of the Packaging policies.
Ознакомьтесь самостоятельно с приложением rpmlint. Это поможет в предотвратить ситуации, когда сборочная система отклоняет ваши пакеты, а также позволит стандартизовать спек-файлы и файлы распространённых форматов, использующихся в пакетах Mandriva.
В случае затруднений или сомнений, взгляните на другие пакеты. Большинство проблем можно решить, подсмотрев решения у других мейнтейнеров.
Данный список ссылок полезно использовать в качестве закладок, поскольку в будущем вы часто будете обращаться к этим страницам:
- kenobi.mandriva.com - состояние загруженных пакетов.
- maint.mandriva.com - база данных мейнтейнеров.
- svn.mandriva.com - веб-интерфейс к svn.
- qa.mandriva.com - Bugzilla.
И конечно же, в случае возникновения каких-либо вопросов, не стесняйтесь спрашивать ментора. Для этого он и существует!
Краткое руководство по repsys
Краткое руководство по repsys для мейнтейнеров:
- repsys co <название_пакета>
- Извлечь пакет из репозитория
- cd <название_пакета>
- Все пакеты, которые относятся к сборке пакета должны находиться в этом каталоге. Посмотрите, какие каталоги лежат внутри. Спек-файлы должны находиться в каталоге SPECS, а все исходники - в каталоге SOURCES. Каталог BUILD используется для сборки пакета; BUILDROOT - временный каталог, в котором происходит установка пакета перед тем, как он будет преобразован в rpm-файлы.
- Соберите пакет с помощью команды bm. Посмотрите, что делают команды bm -l, bm -pl и bm -ls.
- Запустите rpmlint для вашего спек-файла и внимательно посмотрите на все ошибки и предупреждения, которые он выдаст.
- Установите и проверьте свой пакет на локальной машине. Таким образом вы сможете наиболее быстро устранить возможные поломки в пакете.
- urpmi --test packages/to/install позволит быстро проверить наличие ошибок без необходимости реальной установки.
- Если всё готово, зафиксируйте изменения в репозитории (commit) svn commit. Убедитесь, что вы увеличили число %mkrel, если это новый релиз. При сборке обновления для стабильного дистрибутива используйте %subrel (подробнее см. en:/Policies/Support).
- Чтобы быстро синхронизировать изменения с репозиторием, воспользуйтесь командой repsys sync. Эту команду также можно использовать для автоматической загрузки отсутствующих файлов и обновлений пакетов до последних версий.
- После выполнения всех проверок, фиксаций изменений и прочих процедур отправьте пакет в сборочную систему с помощью команды repsys submit. Для первых ваших релизов ваш ментор запустит repsys submit за вас и проверит ваши пакеты. Когда навык сбоки пакетов улучшится, вам могут быть предоставлены права самостоятельно отправлять пакеты в сборочную систему.
Краткое руководство по mdvsys
(TODO)
Распространённые проблемы и их решения
- Многие проблемы и способы решения уже описаны на этой странице. В случае проблем с компиляцией пакетов см.:
- Многие проблемы, связанные со сборкой, описаны здесь:
- Подробную информацию о том, как устроена сборочная система, можно найти:
- Если вы хотите автоматически пересобирать пакеты в локальном окружении chroot, похоже на то, что используется сборочной системой, установите пакет iurt. Пакет может требовать локального зеркала репозиториев Mandriva или быстрой системы для загрузки и установки пакетов.
- (TODO: write some tutorial on how to use iurt)
- Чтобы протестировать пакеты на других системах и версиях дистрибутива, можно создать chroot с помощью urpmi:
- Если вы хотите создать свой собственный репозиторий Mandriva:
- Чтобы получить статус официального зеркала Mandriva:
- Документация по различных техническим темам, относящимся к сборке:
- If you want to work with the project documentation, you could check the excellent documentation about it here:
- When in doubt about what Group to use for the package, you can check the full list here:
- A collection of pages of interest to all the maintainers is here:

