FreeBSD Monitor
Ports Changes
AUTHOR: [email protected]

New USE_QT4 component has been introduced to reduce buildtime
dependencies for Qt 4 ports that use localization support. Instead
of USE_QT4=linguist you should now use USE_QT4=linguisttools_build.
Conversion of existing ports may require USE_QT4 adjustment for
missing components.
Ports Changes
AFFECTS: users of lang/perl5.*
AUTHOR: [email protected]

Perl now links with all .so it builds. The stage-qa checks have
been extended to check that is in fact linked with .so in
SITE_ARCH and errors out if none of the .so build by a port are linked with
it. It also checks that the rpath and runpath elf attributes are present.
Ports Changes
AUTHOR: [email protected]

The devel/gettext port has been split up in devel/gettext-runtime which
contains runtime libraries such as libintl, and devel/gettext-tools which
contains build tools such as msgfmt. You can use USES=gettext-runtime to
set a LIB/BUILD/RUN_DEPENDS on devel/gettext-runtime and USES=gettext-tools
to set a BUILD/RUN_DEPENDS on devel/gettext-tools.

USES=gettext is now the same as "USES=gettext-runtime gettext-tools",
meaning a LIB_DEPENDS on devel/gettext-runtime and a BUILD_DEPENDS on
Ports Changes
AUTHOR: [email protected]

The way Perl modules are installed has changed. Before, we had

site_perl : lib/perl5/site_perl/5.18
site_perl/perl_arch : lib/perl5/site_perl/5.18/mach
perl_man3 : lib/perl5/5.18/man/man3

Now we have :

site_perl : lib/perl5/site_perl
site_arch : lib/perl5/site_perl/mach/5.18
perl_man3 : lib/perl5/site_perl/man/man3

Modules without any .so will be installed at the same place regardless of the
Perl version, minimizing the upgrade when the major Perl version is changed.
It uses a version dependent directory for modules with compiled bits.

As PERL_ARCH is no longer needed in plists, it has been removed from

The USE_PERL5=fixpacklist keyword is removed, the .packlist file is now
always removed, as is perllocal.pod.

The old site_perl and site_perl/arch directories have been kept in the
default Perl @INC for all Perl ports, and will be phased out as these old
Perl versions expire.
Ports Changes
AUTHOR: [email protected]

Dependencies on the PostgreSQL ports have been migrated
to USES. Instead of USE_PGSQL, please use USES=pgsql instead.

USE_PGSQL=yes becomes USES=pgsql
WANT_PGSQL_VER=91+ becomes USES=pgsql:9.1+
USE_PGSQL=server becomes USES=pgsql and WANT_PGSQL=server
Ports Changes
AUTHOR: [email protected]

To ease future work, a new SITE_ARCH variable and PLIST_SUB replacement
containing SITE_PERL/PERL_ARCH has been added.
Ports Changes
AUTHOR: [email protected]

SSP is now default. This can be disabled with WITHOUT_SSP.
SSP_CFLAGS defaults to -fstack-protector.
SSP will be used on all amd64 releases. It will only be used on i386
releases over 10.0.
Ports Changes
AUTHOR: [email protected]

The @cwd [path] construct in plist files is deprecated. Instead of adding
those lines to the plist:

@cwd /
@cwd /some
@exec mkdir -p %D/nested/dir

add this:

@exec mkdir -p /some/nested/dir
Ports Changes
AUTHOR: [email protected]

New BUNDLE_LIBS knobs to allow a port to tell pkg(8) not to compute provided
libraries, this is to be used when a port bundles libraries it doesn't want
to expose to other ports.
Ports Changes
AUTHOR: [email protected]

Support for autoconf213, autoheader213, aclocal14 and automake14 has been
removed from USE_AUTOTOOLS.
Ports Changes
AUTHOR: [email protected]

Building ports in a chroot or jail have always required a particular
environment be setup. This was not clear though and the ports framework
did not enforce it. These requirements are:
1. Either a SRC_BASE/sys/sys/param.h, or /usr/include/sys/param.h be
present with the __FreeBSD_version_ number of the target system,
or OSVERSION be set in the environment. Lack of these would fallback
on kern.osreldate before, which is no longer the case.
2. UNAME_r,UNAME_v,UNAME_s all must be set for the target system.

Not having these values in sync will now cause the build to error until it is

Setting these in the environment can be done via your own wrapper scripts,
or /etc/login.conf (along with cap_mkdb /etc/login.conf) or
via /etc/make.conf using appropriate values. Note that OSVERSION is redundant
if a proper param.h is in the environment:

OSVERSION+= 1100036
Ports Changes
AUTHOR: [email protected]

pkg(8) now handles the directories under PREFIX automatically,
and will automatically remove them as needed.
A new @dir keyword has been introduced to handle directories specially:
- directories with special owner, group, or permissions (access mode)
- empty directories
- directories out of PREFIX
As a consequence @dirrm and @dirrmtry are now considered deprecated.

Credentials can now be passed in arguments to keywords
(the empty keyword means "regular file"):
@(user,group,mode) file1
@dir(user,group,mode) directory_with_special_owner_or_mode

PLIST_DIRSTRY is now considered deprecated, use PLIST_DIRS instead.
Ports Changes
AUTHOR: [email protected]

Support for USE_AUTOTOOLS=libtool, USE_GNOME=ltasneededhack,
USE_GNOME=lthack and USE_GNOME=ltverhack has been removed.
Ports should use USES=libtool instead.

Support for USE_AUTOTOOLS=libltdl has been removed.
Ports should use${PORTSDIR}/devel/libltdl
Ports Changes
AUTHOR: [email protected]

The installation of *.la files without some form of USES=libtool in the
port Makefile will now result in a stage-qa error.
Previously this would only cause a warning.

The :keepla argument to USES=libtool is no longer special. It is now
only needed if a port uses *.la files at run time and no longer to fix
link problems in other ports.
Ports Changes
AUTHOR: [email protected]

Support for pkg_install has been removed.
Note that WITH_PKGNG is now called WITH_PKG (still used to define 'devel')
WITH_PKGNG remains for compatibility
@stopdaemon support has gone, pkg(8) has a generic mechanism to
provide the same function, see HANDLE_RC_SCRIPTS in pkg.conf(5).
Ports Changes
AUTHOR: [email protected]

Support for NO_STAGE has been removed.
Ports Changes
AUTHOR: [email protected]

Support for NOPORTDATA has been removed.
Ports Changes
AUTHOR: [email protected]

The Python language bits of the ports framework have been converted
to USES. Instead of USE_PYTHON, please use USES=python instead.

USE_PYTHON=yes becomes USES=python
USE_PYTHON=2.7+ becomes USES=python:2.7+
USE_PYTHON_BUILD=3.3 becomes USES=python:3.3,build

Additionally, several Python specific features have been converted
to USES-inspired USE_PYTHON=<featureA>,<featureB>.


Please read the header comments of Uses/ for more details
about the new and changed bits and pieces. You will find a list of
deprecated variables and how to replace them in your own ports at
the end of the header comment.
Ports Changes
AUTHOR: [email protected]

LIB_DEPENDS only supports one form: lib*.so
Ports Changes
AUTHOR: [email protected]

Support for installations based on the easy_install target has
been removed from the Ports framework for Python software. The
PYEASYINSTALL_* knobs and support for USE_PYDISTUTILS=easy_install have
been removed.
Ports Changes
AUTHOR: [email protected]

IGNOREFILES is not supported anymore, it was an unsafe feature allowing to
use unchecked files downloaded from untrusted places to be used in the ports
Ports Changes
AUTHOR: [email protected]

New PYTHON_CONCURRENT_INSTALL knob to support the parallel installation
of ports for different python versions.

If set to yes, the knob indicates that the port can be installed for
different python versions at the same time. The port will use a unique
prefix for certain directories using USES=uniquefiles:dirs (see the Uses for details about the directories). Binaries
receive an additional suffix, based on ${PYTHON_VER}.

The values for the uniquefiles USES are set as follows:


If the port is installed for the current default python version, scripts and
binaries in


are linked from the prefixed version to the prefix-less original name,
e.g. bin/foo-2.7 --> bin/foo.
Ports Changes
AUTHOR: [email protected]

USE_GMAKE is no longer supported, please use USES=gmake instead
Ports Changes
AUTHOR: [email protected]

USE_DOS2UNIX is no longer supported, USES=dos2unix should be used instead
Ports Changes
AUTHOR: [email protected]

Add a USE_PERL5=fixpacklist to account for ports creating a .packlist file
referencing ${STAGEDIR} when not using USE_PERL5=configure or