12.1. Добавление нового порта | |
12.1.1. | Как добавить новый порт? |
Для начала прочитайте раздел, посвященный репозиторному копированию. Самым простым будет использовать скрипт
| |
12.1.2. | Что еще следует сделать, добавляя новый порт? |
Проверьте его. Желательно убедиться в том, что порт и соответствующий пакет корректно собираются. Рекомендуемая последовательность действий такова: # make install
# make package
# make deinstall
# pkg_add
# make deinstall
# make reinstall
# make package
Более подробные инструкции можно найти в Руководстве FreeBSD по созданию портов. Пользуйтесь portlint(1) для проверки корректности порта. Не обязательно добиваться полного отсутствия предупреждений, но по крайней мере исправьте простейшие из них. Если новый порт прислал человек, еще не упомянутый в Списке прочих участников, добавьте его имя туда. Закройте PR, если новый порт пришел в виде PR. Для этого
воспользуйтесь командой
| |
12.2. Удаление порта | |
| |
12.2.1. | Как удалить существующий порт? |
Для начала прочтите раздел о репозиторном копировании. Прежде чем удалить порт, вы должны проверить, что удаление не затронет другие порты коллекции.
Вы можете воспользоваться скриптом | |
12.3. Репозиторное копирование | |
12.3.1. | Когда требуется репозиторное копирование? |
При необходимости добавления порта, имеющего отношение
к другому, уже находящемуся в репозитории в другом каталоге,
необходимо произвести репозиторное копирование. В данном
случае имеющий отношение означает
другую версию или небольшую модификацию. Примерами могут
служить различные версии
Другим примером является необходимость перенести порт из одного подкаталога в другой, или переименовать каталог, когда автор меняет имя своей программы. | |
12.3.2. | Когда репозиторное копирование не требуется? |
Если нет истории, которую стоило бы сохранять. Для порта,
добавленного в неправильную категорию и сразу же перемещенного,
будет вполне достаточно выполнить команды
| |
12.3.3. | Что нужно делать? |
Создайте в GNATS PR, описав
причины репозиторного копирования. Поменяйте ответственного
на
| |
12.4. Заморозка портов | |
12.4.1. | Что такое «заморозка портов»? |
Перед выпуском релиза для сохранения целостности различных частей системы требуется на некоторое время ограничить коммиты в дерево портов. Этот процесс и называется «заморозкой портов». За дополнительной информацией по поводу правил поведения во время заморозки обращайтесь к документу Задачи контроля качества для Группы управления портами. | |
12.4.2. | Сколько длится заморозка? |
Обычно неделю или две. | |
12.4.3. | Что это значит для меня? |
Во время заморозки вы не можете производить какие-либо коммиты в дерево портов без прямого разрешения группы порт-менеджеров. «Прямое разрешение» здесь означает, что вы послали свой патч группе порт-менеджеров и получили ответ «Вперед, производите коммит». В период заморозки не все изменения могут быть внесены в дерево. За подробностями обращайтесь к документу Задачи контроля качества для Группы управления портами. Отметим, что у вас нет подразумеваемого разрешения исправлять неработающий порт в период заморозки только потому, что порт не работает. | |
12.4.4. | Откуда я узнаю о начале периода заморозки? |
Обычно за 2-3 недели до начала периода заморозки кто-либо из группы порт-менеджеров посылает письмо с предупреждением об этом в Список рассылки, посвящённый Портам FreeBSD и Список рассылки коммиттеров FreeBSD. Точное время начала периода заморозки определяется за несколько дней до собственно релиза, поскольку фиксируемое дерево портов должно быть синхронизировано с релизом, а точная дата выпуска определяется по ходу дела. Разумеется, после начала периода заморозки в Список рассылки коммиттеров FreeBSD будет отправлено еще одно предупреждение. | |
12.4.5. | Как узнать, когда период заморозки портов закончился? |
Завершение периода заморозки анонсируется группой порт-менеджеров посылкой письма в Список рассылки, посвящённый Портам FreeBSD и Список рассылки коммиттеров FreeBSD через несколько часов после релиза. Отметим, что факт выпуска релиза не означает автоматического завершения заморозки. Нам потребуется убедиться, что в последние минуты не произошло ничего непредвиденного, что заставило бы перевыпускать релиз. | |
12.5. Создание новой категории | |
12.5.1. | Какова процедура создания новой категории портов? |
Разработчик, предлагающий новую категорию, должен подготовить детальное обоснование ее создания, в том числе описание причин, по которым текущий список категорий недостаточен, а также список портов, переносимых в новую категорию. Прежде чем отправлять запрос, помните, что процесс потребует приложения немалых сил от многих участников, затронет всякого, кто поддерживает актуальное состояние дерева портов целиком, и, наконец, что подобные предложения неизбежно вызовут споры и расхождения во мнениях. Обратитесь к разделу
Proposing a New Category Руководства по созданию портов.
После передачи PR группе Группа Менеджеров Дерева Портов FreeBSD
| |
12.5.2. | Как устроен процесс? |
Процедура является надстройкой над уже описанной процедурой репозиторного копирования отдельного порта.
Специально обновлять веб-страницу портов
при добавлении новой категории не нужно: изменение файла
| |
12.6. Прочие вопросы | |
12.6.1. | Как мне проверить, что мой порт корректно собирается? |
В первую очередь проверьте свой порт по адресу http://pointyhat.FreeBSD.org/errorlogs/. Там вы найдете журналы сборки пакетов на всех поддерживаемых архитектурах для большинства последних ветвей разработки. Впрочем, отсутствие вашего порта среди журналов с ошибками
еще не значит, что он успешно собирается (например, может не
собираться один из зависимых портов). Необходимую информацию вы
можете найти на машине errors журналы ошибок последней сборки версии <major_version> на платформе <arch>
logs все журналы последней сборки версии <major_version> на платформе <arch>
packages свежесобранные пакеты для версии <major_version> на платформе <arch>
bak/errors журналы ошибок последней полной сборки версии <major_version> на платформе <arch>
bak/logs все журналы последней полной сборки версии <major_version> на платформе <arch>
bak/packages пакеты последней полной сборки версии <major_version> на платформе <arch> Общее правило: пакет, присутствующий в каталоге
| |
12.6.2. | Я добавил новый порт. Нужно ли добавлять его в файл
|
Нет. | |
12.6.3. | Какие еще файлы я не должен трогать? |
Любой файл в на верхнем уровне | |
12.6.4. | Каков корректный порядок обновления порта, когда его исходный архив поменялся, но не сменил имя? |
При возникновении ситуации, когда автор обновляет дистрибутивный архив без изменения идентификатора версии, сообщение о коммите должно содержать аннотацию различий между предыдущим и обновленным состоянием архива, чтобы можно было убедиться, что архив не испорчен и не подменен злоумышленником. Если текущая версия порта существовала достаточное время, копии архива будут доступны на ftp-серверах проекта; в противном случае следует связаться с автором или мейнтейнером порта для выяснения причин замены архива. |
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.