Alguns ports, particularmente os p5-
ports, precisam mudar seus pkg-plist
dependendo de quais opções eles são configurados com (ou versão de perl
, no caso de p5-
ports). Para tornar isso fácil, todas as instâncias pkg-plist
de %%OSREL%%
, %%PERL_VER%%
e %%PERL_VERSION%%
serão substituídas apropriadamente. O valor de %%OSREL%%
é a revisão numérica do sistema operacional (por exemplo,4.9
). %%PERL_VERSION%%
e %%PERL_VER%%
é o número completo da versão perl
(por exemplo,5.8.9
). Muitos outros %%
relacionados aos arquivos de documentação do port são descritos na seção relevante.VARS
%%
Para fazer outras substituições, defina PLIST_SUB
com uma lista de pares
e as instâncias de VAR
=VALOR
%%
serão substituídas por VAR
%%VALOR
no pkg-plist
.
Por exemplo, se um port instalar muitos arquivos em um subdiretório específico da versão, use um placeholder para a versão de modo que o pkg-plist
não precise ser gerado novamente toda vez que o port é atualizado. Por exemplo:
OCTAVE_VERSION= ${PORTREVISION} PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}
no Makefile
e use %%OCTAVE_VERSION%%
onde quer que a versão apareça em pkg-plist
. Quando o port é atualizado, não será necessário editar dezenas (ou em alguns casos, centenas) de linhas no pkg-plist
.
Se os arquivos são instalados condicionalmente pelas opções definidas no port, a maneira usual de lidar com isso é prefixando as linhas pkg-plist
com %%OPT%%
para linhas necessárias quando a opção está ativada ou %%NO_OPT%%
quando a opção está desativada e adicionando OPTIONS_SUB=yes
ao Makefile
. Veja Seção 5.13.3.1, “OPTIONS_SUB
” para mais informações.
Por exemplo, se houver arquivos que são instalados apenas quando a opção X11
está ativada, e o Makefile
tem:
OPTIONS_DEFINE= X11 OPTIONS_SUB= yes
No pkg-plist
, insira %%X11%%
no início das linhas que serão instaladas apenas quando a opção estiver habilitada, assim:
%%X11%%bin/foo-gui
Esta substituição será feita entre os targets pre-install
e do-install
, lendo a partir do PLIST
e escrevendo em TMPPLIST
(padrão:WRKDIR/.PLIST.mktmp
). Então, se o port gera o PLIST
na hora da compilação, faça isso em ou antes do pre-install
. Além disso, se o port precisar editar o arquivo resultante, faça-o em post-install
em um arquivo chamado TMPPLIST
.
Outra maneira de modificar a lista de empacotamento de um port é baseada na configuração das variáveisPLIST_FILES
e PLIST_DIRS
. O valor de cada variável é considerado como uma lista de nomes de caminho para gravar no TMPPLIST
junto com conteúdo do PLIST
. Enquanto os nomes listados no PLIST_FILES
e PLIST_DIRS
estão sujeitos a substituição do %%
conforme descrito acima, é melhor usar o VAR
%%${
diretamente. Exceto por isso, os nomes contidos no VAR
}PLIST_FILES
aparecerão inalterados na lista final de packing, enquanto o @dir
será anexado aos nomes do PLIST_DIRS
. Para fazer efeito, o PLIST_FILES
e o PLIST_DIRS
devem ser definidos antes que o TMPPLIST
seja escrito, isto é, no pre-install
ou antes.
De vez em quando, usar OPTIONS_SUB
não é o suficiente. Nesses casos, adicionar uma
para TAG
PLIST_SUB
dentro do Makefile
com um valor especial @comment
, faz as ferramentas de pacote ignorar a linha. Por exemplo, se alguns arquivos são instalados apenas quando a opção X11
está habilitada e a arquitetura é i386
:
.include <bsd.port.pre.mk> .if ${PORT_OPTIONS:MX11} && ${ARCH} == "i386" PLIST_SUB+= X11I386="" .else PLIST_SUB+= X11I386="@comment " .endif
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.