6.8. Usando Perl

E se o MASTER_SITES estiver configurado para CPAN, o subdiretório correto é geralmente selecionado automaticamente. Se o subdiretório padrão estiver errado, o CPAN/Module pode ser usado para alterá-lo. O MASTER_SITES também pode ser definido para o antigo MASTER_SITE_PERL_CPAN, então o valor preferido para o MASTER_SITE_SUBDIR é o nome da hierarquia de nível superior. Por exemplo, o valor recomendado para p5-Module-Name é Module. A hierarquia de nível superior pode ser examinada em cpan.org. Isso mantém o port funcionando quando o autor do módulo muda.

A exceção a essa regra é quando o diretório relevante não existe ou o distfile não existe neste diretório. Neste caso, é permitido usar o id do autor como MASTER_SITE_SUBDIR. A macro CPAN: AUTOR pode ser usada, a qual será traduzida para o diretório de autor com hash. Por exemplo,CPAN: AUTOR será convertido para autores/id/A/AU/AUTOR.

Quando um port precisa de suporte a Perl, ele deve definir USES=perl5 com o opcional USE_PERL5 descrito em descrição do USES no perl5.

Tabela 6.6. Variáveis ​​Somente Leitura para Ports Que Usam Perl
Variáveis ​​Somente de LeituraSignifica
PERLO caminho completo do interpretador Perl 5, seja no sistema ou instalado a partir de um port, mas sem o número da versão. Use isso quando o software precisar do caminho para o interpretador Perl. Para substituir as linhas #! em scripts, use USES=shebangfix.
PERL_VERSIONA versão completa do Perl instalada (por exemplo, 5,8,9).
PERL_LEVELA versão do Perl instalada como um inteiro no formato MNNNPP (por exemplo,500809).
PERL_ARCHLocal no qual o Perl armazena as bibliotecas dependentes da arquitetura. O valor padrão aponta para ${ARCH}-freebsd.
PERL_PORTNome do port Perl instalado (por exemplo,perl5).
SITE_PERLNome do diretório para onde vão os pacotes Perl específicos do site. Esse valor é adicionado a PLIST_SUB.

Nota:

Ports de Módulos Perl que não possuem um site oficial devem linkar para cpan.org na linha WWW do pkg-descr. O formato preferido para a URL é http://search.cpan.org/dist/Module-Name/ (incluindo a barra final).

Nota:

Não use ${SITE_PERL} em declarações de dependência. Fazê-lo pressupõe que o perl5.mk foi incluído, o que nem sempre é verdade. Os ports que dependem desse port terão dependências incorretas se os arquivos desse port forem movidos posteriormente em uma atualização. O caminho certo para declarar as dependências do módulo Perl é mostrado no exemplo abaixo.

Exemplo 6.13. Exemplo de Dependência Perl
p5-IO-Tee>=0.64:devel/p5-IO-Tee

Para ports Perl que instalam páginas de manual, as macros PERL5_MAN3 e PERL5_MAN1 podem ser usadas dentro do pkg-plist. Por exemplo,

lib/perl5/5.14/man/man1/event.1.gz
lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz

pode ​​ser substituído por

%%PERL5_MAN1%%/event.1.gz
%%PERL5_MAN3%%/AnyEvent::I3.3.gz

Nota:

Não existem macros PERL5_MANx para as outras seções (sendo x igual a 2 e de 4 até 9) porque estes são instalados nos diretórios comuns.

Exemplo 6.14. Um Port Que Requer Perl Apenas para Compilar

Como o valor padrão para USE_PERL5 é build e run, configure-o para:

USES=		perl5
USE_PERL5=	build

Exemplo 6.15. Um Port Que Também Requer Perl Para Patch

De tempos em tempos, o uso do sed(1) para patches se torna insuficiente. Quando usar perl(1) fica mais facil, para isso utilize:

USES=		perl5
USE_PERL5=	patch build run

Exemplo 6.16. Um Módulo Perl Que Precisa de ExtUtils::MakeMaker para Compilar

A maioria dos módulos Perl vêm com um script configure Makefile.PL. Neste caso, defina:

USES=		perl5
USE_PERL5=	configure

Exemplo 6.17. Um Módulo Perl Que Precisa Módulo::Build para Compilar

Quando um modulo Perl vem com um script configure Build.PL, pode exigir Module:Build, nesse caso, defina

USES=		perl5
USE_PERL5=	modbuild

Se for ao contrário, e exigir Module::Build::Tiny, defina

USES=		perl5
USE_PERL5=	modbuildtiny

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>.