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