FreeBSD Monitor
Ports Changes
2014-04-11
AUTHOR: bdrewery@FreeBSD.org

A new plist keyword has been added, @sample. It accepts a file (must end in
.sample):

@sample file.conf.sample

This will install file.conf.sample and copy it to file.conf. The file.conf
will be removed if it matches file.conf.sample on deinstall.

This replaces older patterns of:

@unexec if cmp -s %D/etc/pkgtools.conf %D/etc/pkgtools.conf.sample; then rm -f %D/etc/pkgtools.conf; fi
etc/pkgtools.conf.sample
@exec [ -f %B/pkgtools.conf ] || cp %B/%f %B/pkgtools.conf
Ports Changes
2014-03-12
AUTHOR: bapt@FreeBSD.org

Two new USES were added to finish handling distfiles formats a consistent way:

USES=tar[:[xz|bzip2|Z|tgz]] handles distributions files in format:
- plain tar
- tar.xz
- tar.bz2
- tar.Z
- tgz

USES=lha handles distributions files info LHA format
Ports Changes
2014-03-07
AUTHOR: rene@FreeBSD.org

Two new USES were added by bapt@FreeBSD.org :

USES=zip handles distribution files in Zip format. InfoZip files
need USES=zip:infozip

USES=makeself handles distribution files in makeself format.
Ports Changes
2014-03-03
AUTHOR: kde@FreeBSD.org

Add support for Qt 5 via USE_QT5. USE_QT5 is analogous to USE_QT4,
the only difference is the list of available components
(see Mk/bsd.qt.mk for details). USES=qmake supports Qt 5 as well.
Ports Changes
2014-01-27
AUTHOR: mat@FreeBSD.org

Add two new options helpers:

${OPT}_${TYPE}_DEPENDS_OFF=<something> will automatically add:
${TYPE_DEPENDS}+=<something> in case OPT is 'off'

${OPT}_${FLAG}_OFF=<something> will automatically add:
${FLAG}+=<something> in case OPT is 'off'
Ports Changes
2014-01-27
AUTHOR: mat@FreeBSD.org

Add two new options helpers:

${OPT}_${TYPE}_DEPENDS_OFF=<something> will automatically add:
${TYPE_DEPENDS}+=<something> in case OPT is 'off'

${OPT}_${FLAG}_OFF=<something> will automatically add:
${FLAG}+=<something> in case OPT is 'off'
Ports Changes
2014-01-11
AUTHOR: mva@FreeBSD.org

New USES=uniquefiles to make files or directories unique
by adding a prefix or suffix to them.

Files listed in UNIQUE_PREFIX_FILES will receive the prefix
set via UNIQUE_PREFIX. The same applies to UNIQUE_SUFFIX_FILES,
but with the chosen UNIQUE_SUFFIX. UNIQUE_PREFIX and
UNIQUE_SUFFIX are set to PKGNAMEPREFIX and PKGNAMESUFFIX by
default.
The uniquefiles USES enables ports to name files in special
ways, e.g. by outlining that the port does not support X11
(-nox11). A binary named bin/foo thus can be easily renamed
to bin/foo-featureA via

USES= uniquefiles
UNIQUE_SUFFIX= -featureA
UNIQUE_SUFFIX_FILES= bin/foo

The uniquefiles USES automatically adjusts the plist at
installation time. There is no need to consider the prefix
or suffix in the pkg-plist file itself. If the original name
of the renamed file is bin/foo, this exact name should be put
into pkg-plist.

The dirs argument to USES=uniquefiles will cause certain
standard directories, such as DOCSDIR or EXAMPLESDIR to be
prepended with the UNIQUE_PREFIX. The change to the directories
will hapen prior to configuring or building the port, so that
the port Makefile as well as the port's build logic are aware
of the changed name.

Since the uniquefiles USES effectively manipulates the port's
installation and file layout, it will only be available for
stagedir-aware ports. Ports with NO_STAGE=yes will be unable
to use the uniquefiles USES.
Ports Changes
2013-12-18
AUTHOR: mva@FreeBSD.org

lang/python (and as such the 'python' binary and accomplices)
has been removed as default dependency for the USE_PYTHON,
USE_PYTHON_BUILD and USE_PYTHON_RUN knobs.

Ports need to use a designated (default) python interpreter
to build and install and in most cases for execution in the user
environment. Ports that install python scripts, which are not
limited to a certain python version (or version range), can
include lang/python as build and/or run dependency.

USE_PYTHON=yes and similar knobs will only pull in the
default python version (e.g. lang/python27), but none
of the meta ports or lang/python itself.

Please use lang/python as build or run-time dependency only,
if there is no other way to get a port working properly, since
the usage of lang/python complicates package builds for different
python versions.
Ports Changes
2013-12-13
AUTHOR: tijl@FreeBSD.org

New USES=fortran to replace USE_FORTRAN.

USE_FORTRAN=yes can be replaced with USES=fortran or USES=fortran:gcc.
USE_FORTRAN=ifort can be replaced with USES=fortran:ifort.
USE_FORTRAN=f77 is deprecated and the version of gcc it depends
on (lang/gcc34) is scheduled to be removed.

Note that USE_FORTRAN=yes also makes GCC the C/C++ compiler while
USES=fortran only sets the Fortran compiler and can be used together
with Clang as C/C++ compiler.
Ports Changes
2013-12-08
AUTHOR: mva@FreeBSD.org

New USES=twisted, to replace the old USE_TWISTED knob.

twisted can be configured with the arguments run or build to replace
the previous USE_TWISTED_RUN and USE_TWISTED_BUILD knobs. The twisted
components can be added as comma-separated arguments. If you previously
wrote
USE_TWISTED= yes
USE_TWISTED= conch names
USE_TWISTED_RUN= yes
you now would write
USES= twisted
USES= twisted:conch,names
USES= twisted:run
Ports Changes
2013-11-19
AUTHOR: kwm@FreeBSD.org

The USE_GNOME component ltverhack no longer has a hard dependancy on
libtool.

If USE_AUTOTOOLS=libtool isn't defined it will try to patch ltmain.sh
and or libtool in ${WRKSRC}. If those files are located somewhere else
in ${WRKSRC} then it is possible to overwrite ltverhack_PATCH_FILES
with there new locations. configure script --distable-static will work also
after using the "new" ltverhack.

Please keep in mind that USE_AUTOTOOLS implies GNU_CONFIGURE so you might
need to add that back for the port to work.
Ports Changes
2013-11-19
AUTHOR: kwm@FreeBSD.org

The USE_GNOME component ltverhack no longer has a hard dependancy on
libtool.

If USE_AUTOTOOLS=libtool isn't defined it will try to patch ltmain.sh
and or libtool in ${WRKSRC}. If those files are located somewhere else
in ${WRKSRC} then it is possible to overwrite ltverhack_PATCH_FILES
with there new locations. configure script --distable-static will work also
after using the "new" ltverhack.

Please keep in mind that USE_AUTOTOOLS implies GNU_CONFIGURE so you might
need to add that back for the port to work.
Ports Changes
2013-10-31
AUTHOR: rene@FreeBSD.org

Add a new USES for kernel module ports.

USES=kmod takes no arguments and:
- adds kld to CATEGORIES
- sets SSP_UNSAFE
- sets IGNORE if the kernel sources are not found
- defines KMODDIR to /boot/modules by default, add it to
PLIST_SUB and MAKE_ENV, and create it upon installation
- handles cross-referencing kernel modules upon installation and
deinstallation
Ports Changes
2013-10-31
AUTHOR: rene@FreeBSD.org

Add a new USES for kernel module ports.

USES=kmod takes no arguments and:
- adds kld to CATEGORIES
- sets SSP_UNSAFE
- sets IGNORE if the kernel sources are not found
- defines KMODDIR to /boot/modules by default, add it to
PLIST_SUB and MAKE_ENV, and create it upon installation
- handles cross-referencing kernel modules upon installation and
deinstallation
Ports Changes
2013-10-21
AUTHOR: amdmi3@FreeBSD.org

share/applications directory was added to the mtree, meaning that
you no longer need to create or remove it in your ports.
Ports Changes
2013-10-08
AUTHOR: makc@FreeBSD.org

New USES: qmake, configure tool widely used among Qt based projects.
New framework is stage-friendly. To convert existing ports remove
custom configure target, adjust QMAKE_ENV, QMAKE_ARGS, QMAKE_PRO if
required (see Mk/Uses/qmake.mk for details).
Ports Changes
2013-10-08
AUTHOR: bapt@FreeBSD.org

New "compiler" USES to be able to select the compiler based on the
features it provides.
Supported arguments are:
- c++11-lang: the port needs a c++11 aware compiler what ever standard
library it uses, implies features
- c++11-lib: the port needs a c++11 standard library, implies features
- c11: the ports needs a c11 aware compiler implies features
- features: this will create a COMPILER_FEATURES variable which contains
the list of features ${CC} do support, implies env.
- env: the COMPILER_TYPE will be set to either gcc or clang.

By default the uses will try to use clang33 from ports when nothing in
base is relevant except if the user explicitly defines
FAVORITE_COMPILER=gcc in his make.conf
Ports Changes
2013-10-05
AUTHOR: bdrewery@FreeBSD.org

PATCHFILES now support an optional :-pX flag that notes which patch strip
level to use. This allows multiple patches in 1 port to use different
PATCH_DIST_STRIP values without changing PATCH_DIST_STRIP.

Syntax: PATCHFILES= patch[:-pX][:distgroup]
Ports Changes
2013-10-03
AUTHOR: bapt@FreeBSD.org

New USES: scons, to handle properly the scons building system, this
this also gives the scons packages user the ability to respect MAKE_JOBS.
Ports Changes
2013-09-24
AUTHOR: bapt@FreeBSD.org

Stage aware ports can now create package without the requirement from
being root.
If a port really needs root anyway it should add NEED_ROOT in its
Makefile.

For a port that needs special credential on files DO NOT RELY on
chown in post-install section but rely on @own, @group in pkg-plist
Be careful about rights on directories as pkg_install cannot store them
they needs to be done via @exec chown.
Ports Changes
2013-09-23
AUTHOT: bapt@FreeBSD.org

The ports tree is now staged by default. With pkgng the sequence hasn't
changed, the main difference is that creating package is now independent
from installing it. With pkg_install, the package is now created first
and make install, do install the package.

New macros:
- STAGEDIR: PATH to the directory where the port will be staged.
- NO_STAGE: Keep the old behaviour of the ports tree (aka no staging area)

Unsupported macro if NO_STAGE is not set:
- MAN* with staging man page compression and handling of hardlinks and
symlinks is automatically done in the stage. the manpages becomes then a
"normal" plist files and should be tracked in pkg-plist.
- MANCOMPRESSED the compress-man target is able to only compress when it
needed.

New target:
- stage: this installs everything into the stage directory
- makeplist: this will create a pkg-plist and print it to stdout. This is
a sample plist and it should always be _reviewed_ not directly used.

NOTE: with staging only what is in the plist will be installed, nothing more,
meaning a port staged cannot have leftovers exect directories left. It is
really important to double check the pkg-plist to make sure all the files
the maintainer want to package are in! make makeplist can help in that area.
Ports Changes
2013-09-23
AUTHOR: mva@FreeBSD.org

* New USES: zope

This replaces the previous USE_ZOPE knob. All other zope related knobs
for port Makefiles still exist. See Mk/Uses/zope.mk for details.
Ports Changes
2013-09-23
AUTHOR: bapt@FreeBSD.org

The ports tree is now staged by default. With pkgng the sequence hasn't
changed, the main difference is that creating package is now independent
from installing it. With pkg_install, the package is now created first
and make install, do install the package.

New macros:
- STAGEDIR: PATH to the directory where the port will be staged.
- NO_STAGE: Keep the old behaviour of the ports tree (aka no staging area)

Unsupported macro if NO_STAGE is not set:
- MAN* with staging man page compression and handling of hardlinks and
symlinks is automatically done in the stage. the manpages becomes then a
"normal" plist files and should be tracked in pkg-plist.
- MANCOMPRESSED the compress-man target is able to only compress when it
needed.

New target:
- stage: this installs everything into the stage directory
- makeplist: this will create a pkg-plist and print it to stdout. This is
a sample plist and it should always be _reviewed_ not directly used.

NOTE: with staging only what is in the plist will be installed, nothing more,
meaning a port staged cannot have leftovers except directories left. It is
really important to double check the pkg-plist to make sure all the files
the maintainer wants to package are in! make makeplist can help in that area.
Ports Changes
2013-09-20
AUTHOR: bdrewery@FreeBSD.org

SSP support has been added to ports with WITH_SSP_PORTS for i386 and amd64
on FreeBSD 10, and amd64 on earlier versions.

SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.

On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].

On earlier FreeBSD versions the WITH_SSP_PORTS knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
symbols.

[1] http://svnweb.freebsd.org/base/head/lib/libc/libc.ldscript?revision=251668&view=markup
Ports Changes
2013-09-20
AUTHOR: bdrewery@FreeBSD.org

SSP support has been added to ports with WITH_SSP for i386 and amd64
on FreeBSD 10, and amd64 on earlier versions.

SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.

On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].

On earlier FreeBSD versions the WITH_SSP knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
symbols.

[1] http://svnweb.freebsd.org/base/head/lib/libc/libc.ldscript?revision=251668&view=markup