Index: head/CHANGES =================================================================== --- head/CHANGES (revision 305636) +++ head/CHANGES (revision 305637) @@ -1,1670 +1,1680 @@ Updating Information for FreeBSD ports developers This file is maintained by portmgr@FreeBSD.org and copyrighted by the FreeBSD Foundation. This file contains major changes to ports and the ports infrastructure. Intended audience are ports committers, maintainers and other developers. User oriented changes should be submitted for inclusion in the release notes and/or placed into UPDATING. All ports committers are allowed to commit to this file. +20121010: +AUTHOR: bapt@FreeBSD.org + + * The ports tree is now using pkgng as the default package manager + for HEAD. This only affects users of CURRENT -- users of other + branches need not take any action. + + To keep pkg_install as the default package manager, use the new + WITHOUT_PKGNG knob in make.conf + 20120830: AUTHOR: beat@FreeBSD.org * CCACHE support for building ports has been added (depends on devel/ccache). Therefore new user settable variables are available: WITH_CCACHE_BUILD - Enable CCACHE support (Default off) NO_CCACHE - Disable CCACHE support for example for certain ports if CCACHE is enabled. By default CCACHE uses $HOME/.ccache as cache directory. To use a non-default cache directory this could be overwritten like: MAKE_ENV+= CCACHE_DIR=/var/cache/ccache 20120820: AUTHOR: gahr@FreeBSD.org * GitHub support has been integrated into bsd.sites.mk. In order to fetch distfiles from GitHub, a port must define USE_GITHUB along with the following variables: GH_ACCOUNT - account name of the GitHub user hosting the project default: not set, mandatory GH_PROJECT - name of the project on GitHub default: ${PORTNAME} GH_TAGNAME - name of the tag to download (master, 2.0.1, ...) default: ${DISTVERSION} GH_COMMIT - first 7 digits of the commit that generated GH_TAGNAME (man git-describe(1)) default: not set, mandatory The port www/tivoka is an example how to use this mechanism. 20120726: AUTHOR: bapt@FreeBSD.org * new macro USE_PKGCONFIG has been introduce in place of USE_GNOME= pkgconfig USE_PKGCONFIG= yes and USE_PKGCONFIG= build for build only dependency USE_PKGCONFIG= run for run only dependency USE_PKGCONFIG= both for both build and run dependency 20120715: AUTHOR: beat@FreeBSD.org * The ports tree moved from CVS to Subversion. A Subversion to CVS exporter is in place to continue the support of CVSup but do not commit to pcvs directly. All commits have to be done in the new port Subversion repository on svn.FreeBSD.org. You will find more information about Subversion in the Ports Subversion Primer in the FreeBSD wiki, in the "Committer's Guide" and the "Porter's Handbook". If you are in doubt or unsure about a Subversion operation please contact ports@FreeBSD.org. 20120529: AUTHOR: crees@FreeBSD.org * OPTIONS has been updated with many changes and improvements. Old-style OPTIONS declarations will continue to work for a while, but do not introduce any into existing or new ports. For further information, see the Porter's Handbook section on Makefile Options. 20110923: AUTHOR: amdmi3@FreeBSD.org * LDFLAGS is now passed to both the configure and make environments, and should be handled just like CPPFLAGS (see previous entry). Summarizing both LDFLAGS and CPPFLAGS changes, where you would have used CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" MAKE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" now just use CPPFLAGS+= "-I${LOCALBASE}/include" LDFLAGS+= "-L${LOCALBASE}/lib" Note that it's advised to append these variables (+=) instead of overriding (=) to allow customization by user. 20110320: AUTHOR: gerald@FreeBSD.org * CPPFLAGS is now passed to both the configure and make environments, so this no longer needs to happen in individual ports by adding this to CONFIGURE_ENV or MAKE_ENV. Rather, just set CPPFLAGS in the port Makefile (if necessary). For example, where you would have used CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" MAKE_ENV= SOMETHING=foo CPPFLAGS="-I${LOCALBASE}/include" now just use CPPFLAGS= "-I${LOCALBASE}/include" MAKE_ENV SOMETHING=foo 20100831: AUTHOR: autotools@FreeBSD.org * USE_GETTEXT has been cleaned up. 'build' BUILD time dependency only 'run' RUN time dependency only 'yes' LIBRARY dependency 20100606: AUTHOR: gerald@FreeBSD.org * USE_GCC=4.3 is deprecated (and no port uses it anymore). USE_GCC=4.3+ is transparently rewritten to USE_GCC=4.4+ and lang/gcc43 will be disconnected from the USE_GCC infrastructure soon. 20100524: AUTHOR: alepulver@FreeBSD.org * The license support files (bsd.licenses.mk and bsd.licenses.db.mk) from GSoc 2008/2009 have been committed. A new PH entry will be available soon, but for the moment look at: http://wiki.freebsd.org/PortsLicenseInfrastructure Or, alternatively, the comments at the beginning of the mentioned files. 20090906: AUTHOR: flz@FreeBSD.org * There is now a unified way to create users and groups in your ports. First, make sure they are added to both ports/GIDs and ports/UIDs, then add the following in your port: USERS= foo GROUPS= foo ... if you want your port to create the foo user and group. 20090812: AUTHOR: portmgr@FreeBSD.org * sourceforge.net has changed their URL layout to be more flexible for their users. A new bsd.sites.mk macro SFP has been added for projects that moved from http://${mirror}/sourceforge/%SUBDIR%/ to http://${mirror}/project/%SUBDIR%/ Note that %SUBDIR% is now highly individual for each project and might need changing as well. 20090521: AUTHOR: portmgr@FreeBSD.org * bsd.port.options.mk is now clear to be widely used. 20090516: AUTHOR: pgollucci@FreeBSD.org * APACHE_COMPAT is dead! * USE_APACHE=yes is dead! * WITH_APACHE13, WITH_APACHE2, WITH_APACHE20, and WITH_APACHE22 are dead You should set USE_APACHE=13|20|22+. WITH_APACHE option can be used to conditional include support for ANY version of Apache based on APACHE_PORT. Currently www/apache13 20090207: AUTHOR: pgollucci@FreeBSD.org * devel/libslang dropped in favor of devel/libslang2 * WITH_SLANG2 has been removed. WITH_SLANG now implies devel/libslang2. 20080905: AUTHOR: hrs@FreeBSD.org * print/ghostscript-* and related ports have been renamed in the following way: print/ghostscript-gnu -> print/ghostscript7 print/ghostscript-gnu-nox11 -> print/ghostscript7-nox11 print/ghostscript-gnu-commfont -> print/ghostscript7-commfont print/ghostscript-gpl -> print/ghostscript8 print/ghostscript-gpl-nox11 -> print/ghostscript8-nox11 japanese/ghostscript-gnu-jpnfont -> print/ghostscript7-jpnfont korean/ghostscript-gnu-korfont -> print/ghostscript7-korfont * USE_GHOSTSCRIPT now supports a version number which the port requires. The valid value is "7" or "8". If other value is specified, value of WITH_GHOSTSCRIPT_VER is used. * WITH_GHOSTSCRIPT_GNU has been removed in favor of WITH_GHOSTSCRIPT_VER. The valid value of WITH_GHOSTSCRIPT_VER is "7" or "8", and the default value is "8". 20080821: AUTHOR: rafan@FreeBSD.org * CONFIGURE_ARGS is updated to use correct syntax for newer autoconf on the configure target. Individual ports no longer need to change CONFIGURE_TARGET to have the '--build=' prefix. 20080721: AUTHOR: pav@FreeBSD.org * Default OpenLDAP version was changed from 2.3 to 2.4. * USE_GTK and USE_XPM variables are no longer recognized. 20080523: AUTHOR: flz@FreeBSD.org * By default, ports-mgmt/pkg_install now sets up a wrapper to use ports pkg_install (when installed) instead of base when the former is more recent. This can be disabled in the options menu, or with the WITHOUT_WRAPPER knob. 20080414: AUTHOR: pav@FreeBSD.org * @rmtry is now supported in pkg-plist. * USE_DISPLAY made more powerful, see comments in bsd.port.mk for details. * ${PW} is now defined. * LIB_DEPENDS can now be used with libraries with + sign in their name without the need for escaping. 20080312: AUTHOR: pav@FreeBSD.org * USE_XPM no longer implies USE_XLIB. * USE_LDCONFIG can now be used to Linux binary ports that install shared libraries instead of INSTALLS_SHLIB. 20070908: AUTHOR: gabor@FreeBSD.org, linimon@FreeBSD.org * The Perl-related code parts have been extracted from bsd.port.mk to bsd.perl.mk. This includes the user-settable knobs (e.g. USE_PERL5) and infrastructure parts of the code, like default targets. The new code is designed to be conditionally included based on either USE_PERL5_*, PERL_CONFIGURE, or PERL_MODBUILD being set. However, some of the default settings remain in bsd.port.mk while we make sure that all ports comply with this. * A convenient version handling has been implemented for Perl-related knobs. With this new feature one can require a minimal, a maximal or an exact version, that the given port needs. For the full description and some examples, please see the documentation in bsd.perl.mk. 20070804: AUTHOR: gabor@FreeBSD.org The following functional changes were made to bsd.*.mk and to Tools/scripts/security-check.awk: * The variable definitions that cover command line tools, e.g. MKDIR, were extracted from bsd.port.mk into bsd.commands.mk, so that we can reuse them within the infrastructure later. * The old DESTDIR implementation was removed both from the infrastructure, and from the individual ports. Variables like TARGETDIR should not longer be used. * A new DESTDIR implementation has been added, implemented in bsd.destdir.mk. The new implementation puts no requirements on the individual ports. 20070730: AUTHOR: python@FreeBSD.org * The default Python version has been changed from 2.4.x to 2.5.x. * A number of variables have been added to bsd.python.mk to support the more integrated support for Python eggs, including: PYDISTUTILS_PKGNAME, PYDISTUTILS_PKGVERSION, PYEASYINSTALL_EGG, PYDISTUTILS_NOEGGINFO, PYDISTUTILS_EGGINFO, PYEASYINSTALL_ARCHDEP * More detailed descriptions of the variables can be found in the comments in bsd.python.mk. 20070723: AUTHOR: rafan@FreeBSD.org * The default CONFIGURE_ARGS when GNU_CONFIGURE is set now contains --mandir and --infodir if configure script supports them. 20070712: AUTHOR: maho@FreeBSD.org * Add knob USE_FORTRAN for ports which uses FORTRAN. All ports uses FORTRAN compiler should use this knob. Usages are: USE_FORTRAN=yes (default;gfortran42), USE_FORTRAN=ifc (Intel FORTRAN compiler) and USE_FORTRAN=g77 (/usr/bin/f77 or g77-34). 20070701: AUTHOR: portmgr@FreeBSD.org The following change was made to the ports infrastructure: * Virtual category 'kld' was added. If the port installs kernel loadable modules, it should be included in this category. 20070524: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: * The 'make-deinstall-all' target now checks for moved ports. * The installation directories PORTEXAMPLES and PORTDATA are now defined. * The USE_MAKESELF knob is added for ports that use the makeself archiver. * The description of fetch-list was updated. The targets fetch-required-list, fetch-url-list, and fetch-urlall-list were added. * 'make search' will also now search in ports/MOVED. * The default method for 'make update' is now portsnap. Previously, you had to manually select one of 3 methods: SUP_UPDATE, CVS_UPDATE, or PORTSNAP_UPDATE. The latter is now obsolete. * Several Makevar definitions have been moved to the pre-makefile section: DATADIR, DOCSDIR, ETCDIR, EXAMPLESDIR, WWWDIR. 20070403: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: * The default dependency of USE_GHOSTSCRIPT has been changed from ghostscript-gnu to ghostscript-gpl. The WITH_GHOSTSCRIPT_GPL variable is now no-op. New WITH_GHOSTSCRIPT_GNU variable was added. * bsd.tcl.mk was overhauled. Most importantly, the semantics of USE_TCL* and USE_TK* variables was changed. USE_TCL and USE_TK now implies both build and run dependencies, USE_TCL_RUN and USE_TK_BUILD variables were introduced. Existing ports in the tree were modified. * Unused category 'tcl81' was removed, and new categories 'tcl' and 'tk' were added. 20070324: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: * Default LIBTOOLFILES value was changed from literal `configure' to ${CONFIGURE_SCRIPT}. * bsd.efl.mk was moved to ports/Mk. USE_EFL family of macros is now generally available to all ports. * New macros COPYTREE_BIN and COPYTREE_SHARE were added, to allow for easy installation of a tree hierarchy, either with executable (bin) or read-only (share) permissions on files. * A new variable WWWDIR was added, with default value of ${PREFIX}/www/${PORTNAME}. * Variables DOCSDIR_REL, DATADIR_REL, EXAMPLESDIR_REL and WWWDIR_REL were added for porter's convenience. They contain the values of their respective non-REL variables, except relative to installation PREFIX. 20070313: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: * bsd.ocaml.mk and bsd.xfce.mk were added. * The FETCH_CMD was refactored so that ports can override the command, the arguments, or both. 20070306: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: * The remaining vestiges of FreeBSD 4.X support were removed. Any remaining users of 4.X should have stayed with the RELEASE_4_EOL tag. * It is now possible to include USE_PHP after bsd.port.pre.mk. * 'make search' should now work with non-default ${PORTSDIR}. 20070130: AUTHOR: portmgr@FreeBSD.org The following changes were made to the ports infrastructure: * DEPENDS variable was removed, please use other *_DEPENDS variables instead. * A new pkg-plist keyword is available, @stopdaemon. It will call forcestop on all rc.subr scripts installed by the port on deinstall, effectively stopping services on deinstall/upgrade. * rc.subr script suffix is now available in Makefile as RC_SUBR_SUFFIX. * New variable USE_CDRTOOLS was introduced. It replaced direct dependencies on sysutils/cdrtools port. It now automatically support switching to cdrtools-cjk port when user specified WITH_CJK. All ports were converted. * USE_DOS2UNIX, infrastructure for converting DOS to UNIX line feeds, was enhanced by a new variable DOS2UNIX_REGEX. It allows to specify a find -iregex parameter to limit touched files by file extensions. * Support for partially translated manpages was added. For examples of usage, please refer to Porter's Handbook. * USE_TCL/USE_TK variables were changed to provide runtime dependency. New variables USE_TCL_BUILD and USE_TK_BUILD were added. All unintuitive quirks of these variables were fixed. * USE_LDCONFIG was fixed to work properly for ports, that specify @cwd in the pkg-plists. * Old bsd.java.mk version 1.0 macros were removed. * New category: ports-mgmt * New virtual category: gnustep * Unused 'picobsd' category was removed. 20070118: AUTHOR: maho@FreeBSD.org We'd like to ask all ports maintainers, who are using Fortran77 (f77 in base), to switch to Fortran90/95 (gfortran42, lang/gcc42). Please refer to http://people.freebsd.org/~maho/gfortran/gfortran.html for details. 20061014: AUTHOR: gnome@FreeBSD.org The following changes have been introduced to the GNOME porting process during the GNOME 2.16 update: * GNOME is now installed into LOCALBASE. Any port which makes use of the gnomeprefix component will have its PREFIX forced to LOCALBASE 20060930: AUTHOR: portmgr@FreeBSD.org The following functional changes were made to bsd.port.mk: * The bsd.port.mk pre and post includes have been split into 3 pieces instead of 2, to allow OPTIONS to be able to influence dependencies. This is still experimental and not yet enabled by any port. This adds the file 'bsd.port.options.mk'. * bsd.gcc.mk has been updated to understand gfortran. * emulators/linux_base is now removed. linux_base-fc4 has been the default for some time. * The USE_FIREBIRD macro was added to bsd.database.mk. 20060914: AUTHOR: portmgr@FreeBSD.org The following functional changes were made to bsd.port.mk: * PKGVERSION was introduced as an intermediate variable refactored out of PKGNAME. * bsd.lua.mk was added to support lua-related ports. * DESTDIR was removed from bsd.scons.mk because it was problematic. * Some quotes were added to the 'missing' target to improve handling of duplicate origins. 20060903: AUTHOR: sat@FreeBSD.org The following functional changes were made to bsd.sites.mk: * MASTER_SITES variable can now look like MACRO1/subdir1 MACRO2/subdir2, and be expanded in a way that you expect it to, that is apply different subdirs to different sites. You can safely replace ${M_S_FOO:S/%SUBDIR%/bar/} with FOO/bar. * If M_S_SUBDIR is unset, a macro in M_S won't set it anymore, but rather substitute %SUBDIR% all by itself. Now it's possible to use macros with different default subdirs and they will expand in a proper way. 20060805: AUTHOR: sat@FreeBSD.org The following functional changes were made to bsd.sites.mk: * MASTER_SITES variable can now contain special macros which are expanded into traditional URL[:group] syntax and cause some convenient effects, e.g. set a default M_S_SUBDIR. * A macro is any space-delimited word in MASTER_SITES without a forward slash. * If MASTER_SITE_ is defined, then the macro is expanded to its value. * Abbreviated macros are provided for extremely popular locations, e.g. CPAN and SF. To avoid further obfuscation their unabbreviated equivalents should be avoided. * Popular macros can trigger M_S_SUBDIR to default to a predefined value, e.g. ${PORTNAME:L} for SF and ${PORTNAME:C/-.*//} for CPAN. * Abbreviations and M_S_SUBDIR defaults are defined by MASTER_SITES_ABBREVS and MASTER_SITES_SUBDIRS, both set in bsd.sites.mk. * If a macro belongs to a group (e.g. SF:source1), all the sites it expands into also belong to the same group. * Macros and traditional URL's can be mixed safely, their order stays intact. 20060804: AUTHOR: gabor@FreeBSD.org The following functional changes were made to bsd.*.mk and to Tools/scripts/security-check.awk: * Add DESTDIR support to let one install ports into a jail from outside. A package is installed under ${DESTDIR}${PREFIX} now and registered under ${DESTDIR}/var/db/pkg. * TARGETDIR variable has been added for referencing ${DESTDIR}${PREFIX}. * LOCALBASE, LINUXBASE and X11BASE variables point to the final destination now, LOCALBASE_REL, LINUXBASE_REL and X11BASE_REL can be used for the old behavior. The behavior has not been changed in PLIST_SUB. Note, that the three variables are still overridable with a hack, so this change doesn't affect POLA, but necessary for DESTDIR support. * OSVERSION is now determined from the userland, not from the kernel. Cross-compiling between releases is still not supported, but this behavior is more correct for jails with differing userland from the kernel version. * Add some sanity check for PREFIX and DESTDIR. This can be skipped by defining IGNORE_PATH_CHECKS, but very discouraged. * Deinstalling from DESTDIR, determining if a port is already installed in DESTDIR, etc. are implemented by chrooting those specific commands. * Text changes to reflect that we are installing to DESTDIR, removing from DESTDIR, etc. Note, that this change implements only the infrastructure support. Ports should also be implemented to respect DESTDIR. 20060717: AUTHOR: portmgr@FreeBSD.org The following functional changes were made to bsd.port.mk: * Introduces IA32_BINARY_PORT for certain cases where a given port fetches and installs compiled i386 binaries. * Adds some infrastructure for support of 32-bit i386 apps on amd64. * Again fix USE_LDCONFIG logic to make it work with non-default PREFIX to fix bug introduced in previous revision. 20060705: AUTHOR: portmgr@FreeBSD.org The following functional changes were made to bsd.port.mk: * Change all bogus uses of BROKEN to IGNORE. (Note: the BROKEN_WITH_* forms are retained for compatibility but deprecated.) Internally, these variables all had already set IGNORE, not BROKEN, so they were really misnomers. * Fix USE_LDCONFIG with non-default PREFIX. * Fix DESKTOP_ENTRIES processing on 4.x. * Add 'make missing' to show missing dependencies. * Add bsd.scons.mk and bsd.wx.mk. 20060616: AUTHOR: portmgr@FreeBSD.org The patch in ports/95841 to get rid of remnants of FORCE_PKG_REGISTER was backed out because it broke kdelibs3*. 20060616: AUTHOR: portmgr@FreeBSD.org The following functional changes were made to bsd.port.mk: * Update default MySQL version from 4.1 to 5.0 [1] * Update default PHP version from 4 to 5 [2] * Update default LDAP version from 2.2 to 2.3 [3] * Add support for LDAP version 2.4 [4] * Update default linux_base from '8' (Redhat 8) to 'fc4' (Fedora Core 4) [5] * Switch default Linux X implementation from XFree86 to X.org to track the above [5] * Deprecate INSTALLS_SHLIB and replace it by USE_LDCONFIG. If set to "yes", the old behavior is preserved. Otherwise, it can be set to a list of directories to be added to ${PREFIX}/libdata/ldconfig/${UNIQUENAME}. Note that this directory is used by ldconfig startup script, it is meant to replace ldconfig scripts installed by some ports as (sometimes 000.${UNQUENAME}.sh) [6] * Adds USE_LDCONFIG32 which is like USE_LDCONFIG but the target file is ${PREFIX}/libdata/ldconfig32/${UNIQUENAME} instead. (Note: this should only be used on 64-bit architectures) [6] * Set the default LANG for tr to be C to avoid some build problems [7] * Include bsd.java.mk in both pre and post sections [8] * Get rid of remnants of FORCE_PKG_REGISTER [9] * Always print options with make showconfig [10] PR: 92805 [1], 92806 [2], 96793 [3], 97515 [4], 96849 [5], 91933 [6], 91381 [7], 97020 [8], 95841 [9], 97133 [10] 20060523: AUTHOR: portmgr@FreeBSD.org The following functional changes were made to bsd.port.mk: * include bsd.emacs.mk only when USE_EMACS is set [5] * Correct the implementation of pretty-print-run-depends-list [8] * Use a consistent name for the cookies file when PKGNAMEPREFIX/SUFFIX are set after bsd.port.pre.mk. [9] * Include bsd.tcl.mk if USE_TCL_BUILD is defined [10] * Set PERL_MM_USE_DEFAULT in BATCH mode [11] * Add the {ONLY,NOT}_FOR_ARCH_REASON and {ONLY,NOT}_FOR_ARCH_REASON_${ARCH} variables to allow better customization of the error string reported to users when they attempt a build on an unsupported architecture. [12] * Avoid errors from duplicated targets when parsing MLINKS on ports without a default value set. [13] * Fix handling of MLINKS when invalid entries are listed [14] * Enforce sanity of DESKTOP_ENTRIES. If the Categories field is omitted, try to map ports categories to their freedesktop.org counterpart [15] PR: 95238 [5], 94164 [8], 94219 [9], 92355 [10], 95579 [11], 94675 [12], 66109 [13], 66110 [14], 95603 [15] 20060121: AUTHOR: portmgr@FreeBSD.org The following changes affecting ports developers were introduced: * Gamin is a default FAM system * New virtual categories: hamradio and rubygems * Virtual category 'offix' was removed * New USE_DOS2UNIX variable for converting DOS linefeeds to UNIX * Variables like BROKEN and FORBIDDEN should no longer be quoted * New NOFETCHFILES variable to prevent downloading from MASTER_SITES while still allowing MASTER_SITE_OVERRIDE * New plist macro @dirrmtry with functionality of @unexec rmdir || true * USE_REINPLACE no longer needs to be defined, REINPLACE_CMD is always available Detailed documentation of new features is available in Porter's Handbook. 20051108: AUTHOR: portmgr@FreeBSD.org The following changes were introduced: * Add bsd.database.mk - move out from bsd.port.mk USE_MYSQL and USE_PGSQL. - add support for Berkeley DB and SQLite (via USE_BDB and USE_SQLITE knobs). * Escape '+' in make search * Add "makepatch" target to simplify creation of patches during porting * Replace deprecated MACHINE_ARCH with ARCH * Remove support of OpenLDAP 2.1 * Add bsd.tcl.mk It introduces USE_TCL/USE_TCL_BUILD knobs to support various version of tcl (8.0 -> 8.4) * Fix cosmetic bugs in security-check target * Add support for INDEX-7 and above (up to INDEX-9 actually) * Add "package-recursive" to bsd.port.subdir.mk * Remove check for FreeBSD version < 460101 * New category: net-im * Add .desktop file facilities It introduces DESKTOPDIR and DESKTOP_ENTRIES knobs * Add SHA256 support to "*checksum" targets * Fix USE_PYTHON with OPTIONS * Force NO_LINT to MAKE_ENV to avoid library breaks * Fix typo: s/RC_ORDER/USE_RCORDER/g * Add support for PostgreSQL 8.1 * Add bsd.apache.mk USE_APACHE knob enhancements 20051105: AUTHOR: gnome@FreeBSD.org GNOME has been upgraded from 2.10.2 to 2.12.1. This update brings with it many important porting changes: - gtk20's pkg-config file no longer contains the X11 pango modules. Therefore, if your port requires these modules, you may have to manually patch them in to your port's Makefiles. Contact gnome@FreeBSD.org if you have questions on this. - A new USE_GNOME component, ltverhack, has been added. This pseudo-component hacks libtool so that shared library versions are more consistent with other operating systems. Using this component can prevent unnecessary shared library version changes. - A new macro, INSTALLS_ICONS, has been added. If your port installs Freedesktop-style icons to ${LOCALBASE}/share/icons or ${X11BASE}/share/icons, then you should use this macro. NOTE: use of this macro requires your port to set either USE_GNOME or WANT_GNOME. 20050618: AUTHOR: netchild@FreeBSD.org - USE_LINUX now implies NO_FILTER_SHLIBS=yes. It also doesn't use FreeBSD tools to strip binaries anymore, so it's not necessary anymore to override STRIP and STRIP_CMD. - USE_LINUX_PREFIX implies NO_MTREE now. - In the USE_LINUX case, USE_XLIB now depends upon the Linux X11 libraries instead upon the native FreeBSD libraries. - The variable LINUX_BASE_PORT contains a string which is suitable as an item in *_DEPENDS, so if a port BATCH_DEPENDS or FETCH_DEPENDS upon the default (or overridden) Linux base, ${LINUX_BASE_PORT} should be used instead of a hardcoded reference. - If USE_LINUX or OVERRIDE_LINUX_BASE doesn't point to an existing linux_base port and if USE_LINUX isn't set to "yes" (case insensitive), the port will be marked as IGNORE. 20050609: AUTHOR: portmgr@FreeBSD.org The following changes were introduced: * Improve documentation of CONFLICTS. * Fix add-plist-docs target to work correctly with wildcards. * Fix USE_MYSQL and USE_PGSQL knobs to work in partial ports tree. * Introduce 2 new variables: USE_FAM and WANT_FAM_SYSTEM. * Suppress "Vulnerability check disabled" message if DISABLE_VULNERABILITIES is defined. * Switch default MySQL version to 4.1 * Add support for OpenLDAP v.23 * Fix add-plist-info and add-plist-post targets to avoid warnings from ports which redefine them. * Fix add-plist-docs target to handle NOPORTDOCS knob properly. * Use INSTALLDIRS="site" in configure for perl ports. * Fix NO_(CHECKSUM|BUILD|INSTALL|PACKAGE) knobs if OPTIONS are defined. * Add an ability to depend on versioned installed package. Example: BUILD_DEPENDS=p5-Tree-Simple>=1.12:${PORTSDIR}/devel/p5-Tree-Simple Please note, it's experimental feature, work is currently in progress. 20050325: AUTHOR: jdp@FreeBSD.org The CVSup port has been upgraded with a patch to correct the handling of the "refuse" file for files that are in the CVS Attic. This solves a problem some people were having, where CVSup would delete their ports/INDEX* files even though the files were listed in the "refuse" file. The bug fix is in the cvsupd server, so mirror sites must upgrade their servers in order for this fix to help. Meanwhile, adding "ports/Attic/INDEX*" to the refuse file serves as a work-around. 20050321: AUTHOR: kwm@FreeBSD.org The gstreamer-plugins gconf dependency moved to its own port in devel. When your application needs gstreamer-plug-gconf, just add USE_GSTREAMER=gconf to you Makefile 20050319: AUTHOR: gnome@FreeBSD.org New GNOME components have been added to bsd.gnome.mk. See http://www.FreeBSD.org/gnome/docs/gnome2_porting.html for the complete list of available GNOME 2 components. Py-gnome2 lost many of its GNOME dependencies to a new port, py-gnome-extras. Therefore, ports that used to depend on the pygnome2 component for modules such as gtkhtml2, gnomepanel, etc. should replace the pygnome2 dependency with pygnomeextras. 20050314: AUTHOR: edwin@FreeBSD.org New variable for in /etc/make.conf: IGNORE_MASTER_SITE_xxx If you prefer a certain mastersite for a collection of master-sites, set this in your /etc/make.conf: MASTER_SITE_xxx=http://z.x.y/%SUBDIR%/ If you insist on only using the ones you specify, set this in your /etc/make.conf: IGNORE_MASTER_SITE_xxx=yes MASTER_SITE_xxx=http://z.x.y/%SUBDIR%/ Use "make -V MASTER_SITES" to see the differences. 20050313: AUTHOR: ahze@FreeBSD.org, kwm@FreeBSD.org The following changes were committed: * USE_GNOME=gstreamerplugins has been deprecated. The new method which uses bsd.gstreamer.mk is: USE_GSTREAMER=plugin-name Example: USE_GSTREAMER= dvd or WANT_GSTREAMER= yes .include .if defined(WITH_DVD) USE_GSTREAMER= dvd .endif * misc/gnomehier now creates a mtree file and each port using USE_GNOME=gnomehier or gnomeprefix now use the BSD.gnome-x11.dist mtree file to help "keep" directories and not accidentally add gnome directories to a port. 20050207: AUTHOR: portmgr@FreeBSD.org The following changes were committed: * Change bento to pointyhat names in comments. * Document DISABLE_VULNERABILITIES variable. * Add WWW: line for 'search' target. * Speedup check-vulnerable invocation, if portaudit is installed. * Run install-info for all .info files. * Run add-plist-docs more strictly and prevent some situations with leftover files in the future. * Introduce two new variables: MASTER_PORT and SLAVE_PORT. The results from these variables is only used as information for users. * Honor OPTIONS if PACKAGE_BUILDING or BATCH are defined. * Move all USE_GCC entries to new file - bsd.gcc.mk. 'test-gcc' target allows users to check gcc version if USE_GCC is used. Give maintainers opportunity to add '+' character to USE_GCC version for using specified and higher versions. Example: USE_GCC=3.3+ builds ports with gcc version 3.3 and higher (3.4, 4.0). * Install startup scripts with the help of USE_RC_SUBR variable. * Add three new targets: config-recursive, rmconfig-recursive and config-conditional. You can set or delete OPTIONS for all dependencies before every build. config-conditional target is used to skip configuring ports which have already been configured. * Fix using of WANT_PGSQL_VER variable if PostgreSQL is already installed. 20041231: AUTHOR: netchild@FreeBSD.org USE_LINUX_PREFIX doesn't implies USE_LINUX anymore. 20041209: AUTHOR: portmgr@FreeBSD.org The following changes were committed: * Define new macros: DATE, FMT, MKTEMP, OBJDUMP, and use command macro SORT. * Change layout of comments to 4 column tabs, remove lots of spaces and eight-column-tabs. * Introduce 2 new variables: SUB_FILES and SUB_LIST: Example: SUB_FILES= pkg-message pkg-install SUB_LIST+= "VERSION=${VERSION}" This looks for ${FILESDIR}/pkg-message.in and ${FILESDIR}/pkg-install.in Substitutions in SUB_LIST are applied to these files and the output is redirected to ${WRKDIR}. PKGMESSAGE will be set to ${WRKDIR}/pkg-message. PKGINSTALL will be set to ${WRKDIR}/pkg-install. * Document DEPRECATED and EXPIRATION_DATE variables. * Sanitize the intermittent output by the build infrastructure so that cutting and pasting from it no longer interferes with GNATS-tags. * Honor configure arguments for USE_XLIB if USE/WITH_LIBTOOL_ is used. * Properly document 'describe' target. * Properly remove directories at deinstallation time if ports sets a non-standard PREFIX. * Defaults INDEXFILE to INDEX-6 on 6-CURRENT. 20041119: AUTHOR: portmgr@FreeBSD.org The following changes were committed: * Fix INDEX build if MAINTAINER is not defined. * Remove USE_QT2 option, since qt2 is obsolete. * Better define and explain ARCH option. * Add new script Tools/make_readmes, to speedup 'readmes' target. Avoid recursing into individual port directories and run it at top level, after the category README.html files have been created. * Fix 'search' target and enable a case-insensitive search on 5-x. * Extend 'search' target and enable search by categories. * Remove 'tk42' and 'tcl76' categories since they're obsolete. * Introduce DISTVERSION variable, that can be set instead of PORTVERSION and is automatically converted in a conforming PORTVERSION. Example: DISTVERSION= 10Alpha3 extends 10Alpha3 to 10.a3 DISTVERSION= 3Beta7-pre2 extends 3Beta7-pre2 to 3.b7.p2 * Use --suffix option instead of -b for patch(1), to make it compatible with BSD patch(1). * Fix {WANT,WITH}_MYSQL_VER behavior, to deal with conflicting versions. 20041116: AUTHOR: gnome@FreeBSD.org The way OMF files are handled has been changed to use the new INSTALLS_OMF macro (similar to INSTALLS_SHLIB). Details about the new macro can be found at http://www.FreeBSD.org/gnome/docs/porting.html and bsd.gnome.mk. 20041113: AUTHOR: portmgr@FreeBSD.org Since INDEX version in CVS is always too old, portmgr decided to remove it. You will still be able to build your own INDEX or use 'fetchindex' target in /usr/ports/. 20041109: AUTHOR: gnome@FreeBSD.org The way GConf schema files are handled has been changed to use the new GCONF_SCHEMAS macro (similar to MAN). Details about the new macro can be found at http://www.FreeBSD.org/gnome/docs/porting.html and bsd.gnome.mk. 20040803: AUTHOR: ade@FreeBSD.org As part of the ongoing autotools cleanup, devel/autoconf has been replaced with devel/autoconf253, and devel/automake with devel/automake15. Consumers of the various autotools knobs from bsd.autotools.mk should not notice any differences. This update completes the transition of autotools to true versioned packages (cf: tcl/tk) 20040723: AUTHOR: anholt@FreeBSD.org The XFREE86_VERSION variable is replaced by the X_WINDOW_SYSTEM variable. XFREE86_VERSION may no longer be used by ports Makefiles. X_WINDOW_SYSTEM may currently be set to xorg, xfree86-4, and xfree86-3 (please use :L in checking it). Several X_*_PORT variables are provided by bsd.port.mk which map to the appropriate port for the X_WINDOW_SYSTEM chosen. 20040719: AUTHOR: ale@FreeBSD.org There has been a big update to PHP ports and bsd.php.mk to add more flexibility and new features. Now a port may depend on a specific set of PHP extensions. To do so, simply replace: USE_PHP= yes with: USE_PHP= ext1 ext2 ext3 ... in the port Makefile. A list of all PHP extensions is included in bsd.php.mk. If the requirement is a build dependency too, the port should also define: USE_PHP_BUILD=yes Moreover, the new knob WANT_PHP_SCR has been added to indicate that the port requires the 'php' binary to run. Last but not least, many common operations to build/install/register a PHP extension can now be omitted from the port Makefile if it defines: USE_PHPEXT= yes For more information on this point and on additional variables, see bsd.php.mk. 20040717: AUTHOR: eik@FreeBSD.org OpenLDAP version 2.2 is now the default. When your port links against the openldap client libraries use USE_OPENLDAP= yes and do not depend on a particular version. A user (or package building cluster) can select the desired flavor with WANT_OPENLDAP_VER and WANT_OPENLDAP_SASL, but these must not be used in ports Makefiles. 20040709: AUTHOR: portmgr@FreeBSD.org USE_LIBTOOL_VER now configures a port to use the ports version of libtool instead of its included version. This was put in place to reduce the number of ad hoc patches to individual ports' libtools to prevent .la file installation as well as fix various threading problems. To restore the previous libtool behavior, use the new macro, USE_INC_LIBTOOL_VER. It works the exact same way as USE_LIBTOOL_VER in that it takes a libtool version as its argument. For example, to use the included version of libtool with extra hacks provided by libtool-1.5, add the following to your Makefile: USE_INC_LIBTOOL_VER= 15 To use the ports version of libtool-1.5, add the following to your Makefile: USE_LIBTOOL_VER= 15 Note: these macros are mutually exclusive. Your port should only include one or the other if it needs to make use of libtool. 20040707: AUTHOR: gnome@FreeBSD.org The way GConf schema files are installed has changed to support the upcoming GNOME 2.8 GConf. Details about the change can be found at http://www.FreeBSD.org/gnome/docs/porting.html. All existing ports have been converted to the new style, and portlint has been updated to flag old-style GConf schema installation. 20040610: AUTHOR: portmgr@FreeBSD.org The following behavioral or feature changes were committed: * Support verbose index builds with INDEX_VERBOSE * Support glob expressions in USE_GETTEXT to allow more flexibility in the face of future gratuitous library version bumps by the gettext developers: USE_GETTEXT=yEs # Works as before (case-insensitive) USE_GETTEXT=[5-7] # Accepts any of those libintl.so.x versions # in the LIB_DEPENDS * Extend 'make search' support to allow much more flexible searching From the PR: Besides the good old key and name variables, this patch adds support for path, info, maint, cat, bdeps, and rdeps, which match on the appropriate fields, plus their exclusion counterparts: xkey, xname, etc. Examples: Find all ports whose names contain "pear-" but not "html" or "http": make search name=pear- xname='ht(tp|ml)' Find ports whose names contain "pear-" and which don't have apache listed in build-time dependencies: make search name=pear- xbdeps=apache The positive variables (name, key, maint, etc) are AND-ed, their negative versions are OR-ed; in other words, matching any x- variable will cause the port to be skipped, mismatch on any non-x- variable will cause it to be skipped. Examples: Find ports that are both in the 'www' category and maintained by Thierry Thomas: make search maint=thierry@ path=/www/ Find ports in the 'archivers' category that are either not orphaned or don't have "zip" in their names (contrived): make search cat=archivers xmaint=ports@freebsd xname=zip It is possible to select fields to display. Example: Find PEAR ports that don't build-depend on apache, displaying only Port:, Path:, and Info: lines: make search name=pear- xbdeps=apache display=name,path,info Case-sensitivity can now be turned of with icase=1. Example: Find ports with @freebsd.org maintainer addresses without the "proper" capitalization (@FreeBSD.org), display their paths and maintainer addresses: make search maint=@freebsd\\.org icase=0 display=maint,path The key and xkey variables can be limited in scope to displayed fields by setting keylim to 1. Example: Find ports that contain "apache" in either of the name, path, info fields, ignore the rest of the record (dependencies, maintainer address, etc): make search key=apache display=name,path,info keylim=1 The following variables can be set e.g. in /etc/make.conf to control default search behavior: PORTSEARCH_DISPLAY_FIELDS?=name,path,info,maint,index,bdeps,rdeps PORTSEARCH_KEYLIM?=0 PORTSEARCH_XKEYLIM?=0 PORTSEARCH_IGNORECASE?=1 * Extend USE_PERL5_BUILD and USE_PERL5 to add EXTRACT and PATCH dependencies * While building index, treat non-existent dependencies as fatal. Previously the error was being hidden by the stderr redirection. * Don't always retry BROKEN ports when package building (it is taking too much time to continually rebuild ports that are usually going to really be broken). Set TRYBROKEN if you want to attempt a build of a BROKEN port. 20040604: AUTHOR: ade@FreeBSD.org Over the past few weeks, we have been testing the next incarnation of ports/Mk/bsd.autotools.mk on the road to bringing at least some semblance of sanity back to this corner of the ports collection. By far and away the easiest way to see the changes will be to view the new file once committed, but here is a summary of the changes: 1. USE_LIBTOOL, USE_AUTOCONF, USE_AUTOHEADER, USE_AUTOMAKE have been fully deprecated. Ports attempting to use these variables after the commit will error out, and most obviously break INDEX generation, with a helpful error message. Instead, ports must now specifically choose the version of any of these tools that they need with the corresponding USE_*_VER variables. Note that these variables understand any and all versions of autotools ports in the tree, there is no longer a need to have specific version numbers hardcoded in the infrastructure of bsd.autotools.mk (as there is now). In particular, this will immediately open up automake18 and autoconf259 for general use and beating. 2. Similarly for WANT_LIBTOOL, WANT_AUTOCONF, and WANT_AUTOMAKE. Again, these have been fully deprecated, and the equivalent WANT_*_VER versions should be used. In order to preserve existing behavior for these variables, please note the 20040314 entry in ports/CHANGES for the appropriate version numbers to use for any ports in the GNATS queue. Both WANT_* and USE_* bring in the relevant tool as a build dependency, and set up a reasonably large number of variables pointing to the right programs to be using in the port. The only difference at the moment, is that USE_* will run an extra autotools-related configuration step, whereas WANT_* merely requests the environment. 3. The helper knob USE_LIBLTDL has been added which currently simply adds a LIB dependency on the libltdl port. 4. Three new variables have been introduced, WANT_{LIBTOOL,AUTOCONF,AUTOMAKE}_RUN=yes. These variables will do nothing by themselves (a Work-In-Progress), but if the appropriate autotool version is defined (either through WANT_*_VER or USE_*_VER), this will add the relevant dependency to RUN_DEPENDS. Steps 3 and 4 now essentially negate the need for any kind of direct dependency within a non-autotools port Makefile on devel/autoconf*, devel/automake*, devel/libtool*, and devel/libltdl. 20040416: AUTHOR: java@FreeBSD.org There has been a couple of bsd.java.mk tweaks and fixes. . Features from Stage 2 has been removed. A port can no longer use the JDK dependency features by setting JAVA_HOME. Use JAVA_PREFERRED_PORT instead (see below). . The default JDK port now depends on OS version: java/diablo-jdk13 for 4.x, and java/jdk14 for 5.x . It is now possible for the user (and the porters) to define a list of preferred JDK ports to build and run ports. The port will use the first JDK port from the list that matches the requirements specified in the Makefile. JAVA_PREFERRED_PORT contains a list of suitable JDK ports (sorted by preference). Names for JDKs may be found in bsd.java.mk, listed in ${_JAVA_PORTS_ALL} (e.g. "JAVA_PORT_NATIVE_BSDJAVA_1_4"). . JAVA_PORT_VERSION is now set to the full version number of the chosen JDK (e.g. "1.4.2"). Porters will find hints regarding how to obtain the same behavior as before in the header of bsd.java.mk. 20040414: AUTHOR: gnome@FreeBSD.org When writing a port that uses GTK+ 2.X, you can now list the dependency with "USE_GNOME=gtk20" which is preferable to LIB_DEPENDS because the GTK+ library version only needs to be changed in bsd.gnome.mk. Please see http://www.FreeBSD.org/gnome/docs/porting.html for all the available GNOME components as well as detailed instructions on creating ports that use the GNOME infrastructure. 20040404: AUTHOR: gnome@FreeBSD.org The glib20 and gtk20 ports were updated to 2.4.0. This new version is completely source and binary compatible with the previous 2.2.x series. However, certain API calls have been deprecated. If your port defines the following macros, they may refuse to build with the new versions of glib20 and gtk20: GTK_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED G_DISABLE_DEPRECATED The temporary solution is to either patch your port's Makefiles to, or use an in-place regular expression to remove these macros. The more permanent solution is to wait until the port's authors update their code to use current API calls. 20040402: AUTHOR: java@FreeBSD.org There has been a big update to bsd.java.mk. However, this update is mostly backwards compatible, so it shouldn't affect most java port maintainers. There is some new functionality and minor changes worth documenting here though. bsd.java.mk now provides a new set of macros to be used by ports that require a JDK. When USE_JAVA is set, the following variables may be set in order to give to precision regarding the requirements of the port: . JAVA_VERSION A list of space-separated suitable java versions for the port. An optional "+" allows you to specify a range of versions. (allowed values: 1.1[+] 1.2[+] 1.3[+] 1.4[+]) (NOTE: Used to be set by bsd.java.mk) . JAVA_OS A list of space-separated suitable JDK port operating systems for the port. (allowed values: native linux) (NOTE: Used to be set by bsd.java.mk) . JAVA_VENDOR A list of space-separated suitable JDK port vendors for the port. (allowed values: freebsd bsdjava sun ibm blackdown) (NOTE: Used to be set by bsd.java.mk) . JAVA_BUILD When set, it means that the selected JDK port should be added to build dependencies for the port. . JAVA_RUN This variable works exactly the same as JAVA_BUILD but regarding run dependencies. Here are some of the macros defined after setting USE_JAVA: . JAVA_PORT The name of the JDK port (e.g. java/jdk14) . JAVA_HOME The home of the JDK port in the local base . JAVA_PORT_VERSION The version of the JDK port. (NOTE: Used to be JAVA_VERSION, see above) . JAVA_PORT_OS The operating system used by the JDK port. (NOTE: Used to be JAVA_OS, see above) . JAVA_PORT_VENDOR The vendor of the JDK port. (NOTE: Used to be JAVA_VENDOR, see above) Plus many macros for the commonly used java executables: APPLETVIEWER, JAR, JAVA, JAVAC, JAVADOC, JAVAH, JAVAP, JAVA_KEYTOOL, JAVA_N2A, JAVA_POLICYTOOL, JAVA_SERIALVER, RMIC, RMID and RMIREGISTRY. bsd.java.mk 2.0 is mostly backward compatible with the previous version, save for the notes above and changed internal variables. Using the new features is strongly encouraged, since the old bsd.java.mk 1.0 features will be deprecated and may be removed in the future. You will find more detailed info (as well as a quick tutorial) at: http://www.esil.univ-mrs.fr/~hquiroz/freebsd/bsd.java.mk-2.0.html 20040316: AUTHOR: gnome@FreeBSD.org The print/freetype2 port has been updated to 2.1.7. This update changes some of the internal FreeType API. Applications may need to be patched to support this new API. If a source files includes freetype/freetype.h, make sure ft2build.h is included before freetype/freetype.h. The proper way to do this is: #include #include FT_FREETYPE_H However, the following will work as well, but is deprecated: #include #include 20040314: AUTHOR: ade@FreeBSD.org USE_LIBTOOL, USE_AUTOCONF, and USE_AUTOMAKE are now considered deprecated, and will be removed on or around June 1st 2004. All ports should now choose the specific version of the tool, using USE_LIBTOOL_VER, USE_AUTOCONF_VER, and USE_AUTOMAKE_VER. The old "system default" behavior can be written as follows: Old New USE_LIBTOOL=yes USE_LIBTOOL_VER=13 USE_AUTOCONF=yes USE_AUTOCONF_VER=213 USE_AUTOMAKE=yes USE_AUTOMAKE_VER=14 20040304: AUTHOR: eik@FreeBSD.org New variable MASTER_SITE_SOURCEFORGE_EXTENDED. It has the ten official sourceforge.net download mirrors, whereas MASTER_SITE_SOURCEFORGE only has five. To check if your port is mirrored there, go to click on ${DISTFILES} and you'll see five or ten mirrors, corresponding to the variables above. 20040226: AUTHOR: knu@FreeBSD.org The default version of Ruby is now 1.8 on all platforms including the i386. Users on the i386 platform need to follow the instructions described in the UPDATING file to cope with this upgrade. Next time ruby is major upgraded, you won't need to do this kind of messy work because some subtle changes have been made to the ruby port infrastructure to make it easier to handle multiple versions of ruby. 20040217: AUTHOR: gnome@FreeBSD.org Mozilla will now default to using GTK2, and will only compile against Gtk+-1.2 if explicitly requested. This is in exact opposite to the old behavior. The valid values of WITH_MOZILLA are now: mozilla (www/mozilla, GTK2) mozilla-devel (www/mozilla-devel, GTK2) mozilla-gtk1 (www/mozilla-gtk1, GTK1) mozilla-devel-gtk1 (www/mozilla-devel-gtk1, GTK1) As before, WITH_MOZILLA can be set in /etc/make.conf, but doing so is not advised unless you desire the development versions. GTK2 browsers will automatically compile against GTK2 mozilla, and GTK1 browsers (galeon1, galeon1, and galeon1) will automatically compile against GTK1. Again, the only people who will need to take action are those who desire development versions (which are inactive at this time anyway). Those who want GTK1 mozilla-devel must set WITH_MOZILLA=mozilla-devel-gtk1 or they will be pleasantly surprised with their very own GTK2 installation on the next update. WITH_MOZILLA=mozilla-gtk2 and WITH_MOZILLA=mozilla-devel-gtk2 are still honored for the time being, but their use is now deprecated. Any new ports are not required to consider their values, and so eventually WITH_MOZILLA _will_ have to be changed. Hopefully galeon2 can catch up to peoples' expectations from galeon1 soon, and we can remove the GTK1 ports altogether. 20040204: AUTHOR: portmgr@FreeBSD.org The bsd.php.mk file has been moved out of the lang/php4 port into the Mk directory. This will make it much easier to include PHP support in PHP-dependent ports. Instead of including bsd.php.mk directly, a port can simply set USE_PHP=yes, and the ports system with Do the Right Thing. All trailing whitespace has been removed from bsd.port.mk. Enhance the new OPTIONS code by only including saved options if the port defines OPTIONS, attempt to use LATEST_LINK as the unique name for a port (fall back to ${PKGNAMEPREFIX}${PORTNAME} otherwise), bring the ===> messages in line with the existing ones by using PKGNAME instead of PORTNAME, use PKGNAME in the dialog, use ECHO_CMD instead of ECHO_MSG to write the OPTIONSFILE, display a message during compilation indicating that user-specified options have been found, and make the output of the showconfig target a little more user-friendly. A new USE_ICONV macro has been added that takes the place of an explicit LIB_DEPENDS on converters/libiconv. This will help with future shared lib version bumps. A new USE_GETTEXT macro has been added that takes the place of an explicit LIB_DEPENDS on devel/gettext. This will help with future shared lib version bumps. Module::Build is a system for building, testing, and installing Perl modules. It will eventually replace the obsoleted ExtUtils::MakeMaker. Many new Perl modules have already switched to using Build.PL instead of Makefile.PL. To facilitate building those modules, a new PERL_MODBUILD macro has been added. Use that in place of PERL_CONFIGURE when porting Perl modules that make use of the Module::Build framework. Certain ports want to check for the availability of SDL libraries before including them. This change adds a new WANT_SDL macro similar to WANT_GNOME. By setting this, the porter indicates that her port can optional use SDL if present on the system. WANT_SDL should be defined _before_ bsd.port.pre.mk is included. After including bsd.port.pre.mk, the list of available SDL components will be returned in the HAVE_SDL macro. For details on how to process this component list, refer to bsd.sdl.mk. The OpenBSD and NetBSD projects diverged from the FreeBSD ports tree years ago, and it no longer make sense to include obsolete references to incorrect paths in the FreeBSD ports system. This change removes the NetBSD and OpenBSD PORTSDIR compatibility bits from bsd.port.mk. The comment for PKGDIR read, ``A direction containing any package creating file.'' The word ``direction'' should be ``directory.'' This has been fixed. A new DIRNAME macro has been added that points to /usr/bin/dirname. All direct use of dirname in ports can be switched to this macro. Direct use of commands dirname, id, and rm have been corrected to use their macro equivalents instead. Some useless ${HEAD} -n 1 statements have been removed. A strange comment in the do-install target and an out of place ``fi'' have been fixed as well. On 5-CURRENT after the 5.2-RELEASE split, the default Perl version has been updated from 5.6.1 to 5.8.2. As well, some Perl definitions in bsd.port.mk have been moved to their correct locations which corrects the PERL_LEVEL definition. The following optimizations have been added to the ports system to speed up recursive operations such as make describe, make index, make ignorelist, etc. bsd.gnome.mk is now only included if a port defines USE_GNOME, WANT_GNOME, and/or USE_GTK. More variables are cached and passed down through bsd.port.subdir.mk. Perl is no longer invoked when a simple ``echo'' will do. More subshell variable assignments have been hidden behind conditionals so that the commands are not spawned every time. Finally, dependency lists are only constructed if ports actually declare dependencies. These optimizations give make index approximately a 43% speedup. If CPUFLAGS is not defined (this _CPUCFLAGS is empty), trying to remove _CPUCFLAGS from CFLAGS will result in an error. This change fixes that. On recent versions of 5.X, /etc/rc.subr exists, and there is no reason to install another copy in ${LOCALBASE}/etc. The reason this was ever done was to workaround some build issues on bento. However, testing OSVERSION seems to work in spite of those build issues. The ports system now supports MySQL 3.23, 4.0, 4.1, and 5.0. Also, the ability to scale to newer versions was also but in place. An .endif comment indicated that the .if block checked WANT_MYSQL when, in fact, it was checking WANT_MYSQL_VER. This has been corrected. The PTHREAD{CFLAGS,LIBS} macros have been made overridable on all versions of FreeBSD to allow for alternate threading implementations (e.g. -lc_r, -lthr, -mt, etc.). The default threading library has been changed to -lpthread from -lc_r on -CURRENT. The new SIZE support broke distfiles fetching on FreeBSD < 4.8. On those versions of FreeBSD, the SIZE distfile attribute is now ignored. Also, defining DISABLE_SIZE in, for example, /etc/make.conf, will ignore the SIZE attribute on all versions of FreeBSD. This is useful with alternate values for FETCH_CMD. A new vulnerabilities database has been added to the ports system in order to keep more accurate, up-to-date, track of security vulnerabilities. The ports system now knows how to query that database and dynamically prevents the installation of vulnerable ports. In order to allow for more rapid development of the package tools, the ports system will prefer to use pkg_* tools found in ${LOCALBASE} over those in the base system. However, all PKG_* macros are still overridable. A new physical category, net-mgmt, has been created to house network management ports. The /var/db/port.mkversion file never really took off, and is now very obsolete. Replace the code used to generate and check this file with a simple OSVERSION check. The ports system now requires FreeBSD 4.3 or higher. The last round of bsd.*.mk changes broke ports that had duplicate distinfo entries (e.g. linux_base). This is now fixed. Along with this fix, only distfiles with a bad checksum will be refetched, where as distfiles missing from distinfo will not be refetched. The PLIST_{DIRS,FILES} macros were passed to the final package list unchanged by PLIST_SUB. This is not always desirable. Now, those macros are passed through PLIST_SUB. The previous OPTIONS code assumed users would be running port build as root. If this was not the case, OPTIONS configuration would fail. Now, the bits of the config and rmconfig targets that require write access to system directories are run under SU_CMD. The makesum target will now add a SIZE attribute for each distfile by default. This can be overridden by defining NO_SIZE in a port's Makefile. Note: this could probably be expanded to omit SIZE attributes for specific distfiles in the future. 20040129: AUTHOR: trevor@FreeBSD.org SIZE lines in distinfo files: if you set USE_SIZE when you do "make makesum", the byte sizes of the distfiles will be listed in the distinfo file. Then, if a distfile is replaced on its master site with one of a different size than that listed, "make fetch" will fail with a "size mismatch" error before downloading the file and the user will be asked to fetch the file by hand. Also, a user will know the size of the distfiles before fetching and decide to fetch later. 20040129: AUTHOR: erwin@FreeBSD.org Start of CHANGES file. FORMAT: This file contains a list, in reverse chronological order, of major breakages or added features in tracking ports. Not all things will be listed here, and it only starts on January 29, 2004. Copyright information: Copyright 2004-2012 FreeBSD Foundation All Rights Reserved. Redistribution, publication, translation and use, with or without modification, in full or in part, in any form or format of this document are permitted without further permission from the author. THIS DOCUMENT IS PROVIDED BY FREEBSD FOUNDATION ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Contact portmgr@FreeBSD.org if you have any questions about your use of this document. $FreeBSD$ Index: head/Mk/bsd.port.mk =================================================================== --- head/Mk/bsd.port.mk (revision 305636) +++ head/Mk/bsd.port.mk (revision 305637) @@ -1,6483 +1,6491 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # $FreeBSD$ # $NetBSD: $ # # bsd.port.mk - 940820 Jordan K. Hubbard. # This file is in the public domain. # # Please view me with 4 column tabs! # This is the master file for the most common elements to all port # Makefile in the ports system. For a more general overview of its # use and importance, see the Porter's Handbook. # There are two different types of "maintainers" in the ports framework. # The maintainer alias of the bsd.port.mk file is listed below in the # FreeBSD_MAINTAINER entry. You should consult them if you have any # questions/suggestions regarding this file. # # DO NOT COMMIT CHANGES TO THIS FILE BY YOURSELF, EVEN IF YOU DID NOT GET # A RESPONSE FROM THE MAINTAINER(S) WITHIN A REASONABLE TIMEFRAME! ALL # UNAUTHORISED CHANGES WILL BE UNCONDITIONALLY REVERTED! FreeBSD_MAINTAINER= portmgr@FreeBSD.org # For each port, the MAINTAINER variable is what you should consult for # contact information on the person(s) to contact if you have questions/ # suggestions about that specific port. By default (if no MAINTAINER # is listed), a port is maintained by the subscribers of the ports@FreeBSD.org # mailing list, and any correspondence should be directed there. # # MAINTAINER - The e-mail address of the contact person for this port. # Default: ports@FreeBSD.org # # These are meta-variables that are automatically set to the system # you are running on. These are provided in case you need to take # different actions for different values. # # ARCH - The architecture of the target machine, such as would be # returned by "uname -p". # OPSYS - Portability clause. This is the operating system the # makefile is being used on. Automatically set to # "FreeBSD," "NetBSD," or "OpenBSD" as appropriate. # OSREL - The release version (numeric) of the operating system. # OSVERSION - The value of __FreeBSD_version. # # This is the beginning of the list of all variables that need to be # defined in a port, listed in order that they should be included # to fit in with existing conventions. (Exception: MAINTAINER actually # should appear after EXTRACT_ONLY and before MASTER_SITE_BACKUP). # # These variables are used to identify your port. # # PORTNAME - Name of software. Mandatory. # PORTVERSION - Version of software. Mandatory when no DISTVERSION is given. # PORTREVISION - Version of port. Optional. Commonly used to indicate # that an update has happened that affects the port # framework itself, but not the distributed software # (e.g., local patches or Makefile changes). # PORTEPOCH - Optional. In certain odd cases, the PORTREVISION logic # can be fooled by ports that appear to go backwards # numerically (e.g. if port-0.3 is newer than port-1998). # In this case, incrementing PORTEPOCH forces the revision. # Default: 0 (no effect). # PKGNAME - Always defined as # ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. # Do not define this in your Makefile. # PKGNAMEPREFIX - Prefix to specify that port is language-specific, etc. # Optional. # PKGNAMESUFFIX - Suffix to specify compilation options. Optional. # PKGVERSION - Always defined as # ${PORTVERSION}. # Do not define this in your Makefile. # UNIQUENAME - A name for your port that is globally unique. By default, # this is set to ${LATEST_LINK} when LATEST_LINK is set, # and to ${PKGNAMEPREFIX}${PORTNAME} otherwise. # DISTVERSION - Vendor version of the distribution. # Default: ${PORTVERSION} # DISTNAME - Name of port or distribution used in generating # WRKSRC and DISTFILES below. # Default: # ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} # CATEGORIES - A list of descriptive categories into which this port falls. # Mandatory. # # These variable describe how to fetch files required for building the port. # # DISTFILES - Name(s) of archive file(s) containing distribution. # Set this to an empty string if the port doesn't require it. # Default: ${DISTNAME}${EXTRACT_SUFX} # EXTRACT_SUFX - Suffix for archive names # You never have to set both DISTFILES and EXTRACT_SUFX. # Default: .tar.bz2 if USE_BZIP2 is set, .zip if USE_ZIP is # set, .tar.xz if USE_XZ is set, .run if USE_MAKESELF is set, # .tar.gz otherwise). # MASTER_SITES - Primary location(s) for distribution files if not found # locally. See bsd.sites.mk for common choices for # MASTER_SITES. # MASTER_SITE_SUBDIR # - Subdirectory of MASTER_SITES. Will sometimes need to be # set to ${PORTNAME} for (e.g.) MASTER_SITE_SOURCEFORGE. # Only guaranteed to work for choices of ${MASTER_SITES} # defined in bsd.sites.mk. # Default: not set. # PATCHFILES - Name(s) of additional files that contain distribution # patches. Make will look for them at PATCH_SITES (see below). # They will automatically be uncompressed before patching if # the names end with ".gz", ".bz2" or ".Z". # Default: not set. # PATCH_SITES - Primary location(s) for distribution patch files # if not found locally. # DIST_SUBDIR - Suffix to ${DISTDIR}. If set, all ${DISTFILES} and # ${PATCHFILES} will be put in this subdirectory of # ${DISTDIR} (see below). Also they will be fetched in this # subdirectory from FreeBSD mirror sites. # ALLFILES - All of ${DISTFILES} and ${PATCHFILES}. # IGNOREFILES - If set, don't perform checksum checks on these files. # NOFETCHFILES - If set, don't download these files from the ${MASTER_SITES} # or ${MASTER_SITE_BACKUP} (but do from # ${MASTER_SITE_OVERRIDE}) # EXTRACT_ONLY - If set, a subset of ${DISTFILES} you want to # actually extract. # ALWAYS_KEEP_DISTFILES # - If set, the package building cluster will save the distfiles # along with the packages. This may be required to comply with # some licenses, e.g. GPL in some cases. # Default: not set. # # (NOTE: by convention, the MAINTAINER entry (see above) should go here.) # # These variables are typically set in /etc/make.conf to indicate # the user's preferred location to fetch files from. You should # rarely need to set these. # # MASTER_SITE_BACKUP # - Backup location(s) for distribution files and patch # files if not found locally and ${MASTER_SITES}/${PATCH_SITES} # Default: # ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ # MASTER_SITE_OVERRIDE # - If set, override the MASTER_SITES setting with this # value. # MASTER_SITE_FREEBSD # - If set, only use ${MASTER_SITE_BACKUP} for # MASTER_SITES. # CD_MOUNTPTS - List of CDROM mountpoints to look for distfiles under. # This variable supercedes CD_MOUNTPT, which is # obsolete. # # Set these if your port should not be built under certain circumstances. # These are string variables; you should set them to the reason why # they are necessary. # # RESTRICTED - Prevent the distribution of distfiles and packages to # the FTP sites or on CDROM (e.g. forbidden by license # considerations). # NO_CDROM - Packages and distfiles may not go on CDROM (e.g. must # not be re-sold) but can go on FTP sites. # NO_PACKAGE - Port should not be packaged for ftp sites or CDROMs, # but distfiles can be put on ftp sites and CDROMs. # FORBIDDEN - Package build should not be attempted because of # security vulnerabilities. # IGNORE - Package build should be skipped entirely (e.g. # because of serious unfixable problems in the build, # because it cannot be manually fetched, etc). Error # logs will not appear on pointyhat, so this should be # used sparingly. # BROKEN - Port is believed to be broken. Package builds will # still be attempted on the pointyhat package cluster to # test this assumption. # DEPRECATED - Port is deprecated to install. Advisory only. # EXPIRATION_DATE # - If DEPRECATED is set, determines a date when # the port is planed to remove. The date format is # ISO 8601 (YYYY-MM-DD). # # DISABLE_VULNERABILITIES # - If set, do not check if the port is listed in the # vulnerabilities database. # # In addition to RESTRICTED or NO_CDROM, if only a subset of distfiles # or patchfiles have redistribution restrictions, set the following # to the list of such files. # # RESTRICTED_FILES # - List of files that cannot be redistributed. # Default: "${DISTFILES} ${PATCHFILES}" if RESTRICTED # or NO_CDROM is set, empty otherwise. # # These variables are booleans, so you don't need to set them to the reason. # # IS_INTERACTIVE # - Set this if your port needs to interact with the user # during any step in a package build. User can then decide # to skip this port by setting ${BATCH}, or compiling only # the interactive ports by setting ${INTERACTIVE}. # Default: not set. # USE_SUBMAKE - Set this if you want that each of the port's main 6 targets # (extract, patch, configure, build, install and package) to be # executed in a separate make(1) process. Useful when one of # the stages needs to influence make(1) variables of the later # stages using ${WRKDIR}/Makefile.inc generated on the fly. # Default: not set. # # Set these if your port only makes sense to certain architectures. # They are lists containing names for them (e.g., "alpha i386"). # (Defaults: not set.) # # ONLY_FOR_ARCHS # - Only build ports if ${ARCH} matches one of these. # NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these. # ONLY_FOR_ARCHS_REASON # ONLY_FOR_ARCHS_REASON_${ARCH} # - Reason why it's only for ${ONLY_FOR_ARCHS}s # NOT_FOR_ARCHS_REASON # NOT_FOR_ARCHS_REASON_${ARCH} # - Reason why it's not for ${NOT_FOR_ARCHS}s # IA32_BINARY_PORT # - Set this instead of ONLY_FOR_ARCHS if the given port # fetches and installs compiled i386 binaries. # # Dependency checking. Use these if your port requires another port # not in the list below. (Default: empty.) # # EXTRACT_DEPENDS # - A list of "path:dir[:target]" tuples of other ports this # package depends on in the "extract" stage. "path" is # the name of a file if it starts with a slash (/), an # executable otherwise. make will test for the existence # (if it is a full pathname) or search for it in your # $PATH (if it is an executable) and go into "dir" to do # a "make all install" if it's not found. If the third # field ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # PATCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends on in the "patch" stage. "path" is the # name of a file if it starts with a slash (/), an # executable otherwise. make will test for the existence # (if it is a full pathname) or search for it in your # $PATH (if it is an executable) and go into "dir" to do # a "make all install" if it's not found. If the third # field ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends in the "fetch" stage. "path" is the # name of a file if it starts with a slash (/), an # executable otherwise. make will test for the # existence (if it is a full pathname) or search for # it in your $PATH (if it is an executable) and go # into "dir" to do a "make all install" if it's not # found. If the third field ("target") exists, it will # be used instead of ${DEPENDS_TARGET}. The first field # also supports a package name with a version range, in # the form package>=1.2 if a particular version is desired. # BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends to build (between the "extract" and # "build" stages, inclusive). The test done to # determine the existence of the dependency is the # same as FETCH_DEPENDS. If the third field ("target") # exists, it will be used instead of ${DEPENDS_TARGET}. # RUN_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends to run. The test done to determine # the existence of the dependency is the same as # FETCH_DEPENDS. This will be checked during the # "install" stage and the name of the dependency will # be put into the package as well. If the third field # ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # LIB_DEPENDS - A list of "lib:dir[:target]" tuples of other ports this # package depends on. "lib" is the name of a shared library. # make will use "ldconfig -r" to search for the library. # lib can contain extended regular expressions. # DEPENDS_TARGET # - The default target to execute when a port is calling a # dependency. # Default: install # # These variables control options about how a port gets built and/or # are shorthand notations for common sets of dependencies. # Use these if your port uses some of the common software packages. By # convention these should be set to 'yes', although they only need to be # defined. Defaults: not set, unless explicitly indicated below. # # Note: the distinction between the USE_* and WANT_* variables, and the # WITH_* and WITHOUT_* variables, are that the former are restricted to # usage inside the ports framework, and the latter are reserved for user- # settable options. (Setting USE_* in /etc/make.conf is always wrong). # # WITH_DEBUG - If set, debugging flags are added to CFLAGS and the # binaries don't get stripped by INSTALL_PROGRAM or # INSTALL_LIB. Besides, individual ports might # add their specific to produce binaries for debugging # purposes. You can override the debug flags that are # passed to the compiler by setting DEBUG_FLAGS. It is # set to "-g" at default. # # USE_BZIP2 - If set, this port tarballs use bzip2, not gzip, for # compression. # USE_XZ - If set, this port tarballs use xz (or lzma) # for compression # USE_ZIP - If set, this port distfile uses zip, not tar w/[bg]zip # for compression. # USE_MAKESELF - If set, this port distfile uses makeself, not tar w/[bg]zip # for compression. # USE_DOS2UNIX - If set to "YES", remove the ^M from all files # under ${WRKSRC}. If set to a string, remove in all # files under ${WRKSRC} with one of these names the ^Ms. # DOS2UNIX_REGEX # - Limit the ^M removal to files which name matches # the regular expression. # USE_GCC - If set, this port requires this version of gcc, either in # the system or installed from a port. # USE_CSTD - Override the default C language standard (gnu89, gnu99) # USE_BINUTILS - Use binutils suite from port instead of the version in base. # USE_GMAKE - If set, this port uses gmake. # GMAKE - Set to path of GNU make if not in $PATH. # Default: gmake ## # USE_ICONV - If set, this port uses libiconv. # USE_GETTEXT - The port uses GNU gettext (libintl). # 'build' as a build-time dependency # 'yes' as a library dependency # 'run' as a run-time dependency ## # USE_GHOSTSCRIPT # - If set, this port needs ghostscript to both # build and run. If a number is specified, # the specified version will be used. # The valid value is '7', '8', or '9' in that case. # USE_GHOSTSCRIPT_BUILD # - If set, this port needs ghostscript to build. # USE_GHOSTSCRIPT_RUN # - If set, this port needs ghostscript to run. # GHOSTSCRIPT_PORT # - The port that provides postscript functionality. # Some installations may wish to override the default # to specify a version without X11 and/or localized # versions for their nationality. # Default: print/ghostscript9 # WITH_GHOSTSCRIPT_VER # - If set, the specified version of ghostscript will be # used. The valid value is "7", "8", or "9". Note that # this is for users, not for port maintainers. This # should not be used in Makefile. ## # USE_BISON - Implies that the port uses bison in one way or another: # 'build', 'run', 'both', implying build, # runtime, and both build/run dependencies ## # USE_IMAKE - If set, this port uses imake. # XMKMF - Set to path of `xmkmf' if not in $PATH # Default: xmkmf -a # USE_DISPLAY - If set, this ports requires a (virtual) X11 environment # setup. If the environment variable DISPLAY Is not set, # then an extra build dependency on Xvfb is added. Further, # if PACKAGE_BUILDING is not set, then CONFIGURE_ENV and # MAKE_ENV are extended with a DISPLAY variable. # # USE_FREETYPE - If set, this port uses the freetype print libraries. # USE_GL - A list of Mesa or GL related dependencies needed by the port. # Supported components are: glut, glu, glw, gl and linux. # If set to "yes", this is equivalent to "glu". Note that # glew and glut depend on glu, glw and glu depend on gl. # USE_MOTIF - If set, this port uses a Motif toolkit. Implies USE_XORG+= xpm # NO_OPENMOTIF - If set, this port uses a custom Motif toolkit # instead of Openmotif. # Used only when USE_MOTIF is set. # WANT_LESSTIF - If set, this port uses Lesstif as Motif toolkit. # Used only when USE_MOTIF is set. Implies # NO_OPENMOTIF. ## # USE_SDL - If set, this port uses the sdl libraries. # See bsd.sdl.mk for more information. ## # USE_READLINE - If set, this port uses libreadline. # Legal values are: yes, base, port # yes, base: use base system libreadline on FreeBSD 9 or earlier, # use ports/devel/readline on FreeBSD 10.0+ # port: always use ports/devel/readline ## # USE_OPENAL - If set, this port relies on the OpenAL package. # Legal values are: al, soft, si, alut. # If set to an unknown value, the port is marked broken. # WANT_OPENAL - User-specific OpenAL wishes. # Legal values are: soft, si. The default is soft. ## # USE_OPENSSL - If set, this port relies on the OpenSSL package. ## # USE_OPENLDAP - If set, this port uses the OpenLDAP libraries. # Implies: WANT_OPENLDAP_VER?=24 # WANT_OPENLDAP_VER # - Legal values are: 23, 24 # If set to an unknown value, the port is marked BROKEN. # WANT_OPENLDAP_SASL # - If set, the system should use OpenLDAP libraries # with SASL support. ## # USE_FAM - If set, this port uses the File Alteration Monitor. # # WANT_FAM_SYSTEM # - Legal values are: gamin (default),fam # If set to an unknown value, the port is marked IGNORE. ## # USE_AUTOTOOLS - If set, this port uses various GNU autotools # (libtool, autoconf, autoheader, automake et al.) # See bsd.autotools.mk for more details. ## # USE_SCONS - If set, this port uses the Python-based SCons build system # See bsd.scons.mk for more details. ## # USE_EFL - If set, this port use EFL libraries. # Implies inclusion of bsd.efl.mk. (Also see # that file for more information on USE_EFL_*). # USE_FPC - If set, this port relies on the Free Pascal language. # Implies inclusion of bsd.fpc.mk. (Also see # that file for more information on WANT_FPC_*). # USE_JAVA - If set, this port relies on the Java language. # Implies inclusion of bsd.java.mk. (Also see # that file for more information on USE_JAVA_*). # USE_OCAML - If set, this port relies on the OCaml language. # Implies inclusion of bsd.ocaml.mk. (Also see # that file for more information on USE_OCAML*). # USE_PYTHON - If set, this port relies on the Python language. # Implies inclusion of bsd.python.mk. (Also see # that file for more information on USE_PYTHON_* # and USE_PYDISTUTILS). # USE_R_MOD - If set, this port uses the Comprehensive R Archive Network. # See bsd.cran.mk for more details. # USE_RUBY - If set, this port relies on the Ruby language. # Implies inclusion of bsd.ruby.mk. (Also see # that file for more information on USE_RUBY_*). # USE_GNUSTEP - If set, this port relies on the GNUstep system. # Implies the inclusion of bsd.gnustep.mk. # (Also see that file for more information on # USE_GNUSTEP_*). ## # USE_GECKO - If set, this port uses the Gecko/Mozilla product. # See bsd.gecko.mk for more details. ## # USE_GNOME - A list of the Gnome dependencies the port has (e.g., # glib12, gtk12). Implies that the port needs Gnome. # Implies inclusion of bsd.gnome.mk. See bsd.gnome.mk # or http://www.FreeBSD.org/gnome/docs/porting.html # for more details. ## # USE_LUA - If set, this port uses the Lua library and related # components. See bsd.lua.mk for more details. ## # USE_WX - If set, this port uses the WxWidgets library and related # components. See bsd.wx.mk for more details. ## # USE_KDEBASE_VER - Set to 3 to use the KDE windowing system. # Implies inclusion of bsd.kde.mk. # # USE_KDELIBS_VER - Set to 3 to use the KDE libraries. # Implies inclusion of bsd.kde.mk. # # USE_KDE4 - A list of the KDE4 dependencies the port has (e.g., # kdelibs, kdebase). Implies that the port needs KDE. # Implies inclusion of bsd.kde4.mk. See bsd.kde4.mk # for more details. # # USE_QT_VER - Set to 3 to use the Qt 3 libraries. # Implies inclusion of bsd.kde.mk. # # USE_QT4 - A list of the QT4 dependencies the port has (e.g, # corelib, webkit). Implies that the port needs Qt. # Implies the inclusion of bsd.qt.mk. See bsd.qt.mk # for more details. # # USE_LINUX - Set to yes to say the port needs the default linux base port. # Set to value , if the port needs emulators/linux_base-. # If set to "7", a dependency is registered to emulators/linux_base. # Implies appropriate settings for STRIP and STRIP_CMD. # USE_LINUX_PREFIX # - controls the action of PREFIX (see above). Only use this # if the port is a linux infrastructure port (e.g. contains libs # or a sound server which supports the FreeBSD native one), # use the default or the X11 prefix if it's a leaf port # (e.g. a game or program). # Implies NO_MTREE=yes, and, if USE_LDCONFIG is defined: # - USE_LINUX=yes # - appropriate invocation of the Linux ldconfig # USE_LINUX_RPM - Set to yes to pull in variables and targets useful to Linux # RPM ports. # Implies inclusion of bsd.linux-rpm.mk. # # LINUX_OSRELEASE - Contains the value of compat.linux.osrelease sysctl. # Will be used to distinguish which linux # infrastructure ports should be used. # Valid values: 2.4.2, 2.6.16. # AUTOMATIC_PLIST # - Set to yes to enable automatic packing list generation. # Currently has no effect unless USE_LINUX_RPM is set. # # OVERRIDE_LINUX_BASE_PORT # - This specifies the default linux base to use, for valid # values have a look at the description of USE_LINUX. This is # an user-only variable. Don't use it in any port, it's meant # to be used in make.conf. # # LINUX_BASE_PORT # - This is a read-only variable, it gets set to a value which is # usable in *_DEPENDS (e.g. BUILD_DEPENDS=${LINUX_BASE_PORT}). # It honors USE_LINUX=foo and OVERRIDE_LINUX_BASE_PORT. ## # USE_XORG - Set to a list of X.org module dependencies. # Implies inclusion of bsd.xorg.mk. ## # USE_RC_SUBR - If set, the ports startup/shutdown script uses the common # routines found in /etc/rc.subr. # If this is set to a list of files, these files will be # automatically added to ${SUB_FILES}, some %%VAR%%'s will # automatically be expanded, they will be installed in # ${PREFIX}/etc/rc.d and added to the packing list. # USE_RCORDER - List of rc.d startup scripts to be called early in the boot # process. This acts exactly like USE_RC_SUBR except that # scripts are installed in /etc/rc.d. # Because local rc.d scripts are included in the base rcorder # this option is not needed unless the port installs in the base. ## # USE_APACHE - If set, this port relies on an apache webserver. # # USE_CDRTOOLS - If set, this port depends on sysutils/cdrtools. # # USE_NCURSES - If set, this port relies on the ncurses package. # # USE_PKGCONFIG - Implies that the port uses pkg-config in one way or another: # 'build', 'run', 'both', implying build, # runtime, and both build/run dependencies # # Conflict checking. Use if your port cannot be installed at the same time as # another package. # # CONFLICTS - A list of package name patterns that the port conflicts # with, separated by blanks. The names may include shell # pattern meta-characters "*", "?", "[", "]", and "!". # Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_* # # CONFLICTS_BUILD # - Check conflict prior to the build. # # CONFLICTS_INSTALL # - Check conflict prior to the installation stage. # # Various directory definitions and variables to control them. # You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR. # # LOCALBASE - Where non-X11 ports install things. # Default: /usr/local # LINUXBASE - Where Linux ports install things. # Default: /compat/linux # PREFIX - Where *this* port installs its files. # Default: ${LINUXBASE} if USE_LINUX_PREFIX is set, # otherwise ${LOCALBASE} # # IGNORE_PATH_CHECKS # - There are some sanity checks against PREFIX. # You can disable these checks with defining # this variable, but this is not recommended! # Only do this if you really know what you are # doing. These sanity checks are the following: # - PREFIX has to be an absolute path. # - PREFIX can't have a trailing slash. # # MASTERDIR - Where the port finds patches, package files, etc. Define # this is you have two or more ports that share most of the # files. # Default: ${.CURDIR} # PORTSDIR - The root of the ports tree. # Default: /usr/ports # DISTDIR - Where to search for and store copies of original sources # Default: ${PORTSDIR}/distfiles # PACKAGES - A top level directory where all packages go (rather than # going locally to each port). # Default: ${PORTSDIR}/packages # WRKDIRPREFIX - The place to root the temporary working directory # hierarchy. # Default: none # WRKDIR - A temporary working directory that gets *clobbered* on clean # Default: ${WRKDIRPREFIX}${.CURDIR}/work # WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually # unpacks to. # Default: ${WRKDIR}/${DISTNAME} unless NO_WRKSUBDIR is set, # in which case simply ${WRKDIR} # NO_WRKSUBDIR - Assume port unpacks directly into ${WRKDIR}. # PATCHDIR - A directory containing any additional patches you made # to port this software to FreeBSD. # Default: ${MASTERDIR}/files # SCRIPTDIR - A directory containing any auxiliary scripts # Default: ${MASTERDIR}/scripts # FILESDIR - A directory containing any miscellaneous additional files. # Default: ${MASTERDIR}/files # PKGDIR - A directory containing any package creation files. # Default: ${MASTERDIR} # SRC_BASE - The root of the src tree. (Some ports require this to get # kernel sources). Default: /usr/src # UID_FILES - A list of files containing information about registered UIDs. # Note that files have decreasing priority. # GID_FILES - A list of files containing information about registered GIDs. # Note that files have decreasing priority. # # Variables that serve as convenient "aliases" for your *-install targets. # Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin". # # INSTALL_PROGRAM # - A command to install binary executables. (By # default, also strips them, unless ${STRIP} is # overridden to be the empty string). # INSTALL_KLD - As INSTALL_PROGRAM, but without the STRIP. # INSTALL_LIB - As INSTALL_DATA, but also strips the file. # INSTALL_SCRIPT # - A command to install executable scripts. # INSTALL_DATA - A command to install sharable data. # INSTALL_MAN - A command to install manpages. May or not compress, # depending on the value of MANCOMPRESSED (see below). # # Boolean to control whether manpages are installed. # # NO_INSTALL_MANPAGES # - If set, this port doesn't want to install any manpages. # Default: not set, i.e. manpages are installed by default. # # Set the following to specify all manpages that your port installs. # These manpages will be automatically listed in ${PLIST}. Depending # on the setting of NO_MANCOMPRESS, the make rules will compress the # manpages for you. # # MAN - A list of manpages, categorized by section. For # example, if your port has "man/man1/foo.1" and # "man/mann/bar.n", set "MAN1=foo.1" and "MANN=bar.n". # The available sections chars are "123456789LN". # MAN_ # - If your port does not install all man pages for all # languages in MANLANG, language specific pages for # a language can be specified with this. For example, # if the port installs foo.1 in English, Japanese, and # German, bar.1 in English only, and baz.3 in German # only, set # MANLANG= "" de ja # MAN1= foo.1 # MAN1_EN= bar.1 # MAN3_DE= baz.3 # MLINKS - A list of tuples for creating links # for manpages. For example, "MLINKS= a.1 b.1 c.3 d.3" # will do an "ln -sf a.1 b.1" and "ln -sf c.3 d.3" in # appropriate directories. (Use this even if the port # installs its own manpage links so they will show up # correctly in ${PLIST}.) # MANPREFIX - The directory prefix for ${MAN} and ${MLINKS}. # Default: ${PREFIX} # MANPREFIX # - If manual pages of some sections install in different # locations than others, use these. # Default: ${MANPREFIX} # MANCOMPRESSED - This variable can take values "yes", "no" or # "maybe". "yes" means manpages are installed # compressed; "no" means they are not; "maybe" means # it changes depending on the value of NO_MANCOMPRESS. # Default: "yes" if USE_IMAKE is set and NO_INSTALL_MANPAGES # is not set, and "no" otherwise. # # Set the following to specify all .info files your port installs. # # INFO - A list of .info files (omitting the trailing ".info"); # only one entry per document! These files are listed in # the path relative to ${INFO_PATH}. # INFO_PATH - Path, where all .info files will be installed by your # port, relative to ${PREFIX} # Default: "share/info" if ${PREFIX} is equal to /usr # and "info" otherwise. # # Set the following to specify all documentation your port installs into # ${DOCSDIR} # # PORTDOCS - A list of files and directories relative to DOCSDIR. # Shell glob patterns can be used, directories include # the entire subtree of contained files and directories. # Should not be set when no documentation files are # installed. # Useful for dynamically generated documentation. # # Set the following to specify all documentation your port installs into # ${EXAMPLESDIR} # # PORTEXAMPLES - A list of files and directories relative to EXAMPLESDIR. # Shell glob patterns can be used, directories include # the entire subtree of contained files and directories. # Should not be set when no examples files are # installed. # Useful for dynamically generated examples. # # Set the following to specify all files and directories your port installs into # ${DATADIR} # # PORTDATA - A list of files and directories relative to DATADIR. # Shell glob patterns can be used, directories include # the entire subtree of contained files and directories. # Should not be set when no data files are # installed. # Useful for dynamically generated data files. # # Default targets and their behaviors: # # fetch - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this # port. # fetch-list - Show list of commands to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port. # fetch-recursive # - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this # port and dependencies. # fetch-recursive-list # - Show list of commands to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port and dependencies. # fetch-required # - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this # port and dependencies. # fetch-required-list # - Show list of commands to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port and dependencies. # fetch-url-list # - Show list of URLS to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port. # fetch-urlall-list # - Show list of URLS to retrieve ${DISTFILES} and # ${PATCHFILES} for this port. # # all-depends-list # - Show all directories which are dependencies # for this port. # build-depends-list # - Show all directories which are build-dependencies # for this port. # package-depends-list # - Show all directories which are package-dependencies # for this port. This is based upon the dependency # tree as recorded in the Makefiles of the ports # collection, not as recorded in the currently # installed ports. # actual-package-depends # - Like package-depends-list but with the difference # that the dependencies of the currently installed # ports are used instead of the dependencies as # recorded in the ports collection. # run-depends-list # - Show all directories which are run-dependencies # for this port. # # extract - Unpacks ${DISTFILES} into ${WRKDIR}. # patch - Apply any provided patches to the source. # configure - Runs either GNU configure, one or more local configure # scripts or nothing, depending on what's available. # build - Actually compile the sources. # install - Install the results of a build. # reinstall - Install the results of a build, ignoring "already installed" # flag. # deinstall - Remove the installation. # deinstall-all - Remove all installations with the same PKGORIGIN. # package - Create a package from an _installed_ port. # package-recursive # - Create a package for a port and _all_ of its dependencies. # describe - Try to generate a one-line description for each port for # use in INDEX files and the like. # checkpatch - Do a "patch -C" instead of a "patch". Note that it may # give incorrect results if multiple patches deal with # the same file. # checksum - Use distinfo to ensure that your distfiles are valid. # checksum-recursive # - Run checksum in this port and all dependencies. # makesum - Generate distinfo (only do this for your own ports!). # clean - Remove ${WRKDIR} and other temporary files used for building. # clean-depends - Do a "make clean" for all dependencies. # config - Configure options for this port (using ${DIALOG}). # Automatically run prior to extract, patch, configure, build, # install, and package. # config-recursive # - Configure options for this port for a port and all its # dependencies. # showconfig - Display options config for this port. # showconfig-recursive # - Display options config for this port and all its # dependencies. # rmconfig - Remove the options config for this port. # rmconfig-recursive # - Remove the options config for this port and all its # dependencies. # # Default sequence for "all" is: # # check-sanity fetch checksum extract patch configure build # # Please read the comments in the targets section below; you # should be able to use the pre-* or post-* targets/scripts # (which are available for every stage except checksum) or # override the do-* targets to do pretty much anything you want. # # NEVER override the "regular" targets unless you want to open # a major can of worms. # # Set these variables if your port doesn't need some of the steps. # Note that there are no NO_PATCH or NO_CONFIGURE variables because # those steps are empty by default. NO_EXTRACT is not allowed anymore # since we need to at least create ${WRKDIR}. Also, NO_CHECKSUM is a user # variable and is not to be set in a port's Makefile. See above for NO_PACKAGE. # # NO_BUILD - Use a dummy (do-nothing) build target. # NO_INSTALL - Use a dummy (do-nothing) install target. # # Here are some variables used in various stages. # # For options see bsd.options.mk # # For fetch: # # FETCH_BINARY - Path to ftp/http fetch command if not in $PATH. # Default: "/usr/bin/fetch" # FETCH_ARGS - Arguments to ftp/http fetch command. # Default: "-AFpr" # FETCH_CMD - ftp/http fetch command. # Default: ${FETCH_BINARY} ${FETCH_ARGS} # FETCH_BEFORE_ARGS # - Arguments to ${FETCH_CMD} before filename. # Default: none # FETCH_AFTER_ARGS # - Arguments to ${FETCH_CMD} following filename. # Default: none # FETCH_ENV - Environment to pass to ${FETCH_CMD}. # Default: none # FETCH_REGET - Times to retry fetching of files on checksum errors. # Default: 1 # CLEAN_FETCH_ENV # - Disable package dependency in fetch target for mass # fetching. User settable. # # For extract: # # EXTRACT_CMD - Command for extracting archive: "bzip2" if USE_BZIP2 # is set, "unzip" if USE_ZIP is set, "unmakeself" if # USE_MAKESELF if set, "gzip" otherwise. # EXTRACT_BEFORE_ARGS # - Arguments to ${EXTRACT_CMD} before filename. # Default: "-dc" # EXTRACT_AFTER_ARGS # - Arguments to ${EXTRACT_CMD} following filename. # default: "| tar -xf -" # EXTRACT_PRESERVE_OWNERSHIP # - Normally, when run as "root", the extract stage will # change the owner and group of all files under ${WRKDIR} # to 0:0. Set this variable if you want to turn off this # feature. # For patch: # # EXTRA_PATCHES - Define this variable if you have patches not in # ${PATCHDIR}. This usually happens when you need to # do some pre-processing before some distribution # patches can be applied. In that case, fetch them as # extra distfiles, put the processed results in # ${WRKDIR}, then point EXTRA_PATCHES to them. # The patches specified by this variable will be # applied after the normal distribution patches but # before those in ${PATCHDIR}. # PATCH_WRKSRC - Directory to apply patches in. # Default: ${WRKSRC} # # For configure: # # HAS_CONFIGURE - If set, this port has its own configure script. The # configure stage will not do anything if this is not set. # GNU_CONFIGURE - If set, you are using GNU configure (optional). Implies # HAS_CONFIGURE. # CONFIGURE_WRKSRC # - Directory to run configure in. # Default: ${WRKSRC} # CONFIGURE_SCRIPT # - Name of configure script, relative to ${CONFIGURE_WRKSRC}. # Default: "Makefile.PL" if PERL_CONFIGURE is set, # "configure" otherwise. # CONFIGURE_TARGET # - The name of target to call when GNU_CONFIGURE is # defined. # Default: ${ARCH}-portbld-freebsd${OSREL} # GNU_CONFIGURE_PREFIX # - The directory passed as prefix to the configure script if # GNU_CONFIGURE is set. # Default: ${PREFIX} # CONFIGURE_ARGS # - Pass these args to configure if ${HAS_CONFIGURE} is set. # Default: "--prefix=${GNU_CONFIGURE_PREFIX} --infodir=${PREFIX}/${INFO_PATH} # --mandir=${MANPREFIX}/man --build=${CONFIGURE_TARGET}" if # GNU_CONFIGURE is set, "CC=${CC} CFLAGS=${CFLAGS} # PREFIX=${PREFIX} INSTALLPRIVLIB=${PREFIX}/lib # INSTALLARCHLIB=${PREFIX}/lib" if PERL_CONFIGURE is set, # empty otherwise. # CONFIGURE_ENV - Pass these env (shell-like) to configure if # ${HAS_CONFIGURE} is set. # CONFIGURE_LOG - The name of configure log file. It will be printed to # the screen if configure fails. # Default: config.log # CONFIGURE_FAIL_MESSAGE # - A message displayed to users when configure # fails (note: this assumes the do-configure # target has not been overwritten). This message # will be passed through /usr/bin/fmt before # being shown to the user. # # WITHOUT_FBSD10_FIX Disable FreeBSD 10.0 autotools workaround. # # For build and install: # # MAKEFILE - Name of the makefile. # Default: Makefile # ALL_TARGET - Default target for sub-make in build stage. # Default: all # BUILD_WRKSRC - Directory to do build in (default: ${WRKSRC}). # MAKE_ENV - Additional environment vars passed to sub-make in build # and install stages. # Default: see below # MAKE_ARGS - Any extra arguments to sub-make in build and install stages. # Default: none ## # MAKE_JOBS_SAFE # - This port can safely be built on multiple cpus in parallel. # The make will be invoked with -jX parameter where X equals # number of cores present in the system. # MAKE_JOBS_UNSAFE # - Disallow multiple jobs even when user set a global override. # To be used with known bad ports. # DISABLE_MAKE_JOBS # - Set to disable the multiple jobs feature. User settable. # FORCE_MAKE_JOBS # - Force all ports to be built with multiple jobs, except ports # that are explicitly marked MAKE_JOBS_UNSAFE. User settable. # MAKE_JOBS_NUMBER # - Override the number of make jobs to be used. User settable. ## cacche # # WITH_CCACHE_BUILD # - Enable CCACHE support (devel/ccache). User settable. # NO_CCACHE # - Disable CCACHE support for example for certain ports if # CCACHE is enabled. User settable. # # For install: # # INSTALL_TARGET # - Default target for sub-make in install stage. # Default: install # INSTALL_WRKSRC # - Directory to install from # Default: ${WRKSRC} # NO_MTREE - If set, will not invoke mtree from bsd.port.mk from # the "install" target. # MTREE_FILE - The name of the mtree file. # Default: ${PORTSDIR}/Templates/BSD.local.dist or # /etc/mtree/BSD.usr.dist if ${PREFIX} == "/usr". # PLIST_DIRS - Directories to be added to packing list # PLIST_DIRSTRY - Directories to be added to packing list and try to remove them. # PLIST_FILES - Files and symbolic links to be added to packing list # # PLIST - Name of the `packing list' file. # Change this to ${WRKDIR}/PLIST or something if you # need to write to it. (It is not a good idea for a port # to write to any file outside ${WRKDIR} during a normal # build.) # Default: ${PKGDIR}/pkg-plist # TMPPLIST - Name of the `packing list' file after processing # Default: ${WRKDIR}/.PLIST.mktmp # PLIST_SUB - List of "variable=value" pair for substitution in ${PLIST} # Default: see below # # SUB_FILES - Files that should be passed through sed and redirected to # ${WRKDIR}. # - For each file specified in SUB_FILES, there must be a # corresponding file in ${FILESDIR} whose suffix is ".in". For # instance, if the Makefile specifies "SUB_FILES= pkg-message" # then there must be a file called pkg-message.in in # ${FILESDIR}. # - The substitution process is the same as PLIST_FILES, as # described below except that any line beginning with @comment # is deleted. # SUB_LIST - List of "variable=value" pair for substitution in ${SUB_FILES} # Some pairs are added by default: eg. PREFIX=${PREFIX} # # USE_LDCONFIG - If set to "yes", this adds ${PREFIX}/lib to the list of # directories to be searched for shared libraries. # Otherwise, this is a list of directories to be added to that # list. The directory names are written to # ${PREFIX}/libdata/ldconfig/${UNIQUENAME} which is then # used by the ldconfig startup script. # This mechanism replaces ldconfig scripts installed by some # ports, often under such names as 000.${UNQUENAME}.sh. # If USE_LINUX_PREFIX is defined, the Linux version of # ldconfig will be used instead of the native FreeBSD # version, and the directory list given will be ignored. # USE_LDCONFIG32 # - Same as USE_LDCONFIG but the target file is # ${PREFIX}/libdata/ldconfig32/${UNIQUENAME} instead. # Note: that should only be used on 64-bit architectures. # NO_LDCONFIG_MTREE # - Denotes whether the libdata/ldconfig directory is part of # the mtree on a given OSVERSION system. If it is not, we # create the directory, pull in the ldconfig_compat port, # and clean up on de-installation. NOTE: this variable is # internal to bsd.port.mk and must not be set in your Makefile. # # DOCSDIR - Name of the directory to install the packages docs in. # Default: ${PREFIX}/share/doc/${PORTNAME} # DOCSDIR_REL - The DOCSDIR relative to ${PREFIX} # EXAMPLESDIR - Name of the directory to install the packages examples in. # Default: ${PREFIX}/share/examples/${PORTNAME} # EXAMPLESDIR_REL # - The EXAMPLESDIR relative to ${PREFIX} # DATADIR - Name of the directory to install the packages shared data in. # Default: ${PREFIX}/share/${PORTNAME} # DATADIR_REL - The DATADIR relative to ${PREFIX} # # WWWDIR - Name of the directory to install the packages www data in. # Default: ${PREFIX}/www/${PORTNAME} # WWWDIR_REL - The WWWDIR relative to ${PREFIX} # # USERS - List of users to create at install time. Each login must # have a corresponding entry in ${UID_FILES}. # GROUPS - List of groups to create at install time. Each group must # have a corresponding entry in ${GID_FILES}. # # DESKTOPDIR - Name of the directory to install ${DESKTOP_ENTRIES} in. # Default: ${PREFIX}/share/applications # DESKTOP_ENTRIES # - List of desktop entry files to generate and install in # ${DESKTOPDIR}. The format is # "Name" "Comment" "Icon" "Exec" "Categories" StartupNotify # Rules: # * Only add desktop entries for applications which do not # require a terminal (ie. X applications). # * If the upstream distribution already installs .desktop # files, you do not need to use this. # * If you require a more elaborate .desktop file than this # variable permits, write it yourself and install it # in ${DESKTOPDIR}. # Notes: # * Comment and Icon may be empty strings (""). Categories # may be an empty string in some cases (see below). The # other fields are mandatory. # * If Categories is an empty string, bsd.port.mk will try # to deduce a default value using the CATEGORIES variable. # If the deduction fails, you will have to set Categories # manually. You should check the generated value using # "make desktop-categories", and override it if necessary. # * Exec will also be used to name the .desktop file. # * The files will be automatically added to ${PLIST}. # Example: # "X Window Information" \ # "Get information about X windows" \ # "wininfo.png" \ # "wininfo" \ # "Application;System;" \ # true # See http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html # for an explanation of the fields. If you need to create more # than one file, just chain them into a single variable. # # Note that the install target will automatically add manpages (see # above) and also substitute special sequences of characters (delimited # by "%%") as defined in PLIST_SUB to generate ${TMPPLIST}. For # instance, "OSREL=${OSREL}" in PLIST_SUB causes all occurrences of # "%%OSREL%%" in ${PLIST} to be substituted by the value of OSREL. # ${TMPPLIST} is generated before the do-install stage. If you are # generating the packing list on-the-fly, make sure it's generated before # do-install is called! # # For package: # # NO_LATEST_LINK # - Do not install the "Latest" link for package. Define this # if this port is a beta version of another stable port # which is also in the tree. # LATEST_LINK - Install the "Latest" link for the package as ___. Define # this if the "Latest" link name will be incorrectly determined. # # This is used in all stages: # # SCRIPTS_ENV - Additional environment vars passed to scripts in # ${SCRIPTDIR} executed by bsd.port.mk. # Default: see below # # Finally, variables to change if you want a special behavior. These # are for debugging purposes. Don't set them in your Makefile. # # ECHO_MSG - Used to print all the '===>' style prompts - override this # to turn them off. # Default: ${ECHO_CMD} # PATCH_DEBUG - If set, print out more information about the patches as # it attempts to apply them. # PKG_DBDIR - Where package installation is recorded; this directory # must not contain anything else. # Default: /var/db/pkg # PORT_DBDIR - Where port configuration options are recorded. # Default: /var/db/ports # NO_PKG_REGISTER # - Don't register a port installation as a package. # FORCE_PKG_REGISTER # - If set, it will overwrite any existing package # registration information in ${PKG_DBDIR}/${PKGNAME}. # NO_DEPENDS - Don't verify build of dependencies. # CHECKSUM_ALGORITHMS # - Different checksum algorithms to check for verifying the # integrity of the distfiles. The absence of the algorithm # in distinfo doesn't make it fail. # Default: sha256 # NO_CHECKSUM - Don't verify the checksum. Typically used when # when you noticed the distfile you just fetched has # a different checksum and you intend to verify if # the port still works with it. # USE_PACKAGE_DEPENDS # - Install dependencies from existing packages instead # of building the port from scratch. # INSTALL_AS_USER # - Define this to install as the current user, intended # for systems where you have no root access. # DISABLE_SIZE - Do not check the size of a distfile even if the SIZE field # has been specified in distinfo. This is useful # when using an alternate FETCH_CMD. # # End of the list of all variables that need to be defined in a port. # Most port authors should not need to understand anything after this point. # # These need to be absolute since we don't know how deep in the ports # tree we are and thus can't go relative. They can, of course, be overridden # by individual Makefiles or local system make configuration. PORTSDIR?= /usr/ports LOCALBASE?= /usr/local LINUXBASE?= /compat/linux DISTDIR?= ${PORTSDIR}/distfiles _DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} INDEXDIR?= ${PORTSDIR} SRC_BASE?= /usr/src .include "${PORTSDIR}/Mk/bsd.commands.mk" # # DESTDIR section to start a chrooted process if invoked with DESTDIR set # .if defined(DESTDIR) && !empty(DESTDIR) && !defined(CHROOTED) && \ !defined(BEFOREPORTMK) && !defined(INOPTIONSMK) .include "${PORTSDIR}/Mk/bsd.destdir.mk" .else # Look for ${PATCH_WRKSRC}/.../*.orig files, and (re-)create # ${FILEDIR}/patch-* files from them. .if !target(makepatch) makepatch: @${MKDIR} ${FILESDIR} @(cd ${PATCH_WRKSRC}; \ for i in `find . -type f -name '*.orig'`; do \ ORG=$$i; \ NEW=$${i%.orig}; \ OUT=${FILESDIR}`${ECHO} $${NEW} | \ ${SED} -e 's|/|__|g' \ -e 's|^\.__|/patch-|'`; \ ${ECHO} ${DIFF} -ud $${ORG} $${NEW} '>' $${OUT}; \ ${DIFF} -ud $${ORG} $${NEW} > $${OUT} || ${TRUE}; \ done \ ) .endif # Start of options section .if defined(INOPTIONSMK) || ( !defined(USEOPTIONSMK) && !defined(AFTERPORTMK) ) # Get the default maintainer MAINTAINER?= ports@FreeBSD.org # Get the architecture .if !defined(ARCH) ARCH!= ${UNAME} -p .endif # Get the operating system type .if !defined(OPSYS) OPSYS!= ${UNAME} -s .endif # Get the operating system revision .if !defined(OSREL) OSREL!= ${UNAME} -r | ${SED} -e 's/[-(].*//' .endif # Get __FreeBSD_version .if !defined(OSVERSION) .if exists(/usr/include/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h .elif exists(${SRC_BASE}/sys/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${SRC_BASE}/sys/sys/param.h .else OSVERSION!= ${SYSCTL} -n kern.osreldate .endif .endif +.if ${OSVERSION} >= 1000017 +.if !defined(WITHOUT_PKGNG) +WITH_PKGNG= yes +.else +.undef WITH_PKGNG +.endif +.endif + MASTERDIR?= ${.CURDIR} .if ${MASTERDIR} != ${.CURDIR} SLAVE_PORT?= yes MASTER_PORT?=${MASTERDIR:C/[^\/]+\/\.\.\///:C/[^\/]+\/\.\.\///:C/^.*\/([^\/]+\/[^\/]+)$/\\1/} .else SLAVE_PORT?= no MASTER_PORT?= .endif # If they exist, include Makefile.inc, then architecture/operating # system specific Makefiles, then local Makefile.local. .if ${MASTERDIR} != ${.CURDIR} && exists(${.CURDIR}/../Makefile.inc) .include "${.CURDIR}/../Makefile.inc" USE_SUBMAKE= yes .endif .if exists(${MASTERDIR}/../Makefile.inc) .include "${MASTERDIR}/../Makefile.inc" USE_SUBMAKE= yes .endif .if exists(${MASTERDIR}/Makefile.${ARCH}-${OPSYS}) .include "${MASTERDIR}/Makefile.${ARCH}-${OPSYS}" USE_SUBMAKE= yes .elif exists(${MASTERDIR}/Makefile.${OPSYS}) .include "${MASTERDIR}/Makefile.${OPSYS}" USE_SUBMAKE= yes .elif exists(${MASTERDIR}/Makefile.${ARCH}) .include "${MASTERDIR}/Makefile.${ARCH}" USE_SUBMAKE= yes .endif .if exists(${MASTERDIR}/Makefile.local) .include "${MASTERDIR}/Makefile.local" USE_SUBMAKE= yes .endif # where 'make config' records user configuration options PORT_DBDIR?= /var/db/ports UID_FILES?= ${PORTSDIR}/UIDs GID_FILES?= ${PORTSDIR}/GIDs UID_OFFSET?= 0 GID_OFFSET?= 0 # predefined accounts from src/etc/master.passwd # alpha numeric sort order USERS_BLACKLIST= _dhcp _pflogd bin bind daemon games hast kmem mailnull man news nobody operator pop proxy root smmsp sshd toor tty uucp www LDCONFIG_DIR= libdata/ldconfig LDCONFIG32_DIR= libdata/ldconfig32 .if defined(LATEST_LINK) UNIQUENAME?= ${LATEST_LINK} .else UNIQUENAME?= ${PKGNAMEPREFIX}${PORTNAME} .endif .endif DOS2UNIX_REGEX?= .* # At least KDE needs TMPDIR for the package building, # so we're setting it to the known default value. .if defined(PACKAGE_BUILDING) TMPDIR?= /tmp .endif # defined(PACKAGE_BUILDING) # Respect TMPDIR passed via make.conf or similar and pass it down # to configure and make. .if defined(TMPDIR) MAKE_ENV+= TMPDIR="${TMPDIR}" CONFIGURE_ENV+= TMPDIR="${TMPDIR}" .endif # defined(TMPDIR) # Reset value from bsd.own.mk. .if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG) STRIP= #none .endif .include "${PORTSDIR}/Mk/bsd.options.mk" # Start of pre-makefile section. .if !defined(AFTERPORTMK) && !defined(INOPTIONSMK) .if defined(_PREMKINCLUDED) check-makefile:: @${ECHO_MSG} "${PKGNAME}: Makefile error: you cannot include bsd.port[.pre].mk twice" @${FALSE} .endif _PREMKINCLUDED= yes .if defined(PORTVERSION) .if ${PORTVERSION:M*[-_,]*}x != x IGNORE= PORTVERSION ${PORTVERSION} may not contain '-' '_' or ',' .endif DISTVERSION?= ${PORTVERSION:S/:/::/g} .elif defined(DISTVERSION) PORTVERSION= ${DISTVERSION:L:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\1.\2/g:C/:(.)/\1/g:C/[^a-z0-9+]+/./g} .endif PORTREVISION?= 0 .if ${PORTREVISION} != 0 _SUF1= _${PORTREVISION} .endif PORTEPOCH?= 0 .if ${PORTEPOCH} != 0 _SUF2= ,${PORTEPOCH} .endif PKGVERSION= ${PORTVERSION:C/[-_,]/./g}${_SUF1}${_SUF2} PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTNAME?= ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} INDEXFILE?= INDEX-${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} EXAMPLESDIR?= ${PREFIX}/share/examples/${PORTNAME} DATADIR?= ${PREFIX}/share/${PORTNAME} WWWDIR?= ${PREFIX}/www/${PORTNAME} ETCDIR?= ${PREFIX}/etc/${PORTNAME} .if defined(USE_LINUX_RPM) .include "${PORTSDIR}/Mk/bsd.linux-rpm.mk" .endif .if defined(USE_LINUX_APPS) .include "${PORTSDIR}/Mk/bsd.linux-apps.mk" .endif .if defined(USE_XORG) || defined(XORG_CAT) .include "${PORTSDIR}/Mk/bsd.xorg.mk" .endif .if defined(USE_BZIP2) EXTRACT_SUFX?= .tar.bz2 .elif defined(USE_ZIP) EXTRACT_SUFX?= .zip .elif defined(USE_XZ) EXTRACT_SUFX?= .tar.xz .elif defined(USE_MAKESELF) EXTRACT_SUFX?= .run .else EXTRACT_SUFX?= .tar.gz .endif PACKAGES?= ${PORTSDIR}/packages TEMPLATES?= ${PORTSDIR}/Templates PATCHDIR?= ${MASTERDIR}/files FILESDIR?= ${MASTERDIR}/files SCRIPTDIR?= ${MASTERDIR}/scripts PKGDIR?= ${MASTERDIR} .if defined(USE_LINUX_PREFIX) PREFIX?= ${LINUXBASE} NO_MTREE= yes .else PREFIX?= ${LOCALBASE} .endif .if defined(USE_LINUX_PREFIX) LDCONFIG_CMD?= ${LINUXBASE}/sbin/ldconfig -r ${LINUXBASE} .endif PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg .if defined(USE_LOCAL_MK) .include "${PORTSDIR}/Mk/bsd.local.mk" .endif .if defined(USE_OPENSSL) .include "${PORTSDIR}/Mk/bsd.openssl.mk" .endif .if defined(USE_EMACS) .include "${PORTSDIR}/Mk/bsd.emacs.mk" .endif .if defined(USE_GNUSTEP) .include "${PORTSDIR}/Mk/bsd.gnustep.mk" .endif .include "${PORTSDIR}/Mk/bsd.perl.mk" .if defined(USE_PHP) .include "${PORTSDIR}/Mk/bsd.php.mk" .endif .if defined(USE_PYTHON) || defined(USE_PYTHON_BUILD) || defined(USE_PYTHON_RUN) .include "${PORTSDIR}/Mk/bsd.python.mk" .endif .if defined(USE_EFL) || defined(WANT_EFL) || defined(USE_EFL_ESMART) .include "${PORTSDIR}/Mk/bsd.efl.mk" .endif .if defined(USE_FPC) || defined(WANT_FPC_BASE) || defined(WANT_FPC_ALL) .include "${PORTSDIR}/Mk/bsd.fpc.mk" .endif .if defined(USE_JAVA) .include "${PORTSDIR}/Mk/bsd.java.mk" .endif .if defined(USE_R_MOD) .include "${PORTSDIR}/Mk/bsd.cran.mk" .endif .if defined(USE_RUBY) || defined(USE_LIBRUBY) .include "${PORTSDIR}/Mk/bsd.ruby.mk" .endif .if defined(USE_OCAML) .include "${PORTSDIR}/Mk/bsd.ocaml.mk" .endif .if defined(USE_TCL) || defined(USE_TCL_BUILD) || defined(USE_TCL_RUN) || defined(USE_TCL_WRAPPER) || defined(USE_TK) || defined(USE_TK_BUILD) || defined(USE_TK_RUN) || defined(USE_TK_WRAPPER) .include "${PORTSDIR}/Mk/bsd.tcl.mk" .endif .if defined(USE_APACHE) || defined(USE_APACHE_BUILD) || defined(USE_APACHE_RUN) .include "${PORTSDIR}/Mk/bsd.apache.mk" .endif .if (defined(USE_QT_VER) && ${USE_QT_VER:L} == 3) || defined(USE_KDELIBS_VER) || defined(USE_KDEBASE_VER) .include "${PORTSDIR}/Mk/bsd.kde.mk" .endif .if defined(USE_QT_VER) && ${USE_QT_VER:L} == 4 || defined(USE_QT4) .include "${PORTSDIR}/Mk/bsd.qt.mk" .endif .if defined(USE_DRUPAL) .include "${PORTSDIR}/Mk/bsd.drupal.mk" .endif .if defined(WANT_GECKO) || defined(USE_GECKO) || defined(USE_FIREFOX) || defined(USE_FIREFOX_BUILD) || defined(USE_SEAMONKEY) || defined(USE_SEAMONKEY_BUILD) || defined(USE_THUNDERBIRD) || defined(USE_THUNDERBIRD_BUILD) .include "${PORTSDIR}/Mk/bsd.gecko.mk" .endif .if defined(WANT_GNOME) || defined(USE_GNOME) || defined(INSTALLS_ICONS) .include "${PORTSDIR}/Mk/bsd.gnome.mk" .endif .if defined(WANT_LUA) || defined(USE_LUA) || defined(USE_LUA_NOT) .include "${PORTSDIR}/Mk/bsd.lua.mk" .endif .if defined(WANT_WX) || defined(USE_WX) || defined(USE_WX_NOT) .include "${PORTSDIR}/Mk/bsd.wx.mk" .endif .if defined(WANT_GSTREAMER) || defined(USE_GSTREAMER) || defined(USE_GSTREAMER80) .include "${PORTSDIR}/Mk/bsd.gstreamer.mk" .endif .if defined(USE_QMAIL) || defined(USE_QMAIL_RUN) || defined(USE_QMAIL_BUILD) || defined(WANT_QMAIL) .include "${PORTSDIR}/Mk/bsd.mail.mk" .endif .if defined(USE_SDL) || defined(WANT_SDL) .include "${PORTSDIR}/Mk/bsd.sdl.mk" .endif .if defined(USE_XFCE) .include "${PORTSDIR}/Mk/bsd.xfce.mk" .endif .if defined(USE_KDE4) || defined(KDE4_BUILDENV) .include "${PORTSDIR}/Mk/bsd.kde4.mk" .endif .if defined(USE_NCURSES) .include "${PORTSDIR}/Mk/bsd.ncurses.mk" .endif .include "${PORTSDIR}/Mk/bsd.pbi.mk" # You can force skipping these test by defining IGNORE_PATH_CHECKS .if !defined(IGNORE_PATH_CHECKS) .if (${PREFIX:C,(^.).*,\1,} != "/") .BEGIN: @${ECHO_MSG} "PREFIX must be defined as an absolute path so that when 'make'" @${ECHO_MSG} "is invoked in the work area PREFIX points to the right place." @${FALSE} .endif .endif # Location of mounted CDROM(s) to search for files CD_MOUNTPTS?= /cdrom ${CD_MOUNTPT} # Owner and group of the WWW user WWWOWN?= www WWWGRP?= www .endif # End of pre-makefile section. # Start of post-makefile section. .if !defined(BEFOREPORTMK) && !defined(INOPTIONSMK) .if defined(_POSTMKINCLUDED) check-makefile:: @${ECHO_MSG} "${PKGNAME}: Makefile error: you cannot include bsd.port[.post].mk twice" @${FALSE} .endif _POSTMKINCLUDED= yes WRKDIR?= ${WRKDIRPREFIX}${.CURDIR}/work .if defined(NO_WRKSUBDIR) WRKSRC?= ${WRKDIR} .else WRKSRC?= ${WRKDIR}/${DISTNAME} .endif PATCH_WRKSRC?= ${WRKSRC} CONFIGURE_WRKSRC?= ${WRKSRC} BUILD_WRKSRC?= ${WRKSRC} INSTALL_WRKSRC?=${WRKSRC} PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE} SUB_LIST+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} \ DATADIR=${DATADIR} DOCSDIR=${DOCSDIR} EXAMPLESDIR=${EXAMPLESDIR} \ WWWDIR=${WWWDIR} ETCDIR=${ETCDIR} PLIST_REINPLACE+= dirrmtry stopdaemon rmtry PLIST_REINPLACE_DIRRMTRY=s!^@dirrmtry \(.*\)!@unexec rmdir "%D/\1" 2>/dev/null || true! PLIST_REINPLACE_RMTRY=s!^@rmtry \(.*\)!@unexec rm -f %D/\1 2>/dev/null || true! PLIST_REINPLACE_STOPDAEMON=s!^@stopdaemon \(.*\)!@unexec %D/etc/rc.d/\1 forcestop 2>/dev/null || true! # kludge to strip trailing whitespace from CFLAGS; # sub-configure will not # survive double space CFLAGS:= ${CFLAGS:C/ $//} .if defined(WITHOUT_CPU_CFLAGS) .if defined(_CPUCFLAGS) .if !empty(_CPUCFLAGS) CFLAGS:= ${CFLAGS:C/${_CPUCFLAGS}//} .endif .endif .endif .if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG) STRIP_CMD= ${TRUE} DEBUG_FLAGS?= -g CFLAGS:= ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS} .endif .if defined(NOPORTDOCS) PLIST_SUB+= PORTDOCS="@comment " .else PLIST_SUB+= PORTDOCS="" .endif .if defined(NOPORTEXAMPLES) PLIST_SUB+= PORTEXAMPLES="@comment " .else PLIST_SUB+= PORTEXAMPLES="" .endif .if defined(NOPORTDATA) PLIST_SUB+= PORTDATA="@comment " .else PLIST_SUB+= PORTDATA="" .endif CONFIGURE_SHELL?= ${SH} MAKE_SHELL?= ${SH} CONFIGURE_ENV+= SHELL=${SH} CONFIG_SHELL=${SH} MAKE_ENV+= SHELL=${SH} NO_LINT=YES .if defined(MANCOMPRESSED) .if ${MANCOMPRESSED} != yes && ${MANCOMPRESSED} != no && \ ${MANCOMPRESSED} != maybe check-makevars:: @${ECHO_MSG} "${PKGNAME}: Makefile error: value of MANCOMPRESSED (is \"${MANCOMPRESSED}\") can only be \"yes\", \"no\" or \"maybe\"". @${FALSE} .endif .endif .if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) MANCOMPRESSED?= yes .else MANCOMPRESSED?= no .endif .if defined(PATCHFILES) .if ${PATCHFILES:M*.zip}x != x PATCH_DEPENDS+= ${LOCALBASE}/bin/unzip:${PORTSDIR}/archivers/unzip .endif .endif # Check the compatibility layer for amd64/ia64 .if ${ARCH} == "amd64" || ${ARCH} =="ia64" .if exists(/usr/lib32) HAVE_COMPAT_IA32_LIBS?= YES .endif .if !defined(HAVE_COMPAT_IA32_KERN) HAVE_COMPAT_IA32_KERN!= if ${SYSCTL} -n compat.ia32.maxvmem >/dev/null 2>&1; then echo YES; fi .endif .endif .if defined(IA32_BINARY_PORT) && ${ARCH} != "i386" .if ${ARCH} == "amd64" || ${ARCH} == "ia64" .if !defined(HAVE_COMPAT_IA32_KERN) IGNORE= requires a kernel with compiled-in IA32 compatibility .elif !defined(HAVE_COMPAT_IA32_LIBS) IGNORE= requires 32-bit libraries installed under /usr/lib32 .endif _LDCONFIG_FLAGS=-32 LIB32DIR= lib32 .else IGNORE= requires i386 (or compatible) platform to run .endif .else LIB32DIR= lib .endif PLIST_SUB+= LIB32DIR=${LIB32DIR} .if defined(WITH_PKGNG) .if !defined(PKG_DEPENDS) .if !defined(CLEAN_FETCH_ENV) PKG_DEPENDS+= ${LOCALBASE}/sbin/pkg:${PORTSDIR}/ports-mgmt/pkg .endif .endif .endif .if defined(USE_ZIP) EXTRACT_DEPENDS+= ${LOCALBASE}/bin/unzip:${PORTSDIR}/archivers/unzip .endif .if defined(USE_XZ) && ( (${OSVERSION} >= 900000 && ${OSVERSION} < 900012) || ${OSVERSION} < 800505 ) EXTRACT_DEPENDS+= ${LOCALBASE}/bin/xz:${PORTSDIR}/archivers/xz .endif .if defined(USE_MAKESELF) EXTRACT_DEPENDS+= unmakeself:${PORTSDIR}/archivers/unmakeself .endif .if defined(USE_GMAKE) BUILD_DEPENDS+= gmake:${PORTSDIR}/devel/gmake CONFIGURE_ENV+= MAKE=${GMAKE} .endif .if defined(USE_PKGCONFIG) .if ${USE_PKGCONFIG:L} == yes || ${USE_PKGCONFIG:L} == build BUILD_DEPENDS+= pkgconf:${PORTSDIR}/devel/pkgconf CONFIGURE_ENV+= PKG_CONFIG=pkgconf .elif ${USE_PKGCONFIG:L} == both RUN_DEPENDS+= pkgconf:${PORTSDIR}/devel/pkgconf BUILD_DEPENDS+= pkgconf:${PORTSDIR}/devel/pkgconf CONFIGURE_ENV+= PKG_CONFIG=pkgconf .elif ${USE_PKGCONFIG:L} == run RUN_DEPENDS+= pkgconf:${PORTSDIR}/devel/pkgconf .endif .endif .if defined(USE_GCC) || defined(USE_FORTRAN) .include "${PORTSDIR}/Mk/bsd.gcc.mk" .endif .if defined(USE_BINUTILS) && !defined(DISABLE_BINUTILS) BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils BINUTILS?= ADDR2LINE AR AS CPPFILT GPROF LD NM OBJCOPY OBJDUMP RANLIB \ READELF SIZE STRINGS BINUTILS_NO_MAKE_ENV?= . for b in ${BINUTILS} ${b}= ${LOCALBASE}/bin/${b:C/PP/++/:L} . if defined(GNU_CONFIGURE) || defined(BINUTILS_CONFIGURE) CONFIGURE_ENV+= ${b}="${${b}}" . endif . if ${BINUTILS_NO_MAKE_ENV:M${b}} == "" MAKE_ENV+= ${b}="${${b}}" . endif . endfor .endif .if defined(USE_OPENLDAP) || defined(WANT_OPENLDAP_VER) .include "${PORTSDIR}/Mk/bsd.ldap.mk" .endif .if defined(USE_READLINE) .if ${USE_READLINE} == "port" || ${OSVERSION} > 1000000 LIB_DEPENDS+= readline.6:${PORTSDIR}/devel/readline CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -lreadline CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" .endif .endif .if defined(USE_OPENAL) _OPENAL_ALL= al si soft alut _OPENAL_LIBS= si soft # Default choice. _DEFAULT_OPENAL= soft _OPENAL_SOFT= openal.1:${PORTSDIR}/audio/openal-soft _OPENAL_SI= openal.0:${PORTSDIR}/audio/openal _OPENAL_ALUT= alut.1:${PORTSDIR}/audio/freealut .if exists(${LOCALBASE}/lib/libopenal.a) _HAVE_OPENAL= si .elif exists(${LOCALBASE}/bin/openal-info) _HAVE_OPENAL= soft .endif .if ${USE_OPENAL} == "yes" # Be friendly. USE_OPENAL= ${_DEFAULT_OPENAL} .endif __USED_OPENAL= _USE_OPENAL= .for component in ${USE_OPENAL} .if ${__USED_OPENAL:M${component}} == "" __USED_OPENAL+= ${component} .if ${_OPENAL_ALL:M${component}} == "" BROKEN= OPENAL mismatch: unknown component ${component} .elif ${_OPENAL_ALL:M${component}} == "al" # Check if the user wish matches the found OpenAL system. .if defined(WANT_OPENAL) && defined(_HAVE_OPENAL) && ${_HAVE_OPENAL} != ${WANT_OPENAL} BROKEN= OPENAL mismatch: ${_HAVE_OPENAL} is installed, but ${WANT_OPENAL} desired .endif # WANT_OPENAL .if defined(_HAVE_OPENAL) _OPENAL_SYSTEM= ${_HAVE_OPENAL} .elif defined(WANT_OPENAL) _OPENAL_SYSTEM= ${WANT_OPENAL} .else _OPENAL_SYSTEM= ${_DEFAULT_OPENAL} .endif # _HAVE_OPENAL _USE_OPENAL+= ${_OPENAL_${_OPENAL_SYSTEM:U}} .else # ${_OPENAL_ALL:M${component}} == "" .if ${_OPENAL_LIBS:M${component}} == ${component} # Check for the system implementation to use. .if defined(WANT_OPENAL) && ${WANT_OPENAL} != ${component} BROKEN= OPENAL mismatch: wants to use ${component}, while you wish to use ${WANT_OPENAL} .endif .if defined(_OPENAL_SYSTEM) BROKEN= OPENAL mismatch: cannot use ${component} and al together. .endif .if defined(_HAVE_OPENAL) && ${_HAVE_OPENAL} != ${component} BROKEN= OPENAL mismatch: wants to use ${component}, but ${_HAVE_OPENAL} is installed .endif _OPENAL_SYSTEM= ${component} .endif # ${_OPENAL_LIBS:M${component}} == ${component} _USE_OPENAL+= ${_OPENAL_${component:U}} .endif # ${_OPENAL_ALL:M${component}} == "" .endif # ${__USED_OPENAL:M${component} == "" .endfor # component in ${USE_OPENAL} .for dep in ${_USE_OPENAL} LIB_DEPENDS+= ${dep} .endfor .endif # USE_OPENAL .if defined(USE_FAM) DEFAULT_FAM_SYSTEM= gamin # Currently supported FAM systems FAM_SYSTEM_FAM= fam.0:${PORTSDIR}/devel/fam FAM_SYSTEM_GAMIN= fam.0:${PORTSDIR}/devel/gamin .if exists(${LOCALBASE}/libexec/gam_server) _HAVE_FAM_SYSTEM= gamin .elif exists(${LOCALBASE}/bin/fam) _HAVE_FAM_SYSTEM= fam .endif .if defined(WANT_FAM_SYSTEM) .if defined(WITH_FAM_SYSTEM) && ${WITH_FAM_SYSTEM}!=${WANT_FAM_SYSTEM} IGNORE= wants to use ${WANT_FAM_SYSTEM} as its FAM system, while you wish to use ${WITH_FAM_SYSTEM} .endif FAM_SYSTEM= ${WANT_FAM_SYSTEM} .elif defined(WITH_FAM_SYSTEM) FAM_SYSTEM= ${WITH_FAM_SYSTEM} .else .if defined(_HAVE_FAM_SYSTEM) FAM_SYSTEM= ${_HAVE_FAM_SYSTEM} .else FAM_SYSTEM= ${DEFAULT_FAM_SYSTEM} .endif .endif # WANT_FAM_SYSTEM .if defined(_HAVE_FAM_SYSTEM) .if ${_HAVE_FAM_SYSTEM}!= ${FAM_SYSTEM} BROKEN= FAM system mismatch: ${_HAVE_FAM_SYSTEM} is installed, while desired FAM system is ${FAM_SYSTEM} .endif .endif .if defined(FAM_SYSTEM_${FAM_SYSTEM:U}) LIB_DEPENDS+= ${FAM_SYSTEM_${FAM_SYSTEM:U}} .else IGNORE= cannot be built with unknown FAM system: ${FAM_SYSTEM} .endif .endif # USE_FAM .if defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES" SUB_FILES+= ${USE_RC_SUBR} .endif .if defined(USE_RCORDER) SUB_FILES+= ${USE_RCORDER} .endif .if defined(USE_LDCONFIG) && ${USE_LDCONFIG:L} == "yes" USE_LDCONFIG= ${PREFIX}/lib .endif .if defined(USE_LDCONFIG32) && ${USE_LDCONFIG32:L} == "yes" IGNORE= has USE_LDCONFIG32 set to yes, which is not correct .endif .if defined(USE_ICONV) LIB_DEPENDS+= iconv.3:${PORTSDIR}/converters/libiconv .endif .if defined(USE_GETTEXT) . if ${USE_GETTEXT:L} == "build" BUILD_DEPENDS+= xgettext:${PORTSDIR}/devel/gettext . elif ${USE_GETTEXT:L} == "run" RUN_DEPENDS+= xgettext:${PORTSDIR}/devel/gettext . elif ${USE_GETTEXT:L} == "yes" LIB_DEPENDS+= intl:${PORTSDIR}/devel/gettext . else IGNORE= USE_GETTEXT can be only one of build, run, or yes . endif .endif .if defined(USE_LINUX_PREFIX) && defined(USE_LDCONFIG) # we need ${LINUXBASE}/sbin/ldconfig USE_LINUX?= yes .endif .if defined(USE_LINUX) . if !defined(LINUX_OSRELEASE) LINUX_OSRELEASE!= ${ECHO_CMD} `${SYSCTL} -n compat.linux.osrelease 2>/dev/null` . endif # install(1) also does a brandelf on strip, so don't strip with FreeBSD tools. STRIP= . if exists(${LINUXBASE}/usr/bin/strip) STRIP_CMD= ${LINUXBASE}/usr/bin/strip . else STRIP_CMD= ${TRUE} . endif # Allow the user to specify another linux_base version. . if defined(OVERRIDE_LINUX_BASE_PORT) . if ${USE_LINUX:L} == yes USE_LINUX= ${OVERRIDE_LINUX_BASE_PORT} . endif . endif # NOTE: when you update the default linux_base version (case "yes"), # don't forget to update the Handbook! . if exists(${PORTSDIR}/emulators/linux_base-${USE_LINUX}) LINUX_BASE_PORT= ${LINUXBASE}/bin/sh:${PORTSDIR}/emulators/linux_base-${USE_LINUX} . else . if ${USE_LINUX:L} == "yes" . if ${OSVERSION} < 800076 || ${LINUX_OSRELEASE} == "2.4.2" LINUX_BASE_PORT= ${LINUXBASE}/etc/fedora-release:${PORTSDIR}/emulators/linux_base-fc4 . else LINUX_BASE_PORT= ${LINUXBASE}/etc/fedora-release:${PORTSDIR}/emulators/linux_base-f10 . endif . else IGNORE= cannot be built: there is no emulators/linux_base-${USE_LINUX}, perhaps wrong use of USE_LINUX or OVERRIDE_LINUX_BASE_PORT . endif . endif RUN_DEPENDS+= ${LINUX_BASE_PORT} .endif .if defined(USE_MOTIF) USE_XORG+= xpm .if defined(WANT_LESSTIF) LIB_DEPENDS+= Xm:${PORTSDIR}/x11-toolkits/lesstif NO_OPENMOTIF= yes .endif .if !defined(NO_OPENMOTIF) LIB_DEPENDS+= Xm.4:${PORTSDIR}/x11-toolkits/open-motif .endif .endif .if defined(USE_FREETYPE) LIB_DEPENDS+= ttf.4:${PORTSDIR}/print/freetype .endif X_IMAKE_PORT= ${PORTSDIR}/devel/imake X_LIBRARIES_PORT= ${PORTSDIR}/x11/xorg-libraries X_CLIENTS_PORT= ${PORTSDIR}/x11/xorg-apps X_SERVER_PORT= ${PORTSDIR}/x11-servers/xorg-server X_FONTSERVER_PORT= ${PORTSDIR}/x11-fonts/xfs X_PRINTSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-printserver X_VFBSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-vfbserver X_NESTSERVER_PORT= ${PORTSDIR}/x11-servers/xorg-nestserver X_FONTS_ENCODINGS_PORT= ${PORTSDIR}/x11-fonts/encodings X_FONTS_MISC_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-miscbitmaps X_FONTS_100DPI_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-100dpi X_FONTS_75DPI_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-75dpi X_FONTS_CYRILLIC_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-cyrillic X_FONTS_TTF_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-truetype X_FONTS_TYPE1_PORT= ${PORTSDIR}/x11-fonts/xorg-fonts-type1 X_FONTS_ALIAS_PORT= ${PORTSDIR}/x11-fonts/font-alias .if defined(USE_IMAKE) CONFIGURE_ENV+= IMAKECPP="${CPP}" MAKE_ENV+= IMAKECPP="${CPP}" MAKE_FLAGS?= CC="${CC}" CXX="${CXX}" BUILD_DEPENDS+= imake:${X_IMAKE_PORT} .endif .if defined(USE_DISPLAY) && !defined(DISPLAY) BUILD_DEPENDS+= Xvfb:${X_VFBSERVER_PORT} \ ${LOCALBASE}/lib/X11/fonts/misc/8x13O.pcf.gz:${X_FONTS_MISC_PORT} \ ${LOCALBASE}/lib/X11/fonts/misc/fonts.alias:${X_FONTS_ALIAS_PORT} \ ${LOCALBASE}/share/X11/xkb/rules/base:${PORTSDIR}/x11/xkeyboard-config \ xkbcomp:${PORTSDIR}/x11/xkbcomp .if !defined(PACKAGE_BUILDING) CONFIGURE_ENV+= DISPLAY="localhost:1001" MAKE_ENV+= DISPLAY="localhost:1001" .endif .endif XAWVER= 8 PKG_IGNORE_DEPENDS?= 'this_port_does_not_exist' PLIST_SUB+= XAWVER=${XAWVER} _GL_gl_LIB_DEPENDS= GL.1:${PORTSDIR}/graphics/libGL _GL_glew_LIB_DEPENDS= GLEW.1:${PORTSDIR}/graphics/glew _GL_glu_LIB_DEPENDS= GLU.1:${PORTSDIR}/graphics/libGLU _GL_glw_LIB_DEPENDS= GLw.1:${PORTSDIR}/graphics/libGLw _GL_glut_LIB_DEPENDS= glut.12:${PORTSDIR}/graphics/freeglut _GL_linux_RUN_DEPENDS= ${LINUXBASE}/usr/X11R6/lib/libGL.so.1:${PORTSDIR}/graphics/linux_dri .if defined(USE_GL) . if ${USE_GL:L} == "yes" USE_GL= glu . endif . for _component in ${USE_GL} . if !defined(_GL_${_component}_LIB_DEPENDS) && \ !defined(_GL_${_component}_RUN_DEPENDS) IGNORE= uses unknown GL component . else LIB_DEPENDS+= ${_GL_${_component}_LIB_DEPENDS} RUN_DEPENDS+= ${_GL_${_component}_RUN_DEPENDS} . endif . endfor .endif .if defined(USE_BISON) _BISON_DEPENDS= bison:${PORTSDIR}/devel/bison . if ${USE_BISON:L} == "build" BUILD_DEPENDS+= ${_BISON_DEPENDS} . elif ${USE_BISON:L} == "run" RUN_DEPENDS+= ${_BISON_DEPENDS} . elif ${USE_BISON:L} == "both" BUILD_DEPENDS+= ${_BISON_DEPENDS} RUN_DEPENDS+= ${_BISON_DEPENDS} . else IGNORE= uses unknown USE_BISON construct . endif .endif .if defined(WITH_PKGNG) .include "${PORTSDIR}/Mk/bsd.pkgng.mk" .endif .if defined(USE_LOCAL_MK) .include "${PORTSDIR}/Mk/bsd.local.mk" .endif .if defined(USE_XORG) || defined(XORG_CAT) .include "${PORTSDIR}/Mk/bsd.xorg.mk" .endif .if defined(USE_MYSQL) || defined(WANT_MYSQL_VER) || \ defined(USE_PGSQL) || defined(WANT_PGSQL_VER) || \ defined(USE_BDB) || defined(USE_SQLITE) || defined(USE_FIREBIRD) .include "${PORTSDIR}/Mk/bsd.database.mk" .endif .if defined(WANT_GSTREAMER) || defined(USE_GSTREAMER) || defined(USE_GSTREAMER80) .include "${PORTSDIR}/Mk/bsd.gstreamer.mk" .endif .if defined(USE_EFL) || defined(WANT_EFL) || defined(USE_EFL_ESMART) .include "${PORTSDIR}/Mk/bsd.efl.mk" .endif .if defined(USE_JAVA) .include "${PORTSDIR}/Mk/bsd.java.mk" .endif .if defined(USE_LINUX_RPM) .include "${PORTSDIR}/Mk/bsd.linux-rpm.mk" .endif .if defined(USE_LINUX_APPS) .include "${PORTSDIR}/Mk/bsd.linux-apps.mk" .endif .if defined(USE_QT_VER) && ${USE_QT_VER:L} == 4 || defined(USE_QT4) .include "${PORTSDIR}/Mk/bsd.qt.mk" .endif .if defined(USE_SCONS) .include "${PORTSDIR}/Mk/bsd.scons.mk" .endif .if defined(USE_SDL) || defined(WANT_SDL) .include "${PORTSDIR}/Mk/bsd.sdl.mk" .endif .include "${PORTSDIR}/Mk/bsd.perl.mk" .if defined(USE_PHP) .include "${PORTSDIR}/Mk/bsd.php.mk" .endif .if defined(USE_PYTHON) .include "${PORTSDIR}/Mk/bsd.python.mk" .endif .if defined(USE_TCL) || defined(USE_TCL_BUILD) || defined(USE_TK) || defined(USE_TK_BUILD) .include "${PORTSDIR}/Mk/bsd.tcl.mk" .endif .if defined(USE_LUA) || defined(USE_LUA_NOT) .include "${PORTSDIR}/Mk/bsd.lua.mk" .endif .if defined(USE_WX) || defined(USE_WX_NOT) .include "${PORTSDIR}/Mk/bsd.wx.mk" .endif .if defined(USE_APACHE) || defined(USE_APACHE_BUILD) || defined(USE_APACHE_RUN) .include "${PORTSDIR}/Mk/bsd.apache.mk" .endif .if defined(USE_AUTOTOOLS) .include "${PORTSDIR}/Mk/bsd.autotools.mk" .endif .if defined(USE_FPC) || defined(WANT_FPC_BASE) || defined(WANT_FPC_ALL) .include "${PORTSDIR}/Mk/bsd.fpc.mk" .endif .if defined(WANT_GECKO) || defined(USE_GECKO) .include "${PORTSDIR}/Mk/bsd.gecko.mk" .endif .if defined(WANT_GNOME) || defined(USE_GNOME) .include "${PORTSDIR}/Mk/bsd.gnome.mk" .endif .if defined(USE_XFCE) .include "${PORTSDIR}/Mk/bsd.xfce.mk" .endif .if defined(USE_KDE4) .include "${PORTSDIR}/Mk/bsd.kde4.mk" .endif .if defined(USE_CMAKE) .include "${PORTSDIR}/Mk/bsd.cmake.mk" .endif .if exists(${PORTSDIR}/Makefile.inc) .include "${PORTSDIR}/Makefile.inc" USE_SUBMAKE= yes .endif .if defined(USE_XORG) # Add explicit X options to avoid problems with false positives in configure .if defined(GNU_CONFIGURE) CONFIGURE_ARGS+=--x-libraries=${LOCALBASE}/lib --x-includes=${LOCALBASE}/include .endif .endif # Set the default for the installation of Postscript(TM)- # compatible functionality. .if !defined(USE_GHOSTSCRIPT) . if defined(USE_GHOSTSCRIPT_BUILD) _USE_GHOSTSCRIPT= ${USE_GHOSTSCRIPT_BUILD} . elif defined(USE_GHOSTSCRIPT_RUN) _USE_GHOSTSCRIPT= ${USE_GHOSTSCRIPT_RUN} . endif .else _USE_GHOSTSCRIPT= ${USE_GHOSTSCRIPT} .endif .if defined(WITH_GHOSTSCRIPT_VER) && !empty(WITH_GHOSTSCRIPT_VER:M[789]) _USE_GHOSTSCRIPT_DEFAULT_VER= ${WITH_GHOSTSCRIPT_VER} .else _USE_GHOSTSCRIPT_DEFAULT_VER= 9 .endif .if defined(_USE_GHOSTSCRIPT) . if !defined(WITHOUT_X11) _USE_GHOSTSCRIPT_PKGNAME_SUFFIX= . else _USE_GHOSTSCRIPT_PKGNAME_SUFFIX=-nox11 . endif . if !empty(_USE_GHOSTSCRIPT:M[789]) _USE_GHOSTSCRIPT_VER=${_USE_GHOSTSCRIPT:M[789]} . else _USE_GHOSTSCRIPT_VER=${_USE_GHOSTSCRIPT_DEFAULT_VER} . endif .else _USE_GHOSTSCRIPT_VER=${_USE_GHOSTSCRIPT_DEFAULT_VER} .endif # Sanity check .if defined(_USE_GHOSTSCRIPT) && defined(WITH_GHOSTSCRIPT_VER) . if empty(WITH_GHOSTSCRIPT_VER:M[789]) . error You set an invalid value "${WITH_GHOSTSCRIPT_VER}" in WITH_GHOSTSCRIPT_VER. Abort. . elif ${_USE_GHOSTSCRIPT_VER} != ${WITH_GHOSTSCRIPT_VER} . error You set WITH_GHOSTSCRIPT_VER as ${WITH_GHOSTSCRIPT_VER} but ${PKGNAME} requires print/ghostscript${_USE_GHOSTSCRIPT_VER}. Abort. . endif .endif GHOSTSCRIPT_PORT?= print/ghostscript${_USE_GHOSTSCRIPT_VER}${_USE_GHOSTSCRIPT_PKGNAME_SUFFIX} # Set up the ghostscript dependencies. .if defined(USE_GHOSTSCRIPT) || defined(USE_GHOSTSCRIPT_BUILD) BUILD_DEPENDS+= gs:${PORTSDIR}/${GHOSTSCRIPT_PORT} .endif .if defined(USE_GHOSTSCRIPT) || defined(USE_GHOSTSCRIPT_RUN) RUN_DEPENDS+= gs:${PORTSDIR}/${GHOSTSCRIPT_PORT} .endif # Set up the cdrtools. .if defined(USE_CDRTOOLS) BUILD_DEPENDS+= cdrecord:${PORTSDIR}/sysutils/cdrtools RUN_DEPENDS+= cdrecord:${PORTSDIR}/sysutils/cdrtools .endif # Macro for doing in-place file editing using regexps REINPLACE_ARGS?= -i.bak REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} # Names of cookies used to skip already completed stages EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PORTNAME}.${PREFIX:S/\//_/g} CONFIGURE_COOKIE?= ${WRKDIR}/.configure_done.${PORTNAME}.${PREFIX:S/\//_/g} INSTALL_COOKIE?= ${WRKDIR}/.install_done.${PORTNAME}.${PREFIX:S/\//_/g} BUILD_COOKIE?= ${WRKDIR}/.build_done.${PORTNAME}.${PREFIX:S/\//_/g} PATCH_COOKIE?= ${WRKDIR}/.patch_done.${PORTNAME}.${PREFIX:S/\//_/g} PACKAGE_COOKIE?= ${WRKDIR}/.package_done.${PORTNAME}.${PREFIX:S/\//_/g} # How to do nothing. Override if you, for some strange reason, would rather # do something. DO_NADA?= ${TRUE} # Use this as the first operand to always build dependency. NONEXISTENT?= /nonexistent CHECKSUM_ALGORITHMS?= sha256 DISTINFO_FILE?= ${MASTERDIR}/distinfo MAKE_FLAGS?= -f MAKEFILE?= Makefile MAKE_ENV+= PREFIX=${PREFIX} \ LOCALBASE=${LOCALBASE} \ MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" \ CC="${CC}" CFLAGS="${CFLAGS}" \ CPP="${CPP}" CPPFLAGS="${CPPFLAGS}" \ LDFLAGS="${LDFLAGS}" \ CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \ MANPREFIX="${MANPREFIX}" # Add -fno-strict-aliasing to CFLAGS with optimization level -O2 or higher. # gcc 4.x enable strict aliasing optimization with -O2 which is known to break # a lot of ports. .if !defined(WITHOUT_NO_STRICT_ALIASING) .if ${CC} != "icc" .if !empty(CFLAGS:M-O[23s]) && empty(CFLAGS:M-fno-strict-aliasing) CFLAGS+= -fno-strict-aliasing .endif .endif .endif .if defined(USE_CSTD) CFLAGS:= ${CFLAGS:N-std=*} -std=${USE_CSTD} .endif # Multiple make jobs support .if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) _MAKE_JOBS= # .else .if defined(MAKE_JOBS_SAFE) || defined(FORCE_MAKE_JOBS) MAKE_JOBS_NUMBER?= `${SYSCTL} -n kern.smp.cpus` _MAKE_JOBS?= -j${MAKE_JOBS_NUMBER} .if defined(FORCE_MAKE_JOBS) && !defined(MAKE_JOBS_SAFE) BUILD_FAIL_MESSAGE+= "You have chosen to use multiple make jobs (parallelization) for all ports. This port was not tested for this setting. Please remove FORCE_MAKE_JOBS and retry the build before reporting the failure to the maintainer." .endif .endif .endif # ccache support # Support NO_CCACHE for common setups, require WITH_CCACHE_BUILD, and # don't use if ccache already set in CC .if !defined(NO_CCACHE) && defined(WITH_CCACHE_BUILD) && !${CC:M*ccache*} # Avoid depends loops between pkg and ccache . if !${.CURDIR:M*/devel/ccache} && !${.CURDIR:M*/ports-mgmt/pkg} BUILD_DEPENDS+= ${LOCALBASE}/bin/ccache:${PORTSDIR}/devel/ccache . endif # Prepend the ccache dir into the PATH and setup ccache env MAKE_ENV+= PATH=${LOCALBASE}/libexec/ccache:${PATH} .endif PTHREAD_CFLAGS?= PTHREAD_LIBS?= -pthread FETCH_BINARY?= /usr/bin/fetch FETCH_ARGS?= -AFpr FETCH_REGET?= 1 .if !defined(DISABLE_SIZE) FETCH_BEFORE_ARGS+= $${CKSIZE:+-S $$CKSIZE} .endif FETCH_CMD?= ${FETCH_BINARY} ${FETCH_ARGS} .if defined(RANDOMIZE_MASTER_SITES) .if exists(/usr/games/random) RANDOM_CMD?= /usr/games/random RANDOM_ARGS?= "-w -f -" _RANDOMIZE_SITES= " |${RANDOM_CMD} ${RANDOM_ARGS}" .endif .endif TOUCH?= /usr/bin/touch TOUCH_FLAGS?= -f DISTORIG?= .bak.orig PATCH?= /usr/bin/patch PATCH_STRIP?= -p0 PATCH_DIST_STRIP?= -p0 .if defined(PATCH_DEBUG) PATCH_DEBUG_TMP= yes PATCH_ARGS?= -d ${PATCH_WRKSRC} -E ${PATCH_STRIP} PATCH_DIST_ARGS?= --suffix ${DISTORIG} -d ${PATCH_WRKSRC} -E ${PATCH_DIST_STRIP} .else PATCH_DEBUG_TMP= no PATCH_ARGS?= -d ${PATCH_WRKSRC} --forward --quiet -E ${PATCH_STRIP} PATCH_DIST_ARGS?= --suffix ${DISTORIG} -d ${PATCH_WRKSRC} --forward --quiet -E ${PATCH_DIST_STRIP} .endif .if defined(BATCH) PATCH_ARGS+= --batch PATCH_DIST_ARGS+= --batch .endif # Prevent breakage with VERSION_CONTROL=numbered PATCH_ARGS+= -V simple .if defined(PATCH_CHECK_ONLY) PATCH_ARGS+= -C PATCH_DIST_ARGS+= -C .endif .if ${PATCH} == "/usr/bin/patch" PATCH_ARGS+= --suffix .orig PATCH_DIST_ARGS+= --suffix .orig .endif TAR?= /usr/bin/tar # EXTRACT_SUFX is defined in .pre.mk section .if defined(USE_ZIP) EXTRACT_CMD?= ${UNZIP_CMD} EXTRACT_BEFORE_ARGS?= -qo EXTRACT_AFTER_ARGS?= -d ${WRKDIR} .elif defined(USE_MAKESELF) EXTRACT_CMD?= ${UNMAKESELF_CMD} EXTRACT_BEFORE_ARGS?= EXTRACT_AFTER_ARGS?= .else EXTRACT_BEFORE_ARGS?= -dc .if defined(EXTRACT_PRESERVE_OWNERSHIP) EXTRACT_AFTER_ARGS?= | ${TAR} -xf - .else EXTRACT_AFTER_ARGS?= | ${TAR} -xf - --no-same-owner --no-same-permissions .endif .if defined(USE_BZIP2) EXTRACT_CMD?= ${BZIP2_CMD} .elif defined(USE_XZ) EXTRACT_CMD?= ${XZ_CMD} .else EXTRACT_CMD?= ${GZIP_CMD} .endif .endif # Figure out where the local mtree file is .if !defined(MTREE_FILE) && !defined(NO_MTREE) .if ${PREFIX} == /usr MTREE_FILE= /etc/mtree/BSD.usr.dist .else MTREE_FILE= ${PORTSDIR}/Templates/BSD.local.dist .endif MTREE_FILE_DEFAULT=yes .endif MTREE_CMD?= /usr/sbin/mtree MTREE_ARGS?= -U ${MTREE_FOLLOWS_SYMLINKS} -f ${MTREE_FILE} -d -e -p READLINK_CMD?= /usr/bin/readlink # Determine whether or not we can use rootly owner/group functions. .if !defined(UID) UID!= ${ID} -u .endif .if ${UID} == 0 _BINOWNGRP= -o ${BINOWN} -g ${BINGRP} _SHROWNGRP= -o ${SHAREOWN} -g ${SHAREGRP} _MANOWNGRP= -o ${MANOWN} -g ${MANGRP} .else _BINOWNGRP= _SHROWNGRP= _MANOWNGRP= .endif # A few aliases for *-install targets INSTALL_PROGRAM= \ ${INSTALL} ${COPY} ${STRIP} ${_BINOWNGRP} -m ${BINMODE} INSTALL_KLD= \ ${INSTALL} ${COPY} ${_BINOWNGRP} -m ${BINMODE} INSTALL_LIB= \ ${INSTALL} ${COPY} ${STRIP} ${_SHROWNGRP} -m ${SHAREMODE} INSTALL_SCRIPT= \ ${INSTALL} ${COPY} ${_BINOWNGRP} -m ${BINMODE} INSTALL_DATA= \ ${INSTALL} ${COPY} ${_SHROWNGRP} -m ${SHAREMODE} INSTALL_MAN= \ ${INSTALL} ${COPY} ${_MANOWNGRP} -m ${MANMODE} INSTALL_MACROS= BSD_INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ BSD_INSTALL_LIB="${INSTALL_LIB}" \ BSD_INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ BSD_INSTALL_DATA="${INSTALL_DATA}" \ BSD_INSTALL_MAN="${INSTALL_MAN}" MAKE_ENV+= ${INSTALL_MACROS} SCRIPTS_ENV+= ${INSTALL_MACROS} # Macro for copying entire directory tree with correct permissions .if ${UID} == 0 COPYTREE_BIN= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ 2>&1) && \ ${CHOWN} -R ${BINOWN}:${BINGRP} $$1 && \ ${FIND} -d $$0 $$2 -type d -exec chmod 755 $$1/{} \; && \ ${FIND} -d $$0 $$2 -type f -exec chmod ${BINMODE} $$1/{} \;' -- COPYTREE_SHARE= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ 2>&1) && \ ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} $$1 && \ ${FIND} -d $$0 $$2 -type d -exec chmod 755 $$1/{} \; && \ ${FIND} -d $$0 $$2 -type f -exec chmod ${SHAREMODE} $$1/{} \;' -- .else COPYTREE_BIN= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ 2>&1) && \ ${FIND} -d $$0 $$2 -type d -exec chmod 755 $$1/{} \; && \ ${FIND} -d $$0 $$2 -type f -exec chmod ${BINMODE} $$1/{} \;' -- COPYTREE_SHARE= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ 2>&1) && \ ${FIND} -d $$0 $$2 -type d -exec chmod 755 $$1/{} \; && \ ${FIND} -d $$0 $$2 -type f -exec chmod ${SHAREMODE} $$1/{} \;' -- .endif # The user can override the NO_PACKAGE by specifying this from # the make command line .if defined(FORCE_PACKAGE) .undef NO_PACKAGE .endif DESCR?= ${PKGDIR}/pkg-descr PLIST?= ${PKGDIR}/pkg-plist PKGINSTALL?= ${PKGDIR}/pkg-install PKGDEINSTALL?= ${PKGDIR}/pkg-deinstall PKGREQ?= ${PKGDIR}/pkg-req PKGMESSAGE?= ${PKGDIR}/pkg-message TMPPLIST?= ${WRKDIR}/.PLIST.mktmp TMPPLIST_SORT?= ${WRKDIR}/.PLIST.mktmp.sorted TMPGUCMD?= ${WRKDIR}/.PLIST.gucmd .for _CATEGORY in ${CATEGORIES} PKGCATEGORY?= ${_CATEGORY} .endfor _PORTDIRNAME= ${.CURDIR:T} PORTDIRNAME?= ${_PORTDIRNAME} PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME} .if !defined(PKG_ARGS) PKG_ARGS= -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} actual-package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u -t : -k 2`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} .if !defined(NO_MTREE) PKG_ARGS+= -m ${MTREE_FILE} .endif .if defined(PKGORIGIN) PKG_ARGS+= -o ${PKGORIGIN} .endif .if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS) PKG_ARGS+= -C "${CONFLICTS}" .endif .if defined(CONFLICTS_INSTALL) && !defined(DISABLE_CONFLICTS) PKG_ARGS+= -C "${CONFLICTS_INSTALL}" .endif .endif .if defined(PKG_NOCOMPRESS) PKG_SUFX?= .tar .else .if defined(WITH_PKGNG) PKG_SUFX?= .txz .else PKG_SUFX?= .tbz .endif .endif # where pkg_add records its dirty deeds. PKG_DBDIR?= /var/db/pkg MOTIFLIB?= -L${LOCALBASE}/lib -lXm -lXp ALL_TARGET?= all INSTALL_TARGET?= install # Integrate with the license auditing framework .if !defined (DISABLE_LICENSES) .include "${PORTSDIR}/Mk/bsd.licenses.mk" .endif # Popular master sites .include "${PORTSDIR}/Mk/bsd.sites.mk" # Empty declaration to avoid "variable MASTER_SITES recursive" error MASTER_SITES?= PATCH_SITES?= _MASTER_SITES_DEFAULT?= _PATCH_SITES_DEFAULT?= # Feed internal _{MASTER,PATCH}_SITES_n where n is a group designation # as per grouping rules (:something) # Organize _{MASTER,PATCH}_SITES_{DEFAULT,[^/:]+} according to grouping # rules (:something) .for _S in ${MASTER_SITES} _S_TEMP= ${_S:S/^${_S:C@/?:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your MASTER_SITES" @${FALSE} . endif _MASTER_SITES_${_group}+= ${_S:C@^(.*/):[^/:]+$@\1@} . endfor . else _MASTER_SITES_DEFAULT+= ${_S:C@^(.*/):[^/:]+$@\1@} . endif .endfor .for _S in ${PATCH_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "The words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your PATCH_SITES" @${FALSE} . endif _PATCH_SITES_${_group}+= ${_S:C@^(.*/):[^/:]+$@\1@} . endfor . else _PATCH_SITES_DEFAULT+= ${_S:C@^(.*/):[^/:]+$@\1@} . endif .endfor # Feed internal _{MASTER,PATCH}_SITE_SUBDIR_n where n is a group designation # as per grouping rules (:something) # Organize _{MASTER,PATCH}_SITE_SUBDIR_{DEFAULT,[^/:]+} according to grouping # rules (:something) .for _S in ${MASTER_SITE_SUBDIR} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your MASTER_SITE_SUBDIR" @${FALSE} . endif . if defined(_MASTER_SITES_${_group}) _MASTER_SITE_SUBDIR_${_group}+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endfor . else . if defined(_MASTER_SITES_DEFAULT) _MASTER_SITE_SUBDIR_DEFAULT+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endif .endfor .for _S in ${PATCH_SITE_SUBDIR} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your PATCH_SITE_SUBDIR" @${FALSE} . endif . if defined(_PATCH_SITES_${_group}) _PATCH_SITE_SUBDIR_${_group}+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endfor . else . if defined(_PATCH_SITES_DEFAULT) _PATCH_SITE_SUBDIR_DEFAULT+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endif .endfor # Substitute subdirectory names # XXX simpler/faster solution but not the best space wise, suggestions please .for _S in ${MASTER_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} . if !defined(_MASTER_SITE_SUBDIR_${_group}) MASTER_SITES_TMP= ${_MASTER_SITES_${_group}:S^%SUBDIR%/^^} . else _S_TEMP_TEMP= ${_MASTER_SITES_${_group}:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) MASTER_SITES_TMP= ${_MASTER_SITES_${_group}} . else MASTER_SITES_TMP= . for site in ${_MASTER_SITES_${_group}} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) MASTER_SITES_TMP+= ${site} . else . for dir in ${_MASTER_SITE_SUBDIR_${_group}} MASTER_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif . endif _MASTER_SITES_${_group}:= ${MASTER_SITES_TMP} . endfor . endif .endfor .if defined(_MASTER_SITE_SUBDIR_DEFAULT) _S_TEMP= ${_MASTER_SITES_DEFAULT:M*%SUBDIR%/*} . if empty(_S_TEMP) MASTER_SITES_TMP= ${_MASTER_SITES_DEFAULT} . else MASTER_SITES_TMP= . for site in ${_MASTER_SITES_DEFAULT} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) MASTER_SITES_TMP+= ${site} . else . for dir in ${_MASTER_SITE_SUBDIR_DEFAULT} MASTER_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif .else MASTER_SITES_TMP= ${_MASTER_SITES_DEFAULT:S^%SUBDIR%/^^} .endif _MASTER_SITES_DEFAULT:= ${MASTER_SITES_TMP} MASTER_SITES_TMP= .for _S in ${PATCH_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} . if !defined(_PATCH_SITE_SUBDIR_${_group}) PATCH_SITES_TMP= ${_PATCH_SITES_${_group}:S^%SUBDIR%/^^} . else _S_TEMP_TEMP= ${_PATCH_SITES_${_group}:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) PATCH_SITES_TMP= ${_PATCH_SITES_${_group}} . else PATCH_SITES_TMP= . for site in ${_PATCH_SITES_${_group}} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) PATCH_SITES_TMP+= ${site} . else . for dir in ${_PATCH_SITE_SUBDIR_${_group}} PATCH_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif . endif _PATCH_SITES_${_group}:= ${PATCH_SITES_TMP} . endfor . endif .endfor .if defined(_PATCH_SITE_SUBDIR_DEFAULT) _S_TEMP= ${_PATCH_SITES_DEFAULT:M*%SUBDIR%/*} . if empty(_S_TEMP) PATCH_SITES_TMP= ${_PATCH_SITES_DEFAULT} . else PATCH_SITES_TMP= . for site in ${_PATCH_SITES_DEFAULT} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) PATCH_SITES_TMP+= ${site} . else . for dir in ${_PATCH_SITE_SUBDIR_DEFAULT} PATCH_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif .else PATCH_SITES_TMP= ${_PATCH_SITES_DEFAULT:S^%SUBDIR%/^^} .endif _PATCH_SITES_DEFAULT:= ${PATCH_SITES_TMP} PATCH_SITES_TMP= # The primary backup site. MASTER_SITE_BACKUP?= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ MASTER_SITE_BACKUP:= ${MASTER_SITE_BACKUP:S^\${DIST_SUBDIR}/^^} # If the user has MASTER_SITE_FREEBSD set, go to the FreeBSD repository # for everything, but don't search it twice by appending it to the end. .if defined(MASTER_SITE_FREEBSD) _MASTER_SITE_OVERRIDE:= ${MASTER_SITE_BACKUP} _MASTER_SITE_BACKUP:= # empty .else _MASTER_SITE_OVERRIDE= ${MASTER_SITE_OVERRIDE} _MASTER_SITE_BACKUP= ${MASTER_SITE_BACKUP} .endif # Search CDROM first if mounted, symlink instead of copy if # FETCH_SYMLINK_DISTFILES is set .for MOUNTPT in ${CD_MOUNTPTS} .if exists(${MOUNTPT}/ports/distfiles) _MASTER_SITE_OVERRIDE:= file:${MOUNTPT}/ports/distfiles/${DIST_SUBDIR}/ ${_MASTER_SITE_OVERRIDE} .if defined(FETCH_SYMLINK_DISTFILES) FETCH_BEFORE_ARGS+= -l .endif .endif .endfor NOFETCHFILES?= # Organize DISTFILES, PATCHFILES, _MASTER_SITES_ALL, _PATCH_SITES_ALL # according to grouping rules (:something) DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} _MASTER_SITES_ALL= ${_MASTER_SITES_DEFAULT} _PATCH_SITES_ALL= ${_PATCH_SITES_DEFAULT} _G_TEMP= DEFAULT .for _D in ${DISTFILES} _D_TEMP= ${_D:S/^${_D:C/:[^:]+$//}//} . if !empty(_D_TEMP) . for _group in ${_D_TEMP:S/^://:S/,/ /g} . if !defined(_MASTER_SITES_${_group}) _G_TEMP_TEMP= ${_G_TEMP:M/${_group}/} . if empty(_G_TEMP_TEMP) _G_TEMP+= ${_group} _MASTER_SITES_ALL+= ${_MASTER_SITES_${_group}} . endif . endif . endfor _DISTFILES+= ${_D:C/:[^:]+$//} . else _DISTFILES+= ${_D} . endif .endfor _G_TEMP= DEFAULT .for _P in ${PATCHFILES} _P_TEMP= ${_P:S/^${_P:C/:[^:]+$//}//} . if !empty(_P_TEMP) . for _group in ${_P_TEMP:S/^://:S/,/ /g} . if !defined(_PATCH_SITES_${_group}) _G_TEMP_TEMP= ${_G_TEMP:M/${_group}/} . if empty(_G_TEMP_TEMP) _G_TEMP+= ${_group} _PATCH_SITES_ALL+= ${_PATCH_SITES_${_group}} . endif . endif . endfor _PATCHFILES+= ${_P:C/:[^:]+$//} . else _PATCHFILES+= ${_P} . endif .endfor _G_TEMP= _G_TEMP_TEMP= ALLFILES?= ${_DISTFILES} ${_PATCHFILES} # # Sort the master site list according to the patterns in MASTER_SORT # MASTER_SORT?= MASTER_SORT_REGEX?= MASTER_SORT_REGEX+= ${MASTER_SORT:S|.|\\.|g:S|^|://[^/]*|:S|$|/|} MASTER_SORT_AWK= BEGIN { RS = " "; ORS = " "; IGNORECASE = 1 ; gl = "${MASTER_SORT_REGEX:S|\\|\\\\|g}"; } .for srt in ${MASTER_SORT_REGEX} MASTER_SORT_AWK+= /${srt:S|/|\\/|g}/ { good["${srt:S|\\|\\\\|g}"] = good["${srt:S|\\|\\\\|g}"] " " $$0 ; next; } .endfor MASTER_SORT_AWK+= { rest = rest " " $$0; } END { n=split(gl, gla); for(i=1;i<=n;i++) { print good[gla[i]]; } print rest; } SORTED_MASTER_SITES_DEFAULT_CMD= cd ${.CURDIR} && ${MAKE} master-sites-DEFAULT SORTED_PATCH_SITES_DEFAULT_CMD= cd ${.CURDIR} && ${MAKE} patch-sites-DEFAULT SORTED_MASTER_SITES_ALL_CMD= cd ${.CURDIR} && ${MAKE} master-sites-ALL SORTED_PATCH_SITES_ALL_CMD= cd ${.CURDIR} && ${MAKE} patch-sites-ALL # # Sort the master site list according to the patterns in MASTER_SORT # according to grouping rules (:something) # # for use in the fetch targets .for _S in ${MASTER_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/^://:S/,/ /g} . if !target(master-sites-${_group}) SORTED_MASTER_SITES_${_group}_CMD= cd ${.CURDIR} && ${MAKE} master-sites-${_group} master-sites-${_group}: @${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} '${_MASTER_SITES_${_group}}' | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP} . endif . endfor . endif .endfor .for _S in ${PATCH_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/^://:S/,/ /g} . if !target(patch-sites-${_group}) SORTED_PATCH_SITES_${_group}_CMD= cd ${.CURDIR} && ${MAKE} patch-sites-${_group} patch-sites-${_group}: @${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} '${_PATCH_SITES_${_group}}' | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP} . endif . endfor . endif .endfor # # Hackery to enable simple fetch targets with several dynamic MASTER_SITES # _MASTER_SITES_ENV= _MASTER_SITES_DEFAULT="${_MASTER_SITES_DEFAULT}" .for _F in ${DISTFILES} _F_TEMP= ${_F:S/^${_F:C/:[^:]+$//}//:S/^://} . if !empty(_F_TEMP) . for _group in ${_F_TEMP:S/,/ /g} . if defined(_MASTER_SITES_${_group}) _MASTER_SITES_ENV+= _MASTER_SITES_${_group}="${_MASTER_SITES_${_group}}" . endif . endfor . endif .endfor _PATCH_SITES_ENV= _PATCH_SITES_DEFAULT="${_PATCH_SITES_DEFAULT}" .for _F in ${PATCHFILES} _F_TEMP= ${_F:S/^${_F:C/:[^:]+$//}//:S/^://} . if !empty(_F_TEMP) . for _group in ${_F_TEMP:S/,/ /g} . if defined(_PATCH_SITES_${_group}) _PATCH_SITES_ENV+= _PATCH_SITES_${_group}="${_PATCH_SITES_${_group}}" . endif . endfor . endif .endfor master-sites-ALL: @${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} '${_MASTER_SITES_ALL}' | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP} patch-sites-ALL: @${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} '${_PATCH_SITES_ALL}' | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP} # has similar effect to old targets, i.e., access only {MASTER,PATCH}_SITES, not working with the new _n variables master-sites-DEFAULT: @${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} '${_MASTER_SITES_DEFAULT}' | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP} patch-sites-DEFAULT: @${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} '${_PATCH_SITES_DEFAULT}' | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP} # synonyms, mnemonics master-sites-all: master-sites-ALL patch-sites-all: patch-sites-ALL master-sites-default: master-sites-DEFAULT patch-sites-default: patch-sites-DEFAULT # compatibility with old behavior master-sites: master-sites-DEFAULT patch-sites: patch-sites-DEFAULT .if defined(IGNOREFILES) .if !defined(CKSUMFILES) CKSUMFILES!= \ for file in ${ALLFILES}; do \ ignore=0; \ for tmp in ${IGNOREFILES}; do \ if [ "$$file" = "$$tmp" ]; then \ ignore=1; \ fi; \ done; \ if [ "$$ignore" = 0 ]; then \ ${ECHO_CMD} "$$file"; \ fi; \ done .endif .else CKSUMFILES= ${ALLFILES} .endif # List of all files, with ${DIST_SUBDIR} in front. Used for checksum. .if defined(DIST_SUBDIR) .if defined(CKSUMFILES) && ${CKSUMFILES}!="" _CKSUMFILES?= ${CKSUMFILES:S/^/${DIST_SUBDIR}\//} .endif .if defined(IGNOREFILES) && ${IGNOREFILES}!="" _IGNOREFILES?= ${IGNOREFILES:S/^/${DIST_SUBDIR}\//} .endif .else _CKSUMFILES?= ${CKSUMFILES} _IGNOREFILES?= ${IGNOREFILES} .endif # This is what is actually going to be extracted, and is overridable # by user. EXTRACT_ONLY?= ${_DISTFILES} .if !target(maintainer) maintainer: @${ECHO_CMD} "${MAINTAINER}" .endif .if !target(check-makefile) check-makefile:: @${DO_NADA} .endif .if !defined(CATEGORIES) check-categories: @${ECHO_MSG} "${PKGNAME}: Makefile error: CATEGORIES is mandatory." @${FALSE} .else VALID_CATEGORIES+= accessibility afterstep arabic archivers astro audio \ benchmarks biology cad chinese comms converters databases \ deskutils devel docs dns editors elisp emulators enlightenment finance french ftp \ games geography german gnome gnustep graphics hamradio haskell hebrew hungarian \ ipv6 irc japanese java kde kld korean lang linux lisp \ mail math mbone misc multimedia net net-im net-mgmt net-p2p news \ palm parallel pear perl5 plan9 polish portuguese ports-mgmt \ print python ruby rubygems russian \ scheme science security shells spanish sysutils \ tcl textproc tk \ ukrainian vietnamese windowmaker www \ x11 x11-clocks x11-drivers x11-fm x11-fonts x11-servers x11-themes \ x11-toolkits x11-wm xfce zope check-categories: .for cat in ${CATEGORIES} . if empty(VALID_CATEGORIES:M${cat}) @${ECHO_MSG} "${PKGNAME}: Makefile error: category ${cat} not in list of valid categories."; \ ${FALSE}; . endif .endfor .endif .if !target(check-makevars) check-makevars:: @${DO_NADA} .endif .if !target(check-depends) check-depends: @${DO_NADA} .endif PKGREPOSITORYSUBDIR?= All PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR} .if exists(${PACKAGES}) PKGFILE?= ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX} .else PKGFILE?= ${.CURDIR}/${PKGNAME}${PKG_SUFX} .endif # The "latest version" link -- ${PKGNAME} minus everthing after the last '-' PKGLATESTREPOSITORY?= ${PACKAGES}/Latest PKGBASE?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} LATEST_LINK?= ${PKGBASE} PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${LATEST_LINK}${PKG_SUFX} CONFIGURE_SCRIPT?= configure CONFIGURE_TARGET?= ${ARCH}-portbld-freebsd${OSREL} CONFIGURE_TARGET:= ${CONFIGURE_TARGET:S/--build=//} CONFIGURE_LOG?= config.log # A default message to print if do-configure fails. CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a ${PKG_INFO} -Ea)." .if defined(GNU_CONFIGURE) # Maximum command line length .if !defined(CONFIGURE_MAX_CMD_LEN) CONFIGURE_MAX_CMD_LEN!= ${SYSCTL} -n kern.argmax .endif GNU_CONFIGURE_PREFIX?= ${PREFIX} CONFIGURE_ARGS+= --prefix=${GNU_CONFIGURE_PREFIX} $${_LATE_CONFIGURE_ARGS} CONFIGURE_ENV+= lt_cv_sys_max_cmd_len=${CONFIGURE_MAX_CMD_LEN} HAS_CONFIGURE= yes SET_LATE_CONFIGURE_ARGS= \ _LATE_CONFIGURE_ARGS="" ; \ if [ ! -z "`./${CONFIGURE_SCRIPT} --help 2>&1 | ${GREP} -- '--mandir'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --mandir=${MANPREFIX}/man" ; \ fi ; \ if [ ! -z "`./${CONFIGURE_SCRIPT} --help 2>&1 | ${GREP} -- '--infodir'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --infodir=${PREFIX}/${INFO_PATH}/${INFO_SUBDIR}" ; \ fi ; \ if [ -z "`./${CONFIGURE_SCRIPT} --version 2>&1 | ${EGREP} -i '(autoconf.*2\.13|Unrecognized option)'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --build=${CONFIGURE_TARGET}" ; \ else \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} ${CONFIGURE_TARGET}" ; \ fi ; .endif # Passed to most of script invocations SCRIPTS_ENV+= CURDIR=${MASTERDIR} DISTDIR=${DISTDIR} \ WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} .if defined(BATCH) SCRIPTS_ENV+= BATCH=yes .endif .if ${PREFIX} == /usr MANPREFIX?= /usr/share .else MANPREFIX?= ${PREFIX} .endif .for sect in 1 2 3 4 5 6 7 8 9 MAN${sect}PREFIX?= ${MANPREFIX} .endfor MANLPREFIX?= ${MANPREFIX} MANNPREFIX?= ${MANPREFIX} MANLANG?= "" # english only by default .if !defined(NO_MANCOMPRESS) MANEXT= .gz .endif .if (defined(MLINKS) || defined(_MLINKS_PREPEND)) && !defined(_MLINKS) __pmlinks!= ${ECHO_CMD} '${MLINKS:S/ / /}' | ${AWK} \ '{ if (NF % 2 != 0) { print "broken"; exit; } \ for (i=1; i<=NF; i++) { \ if ($$i ~ /^-$$/ && i != 1 && i % 2 != 0) \ { $$i = $$(i-2); printf " " $$i " "; } \ else if ($$i ~ /^[^ ]+\.[1-9ln][^. ]*$$/ || $$i ~ /^\//) \ printf " " $$i " "; \ else \ { print "broken"; exit; } \ } \ }' | ${SED} -e 's \([^/ ][^ ]*\.\(.\)[^. ]*\) $${MAN\2PREFIX}/$$$$$$$${__lang}/man\2/\1${MANEXT}g' -e 's/ //g' -e 's/MANlPREFIX/MANLPREFIX/g' -e 's/MANnPREFIX/MANNPREFIX/g' .if ${__pmlinks:Mbroken} == "broken" check-makevars:: @${ECHO_MSG} "${PKGNAME}: Makefile error: unable to parse MLINKS." @${FALSE} .endif _MLINKS= ${_MLINKS_PREPEND} .for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%} .for ___pmlinks in ${__pmlinks} .for __lang in ${lang} _MLINKS+= ${___pmlinks:S// /g} .endfor .endfor .endfor .endif _COUNT=0 .for ___tpmlinks in ${_MLINKS} .if ${_COUNT} == "1" _TMLINKS+= ${___tpmlinks} _COUNT=0 .else _COUNT=1 .endif .endfor .for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%} .for sect in 1 2 3 4 5 6 7 8 9 L N # MAN${sect} is for man pages installed for all languages in MANLANG for a given # section. .if defined(MAN${sect}) _MANPAGES+= ${MAN${sect}:S%^%${MAN${sect}PREFIX}/${manlang}/man${sect:L}/%} .endif # Language specific MAN${sect} variables are for man pages installed in that # language, but not necessarily all languages in MANLANG. .if defined(MAN${sect}_${manlang:S%^man/%%:U}) _MANPAGES+= ${MAN${sect}_${manlang:S%^man/%%:U}:S%^%${MAN${sect}PREFIX}/${manlang}/man${sect:L}/%} .endif .endfor .endfor # Special case for English, since it is defined with "" in MANLANG rather than # a language name and does not have man pages installed in a lang subdirectory # of MAN${sect}PREFIX. .for sect in 1 2 3 4 5 6 7 8 9 L N .if defined(MAN${sect}_EN) _MANPAGES+= ${MAN${sect}_EN:S%^%${MAN${sect}PREFIX}/man/man${sect:L}/%} .endif .endfor .if !defined(_TMLINKS) _TMLINKS= .endif .if defined(_MANPAGES) .if defined(NO_MANCOMPRESS) __MANPAGES:= ${_MANPAGES:S%^${PREFIX}/%%} .else __MANPAGES:= ${_MANPAGES:S%^${PREFIX}/%%:S%$%.gz%} .endif .if ${MANCOMPRESSED} == "yes" _MANPAGES:= ${_MANPAGES:S%$%.gz%} .endif .endif .if ${PREFIX} == /usr INFO_PATH?= share/info .else INFO_PATH?= info .endif .if defined(INFO) . for D in ${INFO:H} RD:= ${D} . if ${RD} != "." . if !defined(INFO_SUBDIR) INFO_SUBDIR:= ${RD} . elif ${INFO_SUBDIR} != ${RD} BROKEN= only one subdirectory in INFO is allowed . endif . endif .undef RD . endfor .endif DOCSDIR_REL?= ${DOCSDIR:S,^${PREFIX}/,,} EXAMPLESDIR_REL?= ${EXAMPLESDIR:S,^${PREFIX}/,,} DATADIR_REL?= ${DATADIR:S,^${PREFIX}/,,} WWWDIR_REL?= ${WWWDIR:S,^${PREFIX}/,,} ETCDIR_REL?= ${ETCDIR:S,^${PREFIX}/,,} PLIST_SUB+= DOCSDIR="${DOCSDIR_REL}" \ EXAMPLESDIR="${EXAMPLESDIR_REL}" \ DATADIR="${DATADIR_REL}" \ WWWDIR="${WWWDIR_REL}" \ ETCDIR="${ETCDIR_REL}" DESKTOPDIR?= ${PREFIX}/share/applications _DESKTOPDIR_REL= ${DESKTOPDIR:S,^${PREFIX}/,,}/ .if ${_DESKTOPDIR_REL} == ${DESKTOPDIR}/ # DESKTOPDIR is not beneath PREFIX _DESKTOPDIR_REL= .endif .MAIN: all ################################################################ # Many ways to disable a port. # # If we're in BATCH mode and the port is interactive, or we're # in interactive mode and the port is non-interactive, skip all # the important targets. The reason we have two modes is that # one might want to leave a build in BATCH mode running # overnight, then come back in the morning and do _only_ the # interactive ones that required your intervention. # # Ignore ports that can't be resold if building for a CDROM. # # Don't build a port if it's restricted and we don't want to get # into that. # # Don't build a port if it's broken, unless we're running a parallel # build (in case it's fixed). # # Don't build a port if it's forbidden for whatever reason. # # Don't build a port if the system is too old. ################################################################ # Check the machine architectures .if defined(ONLY_FOR_ARCHS) .for __ARCH in ${ONLY_FOR_ARCHS} .if ${ARCH:M${__ARCH}} != "" __ARCH_OK?= 1 .endif .endfor .else __ARCH_OK?= 1 .endif .if defined(NOT_FOR_ARCHS) .for __NARCH in ${NOT_FOR_ARCHS} .if ${ARCH:M${__NARCH}} != "" .undef __ARCH_OK .endif .endfor .endif .if !defined(__ARCH_OK) .if defined(ONLY_FOR_ARCHS) IGNORE= is only for ${ONLY_FOR_ARCHS}, .else # defined(NOT_FOR_ARCHS) IGNORE= does not run on ${NOT_FOR_ARCHS}, .endif IGNORE+= while you are running ${ARCH} .if defined(ONLY_FOR_ARCHS_REASON_${ARCH}) IGNORE+= (reason: ${ONLY_FOR_ARCHS_REASON_${ARCH}}) .elif defined(ONLY_FOR_ARCHS_REASON) IGNORE+= (reason: ${ONLY_FOR_ARCHS_REASON}) .endif .if defined(NOT_FOR_ARCHS_REASON_${ARCH}) IGNORE+= (reason: ${NOT_FOR_ARCHS_REASON_${ARCH}}) .elif defined(NOT_FOR_ARCHS_REASON) IGNORE+= (reason: ${NOT_FOR_ARCHS_REASON}) .endif .endif # Check the user interaction and legal issues .if !defined(NO_IGNORE) .if (defined(IS_INTERACTIVE) && defined(BATCH)) IGNORE= is an interactive port .elif (!defined(IS_INTERACTIVE) && defined(INTERACTIVE)) IGNORE= is not an interactive port .elif (defined(NO_CDROM) && defined(FOR_CDROM)) IGNORE= may not be placed on a CDROM: ${NO_CDROM} .elif (defined(RESTRICTED) && defined(NO_RESTRICTED)) IGNORE= is restricted: ${RESTRICTED} .elif defined(BROKEN) .if !defined(TRYBROKEN) IGNORE= is marked as broken: ${BROKEN} .endif .elif defined(FORBIDDEN) IGNORE= is forbidden: ${FORBIDDEN} .endif .if (defined(MANUAL_PACKAGE_BUILD) && defined(PACKAGE_BUILDING)) IGNORE= has to be built manually: ${MANUAL_PACKAGE_BUILD} clean: @${IGNORECMD} .endif .if defined(IGNORE) .if defined(IGNORE_SILENT) IGNORECMD= ${DO_NADA} .else IGNORECMD= ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE:Q}.;exit 1 .endif .for target in check-sanity fetch checksum extract patch configure all build install reinstall package .if !target(${target}) ${target}: @${IGNORECMD} .if defined(INSTALLS_DEPENDS) @${FALSE} .endif .endif .endfor .endif .endif .if defined(IGNORE) || defined(NO_PACKAGE) ignorelist: package-name .else ignorelist: @${DO_NADA} .endif .if defined(IGNORE) || defined(NO_PACKAGE) ignorelist-verbose: .if defined(IGNORE) @${ECHO_CMD} "${PKGNAME}|IGNORE: "${IGNORE:Q} .else @${ECHO_CMD} "${PKGNAME}|NO_PACKAGE: "${NO_PACKAGE:Q} .endif .else ignorelist-verbose: @${DO_NADA} .endif ################################################################ # Clean directories for ftp or CDROM. ################################################################ .if !defined(LICENSE) .if defined(RESTRICTED) clean-restricted: delete-distfiles delete-package clean-restricted-list: delete-distfiles-list delete-package-list RESTRICTED_FILES?= ${_DISTFILES} ${_PATCHFILES} .else clean-restricted: clean-restricted-list: .endif .if defined(NO_CDROM) clean-for-cdrom: delete-distfiles delete-package clean-for-cdrom-list: delete-distfiles-list delete-package-list RESTRICTED_FILES?= ${_DISTFILES} ${_PATCHFILES} .else clean-for-cdrom: clean-for-cdrom-list: .endif .endif # !defined(LICENSE) .if defined(ALL_HOOK) all: @cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTNAME=${DISTNAME} \ DISTDIR=${DISTDIR} WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} \ PATCHDIR=${PATCHDIR} SCRIPTDIR=${SCRIPTDIR} \ FILESDIR=${FILESDIR} PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} \ BUILD_DEPENDS="${BUILD_DEPENDS}" RUN_DEPENDS="${RUN_DEPENDS}" \ CONFLICTS="${CONFLICTS}" \ ${ALL_HOOK} .endif .if !target(all) all: build .endif .if !defined(DEPENDS_TARGET) .if defined(DEPENDS_PRECLEAN) DEPENDS_TARGET= clean DEPENDS_ARGS= NOCLEANDEPENDS=yes .endif .if make(reinstall) DEPENDS_TARGET+= reinstall .else DEPENDS_TARGET+= install .endif .if defined(DEPENDS_CLEAN) DEPENDS_TARGET+= clean DEPENDS_ARGS+= NOCLEANDEPENDS=yes .endif .endif ################################################################ # # Do preliminary work to detect if we need to run the config # target or not. # ################################################################ .if ((!defined(OPTIONS_DEFINE) && !defined(OPTIONS_SINGLE) && !defined(OPTIONS_MULTI)) \ || defined(CONFIG_DONE_${UNIQUENAME:U}) || \ defined(PACKAGE_BUILDING) || defined(BATCH)) _OPTIONS_OK=yes .endif ################################################################ # The following are used to create easy dummy targets for # disabling some bit of default target behavior you don't want. # They still check to see if the target exists, and if so don't # do anything, since you might want to set this globally for a # group of ports in a Makefile.inc, but still be able to # override from an individual Makefile. ################################################################ # Disable checksum .if defined(NO_CHECKSUM) && !target(checksum) checksum: fetch @${DO_NADA} .endif # Disable build .if defined(NO_BUILD) && !target(build) build: configure @${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE} .endif # Disable install .if defined(NO_INSTALL) && !target(do-install) do-install: @${DO_NADA} .endif # Disable package .if defined(NO_PACKAGE) && !target(package) package: .if defined(IGNORE_SILENT) @${DO_NADA} .else @${ECHO_MSG} "===> ${PKGNAME} may not be packaged: "${NO_PACKAGE:Q}. .endif .endif # Disable describe .if defined(NO_DESCRIBE) && !target(describe) describe: @${DO_NADA} .endif ################################################################ # More standard targets start here. # # These are the body of the build/install framework. If you are # not happy with the default actions, and you can't solve it by # adding pre-* or post-* targets/scripts, override these. ################################################################ # Pre-everything pre-everything:: @${DO_NADA} buildanyway-message: .if defined(TRYBROKEN) && defined(BROKEN) @${ECHO_MSG} "Trying build of ${PKGNAME} even though it is marked BROKEN." .else @${DO_NADA} .endif options-message: .if defined(GNOME_OPTION_MSG) && (!defined(PACKAGE_BUILDING) || !defined(BATCH)) @for m in ${GNOME_OPTION_MSG}; do \ ${ECHO_MSG} $$m; \ done .else @${DO_NADA} .endif .if defined(_OPTIONS_READ) @${ECHO_MSG} "===> Found saved configuration for ${_OPTIONS_READ}" .endif # Warn user about deprecated packages. Advisory only. .if !target(check-deprecated) check-deprecated: .if defined(DEPRECATED) @${ECHO_MSG} "===> NOTICE:" @${ECHO_MSG} @${ECHO_MSG} "This port is deprecated; you may wish to reconsider installing it:" @${ECHO_MSG} @${ECHO_MSG} ${DEPRECATED:Q}. @${ECHO_MSG} .if defined(EXPIRATION_DATE) @${ECHO_MSG} "It is scheduled to be removed on or after ${EXPIRATION_DATE}." @${ECHO_MSG} .endif .endif .endif # Check if the port is listed in the vulnerability database .if defined(WITH_PKGNG) AUDITFILE?= ${PKG_DBDIR}/auditfile _EXTRACT_AUDITFILE= ${CAT} "${AUDITFILE}" .else AUDITFILE?= /var/db/portaudit/auditfile.tbz _EXTRACT_AUDITFILE= ${TAR} -jxOf "${AUDITFILE}" auditfile .endif check-vulnerable: .if !defined(DISABLE_VULNERABILITIES) && !defined(PACKAGE_BUILDING) @if [ -f "${AUDITFILE}" ]; then \ if [ -n "${WITH_PKGNG}" ]; then \ vlist=`${PKG_BIN} audit "${PKGNAME}"`; \ elif [ -x "${LOCALBASE}/sbin/portaudit" ]; then \ vlist=`${LOCALBASE}/sbin/portaudit -X 14 "${PKGNAME}" \ 2>&1 | grep -vE '^[0-9]+ problem\(s\) found.' \ || true`; \ else \ ${ECHO_MSG} "===> portaudit database exists, however, portaudit is not installed!"; \ fi; \ if [ -n "$$vlist" ]; then \ ${ECHO_MSG} "===> ${PKGNAME} has known vulnerabilities:"; \ ${ECHO_MSG} "$$vlist"; \ ${ECHO_MSG} "=> Please update your ports tree and try again."; \ exit 1; \ fi; \ fi .endif # set alg to any of SIZE, SHA256 (or any other checksum algorithm): DISTINFO_DATA?= if [ \( -n "${DISABLE_SIZE}" -a -n "${NO_CHECKSUM}" \) -o ! -f "${DISTINFO_FILE}" ]; then exit; fi; \ DIR=${DIST_SUBDIR}; ${AWK} -v alg=$$alg -v file=$${DIR:+$$DIR/}$${file} \ '$$1 == alg && $$2 == "(" file ")" {print $$4}' ${DISTINFO_FILE} # Fetch .if !target(do-fetch) do-fetch: @${MKDIR} ${_DISTDIR} @cd ${_DISTDIR};\ ${_MASTER_SITES_ENV} ; \ for _file in ${DISTFILES}; do \ file=$${_file%%:*}; \ if [ $$_file = $$file ]; then \ select=''; \ else \ select=`${ECHO_CMD} $${_file##*:} | ${SED} -e 's/,/ /g'` ; \ fi; \ force_fetch=false; \ filebasename=$${file##*/}; \ for afile in ${FORCE_FETCH}; do \ afile=$${afile##*/}; \ if [ "x$$afile" = "x$$filebasename" ]; then \ force_fetch=true; \ fi; \ done; \ if [ ! -f $$file -a ! -f $$filebasename -o "$$force_fetch" = "true" ]; then \ if [ -L $$file -o -L $$filebasename ]; then \ ${ECHO_MSG} "=> ${_DISTDIR}/$$file is a broken symlink."; \ ${ECHO_MSG} "=> Perhaps a filesystem (most likely a CD) isn't mounted?"; \ ${ECHO_MSG} "=> Please correct this problem and try again."; \ exit 1; \ fi; \ if [ -f ${DISTINFO_FILE} -a "x${NO_CHECKSUM}" = "x" ]; then \ _sha256sum=`alg=SHA256; ${DISTINFO_DATA}`; \ if [ -z "$$_sha256sum" ]; then \ ${ECHO_MSG} "=> $${DIR:+$$DIR/}$$file is not in ${DISTINFO_FILE}."; \ ${ECHO_MSG} "=> Either ${DISTINFO_FILE} is out of date, or"; \ ${ECHO_MSG} "=> $${DIR:+$$DIR/}$$file is spelled incorrectly."; \ exit 1; \ fi; \ fi; \ ${ECHO_MSG} "=> $$file doesn't seem to exist in ${_DISTDIR}."; \ if [ ! -w ${DISTDIR} ]; then \ ${ECHO_MSG} "=> ${DISTDIR} is not writable by you; cannot fetch."; \ exit 1; \ fi; \ if [ ! -z "$$select" ] ; then \ __MASTER_SITES_TMP= ; \ for group in $$select; do \ if [ ! -z \$${_MASTER_SITES_$${group}} ] ; then \ eval ___MASTER_SITES_TMP="\$${_MASTER_SITES_$${group}}" ; \ __MASTER_SITES_TMP="$${__MASTER_SITES_TMP} $${___MASTER_SITES_TMP}" ; \ fi; \ done; \ ___MASTER_SITES_TMP= ; \ SORTED_MASTER_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__MASTER_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ else \ SORTED_MASTER_SITES_CMD_TMP="${SORTED_MASTER_SITES_DEFAULT_CMD}" ; \ fi; \ for site in `eval $$SORTED_MASTER_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ ${ECHO_MSG} "=> Attempting to fetch $${site}$${file}"; \ CKSIZE=`alg=SIZE; ${DISTINFO_DATA}`; \ case $${file} in \ */*) ${MKDIR} $${file%/*}; \ args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ esac; \ if ${SETENV} ${FETCH_ENV} ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${args} ${FETCH_AFTER_ARGS}; then \ continue 2; \ fi; \ done; \ ${ECHO_MSG} "=> Couldn't fetch it - please try to retrieve this";\ ${ECHO_MSG} "=> port manually into ${_DISTDIR} and try again."; \ exit 1; \ fi; \ done .if defined(PATCHFILES) @cd ${_DISTDIR};\ ${_PATCH_SITES_ENV} ; \ for _file in ${PATCHFILES}; do \ file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ force_fetch=false; \ filebasename=$${file##*/}; \ for afile in ${FORCE_FETCH}; do \ afile=$${afile##*/}; \ if [ "x$$afile" = "x$$filebasename" ]; then \ force_fetch=true; \ fi; \ done; \ if [ ! -f $$file -a ! -f $$filebasename -o "$$force_fetch" = "true" ]; then \ if [ -L $$file -o -L $${file##*/} ]; then \ ${ECHO_MSG} "=> ${_DISTDIR}/$$file is a broken symlink."; \ ${ECHO_MSG} "=> Perhaps a filesystem (most likely a CD) isn't mounted?"; \ ${ECHO_MSG} "=> Please correct this problem and try again."; \ exit 1; \ fi; \ ${ECHO_MSG} "=> $$file doesn't seem to exist in ${_DISTDIR}."; \ if [ ! -z "$$select" ] ; then \ __PATCH_SITES_TMP= ; \ for group in $$select; do \ if [ ! -z \$${_PATCH_SITES_$${group}} ] ; then \ eval ___PATCH_SITES_TMP="\$${_PATCH_SITES_$${group}}" ; \ __PATCH_SITES_TMP="$${__PATCH_SITES_TMP} $${___PATCH_SITES_TMP}" ; \ fi; \ done; \ ___PATCH_SITES_TMP= ; \ SORTED_PATCH_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__PATCH_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ else \ SORTED_PATCH_SITES_CMD_TMP="${SORTED_PATCH_SITES_DEFAULT_CMD}" ; \ fi; \ for site in `eval $$SORTED_PATCH_SITES_CMD_TMP`; do \ ${ECHO_MSG} "=> Attempting to fetch $${site}$${file}"; \ CKSIZE=`alg=SIZE; ${DISTINFO_DATA}`; \ case $${file} in \ */*) ${MKDIR} $${file%/*}; \ args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ esac; \ if ${SETENV} ${FETCH_ENV} ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${args} ${FETCH_AFTER_ARGS}; then \ continue 2; \ fi; \ done; \ ${ECHO_MSG} "=> Couldn't fetch it - please try to retrieve this";\ ${ECHO_MSG} "=> port manually into ${_DISTDIR} and try again."; \ exit 1; \ fi; \ done .endif .endif # Extract .if !target(do-extract) do-extract: @${RM} -rf ${WRKDIR} @${MKDIR} ${WRKDIR} @for file in ${EXTRACT_ONLY}; do \ if ! (cd ${WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/$$file ${EXTRACT_AFTER_ARGS});\ then \ exit 1; \ fi; \ done .if !defined(EXTRACT_PRESERVE_OWNERSHIP) @if [ ${UID} = 0 ]; then \ ${CHMOD} -R ug-s ${WRKDIR}; \ ${CHOWN} -R 0:0 ${WRKDIR}; \ fi .endif .endif # Patch .if !target(patch-dos2unix) patch-dos2unix: .if defined(USE_DOS2UNIX) .if ${USE_DOS2UNIX:U}=="YES" @${ECHO_MSG} "===> Converting DOS text files to UNIX text files" @${FIND} -E ${WRKSRC} -type f -iregex '${DOS2UNIX_REGEX}' -print0 | \ ${XARGS} -0 ${REINPLACE_CMD} -i '' -e 's/ $$//' .else @${ECHO_MSG} "===> Converting DOS text file to UNIX text file: ${f}" .if ${USE_DOS2UNIX:M*/*} .for f in ${USE_DOS2UNIX} @${REINPLACE_CMD} -i '' -e 's/ $$//' ${WRKSRC}/${f} .endfor .else .for f in ${USE_DOS2UNIX} @${FIND} ${WRKSRC} -type f -name '${f}' -print0 | \ ${XARGS} -0 ${REINPLACE_CMD} -i '' -e 's/ $$//' .endfor .endif .endif .else @${DO_NADA} .endif .endif .if !target(do-patch) do-patch: .if defined(PATCHFILES) @${ECHO_MSG} "===> Applying distribution patches for ${PKGNAME}" @(cd ${_DISTDIR}; \ for i in ${_PATCHFILES}; do \ if [ ${PATCH_DEBUG_TMP} = yes ]; then \ ${ECHO_MSG} "===> Applying distribution patch $$i" ; \ fi; \ case $$i in \ *.Z|*.gz) \ ${GZCAT} $$i | ${PATCH} ${PATCH_DIST_ARGS}; \ ;; \ *.bz2) \ ${BZCAT} $$i | ${PATCH} ${PATCH_DIST_ARGS}; \ ;; \ *) \ ${PATCH} ${PATCH_DIST_ARGS} < $$i; \ ;; \ esac; \ done) .endif .if defined(EXTRA_PATCHES) @for i in ${EXTRA_PATCHES}; do \ ${ECHO_MSG} "===> Applying extra patch $$i"; \ ${PATCH} ${PATCH_ARGS} < $$i; \ done .endif @if [ -d ${PATCHDIR} ]; then \ if [ "`${ECHO_CMD} ${PATCHDIR}/patch-*`" != "${PATCHDIR}/patch-*" ]; then \ ${ECHO_MSG} "===> Applying ${OPSYS} patches for ${PKGNAME}" ; \ PATCHES_APPLIED="" ; \ for i in ${PATCHDIR}/patch-*; do \ case $$i in \ *.orig|*.rej|*~|*,v) \ ${ECHO_MSG} "===> Ignoring patchfile $$i" ; \ ;; \ *) \ if [ ${PATCH_DEBUG_TMP} = yes ]; then \ ${ECHO_MSG} "===> Applying ${OPSYS} patch $$i" ; \ fi; \ if ${PATCH} ${PATCH_ARGS} < $$i ; then \ PATCHES_APPLIED="$$PATCHES_APPLIED $$i" ; \ else \ ${ECHO_MSG} `${ECHO_CMD} "=> Patch $$i failed to apply cleanly." | ${SED} "s|${PATCHDIR}/||"` ; \ if [ x"$$PATCHES_APPLIED" != x"" ]; then \ ${ECHO_MSG} `${ECHO_CMD} "=> Patch(es) $$PATCHES_APPLIED applied cleanly." | ${SED} "s|${PATCHDIR}/||g"` ; \ fi; \ ${FALSE} ; \ fi; \ ;; \ esac; \ done; \ fi; \ fi .endif .if !target(run-autotools-fixup) run-autotools-fixup: # Work around an issue where FreeBSD 10.0 is detected as FreeBSD 1.x. .if ${OSVERSION} >= 1000000 && !defined(WITHOUT_FBSD10_FIX) -@for f in `${FIND} ${WRKDIR} -type f \( -name config.libpath -o \ -name config.rpath -o -name configure -o -name libtool.m4 -o \ -name ltconfig -o -name libtool -o -name aclocal.m4 -o \ -name acinclude.m4 \)` ; do \ ${SED} -i.fbsd10bak \ -e 's|freebsd1\*)|freebsd1.\*)|g' \ -e 's|freebsd\[12\]\*)|freebsd[12].*)|g' \ -e 's|freebsd\[123\]\*)|freebsd[123].*)|g' \ -e 's|freebsd\[\[12\]\]\*)|freebsd[[12]].*)|g' \ -e 's|freebsd\[\[123\]\]\*)|freebsd[[123]].*)|g' \ $${f} ; \ ${TOUCH} ${TOUCH_FLAGS} -mr $${f}.fbsd10bak $${f} ; \ ${RM} -f $${f}.fbsd10bak ; \ ${ECHO_MSG} "===> FreeBSD 10 autotools fix applied to $${f}"; \ done .endif .endif .if !target(configure-autotools) configure-autotools: @${DO_NADA} .endif .if !target(run-autotools) run-autotools: @${DO_NADA} .endif # Configure .if !target(do-configure) do-configure: @if [ -f ${SCRIPTDIR}/configure ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/configure; \ fi .if defined(GNU_CONFIGURE) @CONFIG_GUESS_DIRS=$$(${FIND} ${WRKDIR} -name config.guess -o -name config.sub \ | ${XARGS} -n 1 ${DIRNAME}); \ for _D in $${CONFIG_GUESS_DIRS}; do \ ${CP} -f ${TEMPLATES}/config.guess $${_D}/config.guess; \ ${CHMOD} a+rx $${_D}/config.guess; \ ${CP} -f ${TEMPLATES}/config.sub $${_D}/config.sub; \ ${CHMOD} a+rx $${_D}/config.sub; \ done .endif .if defined(HAS_CONFIGURE) @(cd ${CONFIGURE_WRKSRC} && \ ${SET_LATE_CONFIGURE_ARGS} \ if ! ${SETENV} CC="${CC}" CPP="${CPP}" CXX="${CXX}" \ CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" CXXFLAGS="${CXXFLAGS}" \ LDFLAGS="${LDFLAGS}" \ INSTALL="/usr/bin/install -c ${_BINOWNGRP}" \ INSTALL_DATA="${INSTALL_DATA}" \ INSTALL_LIB="${INSTALL_LIB}" \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ ${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS}; then \ ${ECHO_MSG} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \ (${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT} 75 79 ; \ ${FALSE}; \ fi) .endif .if defined(USE_IMAKE) @(cd ${CONFIGURE_WRKSRC}; ${SETENV} ${MAKE_ENV} ${XMKMF}) .endif .endif # Build .if !target(do-build) do-build: .if defined(USE_GMAKE) @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}; then \ if [ x != x${BUILD_FAIL_MESSAGE} ] ; then \ ${ECHO_MSG} "===> Compilation failed unexpectedly."; \ (${ECHO_CMD} ${BUILD_FAIL_MESSAGE}) | ${FMT} 75 79 ; \ fi; \ ${FALSE}; \ fi) .else @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}; then \ if [ x != x${BUILD_FAIL_MESSAGE} ] ; then \ ${ECHO_MSG} "===> Compilation failed unexpectedly."; \ (${ECHO_CMD} ${BUILD_FAIL_MESSAGE}) | ${FMT} 75 79 ; \ fi; \ ${FALSE}; \ fi) .endif .endif # Check conflicts .if !target(check-conflicts) check-conflicts: check-build-conflicts check-install-conflicts .endif .if !target(check-build-conflicts) check-build-conflicts: .if ( defined(CONFLICTS) || defined(CONFLICTS_BUILD) ) && !defined(DISABLE_CONFLICTS) && !defined(DEFER_CONFLICTS_CHECK) @found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \ conflicts_with=; \ for entry in $${found}; do \ if ${PKG_INFO} -e $${entry} ; then \ prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \ orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \ if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \ conflicts_with="$${conflicts_with} $${entry}"; \ fi; \ fi; \ done; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " They will not build together."; \ ${ECHO_MSG} " Please remove them first with pkg_delete(1)."; \ exit 1; \ fi .endif .endif .if !target(identify-install-conflicts) identify-install-conflicts: .if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) ) && !defined(DISABLE_CONFLICTS) @found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \ conflicts_with=; \ for entry in $${found}; do \ if ${PKG_INFO} -e $${entry} ; then \ prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \ orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \ if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \ conflicts_with="$${conflicts_with} $${entry}"; \ fi; \ fi; \ done; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " They install files into the same place."; \ ${ECHO_MSG} " You may want to stop build with Ctrl + C."; \ sleep 10; \ fi .endif .endif .if !target(check-install-conflicts) check-install-conflicts: .if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) || ( defined(CONFLICTS_BUILD) && defined(DEFER_CONFLICTS_CHECK) ) ) && !defined(DISABLE_CONFLICTS) .if defined(DEFER_CONFLICTS_CHECK) @found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \ conflicts_with=; \ for entry in $${found}; do \ if ${PKG_INFO} -e $${entry} ; then \ prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \ orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \ if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \ conflicts_with="$${conflicts_with} $${entry}"; \ fi; \ fi; \ done; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " Please remove them first with pkg_delete(1)."; \ exit 1; \ fi .else @found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \ conflicts_with=; \ for entry in $${found}; do \ if ${PKG_INFO} -e $${entry} ; then \ prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \ orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \ if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \ conflicts_with="$${conflicts_with} $${entry}"; \ fi; \ fi; \ done; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " They install files into the same place."; \ ${ECHO_MSG} " Please remove them first with pkg_delete(1)."; \ exit 1; \ fi .endif # defined(DEFER_CONFLICTS_CHECK) .endif .endif # Install .if !target(do-install) do-install: .if defined(USE_GMAKE) @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) .if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man) .endif .else # !defined(USE_GMAKE) @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) .if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES) @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man) .endif .endif .endif # Package .if !target(do-package) do-package: ${TMPPLIST} @if [ -d ${PACKAGES} ]; then \ if [ ! -d ${PKGREPOSITORY} ]; then \ if ! ${MKDIR} ${PKGREPOSITORY}; then \ ${ECHO_MSG} "=> Can't create directory ${PKGREPOSITORY}."; \ exit 1; \ fi; \ fi; \ fi @if ${PKG_CMD} -b ${PKGNAME} ${PKGFILE}; then \ if [ -d ${PACKAGES} ]; then \ cd ${.CURDIR} && eval ${MAKE} package-links; \ fi; \ else \ cd ${.CURDIR} && eval ${MAKE} delete-package; \ exit 1; \ fi .endif # Some support rules for do-package .if !target(package-links) package-links: delete-package-links @for cat in ${CATEGORIES}; do \ if [ ! -d ${PACKAGES}/$$cat ]; then \ if ! ${MKDIR} ${PACKAGES}/$$cat; then \ ${ECHO_MSG} "=> Can't create directory ${PACKAGES}/$$cat."; \ exit 1; \ fi; \ fi; \ ${LN} -sf `${ECHO_CMD} $$cat | ${SED} -e 'sa[^/]*a..ag'`/${PKGREPOSITORYSUBDIR}/${PKGNAME}${PKG_SUFX} ${PACKAGES}/$$cat; \ done .if !defined(NO_LATEST_LINK) @if [ ! -d ${PKGLATESTREPOSITORY} ]; then \ if ! ${MKDIR} ${PKGLATESTREPOSITORY}; then \ ${ECHO_MSG} "=> Can't create directory ${PKGLATESTREPOSITORY}."; \ exit 1; \ fi; \ fi @${LN} -s ../${PKGREPOSITORYSUBDIR}/${PKGNAME}${PKG_SUFX} ${PKGLATESTFILE} .endif .endif .if !target(delete-package-links) delete-package-links: @for cat in ${CATEGORIES}; do \ ${RM} -f ${PACKAGES}/$$cat/${PKGNAME}${PKG_SUFX}; \ done .if !defined(NO_LATEST_LINK) @${RM} -f ${PKGLATESTFILE} .endif .endif .if !target(delete-package) delete-package: delete-package-links @${RM} -f ${PKGFILE} .endif .if !target(delete-package-links-list) delete-package-links-list: @for cat in ${CATEGORIES}; do \ ${ECHO_CMD} ${RM} -f ${PACKAGES}/$$cat/${PKGNAME}${PKG_SUFX}; \ done .if !defined(NO_LATEST_LINK) @${ECHO_CMD} ${RM} -f ${PKGLATESTFILE} .endif .endif .if !target(delete-package-list) delete-package-list: delete-package-links-list @${ECHO_CMD} "[ -f ${PKGFILE} ] && (${ECHO_CMD} deleting ${PKGFILE}; ${RM} -f ${PKGFILE})" .endif # Utility targets follow .if !target(check-already-installed) check-already-installed: ${TMPPLIST_SORT} .if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER) @${ECHO_MSG} "===> Checking if ${PKGORIGIN} already installed"; \ ${MKDIR} ${PKG_DBDIR}; \ already_installed=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ if [ -n "$${already_installed}" ]; then \ for p in $${already_installed}; do \ prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ if [ "x${PREFIX}" = "x$${prfx}" ]; then \ df=`${PKG_INFO} -q -f $${p} 2> /dev/null | ${GREP} -v "^@" | ${SORT} -u | ${COMM} -12 - ${TMPPLIST_SORT}`; \ if [ -n "$${df}" ]; then \ found_package=$${p}; \ break; \ fi; \ fi; \ done; \ fi; \ if [ -d ${PKG_DBDIR}/${PKGNAME} -o -n "$${found_package}" ]; then \ if [ -d ${PKG_DBDIR}/${PKGNAME} ]; then \ ${ECHO_CMD} "===> ${PKGNAME} is already installed"; \ else \ ${ECHO_CMD} "===> An older version of ${PKGORIGIN} is already installed ($${found_package})"; \ fi; \ ${ECHO_MSG} " You may wish to \`\`make deinstall'' and install this port again"; \ ${ECHO_MSG} " by \`\`make reinstall'' to upgrade it properly."; \ ${ECHO_MSG} " If you really wish to overwrite the old port of ${PKGORIGIN}"; \ ${ECHO_MSG} " without deleting it first, set the variable \"FORCE_PKG_REGISTER\""; \ ${ECHO_MSG} " in your environment or the \"make install\" command line."; \ exit 1; \ fi .else @${DO_NADA} .endif .endif .if !target(check-umask) check-umask: @if [ `${SH} -c umask` != 0022 ]; then \ ${ECHO_MSG} "===> Warning: your umask is \"`${SH} -c umask`"\".; \ ${ECHO_MSG} " If this is not desired, set it to an appropriate value"; \ ${ECHO_MSG} " and install this port again by \`\`make reinstall''."; \ fi .endif .if !target(install-mtree) install-mtree: @${MKDIR} ${PREFIX} @if [ ${UID} != 0 ]; then \ if [ -w ${PREFIX}/ ]; then \ ${ECHO_MSG} "Warning: not superuser, you may get some errors during installation."; \ else \ ${ECHO_MSG} "Error: ${PREFIX}/ not writable."; \ ${FALSE}; \ fi; \ fi .if !defined(NO_MTREE) @if [ ${UID} = 0 ]; then \ if [ ! -f ${MTREE_FILE} ]; then \ ${ECHO_MSG} "Error: mtree file \"${MTREE_FILE}\" is missing."; \ ${ECHO_MSG} "Copy it from a suitable location (e.g., ${SRC_BASE}/etc/mtree) and try again."; \ exit 1; \ else \ ${MTREE_CMD} ${MTREE_ARGS} ${PREFIX}/ >/dev/null; \ if [ ${PREFIX} = ${LOCALBASE} -a "${MTREE_FILE_DEFAULT}" = "yes" ]; then \ cd ${PREFIX}/share/nls; \ for link in POSIX en_US.US-ASCII; \ do \ if [ x"`${READLINK_CMD} $${link}`" != x"C" ]; \ then \ ${LN} -shf C $${link}; \ fi; \ done; \ fi; \ fi; \ else \ ${ECHO_MSG} "Warning: not superuser, can't run mtree."; \ ${ECHO_MSG} "You may want to become root and try again to ensure correct permissions."; \ fi .endif .endif .if !target(install-ldconfig-file) install-ldconfig-file: .if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) .if defined(USE_LDCONFIG) .if defined(USE_LINUX_PREFIX) @${ECHO_MSG} "===> Running linux ldconfig" ${LDCONFIG_CMD} .else .if !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Running ldconfig" ${LDCONFIG} -m ${USE_LDCONFIG} .else @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" -${LDCONFIG} -m ${USE_LDCONFIG} .endif .if ${USE_LDCONFIG} != "${PREFIX}/lib" && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Installing ldconfig configuration file" .if defined(NO_LDCONFIG_MTREE) @${MKDIR} ${PREFIX}/${LDCONFIG_DIR} .endif @${ECHO_CMD} ${USE_LDCONFIG} | ${TR} ' ' '\n' \ > ${PREFIX}/${LDCONFIG_DIR}/${UNIQUENAME} @${ECHO_CMD} "@cwd" >> ${TMPPLIST} @${ECHO_CMD} ${LDCONFIG_DIR}/${UNIQUENAME} >> ${TMPPLIST} .if defined(NO_LDCONFIG_MTREE) @${ECHO_CMD} "@unexec rmdir ${LDCONFIG_DIR} >/dev/null 2>&1 || true" >> ${TMPPLIST} .endif .endif .endif .endif .if defined(USE_LDCONFIG32) .if !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Running ldconfig" ${LDCONFIG} -32 -m ${USE_LDCONFIG32} .else @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" -${LDCONFIG} -32 -m ${USE_LDCONFIG32} .endif .if !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Installing 32-bit ldconfig configuration file" .if defined(NO_LDCONFIG_MTREE) @${MKDIR} ${PREFIX}/${LDCONFIG_32DIR} .endif @${ECHO_CMD} ${USE_LDCONFIG32} | ${TR} ' ' '\n' \ > ${PREFIX}/${LDCONFIG32_DIR}/${UNIQUENAME} @${ECHO_CMD} "@cwd" >> ${TMPPLIST} @${ECHO_CMD} ${LDCONFIG32_DIR}/${UNIQUENAME} >> ${TMPPLIST} .if defined(NO_LDCONFIG_MTREE) @${ECHO_CMD} "@unexec rmdir ${LDCONFIG32_DIR} >/dev/null 2>&1" >> ${TMPPLIST} .endif .endif .endif .if defined(INSTALLS_SHLIB) @${ECHO_MSG} "INSTALLS_SHLIB is deprecated. Use USE_LDCONFIG instead." .endif .endif .endif .if !target(create-users-groups) create-users-groups: .if defined(GROUPS) || defined(USERS) .if defined(GROUPS) .for _file in ${GID_FILES} .if !exists(${_file}) @${ECHO_CMD} "** ${_file} doesn't exist. Exiting."; exit 1 .endif .endfor @${ECHO_MSG} "===> Creating users and/or groups." @${ECHO_CMD} "@exec echo \"===> Creating users and/or groups.\"" >> ${TMPPLIST} .for _group in ${GROUPS} # _bgpd:*:130: @if ! ${GREP} -h ^${_group}: ${GID_FILES} >/dev/null 2>&1; then \ ${ECHO_CMD} "** Cannot find any information about group \`${_group}' in ${GID_FILES}."; \ exit 1; \ fi @IFS=":"; ${GREP} -h ^${_group}: ${GID_FILES} | head -n 1 | while read group foo gid members; do \ gid=$$(($$gid+${GID_OFFSET})); \ if ! ${PW} groupshow $$group >/dev/null 2>&1; then \ ${ECHO_MSG} "Creating group \`$$group' with gid \`$$gid'."; \ ${PW} groupadd $$group -g $$gid; \ else \ ${ECHO_MSG} "Using existing group \`$$group'."; \ fi; \ ${ECHO_CMD} "@exec if ! ${PW} groupshow $$group >/dev/null 2>&1; then \ echo \"Creating group '$$group' with gid '$$gid'.\"; \ ${PW} groupadd $$group -g $$gid; else echo \"Using existing group '$$group'.\"; fi" >> ${TMPPLIST}; \ done .endfor .endif .if defined(USERS) .for _file in ${UID_FILES} .if !exists(${_file}) @${ECHO_CMD} "** ${_file} doesn't exist. Exiting."; exit 1 .endif .endfor .for _user in ${USERS} # _bgpd:*:130:130:BGP Daemon:/var/empty:/sbin/nologin @if ! ${GREP} -h ^${_user}: ${UID_FILES} >/dev/null 2>&1; then \ ${ECHO_CMD} "** Cannot find any information about user \`${_user}' in ${UID_FILES}."; \ exit 1; \ fi @IFS=":"; ${GREP} -h ^${_user}: ${UID_FILES} | head -n 1 | while read login passwd uid gid class change expire gecos homedir shell; do \ uid=$$(($$uid+${UID_OFFSET})); \ gid=$$(($$gid+${GID_OFFSET})); \ class="$${class:+-L }$$class"; \ homedir=$$(echo $$homedir | sed "s|^/usr/local|${PREFIX}|"); \ if ! ${PW} usershow $$login >/dev/null 2>&1; then \ ${ECHO_MSG} "Creating user \`$$login' with uid \`$$uid'."; \ eval ${PW} useradd $$login -u $$uid -g $$gid $$class -c \"$$gecos\" -d $$homedir -s $$shell; \ case $$homedir in /nonexistent|/var/empty) ;; *) ${INSTALL} -d -g $$gid -o $$uid $$homedir;; esac; \ else \ ${ECHO_MSG} "Using existing user \`$$login'."; \ fi; \ ${ECHO_CMD} "@exec if ! ${PW} usershow $$login >/dev/null 2>&1; then \ echo \"Creating user '$$login' with uid '$$uid'.\"; \ ${PW} useradd $$login -u $$uid -g $$gid $$class -c \"$$gecos\" -d $$homedir -s $$shell; \ else echo \"Using existing user '$$login'.\"; fi" >> ${TMPPLIST}; \ case $$homedir in /nonexistent|/var/empty) ;; *) ${ECHO_CMD} "@exec ${INSTALL} -d -g $$gid -o $$uid $$homedir" >> ${TMPPLIST};; esac; \ done .endfor .if defined(GROUPS) .for _group in ${GROUPS} # mail:*:6:postfix,clamav @IFS=":"; ${GREP} -h ^${_group}: ${GID_FILES} | head -n 1 | while read group foo gid members; do \ gid=$$(($$gid+${GID_OFFSET})); \ IFS=","; for _login in $$members; do \ for _user in ${USERS}; do \ if [ "x$${_user}" = "x$${_login}" ]; then \ if ! ${PW} groupshow ${_group} | ${GREP} -qw $${_login}; then \ ${ECHO_MSG} "Adding user \`$${_login}' to group \`${_group}'."; \ ${PW} groupmod ${_group} -m $${_login}; \ fi; \ ${ECHO_CMD} "@exec if ! ${PW} groupshow ${_group} | ${GREP} -qw $${_login}; then \ echo \"Adding user '$${_login}' to group '${_group}'.\"; \ ${PW} groupmod ${_group} -m $${_login}; fi" >> ${TMPPLIST}; \ fi; \ done; \ done; \ done .endfor .endif .if defined(USERS) .for _user in ${USERS} @if [ ! ${USERS_BLACKLIST:M${_user}} ]; then \ ${ECHO_CMD} "@unexec if ${PW} usershow ${_user} >/dev/null 2>&1; then \ echo \"==> You should manually remove the \\\"${_user}\\\" user. \"; fi" >> ${TMPPLIST}; \ fi .endfor .endif .endif .else @${DO_NADA} .endif .endif # PR ports/152498 # XXX Make sure the commands to create group(s) # and user(s) are the first in pkg-plist .if !target(fix-plist-sequence) fix-plist-sequence: ${TMPPLIST} .if defined(GROUPS) || defined(USERS) @${ECHO_CMD} "===> Correct pkg-plist sequence to create group(s) and user(s)" @${EGREP} -e '^@exec echo.*Creating users and' -e '^@exec.*${PW}' -e '^@exec ${INSTALL} -d -g' ${TMPPLIST} > ${TMPGUCMD} @${EGREP} -v -e '^@exec echo.*Creating users and' -e '^@exec.*${PW}' -e '^@exec ${INSTALL} -d -g' ${TMPPLIST} >> ${TMPGUCMD} @${MV} -f ${TMPGUCMD} ${TMPPLIST} .endif .endif .if !defined(DISABLE_SECURITY_CHECK) .if !target(security-check) security-check: # Scan PLIST for: # 1. setugid files # 2. accept()/recvfrom() which indicates network listening capability # 3. insecure functions (gets/mktemp/tempnam/[XXX]) # 4. startup scripts, in conjunction with 2. # 5. world-writable files/dirs # -@${RM} -f ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable ${WRKDIR}/.PLIST.objdump; \ ${AWK} -v prefix='${PREFIX}' ' \ match($$0, /^@cwd /) { prefix = substr($$0, RSTART + RLENGTH); if (prefix == "/") prefix=""; next; } \ /^@/ { next; } \ /^\// { print; next; } \ { print prefix "/" $$0; } \ ' ${TMPPLIST} > ${WRKDIR}/.PLIST.flattened; \ ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f \( -perm -4000 -o -perm -2000 \) \( -perm -0010 -o -perm -0001 \) 2> /dev/null > ${WRKDIR}/.PLIST.setuid; \ ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ | ${XARGS} -0 -J % ${FIND} % -prune -perm -0002 \! -type l 2> /dev/null > ${WRKDIR}/.PLIST.writable; \ ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f -print0 2> /dev/null \ | ${XARGS} -0 -n 1 ${OBJDUMP} -R 2> /dev/null > ${WRKDIR}/.PLIST.objdump; \ if \ ! ${AWK} -v audit="$${PORTS_AUDIT}" -f ${PORTSDIR}/Tools/scripts/security-check.awk \ ${WRKDIR}/.PLIST.flattened ${WRKDIR}/.PLIST.objdump ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable; \ then \ www_site=$$(cd ${.CURDIR} && ${MAKE} www-site); \ if [ ! -z "$${www_site}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} " For more information, and contact details about the security"; \ ${ECHO_MSG} " status of this software, see the following webpage: "; \ ${ECHO_MSG} "$${www_site}"; \ fi; \ fi .endif .else # i.e. defined(DISABLE_SECURITY_CHECK) security-check: @${ECHO_MSG} " WARNING: Security check has been disabled." .endif # !defined(DISABLE_SECURITY_CHECK) ################################################################ # Skeleton targets start here # # You shouldn't have to change these. Either add the pre-* or # post-* targets/scripts or redefine the do-* targets. These # targets don't do anything other than checking for cookies and # call the necessary targets/scripts. ################################################################ # Please note that the order of the following targets is important, and # should not be modified. .if defined(CHROOTED) _CHROOT_SEQ= post-chroot .else _CHROOT_SEQ= .endif _SANITY_SEQ= ${_CHROOT_SEQ} pre-everything check-makefile \ check-categories check-makevars check-desktop-entries \ check-depends identify-install-conflicts check-deprecated \ check-vulnerable check-license check-config buildanyway-message \ options-message _PKG_DEP= check-sanity _PKG_SEQ= pkg-depends _FETCH_DEP= pkg _FETCH_SEQ= fetch-depends pre-fetch pre-fetch-script \ do-fetch post-fetch post-fetch-script _EXTRACT_DEP= fetch _EXTRACT_SEQ= check-build-conflicts extract-message checksum extract-depends \ pre-extract pre-extract-script do-extract \ post-extract post-extract-script _PATCH_DEP= extract _PATCH_SEQ= ask-license patch-message patch-depends patch-dos2unix pre-patch \ pre-patch-script do-patch post-patch post-patch-script _CONFIGURE_DEP= patch _CONFIGURE_SEQ= build-depends lib-depends configure-message run-autotools-fixup \ configure-autotools pre-configure pre-configure-script \ run-autotools do-configure post-configure post-configure-script _BUILD_DEP= configure _BUILD_SEQ= build-message pre-build pre-build-script do-build \ post-build post-build-script _INSTALL_DEP= build _INSTALL_SEQ= install-message check-install-conflicts run-depends lib-depends apply-slist pre-install \ pre-install-script generate-plist check-already-installed _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ pre-su-install-script create-users-groups do-install \ install-desktop-entries install-license install-rc-script \ post-install post-install-script add-plist-buildinfo \ add-plist-info add-plist-docs add-plist-examples \ add-plist-data add-plist-post fix-plist-sequence \ compress-man install-ldconfig-file fake-pkg security-check _PACKAGE_DEP= install _PACKAGE_SEQ= package-message pre-package pre-package-script \ do-package post-package-script .if !target(post-chroot) post-chroot: @${DO_NADA} .endif .if !target(check-sanity) check-sanity: ${_SANITY_SEQ} .endif # XXX MCL might need to move in loop below? .if !target(fetch) fetch: ${_FETCH_DEP} ${_FETCH_SEQ} .endif .if !target(pkg) pkg: ${_PKG_DEP} ${_PKG_SEQ} .endif # Main logic. The loop generates 6 main targets and using cookies # ensures that those already completed are skipped. .for target in extract patch configure build install package .if !target(${target}) && defined(_OPTIONS_OK) ${target}: ${${target:U}_COOKIE} .elif !target(${target}) ${target}: config-conditional @cd ${.CURDIR} && ${MAKE} CONFIG_DONE_${UNIQUENAME:U}=1 ${${target:U}_COOKIE} .elif target(${target}) && defined(IGNORE) .endif .if !exists(${${target:U}_COOKIE}) .if ${UID} != 0 && defined(_${target:U}_SUSEQ) && !defined(INSTALL_AS_USER) .if defined(USE_SUBMAKE) ${${target:U}_COOKIE}: ${_${target:U}_DEP} @cd ${.CURDIR} && ${MAKE} ${_${target:U}_SEQ} .else ${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ} .endif @${ECHO_MSG} "===> Switching to root credentials for '${target}' target" @cd ${.CURDIR} && \ ${SU_CMD} "${MAKE} ${_${target:U}_SUSEQ}" @${ECHO_MSG} "===> Returning to user credentials" @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} .elif defined(USE_SUBMAKE) ${${target:U}_COOKIE}: ${_${target:U}_DEP} @cd ${.CURDIR} && \ ${MAKE} ${_${target:U}_SEQ} ${_${target:U}_SUSEQ} @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} .else ${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ} ${_${target:U}_SUSEQ} @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} .endif .else ${${target:U}_COOKIE}:: @if [ -e ${.TARGET} ]; then \ ${DO_NADA}; \ else \ cd ${.CURDIR} && ${MAKE} ${.TARGET}; \ fi .endif .endfor # Enforce order for -jN builds .ORDER: ${_SANITY_SEQ} .ORDER: ${_PKG_DEP} ${_PKG_SEQ} .ORDER: ${_FETCH_DEP} ${_FETCH_SEQ} .ORDER: ${_EXTRACT_DEP} ${_EXTRACT_SEQ} .ORDER: ${_PATCH_DEP} ${_PATCH_SEQ} .ORDER: ${_CONFIGURE_DEP} ${_CONFIGURE_SEQ} .ORDER: ${_BUILD_DEP} ${_BUILD_SEQ} .ORDER: ${_INSTALL_DEP} ${_INSTALL_SEQ} .ORDER: ${_PACKAGE_DEP} ${_PACKAGE_SEQ} extract-message: @${ECHO_MSG} "===> Extracting for ${PKGNAME}" patch-message: @${ECHO_MSG} "===> Patching for ${PKGNAME}" configure-message: @${ECHO_MSG} "===> Configuring for ${PKGNAME}" build-message: @${ECHO_MSG} "===> Building for ${PKGNAME}" install-message: @${ECHO_MSG} "===> Installing for ${PKGNAME}" package-message: @${ECHO_MSG} "===> Building package for ${PKGNAME}" # Empty pre-* and post-* targets .for stage in pre post .for name in pkg check-sanity fetch extract patch configure build install package .if !target(${stage}-${name}) ${stage}-${name}: @${DO_NADA} .endif .if !target(${stage}-${name}-script) ${stage}-${name}-script: @if [ -f ${SCRIPTDIR}/${.TARGET:S/-script$//} ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/${.TARGET:S/-script$//}; \ fi .endif .endfor .endfor # Special cases for su .if !target(pre-su-install) pre-su-install: @${DO_NADA} .endif .if !target(pre-su-install-script) pre-su-install-script: @${DO_NADA} .endif .if !target(pretty-print-www-site) pretty-print-www-site: @www_site=$$(cd ${.CURDIR} && ${MAKE} www-site); \ if [ -n "$${www_site}" ]; then \ ${ECHO_MSG} -n " and/or visit the "; \ ${ECHO_MSG} -n "web site"; \ ${ECHO_MSG} " for further information"; \ fi .endif ################################################################ # Some more targets supplied for users' convenience ################################################################ # Checkpatch # # Special target to verify patches .if !target(checkpatch) checkpatch: @cd ${.CURDIR} && ${MAKE} PATCH_CHECK_ONLY=yes ${_PATCH_DEP} ${_PATCH_SEQ} .endif # Reinstall # # Special target to re-run install .if !target(reinstall) reinstall: @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} @cd ${.CURDIR} && DEPENDS_TARGET="${DEPENDS_TARGET}" ${MAKE} -DFORCE_PKG_REGISTER install .endif # Deinstall # # Special target to remove installation .if !target(deinstall) deinstall: .if ${UID} != 0 && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" @cd ${.CURDIR} && \ ${SU_CMD} "${MAKE} ${.TARGET}" @${ECHO_MSG} "===> Returning to user credentials" .else @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" @found_names=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ for p in $${found_names}; do \ check_name=`${ECHO_CMD} $${p} | ${SED} -e 's/-[^-]*$$//'`; \ if [ "$${check_name}" = "${PKGBASE}" ]; then \ prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ if [ "x${PREFIX}" = "x$${prfx}" ]; then \ ${ECHO_MSG} "===> Deinstalling $${p}"; \ ${PKG_DELETE} -f $${p}; \ else \ ${ECHO_MSG} "===> $${p} has a different PREFIX: $${prfx}, skipping"; \ fi; \ fi; \ done; \ if [ -z "$${found_names}" ]; then \ ${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \ fi @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} .endif .endif # Deinstall-all # # Special target to remove installation of all ports of the same origin .if !target(deinstall-all) deinstall-all: .if ${UID} != 0 && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" @cd ${.CURDIR} && \ ${SU_CMD} "${MAKE} ${.TARGET}" @${ECHO_MSG} "===> Returning to user credentials" .else @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" @deinstall_names=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ for oldpkgorigin in $$(${GREP} "|${PKGORIGIN}|" ${PORTSDIR}/MOVED | ${CUT} -f 1 -d '|' | ${SORT} -u); do \ deinstall_names="$${deinstall_names} $$(${PKG_INFO} -q -O $${oldpkgorigin})"; \ done; \ if [ -n "$${deinstall_names}" ]; then \ for d in $${deinstall_names}; do \ ${ECHO_MSG} "===> Deinstalling $${d}"; \ ${PKG_DELETE} -f $${d}; \ done; \ else \ ${ECHO_MSG} "===> ${PKGORIGIN} not installed, skipping"; \ fi; \ ${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} .endif .endif # Cleaning up .if !target(do-clean) do-clean: @if [ -d ${WRKDIR} ]; then \ if [ -w ${WRKDIR} ]; then \ ${RM} -rf ${WRKDIR}; \ else \ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \ fi; \ fi .endif .if !target(clean) clean: .if !defined(NOCLEANDEPENDS) @cd ${.CURDIR} && ${MAKE} limited-clean-depends .endif @${ECHO_MSG} "===> Cleaning for ${PKGNAME}" .if target(pre-clean) @cd ${.CURDIR} && ${MAKE} pre-clean .endif @cd ${.CURDIR} && ${MAKE} do-clean .if target(post-clean) @cd ${.CURDIR} && ${MAKE} post-clean .endif .endif .if !target(pre-distclean) pre-distclean: @${DO_NADA} .endif .if !target(distclean) distclean: pre-distclean clean @cd ${.CURDIR} && ${MAKE} delete-distfiles RESTRICTED_FILES="${_DISTFILES} ${_PATCHFILES}" .endif .if !target(delete-distfiles) delete-distfiles: @${ECHO_MSG} "===> Deleting distfiles for ${PKGNAME}" @(if [ "X${RESTRICTED_FILES}" != "X" -a -d ${_DISTDIR} ]; then \ cd ${_DISTDIR}; \ for file in ${RESTRICTED_FILES}; do \ ${RM} -f $${file}; \ dir=$${file%/*}; \ if [ "$${dir}" != "$${file}" ]; then \ ${RMDIR} -p $${dir} >/dev/null 2>&1 || :; \ fi; \ done; \ fi) .if defined(DIST_SUBDIR) -@${RMDIR} ${_DISTDIR} >/dev/null 2>&1 || ${TRUE} .endif .endif .if !target(delete-distfiles-list) delete-distfiles-list: @${ECHO_CMD} "# ${PKGNAME}" @if [ "X${RESTRICTED_FILES}" != "X" ]; then \ for file in ${RESTRICTED_FILES}; do \ ${ECHO_CMD} "[ -f ${_DISTDIR}/$$file ] && (${ECHO_CMD} deleting ${_DISTDIR}/$$file; ${RM} -f ${_DISTDIR}/$$file)"; \ dir=$${file%/*}; \ if [ "$${dir}" != "$${file}" ]; then \ ${ECHO_CMD} "(cd ${_DISTDIR} && ${RMDIR} -p $${dir} 2>/dev/null)"; \ fi; \ done; \ fi .if defined(DIST_SUBDIR) @${ECHO_CMD} "${RMDIR} ${_DISTDIR} 2>/dev/null || ${TRUE}" .endif .endif # Prints out a list of files to fetch (useful to do a batch fetch) .if !target(fetch-list) fetch-list: @${MKDIR} ${_DISTDIR} @(cd ${_DISTDIR}; \ ${_MASTER_SITES_ENV} ; \ for _file in ${DISTFILES}; do \ file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ if [ ! -f $$file -a ! -f $${file##*/} ]; then \ if [ ! -z "$$select" ] ; then \ __MASTER_SITES_TMP= ; \ for group in $$select; do \ if [ ! -z \$${_MASTER_SITES_$${group}} ] ; then \ eval ___MASTER_SITES_TMP=\$${_MASTER_SITES_$${group}} ; \ __MASTER_SITES_TMP="$${__MASTER_SITES_TMP} $${___MASTER_SITES_TMP}" ; \ fi; \ done; \ ___MASTER_SITES_TMP= ; \ SORTED_MASTER_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__MASTER_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ else \ SORTED_MASTER_SITES_CMD_TMP="${SORTED_MASTER_SITES_DEFAULT_CMD}" ; \ fi; \ for site in `eval $$SORTED_MASTER_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ if [ ! -z "`${ECHO_CMD} ${NOFETCHFILES} | ${GREP} -w $${file}`" ]; then \ if [ -z "`${ECHO_CMD} ${MASTER_SITE_OVERRIDE} | ${GREP} -w $${site}`" ]; then \ continue; \ fi; \ fi; \ DIR=${DIST_SUBDIR};\ CKSIZE=`alg=SIZE; ${DISTINFO_DATA}`; \ case $${file} in \ */*) args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ esac; \ ${ECHO_CMD} -n ${SETENV} ${FETCH_ENV} ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${args} "${FETCH_AFTER_ARGS}" '|| ' ; \ done; \ ${ECHO_CMD} "${ECHO_CMD} $${file} not fetched" ; \ fi; \ done) .if defined(PATCHFILES) @(cd ${_DISTDIR}; \ ${_PATCH_SITES_ENV} ; \ for _file in ${PATCHFILES}; do \ file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ if [ ! -f $$file -a ! -f $${file##*/} ]; then \ if [ ! -z "$$select" ] ; then \ __PATCH_SITES_TMP= ; \ for group in $$select; do \ if [ ! -z \$${_PATCH_SITES_$${group}} ] ; then \ eval ___PATCH_SITES_TMP=\$${_PATCH_SITES_$${group}} ; \ __PATCH_SITES_TMP="$${__PATCH_SITES_TMP} $${___PATCH_SITES_TMP}" ; \ fi; \ done; \ ___PATCH_SITES_TMP= ; \ SORTED_PATCH_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__PATCH_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ else \ SORTED_PATCH_SITES_CMD_TMP="${SORTED_PATCH_SITES_DEFAULT_CMD}" ; \ fi; \ for site in `eval $$SORTED_PATCH_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ CKSIZE=`alg=SIZE; ${DISTINFO_DATA}`; \ case $${file} in \ */*) args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ esac; \ ${ECHO_CMD} -n ${SETENV} ${FETCH_ENV} ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${args} "${FETCH_AFTER_ARGS}" '|| ' ; \ done; \ ${ECHO_CMD} "${ECHO_CMD} $${file} not fetched" ; \ fi; \ done) .endif .endif .if !target(fetch-url-list-int) fetch-url-list-int: @${MKDIR} ${_DISTDIR} @(cd ${_DISTDIR}; \ ${_MASTER_SITES_ENV}; \ for _file in ${DISTFILES}; do \ file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ fileptn=`${ECHO_CMD} $$file | ${SED} 's|/|\\\\/|g;s/\./\\\\./g;s/\+/\\\\+/g;s/\?/\\\\?/g'` ; \ select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ if [ ! -z "${LISTALL}" -o ! -f $$file -a ! -f $${file##*/} ]; then \ if [ ! -z "$$select" ] ; then \ __MASTER_SITES_TMP= ; \ for group in $$select; do \ if [ ! -z \$${_MASTER_SITES_$${group}} ] ; then \ eval ___MASTER_SITES_TMP=\$${_MASTER_SITES_$${group}} ; \ __MASTER_SITES_TMP="$${__MASTER_SITES_TMP} $${___MASTER_SITES_TMP}" ; \ fi \ done; \ ___MASTER_SITES_TMP= ; \ SORTED_MASTER_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__MASTER_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ else \ SORTED_MASTER_SITES_CMD_TMP="${SORTED_MASTER_SITES_DEFAULT_CMD}" ; \ fi ; \ for site in `eval $$SORTED_MASTER_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ DIR=${DIST_SUBDIR:S/\//\\\\\//g:S/./\\\\./g:S/+/\\\\+/g:S/?/\\\\?/g}; \ CKSIZE=`${AWK} "/^SIZE \($${DIR:+$$DIR\/}$$fileptn\)/"'{print $$4}' ${DISTINFO_FILE}`; \ case $${file} in \ */*) args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ esac; \ ${ECHO_CMD} $${args} ; \ done; \ fi \ done) .if defined(PATCHFILES) @(cd ${_DISTDIR}; \ ${_PATCH_SITES_ENV} ; \ for _file in ${PATCHFILES}; do \ file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \ fileptn=`${ECHO_CMD} $$file | ${SED} 's|/|\\\\/|g;s/\./\\\\./g;s/\+/\\\\+/g;s/\?/\\\\?/g'` ; \ select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \ if [ ! -z "${LISTALL}" -o ! -f $$file -a ! -f $${file##*/} ]; then \ if [ ! -z "$$select" ] ; then \ __PATCH_SITES_TMP= ; \ for group in $$select; do \ if [ ! -z \$${_PATCH_SITES_$${group}} ] ; then \ eval ___PATCH_SITES_TMP=\$${_PATCH_SITES_$${group}} ; \ __PATCH_SITES_TMP="$${__PATCH_SITES_TMP} $${___PATCH_SITES_TMP}" ; \ fi \ done; \ ___PATCH_SITES_TMP= ; \ SORTED_PATCH_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__PATCH_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \ else \ SORTED_PATCH_SITES_CMD_TMP="${SORTED_PATCH_SITES_DEFAULT_CMD}" ; \ fi ; \ for site in `eval $$SORTED_PATCH_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ DIR=${DIST_SUBDIR:S/\//\\\\\//g:S/./\\\\./g:S/+/\\\\+/g:S/?/\\\\?/g}; \ CKSIZE=`${AWK} "/^SIZE \($${DIR:+$$DIR\/}$$fileptn\)/"'{print $$4}' ${DISTINFO_FILE}`; \ case $${file} in \ */*) args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ esac; \ ${ECHO_CMD} $${args} ; \ done; \ fi \ done) .endif .endif .if !target(fetch-urlall-list) fetch-urlall-list: @cd ${.CURDIR} && LISTALL=yes ${MAKE} fetch-url-list-int .endif .if !target(fetch-url-list) fetch-url-list: @cd ${.CURDIR} && ${MAKE} fetch-url-list-int .endif # Generates patches. update-patches: @toedit=`PATCH_WRKSRC=${PATCH_WRKSRC} \ PATCHDIR=${PATCHDIR} \ PATCH_LIST=${PATCHDIR}/patch-* \ DIFF_ARGS=${DIFF_ARGS} \ DISTORIG=${DISTORIG} \ ${SH} ${PORTSDIR}/Tools/scripts/update-patches`; \ case $$toedit in "");; \ *) ${ECHO_CMD} -n 'edit patches: '; read i; \ cd ${PATCHDIR} && $${VISUAL:-$${EDIT:-/usr/bin/vi}} $$toedit;; esac # Checksumming utilities check-checksum-algorithms: @ \ ${checksum_init} \ \ for alg in ${CHECKSUM_ALGORITHMS:U}; do \ eval alg_executable=\$$$$alg; \ if [ -z "$$alg_executable" ]; then \ ${ECHO_MSG} "Checksum algorithm $$alg: Couldn't find the executable."; \ ${ECHO_MSG} "Set $$alg=/path/to/$$alg in /etc/make.conf and try again."; \ exit 1; \ fi; \ done; \ checksum_init=\ SHA256=${SHA256}; .if !target(makesum) makesum: check-checksum-algorithms @cd ${.CURDIR} && ${MAKE} fetch NO_CHECKSUM=yes \ DISABLE_SIZE=yes @if [ -f ${DISTINFO_FILE} ]; then ${CAT} /dev/null > ${DISTINFO_FILE}; fi @( \ cd ${DISTDIR}; \ \ ${checksum_init} \ \ for file in ${_CKSUMFILES}; do \ for alg in ${CHECKSUM_ALGORITHMS:U}; do \ eval alg_executable=\$$$$alg; \ \ if [ $$alg_executable != "NO" ]; then \ $$alg_executable $$file >> ${DISTINFO_FILE}; \ fi; \ done; \ ${ECHO_CMD} "SIZE ($$file) = `${STAT} -f \"%z\" $$file`" >> ${DISTINFO_FILE}; \ done \ ) @for file in ${_IGNOREFILES}; do \ for alg in ${CHECKSUM_ALGORITHMS:U}; do \ ${ECHO_CMD} "$$alg ($$file) = IGNORE" >> ${DISTINFO_FILE}; \ done; \ done .endif .if !target(checksum) checksum: fetch check-checksum-algorithms @${checksum_init} \ if [ -f ${DISTINFO_FILE} ]; then \ cd ${DISTDIR}; OK="";\ for file in ${_CKSUMFILES}; do \ ignored="true"; \ _file=$${file#${DIST_SUBDIR}/*}; \ for alg in ${CHECKSUM_ALGORITHMS:U}; do \ ignore="false"; \ eval alg_executable=\$$$$alg; \ \ if [ $$alg_executable != "NO" ]; then \ MKSUM=`$$alg_executable < $$file`; \ CKSUM=`file=$$_file; ${DISTINFO_DATA}`; \ else \ ignore="true"; \ fi; \ \ if [ $$ignore = "false" -a -z "$$CKSUM" ]; then \ ${ECHO_MSG} "=> No $$alg checksum recorded for $$file."; \ ignore="true"; \ fi; \ \ if [ "$$CKSUM" = "IGNORE" ]; then \ ${ECHO_MSG} "=> $$alg Checksum for $$file is set to IGNORE in distinfo file even though"; \ ${ECHO_MSG} " the file is not in the "'$$'"{IGNOREFILES} list."; \ ignore="true"; \ OK=${FALSE}; \ fi; \ \ if [ $$ignore = "false" ]; then \ match="false"; \ for chksum in $$CKSUM; do \ if [ "$$chksum" = "$$MKSUM" ]; then \ match="true"; \ break; \ fi; \ done; \ if [ $$match = "true" ]; then \ ${ECHO_MSG} "=> $$alg Checksum OK for $$file."; \ ignored="false"; \ else \ ${ECHO_MSG} "=> $$alg Checksum mismatch for $$file."; \ refetchlist="$$refetchlist$$file "; \ OK="$${OK:-retry}"; \ ignored="false"; \ fi; \ fi; \ done; \ \ if [ $$ignored = "true" ]; then \ ${ECHO_MSG} "=> No suitable checksum found for $$file."; \ OK="${FALSE}"; \ fi; \ \ done; \ \ for file in ${_IGNOREFILES}; do \ _file=$${file#${DIST_SUBDIR}/*}; \ ignored="true"; \ alreadymatched="false"; \ for alg in ${CHECKSUM_ALGORITHMS:U}; do \ ignore="false"; \ eval alg_executable=\$$$$alg; \ \ if [ $$alg_executable != "NO" ]; then \ CKSUM=`file=$$_file; ${DISTINFO_DATA}`; \ else \ ignore="true"; \ fi; \ \ if [ $$ignore = "false" ]; then \ if [ -z "$$CKSUM" ]; then \ ${ECHO_MSG} "=> No $$alg checksum for $$file recorded (expected IGNORE)"; \ OK="$$alreadymatched"; \ elif [ $$CKSUM != "IGNORE" ]; then \ ${ECHO_MSG} "=> $$alg Checksum for $$file is not set to IGNORE in distinfo file even though"; \ ${ECHO_MSG} " the file is in the "'$$'"{IGNOREFILES} list."; \ OK="false"; \ else \ ignored="false"; \ alreadymatched="true"; \ fi; \ fi; \ done; \ \ if ( [ $$ignored = "true" ]) ; then \ ${ECHO_MSG} "=> No suitable checksum found for $$file."; \ OK="false"; \ fi; \ \ done; \ \ if [ "$${OK:=true}" = "retry" ] && [ ${FETCH_REGET} -gt 0 ]; then \ ${ECHO_MSG} "===> Refetch for ${FETCH_REGET} more times files: $$refetchlist"; \ if ( cd ${.CURDIR} && \ ${MAKE} ${.MAKEFLAGS} FORCE_FETCH="$$refetchlist" FETCH_REGET="`${EXPR} ${FETCH_REGET} - 1`" fetch); then \ if ( cd ${.CURDIR} && \ ${MAKE} ${.MAKEFLAGS} FETCH_REGET="`${EXPR} ${FETCH_REGET} - 1`" checksum ); then \ OK="true"; \ fi; \ fi; \ fi; \ \ if [ "$$OK" != "true" -a ${FETCH_REGET} -eq 0 ]; then \ ${ECHO_MSG} "===> Giving up on fetching files: $$refetchlist"; \ ${ECHO_MSG} "Make sure the Makefile and distinfo file (${DISTINFO_FILE})"; \ ${ECHO_MSG} "are up to date. If you are absolutely sure you want to override this"; \ ${ECHO_MSG} "check, type \"make NO_CHECKSUM=yes [other args]\"."; \ exit 1; \ fi; \ if [ "$$OK" != "true" ]; then \ exit 1; \ fi; \ elif [ -n "${_CKSUMFILES:M*}" ]; then \ ${ECHO_MSG} "=> No checksum file (${DISTINFO_FILE})."; \ fi .endif ################################################################ # The special package-building targets # You probably won't need to touch these ################################################################ # Nobody should want to override this unless PKGNAME is simply bogus. .if !target(package-name) package-name: @${ECHO_CMD} ${PKGNAME} .endif # Build a package but don't check the package cookie .if !target(repackage) repackage: pre-repackage package pre-repackage: @${RM} -f ${PACKAGE_COOKIE} .endif # Build a package but don't check the cookie for installation, also don't # install package cookie .if !target(package-noinstall) package-noinstall: @${MKDIR} ${WRKDIR} @cd ${.CURDIR} && ${MAKE} pre-package \ pre-package-script do-package post-package-script @${RM} -f ${TMPPLIST} -@${RMDIR} ${WRKDIR} .endif ################################################################ # Dependency checking ################################################################ .if !target(depends) depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends .if defined(ALWAYS_BUILD_DEPENDS) _DEPEND_ALWAYS= 1 .else _DEPEND_ALWAYS= 0 .endif _INSTALL_DEPENDS= \ if [ X${USE_PACKAGE_DEPENDS} != "X" ]; then \ subpkgfile=`(cd $$dir; ${MAKE} $$depends_args -V PKGFILE)`; \ subpkgname=$${subpkgfile%-*} ; \ subpkgname=$${subpkgname\#\#*/} ; \ if [ -r "$${subpkgfile}" -a "$$target" = "${DEPENDS_TARGET}" ]; then \ ${ECHO_MSG} "===> Installing existing package $${subpkgfile}"; \ if [ -n "${WITH_PKGNG}" -a $${subpkgname} = "pkg" ]; then \ [ -d ${WRKDIR} ] || ${MKDIR} ${WRKDIR} ; \ ${TAR} xf $${subpkgfile} -C ${WRKDIR} -s ",/.*/,,g" "*/pkg-static" ; \ ${WRKDIR}/pkg-static add $${subpkgfile}; \ ${RM} -f ${WRKDIR}/pkg-static; \ else \ ${PKG_ADD} $${subpkgfile}; \ fi; \ else \ (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) ; \ fi; \ else \ (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) ; \ fi; \ ${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; .for deptype in PKG EXTRACT PATCH FETCH BUILD RUN ${deptype:L}-depends: .if defined(${deptype}_DEPENDS) .if !defined(NO_DEPENDS) @for i in `${ECHO_CMD} "${${deptype}_DEPENDS}"`; do \ prog=$${i%%:*}; \ if [ -z "$$prog" ]; then \ ${ECHO_MSG} "Error: there is an empty port dependency in ${deptype}_DEPENDS."; \ break; \ fi; \ dir=`${ECHO_CMD} $$i | ${SED} -e 's/[^:]*://'`; \ if ${EXPR} "$$dir" : '.*:' > /dev/null; then \ target=$${dir##*:}; \ dir=$${dir%%:*}; \ if [ X${DEPENDS_PRECLEAN} != "X" ]; then \ target="clean $$target"; \ depends_args="$$depends_args NOCLEANDEPENDS=yes"; \ fi; \ if [ X${DEPENDS_CLEAN} != "X" ]; then \ target="$$target clean"; \ depends_args="$$depends_args NOCLEANDEPENDS=yes"; \ fi; \ else \ target="${DEPENDS_TARGET}"; \ depends_args="${DEPENDS_ARGS}"; \ fi; \ if ${EXPR} "$$prog" : \\/ >/dev/null; then \ if [ -e "$$prog" ]; then \ if [ "$$prog" = "${NONEXISTENT}" ]; then \ ${ECHO_MSG} "Error: ${NONEXISTENT} exists. Please remove it, and restart the build."; \ ${FALSE}; \ else \ ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - found"; \ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ ${ECHO_MSG} " (but building it anyway)"; \ notfound=1; \ else \ notfound=0; \ fi; \ fi; \ else \ ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - not found"; \ notfound=1; \ fi; \ else \ case $${prog} in \ *\>*|*\<*|*=*) pkg=yes;; \ *) pkg="";; \ esac; \ if [ "$$pkg" != "" ]; then \ if ${PKG_INFO} "$$prog" > /dev/null 2>&1 ; then \ ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - found"; \ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ ${ECHO_MSG} " (but building it anyway)"; \ notfound=1; \ else \ notfound=0; \ fi; \ else \ ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - not found"; \ notfound=1; \ fi; \ if [ $$notfound != 0 ]; then \ inverse_dep=`${ECHO_CMD} $$prog | ${SED} \ -e 's/<=/=gt=/; s/=/=lt=/; s/>/=le=/' \ -e 's/=gt=/>/; s/=ge=/>=/; s/=lt=/ Found $$pkg_info, but you need to upgrade to $$prog."; \ exit 1; \ fi; \ fi; \ elif ${WHICH} "$$prog" > /dev/null 2>&1 ; then \ ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - found"; \ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ ${ECHO_MSG} " (but building it anyway)"; \ notfound=1; \ else \ notfound=0; \ fi; \ else \ ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - not found"; \ notfound=1; \ fi; \ fi; \ if [ $$notfound != 0 ]; then \ ${ECHO_MSG} "===> Verifying $$target for $$prog in $$dir"; \ if [ ! -d "$$dir" ]; then \ ${ECHO_MSG} " => No directory for $$prog. Skipping.."; \ else \ ${_INSTALL_DEPENDS} \ fi; \ fi; \ done .endif .else @${DO_NADA} .endif .endfor lib-depends: .if defined(LIB_DEPENDS) && !defined(NO_DEPENDS) @for i in ${LIB_DEPENDS}; do \ lib=$${i%%:*}; \ pattern="`${ECHO_CMD} $$lib | ${SED} -E -e 's/\./\\\\./g' -e 's/(\\\\)?\+/\\\\+/g'`"\ dir=$${i#*:}; \ target=$${i##*:}; \ if ${TEST} $$dir = $$target; then \ target="${DEPENDS_TARGET}"; \ depends_args="${DEPENDS_ARGS}"; \ else \ dir=$${dir%%:*}; \ fi; \ ${ECHO_MSG} -n "===> ${PKGNAME} depends on shared library: $$lib"; \ if ${LDCONFIG} ${_LDCONFIG_FLAGS} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ ${ECHO_MSG} " - found"; \ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ ${ECHO_MSG} " (but building it anyway)"; \ notfound=1; \ else \ notfound=0; \ fi; \ else \ ${ECHO_MSG} " - not found"; \ notfound=1; \ fi; \ if [ $$notfound != 0 ]; then \ ${ECHO_MSG} "===> Verifying $$target for $$lib in $$dir"; \ if [ ! -d "$$dir" ]; then \ ${ECHO_MSG} " => No directory for $$lib. Skipping.."; \ else \ ${_INSTALL_DEPENDS} \ if ! ${LDCONFIG} ${_LDCONFIG_FLAGS} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ ${ECHO_MSG} "Error: shared library \"$$lib\" does not exist"; \ ${FALSE}; \ fi; \ fi; \ fi; \ done .endif .endif # Dependency lists: both build and runtime, recursive. Print out directory names. _UNIFIED_DEPENDS=${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS} ${RUN_DEPENDS} _DEPEND_DIRS= ${_UNIFIED_DEPENDS:C,^[^:]*:([^:]*).*$,\1,} all-depends-list: @${ALL-DEPENDS-LIST} ALL-DEPENDS-LIST= \ L="${_DEPEND_DIRS}"; \ checked=""; \ while [ -n "$$L" ]; do \ l=""; \ for d in $$L; do \ case $$checked in \ $$d\ *|*\ $$d\ *|*\ $$d) \ continue;; \ esac; \ checked="$$checked $$d"; \ if [ ! -d $$d ]; then \ ${ECHO_MSG} "${PKGNAME}: \"$$d\" non-existent -- dependency list incomplete" >&2; \ continue; \ fi; \ ${ECHO_CMD} $$d; \ if ! children=$$(cd $$d && ${MAKE} -V _DEPEND_DIRS); then\ ${ECHO_MSG} "${PKGNAME}: \"$$d\" erroneous -- dependency list incomplete" >&2; \ continue; \ fi; \ for child in $$children; do \ case "$$checked $$l" in \ $$child\ *|*\ $$child\ *|*\ $$child) \ continue;; \ esac; \ l="$$l $$child"; \ done; \ done; \ L=$$l; \ done CLEAN-DEPENDS-FULL= \ L="${_DEPEND_DIRS}"; \ checked=""; \ while [ -n "$$L" ]; do \ l=""; \ for d in $$L; do \ case $$checked in \ $$d\ *|*\ $$d\ *|*\ $$d) \ continue;; \ esac; \ checked="$$checked $$d"; \ if [ ! -d $$d ]; then \ ${ECHO_MSG} "${PKGNAME}: \"$$d\" non-existent -- dependency list incomplete" >&2; \ continue; \ fi; \ if ! children=$$(cd $$d && ${MAKE} -V WRKDIR -V _DEPEND_DIRS); then \ ${ECHO_MSG} "${PKGNAME}: \"$$d\" erroneous -- dependency list incomplete" >&2; \ continue; \ fi; \ state=0; \ for child in $$children; do \ case $$state in \ 0) \ if [ -d $$child ]; then \ ${ECHO_CMD} $$d; \ fi; \ state=1;; \ 1) \ case "$$checked $$l" in \ $$child\ *|*\ $$child\ *|*\ $$child) \ continue;; \ esac; \ l="$$l $$child";; \ esac; \ done; \ done; \ L=$$l; \ done CLEAN-DEPENDS-LIMITED= \ L="${_DEPEND_DIRS}"; \ checked=""; \ while [ -n "$$L" ]; do \ l=""; \ for d in $$L; do \ case $$checked in \ $$d\ *|*\ $$d\ *|*\ $$d) \ continue;; \ esac; \ checked="$$checked $$d"; \ if [ ! -d $$d ]; then \ ${ECHO_MSG} "${PKGNAME}: \"$$d\" non-existent -- dependency list incomplete" >&2; \ continue; \ fi; \ if ! children=$$(cd $$d && ${MAKE} -V WRKDIR -V _DEPEND_DIRS); then \ ${ECHO_MSG} "${PKGNAME}: \"$$d\" erroneous -- dependency list incomplete" >&2; \ continue; \ fi; \ state=0; \ for child in $$children; do \ case $$state in \ 0) \ if [ ! -d $$child ]; then \ break; \ fi; \ state=1; \ ${ECHO_CMD} $$d;; \ 1) \ case "$$checked $$l" in \ $$child\ *|*\ $$child\ *|*\ $$child) \ continue;; \ esac; \ l="$$l $$child";; \ esac; \ done; \ done; \ L=$$l; \ done .if !target(clean-depends) clean-depends: @for dir in $$(${CLEAN-DEPENDS-FULL}); do \ (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ done .endif .if !target(limited-clean-depends) limited-clean-depends: @for dir in $$(${CLEAN-DEPENDS-LIMITED}); do \ (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ done .endif .if !target(deinstall-depends) deinstall-depends: @for dir in $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} deinstall); \ done .endif .if !target(fetch-recursive) fetch-recursive: @${ECHO_MSG} "===> Fetching all distfiles for ${PKGNAME} and dependencies" @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} fetch); \ done .endif .if !target(fetch-recursive-list) fetch-recursive-list: @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} fetch-list); \ done .endif # Used by fetch-required and fetch-required list, this script looks # at each of the dependencies. If 3 items are specified in the tuple, # such as foo:${PORTSDIR}/graphics/foo:extract, the first item (foo) # is examined. Only if it begins with a / and does not exist on the # file-system will ``make targ'' proceed. # For more usual (dual-item) dependency tuples, the ``make targ'' # proceeds, if the exact package, which the directory WOULD'VE installed, # is not yet installed. # This is the exact behaviour of the old code, and it may need # revisiting. For example, the entire first case seems dubious, and in # the second case we, probably, should be satisfied with _any_ (earlier) # package, with the same origin as that of the dir. # # -mi FETCH_LIST?= for i in $$deps; do \ prog=$${i%%:*}; dir=$${i\#*:}; \ case $$dir in \ *:*) if [ $$prog != $${prog\#/} -o ! -e $$prog ]; then \ dir=$${dir%%:*}; \ else \ continue; \ fi;; \ *) if [ -d ${PKG_DBDIR}/$$(cd $$dir; ${MAKE} -V PKGNAME) ]; then \ continue; \ fi;; \ esac; \ echo cd $$dir; cd $$dir; ${MAKE} $$targ; \ done .if !target(fetch-required) fetch-required: fetch .if defined(NO_DEPENDS) @${ECHO_MSG} "===> NO_DEPENDS is set, not fetching any other distfiles for ${PKGNAME}" .else @${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies" .for deptype in PKG EXTRACT PATCH FETCH BUILD RUN .if defined(${deptype}_DEPENDS) @targ=fetch; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST} .endif .endfor .endif .endif .if !target(fetch-required-list) fetch-required-list: fetch-list .if !defined(NO_DEPENDS) .for deptype in PKG EXTRACT PATCH FETCH BUILD RUN .if defined(${deptype}_DEPENDS) @targ=fetch-list; deps="${${deptype}_DEPENDS}"; ${FETCH_LIST} .endif .endfor .endif .endif .if !target(checksum-recursive) checksum-recursive: @${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies" @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} checksum); \ done .endif # Dependency lists: build and runtime. Print out directory names. build-depends-list: .if defined(PKG_DEPENDS) || defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) @${BUILD-DEPENDS-LIST} .endif BUILD-DEPENDS-LIST= \ for dir in $$(${ECHO_CMD} "${PKG_DEPENDS} ${EXTRACT_DEPENDS} ${PATCH_DEPENDS} ${FETCH_DEPENDS} ${BUILD_DEPENDS} ${LIB_DEPENDS}" | ${SED} -E -e 's,([^: ]*):([^: ]*)(:[^ ]*)?,\2,g' -e 'y/ /\n/'| ${SORT} -u); do \ if [ -d $$dir ]; then \ ${ECHO_CMD} $$dir; \ else \ ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ fi; \ done | ${SORT} -u run-depends-list: .if defined(LIB_DEPENDS) || defined(RUN_DEPENDS) @${RUN-DEPENDS-LIST} .endif RUN-DEPENDS-LIST= \ for dir in $$(${ECHO_CMD} "${_LIB_RUN_DEPENDS:C,.*:([^:]*).*,\1,}" | ${SED} -e 'y/ /\n/' | ${SORT} -u); do \ if [ -d $$dir ]; then \ ${ECHO_CMD} $$dir; \ else \ ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ fi; \ done | ${SORT} -u # Package (recursive runtime) dependency list. Print out both directory names # and package names. package-depends-list: .if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) @${PACKAGE-DEPENDS-LIST} .endif _LIB_RUN_DEPENDS= ${LIB_DEPENDS} ${RUN_DEPENDS} PACKAGE-DEPENDS-LIST?= \ if [ "${CHILD_DEPENDS}" ]; then \ installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \ ${TRUE}); \ if [ "$$installed" ]; then \ break; \ fi; \ if [ -z "$$installed" ]; then \ installed="${PKGNAME}"; \ fi; \ for pkgname in $$installed; do \ ${ECHO_CMD} "$$pkgname ${.CURDIR} ${PKGORIGIN}"; \ done; \ fi; \ checked="${PARENT_CHECKED}"; \ for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \ dir=$$(${REALPATH} $$dir); \ if [ -d $$dir ]; then \ case $$checked in \ $$dir|$$dir\ *|*\ $$dir|*\ $$dir\ *) continue;; \ esac; \ childout=$$(cd $$dir; ${MAKE} CHILD_DEPENDS=yes PARENT_CHECKED="$$checked" package-depends-list); \ set -- $$childout; \ childdir=""; \ while [ $$\# != 0 ]; do \ childdir="$$childdir $$2"; \ ${ECHO_CMD} "$$1 $$2 $$3"; \ shift 3; \ done; \ checked="$$dir $$childdir $$checked"; \ else \ ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ fi; \ done ACTUAL-PACKAGE-DEPENDS?= \ if [ "${_LIB_RUN_DEPENDS}" != " " ]; then \ origins=$$(for pkgname in ${PKG_DBDIR}/*; do \ if [ -e $$pkgname/+CONTENTS ]; then \ ${ECHO_CMD} $${pkgname\#\#*/}; \ ${SED} -n -e "s/@comment ORIGIN://p" $$pkgname/+CONTENTS; \ fi; \ done); \ for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \ tmp=$${dir\#${PORTSDIR}/}; \ if [ "$$tmp" = "$$dir" ]; then \ tmp=$${dir%/*}; \ dir=$${tmp\#\#*/}/$${dir\#\#*/}; \ else \ dir=$$tmp; \ fi; \ set -- $$origins; \ while [ $$\# -gt 1 ]; do \ if [ ! -d "${PORTSDIR}/$$2" ]; then \ shift; \ continue; \ fi; \ if [ "$$dir" = "$$2" ]; then \ ${ECHO_CMD} $$1:$$dir; \ if [ -e ${PKG_DBDIR}/$$1/+CONTENTS -a -z "${EXPLICIT_PACKAGE_DEPENDS}" ]; then \ packagelist="$$packagelist ${PKG_DBDIR}/$$1/+CONTENTS"; \ fi; \ break; \ fi; \ shift 2; \ done; \ done; \ [ -z "$$packagelist" ] || ${AWK} -F '( |:)' 'BEGIN { pkgname="broken_contents" } /@pkgdep / { pkgname=$$2 } /@comment DEPORIGIN:/ { printf "%s:%s\n", pkgname, $$3; pkgname="broken_contents" }' $$packagelist; \ fi # Print out package names. package-depends: @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' actual-package-depends: @${ACTUAL-PACKAGE-DEPENDS} # Build packages for port and dependencies package-recursive: package @for dir in $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} package-noinstall); \ done # Show missing dependencies missing: @_origins=$$(${PKG_INFO} -aoq); \ for dir in $$(${ALL-DEPENDS-LIST}); do \ _origin=$${dir##${PORTSDIR}/}; \ if ! $$(${ECHO_CMD} $${_origins} | ${GREP} -q $${_origin}); then \ ${ECHO_CMD} $${_origin}; \ fi; \ done ################################################################ # Everything after here are internal targets and really # shouldn't be touched by anybody but the release engineers. ################################################################ # This target generates an index entry suitable for aggregation into # a large index. Format is: # # distribution-name|port-path|installation-prefix|comment| \ # description-file|maintainer|categories|extract-depends| \ # patch-depends|fetch-depends|build-depends|run-depends|www site # # If this ever changes, portmgr should contact the portsnap maintainer # first to avoid gratuitous breakage. . if !target(describe) _EXTRACT_DEPENDS=${EXTRACT_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} _PATCH_DEPENDS=${PATCH_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} _FETCH_DEPENDS=${FETCH_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} _LIB_DEPENDS=${LIB_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} _BUILD_DEPENDS=${BUILD_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} ${_LIB_DEPENDS} _RUN_DEPENDS=${RUN_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} ${_LIB_DEPENDS} . if exists(${DESCR}) _DESCR=${DESCR} . else _DESCR=/dev/null . endif . if defined(BUILDING_INDEX) && defined(INDEX_PORTS) INDEX_OUT=${INDEX_TMPDIR}/${INDEXFILE}.desc.aggr . else INDEX_OUT=/dev/stdout . endif describe: @(${ECHO_CMD} -n "${PKGNAME}|${.CURDIR}|${PREFIX}|"; \ ${ECHO_CMD} -n ${COMMENT:Q}; \ ${ECHO_CMD} -n "|${_DESCR}|${MAINTAINER}|${CATEGORIES}|${_EXTRACT_DEPENDS}|${_PATCH_DEPENDS}|${_FETCH_DEPENDS}|${_BUILD_DEPENDS:O:u}|${_RUN_DEPENDS:O:u}|"; \ while read one two discard; do \ case "$$one" in \ WWW:) case "$$two" in \ https://*|http://*|ftp://*) ${ECHO_CMD} -n "$$two" ;; \ *) ${ECHO_CMD} -n "http://$$two" ;; \ esac; \ break; \ ;; \ esac; \ done < ${DESCR}; ${ECHO_CMD}) >>${INDEX_OUT} . endif www-site: .if exists(${DESCR}) @${AWK} '$$1 ~ /^WWW:/ {print $$2}' ${DESCR} | ${HEAD} -1 .else @${ECHO_CMD} .endif .if !target(readmes) readmes: readme .endif .if !target(readme) readme: @${RM} -f ${.CURDIR}/README.html @cd ${.CURDIR} && ${MAKE} ${.CURDIR}/README.html .endif ${.CURDIR}/README.html: @${ECHO_MSG} "===> Creating README.html for ${PKGNAME}" @${SED} -e 's|%%PORT%%|'$$(${ECHO_CMD} ${.CURDIR} | \ ${SED} -e 's|.*/\([^/]*/[^/]*\)$$|\1|')'|g' \ -e 's|%%PKG%%|${PKGNAME}|g' \ -e 's|%%COMMENT%%|'"$$(${ECHO_CMD} ${COMMENT:Q})"'|' \ -e '/%%COMMENT%%/d' \ -e 's|%%DESCR%%|'"$$(${ECHO_CMD} ${DESCR} | \ ${SED} -e 's|${.CURDIR}/||')"'|' \ -e 's|%%EMAIL%%|'"$$(${ECHO_CMD} "${MAINTAINER}" | \ ${SED} -e 's/([^)]*)//;s/.*.*//')"'|g' \ -e 's|%%MAINTAINER%%|${MAINTAINER}|g' \ -e 's|%%WEBSITE%%|'"$$(cd ${.CURDIR} && eval ${MAKE} pretty-print-www-site)"'|' \ -e 's|%%BUILD_DEPENDS%%|'"$$(cd ${.CURDIR} && eval ${MAKE} pretty-print-build-depends-list)"'|' \ -e 's|%%RUN_DEPENDS%%|'"$$(cd ${.CURDIR} && eval ${MAKE} pretty-print-run-depends-list)"'|' \ -e 's|%%TOP%%|'"$$(${ECHO_CMD} ${CATEGORIES} | \ ${SED} -e 's| .*||' -e 's|[^/]*|..|g')"'/..|' \ ${TEMPLATES}/README.port >> ${.TARGET} # The following two targets require an up-to-date INDEX in ${PORTSDIR} _PRETTY_PRINT_DEPENDS_LIST=\ if [ ! -r ${INDEXDIR}/${INDEXFILE} ] ; then \ ${ECHO_MSG} "${.TARGET} requires an INDEX file (${INDEXFILE}). Please run make index or make fetchindex."; \ else \ target=${.TARGET:C/pretty-print-(.*)-depends-list/\1/} ; \ if [ "$$target" = "build" ] ; then fldnum=8 ; else fldnum=9 ; fi; \ ${ECHO_MSG} -n 'This port requires package(s) "' ; \ ${ECHO_MSG} -n `${AWK} -F\| "\\$$1 ~ /^${PKGNAME}/ {print \\$$$${fldnum};}" ${INDEXDIR}/${INDEXFILE}` ; \ ${ECHO_MSG} "\" to $$target."; \ fi; .if !target(pretty-print-build-depends-list) pretty-print-build-depends-list: .if defined(PKG_DEPENDS) || defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || \ defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) @${_PRETTY_PRINT_DEPENDS_LIST} .endif .endif .if !target(pretty-print-run-depends-list) pretty-print-run-depends-list: .if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) @${_PRETTY_PRINT_DEPENDS_LIST} .endif .endif _SUB_LIST_TEMP= ${SUB_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} .if !target(apply-slist) apply-slist: .if defined(SUB_FILES) .for file in ${SUB_FILES} .if !exists(${FILESDIR}/${file}.in) @${ECHO_MSG} "** Missing ${FILESDIR}/${file}.in for ${PKGNAME}."; exit 1 .else @${SED} ${_SUB_LIST_TEMP} -e '/^@comment /d' ${FILESDIR}/${file}.in > ${WRKDIR}/${file} .endif .endfor .for i in pkg-message pkg-install pkg-deinstall pkg-req .if ${SUB_FILES:M${i}*}!="" ${i:S/-//:U}= ${WRKDIR}/${SUB_FILES:M${i}*} .endif .endfor .endif .endif # Generate packing list. Also tests to make sure all required package # files exist. .if !target(generate-plist) generate-plist: @${ECHO_MSG} "===> Generating temporary packing list" @${MKDIR} `${DIRNAME} ${TMPPLIST}` @if [ ! -f ${DESCR} ]; then ${ECHO_MSG} "** Missing pkg-descr for ${PKGNAME}."; exit 1; fi @>${TMPPLIST} @for file in ${PLIST_FILES}; do \ ${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \ done @for man in ${__MANPAGES}; do \ ${ECHO_CMD} $${man} >> ${TMPPLIST}; \ done .for _PREFIX in ${PREFIX} .if ${_TMLINKS:M${_PREFIX}*}x != x @for i in ${_TMLINKS:M${_PREFIX}*:S|^${_PREFIX}/||}; do \ ${ECHO_CMD} "$$i" >> ${TMPPLIST}; \ done .endif .if ${_TMLINKS:N${_PREFIX}*}x != x @${ECHO_CMD} @cwd / >> ${TMPPLIST} @for i in ${_TMLINKS:N${_PREFIX}*:S|^/||}; do \ ${ECHO_CMD} "$$i" >> ${TMPPLIST}; \ done @${ECHO_CMD} '@cwd ${PREFIX}' >> ${TMPPLIST} .endif .endfor @if [ -f ${PLIST} ]; then \ ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${PLIST} >> ${TMPPLIST}; \ fi .for dir in ${PLIST_DIRS} @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dirrm ,' >> ${TMPPLIST} .endfor .for dir in ${PLIST_DIRSTRY} @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dirrmtry ,' >> ${TMPPLIST} .endfor .for reinplace in ${PLIST_REINPLACE} .if defined(PLIST_REINPLACE_${reinplace:U}) @${SED} -i "" -e '${PLIST_REINPLACE_${reinplace:U}}' ${TMPPLIST} .endif .endfor .if defined(USE_LINUX_PREFIX) .if defined(USE_LDCONFIG) @${ECHO_CMD} "@exec ${LDCONFIG_CMD}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG_CMD}" >> ${TMPPLIST} .endif .else .if defined(USE_LDCONFIG) .if !defined(INSTALL_AS_USER) @${ECHO_CMD} "@exec ${LDCONFIG} -m ${USE_LDCONFIG}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG} -R" >> ${TMPPLIST} .else @${ECHO_CMD} "@exec ${LDCONFIG} -m ${USE_LDCONFIG} || ${TRUE}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG} -R || ${TRUE}" >> ${TMPPLIST} .endif .endif .if defined(USE_LDCONFIG32) .if !defined(INSTALL_AS_USER) @${ECHO_CMD} "@exec ${LDCONFIG} -32 -m ${USE_LDCONFIG32}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG} -32 -R" >> ${TMPPLIST} .else @${ECHO_CMD} "@exec ${LDCONFIG} -32 -m ${USE_LDCONFIG32} || ${TRUE}" >> ${TMPPLIST} @${ECHO_CMD} "@unexec ${LDCONFIG} -32 -R || ${TRUE}" >> ${TMPPLIST} .endif .endif .endif @cd ${.CURDIR} && { ${MAKE} pretty-print-config | fold -sw 120 | ${SED} -e 's/^/@comment OPTIONS:/'; } >> ${TMPPLIST} .endif ${TMPPLIST}: @cd ${.CURDIR} && ${MAKE} generate-plist ${TMPPLIST_SORT}: ${TMPPLIST} @${SORT} -u ${TMPPLIST} >${TMPPLIST_SORT} .if !target(add-plist-docs) add-plist-docs: .if defined(PORTDOCS) && !defined(NOPORTDOCS) @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ fi .for x in ${PORTDOCS} @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ if [ ! -e ${DOCSDIR}/${x} ]; then \ ${ECHO_CMD} ${DOCSDIR_REL}/${x} >> ${TMPPLIST}; \ fi;fi .endfor @${FIND} -P ${PORTDOCS:S/^/${DOCSDIR}\//} ! -type d 2>/dev/null | \ ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} @${FIND} -P -d ${PORTDOCS:S/^/${DOCSDIR}\//} -type d 2>/dev/null | \ ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} @${ECHO_CMD} "@dirrm ${DOCSDIR_REL}" >> ${TMPPLIST} .else @${DO_NADA} .endif .endif .if !target(add-plist-examples) add-plist-examples: .if defined(PORTEXAMPLES) && !defined(NOPORTEXAMPLES) @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ fi .for x in ${PORTEXAMPLES} @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ if [ ! -e ${EXAMPLESDIR}/${x} ]; then \ ${ECHO_CMD} ${EXAMPLESDIR}/${x} | \ ${SED} -e 's,^${PREFIX}/,,' >> ${TMPPLIST}; \ fi;fi .endfor @${FIND} -P ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} ! -type d 2>/dev/null | \ ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} @${FIND} -P -d ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} -type d 2>/dev/null | \ ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} @${ECHO_CMD} "@dirrm ${EXAMPLESDIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} .else @${DO_NADA} .endif .endif .if !target(add-plist-data) add-plist-data: .if defined(PORTDATA) && !defined(NOPORTDATA) @if ${EGREP} -qe '^@cw?d' ${TMPPLIST} && \ [ "`${SED} -En -e '/^@cw?d[ ]*/s,,,p' ${TMPPLIST} | ${TAIL} -n 1`" != "${PREFIX}" ]; then \ ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ fi .for x in ${PORTDATA} @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ if [ ! -e ${DATADIR}/${x} ]; then \ ${ECHO_CMD} ${DATADIR}/${x} | \ ${SED} -e 's,^${PREFIX}/,,' >> ${TMPPLIST}; \ fi;fi .endfor @${FIND} -P ${PORTDATA:S/^/${DATADIR}\//} ! -type d 2>/dev/null | \ ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} @${FIND} -P -d ${PORTDATA:S/^/${DATADIR}\//} -type d 2>/dev/null | \ ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} @${ECHO_CMD} "@dirrm ${DATADIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} .else @${DO_NADA} .endif .endif .if !target(add-plist-buildinfo) add-plist-buildinfo: .if defined(PACKAGE_BUILDING) @${ECHO_CMD} "@comment Build details: ${BUILDHOST}|${JAIL}|${BUILD}|${PORTSTREE}|${BUILDDATE}" >> ${TMPPLIST} .endif .endif .if !target(add-plist-info) add-plist-info: # Process GNU INFO files at package install/deinstall time .if defined(INFO) .for i in ${INFO} install-info --quiet ${PREFIX}/${INFO_PATH}/$i.info ${PREFIX}/${INFO_PATH}/dir @${ECHO_CMD} "@unexec install-info --quiet --delete %D/${INFO_PATH}/$i.info %D/${INFO_PATH}/dir" \ >> ${TMPPLIST} @${LS} ${PREFIX}/${INFO_PATH}/$i.info* | ${SED} -e s:${PREFIX}/::g >> ${TMPPLIST} @${ECHO_CMD} "@exec install-info --quiet %D/${INFO_PATH}/$i.info %D/${INFO_PATH}/dir" \ >> ${TMPPLIST} .endfor .if defined(INFO_SUBDIR) @${ECHO_CMD} "@unexec ${RMDIR} %D/${INFO_PATH}/${INFO_SUBDIR} 2> /dev/null || true" >> ${TMPPLIST} .endif .if (${PREFIX} != "/usr") @${ECHO_CMD} "@unexec if [ -f %D/${INFO_PATH}/dir ]; then if sed -e '1,/Menu:/d' %D/${INFO_PATH}/dir | grep -q '^[*] '; then true; else rm %D/${INFO_PATH}/dir; fi; fi" >> ${TMPPLIST} .if (${PREFIX} != ${LOCALBASE} && ${PREFIX} != ${LINUXBASE}) @${ECHO_CMD} "@unexec rmdir %D/${INFO_PATH} 2>/dev/null || true" >> ${TMPPLIST} .endif .endif .endif .endif # If we're installing into a non-standard PREFIX, we need to remove that directory at # deinstall-time .if !target(add-plist-post) add-plist-post: .if (${PREFIX} != ${LOCALBASE} && ${PREFIX} != ${LINUXBASE} && ${PREFIX} != "/usr") @${ECHO_CMD} "@unexec rmdir %D 2> /dev/null || true" >> ${TMPPLIST} .else @${DO_NADA} .endif .endif .if !target(install-rc-script) install-rc-script: .if defined(USE_RCORDER) || defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES" .if defined(USE_RCORDER) @${ECHO_MSG} "===> Installing early rc.d startup script(s)" @${ECHO_CMD} "@cwd /" >> ${TMPPLIST} @for i in ${USE_RCORDER}; do \ ${INSTALL_SCRIPT} ${WRKDIR}/$${i} /etc/rc.d/$${i%.sh}; \ ${ECHO_CMD} "etc/rc.d/$${i%.sh}" >> ${TMPPLIST}; \ done @${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST} .endif .if defined(USE_RC_SUBR) && ${USE_RC_SUBR:U} != "YES" @${ECHO_MSG} "===> Installing rc.d startup script(s)" @${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST} @for i in ${USE_RC_SUBR}; do \ ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${PREFIX}/etc/rc.d/$${i%.sh}; \ ${ECHO_CMD} "etc/rc.d/$${i%.sh}" >> ${TMPPLIST}; \ done .endif .else @${DO_NADA} .endif .endif # Compress (or uncompress) and symlink manpages. .if !target(compress-man) compress-man: .if defined(_MANPAGES) || defined(_MLINKS) .if ${MANCOMPRESSED} == yes && defined(NO_MANCOMPRESS) @${ECHO_MSG} "===> Uncompressing manual pages for ${PKGNAME}" @_manpages='${_MANPAGES:S/'/'\''/g}' && [ "$${_manpages}" != "" ] && ( eval ${GUNZIP_CMD} $${_manpages} ) || ${TRUE} .elif ${MANCOMPRESSED} == no && !defined(NO_MANCOMPRESS) @${ECHO_MSG} "===> Compressing manual pages for ${PKGNAME}" @_manpages='${_MANPAGES:S/'/'\''/g}' && [ "$${_manpages}" != "" ] && ( eval ${GZIP_CMD} $${_manpages} ) || ${TRUE} .endif .if defined(_MLINKS) @set -- ${_MLINKS}; \ while :; do \ [ $$# -eq 0 ] && break || ${TRUE}; \ ${RM} -f $${2%.gz}; ${RM} -f $$2.gz; \ ${LN} -fs `${ECHO_CMD} $$1 $$2 | ${AWK} '{ \ z=split($$1, a, /\//); x=split($$2, b, /\//); \ while (a[i] == b[i]) i++; \ for (q=i; q Registering installation for ${PKGNAME}"; \ ${MKDIR} ${PKG_DBDIR}/${PKGNAME}; \ ${PKG_CMD} ${PKG_ARGS} -O ${PKGFILE} > ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \ ${CP} ${DESCR} ${PKG_DBDIR}/${PKGNAME}/+DESC; \ ${ECHO_CMD} ${COMMENT:Q} > ${PKG_DBDIR}/${PKGNAME}/+COMMENT; \ if [ -f ${PKGINSTALL} ]; then \ ${CP} ${PKGINSTALL} ${PKG_DBDIR}/${PKGNAME}/+INSTALL; \ fi; \ if [ -f ${PKGDEINSTALL} ]; then \ ${CP} ${PKGDEINSTALL} ${PKG_DBDIR}/${PKGNAME}/+DEINSTALL; \ fi; \ if [ -f ${PKGREQ} ]; then \ ${CP} ${PKGREQ} ${PKG_DBDIR}/${PKGNAME}/+REQUIRE; \ fi; \ if [ -f ${PKGMESSAGE} ]; then \ ${CP} ${PKGMESSAGE} ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \ ${ECHO_CMD} "@display +DISPLAY" >> ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \ fi; \ for dep in `${PKG_INFO} -qf ${PKGNAME} | ${AWK} '/^@pkgdep / {print $$2}' | ${SORT} -u`; do \ if [ -d ${PKG_DBDIR}/$$dep -a -z `${ECHO_CMD} $$dep | ${GREP} -E ${PKG_IGNORE_DEPENDS}` ]; then \ if ! ${GREP} ^${PKGNAME}$$ ${PKG_DBDIR}/$$dep/+REQUIRED_BY \ >/dev/null 2>&1; then \ ${ECHO_CMD} ${PKGNAME} >> ${PKG_DBDIR}/$$dep/+REQUIRED_BY; \ fi; \ fi; \ done; \ fi .if !defined(NO_MTREE) @if [ -f ${MTREE_FILE} ]; then \ ${CP} ${MTREE_FILE} ${PKG_DBDIR}/${PKGNAME}/+MTREE_DIRS; \ fi .endif @if [ -e /tmp/${PKGNAME}-required-by ]; then \ ${CAT} /tmp/${PKGNAME}-required-by >> ${PKG_DBDIR}/${PKGNAME}/+REQUIRED_BY; \ ${RM} -f /tmp/${PKGNAME}-required-by; \ fi .else @${DO_NADA} .endif .endif # Depend is generally meaningless for arbitrary ports, but if someone wants # one they can override this. This is just to catch people who've gotten into # the habit of typing `make depend all install' as a matter of course. # .if !target(depend) depend: .endif # Same goes for tags .if !target(tags) tags: .endif .if !defined(NOPRECIOUSMAKEVARS) # These won't change, so we can pass them through the environment .MAKEFLAGS: \ ARCH="${ARCH:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ OPSYS="${OPSYS:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ OSREL="${OSREL:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ OSVERSION="${OSVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ SYSTEMVERSION="${SYSTEMVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" .endif .if !target(pre-check-config) pre-check-config: .for single in ${OPTIONS_SINGLE} . for opt in ${OPTIONS_SINGLE_${single}} . if empty(ALL_OPTIONS:M${single}) || !empty(PORT_OPTIONS:M${single}) . if !empty(PORT_OPTIONS:M${opt}) . if defined(OPTFOUND) OPTIONS_WRONG_SINGLE+= ${single} . else OPTFOUND= true . endif . endif . else # if conditional and if the condition is unchecked, remove opt from the list of # set options PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}} OPTNOCHECK= true . endif . endfor . if !defined(OPTFOUND) && !defined(OPTNOCHECK) OPTIONS_WRONG_SINGLE+= ${single} . endif . undef OPTFOUND . undef OPTNOCHECK .endfor .undef single .for multi in ${OPTIONS_MULTI} . for opt in ${OPTIONS_MULTI_${multi}} . if empty(ALL_OPTIONS:M${multi}) || !empty(PORT_OPTIONS:M${multi}) . if !empty(PORT_OPTIONS:M${opt}) OPTFOUND= true . endif . else # if conditional and if the condition is unchecked, remove opt from the list of # set options PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}} OPTNOCHECK= true . endif . endfor . if !defined(OPTFOUND) && !defined(OPTNOCHECK) OPTIONS_WRONG_MULTI+= ${multi} . endif . undef OPTFOUND . undef OPTNOCHECK .endfor .undef multi .undef opt .endif #pre-check-config .if !target(_check-config) _check-config: pre-check-config .for multi in ${OPTIONS_WRONG_MULTI} @${ECHO_MSG} "====> You must check at least one option in the ${multi} multi" .endfor .for single in ${OPTIONS_WRONG_SINGLE} @${ECHO_MSG} "====> You must select one and only one option from the ${single} single" .endfor .if !empty(OPTIONS_WRONG_MULTI) || !empty(OPTIONS_WRONG_SINGLE) _CHECK_CONFIG_ERROR= true .endif .endif # _check-config .if !target(check-config) check-config: _check-config .if !empty(_CHECK_CONFIG_ERROR) @exit 1 .endif .endif # check-config .if !target(sanity-config) sanity-config: _check-config .if !empty(_CHECK_CONFIG_ERROR) @echo -n "Config is invalid. Re-edit? [Y/N] "; \ read answer; \ case $$answer in \ [Nn]|[Nn][Oo]) \ exit 0; \ esac; \ cd ${.CURDIR} && ${MAKE} config .endif .endif # sanity-config .if !target(pre-config) pre-config: .for opt in ${ALL_OPTIONS} . if empty(PORT_OPTIONS:M${opt}) DEFOPTIONS+= ${opt} ""${${opt}_DESC:Q} off . else DEFOPTIONS+= ${opt} ""${${opt}_DESC:Q} on . endif .endfor .for multi in ${OPTIONS_MULTI} . for opt in ${OPTIONS_MULTI_${multi}} . if empty(PORT_OPTIONS:M${opt}) DEFOPTIONS+= ${opt} "M(${multi}): "${${opt}_DESC:Q} off . else DEFOPTIONS+= ${opt} "M(${multi}): "${${opt}_DESC:Q} on . endif . endfor .endfor .for single in ${OPTIONS_SINGLE} . for opt in ${OPTIONS_SINGLE_${single}} . if empty(PORT_OPTIONS:M${opt}) DEFOPTIONS+= ${opt} "S(${single}): "${${opt}_DESC:Q} off . else DEFOPTIONS+= ${opt} "S(${single}): "${${opt}_DESC:Q} on . endif . endfor .endfor .undef multi .undef single .undef opt .endif # pre-config .if !target(do-config) do-config: .if empty(ALL_OPTIONS) && empty(OPTIONS_SINGLE) && empty(OPTIONS_MULTI) @${ECHO_MSG} "===> No options to configure" .else .if ${UID} != 0 && !defined(INSTALL_AS_USER) @optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ ${ECHO_MSG} "===> Switching to root credentials to create $${optionsdir}"; \ (${SU_CMD} "${SH} -c \"${MKDIR} $${optionsdir} 2> /dev/null\"") || \ (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1); \ ${ECHO_MSG} "===> Returning to user credentials" .else @(optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ ${MKDIR} $${optionsdir} 2> /dev/null) || \ (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1) .endif @TMPOPTIONSFILE=$$(mktemp -t portoptions); \ trap "${RM} -f $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ ${DIALOG} --checklist "Options for ${PKGNAME:C/-([^-]+)$/ \1/}" 21 70 15 ${DEFOPTIONS} 2> $${TMPOPTIONSFILE} || { \ ${RM} -f $${TMPOPTIONSFILE}; \ ${ECHO_MSG} "===> Options unchanged"; \ exit 0; \ }; \ if [ ! -e $${TMPOPTIONSFILE} ]; then \ ${ECHO_MSG} "===> No user-specified options to save for ${PKGNAME}"; \ exit 0; \ fi; \ SELOPTIONS=$$(${CAT} $${TMPOPTIONSFILE}); \ ${RM} -f $${TMPOPTIONSFILE}; \ TMPOPTIONSFILE=$$(mktemp -t portoptions); \ trap "${RM} -f $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ ${ECHO_CMD} "# This file is auto-generated by 'make config'." > $${TMPOPTIONSFILE}; \ ${ECHO_CMD} "# Options for ${PKGNAME}" >> $${TMPOPTIONSFILE}; \ ${ECHO_CMD} "_OPTIONS_READ=${PKGNAME}" >> $${TMPOPTIONSFILE}; \ ${ECHO_CMD} "_FILE_COMPLETE_OPTIONS_LIST=${COMPLETE_OPTIONS_LIST}" >> $${TMPOPTIONSFILE}; \ for i in ${COMPLETE_OPTIONS_LIST}; do \ if ${ECHO_CMD} $${SELOPTIONS} | ${GREP} -qw $${i}; then \ ${ECHO_CMD} "OPTIONS_FILE_SET+=$${i}" >> $${TMPOPTIONSFILE}; \ else \ ${ECHO_CMD} "OPTIONS_FILE_UNSET+=$${i}" >> $${TMPOPTIONSFILE}; \ fi; \ done; \ if [ ${UID} != 0 -a "x${INSTALL_AS_USER}" = "x" ]; then \ ${ECHO_MSG} "===> Switching to root credentials to write ${OPTIONSFILE}"; \ ${SU_CMD} "${CAT} $${TMPOPTIONSFILE} > ${OPTIONSFILE}"; \ ${ECHO_MSG} "===> Returning to user credentials"; \ else \ ${CAT} $${TMPOPTIONSFILE} > ${OPTIONSFILE}; \ fi; \ ${RM} -f $${TMPOPTIONSFILE} @cd ${.CURDIR} && ${MAKE} sanity-config .endif .endif # do-config .if !target(config) config: pre-config do-config .endif # config .if !target(config-recursive) config-recursive: @${ECHO_MSG} "===> Setting user-specified options for ${PKGNAME} and dependencies"; @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} config-conditional); \ done .endif # config-recursive .if !target(config-conditional) config-conditional: pre-config .if defined(COMPLETE_OPTIONS_LIST) && !defined(NO_DIALOG) . if !defined(_FILE_COMPLETE_OPTIONS_LIST) || ${COMPLETE_OPTIONS_LIST:O} != ${_FILE_COMPLETE_OPTIONS_LIST:O} @cd ${.CURDIR} && ${MAKE} do-config; . endif .endif .endif # config-conditional .if !target(showconfig) .include "${PORTSDIR}/Mk/bsd.options.desc.mk" showconfig: .if !empty(ALL_OPTIONS) || !empty(OPTIONS_SINGLE) || !empty(OPTIONS_MULTI) @${ECHO_MSG} "===> The following configuration options are available for ${PKGNAME}": .for opt in ${ALL_OPTIONS} . if empty(PORT_OPTIONS:M${opt}) @${ECHO_MSG} -n " ${opt}=off" . else @${ECHO_MSG} -n " ${opt}=on" . endif . if !empty(${opt}_DESC) @${ECHO_MSG} -n ": "${${opt}_DESC:Q} . endif @${ECHO_MSG} "" .endfor #multi and conditional multis .for multi in ${OPTIONS_MULTI} @${ECHO_MSG} "====> Options available for the multi ${multi}: you have to choose at least one of them" . for opt in ${OPTIONS_MULTI_${multi}} . if empty(PORT_OPTIONS:M${opt}) @${ECHO_MSG} -n " ${opt}=off" . else @${ECHO_MSG} -n " ${opt}=on" . endif . if !empty(${opt}_DESC) @${ECHO_MSG} -n ": "${${opt}_DESC:Q} . endif @${ECHO_MSG} "" . endfor .endfor #single and conditional singles .for single in ${OPTIONS_SINGLE} @${ECHO_MSG} "====> Options available for the single ${single}: you have to select exactly one of them" . for opt in ${OPTIONS_SINGLE_${single}} . if empty(PORT_OPTIONS:M${opt}) @${ECHO_MSG} -n " ${opt}=off" . else @${ECHO_MSG} -n " ${opt}=on" . endif . if !empty(${opt}_DESC) @${ECHO_MSG} -n ": "${${opt}_DESC:Q} . endif @${ECHO_MSG} "" . endfor .endfor .undef multi .undef single .undef opt @${ECHO_MSG} "===> Use 'make config' to modify these settings" .endif .endif # showconfig .if !target(showconfig-recursive) showconfig-recursive: @${ECHO_MSG} "===> The following configuration options are available for ${PKGNAME} and dependencies"; @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} showconfig); \ done .endif # showconfig-recursive .if !target(rmconfig) rmconfig: .if exists(${OPTIONSFILE}) -@${ECHO_MSG} "===> Removing user-configured options for ${PKGNAME}"; \ optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ if [ ${UID} != 0 -a "x${INSTALL_AS_USER}" = "x" ]; then \ ${ECHO_MSG} "===> Switching to root credentials to remove ${OPTIONSFILE} and $${optionsdir}"; \ ${SU_CMD} "${RM} -f ${OPTIONSFILE} ; \ ${RMDIR} $${optionsdir}"; \ ${ECHO_MSG} "===> Returning to user credentials"; \ else \ ${RM} -f ${OPTIONSFILE}; \ ${RMDIR} $${optionsdir} 2>/dev/null || return 0; \ fi .else @${ECHO_MSG} "===> No user-specified options configured for ${PKGNAME}" .endif .endif # rmconfig .if !target(rmconfig-recursive) rmconfig-recursive: @${ECHO_MSG} "===> Removing user-specified options for ${PKGNAME} and dependencies"; @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} rmconfig); \ done .endif # rmconfig-recursive .if !target(pretty-print-config) pretty-print-config: .for opt in ${ALL_OPTIONS} . if empty(PORT_OPTIONS:M${opt}) @${ECHO_MSG} -n "-${opt} " . else @${ECHO_MSG} -n "+${opt} " . endif .endfor .for multi in ${OPTIONS_MULTI} @${ECHO_MSG} -n "${multi}[ " . for opt in ${OPTIONS_MULTI_${multi}} . if empty(PORT_OPTIONS:M${opt}) @${ECHO_MSG} -n "-${opt} " . else @${ECHO_MSG} -n "+${opt} " . endif . endfor @${ECHO_MSG} -n "] " .endfor .for single in ${OPTIONS_SINGLE} @${ECHO_MSG} -n "${single}( " . for opt in ${OPTIONS_SINGLE_${single}} . if empty(PORT_OPTIONS:M${opt}) @${ECHO_MSG} -n "-${opt} " . else @${ECHO_MSG} -n "+${opt} " . endif . endfor @${ECHO_MSG} -n ") " .endfor .undef multi .undef single .undef opt @${ECHO_MSG} "" .endif # pretty-print-config desktop-categories: @categories=""; \ for native_category in ${CATEGORIES}; do \ c=""; \ case $$native_category in \ accessibility) c="Accessibility Utility" ;; \ archivers) c="Archiving" ;; \ astro) c="Astronomy Science Education" ;; \ audio) c="Audio AudioVideo" ;; \ benchmarks) c="System" ;; \ biology) c="Biology Science Education" ;; \ cad) c="Engineering" ;; \ databases) c="Database" ;; \ deskutils) c="Utility" ;; \ devel) c="Development" ;; \ dns) c="Network" ;; \ elisp) c="Development" ;; \ emulators) c="Emulator" ;; \ finance) c="Finance Office" ;; \ ftp) c="FileTransfer Network" ;; \ games) c="Game" ;; \ gnome) c="GNOME GTK" ;; \ graphics) c="Graphics" ;; \ hamradio) c="HamRadio" ;; \ haskell) c="Development" ;; \ ipv6) c="Network" ;; \ irc) c="IRCClient Network" ;; \ java) c="Java Development" ;; \ kde) c="KDE QT" ;; \ lang) c="Development" ;; \ lisp) c="Development" ;; \ mail) c="Email Office Network" ;; \ mbone) c="Network AudioVideo" ;; \ multimedia) c="AudioVideo" ;; \ net) c="Network" ;; \ net-im) c="InstantMessaging Network" ;; \ net-mgmt) c="Network" ;; \ net-p2p) c="P2P Network" ;; \ news) c="News" ;; \ pear) c="WebDevelopment Development" ;; \ perl5) c="Development" ;; \ python) c="Development" ;; \ ruby) c="Development" ;; \ rubygems) c="Development" ;; \ scheme) c="Development" ;; \ science) c="Science Education" ;; \ security) c="Security System" ;; \ shells) c="Shell" ;; \ sysutils) c="System Utility" ;; \ tcl*|tk*) c="Development" ;; \ www) c="Network" ;; \ x11-clocks) c="Clock Utility" ;; \ x11-fm) c="FileManager" ;; \ xfce) c="GTK" ;; \ zope) c="WebDevelopment Development" ;; \ esac; \ if [ -n "$$c" ]; then \ categories="$$categories $$c"; \ fi; \ done; \ if [ -n "$$categories" ]; then \ for c in Application $$categories; do ${ECHO_MSG} "$$c"; done \ | ${SORT} -u | ${TR} '\n' ';'; \ ${ECHO_MSG}; \ fi VALID_DESKTOP_CATEGORIES+= Application Core Development Building Debugger IDE \ GUIDesigner Profiling RevisionControl Translation Office Calendar \ ContactManagement Database Dictionary Chart Email Finance FlowChart PDA \ ProjectManagement Presentation Spreadsheet WordProcessor Graphics \ 2DGraphics VectorGraphics RasterGraphics 3DGraphics Scanning OCR \ Photography Viewer Settings DesktopSettings HardwareSettings \ PackageManager Network Dialup InstantMessaging IRCClient FileTransfer \ HamRadio News P2P RemoteAccess Telephony WebBrowser WebDevelopment \ AudioVideo Audio Midi Mixer Sequencer Tuner Video TV AudioVideoEditing \ Player Recorder DiscBurning Game ActionGame AdventureGame ArcadeGame \ BoardGame BlocksGame CardGame KidsGame LogicGame RolePlaying Simulation \ SportsGame StrategyGame Education Art Construction Music Languages \ Science Astronomy Biology Chemistry Geology Math MedicalSoftware Physics \ Teaching Amusement Applet Archiving Electronics Emulator Engineering \ FileManager Shell Screensaver TerminalEmulator TrayIcon System Filesystem \ Monitor Security Utility Accessibility Calculator Clock TextEditor KDE \ GNOME GTK Qt Motif Java ConsoleOnly AdvancedSettings check-desktop-entries: .if defined(DESKTOP_ENTRIES) @set -- ${DESKTOP_ENTRIES} XXX; \ if [ `${EXPR} \( $$# - 1 \) % 6` -ne 0 ]; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: the DESKTOP_ENTRIES list must contain one or more groups of 6 elements"; \ exit 1; \ fi; \ num=1; \ while [ $$# -gt 6 ]; do \ entry="#$$num"; \ if [ -n "$$4" ]; then \ entry="$$entry ($$4)"; \ elif [ -n "$$1" ]; then \ entry="$$entry ($$1)"; \ fi; \ if [ -z "$$1" ]; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 1 (Name) is empty"; \ exit 1; \ fi; \ if [ -z "$$4" ]; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 4 (Exec) is empty"; \ exit 1; \ fi; \ if [ -n "$$5" ]; then \ for c in `${ECHO_CMD} "$$5" | ${TR} ';' ' '`; do \ if ! ${ECHO_CMD} ${VALID_DESKTOP_CATEGORIES} | ${GREP} -wq $$c; then \ ${ECHO_CMD} "${PKGNAME}: Makefile error: in desktop entry $$entry: category $$c is not a valid desktop category"; \ exit 1; \ fi; \ done; \ if ! ${ECHO_CMD} "$$5" | ${GREP} -q ';$$'; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 5 (Categories) does not end with a semicolon"; \ exit 1; \ fi; \ else \ if [ -z "`cd ${.CURDIR} && ${MAKE} desktop-categories`" ]; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 5 (Categories) is empty and could not be deduced from the CATEGORIES variable"; \ exit 1; \ fi; \ fi; \ if [ -z "$$6" ]; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 6 (StartupNotify) is empty"; \ exit 1; \ fi; \ if [ "x$$6" != "xtrue" ] && [ "x$$6" != "xfalse" ]; then \ ${ECHO_MSG} "${PKGNAME}: Makefile error: in desktop entry $$entry: field 6 (StartupNotify) is not \"true\" or \"false\""; \ exit 1; \ fi; \ shift 6; \ num=`${EXPR} $$num + 1`; \ done .else @${DO_NADA} .endif .if !target(install-desktop-entries) install-desktop-entries: .if defined(DESKTOP_ENTRIES) @(${MKDIR} "${DESKTOPDIR}" 2> /dev/null) || \ (${ECHO_MSG} "===> Cannot create ${DESKTOPDIR}, check permissions"; exit 1) @set -- ${DESKTOP_ENTRIES} XXX; \ if [ -z "${_DESKTOPDIR_REL}" ]; then \ ${ECHO_CMD} "@cwd ${DESKTOPDIR}" >> ${TMPPLIST}; \ fi; \ while [ $$# -gt 6 ]; do \ filename="`${ECHO_CMD} "$$4" | ${TR} -cd [:alnum:]`.desktop"; \ pathname="${DESKTOPDIR}/$$filename"; \ categories="$$5"; \ if [ -z "$$categories" ]; then \ categories="`cd ${.CURDIR} && ${MAKE} desktop-categories`"; \ fi; \ ${ECHO_CMD} "${_DESKTOPDIR_REL}$$filename" >> ${TMPPLIST}; \ ${ECHO_CMD} "[Desktop Entry]" > $$pathname; \ ${ECHO_CMD} "Type=Application" >> $$pathname; \ ${ECHO_CMD} "Version=0.9.4" >> $$pathname; \ ${ECHO_CMD} "Encoding=UTF-8" >> $$pathname; \ ${ECHO_CMD} "Name=$$1" >> $$pathname; \ if [ -n "$$2" ]; then \ ${ECHO_CMD} "Comment=$$2" >> $$pathname; \ fi; \ if [ -n "$$3" ]; then \ ${ECHO_CMD} "Icon=$$3" >> $$pathname; \ fi; \ ${ECHO_CMD} "Exec=$$4" >> $$pathname; \ ${ECHO_CMD} "Categories=$$categories" >> $$pathname; \ ${ECHO_CMD} "StartupNotify=$$6" >> $$pathname; \ shift 6; \ done; \ ${ECHO_CMD} "@unexec rmdir ${DESKTOPDIR} 2>/dev/null || true" >> ${TMPPLIST}; \ if [ -z "${_DESKTOPDIR_REL}" ]; then \ ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ fi .else @${DO_NADA} .endif .endif .if !target(check-license) check-license: @${DO_NADA} .endif .if !target(ask-license) ask-license: @${DO_NADA} .endif .if !target(install-license) install-license: @${DO_NADA} .endif .endif # End of post-makefile section. .endif # End of the DESTDIR if statement Index: head/Mk/bsd.port.subdir.mk =================================================================== --- head/Mk/bsd.port.subdir.mk (revision 305636) +++ head/Mk/bsd.port.subdir.mk (revision 305637) @@ -1,533 +1,541 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91 # $FreeBSD$ # # The include file contains the default targets # for building ports subdirectories. # # # +++ variables +++ # # STRIP - The flag passed to the install program to cause the binary # to be stripped. This is to be used when building your # own install script so that the entire system can be made # stripped/not-stripped using a single knob. [-s] # # OPSYS - Get the operating system type [`uname -s`] # # SUBDIR - A list of subdirectories that should be built as well. # Each of the targets will execute the same target in the # subdirectories. # # # +++ targets +++ # # README.html: # Creating README.html for package. # # afterinstall, all, beforeinstall, build, checksum, clean, # clean-for-cdrom, clean-restricted, # clean-for-cdrom-list, clean-restricted-list, # configure, deinstall, # depend, depends, describe, extract, fetch, fetch-list, # ignorelist, ignorelist-verbose, # install, maintainer, makesum, package, readmes, realinstall, reinstall, # tags # # search: # Search for ports using either 'make search key=' # or 'make search name='. PORTSDIR?= /usr/ports TEMPLATES?= ${PORTSDIR}/Templates .if defined(PORTSTOP) README= ${TEMPLATES}/README.top .else README= ${TEMPLATES}/README.category .endif MOVEDDIR?= ${PORTSDIR} MOVEDFILE?= MOVED .include "${PORTSDIR}/Mk/bsd.commands.mk" .MAIN: all .if !defined(DEBUG_FLAGS) STRIP?= -s .endif # These are variables that are invariant for the lifetime of a recursive port traversal # (index build, etc), so it is more efficient to precompute them here and pass them in # to child makes explicitly, instead of recomputing them tens of thousands of times. .if !defined(NOPRECIOUSMAKEVARS) .if !defined(ARCH) ARCH!= ${UNAME} -p .endif .if !defined(OSVERSION) .if exists(/usr/include/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h .elif exists(${SRC_BASE}/sys/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${SRC_BASE}/sys/sys/param.h .else OSVERSION!= ${SYSCTL} -n kern.osreldate .endif .endif +.if ${OSVERSION} >= 1000017 +.if !defined(WITHOUT_PKGNG) +WITH_PKGNG= yes +.else +.undef WITH_PKGNG +.endif +.endif + .if !defined(_OSRELEASE) _OSRELEASE!= uname -r .endif .if !defined(OSREL) OSREL= ${_OSRELEASE:C/[-(].*//} .endif .if !defined(OPSYS) OPSYS!= ${UNAME} -s .endif .if ${ARCH} == "amd64" || ${ARCH} =="ia64" .if !defined(HAVE_COMPAT_IA32_KERN) HAVE_COMPAT_IA32_KERN!= if ${SYSCTL} -n compat.ia32.maxvmem >/dev/null 2>&1; then echo YES; fi .endif .endif .if !defined(CONFIGURE_MAX_CMD_LEN) CONFIGURE_MAX_CMD_LEN!= ${SYSCTL} -n kern.argmax .endif .if !defined(PYTHON_DEFAULT_VERSION) PYTHON_DEFAULT_VERSION!= make -V PYTHON_DEFAULT_VERSION USE_PYTHON=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(PYTHON_DEFAULT_PORTVERSION) # We are caching the PYTHON_PORTVERSION of the default python version so we can reuse it in the # common case. PYTHON_DEFAULT_PORTVERSION!= make -V PYTHON_PORTVERSION USE_PYTHON=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(PYTHONBASE) PYTHONBASE!= make -V PYTHONBASE USE_PYTHON=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(_JAVA_VERSION_LIST_REGEXP) _JAVA_VERSION_LIST_REGEXP!= make -V _JAVA_VERSION_LIST_REGEXP USE_JAVA=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(_JAVA_VENDOR_LIST_REGEXP) _JAVA_VENDOR_LIST_REGEXP!= make -V _JAVA_VENDOR_LIST_REGEXP USE_JAVA=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(_JAVA_OS_LIST_REGEXP) _JAVA_OS_LIST_REGEXP!= make -V _JAVA_OS_LIST_REGEXP USE_JAVA=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(_JAVA_PORTS_INSTALLED) _JAVA_PORTS_INSTALLED!= make -V _JAVA_PORTS_INSTALLED USE_JAVA=1 -f ${PORTSDIR}/Mk/bsd.port.mk .endif .if !defined(UID) UID!= ${ID} -u .endif .if exists(${LOCALBASE}/sbin/pkg_info) PKG_INFO?= ${LOCALBASE}/sbin/pkg_info .else PKG_INFO?= /usr/sbin/pkg_info .endif .if !defined(PKGINSTALLVER) PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //' .endif .endif INDEXDIR?= ${PORTSDIR} INDEXFILE?= INDEX-${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # local customization of the ports tree .if exists(${.CURDIR}/Makefile.local) .include "${.CURDIR}/Makefile.local" .endif TARGETS+= all TARGETS+= build TARGETS+= checksum TARGETS+= clean TARGETS+= clean-for-cdrom TARGETS+= clean-for-cdrom-list TARGETS+= clean-restricted TARGETS+= clean-restricted-list TARGETS+= configure TARGETS+= deinstall TARGETS+= depend TARGETS+= depends TARGETS+= distclean TARGETS+= extract TARGETS+= fetch TARGETS+= fetch-list TARGETS+= ignorelist TARGETS+= ignorelist-verbose TARGETS+= makesum TARGETS+= maintainer TARGETS+= package TARGETS+= package-recursive TARGETS+= realinstall TARGETS+= reinstall TARGETS+= tags .for __target in ${TARGETS} .if !target(${__target}) .if defined(SUBDIR) && !empty(SUBDIR) ${__target}: ${SUBDIR:S/^/_/:S/$/.${__target}/} .else ${__target}: .endif .endif .endfor .if defined(SUBDIR) && !empty(SUBDIR) .for __target in ${TARGETS} checksubdirs describe readmes ${SUBDIR:S/^/_/:S/$/.${__target}/}: _SUBDIRUSE .endfor _SUBDIRUSE: .USE @OK=""; sub=${.TARGET:S/^_//:R}; \ for dud in $$DUDS; do \ if [ $${dud} = $$sub ]; then \ OK="false"; \ ${ECHO_MSG} "===> ${DIRPRFX}$$sub skipped"; \ fi; \ done; \ if test -d ${.CURDIR}/$${sub}.${MACHINE_ARCH}; then \ edir=$${sub}.${MACHINE_ARCH}; \ elif test -d ${.CURDIR}/$${sub}; then \ edir=$${sub}; \ else \ OK="false"; \ ${ECHO_MSG} "===> ${DIRPRFX}$${sub} non-existent"; \ fi; \ if [ "$$OK" = "" ]; then \ ${ECHO_MSG} "===> ${DIRPRFX}$${edir}"; \ cd ${.CURDIR}/$${edir}; \ ${MAKE} -B ${.TARGET:E:realinstall=install} \ DIRPRFX=${DIRPRFX}$$edir/; \ fi .for _subdir in ${SUBDIR:S/^/_/} ${_subdir}:: ${_subdir:S/$/.all/} .endfor .endif .if !target(install) .if !target(beforeinstall) beforeinstall: .endif .if !target(afterinstall) afterinstall: .endif install: afterinstall afterinstall: realinstall realinstall: beforeinstall ${SUBDIR:S/^/_/:S/$/.realinstall/} .endif IGNOREDIR= CVS Mk Templates Tools distfiles packages pkg .if !target(checksubdirs) .if defined(PORTSTOP) checksubdirs: checksubdir ${SUBDIR:S/^/_/:S/$/.checksubdirs/} .else checksubdirs: checksubdir .endif .endif .if !target(checksubdir) checksubdir: @for d in *; do \ if [ -d "$$d" ]; then \ found=0; \ for s in ${SUBDIR} ${IGNOREDIR}; do \ if [ "x$$s" = "x$$d" ]; then \ found=1; \ break; \ fi; \ done; \ if [ $$found = 0 ]; then \ ${ECHO_MSG} "Warning: directory $$d not in SUBDIR"; \ fi; \ fi; \ done @for s in ${SUBDIR}; do \ if ! [ -d ${.CURDIR}/$$s ]; then \ ${ECHO_MSG} "Warning: directory $$s in SUBDIR does not exist"; \ fi \ done .endif .if !target(describe) .if defined(PORTSTOP) # This is a bit convoluted to deal with the fact that make will overlap I/O from child make processes # if they write more than 2k: this will corrupt the INDEX file. make -P does not do this, but it adds # extraneous output and redirects stderr, so we lose error reporting from child makes. Instead we have # to roll our own implementation of make -P and make sure that each child make writes to their own file, # which we will combine at the end. This gives substantial performance benefits over doing a make -j1 .if defined(BUILDING_INDEX) describe: ${SUBDIR:S/^/describe./} .for i in ${SUBDIR} describe.$i: @cd ${.CURDIR}; ${MAKE} -B ${i:S/^/_/:S/$/.describe/} > ${INDEX_TMPDIR}/${INDEXFILE}.desc.${i} .endfor .else describe: ${SUBDIR:S/^/_/:S/$/.describe/} .endif .else describe: @for sub in ${SUBDIR}; do \ if ${TEST} -d ${.CURDIR}/$${sub}; then \ ${ECHO_MSG} "===> ${DIRPRFX}$${sub}"; \ cd ${.CURDIR}/$${sub}; \ ${MAKE} -B describe || \ (${ECHO_CMD} "===> ${DIRPRFX}$${sub} failed" >&2; \ exit 1) ;\ else \ ${ECHO_MSG} "===> ${DIRPRFX}$${sub} non-existent"; \ fi; \ done .endif .endif .if !target(readmes) .if defined(PORTSTOP) readmes: readme ${SUBDIR:S/^/_/:S/$/.readmes/} @${ECHO_MSG} "===> Creating README.html for all ports" @perl ${PORTSDIR}/Tools/make_readmes < ${INDEXDIR}/${INDEXFILE} .else readmes: readme .endif .endif .if !target(readme) readme: @${RM} -f README.html @${MAKE} README.html .endif HTMLIFY= ${SED} -e 's/&/\&/g' -e 's/>/\>/g' -e 's/ Creating README.html" @> $@.tmp .for entry in ${SUBDIR} .if exists(${entry}) .if defined(PORTSTOP) @${ECHO_CMD} -n ''"`${ECHO_CMD} ${entry} | ${HTMLIFY}`"': ' >> $@.tmp .else @${ECHO_CMD} -n ''"`cd ${entry}; ${MAKE} package-name | ${HTMLIFY}`: " >> $@.tmp .endif @${ECHO_CMD} `cd ${entry}; ${MAKE} -V COMMENT` | ${HTMLIFY} >> $@.tmp .endif .endfor @${SORT} -t '>' +1 -2 $@.tmp > $@.tmp2 .if exists(${DESCR}) @${HTMLIFY} ${DESCR} > $@.tmp3 .else @> $@.tmp3 .endif .if defined(COMMENT) @${ECHO_CMD} "${COMMENT}" | ${HTMLIFY} > $@.tmp4 .else @> $@.tmp4 .endif @${CAT} ${README} | \ ${SED} -e 's/%%CATEGORY%%/'"`basename ${.CURDIR}`"'/g' \ -e '/%%COMMENT%%/r$@.tmp4' \ -e '/%%COMMENT%%/d' \ -e '/%%DESCR%%/r$@.tmp3' \ -e '/%%DESCR%%/d' \ -e '/%%SUBDIR%%/r$@.tmp2' \ -e '/%%SUBDIR%%/d' \ > $@ @${RM} -f $@.tmp $@.tmp2 $@.tmp3 $@.tmp4 # Pass in the cached invariant variables to child makes. # XXX Why are we trying to escape these characters using regexps and not using ':Q'? .if !defined(NOPRECIOUSMAKEVARS) .MAKEFLAGS: \ ARCH="${ARCH:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ OPSYS="${OPSYS:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ OSREL="${OSREL:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ OSVERSION="${OSVERSION:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ UID="${UID:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ PKGINSTALLVER="${PKGINSTALLVER:S/"/"'"'"/g:S/\$/\$\$/g:S/\\/\\\\/g}" \ HAVE_COMPAT_IA32_KERN="${HAVE_COMPAT_IA32_KERN}" \ CONFIGURE_MAX_CMD_LEN="${CONFIGURE_MAX_CMD_LEN}" \ PYTHON_DEFAULT_VERSION="${PYTHON_DEFAULT_VERSION}" \ PYTHON_DEFAULT_PORTVERSION="${PYTHON_DEFAULT_PORTVERSION}" \ PYTHONBASE="${PYTHONBASE}" \ _JAVA_VERSION_LIST_REGEXP="${_JAVA_VERSION_LIST_REGEXP:Q}" \ _JAVA_VENDOR_LIST_REGEXP="${_JAVA_VENDOR_LIST_REGEXP:Q}" \ _JAVA_OS_LIST_REGEXP="${_JAVA_OS_LIST_REGEXP:Q}" \ _JAVA_PORTS_INSTALLED="${_JAVA_PORTS_INSTALLED}" .endif PORTSEARCH_DISPLAY_FIELDS?=name,path,info,maint,index,bdeps,rdeps,www PORTSEARCH_KEYLIM?=0 PORTSEARCH_XKEYLIM?=0 PORTSEARCH_IGNORECASE?=1 PORTSEARCH_MOVED?=1 _PORTSEARCH= \ here=${.CURDIR}; \ if [ ! -r ${INDEXDIR}/${INDEXFILE} ] ; then \ ${ECHO_MSG} "The ${.TARGET} target requires ${INDEXFILE}. Please run make index or make fetchindex."; \ else \ cd ${PORTSDIR}; \ if [ -z "$$key" -a -z "$$xkey" -a \ -z "$$name" -a -z "$$xname" -a \ -z "$$path" -a -z "$$xpath" -a \ -z "$$info" -a -z "$$xinfo" -a \ -z "$$maint" -a -z "$$xmaint" -a \ -z "$$cat" -a -z "$$xcat" -a \ -z "$$bdeps" -a -z "$$xbdeps" -a \ -z "$$rdeps" -a -z "$$xrdeps" -a \ -z "$$www" -a -z "$$xwww" ]; \ then \ ${ECHO_MSG} "The ${.TARGET} target requires a keyword parameter or name parameter,"; \ ${ECHO_MSG} "e.g.: \"make ${.TARGET} key=somekeyword\""; \ ${ECHO_MSG} "or \"make ${.TARGET} name=somekeyword\""; \ exit; \ fi; \ ${AWK} -F\| -v there="$$here/" -v top="$$(pwd -P)" \ -v key="$$key" -v xkey="$$xkey" \ -v name="$$name" -v xname="$$xname" \ -v path="$$path" -v xpath="$$xpath" \ -v info="$$info" -v xinfo="$$xinfo" \ -v maint="$$maint" -v xmaint="$$xmaint" \ -v cat="$$cat" -v xcat="$$xcat" \ -v bdeps="$$bdeps" -v xbdeps="$$xbdeps" \ -v rdeps="$$rdeps" -v xrdeps="$$xrdeps" \ -v www="$$www" -v xwww="$$xwww" \ -v icase="$${icase:-${PORTSEARCH_IGNORECASE}}" \ -v keylim="$${keylim:-${PORTSEARCH_KEYLIM}}" \ -v xkeylim="$${xkeylim:-${PORTSEARCH_XKEYLIM}}" \ -v display="$${display:-${PORTSEARCH_DISPLAY_FIELDS}}" \ -v xdisplay="$$xdisplay" \ 'BEGIN { \ gsub(/\+/,"\\+",name); \ if (substr(there, 1, length(top)) == top) \ there = "${PORTSDIR}" substr(there, 1 + length(top)); \ therelen = length(there); \ keylen = length(key); keylim = keylim && keylen; \ if (!keylim && keylen) \ parms[0] = (icase ? tolower(key) : key); \ xkeylen = length(xkey); xkeylim = xkeylim && xkeylen; \ if (!xkeylim && xkeylen) \ xparms[0] = (icase ? tolower(xkey) : xkey); \ if (icase) { \ if (length(name)) parms[1] = tolower(name); if (length(xname)) xparms[1] = tolower(xname); \ if (length(path)) parms[2] = tolower(path); if (length(xpath)) xparms[2] = tolower(xpath); \ if (length(info)) parms[4] = tolower(info); if (length(xinfo)) xparms[4] = tolower(xinfo); \ if (length(maint)) parms[6] = tolower(maint); if (length(xmaint)) xparms[6] = tolower(xmaint); \ if (length(cat)) parms[7] = tolower(cat); if (length(xcat)) xparms[7] = tolower(xcat); \ if (length(bdeps)) parms[8] = tolower(bdeps); if (length(xbdeps)) xparms[8] = tolower(xbdeps); \ if (length(rdeps)) parms[9] = tolower(rdeps); if (length(xrdeps)) xparms[9] = tolower(xrdeps); \ if (length(www)) parms[10] = tolower(www); if (length(xwww)) xparms[10] = tolower(xwww); \ } else { \ if (length(name)) parms[1] = name; if (length(xname)) xparms[1] = xname; \ if (length(path)) parms[2] = path; if (length(xpath)) xparms[2] = xpath; \ if (length(info)) parms[4] = info; if (length(xinfo)) xparms[4] = xinfo; \ if (length(maint)) parms[6] = maint; if (length(xmaint)) xparms[6] = xmaint; \ if (length(cat)) parms[7] = cat; if (length(xcat)) xparms[7] = xcat; \ if (length(bdeps)) parms[8] = bdeps; if (length(xbdeps)) xparms[8] = xbdeps; \ if (length(rdeps)) parms[9] = rdeps; if (length(xrdeps)) xparms[9] = xrdeps; \ if (length(www)) parms[10] = www; if (length(xwww)) xparms[10] = xwww; \ } \ fields["name"] = 1; names[1] = "Port"; \ fields["path"] = 2; names[2] = "Path"; \ fields["info"] = 4; names[4] = "Info"; \ fields["maint"] = 6; names[6] = "Maint"; \ fields["cat"] = 7; names[7] = "Index"; \ fields["bdeps"] = 8; names[8] = "B-deps"; \ fields["rdeps"] = 9; names[9] = "R-deps"; \ fields["www"] = 10; names[10] = "WWW"; \ split(display, d, /,[ \t]*/); \ split(xdisplay, xd, /,[ \t]*/); \ for (i in d) { \ toprint = 1; \ for (j in xd) { \ if (d[i] == xd[j] ) { \ toprint=0; \ break; \ }\ } \ if (toprint == 1 ) disp[fields[d[i]]] = 1; \ } \ } \ { \ if (match($$2, "^/usr/ports/[^/]*/[^/]*$$") > 0) \ sub("^/usr/ports", "${PORTSDIR}", $$2); \ if (substr($$2, 1, therelen) != there) \ next; \ for (i in parms) \ if ((icase ? tolower($$i) : $$i) !~ parms[i]) \ next; \ for (i in xparms) \ if ((icase ? tolower($$i) : $$i) ~ xparms[i]) \ next; \ found = 0; \ for (i = 1; i < 11; i++) \ if (i in disp) { \ if (xkeylim && (icase ? tolower($$i) : $$i) ~ xkey) \ next; \ if (!found && keylim && (icase ? tolower($$i) : $$i) ~ key) \ found = 1; \ } \ if (keylim && !found) \ next; \ for (i = 1; i < 11; i++) \ if (i in disp) \ printf("%s:\t%s\n", names[i], $$i); \ print(""); \ }' ${INDEXDIR}/${INDEXFILE}; \ if [ "$$name" -o "$$xname" ] && [ ${PORTSEARCH_MOVED} -gt 0 ]; \ then \ ${AWK} -F\| -v name="$$name" -v xname="$$xname" \ -v icase="$${icase:-${PORTSEARCH_IGNORECASE}}" \ 'BEGIN { \ if (icase) { \ if (length(name)) name = tolower(name); if (length(xname)) xname = tolower(xname); \ } \ fields["name"] = 1; names[1] = "Port"; \ fields["destination"] = 2; names[2] = "Moved"; \ fields["date"] = 3; names[3] = "Date"; \ fileds["reason"] = 4; names[4] = "Reason"; \ } \ { \ oldname = $$1; newname = $$2; \ if (oldname ~ /^\#/) next; \ sub(".*\/", "", oldname); newname = sub(".*\/", "", newname); \ if (((icase ? tolower(oldname) : oldname) ~ name) || \ ((icase ? tolower(newname) : newname) ~ name)) { \ for (i = 1; i <= 4; i++) { \ printf("%s:\t%s\n", names[i], $$i); \ } \ print(""); \ } \ }' ${MOVEDDIR}/${MOVEDFILE}; \ fi \ fi search: @${_PORTSEARCH} quicksearch: @export display="name,path,info" ; \ ${_PORTSEARCH} Index: head/UPDATING =================================================================== --- head/UPDATING (revision 305636) +++ head/UPDATING (revision 305637) @@ -1,7036 +1,7058 @@ This file documents some of the problems you may encounter when upgrading your ports. We try our best to minimize these disruptions, but sometimes they are unavoidable. You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +20121010: + AFFECTS: users of CURRENT + AUTHOR: bapt@FreeBSD.org + + The ports tree is now using pkgng as the default package manager + for HEAD. This only affects users of CURRENT -- users of other + branches need not take any action. + + To keep pkg_install as the default package manager, use the new + WITHOUT_PKGNG knob in make.conf + + To make the switch: + + 1/ Set WITHOUT_PKGNG=yes in make.conf and upgrade all your ports to + the latest available versions using your favourite tools. + + 2/ Install ports-mgmt/pkg + + 3/ Remove WITHOUT_PKGNG from make.conf and run + + # pkg2ng + 20121009: AFFECTS: users of multimedia/vdpau-video AUTHOR: madpilot@FreeBSD.org vdpau-video has been renamed upstream to libva-vdpau-driver. The port has been changed accordingly. Please update the port origins as follows: # portmaster -o multimedia/libva-vdpau-driver multimedia/vdpau-video or # portupgrade -fo multimedia/libva-vdpau-driver multimedia/vdpau-video or # pkg set -o multimedia/vdpau-video:multimedia/libva-vdpau-driver 20121008: AFFECTS: users of mail/squirrelmail AUTHOR: adamw@FreeBSD.org The locale data, including translations and associated help files, have been moved to mail/squirrelmail-translations. If you or your users are using Squirrelmail in anything other than en_US, you should install that port. 20121007: AFFECTS: users of lang/mit-scheme AUTHOR: olgeni@FreeBSD.org The lang/mit-scheme port was converted to OptionsNG, and now uses the standard PGSQL knob rather than POSTGRESQL. Be sure to check your configuration before rebuilding. 20121006: AFFECTS: users of devel/geany-plugins AUTHOR: makc@FreeBSD.org devel/geany-plugins has been updated to 1.22 and split into numerous devel/geany-plugin-* ports. geany-plugins must be deinstalled before running any port upgrade utility. 20121002: AFFECTS: users of devel/clanlib AUTHOR: jhale@FreeBSD.org devel/clanlib has been updated to 2.3.6 and the legacy version has been moved to devel/clanlib1 and updated to 1.0.0. Although both versions may be installed at the same time, you should update your port origins first since many ports that depend on clanlib will not work with the new version. Update your port origins as follows: # portmaster -o devel/clanlib1 devel/clanlib or # portupgrade -fo devel/clanlib1 devel/clanlib or # pkg set -o devel/clanlib:devel/clanlib1 20120928: AFFECTS: users of mail/maildrop AUTHOR: madpilot@FreeBSD.org With the update to 2.6.0 of mail/maildrop the following executable files: bin/deliverquota -> bin/maildrop-deliverquota bin/maidirmake -> bin/maildrop-maildirmake have been renamed to avoid colliding with files installed from other ports. Man pages and html files in DOCSDIR relating to these files have also been renamed accordingly. 20120925: AFFECTS: users of www/linux-f10-flashplugin11 AUTHOR: eadler@FreeBSD.org After reinstalling the port make sure to run nspluginwrapper -v -a -u for each user that uses the plugin. 20120924: AFFECTS: users of textproc/aspell AUTHOR: bapt@FreeBSD.org textproc/aspell no longer installs the english dictionary. If you need it please install textproc/en-aspell. 20120919: AFFECTS: users of net-mgmt/better-cacti-templates AUTHOR: Bryan Drewery better-cacti-templates has been renamed as the upstream has merged with Percona Monitoring Plugins. Update your port origins as follows: # portmaster -o net-mgmt/percona-monitoring-plugins net-mgmt/better-cacti-templates or # portupgrade -fo net-mgmt/percona-monitoring-plugins net-mgmt/better-cacti-templates or # pkg set -o net-mgmt/better-cacti-templates:net-mgmt/percona-monitoring-plugins 20120916: AFFECTS: users of german/webalizer2, japanese/webalizer, polish/webalizer2, portuguese/webalizer-pt_BR, portuguese/webalizer-pt_PT, ukrainian/webalizer, www/geolizer, www/webalizer AUTHOR: dinoex@FreeBSD.org The default Berkeley DB has changed, so existing DNS caches needs to be rebuild or choose the option BDB1 in the port. 20120913: AFFECTS: users of sysutils/bacula-server, sysutils/bacula-client AUTHOR: rm@FreeBSD.org If you have both sysutils/bacula-server and sysutils/bacula-client installed, you need to pkg_delete them both prior to this update. 20120910: AFFECTS: users of www/libxul AUTHOR: gecko@FreeBSD.org The www/libxul has been updated to 10.0 and the older version 1.9.2 has moved to www/libxul19. If you want to stay with 1.9.2 please run the following command: # portmaster -o www/libxul19 www/libxul or # portupgrade -o www/libxul19 www/libxul or # pkg set -o www/libxul:www/libxul19 20120909: AFFECTS: users of www/testlink AUTHOR: tota@FreeBSD.org Testlink 1.9.4 was released. Before updating, you should read carefully the included README file or go to www.teamst.org (Forum: TestLink 1.9.4 News, changes, etc) because this release requires a manual update of the database scheme. 20120908: AFFECTS: users of irc/bitlbee, irc/irssi-otr, net-im/climm, net-im/mcabber, net/kdenetwork4, security/kopete-otr, security/py-otr AUTHOR: Doug Barton The libotr library has been bumped in version 4.0.0, and the new version is not compatible with the old. In order to make it possible for both versions to coexist in the short term the old version has been moved to a new port. If you are currently using pidgin-otr: # pkg_delete -f pidgin-otr\* Then: # portmaster -o security/libotr3 security/libotr # portmaster -r libotr or # portugrade -o security/libotr3 security/libotr # portugrade -r libotr or # pkg set -o security/libotr:security/libotr3 20120902: AFFECTS: users of www/apache22, www/apache22-event-mpm, www/apache22-itk-mpm, www/apache22-peruser-mpm, www/apache22-worker-mpm AUTHOR: ohauer@FreeBSD.org The port use now the options NG framework, this means WITH_xxx directives are no longer valid. Additional: - APR only specific options like THREADS, MYSQL, PGSQL, SQLITE, BDB and IPV6 where removed. - PKGNAME has changed from apache-2... to apache22-2... - PROXY is now a MULTI directive which means at last one additional PROXY_(AJP|BALANCER|CONNECT|FTP|HTTP|SCGI) module is required. - CGI is only a valid option for MPM prefork, peruser and itk. 20120902: AFFECTS: users of devel/apr1 AUTHOR: ohauer@FreeBSD.org APR was updated to 1.4.6 and APR-util was updated to 1.4.1. Please rebuild all ports which are using functions from APR/APR-util such as apache, subversion ... # portmaster -r apr or # portupgrade -r devel/apr1 or # pkg install -fR devel/apr1 20120902: AFFECTS: users of math/cantor and math/kalgebra AUTHOR: kde@FreeBSD.org If you have both cantor and kalgebra installed, chances are that your cantor installation is corrupted. If the file ${KDE4_PREFIX}/lib/kde4/cantor_kalgebrabackend.so is missing on your system, rebuild cantor after updating kalgebra to 4.8.4_1 (or later). 20120822: AFFECTS: users of net/asterisk16, net/asterisk16-addons AUTHOR: Florian Smeets asterisk16 has been unsupported upstream for a while now and has known security vulnerabilities, therefore it was removed from the ports tree. People still running net/asterisk16 should upgrade to net/asterisk. First delete the asterisk addons, as they are part of asterisk now. # pkg_delete -f asterisk16-addons\* after that you can run one of the following # portmaster -o net/asterisk net/asterisk16 or # portupgrade -o net/asterisk net/asterisk16 or # pkg set -o net/asterisk16:net/asterisk After that you need to update your configuration. Take a look at the following URL for the changes between 1.6 and 1.8 http://svnview.digium.com/svn/asterisk/branches/1.8/UPGRADE.txt 20120820: AFFECTS: users of ports-mgmt/portupgrade-devel AUTHOR: bdrewery@FreeBSD.org Due to a bug introduced in 20120601, portupgrade is unable to upgrade itself on FreeBSD 7.x. This has been fixed in 20120820. ports-mgmt/portupgrade is not affected. To upgrade, execute the following: # make -C /usr/ports/ports-mgmt/portupgrade-devel all deinstall install clean 20120817: AFFECTS: users of games/unnethack AUTHOR: knu@FreeBSD.org The place for variable files has changed from $PREFIX/share/unnethack to $PREFIX/var/games/unnethack. To keep your saved files and game records, please manually move the following files and directories to the new directory after upgrading. logfile perm record xlogfile bones/ level/ saves/ 20120816: AFFECTS: users of sysutils/cfengine* AUTHOR: gjb@FreeBSD.org The sysutils/cfengine* ports have been renamed as follows: o sysutils/cfengine -> sysutils/cfengine22 o sysutils/cfengine3-legacy -> sysutils/cfengine32 o sysutils/cfengine3 -> sysutils/cfengine33 Users are reminded to update the port origins, for example: # portmaster -o sysutils/cfengine22 sysutils/cfengine or # portupgrade -fo sysutils/cfengine22 sysutils/cfengine or # pkg set -o sysutils/cfengine:sysutils/cfengine22 20120815: AFFECTS: users of lang/erlang AUTHOR: olgeni@FreeBSD.org The lang/erlang port was updated to R15B01. Some port options were updated, so be sure to run "make config" in the port directory and check your configuration before upgrading. To upgrade Erlang and rebuild all of the dependent ports under the new environment: # portmaster -r erlang or # portupgrade -r lang/erlang 20120815: AFFECTS: users of lang/erlang-lite AUTHOR: olgeni@FreeBSD.org The lang/erlang-lite port uses the same default options as lang/erlang, which were changed some time ago. The couchdb, rabbitmq, freeswitch-core and freeswitch-core-devel ports have been updated to use lang/erlang rather than lang/erlang-lite. Please check that your lang/erlang options are configured as you wish (especially X11 support), then follow the instructions below to update your dependencies. # portmaster -o lang/erlang lang/erlang-lite or # portupgrade -fo lang/erlang erlang-lite 20120810: AFFECTS: users of net-p2p/transmission-gtk2 AUTHOR: crees@FreeBSD.org Unfortunately Transmission 2.61 moved the requirement for GTK to version 3.2.0, which is not yet in our tree. Those who wish to have a graphical client can either choose transmission-qt4 in the meantime, or switch to the transmission25 ports. A script to generate appropriate commands can be found at: http://people.FreeBSD.org/~crees/scripts/transmission25.sh 20120808: AFFECTS: users of www/libmicrohttpd AUTHOR: bdrewery@FreeBSD.org libmicrohttpd has been updated to version 0.9.21, with a shared library bump. This requires dependent ports to be rebuilt. # portmaster -r libmicrohttpd or # portupgrade -r www/libmicrohttpd or # pkg install -fR www/libmicrohttpd 20120804: AFFECTS: users of graphics/libglut AUTHOR: x11@FreeBSD.org The libglut library is replaced by the freeglut library. Due to shlib version bump all glut users should be rebuild. Please follow the instructions below to upgrade. # portmaster -o graphics/freeglut graphics/libglut # portmaster -r freeglut or # env DISABLE_CONFLICTS=1 portupgrade -fo graphics/freeglut libglut\* # portupgrade -frx freeglut freeglut or # pkg set -o graphics/libglut:graphics/freeglut # pkg install -Rf graphics/freeglut 20120801: AFFECTS: users of editors/emacs AUTHOR: ashish@FreeBSD.org GNU Emacs port is updated to 24.1. Emacs 23 is moved to editors/emacs23. If you prefer to stick with Emacs 23, please specify EMACS_PORT_NAME=emacs23 in /etc/make.conf, and do: # portmaster -o editors/emacs23 editors/emacs or # env DISABLE_CONFLICTS=1 portupgrade -fo editors/emacs23 editors/emacs or # pkg set -o editors/emacs:editors/emacs23 20120726: AFFECTS: users of www/firefox, www/seamonkey, mail/thunderbird, www/libxul AUTHOR: gecko@FreeBSD.org Gecko ports were switched to use system libraries. Some of them must be built with certain options set (default). - graphics/png has to be installed with APNG option - databases/sqlite3 has to be installed with SECURE_DELETE, THREADSAFE, FTS3, UNLOCK_NOTIFY options 20120726: AFFECTS: users of devel/pkg-config AUTHOR: bapt@FreeBSD.org devel/pkg-config has been replaced by devel/pkgconf # portmaster -o devel/pkgconf devel/pkg-config or # portupgrade -fo devel/pkgconf pkg-config-\* pkgng: # pkg set -o devel/pkg-config:devel/pkgconf # pkg install -f devel/pkgconf 20120725: AFFECTS: users of chinese/fcitx AUTHOR: lichray@gmail.com The textproc/fcitx-keyboard port is merged into chinese/fcitx. Before updating, be sure to # pkg_delete -f fcitx-keyboard-\* And make sure you have at least one keyboard layout based input method enabled in fcitx-configtool, to keep the activation/deactivation of IM panel working. And, since chinese/fcitx-sunpinyin depends on an update to chinese/sunpinyin 20120725: AFFECTS: users of www/py-beautifulsoup AUTHOR: rm@FreeBSD.org Current www/py-beautifulsoup has been moved to www/py-beautifulsoup32, since 4.1.1 is now current stable version. If you prefer to stick with 3.2.0 do: # portmaster -o www/py-beautifulsoup32 www/py-beautifulsoup 20120723: AFFECTS: users of security/snort AUTHOR: zi@FreeBSD.org The database output modules have been deprecated. If you need this functionality please look at the security/barnyard2 port. 20120723: AFFECTS: users of graphics/ImageMagick and graphics/ImageMagick-nox11 AUTHOR: mm@FreeBSD.org The options for ImageMagick have been changed to match commonly used option names. If you are using a customized build, please reconfigure your port options with "make config". 20120720: AFFECTS: users of net/spread and net/spread4 AUTHOR: ohauer@FreeBSD.org The ports net/spread and net/spread4 are using now the reserved UID/GID 282 instead (user|group)next. 20120722: AFFECTS: users of mail/mutt AUTHOR: crees@FreeBSD.org mail/mutt-devel has been moved to mail/mutt, since 1.5 has been around for a while. Should you wish to stick with version 1.4 at this time; # portmaster -o mail/mutt14 mutt 20120721: AFFECTS: users of audio/libogg AUTHOR: naddy@FreeBSD.org There is a new version of libogg (1.3.0) and the shared library version has been bumped (ogg.7 to ogg.8). All ports that have an identifiable direct dependency on this library have had their PORTREVISIONs bumped. However, some ports that pull in the library indirectly may continue to look for the old version. To ensure that all are updated, perform this step: # portmaster -r libogg or # portupgrade -rf libogg 20120717: AFFECTS: users of ftp/proftpd AUTHOR: mm@FreeBSD.org The options of ProFTPD have been made much more user-friendly. As the modules are all shared libraries, all possible modules are built and installed. The following modules are now in separate slave ports: databases/proftpd-mod_sql_odbc: mod_sql_odbc databases/proftpd-mod_sql_sqlite: mod_sql_sqlite databases/proftpd-mod_sql_tds: mod_sql_tds net/proftpd-mod_ldap: mod_ldap and mod_quotatab_ldap 20120716: AFFECTS: users of www/lighttpd AUTHOR: mm@FreeBSD.org The following port options have been reorganized: The OPENLDAP option has been renamed to LDAP. The MAGNET and CML options have been withdrawn in favor of new LUA option. 20120716: AFFECTS: users of mail/postfix-current AUTHOR: sahil@FreeBSD.org The postscreen-to-smtpd protocol has changed. To avoid "cannot receive connection attributes" warnings and dropped connections, execute the command "postfix reload". 20120716: AFFECTS: Nobody AUTHOR: beat@FreeBSD.org The FreeBSD ports tree switched from CVS to Subversion. A Subversion to CVS exporter is in place to continue the support of CVSup. 20120709: AFFECTS: users of math/metis AUTHOR: bf@FreeBSD.org The older version of metis has been moved to math/metis4, and math/metis has been updated to 5.0.2. Dependent ports still use the old API, and the different versions of metis cannot coexist, so most users should update with: # portmaster -o math/metis4 math/metis # portmaster -r math/metis4 or the equivalent. 20120702: AFFECTS: users of databases/couchdb AUTHOR: crees@FreeBSD.org, Adam Strohl The couchdb port has an unfortunate side effect; versions before 1.2.0 will clobber local.ini. The port will refuse to build if that file is present and an earlier version is installed, however no such protection can be afforded to package installation. To upgrade from 1.1.0 and earlier, simply move PREFIX/etc/couchdb/local.ini out of the way until the upgrade is complete. 20120702: AFFECTS: users of net-im/mikutter AUTHOR: tota@FreeBSD.org The net-im/mikutter has been updated to 0.1.1.810 which is required Ruby 1.9.2 or later. Before upgrading this port, please see the entry 20110822 in this file to upgrade Ruby to 1.9. If you want to stay with 0.0.3 (requires Ruby 1.8.7, 1.9.2 or later), please run the following command: # portmaster -o net-im/mikutter003 net-im/mikutter or # portupgrade -o net-im/mikutter003 net-im/mikutter 20120630: AFFECTS: users of lang/perl* AUTHOR: skv@FreeBSD.org lang/perl5.16 is out. If you want to switch to it from, for example lang/perl5.12, that is: Portupgrade users: 0) Fix pkgdb.db (for safety): pkgdb -Ff 1) Reinstall new version of Perl (5.16): env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.16 -f perl-5.12.\* 2) Reinstall everything that depends on Perl: portupgrade -fr perl Portmaster users: portmaster -o lang/perl5.16 lang/perl5.12 Conservative: portmaster p5- Comprehensive (but perhaps overkill): portmaster -r perl- Note: If the "perl-" glob matches more than one port you will need to specify the name of the Perl directory in /var/db/pkg explicitly. The default version for Perl has also been changed from 5.12 to 5.14. 20120623: AFFECTS: users of sysutils/xfce4-utils AUTHOR: xfce@FreeBSD.org The port has been discontinued, and installs files that conflict with the new versions of misc/xfce4-appfinder and x11-wm/xfce4-session. # pkg_delete -f xfce4-utils-\* # portmaster misc/xfce4-appfinder x11-wm/xfce4-session 20120618: AFFECTS: users of databases/db5 AUTHOR: mandree@FreeBSD.org The databases/db5 port has been upgraded to BerkeleyDB 5.3. This entails a shared library bump. Before upgrading this port, check if your applications use transactional data bases, and if they do, prepare them for a log file format upgrade. YOU MUST DO THIS BEFORE YOU UPGRADE THE DB5 PORT! See: http://docs.oracle.com/cd/E17076_02/html/upgrading/upgrade_process.html All packages that depend on db5 need to be rebuilt due to the shared library version change. The full changelog is at http://download.oracle.com/otndocs/products/berkeleydb/html/changelog_5_3.html To upgrade the packages that need Berkeley DB 5, please issue one of the following commands (depending on your preferred tool): # portmaster -r db5-5 or # portupgrade -fr databases/db5 20120616: AFFECTS: users of www/lighttpd AUTHOR: mm@FreeBSD.org The lighttpd startup script has been changed and is now compatible to the apache startup script. The "reload" subcommand now sends a SIGHUP to the process and triggers cycling of log files. The new command "graceful" performs a graceful restart (similiar to former "reload") and "gracefulstop" performs a graceful stop. The "check" command has been replaced with the "configtest" command. 20120615: AFFECTS: users of databases/akonadi AUTHOR: kde@FreeBSD.org The latest Akonadi update includes critical bug fixes. Manual intervention is required for people using local MySQL database (the default configuration) as backend: $ akonadictl stop Wait a bit, and make sure that akonadiserver and akonadi_control are not running. Kill them if needed. Then, you have two alternatives: $ mysql_install_db --force \ --defaults-file=~/.local/share/akonadi/mysql.conf \ --datadir=~/.local/share/akonadi/db_data \ --basedir=$(dirname `dirname $(which mysql_install_db)`) $ rm ~/.local/share/akonadi/mysql.conf ...or... $ rm -r ~/.local/share/akonadi In the latter case, Akonadi will have to recache your personal data (might take a while). Akonadi is only a cache, no data will be lost. Then: $ akonadictl start 20120613: AFFECTS: users of graphics/djvulibre and graphics/djvulibre-nox11 AUTHOR: bf@FreeBSD.org DjVuLibre been updated to 3.5.25.3. The QT3 GUI that was in graphics/djvulibre has been removed (users of this GUI should consider switching to the new QT4 GUI in graphics/djview4), and graphics/djvulibre-nox11 has been merged back into graphics/djvulibre. To update DjVuLibre, you can use: # pkg_delete djvulibre-\?.\* # portmaster -o graphics/djvulibre djvulibre-nox11 You should then update any installed ports that link to the djvulibre shared library: converters/pdf2djvu, graphics/djview4, graphics/okular, and -- if optional djvulibre support was enabled -- graphics/ImageMagick, graphics/apvlv, and graphics/evince. 20120612: AFFECTS: users of databases/postgresql-libpqxx AUTHOR: avilla@FreeBSD.org postgresql-libpqxx has been updated to 4.0. If you want to stick with version 3, install postgresql-libpqxx30: # portmaster -o databases/postgresql-libpqxx30 postgresql-libpqxx 20120612: AFFECTS: users of graphics/gdal AUTHOR: sunpoet@FreeBSD.org Language bindings (Perl, PHP, Python and Ruby) have been moved to separate ports. Please install them if required. The new ports are: Perl binding: graphics/p5-Geo-GDAL PHP binding: graphics/php-gdal Python binding: graphics/py-gdal Ruby binding: graphics/ruby-gdal 20120605: AFFECTS: users of net/p5-ZConf AUTHOR: vvelox@vvelox.net Please append '.set' to all sets for the FS backend. This was done to prevent collisions between config and set names. Previously the config "someConfig/default" would collide with the set "default" for "someConfig". 20120603: AFFECTS: users of lang/ghc and */hs-* AUTHOR: haskell@FreeBSD.org Note that The Glorious Glasgow Haskell Compiler and the Haskell Platform have been updated to versions 7.4.1 and 2012.2.0.0, respectively. At the same time, all Haskell ports have been updated to their latest working versions. To follow the changes, please issue one of the following commands (depending on the tool used): # portmaster -r ghc or # portupgrade -fr lang/ghc 20120531: AFFECTS: users of graphics/png AUTHOR: dinoex@FreeBSD.org The PNG library has been updated to version 1.5.10. Please rebuild all ports that depend on it. If you use portmaster: portmaster -r png- If you use portupgrade: portupgrade -fr graphics/png 20120531: AFFECTS: users of editors/koffice-kde4 AUTHOR: kde@FreeBSD.org KOffice 2 has been replaced by Calligra. You are encouraged to deinstall any KOffice port and install equivalent Calligra ones: # pkg_delete \*koffice\* # portmaster editors/calligra 20120530: AFFECTS: users of databases/postgresql*-server AUTHOR: jgh@FreeBSD.org Affected users are those who use the crypt(text, text) function with DES encryption in the optional pg_crypto module. Passwords affected are those that contain characters that cannot be represented with 7-bit ASCII. If a password contains a character that has the most significant bit set (0x80), and DES encryption is used, that character and all characters after it will be ignored. 20120530: AFFECTS: users of net/nss-pam-ldapd AUTHOR: scheidell@FreeBSD.org The net/nss-pam-ldapd port no longer provides an option for SASL. This has been sourced out to the new net/nss-pam-ldapd-sasl port, to accomodate users using packages (see ports/162240). Users with openldap-sasl-client installed are encouraged to change the port's origin to: net/nss-pam-ldapd-sasl using their favorite ports management tool. Example for portmaster: portmaster -o net/nss-pam-ldapd-sasl nss-pam-ldapd 20120527: AFFECTS: users of x11-toolkits/qt4-gui AUTHOR: kde@FreeBSD.org Qt started using the raster graphics system engine, which relies on shared memory. Be sure to check pkg-message. 20120525: AFFECTS: users of deskutils/kdepim4, deskutils/kdepim4-runtime AUTHOR: kde@FreeBSD.org kdepim4 has been updated to 4.8.3. For those who prefer old kdepim-4.4.11.1 deskutils/kdepim44* ports have been added. To stay with kdepim-4.4.11.1 run the following commands: # portmaster -o deskutils/kdepim44-runtime kdepim-runtime-4\* # portmaster -o deskutils/kdepim44 kdepim-4\* 20120525: AFFECTS: users of KDE SC 4 AUTHOR: kde@FreeBSD.org KDE SC ports have been updated to 4.8.3. Several ports were split, thus manual intervention into update procedure is required: # pkg_delete -f kde-runtime-\* ruby\*-kdebindings-korundum\* \ kalgebra-4\* kdeaccessibility-4\* kdeutils-4\* kde-baseapps-\* \ plasma-applet-icontasks\* # portmaster -a 20120518: AFFECTS: users of dns/poweradmin AUTHOR: Edmondas Girkantas Some database changes have been made between version 2.1.4 and 2.1.5, upgrading needs to be done manually by running the following SQL: For MySQL users: ALTER TABLE `zones` ADD `zone_templ_id` INT( 11 ) NOT NULL; ALTER TABLE zones ENGINE = InnoDB; ALTER TABLE zone_templ ENGINE = InnoDB; ALTER TABLE zone_templ_records ENGINE = InnoDB; For PostgreSQL users: ALTER TABLE zones ADD zone_templ_id INT DEFAULT NULL; Source: https://www.poweradmin.org/trac/wiki/ReleaseNotes/2.1.5 20120516: AFFECTS: users of lang/php5 AUTHOR: ale@FreeBSD.org PHP has been updated to 5.4. Suhosin patch has been disabled until the new version will be released (soon). Suhosing extension will take more time. LINKTHR option is now enabled by default, be sure to flag it if you are updating using an old saved configuration. sqlite2 extension has been permanently removed. If you want to remain at PHP 5.3, a new port (lang/php53) has been created for such purpose. 20120513: AFFECTS: users of net-mgmt/smokeping AUTHOR: lth@FreeBSD.org Smokeping has been updated to 2.6.7, and the web server configuration has changed. FastCGI is now preferred. Please check the documentation that your web server configuration is OK. 20120512: AFFECTS: users of textproc/p5-XML-SAX AUTHOR: crees@FreeBSD.org p5-XML-SAX (X-S) was split into p5-XML-SAX-Base (X-S-B) and p5-XML-SAX for version 0.99. Since X-S-B now installs some files formerly installed by X-S the package for X-S must be deinstalled before updating X-S. # pkg_delete -fx p5-XML-SAX # portmaster textproc/p5-XML-SAX (users of pkgng can substitute pkg_delete with pkg delete) 20120511: AFFECTS: users of graphics/xpdf AUTHOR: cy@FreeBSD.org In order to allow graphics/xpdf and graphics/poppler-utils to coexist, graphics/xpdf binaries have been moved from ${LOCALBASE}/bin to ${LOCALBASE}/lib/xpdf. The symlink ${LOCALBASE}/bin/xpdf points to ${LOCALBASE}/lib/xpdf/xpdf. However the other utilities installed by the xpdf port conflict with poppler-utils, no symlinks are maintained. Applicaions and scripts which use the pdf* utilities provided by graphics/xpdf must reference them using their new location, specify ${LOCALBASE}/lib/xpdf in $PATH, or use the same utilities provided by graphics/poppler-utils. 20120510: AFFECTS: users of devel/gitolite AUTHOR: milki@rescomp.berkeley.edu gitolite has been split into two ports: devel/gitolite for 3.x and devel/gitolite2 for 2.x gitolite 3.x is NOT "API" compatible with gitolite 2.x and requires additional manual migration steps which can be found in the online documentation. http://sitaramc.github.com/gitolite/install.html#migr Current users wishing to continue using gitolite 2.x should run: # portmaster -o devel/gitolite2 gitolite or # portupgrade -o devel/gitolite2 gitolite 20120508: AFFECTS: users of www/node and www/node-devel AUTHOR: sunpoet@FreeBSD.org npm is a package manager for node. Starting with node 0.6.17 (www/node) and node 0.7.8 (www/node-devel), we do not install bundled npm but provide a separate port (www/npm). Please install www/npm if you need it. 20120430: AFFECTS: users of www/py-google-api-python-client AUTHOR: nivit@FreeBSD.org The port has been updated to 1.0.b8. This new version has important changes which might break your code: * apiclient.anyjson has moved to oauth2client.anyjson. * Some calls, for example, taskqueue().lease() used to require a parameter named body. In this new release only methods that really need to send a body require a body parameter, and so you may get errors about an unknown 'body' parameter in your call. The solution is to remove the unneeded body={} parameter See http://code.google.com/p/google-api-python-client/wiki/PyDoc for more information. 20120426: AFFECTS: users of editors/libreoffice AUTHORS: bapt@FreeBSD.org LOCALIZED_LANG option has gone, localised packages are now available separately, you can also use editors/libreoffice-i18n to pick the localisation you want. 20120425: AFFECTS: users of mail/postfix, mail/postfix2[6-8] AUTHOR: sahil@FreeBSD.org The latest update to these ports adds support to turn off the TLSv1.1 and TLSv1.2 protocols introduced in OpenSSL 1.0.1. These protocols are known to cause inter-operability issues with certain services, e.g. hotmail. If using TLS with Postfix, please consult the RELEASE_NOTES for information about possible workarounds. 20120423: AFFECTS: users of astro/boinc-astropulse AUTHOR: rene@FreeBSD.org Astropulse has been updated to 6.01, which is a different application than version 5.06. You need to have Astropulse v6 enabled in your account under SETI@home preferences. It is also advisable to finish and report existing Astropulse units before updating. 20120421: AFFECTS: users of x11/xorg AUTHOR: x11@FreeBSD.org The default mesa has been updated to 7.6.1 and the default xorg-server to 1.7.7. A switch is available for people that want to use mesa 7.11.x and xorg-server 1.10.6. This requires an nvidia card or Intel+KMS support. If you have an intel card and can try these experimental KMS support patches: 10/head with a patch: http://people.freebsd.org/~kib/drm/ FreeBSD stable/9 and releng/9.0: http://lists.freebsd.org/pipermail/freebsd-x11/2012-April/011640.html 20120419: AFFECTS: users of security/openssl AUTHOR: dinoex@FreeBSD.org The OpenSSL port has been updated to 1.0.1a. Please rebuild all ports that depend on it. If you use portmaster: portmaster -r openssl Or, if you would prefer a more gradual approach: portmaster -w openssl (check the man page for more information) If you use portupgrade: portupgrade -fr security/openssl 20120418: AFFECTS: Nobody AUTHOR: wxs@FreeBSD.org FreeBSD 8.3 released. 20120418: AFFECTS: users of www/firefox and mail/thunderbird AUTHOR: gecko@FreeBSD.org Firefox and Thunderbird have been updated to 11.0. If you want to stay with the Extended Support Release please use the new -esr ports. Firefox: # portupgrade -o www/firefox-esr www/firefox # portupgrade -o www/firefox-esr-i18n www/firefox-i18n (if installed) or # portmaster -o www/firefox-esr www/firefox # portmaster -o www/firefox-esr-i18n www/firefox-i18n (if installed) Thunderbird: # portupgrade -o mail/thunderbird-esr mail/thunderbird # portupgrade -o mail/thunderbird-esr-i18n \ mail/thunderbird-i18n (if installed) or # portmaster -o mail/thunderbird-esr mail/thunderbird # portmaster -o mail/thunderbird-esr-i18n \ mail/thunderbird-i18n (if installed) 20120418: AFFECTS: users of www/chpasswd AUTHOR: madpilot@FreeBSD.org Previous version of the chpasswd port put the configuration file in the pkg-plist, causing it to be removed on deinstall. Users are advised to make a backup copy of the configuration file before upgrading. This has been fixed and will not happen anymore in future updates. 20120415: AFFECTS: users of irc/ircd-ratbox AUTHOR: scheidell@FreeBSD.org Ircd-ratbox has been updated to follow the current stable release branch (3.0.x). All previous branches are no longer supported by the ratbox team. Users of ircd-ratbox are advised to create new ircd configuration files based on the examples provided. 20120404: AFFECTS: users of net-mgmt/net-snmp AUTHOR: zi@FreeBSD.org The net-snmp startup script now specifies a new pid_file to avoid a conflict that existed with bsnmpd. As a result, the startup script cannot find currently running versions of snmpd. You will need to either stop the daemon before upgrading or locate the PID of snmpd and manually kill it after upgrade. Then, start the daemon as you normally would. 20120326: AFFECTS: users of www/tomcat7 AUTHOR: ale@FreeBSD.org Tomcat 7 startup script now uses 'jsvc' to monitor the daemon's process. A few rc.conf variables has been changed, be sure to adapt your configuration, if needed. 20120318: AFFECTS: users of mail/dbmail AUTHOR: rm@FreeBSD.org dbmail 3.0 is now available. There are a number of significant changes including Dependencies, Config, Schema and Server changes. Without required modifications, dbmail will not run and you will no longer have access to your emails. See UPGRADING for details. Don't forget to backup and fully test before upgrading. To stick with version 2.2.x run: # portupgrade -o mail/dbmail22 mail/dbmail or # portmaster -o mail/dbmail22 mail/dbmail 20120313: AFFECTS: users of x11-toolkits/qt4-gui AUTHOR: kde@FreeBSD.org MIT-SHM problem (blank windows in Marble and KDE-Games) has been fixed, kern.ipc.shm_allow_removed=1 is not needed anymore to workaround it. 20120311: AFFECTS: users of lang/perl5.8 and lang/perl5.10 AUTHOR: linimon@FreeBSD.org lang/perl5.8 and lang/perl5.10 have been restored from the Attic in order to give a FreeBSD-style deprecation cycle. However, users are advised to upgrade to perl5.12 as soon as feasible. 20120308: AFFECTS: users of lang/perl5.8 and lang/perl5.10 AUTHOR: pgollucci@FreeBSD.org lang/perl5.8 and lang/perl5.10 have been removed since they've been EOL upstream for 3yrs and 2yrs respectively. The default of lang/perl5.12 has not changed (yet). Conditional checks for perl < 5.12 have been removed. UNLESS you have PERL_VERSION=5.8.x or PERL_VERSION=5.10.x in /etc/make.conf you need take no action. If you do, you will have to recompile all perl dependant ports after updating your ports tree. Please see entry 20110517 for help. 20120225: AFFECTS: users of archivers/libarchive AUTHOR: glewis@FreeBSD.org libarchive has been updated to version 3.0.3, with a shared library bump. This requires dependent ports to be rebuilt. # portmaster -r libarchive or # portupgrade -r archivers/libarchive 20120221: AFFECTS: users of emulators/virtualbox-ose AUTHOR: decke@FreeBSD.org virtualbox-ose has been updated to 4.1.8 and requires the latest devel/kBuild-devel now. It is only a build dependency so it is safe to remove it before updating. # pkg_delete -f kBuild-\* 20120220: AFFECTS: users of graphics/libungif AUTHOR: dinoex@FreeBSD.org libungif is obsolete, please deinstall it and rebuild all ports using it with graphics/giflib. # portmaster -o graphics/giflib graphics/libungif # portmaster -r giflib or # portupgrade -o graphics/giflib graphics/libungif # portupgrade -rf giflib 20120216: AFFECTS: users of multimedia/libvpx AUTHOR: ashish@FreeBSD.org libvpx has been updated to version 1.0.0, with a shared library bump. This requires dependencies to be rebuilt. # portmaster -r libvpx or # portupgrade -r multimedia/libvpx 20120214: AFFECTS: users of net/libexosip2 AUTHOR: jgh@FreeBSD.org libexosip2 has been updated with a shared library bump. This requires dependencies to be rebuilt. # portmaster -r libexosip2 or # portupgrade -rf libexosip2-3.\* 20120214: AFFECTS: users of devel/pcre AUTHOR: dougb@FreeBSD.org Until all dependent ports have been updated you should update pcre in a manner that will preserve its old shared library. For example: # portmaster -w devel/pcre or # portupgrade devel/pcre 20120213: AFFECTS: users of lang/ghc and */hs-* AUTHOR: pgj@FreeBSD.org GHC has been updated to version 7.0.4, and Haskell Platform to version 2011.4.0.0, and other Haskell ports are also updated to their Haskell Platform versions or latest versions. To update all affected ports: # portmaster -r lang/ghc or # portupgrade -r lang/ghc 20120210: AFFECTS: users of mail/postfix AUTHOR: Sahil Tandon Postfix 2.9.0 contains several major changes, some of which could result in incompatible or unexpected behavior. Regardless of the version from which you are upgrading, please carefully review the RELEASE_NOTES before proceeding. 20120126: AFFECTS: users of ftp/proftpd and ftp/proftpd-mysql AUTHOR: Martin Matuska The proftpd port has been updated to 1.3.4 and changed to use dynamically loadable modules. Please add corresponding LoadModule directives to your configuration file, like in the following example: LoadModule mod_tls.c The modules mod_sql_mysql and mod_sql_postgres are now outside of the main proftpd port: databases/proftpd-mod_sql_mysql databases/proftpd-mod_sql_postgres The proftpd-mysql port has been removed, use the alternative port: databases/proftpd-mod_sql_mysql 20120121: AFFECTS: users of multimedia/vdr AUTHOR: Juergen Lock The vdr ports have been updated to 1.7.22 which involves at least two changes: - svdrpsend.pl is now called svdrpsend. - The ttxtsubs channels.conf format has changed so if you use that plugin you need to edit /usr/local/etc/vdr/channels.conf for the channels you want to receive teletext subtitles on - see: /usr/local/share/doc/vdr-plugin-ttxtsubs/HISTORY 20120116: AFFECTS: users of mail/postfix-current AUTHOR: Sahil Tandon From the upstream RELEASE_NOTES: Instead of terminating immediately with a "fatal" message when a database file can't be opened, a Postfix daemon program now logs an "error" message, and continues execution with reduced functionality. Specify "daemon_table_open_error_is_fatal = yes" to get the historical behavior (immediate termination with "fatal" message). Logfile-based alerting systems may need to be updated to look for "error" messages in addition to "fatal" messages. By default the Postfix SMTP server no longer reports transcripts of sessions where a client command is rejected because a table is unavailable. To receive such reports, add the new "data" class to the notify_classes parameter value. The reports will be sent to the error_notice_recipient address as before. This class is also used by the Postfix SMTP client to report about sessions that fail because a table is unavailable. 20120116: AFFECTS: users of x11/xcb-util AUTHOR: garga@FreeBSD.org x11/xcb-util was updated to 0.3.8 and was split in new modules. Dependencies were adjusted but main port symbols were moved to a single library, xcb-util.so. For this reason, all dependent ports must be recompiled.If you use portmaster, run: # portmaster -R -r xcb-util-0 Or for portupgrade: # portupgrade -r xcb-util-0\* 20120112: AFFECTS: Nobody AUTHOR: wxs@FreeBSD.org FreeBSD 9.0 released. 20120109: AFFECTS: users of www/p5-WWW-GitHub-Gist AUTHOR: lbr@FreeBSD.org gist command was moved into new www/p5-App-gist port. 20120109: AFFECTS: ports using Apache Software License 2.0 AUTHOR: tabthorpe@FreeBSD.org The correct acronym for Apache Software License 2.0 is really AL2. 20120109: AFFECTS: users of graphics/inkscape: AUTHOR: bsam@FreeBSD.org Before updating graphics/inkscape to version 0.48.2 one should deinstall the port graphics/libwpg01. 20120108: AFFECTS: users of devel/p5-CPAN-Meta and devel/p5-Version-Requirements AUTHOR: sunpoet@FreeBSD.org Author of Version::Requirements (devel/p5-Version-Requirements) merged its function to CPAN::Meta::Requirements (part of devel/p5-CPAN-Meta). As a result, devel/p5-Version-Requirements is marked DEPRECATED. Please run the following commands to update p5-CPAN-Meta and remove p5-Version-Requirements: # portmaster -o devel/p5-CPAN-Meta devel/p5-Version-Requirements # pkg_delete p5-Version-Requirements-\* 20120104: AFFECTS: users of devel/thrift, py-thrift, php5-thrift, p5-thrift AUTHOR: scheidell@FreeBSD.org Users upgrading thrift from 0.6.1, please take note: library structure and versions have changed, and are not compatible with 0.7.0+ 20111231: AFFECTS: users of lang/newlisp AUTHOR: olgeni@FreeBSD.org In lang/newlisp, the MYSQL5 and MYSQL51 options have been unified into MYSQL, which will pick the correct MySQL version using the standard MySQL selection logic. MySQL users will have to run "make config" and select the MYSQL option. Tinderbox users will have to update their options files with the new MYSQL option, and possibly change their Tinderbox environment to select a specific MySQL version. 20111229: AFFECTS: users of ftp/proftpd{-devel,-mysql} AUTHORS: delphij@FreeBSD.org,mm@FreeBSD.org Due to the nature of the way FreeBSD-SA-11:07.chroot is implemented, users have to update to latest -STABLE, -CURRENT, or supported security branch to use the chroot functionality in these ports. Please see the security advisory for more details. 20111219: AFFECTS: users of lang/perl5.14 AUTHOR: skv@FreeBSD.org lang/perl5.14 has been updated to 5.14.2. You should update everything that depends on perl. The easiest way to do that is to use "perl-after-upgrade" script supplied with lang/perl5.14. Please see its manual page for details. If you want to switch to lang/perl5.14 from lang/perl5.{8,10,12} please follow instructions in the entry 20110517 in this file. 20111205: AFFECTS: users of ruby-gnome ports AUTHOR: swills@FreeBSD.org ruby-gnome has been updated to 1.0.3. Some of them have been removed since they are no longer included upstream. The meta port is now x11/ruby-gnome2. To update run the following command: # portmaster -o x11/ruby-gnome2 x11/ruby-gnome2-all You may also wish to remove the old ports using: # portmaster -s 20111130: AFFECTS: users of dns/nsd AUTHOR: zi@FreeBSD.org The database format of nsd.db has changed as of version 3.2.9. Before you run nsd, you must convert the existing database: # nsdc rebuild 20111123: AFFECTS: users of net-im/kopete or net-im/libjingle AUTHOR: kde@FreeBSD.org kopete and libjingle are now depending on a newer oRTP from linphone-base. To correctly switch to the new port, you need to deinstall ortp prior to the update: # pkg_delete -f ortp-\* 20111123: AFFECTS: users of databases/redis AUTHOR: osa@FreeBSD.org The redis configuration file, redis.conf, have been changed, some options removed in newer versions (>=2.4). In some cases, redis-server with older configuration might does not run at startup. If you run into startup problems, re-edit configuration file. 20111101: AFFECTS: users of x11/kde4-workspace AUTHOR: kde@FreeBSD.org If your KDM fails with the message 'X server "/usr/bin/X" cannot be executed' you need to delete its configuration file and restart it: # rm /usr/local/kde4/share/config/kdm/kdmrc # service kdm4 restart 20111101: AFFECTS: users of graphics/poppler-gtk AUTHOR: Koop Mast Poppler was update to 0.18.0, and the gtk slave port was renamed to match the library it installs. Please run the following command to migrate. # portmaster -o graphics/poppler-glib poppler-gtk-0.16.7 20111031: AFFECTS: users of textproc/py-creole AUTHOR: Stanislav Svirid Some API is changed: replace 'parser_kwargs' and 'emitter_kwargs' with separate arguments. More information on new API: http://code.google.com/p/python-creole/wiki/API 20111025: AFFECTS: users of print/flpsed or www/dillo2 AUTHOR: bf@FreeBSD.org The new versions of flpsed and dillo have switched from x11-toolkits/fltk2 to the new fltk 1.3.0 from x11-toolkits/fltk. Users who have customizations specific to fltk2 may need to consult the fltk 1.3 documents in order to adjust their local settings. For dillo, some commonly-used key bindings have changed, and new configuration options are available: consult dillorc.dist and keysrc.dist for details. 20111019: AFFECTS: users of mail/thunderbird or www/seamonkey with lightning plugin installed. AUTHOR: gecko@FreeBSD.org To get an up to date version of lightning you should use the new LIGHTNING option in mail/thunderbird or www/seamonkey. This option is not enabled by default so you have to run "make config" prior to the build. The old deskutils/lightning-thunderbird and deskutils/lightning ports should no longer be used and will be removed very soon. Like other XPIs ports, lightning now registers itself as a global extension and doesn't create the XPI to be installed manually. Upgrading users should remove lightning from their profile before installing Thunderbird or SeaMonkey the first time with the new LIGHTNING option enabled. 20111018: AFFECTS: users of mail/postfix-current AUTHOR: Sahil Tandon The default smtp_address_preference value is now "any" instead of "ipv6", meaning choose randomly between IPv6 and IPv4. With this the Postfix SMTP client will have more success delivering mail to sites that have problematic IPv6 configurations. 20111016: AFFECTS: users of devel/p5-subversion-freebsd AUTHOR: wxs@FreeBSD.org devel/p5-subversion-freebsd has been removed as it is no longer necessary. If you have it installed please run the following to switch to devel/p5-subversion: portmaster -o devel/p5-subversion p5-subversion-freebsd Please also see the second entry below (20111016) if haven't upgraded subversion yet. 20111016: AFFECTS: users of KDE SC 4 AUTHOR: kde@FreeBSD.org KDE SC has been updated to 4.7.2. A number of files were moved between packages and several ports were split, thus manual intervention into update procedure is required: # pkg_delete -f raptor-1\* kdelibs-4\* kdebase-\*4\* \ kdeaccessibility-4\* kdeedu-4\* kdegames-4\* kdegraphics-4\* \ kdesdk-4\* kdeutils-4\* konq-plugins-4\* ktts\* nepomukcontroller\* \ ruby\*-kdebindings\* kdebindings-smoke\* # pkg_delete -f kdehier4\* # mv /usr/local/kde4/etc/pam.d/* \ /usr/local/etc/pam.d/ # mv /usr/local/kde4/etc/rc.d/* \ /usr/local/etc/rc.d/ # mv /usr/local/kde4/share/dbus-1/services/* \ /usr/local/share/dbus-1/services/ # mv /usr/local/kde4/share/dbus-1/system-services/* \ /usr/local/share/dbus-1/system-services/ # rmdir /usr/local/kde4/etc/pam.d /usr/local/kde4/etc/rc.d \ /usr/local/kde4/share/dbus-1/*services # rm -r /var/tmp/kdecache-* # portmaster misc/kdehier4 If you have - or plan to install - net/kdenetwork4, also run: # portmaster -o net/linphone-base ortp Finally: # portmaster -a Also, remove /usr/local/kde4/etc/rc.d from local_startup in rc.conf(5). Failure to do this will cause all enabled scripts in /usr/local/etc/rc.d to be started twice. Remember to check for missing ports, bearing in mind that x11/kdebase4* ports were replaced by x11/kde4-* ones, ktts was replaced by jovie, while konq-plugins-kde4 and nepomukcontroller were removed. Then: # portmaster --check-depends You're also encouraged to run `pkg_cutleaves` or similar to check for orphaned ports. Please, note that `pkg_add -r kde4` will not install Plasma scriptengines and printer utilities by default anymore, and `pkg_add -r kdegames4` will not install Kajongg. This was made to avoid depending by default on kdebindings. 20111016: AFFECTS: users of devel/subversion, devel/subversion-freebsd, devel/p5-subversion, devel/py-subversion, devel/ruby-subversion and java/subversion-java and all dependand ports. AUTHOR: Lev Serebryakov Subversion was updated to version 1.7.0 and port was reworked. Now there is no "devel/subversion-freebsd" port. All FreeBSD-specific patches are incorporated into main subversion port as options, which are turned ON by default. These options are: P4_STYLE_MARKERS -- change conflict markers to P4 style, established for FreeBSD projects. This is not mandatory for working with FreeBSD sources. ENHANCED_KEYWORD -- Support for custom keywords, like $ FreeBSD $ in sources. This is MANDATORY for working with FreeBSD sources. FREEBSD_TEMPLATE -- Standard FreeBSD commit template. It is RECOMMENDED for working with FreeBSD sources. Also, subversion 1.7.0 changes the working copy format, and a working copy can not be shared between subversion 1.7.0 and 1.6.x. Please, think twice before upgrading. Additional the port "devel/subversion16" was created to support subversion 1.6.x. Subversion 1.7.x and 1.6.x can not be installed simultaneously! Binding ports can be built with Subversion 1.7.0 (Default) or with Subversion 1.6.x. To build bindings with subversion 1.6.x you should set variable WITH_SUBVERSION_VER to "16". There are several ways to upgrade, depending on what you used before and what you want to get after upgrade. (a) You use devel/subversion without FreeBSD patches and, maybe, some bindings. You want fresh'n'new subversion 1.7.0. Please, run: # cd /usr/ports/devel/subversion && make config # portupgrade -r devel/subversion or # portmaster -R -r subversion-1.6 (b) You use devel/subversion-freebsd and, maybe, some bindings. You want fresh'n'new subversion 1.7.0, again with FreeBSD patches. Please, run: # cd /usr/ports/devel/subversion && make config # portupgrade -o devel/subversion devel/subversion-freebsd # portupgrade -r devel/subversion or # portmaster -o devel/subversion devel/subversion-freebsd # portmaster -R -r subversion-1.7 (c) You use devel/subversion without FreeBSD patches and, maybe, some bindings. You want good old subversion 1.6.x, again without again. Please, run: # cd /usr/ports/devel/subversion16 && make config # portupgrade -o devel/subversion16 devel/subversion # portupgrade -m "WITH_SUBVERSION_VER=16" -r devel/subversion16 or # portmaster -o devel/subversion16 devel/subversion # portmaster -m "WITH_SUBVERSION_VER=16" -R -r subversion-1.6 (d) You use devel/subversion-freebsd and, maybe, some bindings. You want good old subversion 1.6.x, with FreeBSD patches. Please, run: # cd /usr/ports/devel/subversion16 && make config # portupgrade -o devel/subversion16 devel/subversion-freebsd # portupgrade -m "WITH_SUBVERSION_VER=16" -r devel/subversion16 or # portmaster -o devel/subversion16 devel/subversion-freebsd # portmaster -m "WITH_SUBVERSION_VER=16" -R -r subversion-1.6 20111005: AFFECTS: users of lang/erlang AUTHOR: Jimmy Olgeni Following the R14B04 upgrade the JAVA, X11, WX and ODBC port options have been set to OFF by default; this will allow to replace lang/erlang-lite with lang/erlang for headless operation in the near future. If you need any of these options, run "make config" in lang/erlang before upgrading, or set your make.conf accordingly. 20111003: AFFECTS: users of math/qhull AUTHOR: Stephen Montgomery-Smith The port math/qhull has been moved to math/qhull5, and math/qhull has been updated to a version that is incompatible with all ports previously using math/qhull. If you are upgrading a port that has math/qhull as a dependency, please delete the port math/qhull first, so that math/qhull5 is properly made as a dependency. 20110929: AFFECTS: users of net/py-zope.proxy, devel/py-zope.testing and devel/py-zope.interface AUTHOR: Ruslan Mahmatkhanov Several Zope ports have been renamed for consistency with their upstream distributions. Please run the following commands to update your local installations: If you use portmaster run: # portmaster -o devel/py-zope.interface devel/py-zopeInterface # portmaster -o net/py-zope.proxy net/py-zopeproxy # portmaster -o devel/py-zope.testing devel/py-zopetesting If you use portupgrade run: # portupgrade -o devel/py-zope.interface devel/py-zopeInterface # portupgrade -o net/py-zope.proxy net/py-zopeproxy # portupgrade -o devel/py-zope.testing devel/py-zopetesting 20110928: AFFECTS: users of 10-current AUTHOR: eadler@FreeBSD.org There are known issues installing ports on FreeBSD 10+ due to bogus assumptions by various build scripts. This will not be fixed until 9-RELEASE is released. There are two workarounds: 1) Set UNAME_r=9.9-CURRENT in your environment 2) Set REVISION="9.9" in ${SRCDIR}/sys/conf/newvers.sh 20110928: AFFECTS: users of www/nginx-devel AUTHOR: osa@FreeBSD.ORG Note: 1.1.4 release introduces several API changes which may affect third-party modules. 20110925: AFFECTS: users of lang/python* AUTHOR: lwhsu@FreeBSD.org The HUGE_STACK_SIZE option has been removed, now Python will use default thread stack size of the system. If you want to change it, specify it with -DTHREAD_STACK_SIZE= in CFLAGS. 20110925: AFFECTS: users of net/openldap* AUTHOR: ume@FreeBSD.org The security/cyrus-sasl2 was updated to 2.1.25. If the SASL option is enabled (disabled by default), net/openldap* must be recompiled after upgrading cyrus-sasl2. 20110921: AFFECTS: users of devel/maven2 and devel/maven3 AUTHOR: hq@FreeBSD.org The devel/maven2 and devel/maven3 now rely on a wrapper port: devel/maven-wrapper. If you plan to upgrade the devel/maven[23] ports, you will have to uninstall all of them before reinstalling them. 20110917: AFFECTS: users of misc/tvbrowser AUTHOR: lme@FreeBSD.org From version 3.0.2 on TV-Browser doesn't include any plugins any longer. You are supposed to download the plugins manually, this also means that you need to download the appropriate channel sources plugin for your country. After installing it your previously configured channels are visible again. To do so, select "Tools -> Install / Update Plugins..." and choose the plugins you need. 20110915: AFFECTS: users of dns/unbound AUTHOR: sem@FreeBSD.org unbound supports GOST from version 1.4.12 but only if dns/ldns was build with GOST support too. There is no way to check the option when unbound builds, so you should make sure the option is on in both unbound and lds. 20110914: AFFECTS: users of www/asterisk-stat AUTHOR: flo@FreeBSD.org asterisk-stat depends on asterisk16 now, you will need to update asterisk and asterisk-addons to 1.6. Instructions on upgrading your configuration files are here: http://svnview.digium.com/svn/asterisk/branches/1.6.2/UPGRADE-1.6.txt If you use portmaster run: # portmaster -o net/asterisk16 net/asterisk14 # portmaster -o net/asterisk16-addons net/asterisk14-addons If you use portupgrade run: # portupgrade -o net/asterisk16 net/asterisk14 # portupgrade -o net/asterisk16-addons net/asterisk14-addons 20110909: AFFECTS: users of net/p5-SOAP-Lite AUTHOR: az@FreeBSD.org SOAP::Transport::TCP is not a part of net/p5-SOAP-Lite distribution since version 0.714. If you need SOAP::Transport::TCP you should install net/p5-SOAP-Transport-TCP manually. 20110901: AFFECTS: users of databases/db51 AUTHOR: mandree@FreeBSD.org The databases/db51 port (Oracle Berkeley DB version 5.1) has been removed. Version 5.2 of the package is available in databases/db5. Users of ports that depend on the removed 5.1 versions are advised to rebuild the affected ports. 20110830: AFFECTS: users of lang/racket AUTHOR: olgeni@FreeBSD.org Racket has been upgraded to version 5.1.3. Due to the recent rewrite of the Racket graphics handling code, it is no longer possible to build this port without X11. The WITHOUT_X11 switch now controls if X11 is brought in as USE_GNOME/LIB_DEPENDS or BUILD_DEPENDS. In the latter case you will be able to build a Racket package that can then be deployed on a headless server. 20110829: AFFECTS: users of security/maia AUTHOR: Janky Jay, III There have been many changes to the maia port, including renaming the rc script and variables from maia to maiad. You will need to replace any instances of maia with maiad in /etc/rc.conf, as well as renaming /var/amavisd to /var/maiad. The 'vscan' user's home directory also needs to be changed to /var/maiad. These can be done by: # mv /var/amavisd /var/maiad # sed -i.bak -e "s/^maia_/maiad_/" /etc/rc.conf # pw usermod vscan -d /var/maiad 20110828: AFFECTS: users of print/cups-{base,client,image} AUTHOR: sahil@FreeBSD.org During the update to 1.4.8, the GNUTLS option was changed from ON to OFF by default. Because old configuration options are saved, users should re-run 'make config' and explicitly deselect the GNUTLS option before upgrading. 20110823: AFFECTS: users of lang/ruby AUTHOR: swills@FreeBSD.org The default ruby version has been reverted from 1.9 to 1.8. If you followed the procedure in the 20110822 entry, you may need to follow these steps: If you use portmaster: # portmaster -o lang/ruby18 lang/ruby19 # portmaster -R -r ruby-1.8 If you use portupgrade: # portupgrade -f lang/ruby19 # portupgrade -f lang/ruby18 # if you have it installed # portupgrade -f ports-mgmt/portupgrade # portupgrade -x ruby-1.9.\* -fr lang/ruby19 If you wish to keep the 1.9 version as default, add the following lines to your /etc/make.conf file: # # Keep ruby 1.9 as default version. # RUBY_DEFAULT_VER=1.9 20110823: AFFECTS: users of devel/libnotify and net/libproxy AUTHOR: gnome@FreeBSD.org libnotify and libproxy are updated with shared library bumps. This requires dependancies to be rebuild. # portmaster -r libnotify-0 # portmaster -r libproxy-0 # portmaster -a or # portupgrade -rf libnotify-0.\* libproxy-0.\* # portupgrade -aR 20110822: AFFECTS: users of lang/ruby AUTHOR: stas@FreeBSD.org The default ruby version has been updated to 1.9. Please rebuild all ports that depends on it. If you use portmaster: # portmaster -o lang/ruby19 lang/ruby18 # portmaster -R -r ruby-1.9 If you use portupgrade: # portupgrade -f lang/ruby18 # portupgrade -f lang/ruby19 # if you have it installed # portupgrade -f ports-mgmt/portupgrade # portupgrade -x ruby-1.8.\* -fr lang/ruby18 After these steps are complete, you can pkg_delete ruby 1.8 if you no longer need it. If you wish to keep the 1.8 version as default, add the following lines to your /etc/make.conf file, and rebuild lang/ruby18 after that. # # Keep ruby 1.8 as default version. # RUBY_DEFAULT_VER=1.8 20110822: AFFECTS: users of graphics/opencv AUTHOR: mm@FreeBSD.org OpenCV python module was moved to own port: graphics/py-opencv 20110820: AFFECTS: users of www/apache* and depending ports AUTHOR: ohauer@FreeBSD.org The default apache version changed from www/apache13 to www/apache22. Users who will continue with apache13 should create the following entry in /etc/make.conf APACHE_PORT= www/apache13 20110818: AFFECTS: users of mail/enigmail-* ports AUTHOR: ale@FreeBSD.org Like other XPIs ports, enigmail now registers itself as a global extension and doesn't create the XPI to be installed manually. Upgrading users should remove enigmail from their profile before installing the new port. 20110815: AFFECTS: users of sysutils/swapexd AUTHOR: crees swapexd used to clobber its config file on deinstall, unfortunately this will not be fixed in installed packages. Back up your config before updating, or you will lose it! # cp /usr/local/etc/swapexd/swapexd.conf ~/swapexd.conf.bak 20110808: AFFECTS: users of net-mgmt/zenoss AUTHOR: pphillips@experts-exchange.com Some functionality of zenoss requires a valid shell. The FreeBSD port until now was installing a user account without a shell. To fix your existing installation, please run the following command as root: # pw usermod zenoss -s /bin/sh -d /usr/local/zenoss 20110808: AFFECTS: users of dns/powerdns AUTHOR: tremere@cainites.net The port has been updated to PowerDNS 3.0, which includes support for DNSSEC. Before upgrading please read the following: http://doc.powerdns.com/upgrades.html#from2.9to3.0 Make sure to read the documentation and wiki on http://powerdnssec.org/ on how to enable DNSSEC mode in the configuration-file and for the necessary database changes. Take note that not all backends support DNSSEC. The ones that do are BIND, SQLite3 and Generic MySQL and PgSQL. 20110808: AFFECTS: users of security/amavisd-new AUTHOR: sahil@FreeBSD.org Along with new features and bug fixes, amavisd-new 2.7.0 introduces some incompatibilities with previous releases. Several variable defaults, SQL schemas, and other changes warrant a careful review of the RELEASE_NOTES. Also note that helper programs amavis.c and amavis-milter.c are no longer distributed with this package; for milter functionality, please shift to the dedicated security/amavisd-milter port. 20110731: AFFECTS: users of lang/guile AUTHOR: jlaffaye@FreeBSD.org guile has been updated to version 1.8.8. Please rebuild all ports that depends on it. If you use portmaster: # portmaster -r guile If you use portupgrade: # portupgrade -fr lang/guile 20110731: AFFECTS: users of www/typo3 AUTHOR: Helmut Schneider www/typo3 has been repocopied to www/typo345. If you need to continue with the old stable version please run # portmaster -o www/typo345 www/typo3 or # portupgrade -o www/typo345 www/typo3 Please remember to change the path of your config files too. 20110730: AFFECTS: users of x11-toolkits/gtk20 AUTHOR: gnome@FreeBSD.org The gtk-update-icon-cache utility has been split out of the gtk20 port. Use the following instructions to update your system. # pkg_delete -f gtk-2.\* # portmaster x11-toolkits/gtk20 # portmaster -a 20110726: AFFECTS: users of devel/msp430-gcc AUTHOR: lev@FreeBSD.org msp430-gcc was updated to lates gcc-4.5.3 version. If you want to use old gcc-3.4.4, run command: # portmaster -o devel/msp430-gcc3 devel/msp430-gcc or # portupgrade -o devel/msp430-gcc3 devel/msp430-gcc before updating devel/msp430-libc port. 20110721: AFFECTS: users of games/megaglest AUTHOR: smoeller@nichthelfer.de If you upgraded from version 3.4.0, your personal settings are stored in ~/.megaglest3.4.0. If you copy glestuser.ini and glestuserkeys.ini to ~/.megaglest, you will have your old settings again. 20110721: AFFECTS: users of security/gpgme AUTHOR: jlaffaye@FreeBSD.org gpgme has been updated to version 1.3.1. Please rebuild all ports that depends on it. If you use portmaster: # portmaster -r gpgme If you use portupgrade: # portupgrade -fr security/gpgme 20110718: AFFECTS: users of hungarian/hunspell AUTHOR: jlaffaye@FreeBSD.org The hunspell port has been moved to textproc/hunspell. To update the installed port run the command # portmaster -o textproc/hunspell hungarian/hunspell or # portupgrade -o textproc/hunspell hungarian/hunspell 20110711: AFFECTS: users of java/openjdk6 AUTHOR: jkim@FreeBSD.org java/openjdk6 has been updated to b23 and "WEB" option (for web browser plug-in and Java Web Start) has been deprecated. If you need the same functionality, rebuild the port with "ICEDTEA" option first, then install a new port java/icedtea-web with "PLUGIN" option (default). Also, if you have a symlink to the previous IcedTeaPlugin.so in ~/.mozilla/plugins, for example, you need to remove it. Note system-wide symlinks are now automatically created by java/icedtea-web for your convenience. 20110711: AFFECTS: users of www/p5-libwww AUTHOR: mandree@FreeBSD.org portmaster cannot process the upgrade of www/p5-libwww from version 5 to version 6. To upgrade p5-libwww, use portupgrade instead, or deinstall p5-libwww before reinstalling: If you use portmaster: # pkg_delete -f 'p5-libwww-5*' ; portmaster www/p5-libwww If you use portupgrade, no special treatment is necessary. 20110711: AFFECTS: users of devel/icu AUTHOR: bapt@FreeBSD.org icu has been updated to version 4.8. Please rebuild all ports that depends on it. If you use portmaster: # portmaster -r icu If you use portupgrade: # portupgrade -fr devel/icu 20110706: AFFECTS: users of multimedia/zoneminder AUTHOR: bsam@FreeBSD.org RC script was renamed from zm to zoneminder. So do variables at /etc/rc.conf[.local]. One should fix the latter file. 20110705: AFFECTS: users of security/libgcrypt and any port that depends on it AUTHOR: swills@FreeBSD.org The libgcrypt port has been updated to 1.5.0 and all shared libraries' versions have been bumped. So you need to rebuild all applications that depend on libgcrypt. Do something like: # portmaster -r libgcrypt or # portupgrade -rf libgcrypt 20110703: AFFECTS: users of print/lyx and print/lyx-devel AUTHOR: makc@FreeBSD.org print/lyx has been updated to 2.0. print/lyx16 has been added to ports tree for those who prefers to stick with the last stable in lyx-1.6.x series. 20110630: AFFECTS: users of math/octave-forge* and benchmarks/octave-forge-benchmark AUTHOR: stephen@FreeBSD.org The octave-forge* port structure has been completely redesigned. This was to make them compatible with portmaster and other port installation tools. Before using the new octave-forge* ports, the old octave-forge* ports must be completely removed with, for example, the command: # pkg_delete "octave-forge*" 20110630: AFFECTS: users of mail/thunderbird AUTHOR: gecko@FreeBSD.org The mail/thunderbird port has been updated to 5.0. If you want to stay with Thunderbird 3.1 please run: # portupgrade -o mail/thunderbird3 mail/thunderbird # portupgrade -o mail/thunderbird3-i18n mail/thunderbird-i18n (if installed) or # portmaster -o mail/thunderbird3 mail/thunderbird # portmaster -o mail/thunderbird3-i18n mail/thunderbird-i18n (if installed) Do not select the OPTIMIZED_CFLAGS option on a system with less then 2 GB of RAM otherwise you will run out of memory during the build. Please make sure all your addons are compatible with Thunderbird 5.0 and backup your ~/.thunderbird directory prior to the first launch of Thunderbird 5.0. 20110630: AFFECTS: users of x11/wbar AUTHOR: nivit@FreeBSD.org x11/wbar has been updated to 2.2.2. Before launching the program, please backup your configuration file (~/.wbar), and then use the command wbar-config to set your preferences and change the path of the old icons (in particular the Bar image). 20110629: AFFECTS: users of graphics/opencv AUTHOR: mm@FreeBSD.org OpenCV was updated to version 2.3.0rc and to avoid circular dependencies split into two ports: graphics/opencv-core and graphics/opencv Before updating please uninstall the graphics/opencv port first because the new dependency graphics/opencv-core contains conflicting files with the old port graphics/opencv. 20110626: AFFECTS: users of mail/p5-Mail-SpamAssassin AUTHOR: wxs@FreeBSD.org mail/p5-Mail-SpamAssassin has been updated to version 3.3.2. Prior to starting spamd you must run sa-update, or spamd will fail to start. 20110624: AFFECTS: users of deskutils/opengoo AUTHOR: acm@FreeBSD.org desktutils/opengoo has been renamed to deskutils/fengoffice, because The OpenGoo name was changed to Feng Office Community Edition. If you want migrate from opengoo to fengoffice, please see upgrading section at: http://fengoffice.com/web/wiki/doku.php/installation 20110623: AFFECTS: users of databases/py-sqlalchemy AUTHOR: nivit@FreeBSD.org The version 0.6 of SQLAlchemy has been moved to databases/py-sqlalchemy06, while the port databases/py-sqlalchemy now holds the series 0.7.X. To update the installed port run the command # portmaster -o databases/py-sqlalchemy06 databases/py-sqlalchemy or # portupgrade -o databases/py-sqlalchemy06 databases/py-sqlalchemy 20110622: AFFECTS: users of lang/perl5.12 AUTHOR: skv@FreeBSD.org lang/perl5.12 has been updated to 5.12.4. You should update everything that depends on perl. The easiest way to do that is to use "perl-after-upgrade" script supplied with lang/perl5.12. Please see its manual page for details. If you want to switch to lang/perl5.12 from lang/perl5.{8,10} please follow instructions in the entry 20100715 in this file. 20110620: AFFECTS: users of net/samba35 AUTHOR: timur@FreeBSD.org A bug, introduced by local patch to pam_winbind.so, that made it coredump was spotted by Martin Minkus. It is fixed in the 3.5.9 version of the port. So, if pam_winbind.so started to work for you - send him kudos. 20110619: AFFECTS: users of irc/ezbounce and irc/ezbounce-devel AUTHOR: flo@FreeBSD.org irc/ezbounce-devel was moved to irc/ezbounce as the version previously in irc/ezbounce has been broken for some time and the distfile is not available anymore. If you are upgrading from a 1.0X version make sure to verify that your config still works. There is basic compatibility for old config files but a lot has changed, see http://linuxftw.com/ezbounce/files/CHANGES If you run irc/ezbounce-devel you need to run one of the following commands: # portmaster -o irc/ezbounce irc/ezbounce-devel or # portupgrade -o irc/ezbounce irc/ezbounce-devel 20110619: AFFECTS: users of lang/perl5.14 AUTHOR: skv@FreeBSD.org lang/perl5.14 has been updated to 5.14.1. You should update everything that depends on perl. The easiest way to do that is to use "perl-after-upgrade" script supplied with lang/perl5.14. Please see its manual page for details. If you want to switch to lang/perl5.14 from lang/perl5.{8,10,12} please follow instructions in the entry 20110517 in this file. 20110618: AFFECTS: users of mail/mailscanner AUTHOR: crees@FreeBSD.org mail/mailscanner no longer requires running of any renew-* targets to update the config files / wrapper scripts; it is now automatically performed as the port is installed -- these targets have been removed. As an added bonus, the binary package now performs these steps as well, in case you don't have a portstree handy. Before upgrading, please backup your PREFIX/etc/MailScanner, PREFIX/share/MailScanner and PREFIX/libexec/MailScanner if you have customised any of these directories, just in case. 20110608: AFFECTS: users of security/amavisd-milter AUTHOR: delphij@FreeBSD.org A change have been made to rc.d script for amavisd-milter makes it to specify -s explicitly. If you used to override the location of listening socket by specifying -s, please migrate to the new way (specify amavisd_milter_socket in /etc/rc.conf). 20110607: AFFECTS: users of devel/p5-Moose and devel/p5-Class-MOP AUTHOR: az@FreeBSD.org p5-Moose has been updated to 2.0007. Now p5-Class-MOP is a part of the p5-Moose distribution. Manual intervention of the update procedure is required: # portmaster -o devel/p5-Moose devel/p5-Class-MOP # portmaster -R -r p5-Moose-\* or do the same things with portupgrade. To check everything went fine you can run: # perl -Moose\ 999 and # perl -MClass::MOP\ 999 in both cases you should see output: version 999 required--this is only version 2.0007 20110606: AFFECTS: users of mail/sympa AUTHOR: crees@FreeBSD.org Sympa previously used to install to ${PREFIX}/sympa, which goes against the general rules for hierarchy. Most files which were previously found in ${PREFIX}/sympa should now be found in ${PREFIX}/libexec/sympa. Any configuration in httpd.conf files etc will need to be updated to the new directory. Before upgrade, it is advisable to back up configuration files ${PREFIX}/etc/sympa.conf and wwsympa.conf since previous versions wipe these out on deinstall. 20110606: AFFECTS: users of databases/mariadb AUTHOR: dougb@FreeBSD.org The mariadb port has been split into -client, -scripts, and -server ports ala mysql. You can now install only the parts that you need. If you have devel/libevent installed along with mariadb you should do something like: pkg_delete mariadb\* portmaster devel/libevent 20110605: AFFECTS: users of security/gnutls and any port that depends on it AUTHOR: novel@FreeBSD.org gnutls has been updated to 2.12.6.1 and all shared libraries' versions have been bumped. So you need to rebuild all applications that depend on gnutls. Do something like: portupgrade -rf gnutls portmaster -r gnutls 20110605: AFFECTS: users of sysutils/zfsnap AUTHOR: Aldis Berjoza There is an issue with zpool v28 (currently only on 9-CURRENT, or 8-STABLE systems that have been manually patched) that affects zfSnap. If you are using v28 make sure to use the -zpool28fix flag with zfsnap to work around the problem. For more information please see: http://wiki.bsdroot.lv/zfsnap#zpool_v28_zfs_destroy_-r_bug 20110602: AFFECTS: users of net/freeradius AUTHOR: Sevan Janiyan Freeradius no longer runs as nobody. It now runs as the freeradius user. Please ensure that the following paths are owned by freeradius: /var/run/radiusd /var/log/radacct /var/log/radius.log 20110529: AFFECTS: users of textproc/*kmfl* AUTHOR: nikola.lecic@anthesphoria.net KMFL keyboard ports are now shared between IBus and SCIM KMFL IMEngines (textproc/ibus-kmfl and textproc/scim-kmfl-imengine). Thus, the prefix 'scim-' is dropped from keyboard ports names. Similar to m17n, both engines now search engine-neutral locations, ${LOCALBASE}/share/kmfl/ and ~/.kmfl/. Users have to move their local keyboard files from ~/.scim/kmfl/ to ~/.kmfl/. 20110523: AFFECTS: users of www/mod_perl2 AUTHOR: ohauer@FreeBSD.org mod_perl2 was updated to version 2.0.5, this version includes p5-Apache-Reload again. The ports p5-Apache-Reload is now marked as conflict for mod_perl2. To update your mod_perl2 with portmaster use the commands # portmaster -o www/mod_perl2 www/p5-Apache-Reload # portmaster -R -r mod_perl2 20110522: AFFECTS: users of emulators/virtualbox-ose AUTHOR: vbox@FreeBSD.org The emulators/virtualbox-ose port has been updated to 4.0.8. If you want to stay with VirtualBox 3.2.x please run: # portmaster -o emulators/virtualbox-ose-kmod-legacy emulators/virtualbox-ose-kmod # portmaster -o emulators/virtualbox-ose-legacy emulators/virtualbox-ose or # portupgrade -o emulators/virtualbox-ose-kmod-legacy emulators/virtualbox-ose-kmod # portupgrade -o emulators/virtualbox-ose-legacy emulators/virtualbox-ose The emulators/virtualbox-ose-legacy port will always include the latest legacy version as a fallback if you hit a serious regression in the latest version. 20110517: AFFECTS: users of lang/perl* AUTHOR: skv@FreeBSD.org lang/perl5.14 is out. If you want to switch to it from, for example lang/perl5.12, that is: Portupgrade users: 0) Fix pkgdb.db (for safety): pkgdb -Ff 1) Reinstall new version of Perl (5.14): env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.14 -f perl-5.12.\* 2) Reinstall everything that depends on Perl: portupgrade -fr perl Portmaster users: portmaster -o lang/perl5.14 lang/perl5.12 Conservative: portmaster p5- Comprehensive (but perhaps overkill): portmaster -r perl- Note: If the "perl-" glob matches more than one port you will need to specify the name of the Perl directory in /var/db/pkg explicitly. 20110516: AFFECTS: users of net/skype, net/skype-devel, net-im/skype, net-im/skype-devel AUTHOR: Ion-Mihai Tetcu All skype ports were moved to net-im/: - skype12: unchanged, very old version (for FreeBSD 6) - skype20: last version with OSS support, that used to live in net/skype; the DISTFILE is gone from the vendor but if you happen to have it, it would be a way of having sound w/o needing to upgrade your base OS - [RECOMMENDED] skype: currently at 2.1.0.81 and the best supported - skype-devel: currently at 2.2.0.25, sounds is OK, video doesn't work To run either skype or skype-devel with fully working sound you need: - to run fc10 (most probably, please report what you can do with fc4): (OVERRIDE_LINUX_BASE_PORT=f10,OVERRIDE_LINUX_NONBASE_PORTS=f10 in /etc/make.conf for systems that doesn't have it as default) - In order for Skype to work OK, you need your kernel and modules to be: - post 2011-05-03 in on HEAD - post 2011-05-08 in on 7,8-STABLE The port tries to catch if your system version is too old, but there's a ~3months window where because of a lack of OSVERSION bump, this is not possible. So please check; and PLEASE READ THE PKGMESSAGE for setup details. For how to update your kernel/world, see: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html IF YOUR OSVERSION IS NOT NEW ENOUGH, SOUND (ESPECIALLY MIC) WON'T WORK. If you run into problems, at very least we need to know the output of: $ uname -a; sysctl compat.linux | head -2; \ grep OVERRIDE_LINUX_ /etc/make.conf; \ cat /compat/linux/etc/alsa/pcm/pcm-oss.conf the skype version you are using and hardware details (eg. webcam, if related) I most probably will ignore any mail not containing this info since without it it's impossible to help. Please test your sound /video setup outside skype before blaming skype / mailing me. 20110516: AFFECTS: users of audio/musicpd AUTHOR: Chris Rees Musicpd now installs the binary for the server as bin/musicpd, rather than mpd, to remove a conflict with net/mpich2; before upgrade you should run: # /usr/local/etc/rc.d/musicpd stop Likewise, mpd.conf has been renamed musicpd.conf-- if you want to keep it as mpd.conf then place MPDCONF="mpd.conf" into /etc/make.conf, otherwise after upgrade run: # mv /usr/local/etc/mpd.conf /usr/local/etc/musicpd.conf 20110514: AFFECTS: users of sysutils/gksu, sysutils/libgksu, sysutils/libgksuui AUTHOR: bsam@FreeBSD.org sysutils/gksu has been updated to 2.0.2. sysutils/libgksuui has been deprecated since it has become a part of sysutils/libgksu. Before upgrading remove sysutils/libgksuui. 20110511: AFFECTS: users of editors/emacs AUTHOR: ashish@FreeBSD.org Due to a bug when upgrading from 23.2 or later versions, everything installed by other ports in "${PREFIX}/share/emacs" gets removed. Before upgrading: * Please backup custom configurations in "${PREFIX}/share/emacs". * After upgrading reinstall any ports that may have had files in the "${PREFIX}/share/emacs" directory. 20110509: AFFECTS: users of lang/ghc and */hs-* AUTHOR: ashish@FreeBSD.org GHC has been updated to version 7.0.3 and other Haskell ports are also updated to their Haskell Platform versions or latest versions. To update all affected ports: # portmaster -r lang/ghc or # portupgrade -r lang/ghc 20110506: AFFECTS: users of lang/perl* AUTHOR: skv@FreeBSD.org Default version of Perl was bumped to 5.12. If you already have lang/perl5.10 or lang/perl5.8 installed, and want to switch to lang/perl5.12 please follow instructions in the entry 20100715 in this file. 20110503: AFFECTS: users of www/codeigniter and www/codeigniter-devel AUTHOR: glarkin@FreeBSD.org www/codeigniter has been renamed to www/codeigniter17 to track the legacy 1.7.* branch of Codeigniter development. www/codeigniter-devel has been renamed to www/codeigniter to track the recommended 2.0.* branch of Codeigniter development. If you have Codeigniter 1.7.x installed and would like to continue using it, please run one of the following commands to update its origin: # portmaster -o www/codeigniter17 www/codeigniter or # portupgrade -o www/codeigniter17 www/codeigniter If you have Codeigniter 2.0.x installed, please run one of the following commands to update its origin: # portmaster -o www/codeigniter www/codeigniter-devel or # portupgrade -o www/codeigniter www/codeigniter-devel 20110427: AFFECTS: users of mail/ezmlm-idx AUTHOR: glarkin@FreeBSD.org 1) Please consult the instructions for upgrading to version 7.1.1 from the earlier 0.444 version in the ports tree: Online: https://github.com/bruceg/ezmlm-idx/blob/master/UPGRADE Local: /usr/local/share/doc/ezmlm-idx/UPGRADE 2) SQLite3 has been added as a supported database plugin. Note that the MySQL, PgSQL and SQLite options are mutually exclusive, and the first selected option takes precedence if multiple options are selected. 20110421: AFFECTS: users of multimedia/webcamd AUTHOR: kwm@FreeBSD.org Webcamd now creates device nodes with 0660 permission and webcamd:webcamd ownership. To get access to the webcamd devices just add yourself to the webcamd group. 20110409: AFFECTS: users of japanese/asterisk-sounds AUTHOR: tota@FreeBSD.org The japanese/asterisk-sounds has been updated to 1.8. If you want to stay with ja-asterisk14-sounds, please run: # portmaster -o japanese/asterisk14-sounds japanese/asterisk-sounds or # portupgrade -o japanese/asterisk14-sounds japanese/asterisk-sounds See also 20101128 net/asterisk entry. 20110406: AFFECTS: users of lang/ocaml and related libraries/applications AUTHOR: stas@FreeBSD.org Ocaml compiler and libraries suite has been updated to 3.12. There appears to be an ABI incompatibility with .cmi files generated by previous compiler versions. Though these should only affect the linking process, if some application you're using start to misbehave after the lang/ocaml updated you're advised to rebuild this applications using the new ocaml version. 20110402: AFFECTS: users of net-mgmt/xymon-client and net-mgmt/xymon-server AUTHOR: dinoex@FreeBSD.org Loginname, path, scripts and config files have been renamed in 4.3.0 Steps to update: 1. Stop and deinstall the old version. 2. Copy the remaining config files to the new location. 3. Read the instructions 4. merge your old config with the upgrade430.sh script 5. fix the hobbit_*_enable lines in /etc/rc.conf # /usr/local/etc/rc.d/hobbit-server stop # /usr/local/etc/rc.d/hobbit-client stop # pkg_delete /var/db/pkg/xymon-* # pkg_add xymon-client-4.3.0.tbz # pkg_add xymon-server-4.3.0.tbz # cp /usr/local/www/hobbit/server/etc/* /usr/local/www/xymon/server/etc/ # less /usr/local/www/xymon/server/www/help/upgrade-to-430.txt # /usr/local/www/xymon/server/bin/bbcmd /usr/local/www/xymon/server/bin/upgrade430.sh # sed -i '' -e 's|hobbit|xymon' /etc/rc.conf # /usr/local/etc/rc.d/xymon-client start # /usr/local/etc/rc.d/xymon-server start 20110328: AFFECTS: users of net/openldap24-client AUTHOR: delphij@FreeBSD.org OpenLDAP has been upgraded to 2.4.25. In this version, certain library routines were moved from liblutil to libldap. If you previously built the library with "FETCH" support, this would cause libldap to depend on FreeBSD's libfetch.so library. As of 20110402, a local change have been introduced so OpenLDAP libraries link against libfetch.so when FETCH is enabled. Normally, no further user interaction would be required. For new installations, the FETCH option have been turned off by default. 20110324: AFFECTS: users of KDE SC 4 AUTHOR: kde@FreeBSD.org KDE SC ports have been updated to 4.6.1. As usual a number of files were moved between packages, manual intervention into update procedure is required: # pkg_delete -f kdehier4\* kdebase-runtime-4\* kdebase-workspace-4\* # pkg_delete -f kdeedu-4\* kdeutils-4\* # portmaster -a 20110322: AFFECTS: users of www/firefox AUTHOR: gecko@FreeBSD.org The www/firefox port has been updated to 4.0. If you want to stay with Firefox 3.6 please run: # portupgrade -o www/firefox36 www/firefox # portupgrade -o www/firefox36-i18n www/firefox-i18n (if installed) or # portmaster -o www/firefox36 www/firefox # portmaster -o www/firefox36-i18n www/firefox-i18n (if installed) Do not select the OPTIMIZED_CFLAGS option on a system with less then 2 GB of RAM otherwise you will run out of memory during the build. Please make sure all your addons are compatible with Firefox 4.0 and backup your ~/.mozilla directory prior to the first launch of Firefox 4.0. The startup script has been renamed from firefox3 to firefox. 20110319: AFFECTS: users of databases/mysql55-client AUTHOR: ale@FreeBSD.org The shared library version of the client library was increased to reflect ABI changes, and avoid compatibility problems with the client library in MySQL 5.1, so client programs that use the 5.5 client library should be recompiled against the 5.5.10 client library. This can be achieved with: # portmaster -r mysql-client-5.5 or # portupgrade -fr mysql-client-5.5 20110318: AFFECTS: users of www/node and www/node-devel AUTHOR: araujo@FreeBSD.org The port www/node was merged with www/node-devel since there is no longer a development version. Also www/node has not followed the stable upstream prior to this update. To keep www/node updated in your applications, from now on you must use www/node instead of www/node-devel. If you have been using the www/node-devel, you must run one of the following commands to upgrade: # portmaster -o www/node www/node-devel or # portupgrade -o www/node www/node-devel 20110317: AFFECTS: users of www/uzbl AUTHOR: Klaus Aehlig The port has been updated to version as of 2011/02/15. This introduces the following incompatabilities. - $UZBL_FIFO, $UZBL_TITLE are available to scripts as environment variables, but not as command-line arguments. - environment variables are no longer expanded by the config parser - download handling has changed - cookie daemons are no longer supported Users are advised to change their personal configuration files/scripts accordingly. 20110316: AFFECTS: users of sysutils/duplicity AUTHOR: peter.schuller@infidyne.com sysutils/duplicity has been upgraded to 0.6.11. The old version (0.5.20) is retained as sysutils/duplicity05. Duplicity 0.6 should be generally compatible, but pay special attention to the new meaning of the --archive-dir command. In particular, the archive dir is now mandatory and defaults to ~/.cache/duplicity. You may have to --exclude accordingly. In addition, it is recommended you consult the CHANGELOG, specifically the "New in v0.6.00 (2009/06/08)" section which details the checkpoint/restore feature (enabled by default) and its implications. 20110313: AFFECTS: users of astro/boinc-setiathome-enhanced AUTHOR: rene@FreeBSD.org The setiathome client has been updated to version 6.12. Before you update, finish and report your current workunits to avoid losing them. 20110304: AFFECTS: users of lang/python* and py-* AUTHOR: miwi@FreeBSD.org The default version of Python has been changed from 2.6.x to 2.7.x. If you have 2.6.x installed, perform an upgrade of lang/python26 to lang/python27 with one of the following commands: If using portupgrade: # portupgrade -o lang/python27 lang/python26 If using portmaster: # portmaster -o lang/python27 lang/python26 If you want to retain 2.6.x as default Python version, set the PYTHON_DEFAULT_VERSION variable to 'python2.6' (without quotes) in /etc/make.conf, then go to lang/python and perform the following command: # portupgrade -R python Once the installed Python has been updated to 2.7, by using the method above, it is required to run the upgrade-site-packages target in lang/python to assure that site-packages are made available to the new Python version. If using portupgrade: # cd /usr/ports/lang/python && make upgrade-site-packages If using portmaster: # cd /usr/ports/lang/python && make upgrade-site-packages -DUSE_PORTMASTER The portmaster case can take quite some time to complete due to the lack of cached information that the portupgrade suite uses (specifically pkg_which). This is not the fault of portmaster. 20110301: AFFECTS: users of databases/jasperserver AUTHOR: jhelfman@experts-exchange.com (taken from release notes of 4.0 from vendor) If you are upgrading from an older JasperServer version such as 3.5 then you must first upgrade to JasperServer 3.7 before upgrading to 4.0. Upgrading directly from JasperServer 3.5 to 4.0 is not a "certified" (i.e. fully QA tested) procedure. The steps to carry out this operation are fully documented in the JasperReports Server Installation Guide for the 3.7 release. You will need to download the JasperServer 3.7 release package to get the relevant files and documentation. To download the JasperServer 3.7 WAR file distribution zip package, go to the JasperForge.org website and to the JasperServer project. http://jasperforge.org/projects/jasperserver 20110228: AFFECTS: users of devel/ccache AUTHOR: Emanuel Haupt ccache now allows the use of non-default compilers such as clang. This requires adjustments of the ccache make glue. Please (re)read the following document after updating ccache to ccache-3.1.4_1: /usr/local/share/doc/ccache/ccache-howto-freebsd.txt 20110227: AFFECTS: users of net/unison and net/unison-devel AUTHOR: mandree@FreeBSD.org Unison has been upgraded to version 2.40, which uses a different wire protocol than 2.32 did. In order to support synchronization with other computers where Unison is still at version 2.32, a new port net/unison232 has been created. It provides unison232 and if that is GTK2-enabled, also unison232-text. This unison232 port can be installed in parallel with the existing net/unison port. 20110224: AFFECTS: users of x11-drivers/xf86-video-ati AUTHOR: miwi@FreeBSD.org Xorg has been updated to 7.5.1. For all ATI users the driver was updated to 6.14.0 but the old one is still available in x11-drivers/xf86-video-ati613. See radeon(5) for options available. 20110224: AFFECTS: users of net/openldap24-{client,server} AUTHOR: delphij@FreeBSD.org OpenLDAP has been upgraded to 2.4.24, which requires a shared library version bump. Therefore, you need to reinstall all ports that depend on it. Please do something like: # portupgrade -fr net/openldap24-client or # portmaster -r net/openldap24-client 20110224: AFFECTS: Nobody AUTHOR: wxs@FreeBSD.org FreeBSD 8.2 and 7.4 released. 20110209: AFFECTS: users of www/testlink AUTHOR: tota@FreeBSD.org Testlink 1.9.1 was released. Before updating, you should read carefully the included README file because this release requires a manual update of the database scheme. 20110125: AFFECTS: users of lang/perl5.12 AUTHOR: skv@FreeBSD.org lang/perl5.12 has been updated to 5.12.3. You should update everything that depends on perl. The easiest way to do that is to use "perl-after-upgrade" script supplied with lang/perl5.12. Please see its manual page for details. If you want to switch to lang/perl5.12 from lang/perl5.{8,10} please follow instructions in the entry 20100715 in this file. 20110124: AFFECTS: users of mail/postfix AUTHOR: sahil@FreeBSD.org Postfix 2.8 introduces minor incompatibilities with previous versions. Alias expansion, dns lookups, TLS support, milters and other features are affected. To avoid surprises, carefully review the RELEASE_NOTES. If you upgrade from Postfix 2.6 or earlier, you must execute "postfix stop" and "postfix start" before you can use the postscreen(8) daemon. This is needed because the Postfix 2.6 "pass" master service type did not work reliably on some systems. If you upgrade from Postfix 2.7, or from Postfix 2.8 before July 25, 2010, you must "postfix reload" (or "postfix stop" followed by "postfix start"). This is needed because the queue manager to delivery agent protocol has changed. Also note that the optional SPF and VDA patches have not been updated for Postfix 2.8; as a result, they are currently disabled. 20110111: AFFECTS: users of www/redmine AUTHOR: decke@FreeBSD.org If you use 3rd party plugins that are incompatible with i18n >= 0.5.0 (eg. variables in yml files as {{variable}}) then you need to install an older i18n version manually. # gem install -v=0.4.2 i18n Then upgrade the database as usual: # rake db:migrate RAILS_ENV=production 20110107: AFFECTS: users of mail/exim AUTHOR: rea@FreeBSD.org [POSSIBLE CONFIG BREAKAGE] The default value for system_filter_user is now the Exim run-time user, instead of root. [POSSIBLE CONFIG BREAKAGE] ALT_CONFIG_ROOT_ONLY is no longer optional and is forced on. This is mitigated by the new build option TRUSTED_CONFIG_LIST which defines a list of configuration files which are trusted; one per line. If a config file is owned by root and matches a pathname in the list, then it may be invoked by the Exim build-time user without Exim relinquishing root privileges. [POSSIBLE CONFIG BREAKAGE] The Exim user is no longer automatically trusted to supply -D overrides on the command-line. Going forward, we recommend using TRUSTED_CONFIG_LIST with shim configs that include the main config. As a transition mechanism, we are temporarily providing a work-around: the new build option WHITELIST_D_MACROS provides a colon-separated list of macro names which may be overriden by the Exim run-time user. The values of these macros are constrained to the regex ^[A-Za-z0-9_/.-]*$ (which explicitly does allow for empty values). Upgrading users are encouraged to fully study ftp://exim.inode.at/exim/ChangeLogs/NewStuff-4.73 and ftp://exim.inode.at/exim/ChangeLogs/ChangeLog-4.73 20110103: AFFECTS: users of textproc/libwpd and graphics/libwpg AUTHOR: fluffy@FreeBSD.org LibWPD and LibWPG is now using new API, partially incompatible with previous versions. For correct upgrade procedure please upgrade LibWPD and LibWPG first as described, than follow usual upgrade procedure # portmaster -o textproc/libwpd08 libwpd # portmaster -o graphics/libwpg01 libwpg substitute 'portupgrade' for 'portmaster' accordingly if that's your your upgrade tool of choice. 20101230: AFFECTS: users of databases/postgresql??-(server|client) AUTHOR: ohauer@FreeBSD.org PostgreSQL version 8.4 is now the default. To upgrade from a version lower than 8.4, follow the instructions on the PostgreSQL.org website. http://www.postgresql.org/docs/8.4/interactive/install-upgrading.html 20101230: AFFECTS: users of net-mgmt/pnp AUTHOR: rea@FreeBSD.org Starting from 0.6.10_1 config.php is no longer preserved across upgrades; PNP way is to put all modifications into config_local.php. Existing config.php will be saved as config.php.orig and you should review your deviations from defaults and place them into config_local.php. 20101227: AFFECTS: users of databases/mysql55-server AUTHOR: ale@FreeBSD.org MySQL 5.5 has been updated to 5.5.8 GA release. Since layout is changed you should remove mysql55-{client/server/scripts} ports before upgrading. The build system is changed too, so expect failures. 20101227: AFFECTS: users of security/opensc AUTHOR: ale@FreeBSD.org opensc has been updated to 0.12.0 release. Only one backend can be choosen at compile-time: PC/SC is now the default one. opensc doesn't export anymore its internal library, PKCS#11 is the recommended interface. 20101220: AFFECTS: users of net-mgmt/flowd AUTHOR: ohauer@FreeBSD.org flowd use now a fix UID/GID (id 542) instead the next free UID. Before updating the port use the command "pw userdel _flowd" 20101216: AFFECTS: users of security/libksba AUTHOR: glarkin@FreeBSD.org libksba has been updated to 1.1.0, and the shared library version has increased from .17 to .18. Directly- and indirectly-dependent ports have had their PORTREVISION bumped to facilitate rebuilding. Please rebuild the dependent ports with your preferred upgrading tool: # portupgrade -rf security/libksba -or- # portmaster -w -r security/libksba If there are still ports on your system that require ksba.so.17 (either in ${LOCALBASE}/lib/compat/pkg, or non-existent), _please_ file a PR so that a correct direct dependency can be added. Once you are satisfied that no ports still depend on the old shared library version (libksba.so.17), you can safely delete it from the ${LOCALBASE}/lib/compat/pkg directory if it is present there. 20101216: AFFECTS: users of databases/akonadi AUTHOR: avilla@FreeBSD.org With SQLite 3 installed, Akonadi used to build its plugin and install it in a wrong place, without it being listed in plist. To remove the orphaned file, run the following commands PRIOR TO the Akonadi upgrade: # cd /usr/ports/databases/akonadi # rm `make -V KDE4_PREFIX`/`make -V QT_PLUGINDIR_REL`/sqldrivers/libqsqlite3.so # rmdir `make -V KDE4_PREFIX`/`make -V QT_PLUGINDIR_REL`/sqldrivers \ `make -V KDE4_PREFIX`/`make -V QT_PLUGINDIR_REL` \ `make -V KDE4_PREFIX`/`make -V QT_LIBDIR_REL` 20101214: AFFECTS: users of devel/icu AUTHOR: bapt@FreeBSD.org icu has been updated to version 4.6. Please rebuild all ports that depends on it. If you use portmaster: # portmaster -r icu If you use portupgrade: # portupgrade -fr devel/icu Note that devel/icu4 is now deprecated consider replacing it by devel/icu # portmaster -o devel/icu devel/icu4 or # env DISABLE_CONFLICTS=1 portupgrade -o devel/icu -f icu-4\* 20101211: AFFECTS: users of devel/bugzilla, japanese/bugzilla and russian/bugzilla-ru AUTHOR: tota@FreeBSD.org Bugzilla and its language packs are installed to WWWDIR (defaults to PREFIX/www/bugzilla). BUGZILLADIR (that defaulted to PREFIX/www/data/bugzilla) is deprecated. 20101211: AFFECTS: users of databases/mysql-proxy AUTHOR: Florian Smeets The parameters --admin-username and --admin-password are mandatory now. Add something like the following to rc.conf mysql_proxy_args="--admin-username admin --admin-password somepassword" 20101210: AFFECTS: users of multimedia/avidemux2 AUTHOR: nox@FreeBSD.org The port has been updated to 2.5.4 which now installs plugins separately and I had to make a slave port for them, multimedia/avidemux2-plugins. So you'll now have to install that port too for the app to become useful. 20101208: AFFECTS: autotools AUTHOR: autotools@FreeBSD.org Another stage in the autotools cleanup that reduces tree churn whilst updating components, a number of ports have now moved to non-versioned locations since there is now only the concept of legacy and current versions. # portmaster -o devel/autoconf devel/autoconf268 # portmaster -o devel/automake devel/automake111 # portmaster -o devel/libtool devel/libtool22 # portmaster -o devel/libltdl devel/libltdl22 substitute 'portupgrade' for 'portmaster' accordingly if that's your your upgrade tool of choice. 20101205: AFFECTS: users of www/py-flexget AUTHOR: lioux@FreeBSD.org Database schema changes. Please run: $ sqlite3 db-config.sqlite "ALTER TABLE thetvdb_favorites ADD series_id VARCHAR;" $ sqlite3 db-config.sqlite "ALTER TABLE imdb_movies ADD updated DateTime;" $ sqlite3 db-config.sqlite "ALTER TABLE imdb_movies ADD mpaa_rating VARCHAR;" inside flexget configuration directory (~/.flexget) for each sqlite database you might have. Replace "db-config.sqlite" with the appropriate name for your sqlite database file. 20101204: AFFECTS: users of audio/libmpcdec AUTHOR: lioux@FreeBSD.org audio/libmpcdec has been removed in favor of audio/musepack; which has a higher shared library version. You will have to rebuild all ports that depend on audio/libmpcdec. Do this: Portmaster users: # portmaster -o audio/musepack audio/libmpcdec # portmaster -r musepack- Portupgrade user: # env DISABLE_CONFLICTS=1 portupgrade -o audio/musepack -f libmpcdec-\* # pkgdb -Ff # portupgrade -rf musepack-\* 20101204: AFFECTS: autotools AUTHOR: autotools@FreeBSD.org The next stage in the ongoing cleanup of autotools-using ports is a refactoring of bsd.autotools.mk so that version numbers are no longer needed within the USE_AUTOTOOLS stanza. There is either autoconf213/autoconf or automake14/automake (for the legacy versions, and the currently available versions). This will considerably reduce the amount of tree-wide patching in future on an update. IMPORTANT: if you have either devel/autoconf-wrapper or devel/automake-wrapper installed on your system (and you most likely do) PLEASE update these ports to their new versions before updating anything else -- Bad Things[tm] are likely to happen otherwise. 20101202: AFFECTS: users of multimedia/gstreamer-plugins AUTHOR: multimedia@FreeBSD.org If during the upgrade of gstreamer-plugins the following error happens: GstAudio-0.10.gir: Incompatible version 1.0 (supported: 1.2) Use the following command to upgrade: cd ports/multimedia/gstreamer-plugins && make deinstall clean install 20101202: AFFECTS: users of www/wordpress AUTHOR: sunpoet@FreeBSD.org WordPress is now installed to WWWDIR (defaults to PREFIX/wordpress) instead of WORDPRESS (defaults to PREFIX/www/data/wordpress). 20101129: AFFECTS: users of sysutils/radmind AUTHOR: ohauer@FreeBSD.org The radmind user and group is created automatically during installation. The owner of $RADMIND_BASE_DIR changes from root to radmind. 20101128: AFFECTS: users of net/asterisk, net/asterisk-addons AUTHOR: Florian Smeets If you want to upgrade to 1.8.0 first remove asterisk-addons by running # pkg_delete -f asterisk-addons\* after that you can run one of the following # portmaster asterisk or # portupgrade asterisk You need to update your config files as the step from 1.4.x to 1.8.x is quite big. First you need to look at what changed between 1.4 and 1.6 http://svnview.digium.com/svn/asterisk/branches/1.8/UPGRADE-1.6.txt After that you also need to take into account what chagne between 1.6 and 1.8 http://svnview.digium.com/svn/asterisk/branches/1.8/UPGRADE.txt If you want to stay with asterisk 1.4.x please run # portmaster -o net/asterisk14 net/asterisk # portmaster -o net/asterisk14-addons net/asterisk-addons or # portupgrade -o net/asterisk14 net/asterisk # portupgrade -o net/asterisk14-addons net/asterisk-addons 20101127: AFFECTS: users of mail/postfix, mail/postfix2[56] AUTHOR: sahil@FreeBSD.org As of Postfix 2.7.2, 2.6.8, 2.5.11: Postfix no longer automatically appends the system default CA (certificate authority) certificates, when it reads the CA certificates specified with {smtp, lmtp, smtpd}_tls_CAfile or with {smtp, lmtp, smtpd}_tls_CApath. This prevents third-party certificates from getting mail relay permission with the permit_tls_all_clientcerts feature. Unfortunately, this change may cause compatibility problems with configurations that rely on certificate verification for other purposes. To get the old behavior, specify "tls_append_default_CA = yes". 20101124: AFFECTS: users of www/py-flexget AUTHOR: lioux@FreeBSD.org metainfo_series is no longer a builtin. This should only affect you if you aren't using one of the series plugins (series, all_series, thetvdb_favorites, or series_premiere.) If you need to enable metainfo_series manually for a feed it can be done like so: metainfo_series: yes 20101120: AFFECTS: users of x11-toolkits/gtk20 and x11-toolkits/gtkmm24 AUTHOR: FreeBSD GNOME Team In the GNOME 2.32 release. gdk-pixbuf2 has been split off from gtk20, and atkmm has been split off from gtkmm24. To upgrade please use the following instructions: Portmaster users: # pkg_delete -f gtkmm-2.20\* gtk-2.20\* # portmaster -a Portupgrade users: # pkgdb -fF # pkg_deinstall -fO gtkmm-2.20\* gtk-2.20\* # portupgrade -aOW 20101118: AFFECTS: users of editors/emacs-devel AUTHOR: Ashish SHUKLA Due to a bug when upgrading from 24.0.50.101606, everything installed by other ports in "${PREFIX}/share/emacs" gets removed. Before upgrading: * Please backup custom configurations in "${PREFIX}/share/emacs". * After upgrading reinstall any ports that may have had files in the "${PREFIX}/share/emacs" directory. Apologies for this inconvenience. 20101117: AFFECTS: users of net-p2p/transmission-cli and net-p2p/transmission-gtk AUTHOR: Mezz Transmission has been updated to 2.12. The following name of binaries and manpages have been renamed: transmissioncli -> transmission-cli transmission -> transmission-gtk 20101117: AFFECTS: users of devel/ccache AUTHOR: Emanuel Haupt Updated instructions on how to workaround a buildworld failure have been committed. Please (re)read the following document after updating ccache to 3.1.1_1: /usr/local/share/doc/ccache/ccache-howto-freebsd.txt 20101110: AFFECTS: users of databases/mysql55-server AUTHOR: Alex Dupre If you are upgrading from a previous MySQL release, the server will exit during startup after finding that the proxies_priv table is missing. To create the table, start the server with the --skip-grant-tables option to cause it to skip the normal grant table checks, then run mysql_upgrade. Then stop the server and restart it normally. You can do this by temporarly setting the following line in rc.conf: mysql_args="--skip-grant-tables --skip-networking" 20101108: AFFECTS: users of databases/py-bsddb3 AUTHOR: wen@FreeBSD.org py-bsddb3 update to 5.1.0. This release drops support for Berkeley DB 4.1, and adds support for Berkeley DB version 5.1, brand new. If you need Berkeley DB 4.1 support, keep using pybsddb 5.0.0. If you want support for Berkeley DB 5.1, remember to install the BDB library before installing these bindings. 20101030: AFFECTS: users of www/xshttpd-devel AUTHOR: johans@FreeBSD.org The default XS-httpd configuration file locations have changed: The main configuration file is now $PREFIX/etc/xshttpd/httpd.conf and other configuration file are stored in that same directory. Existing configurations should be moved over manually. Log files now appear in /var/log/xshttpd/ by default. 20101029: AFFECTS: users of ports-mgmt/portmaster AUTHOR: Doug Barton The changes to bsd.port.mk in 1.652 require all portmaster users to upgrade to version 3.1 or later. The best method to do this will be to use the port, rather than portmaster itself: # pkg_delete -f portmaster\* # cd /usr/ports/ports-mgmt/portmaster && make clean && make install clean 20101026: AFFECTS: users of net/samba35 AUTHOR: Timur Bakeyev This is the latest stable release of the Samba3 distribution. It has been extended with the experimental support of the NFS4-like ACLs on ZFS partitions, thanks to the sysutils/libsunacl library by Edward Tomasz Napierala(trasz). This support haven't been tested thoroughly, so try it on your own risk. This port reverted back to the pre- net/samba34 layout of the directories and now they are again $PREFIX/etc/samba, /var/run/samba, /var/log/samba, /var/db/samba and /var/spool/samba respectively. In case, you are upgrading from net/samba34, please rename corresponding samba34/ subdirectories into samba/ ones. Upgrades from older versions of Samba and fresh installations should be seamless. 20101015: AFFECTS: users of devel/llvm-devel who use clang AUTHOR: Brooks Davis The clang portion of devel/llvm-devel has been split out and now resides in lang/clang-devel. If you have devel/llvm-devel installed in order to use clang, you will need to install the clang-devel port when upgrading. 20101003: AFFECTS: users of www/typo3 AUTHOR: Helmut Schneider www/typo3 has been repocopied to www/typo343. If you need to continue with the old stable version please run # portmaster -o www/typo343 www/typo3 or # portupgrade -o www/typo343 www/typo3 Please remember to change the path of your config files too. 20101003: AFFECTS: users of net-mgmt/kismet AUTHOR: bf@FreeBSD.org This update includes major changes in how Kismet works and is configured. Clients, servers, drones, and configuration files must be updated to work with the new version. Map support has not yet been added. See the kismet README for details. 20100929: AFFECTS: users of sysutils/zfsnap AUTHOR: Aldis Berjoza Since timestamp format changed you need to use -o option with -d option in order to be able to delete old snapshots. Note however that you don't need -o when creating new snapshots, unless you want to keep using the old timestamp format. See http://wiki.bsdroot.lv/zfsnap for more info. 20100927: AFFECTS: users of mail/postfix-current AUTHOR: ohauer@FreeBSD.org Incompatibility with snapshot 20100912 ====================================== - If your DNSBL queries have a "secret" in the domain name, you must now censor this information from the postscreen(8) SMTP replies. - The postscreen "continue" action is now called "ignore". The old name is still supported but no longer documented. - The postscreen_hangup_action parameter was removed. Postscreen now always behaves as if "postscreen_hangup_action = drop". - The postscreen_cache_retention_time default was increased from 1d to 7d, to avoid deleting results from expensive deep SMTP protocol tests too quickly. Incompatibility with snapshot 20100827 ====================================== - The Postfix SMTP client no longer appends the local domain when looking up a DNS name without ".". Specify "smtp_dns_resolver_options = res_defnames" to get the old behavior, which may produce unexpected results. 20100924: AFFECTS: users of x11/nvidia-driver AUTHOR: makc@FreeBSD.org nvidia-driver does not install vdpau library and headers anymore, they are now provided by multimedia/libvdpau port. To avoid conflict, please rebuild nvidia-driver port before upgrading your ports and before installing multimedia/libvdpau. 20100921: AFFECTS: users of p5-Compress-Zlib, p5-IO-Compress-* AUTHOR: mm@FreeBSD.org The p5-Compress-Zlib, p5-IO-Compress-Base, p5-IO-Compress-Zlib and p5-IO-Compress-Bzip2 ports have been replaced by p5-IO-Compress. Users of Perl 5.10 and higher do not need to install this module because it is already included in the standard perl distribution. 20100920: AFFECTS: users of security/stunnel AUTHOR: roam@FreeBSD.org In stunnel-4.34, the DH support is no longer configurable by the user, but always enabled when OpenSSL supports it instead. This means that it will now most probably be enabled on the supported versions of FreeBSD. If this leads to problems with old SSL clients, I will look into making it configurable at build time again. 20100917: AFFECTS: users of sysutils/cdrtools-cjk AUTHOR: marius@FreeBSD.org sysutils/cdrtools-cjk port has been removed, as the required functionality is now available in cdrtools 3.0.0 in the standard sysutils/cdrtools port. 20100915: AFFECTS: autoconf, automake AUTHOR: autotools@FreeBSD.org autoconf has been updated from 2.62 to 2.67 -- all ports depending on autoconf-2.62 have had their PORTREVISIONs update, so a standard port updating method will suffice. USE_GETTEXT has been extended to also accept 'build' and 'run' for ports which need devel/gettext as a BUILD- or RUN-time dependency only. No port should now be directly depending on devel/gettext in Makefiles. 20100915: AFFECTS: users of sysutils/cdrtools-cjk AUTHOR: marius@FreeBSD.org Version 3.00 of sysutils/cdrtools breaks but at the same time also obsoletes sysutils/cdrtools-cjk as mkisofs now employs iconv for character conversion. Consequently sysutils/cdrtools-cjk is marked BROKEN and the use of USE_CDRTOOLS=cjk as well as USE_CDRTOOLS together with the WITH_CJK knob left in a broken state until bsd.port.mk is updated by portmgr@ accordingly. Once USE_CDRTOOLS is updated to no longer refer to sysutils/cdrtools-cjk the latter will be removed. Previous users of sysutils/cdrtools-cjk should switch to using sysutils/cdrtools instead, which might require not using the WITH_CJK knob until said update of bsd.port.mk has happened. 20100915: AFFECTS: users of lang/perl5.12 AUTHOR: skv@FreeBSD.org lang/perl5.12 has been updated to 5.12.2. You should update everything that depends on perl. The easiest way to do that is to use "perl-after-upgrade" script supplied with lang/perl5.12. Please see its manual page for details. If you want to switch to lang/perl5.12 from lang/perl5.{8,10} please follow instructions in the entry 20100715 in this file. 20100912: AFFECTS: ftp/curl AUTHOR: roam@FreeBSD.org With version 7.21.1, the cURL port is built with stricter compiler checking by default (the -Werror flag is passed to the C compiler, making it treat any warnings as fatal errors). If you experience problems building cURL, re-run "make config" in the ftp/curl directory and disable the WERROR knob. 20100912: AFFECTS: www/tdiary-devel, japanese/tdiary-devel AUTHOR: tota@FreeBSD.org The stable tDiary ports, www/tdiary and japanese/tdiary, have been updated to 3.0.0. The development versions of tDiary have been merged from www/tdiary-devel to www/tdiary and from japanese/tdiary-devel to japanese/tdiary, respectively. If you have been using the www/tdiary-devel or japanese/tdiary-devel, you run one of the following commands to upgrade: - www/tdiary-devel # portmaster -o www/tdiary www/tdiary-devel or # portupgrade -o www/tdiary www/tdiary-devel - japanese/tdiary-devel # portmaster -o japanese/tdiary japanese/tdiary-devel or # portupgrade -o japanese/tdiary japanese/tdiary-devel Before upgrading, please read the following for more details: http://www.tdiary.org/20100828.html (written in Japanese) 20100907: AFFECTS: sysutils/pecl-fileinfo AUTHOR: ale@FreeBSD.org If you are using php 5.3 (lang/php5) and fileinfo extension, you should switch to sysutils/php5-fileinfo port: portmaster -o sysutils/php5-fileinfo sysutils/pecl-fileinfo 20100904: AFFECTS: net/netcat AUTHOR: pgollucci@FreeBSD.org Rename nc to netcat to prevent /usr/bin/nc shadowing /usr/local/bin/nc 20100902: AFFECTS: users of KDE4 AUTHOR: kde@FreeBSD.org KDE SC ports has been updated to 4.5.1. A number of files were moved between packages, manual intervention into update procedure is required: # pkg_delete -f kdehier4\* kdelibs-4\* kdebase-4\* kdebase-runtime-4\* kdebase-workspace-4\* # rm -rf /usr/local/kde4/share/PolicyKit/policy # cd /usr/ports/misc/kdehier4 && make install clean # portmaster -a 20100901: AFFECTS: users of www/rubygem-rails AUTHOR: pgollucci@FreeBSD.org Rails has been updated to 3.0.0. As always, make sure you check the changes at http://weblog.rubyonrails.org/. 20100817: AFFECTS: users of www/lighttpd AUTHOR: mm@FreeBSD.org The modules mod_geoip and mod_h264_streaming have been moved into slave ports: www/lighttpd-mod_geoip and www/lighttpd-mod_h264_streaming 20100818: AFFECTS: users of www/lighttpd AUTHOR: mm@FreeBSD.org The default lighttpd configuration file locations have changed. The main configuration file is now: $PREFIX/etc/lighttpd/lighttpd.conf and includes other configuration files from $PREFIX/etc/lighttpd/ For compatibility with old-style configurations, if the lighttpd_conf variable is not set in /etc/rc.conf, $PREFIX/etc/lighttpd.conf takes precedence over $PREFIX/etc/lighttpd/lighttpd.conf 20100815: AFFECTS: users of databases/redis and databases/redis-devel AUTHOR: osa@FreeBSD.org The redis configuration file, redis.conf, have been changed, some options removed in newer versions (>=2.0). In some cases, redis-server with older configuration might does not run at startup. If you run into startup problems, re-edit configuration file. 20100813: AFFECTS: www/opera AUTHOR: dinoex@FreeBSD.org If you run opera without gtk or kde4, the browser might crash on shutdown. In this case go to about:config and change "Dialog Toolkit" from 0 to 4. 20100811: AFFECTS: multimedia/mpeg4ip-libmp4v2 AUTHOR: makc@FreeBSD.org multimedia/mpeg4ip-libmp4v2, which is not maintained upstream, has been replaced with new port, multimedia/mp4v2. The shared library version has been changed with this update, thus all ports that depends on mp4v2 library must be rebuilt: portmaster -o multimedia/mp4v2 multimedia/mpeg4ip-libmp4v2 portmaster -a 20100731: AFFECTS: users of devel/ccache AUTHOR: ehaupt@FreeBSD.org Users upgrading from 2.4 release should clear the old cache directory with: # ccache --clear 20100730: AFFECTS: users of www/neon28 and www/neon29 AUTHOR: mezz@FreeBSD.org Makes neon29 our default neon library in the ports tree. The www/neon28 has been removed and www/neon29's shared library version has been changed. You will have to rebuild all ports that depend on www/neon29. Do this: Portmaster users: portmaster -o www/neon29 www/neon28 portmaster -r neon29- Portupgrade user: env DISABLE_CONFLICTS=1 portupgrade -o www/neon29 -f neon28-\* pkgdb -Ff portupgrade -rf neon29-\* 20100728: AFFECTS: users of textproc/nltk AUTHOR: clsung@FreeBSD.org Nltk has been upgraded to 2.0b8 which depends on devel/py-yaml now. You need to deinstall nltk before upgrading, since the previous port will delete files installed from py-yaml during its deinstall phase. Use, for example: # pkg_delete nltk-2.0b7,1 # portsnap fetch update # cd /usr/ports/textproc/nltk/ # make install clean 20100727: AFFECTS: users of security/libgcrypt AUTHOR: wxs@FreeBSD.org libgcrypt has been upgraded to 1.4.6 which has a shared library version bump. You need to reinstall all ports that depend on it. Use something like this: portupgrade -rf libgcrypt portmaster -r libgcrypt 20100722: AFFECTS: users of net/rabbitmq AUTHOR: Phillip The database schema and the format in which persistent messages are stored have both changed since the last release (1.7.2). When starting, the RabbitMQ server will detect the existence of an old database and will move it to a backup location, before creating a fresh, empty database, and will log a warning. 20100715: AFFECTS: users of lang/perl* AUTHOR: skv@FreeBSD.org lang/perl5.12 is out. If you want to switch to it from, for example lang/perl5.10, that is: Portupgrade users: 0) Fix pkgdb.db (for safety): pkgdb -Ff 1) Reinstall new version of Perl (5.12): env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.12 -f perl-5.10.\* 2) Reinstall everything that depends on Perl: portupgrade -fr perl Portmaster users: portmaster -o lang/perl5.12 lang/perl5.10 Conservative: portmaster p5- Comprehensive (but perhaps overkill): portmaster -r perl- Note: If the "perl-" glob matches more than one port you will need to specify the name of the Perl directory in /var/db/pkg explicitly. 20100626: AFFECTS: users of japanese/ibus-mozc AUTHOR: daichi@FreeBSD.org The japanese/ibus-mozc port has been updated to version 0.11.383.102, and separated into 5 ports to cope with upcoming new port japanese/scim-mozc. o japanese/mozc-server o japanese/mozc-tool o japanese/mozc-additions o japanese/ibus-mozc o devel/py-gyp-devel You can not upgrade with portupgrade or portmaster. To upgrade, you must deinstall japanese/ibus-mozc first and then install the new japanese/ibus-mozc. For example: # pkg_delete ja-ibus-mozc-0.11.365.102_1 # portsnap fetch update # cd /usr/ports/japanese/ibus-mozc/ # make install clean 20100617: AFFECTS: users of security/{dirmngr|gnupg} AUTHOR: dougb@FreeBSD.org The security/libassuan port has been updated to version 2.0.0, and the applications listed above have been updated to use it as of versions 1.1.0 and 2.0.15 respectively. If you HAVE NOT updated your libassuan port as described in the 20100613 entry, you can simply update all 3 ports together (libassuan, dirmngr if installed, and gnupg) using your normal upgrade path. If you HAVE updated to libassuan-1, then you need to do the following before upgrading dirmngr and gnupg. If you use portupgrade: portupgrade -f -o security/libassuan security/libassuan-1 If you use portmaster: portmaster -o security/libassuan libassuan-1 If you use neither: pkg_delete -f libassuan* Please note, libassuan version 2.0.0 is now a shared library, so unlike the previous version it is now a runtime dependency and cannot be deleted after you are done building dirmngr and/or gnupg. 20100613: AFFECTS: users of deskutils/kdepim4, and security/{gpa|opensc} AUTHOR: dougb@FreeBSD.org The security/libassuan port has been updated to version 2.0.0, however, the applications listed above are not yet compatible with it. Therefore security/libassuan-1 has been created until they can be updated, and the ports listed above have been updated to depend on it. You must first replace your existing libassuan with version 1 in the new location, then you can update the ports listed above normally. If you use portupgrade: portupgrade -f -o security/libassuan-1 security/libassuan If you use portmaster: portmaster -o security/libassuan-1 libassuan If you use neither: pkg_delete -f libassuan* 20100609: AFFECTS: users of audio/libogg and audio/libao AUTHOR: naddy@FreeBSD.org There are new versions of libogg (1.2.0) and libao (1.0.0) and the shared library versions have been bumped (ogg.6 to ogg.7, ao.3 to ao.4). All ports that have an identifiable direct dependency on these libraries have had their PORTREVISIONs bumped. However, some ports that pull in the libraries indirectly may continue to look for the old versions. To ensure that all are updated, perform this step: If you use portupgrade: portupgrade -rf libogg libao If you use portmaster: portmaster -r libogg libao 20100605: AFFECTS: users of multimedia/gstreamer-plugins-good and multimedia/gstreamer-plugins-bad AUTHOR: kwm@FreeBSD.org Certain plugins were moved from the -bad port to the -good port. Please follow instructions below before proceeding with normal update steps: If you use portmaster: portmaster gstreamer-plugins-bad If you use portupgrade: portupgrade -R multimedia/gstreamer-plugins-bad 20100602: AFFECTS: users of lang/mono AUTHOR: romain@FreeBSD.org Starting with Mono 2.6, the Moonlight compiler and assemblies are not installed by the lang/mono port anymore. They are however provided by the multimedia/moonlight port. If you are doing some Silverlight development, install multimedia/moonlight after updating lang/mono. 20100530: AFFECTS: users of devel/gettext (i.e.: YOU) AUTHOR: ade@FreeBSD.org Another version of gettext (0.18), and another shared library version bump (from intl.8 to intl.9), so: All ports that have an identifiable known direct dependency on gettext have had their PORTREVISIONs bumped. If after upgrading: # portupgrade -rf gettext # portmaster -w -r gettext The upgrade of devel/gobject-introspection may fail because it is looking for libintl.so.8. In this case, do the following: # cd /usr/ports/devel/gobject-introspection # make clean # make deinstall # make install clean Then continue your upgrade procedure normally. If there are still ports on your system that are looking for libintl.so.8 (either in ${LOCALBASE}/lib/compat/pkg, or non-existent), _please_ file a PR so that a correct direct dependency can be added. Once you are satisfied that no ports still depend on the old versions (such as libgettextpo.so.4 and libintl.so.8) you can safely delete them from the ${LOCALBASE}/lib/compat/pkg directory if they are present there. 20100524: AFFECTS: users of devel/darcs, ports-mgmt/porte, textproc/pandoc, x11/xmobar, x11-wm/xmonad, x11-wm/xmonad-contrib AUTHOR: pgj@FreeBSD.org The following ports have been renamed to improve consistency among Haskell Cabal ports: - devel/darcs -> devel/hs-darcs - ports-mgmt/porte -> ports-mgmt/hs-porte - textproc/pandoc -> textproc/hs-pandoc - x11/xmobar -> x11/hs-xmobar - x11-wm/xmonad -> x11-wm/hs-xmonad - x11-wm/xmonad-contrib -> x11-wm/hs-xmonad-contrib Please follow these steps below to update Haskell ports that you have installed: 1) Reinstall the renamed Haskell port dependencies (see previous entry). Note that this will possibly require that you remove the affected leaf (aforementioned) ports as well; 2) Reinstall the renamed application(s) you use. 20100524: AFFECTS: users of hs-* ports AUTHOR: pgj@FreeBSD.org The following Haskell ports have been renamed in order to bring them in sync with the naming scheme used at HackageDB. Please follow these steps below to update your installation: 1) Delete the following ports (if you have any of them installed): - hs-zip-archive-ghc - hs-binary-ghc - hs-language-c-ghc - hs-lazysmallcheck-c-ghc - hs-pcre-light-ghc - hs-utf8-string-ghc - hs-HGL-ghc - hs-digest-ghc - hs-haxml - hs-highlighting-kate-ghc - hs-polyparse-ghc - hs-x11-ghc - hs-x11-xft-ghc - hs-opengl-ghc - hs-OpenGLRaw-ghc - hs-OpenGLURaw-ghc - hs-glut-ghc 2) Rebuild the renamed ports and all ports that depend on them. 20100518: AFFECTS: users of devel/pylint AUTHOR: mva@FreeBSD.org The pylint user configuration files have been changed slightly in newer versions (>=0.20.0). In some cases, older configurations might crash pylint at startup. If you run into startup problems, make sure you remove the .pylintrc configuration settings and the .pylint.d directory from your home directory: $ rm ~/.pylintrc $ rm -rf ~/.pylint.d 20100518: AFFECTS: users of devel/apr0, devel/apr1, www/apache20, www/apache22 AUTHOR: pgollucci@FreeBSD.org devel/apr port has been renamed to devel/apr1. WITH_APR_FROM_PORTS=yes for www/apache22 has been dissolved and may be removed from your configuration files; devel/apr1 is always used now. Please manually delete apache-2.\* if installed _before_ updating using either portmaster or portupgrade: pkg_delete -f apache-2.\* Then, if you use portmaster: portmaster -o devel/apr1 devel/apr If you use portupgrade: portupgrade -f -o devel/apr1 devel/apr Finally, reinstall Apache port if you deleted it earlier and update ports as usual (`XX' below is either 20 or 22): portinstall www/apacheXX 20100512: AFFECTS: users of www/apache20 AUTHOR: pgollucci@FreeBSD.org The rc.d script has been renamed: apache2.sh -> apache2 You'll need to update any crons wrappers, etc. for the new paths. 20100511: AFFECTS: users of KDE SC 4 AUTHOR: kde@FreeBSD.org KDE SC ports have been updated from 4.3.5 to 4.4.3. A number of libraries was moved between packages. The recommended update procedure is to delete kdelibs-experimental*, kdebase-4*, kdebase-workspace-4*, kdebase-runtime-4*, kdepim-4*, kdepim-runtime-4*, and then update ports as usual and install desired KDE4 ports: # pkg_delete -f kdebase-\*4\* kdepim-\*4\* kdelibs-experimental-\*4\* # portmaster -a (or portupgrade -aR) In order to enabled Nepomuk semantic desktop search you have to install databases/virtuoso (you don't need to manually configure or run virtuoso server). 20100511: AFFECTS: users of textproc/redland RDF engine AUTHOR: kde@FreeBSD.org Redland RDF engine has been split into redland itself and rasqal engine. The recommended update procedure is to delete redland, then update ports as usual and install desired RDF ports: # pkg_delete -f redland-\* # portmaster raptor (or portupgrade -r raptor) 20100511: AFFECTS: users of multimedia/qt4-phonon, multimedia/qt4-phonon-gst, multimedia/phonon, and multimedia/phonon-gstreamer AUTHOR: kde@FreeBSD.org WITH_QT_PHONON global knob has been introduced to allow selection between multimedia/qt4-phonon* ports (a bit outdated Phonon, which is shipped with Qt4) and multimedia/phonon* ports. Since KDE SC 4.4 requires fresh Phonon, multimedia/phonon* ports are installed by default. If you don't use KDE, you may set WITH_QT_PHONON=yes in /etc/make.conf and continue to use Qt4 Phonon implementation ports. If you want to use KDE SC 4.4 (or if you want the latest Phonon), do not define WITH_QT_PHONON, delete multimedia/qt4-phonon* ports, and install multimedia/phonon*: If you use portmaster: portmaster -o multimedia/phonon multimedia/qt4-phonon portmaster -o multimedia/phonon-gstreamer multimedia/qt4-phonon-gst If you use portupgrade: portupgrade -f -o multimedia/phonon multimedia/qt4-phonon portupgrade -f -o multimedia/phonon-gstreamer multimedia/qt4-phonon-gst 20100510: AFFECTS: users of security/gnome-keyring AUTHOR: kwm@FreeBSD.org libgnome-keyring was split out of the gnome-keyring package. Perform the following before doing your normal upgrade steps: pkg_delete -f "gnome-keyring-*" portmaster security/gnome-keyring or pkgdb -Ff portupgrade -R -x gnome-keyring -x libgnome-keyring gnome-keyring pkg_deinstall -fO gnome-keyring portinstall security/gnome-keyring 20100506: AFFECTS: users of mail/nullmailer on FreeBSD 6.X AUTHOR: glarkin@FreeBSD.org The nullmailer port was recently updated with an rc.d script to correctly daemonize nullmailer-send with daemon(8). On FreeBSD 6.X, daemon(8) does not support "[-u user]" command-line switch, causing the nullmailer rc.d script failure to start nullmailer-send. Support for "[-u user]" command-line switch was recently MFC'd to 6-STABLE (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/146266). FreeBSD 6.X users should patch and install daemon(8) by one of the methods described below. If /usr/src is not yet populated, csup the 6-STABLE sources and run these commands: cd /usr/src/usr.sbin/daemon make install /usr/local/etc/rc.d/nullmailer start If /usr/src is already populated with sources from a previous 6.X release, use these commands: cd /usr/src/usr.sbin/daemon fetch 'http://people.freebsd.org/~glarkin/pr-links/daemon/patch-daemon.c' fetch 'http://people.freebsd.org/~glarkin/pr-links/daemon/patch-daemon.8' patch -p0 daemon.c < patch-daemon.c patch -p0 daemon.8 < patch-daemon.8 make install /usr/local/etc/rc.d/nullmailer start 20100502: AFFECTS: users of www/squid* AUTHOR: miwi@FreeBSD.org Starting with squid* the directory containing the default cache and log directory was changed from $PREFIX/squid/ to /var/squid/. The default values for the following Squid configuration parameters have changed as shown below: cache_log from $PREFIX/squid/logs/cache.log to /var/squid/logs/cache.log cache_store_log from $PREFIX/squid/logs/store.log to /var/squid/logs/store.log pid_filename from $PREFIX/squid/logs/squid.pid to /var/squid/logs/squid.pid coredump_dir from $PREFIX/squid/cache to /var/squid/cache Please check whether you need to define any of these variables in your squid.conf to the old defaults explicitly before updating, especially if you have set up automated log processing or automated log rotation. If you define pid_filename in your squid.conf, you should also set squid_pidfile to the same value in /etc/rc.conf, cf. $PREFIX/etc/rc.d/squid. 20100419: AFFECTS: users of math/libgmp4 AUTHOR: ale@FreeBSD.org The default gmp version in FreeBSD is now 5.0.x. The port directory changed from math/libgmp4 to math/gmp. An entry has been added to MOVED and all depending ports revisions have been bumped, so the update should be handled correctly by usual port management tools such as portupgrade. Portmaster users, please do the following before upgrading ports that depend on gmp: portmaster -o math/gmp math/libgmp4 20100409: AFFECTS: users of lang/php5 AUTHOR: ale@FreeBSD.org As of PHP 5.3, a few extensions were removed from or included into the core PHP5 package. Follow the steps below to update your installation. 1) Delete the following packages (if installed): - php5-dbase - php5-ncurses - php5-pcre - php5-spl - php5-ming - php5-mhash 2) Rebuild lang/php5 and all ports that depend on it. 20100403: AFFECTS: users of net/dgd AUTHOR: glewis@FreeBSD.org The kernel library has been separated from the main net/dgd port into its own net/dgd-kernel port so that all libraries are on an equal footing. This also reflects the split of the kernel library out from the main DGD distribution. If you wish to continue to use the kernel library you'll need to install net/dgd-kernel after updating to dgd-1.4.1_2. 20100330: AFFECTS: users of gstreamer-plugins-bad and gstreamer-plugins-good AUTHOR: kwm@FreeBSD.org Plugin moved from the -bad port to the -good port. Please follow the instructions below before proceeding with normal update steps. If you use portmaster: portmaster gstreamer-plugins-bad If you use portupgrade: portupgrade -R multimedia/gstreamer-plugins-bad 20100328: AFFECTS: users of graphics/png AUTHOR: dinoex@FreeBSD.org The PNG library has been updated to version 1.4.1. Please rebuild all ports that depend on it. If you use portmaster: make sure you update to portmaster version 2.20 or newer, then do: portmaster -r png- If you use portupgrade: portupgrade -fr graphics/png 20100221: AFFECTS: users of rblibtorrent-devel AUTHOR: dougb@FreeBSD.org The port name has changed to libtorrent-rasterbar-14. If you use portmaster: portmaster -o net-p2p/libtorrent-rasterbar-14 net-p2p/rblibtorrent-devel If you use portupgrade: portupgrade -o net-p2p/libtorrent-rasterbar-14 net-p2p/rblibtorrent-devel 20100216: AFFECTS: users of sysutils/bacula-server, sysutils/bacula-client AUTHOR: dvl@FreeBSD.org Bacula 5.x uses new shared objects which conflict with the shared objects from previous versions. You should delete all existing Bacula packages from your system before compiling Bacula 5.x, otherwise you'll encounter compilation errors. /usr/local/etc/rc.d/bacula-dir stop /usr/local/etc/rc.d/bacula-sd stop /usr/local/etc/rc.d/bacula-fd stop pkg_delete 'bacula-*' After upgrading, remember to run the database upgrade script supplied with the port. 20100214: AFFECTS: users of japanese/roundcube AUTHOR: nork@FreeBSD.org If you switch mail/roundcube to japanese/roundcube, please re-check configuration files like ${PREFIX}/www/roundcube/config/main.inc.php. At least, please add following settings: $rcmail_config['message_charset_languages'] = array('en_US' => 'ISO-8859-1', ... $rcmail_config['transfer_encoding_languages'] = array('en_US' => 'quoted-printable', ... See also: ${PREFIX}/www/roundcube/config/main.inc.php.dist 20100207: AFFECTS: users of www/firefox AUTHORS: beat@FreeBSD.org, mandree@FreeBSD.org (Java plugin) The www/firefox port has been updated to 3.6. From now on www/firefox will contain the most recent version of Firefox. Older but still supported releases will be available in www/firefox3 and www/firefox35. In order to update to Firefox 3.6 please delete your older installed version of Firefox first and install www/firefox afterwards. Please make sure all your addons are compatible with Firefox 3.6 and backup your ~/.mozilla directory prior to the first launch of Firefox 3.6. Note that in order to use Java with Firefox 3.6, you need to install java/openjdk6, build it with the "WEB" option enabled and use the Iced Tea plugin. To achieve the latter, each user needs to create a symlink to the Icedtea plugin as described in the Browsers/Firefox and Java[tm] Plugin section in the handbook: ln -s /usr/local/openjdk6/jre/lib/IcedTeaPlugin.so \ $HOME/.mozilla/plugins 20100207: AFFECTS: users of Mesa3D libraries and x11-drivers/xf86-video-nouveau AUTHOR: nork@FreeBSD.org If you want to use Mesa3D 7.6.1 and libdrm 2.4.17 rather than 7.4.4 and 2.4.12, you must define WITHOUT_NOUVEAU global macro, at least, enabled on graphics/libGL*, graphics/libglut, graphics/dri, graphics/mesa-demos, and graphics/libdrm. And please give up using x11-drivers/xf86-video-nouveau. At this time, I cannot enable latest Mesa3D and libdrm, because they break xf86-video-nouveau. But old (current?) Mesa3D and libdrm do not break any drivers. AMD Radeon HD 2xxx/3xxx/4xxx users: If you use AMD Radeon HD [234]xxx series, please define WITHOUT_NOUVEAU global macro. You can then use OpenGL Hardware Accelerator feature on these series. 20100206: AFFECTS: users of net/samba4-devel AUTHOR: timur@FreeBSD.org Default configuration file was moved to ${LOCALBASE}/etc/smb4.conf to avoid conflicts with the installed net/samba3?. Also, userland utils are not installed by default, which should also help with the parallel setup of Samba3 and Samba4. 20100205: AFFECTS: users of Qt 3 and KDE 3 AUTHOR: itetcu@FreeBSD.org When building qt33 and kdelibs3 (at least), while they are installed, because of -L/usr/local/lib being passed too soon, the currently installed libraries are used instead of the ones from the build. This makes the build fail if you updated any of the libraries these Qt/KDE libraries are linked against (e.g. libjpeg). For the moment the workaround, when you get to this, is to move the old lib out of the way, e.g.: mv /usr/local/lib/libqt-mt.so /usr/local/lib/libqt-mt.so.old && \ cd /usr/ports/x11-toolkits/qt33/ && make && \ mv /usr/local/lib/libqt-mt.so.old /usr/local/lib/libqt-mt.so && \ portmaster -C x11-toolkits/qt33 (or portupgrade -w qt-33\*) ... 20100205: AFFECTS: users of lang/perl* AUTHOR: skv@FreeBSD.org Default version of Perl was bumped to 5.10. If you already have lang/perl5.8 installed, and want to switch to lang/perl5.10 please follow instructions in the entry 20090328 in this file. 20100205: AFFECTS: users of net/samba34 AUTHOR: timur@FreeBSD.org This port was developed with the generous help of Florent Brodin. The default passdb backend has been changed to `tdbsam'! That breaks existing setups using the `smbpasswd' backend without explicit declaration! Please use `passdb backend = smbpasswd' if you would like to stick to the `smbpasswd' backend or convert your smbpasswd entries using e.g. `pdbedit -i smbpasswd -e tdbsam'. The `tdbsam' backend is much more flexible concerning per user settings like `profile path' or `home directory' and there are some commands which do not work with the `smbpasswd' backend at all. 20100130: AFFECTS: users of audio/sdl_mixer and graphics/sdl_image AUTHOR: mva@FreeBSD.org The SDL_mixer and SDL_image libraries have new shared library versions. Please rebuild all ports that depend on them. If you use portmaster: portmaster -r sdl_mixer- portmaster -r sdl_image- If you use portupgrade: portupgrade -fr audio/sdl_mixer portupgrade -fr graphics/sdl_image 20100125: AFFECTS: users of audio/openal and graphics/openal-soft AUTHOR: mva@FreeBSD.org The default OpenAL implementation was switched to audio/openal-soft. To update all ports correctly, the following steps have to be performed. pkg_delete -f openal-\* If you use portmaster: portmaster -o audio/openal-soft audio/openal portmaster -r audio/openal-soft If you use portupgrade: portupgrade -ro audio/openal audio/openal-soft If you want to stick with audio/openal, please specify the following ports make flag within /etc/make.conf (or an appropriate configuration file for your ports): WANT_OPENAL=si 20100122: AFFECTS: users of sysutils/policykit and sysutils/polkit AUTHOR: gnome@FreeBSD.org Due to a recent change in sysutils/policykit, both sysutils/policykit, and sysutils/polkit need to be rebuilt, but in a certain order. First, upgrade sysutils/policykit to 0.9_6. Then, force rebuild and reinstall of sysutils/polkit. If you do not do this, applications which depend on polkitd will fail. 20100113: AFFECTS: users of emulators/virtualbox AUTHOR: beat@FreeBSD.org Port has been renamed to emulators/virtualbox-ose to reflect that we are using the OSE version. A separate port for the kernel modules has been created: emulators/virtualbox-ose-kmod. Please see http://wiki.freebsd.org/VirtualBox for update instructions. 20100107: AFFECTS: users of security/openvpn* AUTHOR: mandree@FreeBSD.org security/openvpn has been moved to security/openvpn20 and upgraded to 2.0.9. security/openvpn has been upgraded to 2.1.1, and security/openvpn-devel has been removed. Regular upgrades of the security/openvpn port should succeed without manual intervention, but if you want to stick to openvpn 2.0 or if you had been using openvpn-devel, manual intervention is needed, as follows: If you'd been using the security/openvpn-devel port, please use one of these commands for upgrading: portmaster -m-DDISABLE_CONFLICTS -o security/openvpn security/openvpn-devel portupgrade -m-DDISABLE_CONFLICTS -o security/openvpn security/openvpn-devel If you want to stick to openvpn 2.0, please use one of these two upgrade commands: portmaster -m-DDISABLE_CONFLICTS -o security/openvpn20 security/openvpn portupgrade -m-DDISABLE_CONFLICTS -o security/openvpn20 security/openvpn 20100106: AFFECTS: users of devel/websvn AUTHOR: miwi@FreeBSD.org The default install directory for websvn has changed from ${PREFIX}/www/data/websvn to ${PREFIX}/www/websvn. If you are updating from a previous version, to preserve your settings and data, please do the following: mv /usr/local/www/data/websvn /usr/local/www Then update as usual. 20091227: AFFECTS: users of sysutils/grok AUTHOR: Wesley Shields The sysutils/grok port has been completely re-written. Configuration files will need to be reviewed. Also, the RC script has been removed until it can be made to work with the new version. 20091226: AFFECTS: users of net-mgmt/ndoutils AUTHOR: pgollucci@FreeBSD.org When upgrading you'll need to run ./upgradedb; see UPGRADING file. 20091214: AFFECTS: users of net/grdc AUTHOR: avl@FreeBSD.org Grdc has been renamed to Remmina upstream, and the port was also renamed to reflect this. After installing remmina port you will need to download the ``grdc2remmina.sh'' script and run it as your normal user(s) that have ~/.grdc. The script will only create ~/.remmina directory and move grdc config files to the new path; it does not affect anything else. $ fetch http://people.freebsd.org/~avl/script/grdc2remmina.sh $ sh grdc2remmina.sh 20091213: AFFECTS: users of net-mgmt/zabbix, net-mgmt/zabbix-agent AUTHOR: Jim Riggs In order to simplify configuration and better separate the different components of Zabbix, the former zabbix port has been split into three: zabbix-server, zabbix-proxy, and zabbix-frontend. Each component has distinct functionality and may be installed independently on separate systems. The existing zabbix-agent port remains. Additionally, the new zabbix-frontend port now (correctly) installs the PHP frontend in PREFIX/www/zabbix. The old zabbix port installed the files in PREFIX/share/zabbix/php. Web server configurations must be updated accordingly. Finally, Zabbix has been updated to version 1.8. Not everyone may be able to upgrade from version 1.6 immediately, though, so 1.6.8 versions of the ports are also available as zabbix16-server, zabbix16-proxy, zabbix16-agent, and zabbix16-frontend. 20091206: AFFECTS: users of emulators/qemu AUTHOR: nox@FreeBSD.org The port has been updated to 0.11.1, which no longer enables kqemu by default (if built with KQEMU knob on), now you also have to explicitly pass -enable-kqemu (or -kernel-kqemu as with the previous versions) if you want to use it. Also note the 0.11 stable branch is the last qemu branch that still supports kqemu, so if you depend on reasonably fast emulation on FreeBSD you should start looking for alternatives some time soon. (VirtualBox?) 20091120: AFFECTS: users of mail/postfixadmin AUTHOR: Terry Sposato Due to a bug in the previous postfixadmin port, existing users need to backup their config.inc.php before they upgrade to postfixadmin-2.3 or later and put it in place after the upgrade is complete. 20091120: AFFECTS: users of security/f-prot AUTHOR: Tim Bishop The main f-prot command is now named fpscan. Virus definitions are updated using the fpupdate command. fpupdate will automatically run from periodic every day. To disable set the following option in /etc/periodic.conf: fpupdate_enable="NO" The f-prot port now only works on i386. 20091118: AFFECTS: users of java/jboss5 AUTHOR: Jonathan Chen The JBoss directory structure has been reorganised to follow hier(7) guidelines more closely; in particular, transient and deployment files were moved to /var/jboss5, thus allowing /usr to be read-only. 20091118: AFFECTS: users of www/redmine AUTHOR: Bernhard Froehlich After the upgrade you need to generate a session secret before restarting the application. This is to protect you from cross-site request forgery. From your Redmine directory, simply run the following command once: # rake config/initializers/session_store.rb then upgrade as usual: # rake db:migrate RAILS_ENV=production 20091114: AFFECTS: users of emulators/win4bsd AUTHOR: Mario S F Ferreira The new port now depends on emulators/kqemu-kmod instead of installing its own version. Therefore, you should make sure that no other kqemu.ko modules are installed: # pkg_delete -f win4bsd\* # rm -f /boot/kernel/kqemu.ko # pkg_delete -f kqemu-kmod\* # portinstall emulators/win4bsd Do not forget to enable kqemu on rc.conf since win4bsd will not work without it. 20091018: AFFECTS: users of databases/mysql54-server AUTHOR: Alex Dupre After the upgrade the server may fail to start due to changes in the default values of innodb_log_files_in_group and innodb_log_file_size, which differ from those in earlier 5.4 releases. You should discard the old InnoDB log files and let MySQL 5.4.3 create new ones. It is necessary to shut down your current server cleanly so that no outstanding transaction information remains in the log. See here: http://dev.mysql.com/doc/refman/5.4/en/news-5-4-3.html 20091014: AFFECTS: users of mail/heirloom-mailx AUTHOR: Alexander Logvinov Since SourceForge switched to the new File Release System, mail/heirloom-mailx has wrong package name. All users who have mail/heirloom-mailx installed after 22 August 2009 should run the following commands: # pkg_delete "\-mailx-12.4_1" or # rm -r /var/db/pkg/-mailx-12.4_1 # rm -r /var/db/ports/-mailx # cd /usr/ports/mail/heirloom-mailx && make install clean 20090921: AFFECTS: users of archivers/lzmautils, archivers/lzmautils-devel AUTHOR: Christian Weisgerber The XZ Utils distribution has superseded LZMA Utils, so the xz port has been added and the lzmautils ports have been removed. To perform the move, run one of the following commands: If using portupgrade: # portupgrade -o archivers/xz lzmautils\* If using portmaster: # portmaster -o archivers/xz archivers/lzmautils or # portmaster -o archivers/xz archivers/lzmautils-devel as applicable. 20090919: AFFECTS: users of mail/postfix-postfwd AUTHOR: Sahil Tandon The recipient rate-limiting feature is now called via rcpt() command instead of with mrcpt() as in previous versions. Make sure to update your postfwd.conf if you use this feature. 20090917: AFFECTS: users of www/epiphany, x11/yelp, graphics/librsvg2, x11/toolkits/py-gnome-extras, and www/epiphany-extensions AUTHOR: gnome@FreeBSD.org The default Gecko provider has been changed from www/firefox to www/libxul. Firefox 2.x is now marked FORBIDDEN for security reasons, and libxul is new, stable, and preferred Gecko provider. Libxul uses the same Gecko engine as Firefox 3.0.x. Some ports may fail to upgrade or run when both www/firefox and libxul are installed on the same system. To make sure everything runs smoothly, uninstall www/firefox, then install libxul, then upgrade the affected ports. 20090915: AFFECTS: users of sysutils/gosa AUTHOR: Denis Shaposhnikov Please read the following: https://oss.gonicus.de/labs/gosa/wiki/DocumentationInstallingUpdatingGOsa before upgrading this port. And don't forget to check your slapd.conf because gosa scheme files were changed. Should you have any problems during LDAP migration step, try to restart your PHP process. 20090913: AFFECTS: users of www/ikiwiki AUTHOR: Henrik Brix Andersen In order to fix a performance bug, all wikis need to be rebuilt on upgrade to version 3.1415926. 20090912: AFFECTS: users of ports that have set USE_FORTRAN=yes AUTHOR: gerald@FreeBSD.org Ports that are built using the Fortran frontend of GCC (aka gfortran) will now use lang/gcc44 as the default compiler. 20090911: AFFECTS: users of lang/perl5.10 AUTHOR: skv@FreeBSD.org lang/perl5.10 has been updated to 5.10.1. You should update everything that depends on perl. The easiest way to do that is to use "perl-after-upgrade" script supplied with lang/perl5.10. Please see its manual page for details. If you want to switch to lang/perl5.10 from lang/perl5.8 please follow instructions in the entry 20090328 in this file. 20090910: AFFECTS: users of www/rubygem-rails AUTHOR: pgollucci@FreeBSD.org Rails has been updated to 2.3.4. As always, make sure you check the changes at http://weblog.rubyonrails.org/. 20090909: AFFECTS: users of gstreamer-plugins-bad gstreamer-plugins-good AUTHOR: kwm@FreeBSD.org Due to the move of several plugins from gstreamer-plugins-bad to gstreamer-plugins-good, it is necessary to update gstreamer-plugins-bad first: portupgrade -R gstreamer-plugins-bad or, using portmaster: portmaster gstreamer-plugins-bad After this step, the normal upgrade procedure can be used. 20090831: AFFECTS: users of emulators/linux-systemsimcell AUTHOR: stast@bsdportal.ru The port emulators/linux-systemsimcell has been updated to 3.1.25. Systemsimcell emulator now has a new dependency: x11-toolkits/linux-f10-blt. So you need to switch to linux-f10 ports in order to use 3.1.25 version. 20090828: AFFECTS: users of mail/dovecot and mail/dovecot-sieve AUTHOR: yds@CoolRat.org dovecot-sieve has been updated to a new implementation compatible with dovecot 1.2.x. For details of what this means please refer to: http://wiki.dovecot.org/LDA/Sieve/Dovecot#Migration_from_CMUSieve 20090827: AFFECTS: users of www/mediawiki AUTHOR: miwi@FreeBSD.org www/mediawiki version is 1.15.1 now. 1.14.1 version was preserved as www/mediawiki114 port. 20090818: AFFECTS: users of security/gnutls and any port that depends on it AUTHOR: novel@FreeBSD.org GnuTLS has been updated to 2.8.3 and all shared libraries' versions have been bumped. So you need to rebuild all applications that depend on gnutls. Do something like: portupgrade -rf gnutls 20090816: AFFECTS: users of astro/celestia and KDE AUTHOR: danfe@FreeBSD.org Celestia can now be compiled with KDE3 frontend (you can enable it with CELESTIA_UI=kde when building). It is very feature-rich, as it offers contextual menus, toolbars, KDE integration, internationalization, bookmarks, etc. If you use Celestia and KDE as your desktop, you might want to rebuild the port so it integrates into your environment better. 20090815: AFFECTS: users of mail/dovecot AUTHOR: wxs@FreeBSD.org Dovecot has been updated to version 1.2.3. The configuration file has changed significantly. Please see http://wiki.dovecot.org/Upgrading/1.2 for details of what this means. 20090804: AFFECTS: users of multimedia/phonon*, x11/kdebase4*, deskutils/kdepim4 AUTHOR: kde@FreeBSD.org KDE4 has been updated to version 4.3.0. KDE now uses qt4-phonon; multimedia/phonon and multimedia/phonon-gstreamer are deprecated in favor of their qt4 equivalents. You can still use multimedia/phonon-xine however. A number of files have been moved between packages. The recommended update procedure is to delete phonon, phonon-gstreamer, kdebase-*4*, kdepim-4*, then update ports as usual and install desired KDE4 ports: # pkg_delete -f phonon-4\* phonon-gstreamer\* kdebase-\*4\* kdepim-4\* # portmaster -a (or portupgrade -a) # cd ${PORTSDIR}/x11/kde4 && make config && make install clean 20090804: AFFECTS: users of devel/dbus-qt4, devel/qt4-designer AUTHOR: kde@FreeBSD.org Qt4 ports have been updated to 4.5.2. The recommended update procedure is to delete qt4-dbus and qt4-designer, then update ports as usual. Install qt4-designer if needed. 20090802: AFFECTS: users of devel/libtool15 and devel/libltdl15 AUTHOR: mezz@FreeBSD.org The devel/libtool15 and devel/libltdl15 ports have been moved to libtool22 and libltdl22, respectively, then updated to 2.2.6a. You will need to run portmaster or portupgrade to properly perform the upgrade: If using portmaster: portmaster -o devel/libtool22 devel/libtool15 portmaster -o devel/libltdl22 devel/libltdl15 If using portupgrade: portupgrade -o devel/libtool22 libtool-1.5\* portupgrade -o devel/libltdl22 libltdl-1.5\* After that, you will need to rebuild all ports that depend on libltdl. Since all dependent ports' PORTREVISIONs have been bumped, you can run portupgrade or portmaster with `-a' option to complete the upgrade. 20090801: AFFECTS: users of x11-drivers/xf86-video-nouveau AUTHOR: rnoland@FreeBSD.org An updated libdrm and xf86-video-nouveau have been committed. These update the API version to 0.0.14 and if you are using DRM you will need to update your kernel patch. See pkg-message in xf86-video-nouveau for details. 20090730: AFFECTS: users of www/tomcat6 AUTHOR: ale@FreeBSD.org Tomcat has been updated to 6.0.20 release and the installation directory is changed from apache-tomcat6.0 to apache-tomcat-6.0. Backup your configuration files before updating Tomcat, since the previous port will delete them on deinstall. 20090729: AFFECTS: users of sysutils/heartbeat AUTHOR: ports@encarnate.com Heartbeat has been upgraded to the 2.1.4 release. Older configurations based on version 1 should still work. Read more about the new features and possible configuration changes at the following URLs: http://clusterlabs.org/wiki/Documentation (Configuration 0.6 Explained) http://www.linux-ha.org/GettingStartedRevisedV2 20090724: AFFECTS: users of www/rubygem-rails AUTHOR: pgollucci@FreeBSD.org Rails has been updated to 2.3.3. As always, make sure you check the changes at http://weblog.rubyonrails.org/. 20090720: AFFECTS: users of net/openldap24-{client,server} AUTHOR: delphij@FreeBSD.org OpenLDAP has been upgraded to 2.4.17, which requires a shared library version bump. Therefore, you need to reinstall all ports that depend on it. Please do something like: # portupgrade -fr net/openldap24-client or # portmaster -r net/openldap24-client 20090719: AFFECTS: users of graphics/jpeg AUTHOR: dinoex@FreeBSD.org The IJG jpeg library has been updated to version 7.0. Please rebuild all ports that depend on it. If you use portmaster: portmaster -r jpeg- Or, if you would prefer a more gradual approach: portmaster -w jpeg- (Check the man page for more information) If you use portupgrade: portupgrade -fr graphics/jpeg 20090704: AFFECTS: users of www/yaws AUTHOR: olgeni@FreeBSD.org The default configuration file path was changed to ${LOCALBASE}/etc/yaws in version 1.83. Please remember to update your configuration before upgrading. 20090628: AFFECTS: users of www/firefox3-devel AUTHOR: gecko@FreeBSD.org If your Firefox crashes with the following message while viewing a HTML5 page: "Bad system call (core dumped)" you need to load the sem module (kldload sem). To load sem module on every boot, put the following into your /boot/loader.conf: sem_load="YES" 20090624: AFFECTS: users of mail/crm114 AUTHOR: glebius@cell.glebius.int.ru The new version of crm uses a new format for css files. Old files should be rebuilt or started from scratch. If not done, crm114 will lose any mail processed via it. 20090620: AFFECTS: users of gstreamer-plugins-bad, gstreamer-plugins-good, and gstreamer-plugins-ugly ports AUTHOR: kwm@FreeBSD.org Due to the move of several plugins from gstreamer-plugins-bad to gstreamer-plugins-good and gstreamer-plugins-ugly, it is necessary to update gstreamer-plugins-bad first: portupgrade -R gstreamer-plugins-bad or, using portmaster: portmaster gstreamer-plugins-bad 20090619: AFFECTS: users of net-p2p/transmission-daemon AUTHOR: mezz@FreeBSD.org The UID/GID of transmission has been changed from 919 to 921. The data configure has been changed from ${PREFIX}/etc/transmission/home/.config to ${PREFIX}/etc/transmission/home. To update the UID/GID: # pw groupmod transmission -g 921 # pw usermod transmission -u 921 -g 921 20090618: AFFECTS: users of www/p5-Catalyst AUTHOR: pgollucci@FreeBSD.org Most applications and plugins should run unaltered on Catalyst 5.80. However, a lot of refactoring work has taken place, and several changes have been made which could cause incompatibilities. If your application or plugin is using deprecated code, or relying on side effects, then you could have issues upgrading to this release. http://search.cpan.org/~mramberg/Catalyst-Runtime-5.80005/lib/Catalyst/Upgrading.pod 20090617: AFFECTS: users of emulators/virtualbox AUTHOR: beat@FreeBSD.org The GID of virtualbox has changed due to a conflict with databases/couchdb. Update GID of vboxusers after updating the port: # pw groupmod vboxusers -g 920 20090617: AFFECTS: users of math/fftw3 math/fftw3-long math/fftw3-float AUTHOR: db@FreeBSD.org The Fortran option has removed from fftw3 and moved into slave ports, math/fftw3-fortran math/fftw3-long-fortran and math/fftw3-float-fortran. 20090615: AFFECTS: users of x11-wm/enlightenment and x11-wm/enlightenment-devel AUTHOR: gahr@FreeBSD.org The development version of the Enlightenment window manager, a.k.a. E17, was moved from x11-wm/enlightenment-devel to x11-wm/enlightenment. The DR16 branch now resides in x11-wm/e16. 20090615: AFFECTS: users of multimedia/mlt++ AUTHOR: beat@FreeBSD.org The multimedia/mlt++ port was incorporated into multimedia/mlt since version 0.4.2. Delete multimedia/mlt++ first and then install/update multimedia/mlt. 20090613: AFFECTS: users of www/hudson AUTHOR: hq@FreeBSD.org Hudson is now running as a standalone process and no longer relies on Apache Tomcat. As such, it should now be configured by defining hudson_* variables in rc.conf. See comments from rc.d script for further details. The default setup is using the same port numbers and HTTP URL prefix as before in order to reduce the effort of upgrading the port. Hence, it may conflict with some running Apache Tomcat instance. To fix this problem, you may either deinstall www/tomcat6, or use the following settings in hudson_args from /etc/rc.conf: --httpPort=??? --ajp13Port=??? 20090611: AFFECTS: users of www/apache22 AUTHOR: pgollucci@FreeBSD.org Two rc.d scripts have been renamed: apache22.sh -> apache22 htcacheclean.sh -> htcacheclean You'll need to update any crons wrappers, etc. for the new paths. 20090608: AFFECTS: users of lang/python* and py-* AUTHOR: miwi@FreeBSD.org The default version of Python has been changed from 2.5.x to 2.6.x. If you have 2.5.x installed, perform an upgrade of lang/python25 to lang/python26 with one of the following commands: If using portupgrade: # portupgrade -o lang/python26 lang/python25 If using portmaster: # portmaster -o lang/python26 lang/python25 If you want to retain 2.5.x as default Python version, set the PYTHON_DEFAULT_VERSION variable to 'python2.5' (without quotes) in /etc/make.conf, then go to lang/python and perform the following command: # portupgrade -R python Once the installed Python has been updated to 2.6, by using the method above, it is required to run the upgrade-site-packages target in lang/python to assure that site-packages are made available to the new Python version. If using portupgrade: # cd /usr/ports/lang/python && make upgrade-site-packages If using portmaster: # cd /usr/ports/lang/python && make upgrade-site-packages -DUSE_PORTMASTER The portmaster case can take quite some time to complete due to the lack of cached information that the portupgrade suite uses (specifically pkg_which). This is not the fault of portmaster. 20090606: AFFECTS: users of java/eclipse AUTHOR: glewis@FreeBSD.org The update to 3.4.2 changes the location of the metadata for eclipse to be more in line with what is used on other platforms. This means that after the update plugins that have been installed by a user with the built in Update Manager will need to be reinstalled. 20090605: AFFECTS: users of mail/postfix AUTHOR: itetcu@FreeBSD.org Version 2.6.1 introduced a POLA violation by expecting aliases.db to be in /etc/mail/aliases.db (not /etc/aliases.db). With this version the location is reverted to the right place. If you updated your installation to 2.6.1 you need to run newaliases(1) again after you installed 2.6.2. 20090603: AFFECTS: users of japanese/font-mplus-ipa (and old japanese/ipa-ttfonts) AUTHOR: hrs@FreeBSD.org IPAUIGothic has been updated to a version included in IPA font version 002.03 and added as a separated port "japanese/font-ipa-uigothic". And the font-mplus-ipa has been updated to remove the old IPAUIGothic. Thus the old ipa-ttfonts is almost equivalent to font-ipa + font-ipa-uigothic + font-mplus-ipa. Note that these three packages have different licenses from each other. 20090601: AFFECTS: users of devel/cvs-devel AUTHOR: wxs@FreeBSD.org cvs-devel no longer installs /bin/cvs and /bin/cvsbug. These are now installed into ${PREFIX}/bin. If you wish to use these please be aware of this change with respect to your path. 20090531: AFFECTS: users of devel/viewvc AUTHOR: pgollucci@FreeBSD.org viewvc.conf and templates are not compatible to 1.0.x version, even the database scripts have changed. For details see: http://viewvc.tigris.org/source/browse/*checkout*/viewvc/trunk/docs/upgrading-howto.html 20090530: AFFECTS: users of Japanese and Chinese fonts AUTHOR: hrs@FreeBSD.org Ports for Japanese fonts have been reorganized in the following way: japanese/ipa-ttfonts -> japanese/font-mplus-ipa japanese/ipa-ttfonts -> japanese/font-ipa japanese/kochi-ttfonts -> japanese/font-kochi japanese/mplusfonts -> japanese/font-mplus japanese/sazanami-ttf -> japanese/font-sazanami japanese/shinonome -> japanese/font-shinonome japanese/umefont -> japanese/font-ume japanese/vlgothic -> japanese/font-vlgothic While basically these are port name changes for consistency, installation directories are also changed: font files -> ${PREFIX}/share/${PORTNAME}/* symlinks -> ${PREFIX}/share/fonts/{TTF,OTF,fontname,...}/* symlinks -> ${PREFIX}/lib/X11/fonts/{TTF,OTF,misc,fontname,...}/* A user-visible one is that the directory name "TrueType" is replaced with "TTF". Also, japanese/font-std and chinese/font-std have been added as standard fonts used in the Ports Collection. Currently they contain: std.ja_JP/Mincho std.ja_JP/Gothic std.ja_JP/Ryumin-Light std.ja_JP/GothicBBB-Medium std.zh_CN/STHeiti-Regular std.zh_CN/STSong-Light std.zh_CN/MSung-Light std.zh_CN/MHei-Medium under ${PREFIX}/share/fonts/. They are just symlinks to corresponding font files. The symlink names are based on popular PostScript font names. Applications should refer the font files via XLFD or fontconfig first. If they need a direct reference to the font file, please use files in std.*/*. This is because direct reference to a specific font name in an application configuration file makes the maintenance difficult when the font file name is changed, for example. 20090516: AFFECTS: users of devel/viewvc AUTHOR: pgollucci@FreeBSD.org OPTION APACHE2 has been changed to APACHE (WITH_APACHE) WITH_APACHE2 is deprecated and is being removed. APACHE_PORT will be pulled in when WITH_APACHE is selected 20090516: AFFECTS: users of print/cups-base and portupgrade AUTHOR: dinoex@FreeBSD.org The print/cups port has been split into multiple ports. If upgrading from 1.3.10_1 and below, you must remove the installed version first. 20090412: AFFECTS: users of sysutils/bacula-server AUTHOR: wxs@FreeBSD.org sysutils/bacula-server now uses a new catalog format. If upgrading from the old version please use the update_bacula_tables script provided with the port before restarting bacula. 20090410: AFFECTS: users of www/trac-email2trac AUTHOR: brooks@FreeBSD.org bin/email2trac.py and bin/delete_spam.py are now installed without the .py extension to make the suid run_email2trac work and match the online documentation. If you were using them in scripts or alias entries, you will need to update paths accordingly. 20090401: AFFECTS: users of Fedora 8 Linux infrastructure ports AUTHOR: bsam@FreeBSD.org ATTENTION! Those ports are not default for any version of FreeBSD for now and may be used with FreeBSD versions 7.2 and above (8-CURRENT is better) using compat.linux.osrelease=2.6.16 and linux_base-f8. Please, note that 2.6.16 is not fully supported on 7.x (ex., some syscalls are missing and cannot be MFCed due to a native FreeBSD ABI breakage). For more information about transition please read item "20070327: AFFECTS: users of emulators/linux_base-fc6". That note may be used for upgrading to linux_base-f8 and Fedora 8 Linux infrastructure ports as well. If you want to switch to linux-f8 ports, please define at /etc/make.conf: OVERRIDE_LINUX_BASE_PORT=f8 OVERRIDE_LINUX_NONBASE_PORTS=f8 20090328: AFFECTS: users of lang/perl* AUTHOR: skv@FreeBSD.org lang/perl5.10 is out. If you want to switch to it from, for example lang/perl5.8, that is: Portupgrade users: 0) Fix pkgdb.db (for safety): pkgdb -Ff 1) Reinstall new version of Perl (5.10): env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.10 -f perl-5.8.\* 2) Reinstall everything that depends on Perl: portupgrade -fr perl Portmaster users: env DISABLE_CONFLICTS=1 portmaster -o lang/perl5.10 lang/perl5.8 portmaster -r perl- Note: If the "perl-" glob matches more than one port you will need to specify the name of the Perl directory in /var/db/pkg explicitly. 20090327: AFFECTS: users of security/clamav AUTHOR: garga@FreeBSD.org After version 0.95 clamav-milter does not accept parameters by command line. If you are using $clamav_milter_flags on rc.conf to set its parameters you will need to move to new ${PREFIX}/etc/clamav-milter.conf. 20090319: AFFECTS: users of shells/bash3 AUTHOR: ehaupt@FreeBSD.org With the addition of shells/bash version 4.x, people wanting to stick with bash 3.x should perform the following update: $ portupgrade -f -o shells/bash3 bash 20090318: AFFECTS: users of www/suphp AUTHOR: yzlin@cs.nctu.edu.tw The suPHP port has been upgraded to 0.7.x. This new version of suPHP has some new features and changes for the configuration file: - Multiple path (with patterns) & variable substitution support for docroots - Double-quoted strings at section '[handlers]' ex. application/x-httpd-php="php:/usr/local/bin/php-cgi" These changes may lead to internal server error if without modifications of the configuration file from previous version. 20090316: AFFECTS: users of www/geeklog AUTHOR: beat@FreeBSD.org To follow the standards this port has received a small reworking. WWW_DIR (that defaulted to PREFIX/www/data/geeklog) is deprecated, use WWWDIR (defaults to PREFIX/www/geeklog). 20090316: AFFECTS: users of net-im/ejabberd AUTHOR: skylord@linkline.ru ejabberd's UID and GID have changed (PR ports/105122). Users are advised to check all configuration files and data in /var/spool/ejabberd to ensure everything has the correct owner/group. 20090316: AFFECTS: users of sysutils/lire AUTHOR: edwin@FreeBSD.org Lire now requires DBD::SQLite, which uses SQLite 3.0. This means that the Lire database format has changed. If you have one or more old Lire stores, you will need to convert each of them from SQLite2 format to SQLite3 like this: $ sqlite oldstore.db .dump | sqlite3 newstore.db This assumes that you have both SQLite2 and SQLite3 installed on your system, and that the names of the command line interface for the old and new version are `sqlite' and `sqlite3' respectively (this is at least correct for Fedora). 20090310: AFFECTS: users of multimedia/mythtv AUTHOR: glarkin@FreeBSD.org The upgrade from version 0.20 to version 0.21 should be transparent. Any changes to the database structure should be applied automatically. However, it is strongly recommended that you back up your database before installing a new version of MythTV. For example: $ mysqldump -u mythtv -pmythtv mythconverg -c > mythtv_backup.sql To restore (assuming that you've dropped the database): $ mysql -u root mysql>create database mythconverg; mysql>exit $ mysql -u mythtv -pmythtv mythconverg < mythtv_backup.sql 20090309: AFFECTS: users of devel/libusb on CURRENT AUTHOR: stas@FreeBSD.org FreeBSD libusb20 was renamed to libusb in r189585 and thus, being fully compatible with libusb20, replaces devel/libusb on HEAD. devel/libusb should not be used on these systems. Users of libusb-dependent ports are advised to remove libusb package from their systems, and rebuild all libusb dependencies. One of the possible ways to achieve this is listed below: # set tempfile=`mktemp /tmp/usbports.XX` # pkg_info -qR /var/db/pkg/libusb-* > ${tempfile} # pkg_delete -f /var/db/pkg/libusb-* # cat ${tempfile} | xargs portupgrade -f # rm -f ${tempfile} 20090309: AFFECTS: users of multimedia/phonon AUTHOR: kde@FreeBSD.org multimedia/phonon port has been split into phonon itself, phonon-xine, and phonon-gstreamer backends. After updating phonon port you have to install at least one backend; phonon-xine backend is recommended for KDE. 20090308: AFFECTS: users of emulators/qemu AUTHOR: nox@FreeBSD.org The port has been updated to 0.10.0, which now uses the newer (incompatible) kqemu-kmod-devel port that now also works for the 32 bit "qemu" executable on amd64. If you upgrade emulators/qemu with the KQEMU knob on, you have to # pkg_delete kqemu-kmod-1\* the old kqemu version first if it is installed. 20090304: AFFECTS: users of comms/py-gammu AUTHOR: bsam@FreeBSD.org The port comms/py-gammu was incorporated into comms/gammu since 1.23.0. Delete comms/py-gammu first and then deinstall/reinstall comms/gammu with option WITH_PYTHON_GAMMU=YES. 20090304: AFFECTS: users of x11-wm/xfce4 AUTHOR: oliver@FreeBSD.org When upgrading from Xfce 4.4 to 4.6 make sure you uninstall the following ports: x11/libxfce4mcs sysutils/xfce4-mcs-manager sysutils/xfce4-mcs-plugins x11-themes/xfce4-icon-theme You may uninstall them before you start the upgrade procedure (preferred) or even afterwards when the upgrade went fine. Please also note that Xfce 4.6 does not come with an icon theme any more. Xfce 4.6 now depends on the Tango theme which is now installed by default. The default installation of Xfce is also adjusted to use this icon theme instead of the Xfce 4.4 standard Rodent theme. If you are upgrading from Xfce 4.4 to 4.6 you probably still have the Rodent theme selected. This will lead to several "missing" icons when starting up Xfce. Make sure to switch as well to the Tango theme. To do this just open the Settings Manager and select Appearance. Inside the Appearance dialog switch to the Icons tab and select the "Tango" entry in the list on the left side of the Icons tab. For enabling the Reboot/Shutdown functionality of Xfce's logout dialog please read the note which gets printed out after the installation of x11-wm/xfce4 about how to configure PolicyKit. 20090223: AFFECTS: users of Tcl/Tk AUTHOR: mm@FreeBSD.org The default version of Tcl/Tk has been changed from 8.4 to 8.5. To restore old behavior and prefer using Tcl 8.4 with supported ports set WITH_TCL_VER=84 in /etc/make.conf. This has no effect on ports that have USE_TCL=yes or USE_TK=yes. They stick to the new default version and have to be updated by their maintainers to support other versions than default. 20090218: AFFECTS: users of www/zend-framework AUTHOR: glarkin@FreeBSD.org A local file inclusion (LFI) vulnerability was fixed in Zend Framework 1.7.5. The LFI was present in the Zend_View::render() method, and allowed inclusion of scripts with relative path names, e.g. "../../../my/script/dir/myscript.php". If the script path name is hard-coded into the application and is not generated by user input, the vulnerability does not apply. Because of this exception, the Zend Framework team has added a flag to disable the LFI protection in the render() method. Full details of the vulnerability, whether it applies to your application and how to disable the LFI protection in the render() method can be found here: http://framework.zend.com/manual/en/zend.view.migration.html 20090216: AFFECTS: users of net/openldap24-{client,server} AUTHOR: delphij@FreeBSD.org OpenLDAP has been upgraded to 2.4.14, which requires a shared library version bump. Therefore you need to reinstall all ports that depend on it. Please do something like: # portupgrade -fr net/openldap24-client 20090209: AFFECTS: users of multimedia/phonon, x11/kdelibs4, x11/kdebase4*, deskutils/kdepimlib4, deskutils/kdepim4, devel/automoc4 AUTHOR: kde@FreeBSD.org KDE4 has been updated from 4.1.4 to 4.2.0. A number of applications have been moved between packages. The easiest way to avoid various problems during update is to delete all KDE-4.1.4 ports and install KDE-4.2.0: # pkg_delete -f kde\*4.1.4\* automoc4-\* # portmaster -a (or portupgrade -a) # cd ${PORTSDIR}/x11/kde4 && make config && make install clean 20090207: AFFECTS: users of devel/libslang and devel/libslang2 AUTHOR: pgollucci@FreeBSD.org devel/libslang has been removed in favor of devel/libslang2 after not being released during last five years. WITH_SLANG2 is no longer a valid ports KNOB. All ports that depend on devel/libslang should be recompiled, e.g.: # portupgrade -o devel/libslang2 devel/libslang 20090130: AFFECTS: users of www/httptunnel AUTHOR: rafan@FreeBSD.org The startup script has been converted to new rc.d style and split into two scripts: htc (client) and hts (server). Please check the scripts for how to set variables in /etc/rc.conf. 20090127: AFFECTS: users of gstreamer-plugins AUTHOR: kwm@FreeBSD.org The gstapp library moved from the gstreamer-plugins-bad package to gstreamer-plugins. It will be necessary to rebuild the gstreamer-plugins port. After updating your installed ports please do (if you are using portupgrade): # portupgrade -f gstreamer-plugins 20090127: AFFECTS: users of www/xpi-deepestsender AUTHOR: pgollucci@FreeBSD.org www/xpi-deepestsender has been updated to version 0.9.0. This version is *only* for Firefox version 3.x. 20090124: AFFECTS: users of x11-servers/xorg-server, sysutils/hal AUTHOR: rnoland@FreeBSD.org sysutils/hal has been updated and should now properly detect mice for in X.Org. Use of AllowEmptyInput should no longer be needed for most users and moused should now work fine. 20090123: AFFECTS: users of x11-servers/xorg-server AUTHOR: rnoland@FreeBSD.org If you are using an older xorg.conf several config lines are no longer needed and will generate warnings when X is started. RgbPath will cause X to fail to start, remove it from your config. Server 1.5.3 also really wants to configure its input devices via hald. This is causing some issues with moused and /dev/sysmouse. There are couple of options for how to deal with it: 1. Add Option "AllowEmptyInput" "off" to your ServerLayout section. This will cause X to use the configured kbd, mouse, and vmmouse sections from your xorg.conf 2. Don't use moused. If you want it to work with addon USB mice set this in rc.conf: moused_enable="NO" moused_nondefault_enable="NO" I'm working on fixing hald or the mouse driver or both. 20090123: AFFECTS: users of x11/libxcb AUTHOR: flz@FreeBSD.org Libxcb shared library version was bumped from 1 to 2. You need to rebuild any consumer of libxcb.so.1 or some applications will be linked against two versions of libxcb once libX11 is upgraded. For portupgrade users: # portupgrade -rf libxcb 20090121: AFFECTS: users of devel/linux-glib2, emulation/linux_base-f4 AUTHOR: bsam@FreeBSD.org Glib2 now is incorporated to emulation/linux_base-fc4 (it has always been a part of more recent Linux base ports). All users should deinstall devel/linux-glib2 and then deinstall/reinstall emulation/linux_base-f4. 20090119: AFFECTS: users of mail/claws-mail, mail/claws-mail-smime AUTHOR: netchild@FreeBSD.org The claws-mail port includes the S/MIME plugin itself now, it is not distributed as a separate plugin anymore. It can be enabled with the GPGME option in the port (disabled by default). If you use the S/MIME plugin, you should remove the mail/claws-mail-smime port before enabling GPGME and updating the mail/claws-mail port. People which already updated mail/claws-mail with GPGME enabled and a non-working S/MIME plugin need to deinstall mail/claws-mail-smime and reinstall mail/claws-mail. 20090118: AFFECTS: users of net-p2p/deluge AUTHOR: mezz@FreeBSD.org The Deluge has been updated from 0.5.x to 1.x. The 1.x has been rewritten, so it is recommend for you to make the back up of your ~/.config/deluge. The configuration and plugins of 0.5.x do not work in 1.x. Deluge will picking up the old configuration and try to convert it to the newer format, but I wouldn't trust it to do it without the back up. If you prefer to stick with 0.5.x, you can use portmaster: # portmaster -o net-p2p/deluge05 net-p2p/deluge or if you use portupgrade: # portupgrade -o net-p2p/deluge05 net-p2p/deluge 20090118: AFFECTS: users of www/ikiwiki AUTHOR: brix@FreeBSD.org IkiWiki has been upgraded from 2.x to 3.x. Instructions for migrating existing IkiWiki configurations to 3.x format can be found at http://ikiwiki.info/tips/upgrade_to_3.0/. 20090118: AFFECTS: users of devel/apr-svn devel/apr AUTHOR: pgollucci@FreeBSD.org devel/apr-svn has been removed and devel/apr now handles its role. devel/apr now defaults to building with Berkeley database support (bdb) APR_UTIL_* tunables have been renamed to comply with ports/KNOBS names. 20090114: AFFECTS: users of x11/kdebase4-workspace, x11/kdebase4-runtime AUTHOR: kde@FreeBSD.org KDE4 has been updated from 4.1.1 to 4.1.4. A number of files have been moved between packages. You should deinstall kdebase4-runtime package before updating: pkg_delete -f kdebase-runtime-4.1\* portmaster -a After successful update you could install kdebase4-runtime if it has not been installed during update process. 20090114: AFFECTS: users of GNOME and GTK+ AUTHOR: gnome@FreeBSD.org GNOME has been updated to 2.24.x. You have to deinstall a few ports first before using portupgrade or portmaster in order to successfully upgrade your GNOME installation. After successful upgrade, you have to reinstall gnome-session so the gnome.desktop session file is properly installed. Portupgrade users: # pkgdb -Ff (Answer "yes" to unregister gail while keeping gtk20.) (Answer "yes" to unregister fast-user-switch-applet while keeping gdm.) # pkg_deinstall -fO gtkmm-2.12\* # portupgrade -aOW # portupgrade -f gnome-session Portmaster users: # pkg_delete -f gtkmm-2.12\* # portmaster -a # portmaster gnome-session 20090113: AFFECTS: users of lang/perl5.8 AUTHOR: skv@FreeBSD.org lang/perl5.8 has been updated to 5.8.9. You should update everything that depends on perl. The easiest way to do that is to use perl-after-upgrade script supplied with lang/perl5.8. Please see its manual page for details. 20090112: AFFECTS: users of mail/claws-mail* AUTHOR: miwi@FreeBSD.org claws-mail has been updated to 3.7.0, with this update OpenSSL support has been removed by upstream in favour of GnuTLS. GnuTLS is now enabled by default. Themes were have also been split to an extra port which your can find under x11-themes/claws-mail-themes. Menu was rewritten entirely in version 3.6.0 using modern GTK interface; as a consequence, all your custom shortcuts will be lost after upgrade. 20090109: AFFECTS: users of any Mozilla and Opera products AUTHOR: mezz@FreeBSD.org The Java plugins now will no longer be picked up by automatically from these browsers. Because all Java ports share the name of plugins file, I am thinking about someone or maybe me will need to write something similar to nspluginwrapper (but in shell script) that can add Java plugin in ~/.*/plugins/ when user requests one specific version of Java plugin if this user has more than one version of Java installed. However, for now, you will have to add Java plugin in ~/.*/plugins/ manually. 20090107: AFFECTS: users of databases/unixODBC AUTHOR: beech@FreeBSD.org The databases/unixODBC port has been updated to 2.2.14. While containing many bug fixes and minor feature adjustments, this version no longer ships with the (obsolete) MySQL ODBC driver. MySQL ODBC driver users will probably want to use databases/mysql-connector-odbc instead. The text-backed/flatfile driver (libtxtodbc) has also been removed by the developers but due to some demand may make a return in a future version or as a separate port. 20090107: AFFECTS: users of security/libgcrypt AUTHOR: rafan@FreeBSD.org libgcrypt has been upgraded to 1.4.3 which has a shared library version bump. You need to reinstall all ports that depend on it. Use something like this: portupgrade -rf libgcrypt portmaster -r libgcrypt 20090104: AFFECTS: users of net/openldap24-{client,server} AUTHOR: delphij@FreeBSD.org OpenLDAP has been upgraded to 2.4.13, which requires a shared library version bump. Therefore, you need to reinstall all ports that depend on it. Please do something like: # portupgrade -fr net/openldap24-client 20081230: AFFECTS: users of net/rabbitmq AUTHOR: pneumann@gmail.com The database schema has changed between RabbitMQ-1.4.0 and this release. When the RabbitMQ server detects the presence of an old database, it moves it to a backup location, creates a fresh, empty database, and logs a warning. 20081226: AFFECTS: users of www/rt38 AUTHOR: pgollucci@FreeBSD.org www/rt38 now respects the FreeBSD directory layout, see hier(7). With this change, p5-RT-* and p5-RTx-* should be much simpler to use in the ports collection. Please note that www/p5-RTx-Shredder is included in www/rt38. This port will be deprecated and removed. 20081228: AFFECTS: users of astro/boinc-setiathome-enhanced AUTHOR: rene@FreeBSD.org The setiathome client has been updated to version 6.03 and version 5.00 of the astropulse client has been added. Before you update, finish and report your current workunits to avoid losing them. The port now also includes the client screensavers. 20081228: AFFECTS: users of japanese/kinput2 AUTHOR: hrs@FreeBSD.org The Wnn backend of japanese/kinput2 port now uses unix domain socket to communicate the server by default. If $JSERVER environment variable is defined, the value is used as the server host name. In In short, the server name is determined in the following way: $JSERVER --(if null)--> CcWnn.Jserver --(if null)--> "localhost" If the server host name is null or matches "^unix$", unix domain socket is used. Note that the default server name in CcWnn.Jserver is "unix" now. 20081226: AFFECTS: users of www/rt* AUTHOR: pgollucci@FreeBSD.org www/rt2 www/rt3 www/rt32 www/rt34 are now deprecated and will expire 2009-02-01. All ports now depend on www/rt38 If you can not update to www/rt38, www/rt36 is still around. 20081224: AFFECTS: users of www/phpSysInfo AUTHOR: miwi@FreeBSD.org The www/phpSysInfo port has been split into www/phpsysinfo and www/phpsysinfo-dev ports. 20081217: AFFECTS: users of mail/policyd2 AUTHOR: wxs@FreeBSD.org The RC script for mail/policyd2 has been renamed to avoid a conflict. If you use this port please change the setting in rc.conf to be policyd2_enable. 20081211: AFFECTS: users of lang/php5 AUTHOR: pav@FreeBSD.org, itetcu@FreeBSD.org, ale@FreeBSD.org As of PHP 5.2.7, pcre extension is distributed with the core PHP5 package, and not as a standalone module anymore. Follow the steps below to update your installation. Portupgrade users: pkg_delete -f php5-pcre-5.2.6 pkgdb -F portupgrade as usual Portmaster users: pkg_delete -f php5-pcre\* portmaster php5 If you are using pecl ports you might need to force an update on them: portupgrade -f pecl\* or portmaster pecl If you have the pecl hash, json and/or zip extensions you need to replace them with the PHP5 bundled ones, e.g.: portmaster/portupgrade -o archivers/php5-zip archivers/pecl-zip portmaster/portupgrade -o devel/php5-json devel/pecl-json portmaster/portupgrade -o security/php5-hash security/pecl-hash If you build your INDEX locally and you tried to build it after the PHP update commit, you need to rebuild it _after_ you updated lang/php5: cd /usr/ports && make index or (if you use ports-mgmt/p5-FreeBSD-Portindex): cd /usr/ports && cache-init && portindex -o `make -V INDEXFILE` 20081207: AFFECTS: users of games/mkgichessclub AUTHOR: nivit@FreeBSD.org After the update to the version 2.2.0, please, alter the SQL tables with the command: mysql _mkgichessclub_ < /usr/local/share/mkgichessclub/db_migrate_2.1_to_2.2.sql where _mkgichessclub_ is the database name chosen during the installation of the port. 20081205: AFFECTS: users of net-p2p/ktorrent AUTHOR: makc@FreeBSD.org ktorrent has been updated to 3.1.5 for KDE 4. The last release of ktorrent for KDE 3 is available under net-p2p/ktorrent2. 20081121: AFFECTS: users of comms/smstools3 AUTHOR: mm@FreeBSD.org The startup script of comms/smstools3 has changed. For increased security smstools now runs as user uucp / group dialer by default. The script commands like sendsms etc. should be executed as user uucp. To restore the old behaviour, set smsd_user="root" and smsd_group="wheel" in your /etc/rc.conf. Hint: use security/sudo for running smsd scripts as user uucp. 20081108: AFFECTS: users of editors/tamago AUTHOR: hrs@FreeBSD.org The Wnn backend of editors/tamago port now uses unix domain socket to communicate the server by default. If $[CJKT]SERVER environment variable is defined, the value is used as the server host name. In JSERVER case, for example, the server name is determined in the following way: $JSERVER --(if null)--> wnn-jserver --(if null)--> "unix" If the server host name is null or matches "^unix$", unix domain socket is used. The path name of the socket can be specified in wnn-[cjkt]udpath custom variable. 20081105: AFFECTS: users of french/pluxm-devel AUTHOR: jadawin@FreeBSD.org Please, use http://download.pluxml.org/plugins/migration-blog-beta3x-beta4.zip to migrate. It's strongly advised to backup your blog before updating. 20081102: AFFECTS: users of devel/git AUTHOR: wxs@FreeBSD.org The location of git-shell has changed to ${PREFIX}/libexec/git-core/git-shell. Please remove the old entry from /etc/shells. 20081030: AFFECTS: users of japanese/FreeWnn-server AUTHOR: hrs@FreeBSD.org The jserver daemon in japanese/FreeWnn-server port now uses "127.0.0.1" as the default listen address for security reason. If you need the wildcard address (INADDR_ANY), you have to explicitly set "listenaddr" to 0.0.0.0 in ${PREFIX}/lib/wnn/ja_JP/jserverrc or add "-a 0.0.0.0" to ${wnn_flags} in /etc/rc.conf. 20081026: AFFECTS: users of www/asterisk-gui AUTHOR: pneumann@gmail.com The upgrade to version 2.0 will modify your asterisk dialplan when login to the page. Hardware autodetection will not work, pending update of misc/zaptel. 20081028: AFFECTS: users of www/codeigniter AUTHOR: glarkin@FreeBSD.org For certain installations, the following steps should be performed after the CodeIgniter 1.7.0 upgrade (taken from: http://codeigniter.com/user_guide/installation/upgrade_170.html). >>> Update your Session Table If you are using the Session class in your application, AND if you are storing session data to a database, you must add a new column named user_data to your session table. Here is an example of what this column might look like for MySQL: user_data text NOT NULL To add this column you will run a query similar to this: ALTER TABLE `ci_sessions` ADD `user_data` text NOT NULL You'll find more information regarding the new Session functionality in the Session class page: http://codeigniter.com/user_guide/libraries/sessions.html >>> Update your Validation Syntax This is an optional, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new Form Validation class (http://codeigniter.com/user_guide/libraries/form_validation.html) which deprecates the old Validation library. We have left the old one in place so that existing applications that use it will not break, but you are encouraged to migrate to the new version as soon as possible. Please read the user guide carefully as the new library works a little differently, and has several new features. 20081026: AFFECTS: users of japanese/sj3-server AUTHOR: hrs@FreeBSD.org The sj3serv daemon in japanese/sj3-server port now uses "localhost" as the default listen address for security reason. If you need the wildcard address (INADDR_ANY), you have to explicitly set "servername" to 0.0.0.0 in ${PREFIX}/etc/sj3/serverrc. 20081026: AFFECTS: users of japanese/Canna and japanese/sj3 AUTHOR: hrs@FreeBSD.org The japanese/Canna and japanese/sj3 port have been split into japanese/canna-server and japanese/canna-lib, and japanese/sj3-server and japanese/sj3-lib, respectively for more fine-grained dependency management in the Ports Collection. 20080926: AFFECTS: users of www/squid30 AUTHOR: tmseck@netcologne.de The Squid developers decided to disable COSS support in 3.0, cf. the discussion starting here: http://www.squid-cache.org/mail-archive/squid-dev/200809/0067.html The corresponding port configuration option WITH_SQUID_COSS is still available but is a no-op for now. If you currently use COSS storage with Squid 3.0 you need to disable it in squid.conf. 20080924: AFFECTS: users of ftp/proftpd AUTHOR: beech@FreeBSD.org proftpd now stores its .delay and .scoreboard files in /var/run/proftpd instead of /var/run. If you are updating an existing installation, adjust the following in /usr/local/etc/proftpd.conf: ScoreboardFile /var/run/proftpd/proftpd.scoreboard Also of note: The third party modules, mod_codeconv, mod_comb, and mod_sql_tds are not compatible with this release and have been removed. They will be re-added when the respective authors provide updated versions. 20080909: AFFECTS: users of security/logcheck AUTHOR: glarkin@FreeBSD.org logcheck now stores its configuration files in /usr/local/etc/logcheck instead of /usr/local/etc. If you are upgrading the port from version 1.1.1 to version 1.2.54, copy the following files to a temporary location, in case they are removed during the upgrade: /usr/local/etc/logcheck.hacking /usr/local/etc/logcheck.ignore /usr/local/etc/logcheck.violations /usr/local/etc/logcheck.violations.ignore e.g.: cd /usr/local/etc mkdir /tmp/logcheck.saveconf cp logcheck.hacking logcheck.ignore logcheck.violations* \ /tmp/logcheck.saveconf After the upgrade, integrate your local changes to the files listed above into the new configuration files found in the following directories: /usr/local/etc/logcheck/cracking.d /usr/local/etc/logcheck/ignore.d.paranoid /usr/local/etc/logcheck/ignore.d.server /usr/local/etc/logcheck/ignore.d.workstation /usr/local/etc/logcheck/violations.d /usr/local/etc/logcheck/violations.ignore.d Please consult the following files for more information about logcheck rules and reporting levels: /usr/local/share/doc/logcheck/README.logcheck /usr/local/share/doc/logcheck/README.logcheck-database Also note that the upgraded port installs a crontab file for user "logcheck" that executes the logcheck script every hour and emails the results to root. If the installation process cannot install the crontab file, it can be installed manually from /usr/local/share/examples/logcheck/crontab.in, e.g.: crontab -u logcheck /usr/local/share/examples/logcheck/crontab.in 20080907: AFFECTS: users of www/mediawiki AUTHOR: miwi@FreeBSD.org www/mediawiki version is 1.13 now. 1.12 version was preserved as www/mediawiki12 port. 20080902: AFFECTS: users of net-mgmt/nagios and net-mgmt/nagios-devel AUTHOR: Jarrod Sayers The stable Nagios port has now been updated to version 3.0.3. Upgrading to this version shouldn't require any configuration changes, but note that most sample configuration files were moved into objects/ directory. Nagios 2.12 is still available as net-mgmt/nagios2, use the following to remain on this legacy stable branch: portmaster -o net-mgmt/nagios2 net-mgmt/nagios or, if you're using portupgrade: portupgrade -o net-mgmt/nagios2 net-mgmt/nagios Nagios 3.x development continues in net-mgmt/nagios-devel, users of this port in production use should consider switching to the stable branch: portmaster -o net-mgmt/nagios net-mgmt/nagios-devel or, if you're using portupgrade: portupgrade -o net-mgmt/nagios net-mgmt/nagios-devel 20080902: AFFECTS: users of math/ploticus AUTHOR: linimon@FreeBSD.org This is a major update. Deprecated: server-side image maps (use client-side instead); definition of categories within proc areadef (use proc categories instead); proc print. Discontinued attributes: proc processdata's stack; proc usedata's element, proc getdata's rotate, and proc defineunits (use the $changeunits() function instead). proc rangebar has been renamed proc boxplot and there are major functionality changes. Any script that uses proc rangebar will need maintenance. See http://ploticus.sourceforge.net/doc/news.html for more information. 20080901: AFFECTS: users of mail/pine4 and editors/pico AUTHOR: dougb@FreeBSD.org These two ports have been removed in favor of the new mail/alpine and editors/pico-alpine ports. UW discontinued work on Pine in September 2005 and is focusing on Alpine now. You should be able to directly replace pine with alpine. See http://www.washington.edu/alpine/ for more information. 20080831: AFFECTS: users of net-mgmt/smokeping AUTHOR: lth@FreeBSD.org Smokeping has been updated to 2.4.1, and the example web server configuration has changed. Please read pkg-message and check that your server configuration is OK. 20080827: AFFECTS: users of devel/git AUTHOR: wxs@FreeBSD.org With the default Makefile settings, most of the programs are now installed outside your $PATH, except for "git", "gitk", and some server side programs that need to be accessible for technical reasons. Invoking a git subcommand as "git-xyzzy" from the command line has been deprecated since early 2006 (and officially announced in 1.5.4 release notes); use of them from your scripts after adding output from "git --exec-path" to the $PATH is still supported in this release, but users are again strongly encouraged to adjust their scripts to use "git xyzzy" form, as we will stop installing "git-xyzzy" hardlinks for built-in commands in later releases. Please see this URL for more information: http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.txt 20080827: AFFECTS: users of mail/qmhandle AUTHOR: garga@FreeBSD.org A qmHandle.conf file was created, for now, is not needed to edit ${PREFIX}/bin/qmHandle to change stopqmail and startqmail variables. Just remember to edit configuration file after upgrade. 20080820: AFFECTS: users of www/p5-Apache-DBI AUTHOR: pgollucci@FreeBSD.org www/p5-Apache-DBI has been forked into a MASTER and SLAVE setup www/p5-Apache-DBI-mp1 and www/p5-Apache-DBI-mp2 so as to work with www/rt38 among possibly other ports. 20080820: AFFECTS: users of net/rabbitmq AUTHOR: pneumann@gmail.com The database schema has changed in this version of RabbitMQ. If you attempt to start RabbitMQ-1.4.0 over top of a previous installation, it will fail, citing "schema_integrity_check_failed". To correct this, delete your mnesia directory (/var/db/rabbitmq/mnesia) and restart the server. Note that this will destroy all your durable exchanges and queues, and all your persisted messages! 20080816: AFFECTS: users of mail/assp AUTHOR: J.R. Oldroyd The periodic(8) script no longer outputs to files in the assp directory. You should remove /var/db/assp/nightly.log and nightly.log.old by hand once you are done with them. The information that was stored there will now come in your nightly system email. 20080815: AFFECTS: users of sysutils/rdiff-backup AUTHOR: vd@FreeBSD.org sysutils/rdiff-backup has been upgraded from 1.0.5 to 1.2.0. This is an incompatible upgrade. If you need the "old" 1.0.5, you can find it in sysutils/rdiff-backup10. 20080813: AFFECTS: users of www/ikiwiki AUTHOR: brix@FreeBSD.org The layout of the ikiwiki.setup file has changed in a significant way in this release. Old setup files will continue to work, but new features, like the new websetup interface, require a new format setup file. You can convert old setup files into the new format by running the following command for all your ikiwiki.setup files: ikiwiki-transition setupformat ikiwiki.setup 20080812: AFFECTS: users of mail/spamdyke AUTHOR: mm@FreeBSD.org The spamdyke port has been updated to 4.0.2. The new version is not backwards compatible with previous versions. Please examine the new configuration file for the changes. 20080812: AFFECTS: users of databases/pgbouncer AUTHOR: mm@FreeBSD.org Starting with port version 1.2.3, pgbouncer does not run as root anymore. If you are upgrading from earlier versions, please update your configuration in ${PREFIX}/etc/pgbouncer.ini to use log and pid file paths owned by the newly created pgbouncer user (or customize for a different user yourself). Default logfile: /var/log/pgbouncer/pgbouncer.log Default pidfile: /var/run/pgbouncer/pgbouncer.pid 20080808: AFFECTS: users of chinese/phpbb-tw AUTHOR: chinsan@FreeBSD.org The default install directory for phpbb-tw has changed from ${PREFIX}/www/data/phpBB2 to ${PREFIX}/www/phpBB2. If you are updating from a previous version, to preserve your settings and data, please do the following: mv /usr/local/www/data/phpBB2 /usr/local/www Then update as usual. 20080806: AFFECTS: users of net-p2p/transmission AUTHOR: mezz@FreeBSD.org Update to 1.3x, the net-p2p/transmission now is a meta-port. It depends on cli, daemon, and gtk2. If you don't want that, uninstall transmission and install net-p2p/transmission-cli by doing: portmaster -o net-p2p/transmission-cli net-p2p/transmission or, if you're using portupgrade: portupgrade -o net-p2p/transmission-cli net-p2p/transmission 20080805: AFFECTS: users of devel/qt4 AUTHOR: kde@FreeBSD.org The qt4 ports has been updated to 4.4.1. With this update several ports specific problems have been fixed. Qt4 headers and libraries have been moved to include/qt4 and lib/qt4. bsd.qt.mk defines QT_INCDIR and QT_LIBDIR now, which could be used in qt4-dependent ports if required. Before you start to update your ports, please force update of qmake4 and qt4-corelib ports. Portmaster users can do: portmaster devel/qmake4 devel/qt4-moc devel/qt4-corelib or, if you're using portupgrade: portupgrade -f devel/qmake4 devel/qt4-moc devel/qt4-corelib 20080804: AFFECTS: users of devel/git AUTHOR: wxs@FreeBSD.org Git's cvsps dependency has been switched from cvsps-devel to cvsps. The two are incompatible, so you will need to do the following before upgrading git: portmaster -o devel/cvsps devel/cvsps-devel 20080728: AFFECTS: users of net/freeradius2 AUTHOR: David Wood Upgrading the FreeRADIUS port used to replace all unmodified files in your configuration with the latest version from the sample configuration. This strategy has two disadvantages; over time your configuration became based on different versions of the sample configuration, also major changes to the sample configuration could leave your configuration in a confusing state. From version 2.0.5, your configuration is not touched if any configuration files have been modified. You are recommended to track changes in the sample configuration and keep your configuration in a version control system. I use Subversion (see the devel/subversion port) to track my changes. Keeping the sample configuration in a 'vendor branch' (see the Subversion book for more details) allows easy merging of changes from the sample configuration. *** IMPORTANT *** You are urged to move your configuration out of the default location (/usr/local/etc/raddb) before upgrading from 2.0.4 (or earlier) to 2.0.5 (or later). Once this upgrade is complete, remove the sample configuration that has been installed in the default location and move your configuration back to the default location. This is a one time procedure that will prevent unmodified files in your configuration from being deleted from your configuration and not restored during the upgrade. No customised files will be lost in any circumstances. The sample configuration in 2.0.5 has been reorganised: the configuration of most modules is now in the modules directory rather than in radiusd.conf. You are urged to rearrange your configuration to match this layout. There are several improvements in this version of the port, including a new pkg-message that will help new FreeRADIUS users to get started with the port, also new 'reload' and 'debug' commands for the rc.d script. Enjoy! 20080725: AFFECTS: users of x11-fm/nautilus and misc/shared-mime-info AUTHOR: gnome@FreeBSD.org In order to properly update x11-fm/nautilus and misc/shared-mime-info, do the following using portupgrade: # pkg_deinstall -fO nautilus # portupgrade shared-mime-info # portinstall -O nautilus Once misc/shared-mime-info has been updated, each user will need to run the following command: $ update-mime-database ~/.local/share/mime/ 20080725: AFFECTS: users of www/ojs2 AUTHOR: Greg Larkin If you are upgrading from a prior version of ojs2, please backup your database, uploaded files directory, and your config.inc.php before the upgrade. Read /usr/local/share/docs/ojs2/UPGRADE or visit http://pkp.sfu.ca/ojs/UPGRADE for additional upgrade information. 20080721: AFFECTS: users of net/freenet6 AUTHOR: Edwin Groothuis Please note that there has been a major update of this port (from version 2.x to 5.x) and that the name of the binaries and configuration files has changed from "tpsc" to "gw6c". The configuration files have to be copied from ${PREFIX}/share/examples/freenet6 to ${PREFIX}/etc again. 20080719: AFFECTS: users of x11-fm/gprename AUTHOR: Martin Tournoij GPRename configuration files now live ~/.config/gprename instead of ~/, to upgrade use the following commands: % mkdir -p ~/.config/gprename % mv ~/.gprename ~/.config/gprename/gprename % mv ~/.gprename_log ~/.config/gprename/gprename_log 20080717: AFFECTS: users of devel/anjuta AUTHOR: gnome@FreeBSD.org Anjuta's neon dependency has been switched from neon26 to neon28. The two are incompatible, so you will need to do the following to upgrade: portupgrade -o www/neon28 neon26 portupgrade anjuta 20080714: AFFECTS: users of www/squid AUTHOR: Thomas-Martin Seck www/squid has been updated to Squid 2.7.STABLE3. The update should be rather straightforward. The only noticeable change in the port is that the ICAP patch is no longer included; this is because this patch was unmaintained for a long time and its use was not really recommended. Please consider moving to Squid-3 (currently available as www/squid30) if you need ICAP support. Squid 2.6 is still available as www/squid26 and will probably be removed from the Ports Tree by the end of 2008. 20080712: AFFECTS: users of databases/rrdtool AUTHOR: rafan@FreeBSD.org If you use language bindings, like the Perl's RRDs, please upgrade this port *twice* in order to get the library dependency right. 20080711: AFFECTS: users of x11-toolkits/gtkdatabox2 AUTHOR: Beech Rintoul The port has been deprecated and gtkdatabox has been updated. This was done so the port tracks vendor name. Please update by doing: portupgrade -o x11-toolkits/gtkdatabox x11-toolkits/gtkdatabox2 20080709: AFFECTS: users of www/ikiwiki AUTHOR: Henrik Brix Andersen The IkiWiki editpage form now uses the raw page name, not the page title, in its `page' CGI parameter. You will need to rebuild any existing IkiWiki installations in order to update their `edit' links to the new format. 20080708: AFFECTS: users of emulators/qemu-devel AUTHOR: nox@FreeBSD.org The port has been updated to a 20080620 SVN snapshot, which uses the new (incompatible) kqemu-kmod-devel port that now also works for the 32 bit "qemu" executable on amd64. If you upgrade qemu-devel with the KQEMU knob on, you have to # pkg_delete kqemu-kmod-1\* the old kqemu version first if it is installed. 20080705: AFFECTS: users of www/ikiwiki AUTHOR: Henrik Brix Andersen The IkiWiki search plug-in now uses www/xapian-omega as backend instead of textproc/hyperestraier. You will need to update the configuration of any search enabled IkiWiki installations and rebuild them since the search form has changed. 20080704: AFFECTS: users of misc/shared-mime-info AUTHOR: FreeBSD GNOME Team The misc/shared-mime-info has been updated to 0.40. The Mime Types caches have been changed a bit. If you have created any custom MIME types, you will need to run update-mime-database to update your local Mime Types caches: $ update-mime-database ~/.local/share/mime/ 20080702: AFFECTS: users of irc/ratbox-services AUTHOR: Beech Rintoul Configuration file and database changes have been made between the 1.1.x series and the current release version of ratbox-services. It is highly recommended that services are stopped, and the proper upgrade procedure is followed as described in port's documentation, before restarting newly updated ratbox-services again. Please remember to backup the database before attempting an upgrade, as incorrectly upgraded database may be rendered unusable. The ratbox-services-1.2.x branch implements multi-language support. However, an inconsistency in the language indexing may result in errors. It is therefore recommended that the English default to be used until the next version release. 20080702: AFFECTS: users of mail/nocc AUTHOR: Alex Dupre The Nocc configuration file has been moved into 'config' subdir. When updating, remove the old conf.php file and reconfigure Nocc. 20080701: AFFECTS: users of devel/subversion* AUTHOR: Lev Serebryakov subversion now uses neon-0.28.x (www/neon28) port, and automatic portupgrade will fail because www/neon28 will conflict with installed www/neon26 port. You should upgrade neon library before subversion with the command: # portupgrade -o www/neon28 neon26 Also, if you use any special subversion ports with bindings, you should upgrade these ports to clean subversion port with # portupgrade -o devel/subversion subversion-\* and install needed bindings (p5-subversion, py-subversion and/or ruby-subversion) after that. If you use subversion with bindings installed from devel/subversion with custom options, don't forget to install separate bindings ports after subversion upgrade. 20080630: AFFECTS: users of graphics/cairo, graphics/poppler*, and future users of www/firefox3 AUTHOR: FreeBSD GNOME Team The poppler* ports have been updated to 0.8.3 and the shared libraries have changed. Firefox 3.0 has been added to the tree as www/firefox3. These changes require that all dependent ports be updated. You can do this in one of two ways: # portmaster pixman # portmaster \*cairo\* # portmaster -r poppler-0 or: # pkgdb -Ff # portupgrade pixman\* \*cairo\* # portupgrade -r poppler-0.\* 20080627: AFFECTS: users of x11-drivers/xf86-video-ati AUTHOR: Jung-uk Kim mach64 and r128 drivers are now separated out from the ati driver. These video cards are supported by x11-drivers/xf86-video-mach64 and x11-drivers/xf86-video-r128 respectively. If you have one of the affected video cards and xorg.conf contains the following line: Driver "ati" you must specify "mach64" or "r128". Alternatively, you may install x11-drivers/xf86-video-ati to get a wrapper driver. 20080626: AFFECTS: users of science/gramps AUTHOR: Anders Troback Before you upgrade from 2.x to 3.x you need to export your existing databases to a GRAMPS XML file. After the upgrade you can import them into the new version. 20080624: AFFECTS: users of irc/ircd-ratbox-devel AUTHOR: Beech Rintoul Upgrading between different beta releases can cause problems when changes to the ban database schema have occurred. The 'bantool' utility now comes with a -u switch that will check and update the ban database as necessary. Issuing 'bantool -u' is required when upgrading between beta releases and must not be done while the ircd is running. 20080624: AFFECTS: users of www/mod_security AUTHOR: Marcelo Araujo The mod_security port has been updated from 1.9.4 to 2.5.5. Branch 1.9.x will not receive any further updates; all users must update mod_security port to versions 2.1 or 2.5. You can get more information about update issues at: http://www.modsecurity.org/documentation/ 20080624: AFFECTS: users of www/opera and www/opera/devel AUTHOR: Ion-Mihai Tetcu The Opera port has been updated from 9.2x to 9.5x. A lot of things have been changed such as keyboard shortcuts[1]; new storage and indexing formats for mail and feeds; new search.ini; native amd64 binaries; no 4.x support. You will be asked whether to convert mail and feeds to new format during start up. Warning: there is no way to downgrade back to the old format. Be sure to see the Changelog[2]. [1] http://www.opera.com/support/search/view/884/ [2] http://www.opera.com/docs/changelogs/freebsd/950/ 20080622: AFFECTS: users of devel/subversion, subversion-devel and subversion-freebsd with apr from www/apache22 AUTHOR: Clement Laforet apr and apr-util bundled with apache 2.2.9 have been upgraded to 1.3.x, so shared libraries' versions have been bumped. If you are using subversion with apache22 apr, you must rebuild subversion after the update. 20080617: AFFECTS: users of editors/nvi-devel AUTHOR: Wesley Shields editors/nvi-devel has been changed to install nvi, nex, and nview as to not conflict with editors/2bsd-vi. Please note the new names if you use this port. 20080616: AFFECTS: users of mail/dkim-milter AUTHOR: Hirohisa Yamaguchi Most of the command line options can now be set in configure files. So the default values (such as milterdkim_socket) are changed to blank. Upgrading users should check the values both in rc.conf and dkim-filter.conf. 20080612: AFFECTS: users of www/linux-opera AUTHOR: mezz@FreeBSD.org The Opera port has been updated from 9.2x to 9.5x. A lot of things have been changed such as keyboard shortcuts[1]; new storage and indexing formats for mail and feeds; new search.ini; probably more that I have missed. I do not know if the keyboard shortcuts and search.ini will be overwritten. You will be asked whether you want mail and feeds to be converted to new format during start up. Warning: there is no way to downgrade back to the old format. Be sure to see the Changelog[2]. [1] http://www.opera.com/support/search/view/884/ [2] http://www.opera.com/docs/changelogs/linux/950/ It is probably best for you to back up your linux-opera directory in case until you have no problem with new Opera for a while. Also, you might have to re-configure search and keyboard shortcuts if these were overwritten: # cp -Rp ~/.linux-opera ~/.linux-opera-bak If you are seeing an error of undefined symbols related to GTK+, it is because it needs newer linux-gtk2 that ports doesn't have. You can enter 'opera:config#FileSelector|DialogToolkit' in the address bar and change from 0 to 1 in 'Dialog Toolkit' if it annoys you. 0 = auto detection, 1 = QT, and 2 = GTK+. 20080610: AFFECTS: users of mail/svnmailer AUTHOR: pgollucci@FreeBSD.org Some of the config directives and sections allowed have changed. You will have to edit your config file when updating to 1.1.0-dev-r1373 version of the port. Please see the following URL for more information: http://opensource.perlig.de/en/svnmailer/doc-1.1/#general-config-charset 20080609: AFFECTS: users of devel/pear-Date_Holidays AUTHOR: tabthorpe@FreeBSD.org pear-Date_Holidays has been split into multiple subports. If you want a specific geographic region, look at devel/pear-Date_Holidays_* 20080605: AFFECTS: users of audio/paman and audio/pavucontrol AUTHOR: lippe@FreeBSD.org paman was renamed to pavucontrol, which are two different projects. paman is a GTK frontend to PulseAudio, while pavucontrol is a GTK-based volume control tool to PulseAudio. 20080605: AFFECTS: users of devel/gettext (i.e.: YOU) AUTHOR: ade@FreeBSD.org As a result of the upgrade to gettext-0.17, the shared library version of libintl has changed, so you will need to rebuild all ports that depend on gettext: # portupgrade -rf gettext # portmaster -r gettext Given the scope and sheer number of dependent ports, it may be more advisable to simply blow away all existing install ports (after keeping any local configuration changes), and rebuilding from scratch. 20080603: AFFECTS: users of editors/emacs AUTHOR: Yasuhiro KIMURA The port (editors/emacs) is updated to 22.2 and some of Emacs Lisp directories had changed. So you should reinstall all ports that depend on it. Please do something like: # portupgrade -fr emacs 20080601: AFFECTS: users of www/ikiwiki AUTHOR: brix@FreeBSD.org If password based logins is enabled in IkiWiki, those passwords were stored in cleartext in the userdb. To guard against exposing users' passwords, IkiWiki 2.48 and later use strong (blowfish) hashes for storing passwords. To hash existing passwords, update to ikiwiki-2.48 and run the following command for each of your IkiWiki src dirs: ikiwiki-transition hashpassword /path/to/your/wiki/srcdir 20080524: AFFECTS: users of net-im/jabberd AUTHOR: mm@FreeBSD.org Starting with version 2.2.0, resolver is now built in the S2S component. Jabberd configuration files require updating: jabberd.cfg: resolver component must be removed s2s.xml: section must be added (see s2s.xml.dist) resolver.xml: may be deleted (file not required anymore) 20080519: AFFECTS: users of www/nginx and www/nginx-devel AUTHOR: osa@FreeBSD.org Nginx version lines have been changed: 0.5 -> 0.6 for stable and 0.6 -> 0.7 for development version. Make sure your configuration files are compatible with the new version(s). 20080519: AFFECTS: users of irc/bitlbee AUTHOR: brix@FreeBSD.org The default installation is now configured for running bitlbee as user 'bitlbee'. Make sure any existing configuration files are readable by that user. 20080517: AFFECTS: users of multimedia/smplayer-* AUTHOR: miwi@FreeBSD.org The slave port multimedia/smplayer-qt4 has been removed with the upgrade of multimedia/smplayer to 0.6.0, qt3 is no longer supported. They are now fully integrated into multimedia/smplayer. Please uninstall multimedia/smplayer-qt4 port before upgrading multimedia/smplayer to version 0.6.0 or higher. 20080513: AFFECTS: users of security/amavisd-new AUTHOR: scheidell@secnap.net Amavisd-new 2.6.0 introduces several incompatibilities with prior versions. If you are upgrading from 2.5.4 or earlier, you will need to update your SQL schema. If you have third party programs that access SQL tables, you will need to update those also. COMPATIBILITY WITH 2.5.4: - when using SQL for logging (e.g. for a pen pals feature) or for quarantining, SQL tables maddr, msgs, msgrcpt and quarantine need to be extended by a new field 'partition_tag'; see below for details; - when SQL logging (pen pals) or SQL lookups are used, one can choose a binary or a character data type for fields users.email, mailaddr.email, and maddr.email; now may be a good opportunity to change a data type to binary (string of bytes); see below for details; - when using SQL for logging, a default for $sql_clause{'upd_msg'} has changed, so if a configuration file replaces this SQL clause by a non-default setting, it needs to be updated; Full information in /usr/local/share/doc/amavisd-new/RELEASE_NOTES. 20080513: AFFECTS: users of audio/ampache AUTHOR: jadawin@FreeBSD.org Ampache 3.4 uses a different config parser. Unfortunately the new parser is unable to read old config files. In order to migrate your current configuration, you should run `php ${WWWDIR}/bin/migrate_config.inc' from the command line. 20080508: AFFECTS: users of databases/ptop AUTHOR: beech@FreeBSD.org The authors have changed the name of this utility to `pg_top'. To avoid conflict with another port in the Tree with the same name we have retained `ptop' as the portname. Note that binary has also changed to `pg_top'. Please start the utility with that name after updating. 20080507: AFFECTS: Perl interface users of audio/gramofile AUTHOR: rafan@FreeBSD.org Perl support is removed due to devel/swig11 removal in ports. If you use the Perl interface, you are encouraged to use the new Audio::Gramofile found on CPAN (contact me for the ports). 20080506: AFFECTS: users of net-mgmt/collectd AUTHOR: daniel@roe.ch Previously, net-mgmt/collectd used to remove the config file even if it was changed by the user. This has now been fixed. To upgrade without losing your configuration, copy ${PREFIX}/etc/collectd.conf away to a safe place before upgrading net-mgmt/collectd. In addition, the default location of the data files changed from ${PREFIX}/var/lib/collectd to /var/db/collectd; you may want to move your data files and edit your configuration accordingly. 20080503: AFFECTS: users of net/skype-devel AUTHOR: beech@FreeBSD.org Skype-devel port has been removed in favor and by upading of net/skype. If you are running skype-devel, please do the following: portupgrade -o net/skype net/skype-devel 20080426: AFFECTS: users of www/phpgedview AUTHOR: beech@FreeBSD.org The install location of phpgedview has changed from www/data/phpGedView to www/phpgedview. If you are updating from a previous version please do the following: mv /usr/local/www/data/phpGedView /usr/local/www You will also need to adjust the paths in your web server to reflect the new location. 20080416: AFFECTS: users of security/clamav AUTHOR: garga@FreeBSD.org Clamav 0.93 does not support the daily.inc and main.inc directories format for virus databases. You need to remove these directories manually and force freshclam to get new cvd format files before starting clamd: portupgrade clamav /usr/local/etc/rc.d/clamav-clamd stop /usr/local/etc/rc.d/clamav-freshclam stop rm -rf /var/db/clamav/main.inc /var/db/clamav/daily.inc freshclam /usr/local/etc/rc.d/clamav-freshclam start /usr/local/etc/rc.d/clamav-clamd start 20080408: AFFECTS: users of www/p5-Apache-Test AUTHOR: pgollucci@FreeBSD.org www/p5-Apache-Test doesn't actually need www/mod_perl{1,2}. If you would like to test a mod_perl, than please install www/mod_perl2 or www/mod_perl as well. The ports infrastructure doesn't support this (yet) but you can use it to test www/apache13, www/apache20, and/or www/apache22 without chaining www/p5-Apache-Test. 20080405: AFFECTS: users of sysutils/tracker AUTHOR: ahze@FreeBSD.org The sysutils/tracker port is now a meta port and tracker is now split into separate ports to allow non-GNOME users to install tracker without pulling in GNOME components. To upgrade please use the directions below. Portmaster users: portmaster -o sysutils/tracker-client tracker portmaster sysutils/tracker Portupgrade users: portupgrade -o sysutils/tracker-client tracker portupgrade -u sysutils/tracker 20080405: AFFECTS: users and maintainers of ports that depend on databases/sqlite3 AUTHOR: mnag@FreeBSD.org Port databases/sqlite3 was updated to 3.5.6 and now has threads enabled by default. If you encounter any problem with it, you can rebuild SQLite3 without threads and test or change Makefile of affected port with this: sed -i.bak -E -e "s|USE_SQLITE=.*|USE_SQLITE=34|g" \ -e "s|databases/sqlite3|databases/sqlite34|g" Makefile Please report success or failure to port maintainer and to me. 20080403: AFFECTS: users of emulators/qemu and emulators/qemu-devel AUTHOR: nox@FreeBSD.org The default configuration location (qemu-ifup script etc.) has been changed from /etc to ${PREFIX}/etc (usually /usr/local/etc). Move your files accordingly. 20080330: AFFECTS: users of www/mediawiki AUTHOR: miwi@FreeBSD.org www/mediawiki version is 1.12 now. 1.11 version was preserved on www/mediawiki111 port. 20080329: AFFECTS: users of www/phpadsnew AUTHOR: beech@FreeBSD.org Phpadsnew has been replaced with www/openx. To upgrade please do the following: 1. Install www/openx 2. Copy the configuration file from phpadsnew to the var directory of www/openx 3. Copy your banner images from phpadsnew/www/images to openx/www/images 4. Access openx on your browser and follow the instructions for upgrading 5. When you are satisfied with everything working properly you can remove www/phpadsnew 20080326: AFFECTS: users of emulators/linux_base-f8 AUTHOR: bsam@FreeBSD.org The new port is used just like emulators/linux_base-fc6. Please, read carefully entry 20070327 about emulators/linux_base-fc6. 20080323: AFFECTS: users of multimedia/gstreamer AUTHOR: multimedia@FreeBSD.org Gstreamer port was updated. Due to the move of some plugins between ports, you will have to rebuild the gstreamer-plugins-good port after upgrading. Portupgrade users: # portupgrade -a # portupgrade -f gstreamer-plugins-good Portmaster users: # portmaster -a # portmaster gstreamer-plugins-good 20080323: AFFECTS: all GNOME users and ports depend on misc/gnomehier AUTHOR: gnome@FreeBSD.org GNOME has been updated to 2.22.0. You have to deinstall a few ports first before using portupgrade or portmaster in order to successfully upgrade your GNOME installation. Portupgrade users: # pkgdb -Ff # pkg_deinstall -fO gnome-applets\* totem\* gnome-control-center\* # portupgrade -aOW Portmaster users: # pkg_delete -f gnome-applets\* totem\* gnome-control-center\* \ gnome-keyring-manager\* # portmaster -a Be sure to read in our known issues and solutions: http://www.freebsd.org/gnome/docs/faq222.html#q4 20080323: AFFECTS: users of devel/glib20 and future users of devel/gio-fam-backend AUTHOR: gnome@FreeBSD.org In order to update to glib 2.16 or higher, you must first update the glib20 port on its own or you will get a failure trying to install devel/gio-fam-backend saying it cannot find -lgio-2.0. Portmaster users can do: portmaster glib-2 or, if you're using portupgrade: portupgrade glib-2\* 20080318: AFFECTS: users of audio/gnump3d AUTHOR: jadawin@FreeBSD.org The layout of gnump3d 3.0 is changed, please read documentation and the manual pages of gnump3d. 20080318: AFFECTS: users of net/skype net/skype-devel AUTHOR: beech@FreeBSD.org For FreeBSD versions 7.0 and above: It is required with both skype and skype-devel to update to linux_base-fc6. Please do the following: 1. Make sure there are no running Linux applications. 2. Unmount linprocfs (umount /compat/linux/proc) 3. Uninstall your current linux_base port 4. Set appropriate sysctl (sysctl compat.linux.osrelease=2.6.16) 5. Install emulators/linux_base-fc6 6 Remount linprocfs (mount /compat/linux/proc) 7. Add compat.linux.osrelease=2.6.16 to etc/sysctl.conf 8. Add OVERRIDE_LINUX_BASE_PORT=fc6 to /etc/make.conf Note: These instructions also apply to linux_base-f8, please use the same osrelease. For FreeBSD versions 5.X and 6.X: Please use the legacy version net/skype12: portupgrade -o net/skype12 net/skype 20080316: AFFECTS: users of net/iscsi-target AUTHOR: rafan@FreeBSD.org The default configuration location has been changed from /etc to ${PREFIX}/etc. Move your files accordingly. 20080314: AFFECTS: users of security/nmapfe AUTHOR: miwi@FreeBSD.org nmapfe has been renamed to zenmap upstream. The port has also been renamed. If you haven't already installed nmapfe, you need to: portupgrade -o security/zenmap nmapfe\* 20080313: AFFECTS: users of mail/ezmlm-web AUTHOR: hans@nordhaug.priv.no The layout of ezmlm-web 3.2 is changed, please read documentation and the manual page of ezmlm-web.cgi. 20080312: AFFECTS: users of x11-wm/enlightenment-devel, x11/ecore and grephics/evas AUTHOR: stas@FreeBSD.org Evas and ecore ports have been split to separate modules to simplify dependency tracking. Thus, portupgrade in many cases won't be able to correctly update these ports. The easiest upgrade path would be to remove all EFL ports and install them from scratch. At least, you should reinstall ecore and evas. Please note that your old $HOME/.e is no longer compatible with new snapshot version. You will need to remove this directory and let e17 create it automatically on the next startup. 20080306: AFFECTS: users of mail/dovecot AUTHOR: ehaupt@FreeBSD.org The update to version 1.0.12 will require manual change to the active configuration file. mail_extra_groups setting was commonly used insecurely. This setting is now deprecated. Most users should switch to using mail_privileged_group setting, but if you really need the old functionality use mail_access_groups instead. 20080303: AFFECTS: users of security/gnutls and any port that depends on it AUTHOR: novel@FreeBSD.org gnutls has been updated to 2.2.2 and all shared libraries' versions have been bumped. So you need to rebuild all applications that depend on gnutls. Do something like: portupgrade -rf gnutls 20080223: AFFECTS: users of www/instiki AUTHOR: beech@FreeBSD.org The default installation directory for instiki has changed from /usr/local/instiki to /usr/local/share/instiki. If you are updating from a previous version, to preserve your settings and data, please do the following: mv /usr/local/instiki /usr/local/share Then update as usual. 20080219: AFFECTS: users of x11-wm/xmonad AUTHOR: jacula@gmail.com From now XMonad uses a new configuration file system, so you don't have to edit Config.hs anymore. Instead, create a custom configuration file ~/.xmonad/xmonad.hs. You can take a look at some samples on Xmonad's website. Note that you can be interested in x11-wm/xmonad-contrib. 20080218: AFFECTS: users of devel/poco and devel/poco-ssl AUTHOR: lippemail@gmail.com The HashFunction class template has been changed in an incompatible way. The member function formerly named hash() is now the function call operator. If you have defined your own HashFunction classes, then you have to update your code. 20080216: AFFECTS: users of sysutils/symon AUTHOR: uspoerlein@gmail.com The symon port has been updated from 2.75 to 2.78. It changes the wire protocol again. You should update your symux(8) and symon(8) installations simultaneously, as: - new symon clients will make old symux servers exit, and - new symux servers don't understand the old symon client's if() and mem() probes. 20080208: AFFECTS: users of ports-mgmt/portupgrade AUTHOR: sem@FreeBSD.org As was claimed in the entry 20070301 below in this file, you should fill ALT_DEPENDS section of pkgtools.conf for portupgrade to work correctly with your alternative dependencies. Now it is an obligatory requirement. It was done as a compromise between speed and complexity. 20080203: AFFECTS: users of www/xshttpd AUTHOR: johans@FreeBSD.org www/xshttpd now uses ${PREFIX}/www/xshttpd/ as a root directory for its data files. The xshttpd configuration files have been moved to ${PREFIX}/www/xshttpd/conf/. Please move the appropriate local files manually if you are upgrading from 3.4 or older versions. 20080202: AFFECTS: users of www/punbb AUTHOR: beech@FreeBSD.org Install paths have changed. Please do the following prior to upgrade: cd /usr/local/www mv punbb punbb.old cp -R punbb.old/upload punbb It is now safe to update as usual. Notes: * You will probably get uninstall errors regarding files not found. It's safe to ignore them * Your webserver path has changed from www/punbb/upload to www/punbb, please adjust your webserver configuration and restart it * When you are satisfied with everything working properly you may remove the punbb.old directory: rm -r /usr/local/www/punbb.old 20080201: AFFECTS: users of www/ziproxy AUTHOR: pankov_p@mail.ru The configuration file was moved from /usr/local/etc to /usr/local/etc/ziproxy. 20080126: AFFECTS: users of net-p2p/deluge AUTHOR: mezz@FreeBSD.org Deluge was updated to version 0.5.8.2. If you are using blocklist plugin, you have to remove blocklist.conf first before you can run it, or it will crash upon start up. $ rm -f ~/.config/deluge/blocklist.conf 20080125: AFFECTS: users of www/mod_security2 AUTHOR: araujo@FreeBSD.org Update of mod_security2 is a dramatic change, because there is a need to completely rewrite their obsolete rules and migrate for capacity to use new syntax. You are advised to make a complete backup of your configuration files before you can perform an update. 20080120: AFFECTS: users of www/apache20 AUTHOR: clement@FreeBSD.org BDB framework provided by bsd.database.mk is now used by www/apache20 port. WITH_BERKELEYDB knob is deprecated in favor of WITH_BDB and WITH_BDB_VER/WITH_BDB_BASE, see documentation for more details ('make show-options'). 20080120: AFFECTS: users of www/apache22 AUTHOR: clement@FreeBSD.org BDB framework provided by bsd.database.mk is now used by www/apache22 port. WITH_BERKELEYDB knob is deprecated in favor of WITH_BDB and WITH_BDB_VER/WITH_BDB_BASE, see documentation for more details. ('make show-options'). 20080118: AFFECTS: users of net/freeradius AUTHOR: David Wood FreeRADIUS 2.0 is now available as the net/freeradius2 port. All FreeRADIUS users are advised to consider upgrading to 2.0. It is the FreeRADIUS team's intention to put the 1.x server into 'maintenance' mode with just critical bug fixes.[1] 2.0 has many improvements including numerous bug fixes that were too difficult for the 1.x server, as well as many new features. Before uninstalling 1.x, it is recommended that you backup your configuration, which is typically in /usr/local/etc/raddb, then move it out of the way. It is also worth backing up the default configuration, which is typically in /usr/local/share/examples/freeradius/raddb. 1.x configurations should work with the 2.0 server [2]. However the port automatically upgrades any unedited files in the configuration when you install a new version of FreeRADIUS. Installing 2.0 with the residue of a 1.x configuration in the default location will result in a mixed 1.x and 2.0 configuration that may not work. The recommended approach is to diff your 1.x configuration against the default 1.x configuration, then make corresponding changes to a copy of the default 2.0 configuration. If you moved your 1.x configuration out of the way before upgrading, you will have a 2.0 configuration ready to edit in the default location. It is worth reading man 5 unlang for details of the new FreeRADIUS 'un-language' before starting. Alternatively, you can move your 1.x configuration to another location, such as /usr/local/etc/raddb_v1, then edit /etc/rc.conf to point the rc.d script to that location. For example: radiusd_flags="-d /usr/local/etc/raddb_v1" I cannot guarantee that all 1.x configurations will work with the 2.0 server, and I only recommend using a 1.x configuration as an interim measure. [1] - http://www.freeradius.org/business/roadmap.html [2] - http://preview.tinyurl.com/ysrr6a 20080114: AFFECTS: users of devel/perforce AUTHOR: lth@FreeBSD.org Perforce has been updated to version 2007.3. Upgrading is fairly straightforward, but it is still highly recommended to follow the upgrading instructions in the release notes: http://www.perforce.com/perforce/doc.073/user/relnotes.txt 20080108: AFFECTS: users of irc/bitlbee AUTHOR: brix@FreeBSD.org irc/bitlbee now stores saved user settings in /var/db/bitlbee/, not $PREFIX/etc/bitlbee/. You will have to manually move any existing user settings to the new location (or override the user settings directory using -d if you wish to keep the old behavior). Other configuration files are still kept in $PREFIX/etc/bitlbee/ by default. The default installation is now configured for running bitlbee as user 'nobody' by default. Make sure any existing configuration files are readable by that user. $FreeBSD$