Licenses vary, and some of them place restrictions on how the application can be packaged, whether it can be sold for profit, and so on.
It is your responsibility as a porter to read the licensing terms of the software and make sure that the FreeBSD project will not be held accountable for violating them by redistributing the source or compiled binaries either via FTP/HTTP or CD-ROM. If in doubt, please contact the FreeBSD ports mailing list.
In situations like this, the variables described in the following sections can be set.
This variable indicates that we may not generate a binary package of the application. For instance, the license may disallow binary redistribution, or it may prohibit distribution of packages created from patched sources.
However, the port's DISTFILES
may be
freely mirrored on FTP/HTTP. They may also be distributed
on a CD-ROM (or similar media) unless
NO_CDROM
is set as well.
NO_PACKAGE
should also be used if the
binary package is not generally useful, and the application
should always be compiled from the source code. For
example, if the application has configuration information
that is site specific hard coded in to it at compile time,
set NO_PACKAGE
.
NO_PACKAGE
should be set to a string
describing the reason why the package should not be
generated.
This variable alone indicates that, although we are
allowed to generate binary packages, we may put neither
those packages nor the port's DISTFILES
onto a CD-ROM (or similar media) for resale. However, the
binary packages and the port's DISTFILES
will still be available via FTP/HTTP.
If this variable is set along with
NO_PACKAGE
, then only the port's
DISTFILES
will be available, and only via
FTP/HTTP.
NO_CDROM
should be set to a string
describing the reason why the port cannot be redistributed
on CD-ROM. For instance, this should be used if the port's
license is for “non-commercial” use
only.
Files defined in the NOFETCHFILES
variable are not fetchable from any of the
MASTER_SITES
. An example of such a file
is when the file is supplied on CD-ROM by the vendor.
Tools which check for the availability of these files
on the MASTER_SITES
should ignore these
files and not report about them.
Set this variable alone if the application's license
permits neither mirroring the application's
DISTFILES
nor distributing the binary
package in any way.
NO_CDROM
or
NO_PACKAGE
should not be set along with
RESTRICTED
since the latter variable
implies the former ones.
RESTRICTED
should be set to a string
describing the reason why the port cannot be redistributed.
Typically, this indicates that the port contains proprietary
software and that the user will need to manually download
the DISTFILES
, possibly after registering
for the software or agreeing to accept the terms of an
EULA.
When RESTRICTED
or
NO_CDROM
is set, this variable defaults
to ${DISTFILES} ${PATCHFILES}
, otherwise
it is empty. If only some of the distribution files are
restricted, then set this variable to list them.
Note that the port committer should add an entry to
/usr/ports/LEGAL
for every listed
distribution file, describing exactly what the restriction
entails.
The preferred way to state "the distfiles for this port must be fetched manually" is as follows:
some-website
to accept their license and download ${DISTFILES} into ${DISTDIR}
.endifThis both informs the user, and sets the proper metadata on the user's machine for use by automated programs.
Note that this stanza must be preceded by an inclusion
of bsd.port.pre.mk
.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/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>.