Некоторые порты, в частности, порты 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
или ещё
раньше.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.