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