First, make sure the port is almost complete, with only
pkg-plist missing. Running make
makeplist will show an example for
pkg-plist. The output of
makeplist must be double checked for
correctness as it tries to automatically guess a few things, and
can get it wrong.
User configuration files should be installed as
,
as it is described in Section 8.3, “Configuration Files”.
filename.sampleinfo/dir must not be listed and
appropriate install-info lines must be
added as noted in the info
files section. Any libraries installed by the port
must be listed as specified in the shared libraries
section.
Strings to be replaced sometimes need to be very specific to avoid undesired replacements. This is a common problem with shorter values.
To address this problem, for each
,
a
PLACEHOLDER=value
can be set, with the
PLACEHOLDER_regex=regex part
matching regexvalue more
precisely.
Perl ports can install
architecture dependent files in a specific tree. On FreeBSD to
ease porting, this tree is called mach.
For example, a port that installs a file whose path contains
mach could have that part of the path
string replaced with the wrong values. Consider this
Makefile:
PORTNAME= Machine-Build DISTVERSION= 1 CATEGORIES= devel perl5 MASTER_SITES= CPAN PKGNAMEPREFIX= p5- MAINTAINER= perl@FreeBSD.org COMMENT= Building machine USES= perl5 USE_PERL5= configure PLIST_SUB= PERL_ARCH=mach
The files installed by the port are:
/usr/local/bin/machine-build /usr/local/lib/perl5/site_perl/man/man1/machine-build.1.gz /usr/local/lib/perl5/site_perl/man/man3/Machine::Build.3.gz /usr/local/lib/perl5/site_perl/Machine/Build.pm /usr/local/lib/perl5/site_perl/mach/5.20/Machine/Build/Build.so
Running make makeplist wrongly
generates:
bin/%%PERL_ARCH%%ine-build %%PERL5_MAN1%%/%%PERL_ARCH%%ine-build.1.gz %%PERL5_MAN3%%/Machine::Build.3.gz %%SITE_PERL%%/Machine/Build.pm %%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so
Change the PLIST_SUB line from the
Makefile to:
PLIST_SUB= PERL_ARCH=mach \ PERL_ARCH_regex=\bmach\b
Now make makeplist correctly
generates:
bin/machine-build %%PERL5_MAN1%%/machine-build.1.gz %%PERL5_MAN3%%/Machine::Build.3.gz %%SITE_PERL%%/Machine/Build.pm %%SITE_PERL%%/%%PERL_ARCH%%/%%PERL_VER%%/Machine/Build/Build.so
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>.