Некоторые порты, в частности, порты 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>.