Chapter 17. Автоматическое создание списка упаковки

Первым делом убедитесь, что ваш порт практически полностью завершен, осталось только создать pkg-plist. Создайте пустой файл pkg-plist.

    # touch pkg-plist
       

Затем создайте новый набор каталогов, в которые может быть установлен ваш порт, и установите все зависимости.

    # mtree -U -f /etc/mtree/BSD.local.dist -d -e -p /var/tmp/port-name
    # make depends PREFIX=/var/tmp/port-name
       

Сохраните структуру каталогов в новом файле.

    # (cd /var/tmp/port-name && find * -type d) > OLD-DIRS
       

Если ваш порт принимает во внимание PREFIX (а он должен это делать), то тогда вы можете установить порт и создать список упаковки.

    # make install PREFIX=/var/tmp/port-name
    # (cd /var/tmp/port-name && find * \! -type d) > pkg-plist
       

Кроме того, в список упаковки вы должны добавить все вновь созданные каталоги.

    # (cd /var/tmp/port-name && find * -type d) | comm -13 OLD-DIRS - | sed -e 's#^#@dirrm #' >> pkg-plist
       

И наконец, вам нужно вручную отшлифовать список упаковки. Я обманул вас, когда сказал, что все происходит автоматически. Страницы Справочника должны быть перечислены в файле Makefile порта в переменных MANn, а не в списке упаковки. Пользовательские конфигурационные файлы должны быть удалены или быть установлены как filename.sample. Файл info/dir включать в список не нужно, но должны быть добавлены соответствующие строчки install-info, так, как это описано в разделе о файлах в формате info. Все библиотеки, устанавливаемые портом, должны быть перечислены так, как это описано в разделе о динамических библиотеках.

По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@freebsd.org>.
По вопросам связанным с этом документацией, пишите по адресу <doc@freebsd.org>.