Некоторые порты, в частности, порты p5-, должны
менять содержимое своих файлов pkg-plist в
зависимости от того, с какими параметрами они были отконфигурированы
(или в зависимости от версии языка perl в случае
портов p5-). Чтобы облегчить этот
процесс, любые вхождения ключевых слов %%OSREL%%,
%%PERL_VER%% и %%PERL_VERSION%%
в файле pkg-plist будут заменяться соответствующими
значениями. Значением %%OSREL%% является номер
версии операционной системы (например, 4.9).
%%PERL_VERSION%% и %%PERL_VER%%
обозначают полный номер версии perl (например,
5.8.9). Некоторые
другие %%VARS%%, имеющие
отношение к файлам документации порта, описаны в соответствующем разделе.
Если вам нужно сделать другие подстановки, вы можете указать в
переменной PLIST_SUB список пар
VAR=VALUE,
и все вхождения %%VAR%%
в файле pkg-plist будут заменяться на значение
VALUE.
Например, если у вас имеется порт, который устанавливает много файлов в каталог, зависящий от версии, вы можете задать нечто типа
OCTAVE_VERSION= 2.0.13
PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}в файле Makefile и использовать
%%OCTAVE_VERSION%% везде, где нужно указать
номер версии в файле pkg-plist. Таким образом,
при обновлении порта вам не нужно будет менять десятки (а в некоторых
случаях и сотни) строк в файле pkg-plist.
Если ваш порт устанавливает файлы в соответствии с установленными
в порту опциями, то обычным способом управления является добавление
префиксов %%TAG%% для строк
pkg-plist с добавлением этого
TAG в переменную PLIST_SUB
внутри Makefile со специальным значением
@comment, которое указывает пакетным инструментам
игнорировать эти строки:
.if defined(WITH_X11) PLIST_SUB+= X11="" .else PLIST_SUB+= X11="@comment " .endif
и в самом pkg-plist:
%%X11%%bin/foo-gui
Эта подстановка (также, как и добавление любых справочных страниц) будет сделана
между выполнением целей pre-install и
do-install, посредством чтения файла
PLIST и записью в файл
TMPPLIST
(по умолчанию это файл
WRKDIR/.PLIST.mktmp). Так
что если ваш порт строит PLIST на лету, делайте
это во время или до выполнения цели
pre-install. Кроме того, если вашему порту
требуется отредактировать получающийся файл, делайте это в цели
post-install изменением файла
TMPPLIST.
Другой способ изменения списка сборки порта основан на
определении значений переменных PLIST_FILES,
PLIST_DIRS и PLIST_DIRSTRY.
Каждое из них рассматривается как перечень путей для записи в
TMPPLIST содержимого
PLIST. Имена, перечисленные
в PLIST_FILES, PLIST_DIRS
и PLIST_DIRSTRY подвергаются подстановке
%%VAR%%, как описано
выше. За исключением этого, имена из PLIST_FILES
будут появляться в окончательном варианте перечня сборки без
изменений, тогда как @dirrm и
@dirrmtry будут соответственно предшествовать
именам из PLIST_DIRS и
PLIST_DIRSTRY. Для того чтобы изменения
вступили в силу, PLIST_FILES,
PLIST_DIRS и PLIST_DIRSTRY
должны задаваться до того, как будет
записываться TMPPLIST, то
есть в цели pre-install или ещё
раньше.
Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.