Date: Wed, 16 Mar 2011 23:10:05 GMT From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org Subject: [SVN-Commit] r517 - branches/experimental/Mk trunk/Mk Message-ID: <201103162310.p2GNA57O007425@trillian.chruetertee.ch>
next in thread | raw e-mail | index | archive | help
Author: beat Date: Wed Mar 16 23:10:05 2011 New Revision: 517 Log: - Sync with ports Modified: branches/experimental/Mk/bsd.gecko.mk branches/experimental/Mk/bsd.port.mk trunk/Mk/bsd.gecko.mk Modified: branches/experimental/Mk/bsd.gecko.mk ============================================================================== --- branches/experimental/Mk/bsd.gecko.mk Tue Mar 15 14:16:11 2011 (r516) +++ branches/experimental/Mk/bsd.gecko.mk Wed Mar 16 23:10:05 2011 (r517) @@ -4,7 +4,7 @@ # Date created: 12 Nov 2005 # Whom: Michael Johnson <ahze@FreeBSD.org> # -# $FreeBSD: ports/Mk/bsd.gecko.mk,v 1.25 2010/11/30 13:03:10 beat Exp $ +# $FreeBSD: ports/Mk/bsd.gecko.mk,v 1.26 2010/12/18 11:15:33 beat Exp $ # # 4 column tabs prevent hair loss and tooth decay! @@ -184,16 +184,6 @@ # USE_FIREFOX_BUILD Add buildtime dependency on Firefox. # Available values: see USE_FIREFOX # -# INVALID_FIREFOX_VER This variable contains a list of Firefox versions -# not supported by the port. This setting is effective -# only when USE_FIREFOX is set to a range (e.g. 35+) -# -# WITH_FIREFOX_VER User defined global variable to set Firefox version -# This variable is effective only if USE_FIREFOX is -# set to a range (e.g. 35+) and WITH_FIREFOX_VER -# points inside that range. -# NOTE: INVALID_FIREFOX_VER takes precedence -# # USE_SEAMONKEY Add runtime dependency on SeaMonkey. If no # version is given by the maintainer via the port # or by the user via defined variable try to find @@ -205,16 +195,6 @@ # USE_SEAMONKEY_BUILD Add buildtime dependency on SeaMonkey. # Available values: see USE_SEAMONKEY # -# INVALID_SEAMONKEY_VER This variable contains a list of SeaMonkey versions -# not supported by the port. This setting is effective -# only when USE_SEAMONKEY is set to a range (e.g. 11+) -# -# WITH_SEAMONKEY_VER User defined global variable to set SeaMonkey version -# This variable is effective only if USE_SEAMONKEY is -# set to a range (e.g. 11+) and WITH_SEAMONKEY_VER -# points inside that range. -# NOTE: INVALID_SEAMONKEY_VER takes precedence -# # USE_THUNDERBIRD Add runtime dependency on Thunderbird. If no # version is given by the maintainer via the port # or by the user via defined variable try to find @@ -226,15 +206,6 @@ # USE_THUNDERBIRD_BUILD Add buildtime dependency on Thunderbird. # Available values: see USE_THUNDERBIRD # -# INVALID_THUNDERBIRD_VER This variable contains a list of Thunderbird versions -# not supported by the port. This setting is effective -# only when USE_THUNDERBIRD is set to a range (e.g. 30+) -# -# WITH_THUNDERBIRD_VER User defined global variable to set Thunderbird version -# This variable is effective only if USE_THUNDERBIRD is -# set to a range (e.g. 30+) and WITH_THUNDERBIRD_VER -# points inside that range. -# NOTE: INVALID_THUNDERBIRD_VER takes precedence # # Firefox part @@ -260,32 +231,6 @@ USE_FIREFOX= ${_FIREFOX_DEFAULT_VERSION} .endif -# Check if we have user-defined WITH_FIREFOX_VER and if it matches -# the range specified in port's USE_FIREFOX -.if defined(WITH_FIREFOX_VER) -.for ver in ${_FIREFOX_RANGE_VERSIONS} -.if ${USE_FIREFOX} == "${ver}" -_MATCHED_FIREFOX_VER:= ${USE_FIREFOX:S/+//} -.for firefox in ${_FIREFOX_${_MATCHED_FIREFOX_VER}P} -.if ${WITH_FIREFOX_VER} == ${firefox} -# Check if user supplied WITH_FIREFOX is in the INVALID_FIREFOX_VER list -_BRKFIREFOX= no -.for iver in ${INVALID_FIREFOX_VER} -.if ${WITH_FIREFOX_VER} == ${iver} -_BRKFIREFOX= yes -.endif -.endfor -# If WITH_FIREFOX is not in the INVALID_FIREFOX_VER list, use it -# otherwise take default from port -.if ${_BRKFIREFOX} == "no" -USE_FIREFOX= ${WITH_FIREFOX_VER} -.endif -.endif -.endfor -.endif -.endfor -.endif - # Setting/finding Firefox version we want. .if exists(${LOCALBASE}/bin/firefox3) _FIREFOX_VER!= ${LOCALBASE}/bin/firefox3 --version | ${SED} -e 's/Mozilla Firefox \([0-9]\)\.\([0-9]*\).*/\1\2/' @@ -359,32 +304,6 @@ USE_SEAMONKEY= ${_SEAMONKEY_DEFAULT_VERSION} .endif -# Check if we have user-defined WITH_SEAMONKEY_VER and if it matches -# the range specified in port's USE_SEAMONKEY -.if defined(WITH_SEAMONKEY_VER) -.for ver in ${_SEAMONKEY_RANGE_VERSIONS} -.if ${USE_SEAMONKEY} == "${ver}" -_MATCHED_SEAMONKEY_VER:= ${USE_SEAMONKEY:S/+//} -.for seamonkey in ${_SEAMONKEY_${_MATCHED_SEAMONKEY_VER}P} -.if ${WITH_SEAMONKEY_VER} == ${seamonkey} -# Check if user supplied WITH_SEAMONKEY is in the INVALID_SEAMONKEY_VER list -_BRKSEAMONKEY= no -.for iver in ${INVALID_SEAMONKEY_VER} -.if ${WITH_SEAMONKEY_VER} == ${iver} -_BRKSEAMONKEY= yes -.endif -.endfor -# If WITH_SEAMONKEY is not in the INVALID_SEAMONKEY_VER list, use it -# otherwise take default from port -.if ${_BRKSEAMONKEY} == "no" -USE_SEAMONKEY= ${WITH_SEAMONKEY_VER} -.endif -.endif -.endfor -.endif -.endfor -.endif - # Setting/finding SeaMonkey version we want. .if exists(${LOCALBASE}/bin/seamonkey) _SEAMONKEY_VER!= ${LOCALBASE}/bin/seamonkey --version | ${SED} -e 's/Mozilla SeaMonkey \([0-9]\)\.\([0-9]*\).*/\1\2/' @@ -456,32 +375,6 @@ USE_THUNDERBIRD= ${_THUNDERBIRD_DEFAULT_VERSION} .endif -# Check if we have user-defined WITH_THUNDERBIRD_VER and if it matches -# the range specified in port's USE_THUNDERBIRD -.if defined(WITH_THUNDERBIRD_VER) -.for ver in ${_THUNDERBIRD_RANGE_VERSIONS} -.if ${USE_THUNDERBIRD} == "${ver}" -_MATCHED_THUNDERBIRD_VER:= ${USE_THUNDERBIRD:S/+//} -.for thunderbird in ${_THUNDERBIRD_${_MATCHED_THUNDERBIRD_VER}P} -.if ${WITH_THUNDERBIRD_VER} == ${thunderbird} -# Check if user supplied WITH_THUNDERBIRD is in the INVALID_THUNDERBIRD_VER list -_BRKTHUNDERBIRD= no -.for iver in ${INVALID_THUNDERBIRD_VER} -.if ${WITH_THUNDERBIRD_VER} == ${iver} -_BRKTHUNDERBIRD= yes -.endif -.endfor -# If WITH_THUNDERBIRD is not in the INVALID_THUNDERBIRD_VER list, use it -# otherwise take default from port -.if ${_BRKTHUNDERBIRD} == "no" -USE_THUNDERBIRD= ${WITH_THUNDERBIRD_VER} -.endif -.endif -.endfor -.endif -.endfor -.endif - # Setting/finding Thunderbird version we want. .if exists(${LOCALBASE}/bin/thunderbird) _THUNDERBIRD_VER!= ${LOCALBASE}/bin/thunderbird --version | ${SED} -e 's/ Thunderbird \([0-9]\)\.\([0-9]*\).*/\1\2/' Modified: branches/experimental/Mk/bsd.port.mk ============================================================================== --- branches/experimental/Mk/bsd.port.mk Tue Mar 15 14:16:11 2011 (r516) +++ branches/experimental/Mk/bsd.port.mk Wed Mar 16 23:10:05 2011 (r517) @@ -1,7 +1,7 @@ #-*- mode: makefile; tab-width: 4; -*- # ex:ts=4 # -# $FreeBSD: ports/Mk/bsd.port.mk,v 1.635 2010/02/05 21:18:15 skv Exp $ +# $FreeBSD: ports/Mk/bsd.port.mk,v 1.674 2011/03/07 07:32:05 erwin Exp $ # $NetBSD: $ # # bsd.port.mk - 940820 Jordan K. Hubbard. @@ -94,7 +94,8 @@ # 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, .run if USE_MAKESELF is set, .tar.gz otherwise). +# 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. @@ -287,15 +288,17 @@ # 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. -# 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. +# 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 @@ -309,12 +312,16 @@ # 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 - If set, this port uses GNU gettext (libintl). +# 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_PERL5 - If set, this port uses perl5 in one or more of the extract, # patch, build, install or run phases. @@ -364,8 +371,7 @@ # should not be used in Makefile. ## # USE_BISON - Implies that the port uses bison in one way or another: -# 'yes' (backwards compatibility) - use bison for building -# new features: 'build', 'run', 'both', implying build, +# 'build', 'run', 'both', implying build, # runtime, and both build/run dependencies ## # USE_IMAKE - If set, this port uses imake. @@ -383,7 +389,7 @@ # 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 -# glut depends on glu, glw and glu depend on gl. +# 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. @@ -441,6 +447,8 @@ # 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_*). @@ -489,7 +497,7 @@ # 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 INSTALLS_SHLIB is defined: +# 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 @@ -519,8 +527,7 @@ # 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 and may need to -# depend on the sysutils/rc_subr port. +# 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 @@ -528,16 +535,12 @@ # 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. -# RC_SUBR - Set to path of rc.subr. -# Default: ${LOCALBASE}/etc/rc.subr. -# RC_SUBR_SUFFIX -# - Contains the suffix of installed rc.subr scripts. +# 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, unless -# cdrtools-cjk is present or USE_CDRTOOLS=cjk is set, then -# it depends on sysutils/cdrtools-cjk. +# USE_CDRTOOLS - If set, this port depends on sysutils/cdrtools. # # Conflict checking. Use if your port cannot be installed at the same time as # another package. @@ -547,6 +550,12 @@ # 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. # @@ -599,6 +608,8 @@ # 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. @@ -612,6 +623,7 @@ # 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. @@ -680,7 +692,7 @@ # 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 (for example because NOPORTDOCS is defined). +# installed. # Useful for dynamically generated documentation. # # Set the following to specify all documentation your port installs into @@ -690,7 +702,7 @@ # 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 (for example because NOPORTEXAMPLES is defined). +# installed. # Useful for dynamically generated examples. # # Set the following to specify all documentation your port installs into @@ -700,7 +712,7 @@ # 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 (for example because NOPORTDATA is defined). +# installed. # Useful for dynamically generated data files. # # Default targets and their behaviors: @@ -761,7 +773,7 @@ # 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 dependancies. +# - 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 @@ -777,14 +789,16 @@ # Automatically run prior to extract, patch, configure, build, # install, and package. # config-recursive -# - Configure options for this port for this port and all +# - 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 dependencies. +# - 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 dependencies. +# - Remove the options config for this port and all its +# dependencies. # # Default sequence for "all" is: # @@ -827,7 +841,7 @@ # 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: "-ApRr" +# Default: "-AFpr" # FETCH_CMD - ftp/http fetch command. # Default: ${FETCH_BINARY} ${FETCH_ARGS} # FETCH_BEFORE_ARGS @@ -857,14 +871,6 @@ # 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 makesum: -# -# NO_SIZE - Don't record size data in distinfo, needed -# when the master site does not report file -# sizes, or when multiple valid versions of -# a distfile, having different sizes, exist. -# # For patch: # # EXTRA_PATCHES - Define this variable if you have patches not in @@ -964,6 +970,7 @@ # 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. @@ -990,25 +997,10 @@ # SUB_LIST - List of "variable=value" pair for substitution in ${SUB_FILES} # Some pairs are added by default: eg. PREFIX=${PREFIX} # -# INSTALLS_SHLIB -# - If set, bsd.port.mk will automatically run ldconfig commands -# from post-install and also add appropriate @exec/@unexec -# directives to directories listed in LDCONFIG_DIRS. (deprecated) -# If USE_LINUX_PREFIX is defined, the Linux version of -# ldconfig will be used instead of the native FreeBSD -# version, and LDCONFIG_DIRS will be ignored. -# LDCONFIG_DIRS - List of directories to run ldconfig if INSTALLS_SHLIB is set. -# Note that this is passed through sed just like the -# rest of PLIST, so ${PLIST_SUB} substitutions also -# apply here. It is recommended that you use -# %%PREFIX%% for ${PREFIX}, %%LOCALBASE%% for -# ${LOCALBASE} and %%X11BASE%% for ${X11BASE}. -# Default: %%PREFIX%%/lib -# USE_LDCONFIG - If set to "yes", this subsumes the function of the -# deprecated variable INSTALLS_SHLIB and 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 +# 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 @@ -1130,7 +1122,7 @@ # - 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: md5 sha256 +# Default: sha256 (md5 is deprecated, allowed but unused) # 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 @@ -1159,6 +1151,7 @@ DISTDIR?= ${PORTSDIR}/distfiles _DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} INDEXDIR?= ${PORTSDIR} +SRC_BASE?= /usr/src .include "${PORTSDIR}/Mk/bsd.commands.mk" @@ -1228,7 +1221,7 @@ .if exists(/usr/include/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h .elif exists(/usr/src/sys/sys/param.h) -OSVERSION!= ${AWK} '/^\#define[[:blank::]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h +OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h .else OSVERSION!= ${SYSCTL} -n kern.osreldate .endif @@ -1347,6 +1340,11 @@ CONFIGURE_ENV+= TMPDIR="${TMPDIR}" .endif # defined(TMPDIR) +# Reset value from bsd.own.mk. +.if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG) +STRIP= #none +.endif + # Start of pre-makefile section. .if !defined(AFTERPORTMK) && !defined(INOPTIONSMK) @@ -1416,6 +1414,8 @@ 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 @@ -1438,12 +1438,6 @@ .if defined(USE_LINUX_PREFIX) LDCONFIG_CMD?= ${LINUXBASE}/sbin/ldconfig -r ${LINUXBASE} -LDCONFIG_PLIST_EXEC_CMD?= ${LDCONFIG_CMD} -LDCONFIG_PLIST_UNEXEC_CMD?= ${LDCONFIG_CMD} -.else -LDCONFIG_CMD?= ${LDCONFIG} -m ${LDCONFIG_RUNLIST} -LDCONFIG_PLIST_EXEC_CMD?= ${LDCONFIG} -m ${LDCONFIG_PLIST} -LDCONFIG_PLIST_UNEXEC_CMD?= ${LDCONFIG} -R .endif PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg @@ -1472,7 +1466,9 @@ PERL_ARCH?= mach -.if ${PERL_LEVEL} >= 501000 +.if ${PERL_LEVEL} >= 501200 +PERL_PORT?= perl5.12 +.elif ${PERL_LEVEL} >= 501000 PERL_PORT?= perl5.10 .else PERL_PORT?= perl5.8 @@ -1526,6 +1522,10 @@ .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 @@ -1538,7 +1538,7 @@ .include "${PORTSDIR}/Mk/bsd.tcl.mk" .endif -.if defined(USE_APACHE) || defined(APACHE_COMPAT) +.if defined(USE_APACHE) .include "${PORTSDIR}/Mk/bsd.apache.mk" .endif @@ -1554,7 +1554,7 @@ .include "${PORTSDIR}/Mk/bsd.gecko.mk" .endif -.if defined(WANT_GNOME) || defined(USE_GNOME) +.if defined(WANT_GNOME) || defined(USE_GNOME) || defined(INSTALLS_ICONS) .include "${PORTSDIR}/Mk/bsd.gnome.mk" .endif @@ -1635,9 +1635,9 @@ WWWDIR=${WWWDIR} ETCDIR=${ETCDIR} PLIST_REINPLACE+= dirrmtry stopdaemon rmtry -PLIST_REINPLACE_DIRRMTRY=s!^@dirrmtry \(.*\)!@unexec rmdir %D/\1 2>/dev/null || true! +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${RC_SUBR_SUFFIX} forcestop 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 @@ -1652,7 +1652,6 @@ .endif .if defined(WITH_DEBUG) && !defined(WITHOUT_DEBUG) -STRIP= #none STRIP_CMD= ${TRUE} DEBUG_FLAGS?= -g CFLAGS:= ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS} @@ -1734,6 +1733,9 @@ .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 @@ -1746,6 +1748,22 @@ .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 @@ -1753,7 +1771,7 @@ .if defined(USE_OPENAL) _OPENAL_ALL= al si soft alut _OPENAL_LIBS= si soft -# Default choie. +# Default choice. _DEFAULT_OPENAL= soft _OPENAL_SOFT= openal.1:${PORTSDIR}/audio/openal-soft @@ -1867,21 +1885,13 @@ .endif .endif # USE_FAM -.if defined(USE_RC_SUBR) || defined(USE_RCORDER) -RC_SUBR= /etc/rc.subr -SUB_LIST+= RC_SUBR=${RC_SUBR} .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 (${OSVERSION} >= 700007 || ${OSVERSION} < 700000) -RC_SUBR_SUFFIX?= -.else -RC_SUBR_SUFFIX?= .sh -.endif -.endif .if defined(USE_LDCONFIG) && ${USE_LDCONFIG:L} == "yes" USE_LDCONFIG= ${PREFIX}/lib @@ -1895,14 +1905,18 @@ .endif .if defined(USE_GETTEXT) -. if ${USE_GETTEXT:L} == "yes" +. 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 -LIB_DEPENDS+= intl.${USE_GETTEXT}:${PORTSDIR}/devel/gettext +IGNORE= USE_GETTEXT can be only one of build, run, or yes . endif .endif -.if defined(USE_LINUX_PREFIX) && (defined(INSTALLS_SHLIB) || defined(USE_LDCONFIG)) +.if defined(USE_LINUX_PREFIX) && defined(USE_LDCONFIG) # we need ${LINUXBASE}/sbin/ldconfig USE_LINUX?= yes .endif @@ -1935,7 +1949,7 @@ LINUX_BASE_PORT= ${LINUXBASE}/bin/sh:${PORTSDIR}/emulators/linux_base-${USE_LINUX} . else . if ${USE_LINUX:L} == "yes" -. if ${OSVERSION} < 800076 +. 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 @@ -1981,13 +1995,18 @@ X_FONTS_ALIAS_PORT= ${PORTSDIR}/x11-fonts/font-alias .if defined(USE_IMAKE) -BUILD_DEPENDS+= imake:${X_IMAKE_PORT} +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} \ ${X11BASE}/lib/X11/fonts/misc/8x13O.pcf.gz:${X_FONTS_MISC_PORT} \ - ${X11BASE}/lib/X11/fonts/misc/fonts.alias:${X_FONTS_ALIAS_PORT} + ${X11BASE}/lib/X11/fonts/misc/fonts.alias:${X_FONTS_ALIAS_PORT} \ + ${X11BASE}/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" @@ -2004,6 +2023,7 @@ 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.3:${PORTSDIR}/graphics/libglut @@ -2027,13 +2047,6 @@ .if defined(USE_BISON) _BISON_DEPENDS= bison:${PORTSDIR}/devel/bison -# XXX: backwards compatibility -. if ${USE_BISON:L} == "yes" -USE_BISON= build -pre-everything:: - @${ECHO_MSG} "WARNING: USE_BISON=yes deprecated, use build/run/both" -. endif - . if ${USE_BISON:L} == "build" BUILD_DEPENDS+= ${_BISON_DEPENDS} . elif ${USE_BISON:L} == "run" @@ -2231,14 +2244,9 @@ # Set up the cdrtools. .if defined(USE_CDRTOOLS) -.if exists(${DOCSDIR}/cdrtools-cjk/README) || defined(WITH_CJK) || ${USE_CDRTOOLS:L} == "cjk" -BUILD_DEPENDS+= cdrecord:${PORTSDIR}/sysutils/cdrtools-cjk -RUN_DEPENDS+= cdrecord:${PORTSDIR}/sysutils/cdrtools-cjk -.else BUILD_DEPENDS+= cdrecord:${PORTSDIR}/sysutils/cdrtools RUN_DEPENDS+= cdrecord:${PORTSDIR}/sysutils/cdrtools .endif -.endif # Macro for doing in-place file editing using regexps REINPLACE_ARGS?= -i.bak @@ -2259,16 +2267,18 @@ # Use this as the first operand to always build dependency. NONEXISTENT?= /nonexistent -CHECKSUM_ALGORITHMS?= md5 sha256 +CHECKSUM_ALGORITHMS?= sha256 -MD5_FILE?= ${MASTERDIR}/distinfo +DISTINFO_FILE?= ${MASTERDIR}/distinfo MAKE_FLAGS?= -f MAKEFILE?= Makefile MAKE_ENV+= PREFIX=${PREFIX} \ LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} \ MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" \ - CC="${CC}" CFLAGS="${CFLAGS}" CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \ + CC="${CC}" CFLAGS="${CFLAGS}" \ + CPP="${CPP}" CPPFLAGS="${CPPFLAGS}" \ + CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \ MANPREFIX="${MANPREFIX}" # Add -fno-strict-aliasing to CFLAGS with optimization level -O2 or higher. @@ -2292,7 +2302,7 @@ .else .if defined(MAKE_JOBS_SAFE) || defined(FORCE_MAKE_JOBS) MAKE_JOBS_NUMBER?= `${SYSCTL} -n kern.smp.cpus` -_MAKE_JOBS= -j${MAKE_JOBS_NUMBER} +_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 @@ -2304,7 +2314,7 @@ .if exists(/usr/bin/fetch) FETCH_BINARY?= /usr/bin/fetch -FETCH_ARGS?= -ApRr +FETCH_ARGS?= -AFpr FETCH_REGET?= 1 .if !defined(DISABLE_SIZE) FETCH_BEFORE_ARGS+= $${CKSIZE:+-S $$CKSIZE} @@ -2378,6 +2388,8 @@ .endif .if defined(USE_BZIP2) EXTRACT_CMD?= ${BZIP2_CMD} +.elif defined(USE_XZ) +EXTRACT_CMD?= ${XZ_CMD} .else EXTRACT_CMD?= ${GZIP_CMD} .endif @@ -2416,6 +2428,8 @@ ${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= \ @@ -2424,6 +2438,7 @@ ${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}" @@ -2487,6 +2502,9 @@ .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 @@ -2501,6 +2519,9 @@ ALL_TARGET?= all INSTALL_TARGET?= install +# Integrate with the license auditing framework +.include "${PORTSDIR}/Mk/bsd.licenses.mk" + # Popular master sites .include "${PORTSDIR}/Mk/bsd.sites.mk" @@ -2933,7 +2954,7 @@ VALID_CATEGORIES+= accessibility afterstep arabic archivers astro audio \ benchmarks biology cad chinese comms converters databases \ - deskutils devel docs dns editors elisp emulators finance french ftp \ + 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 \ @@ -3060,12 +3081,8 @@ @${FALSE} .endif _MLINKS= ${_MLINKS_PREPEND} -# XXX 20040119 This next line should read: -# .for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%} -# but there is currently a bug in make(1) that prevents the double-quote -# substitution from working correctly. Once that problem is addressed, -# and has had a enough time to mature, this hack should be removed. -.for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%} + +.for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%} .for ___pmlinks in ${__pmlinks} .for __lang in ${lang} _MLINKS+= ${___pmlinks:S// /g} @@ -3083,12 +3100,7 @@ .endif .endfor -# XXX 20040119 This next line should read: -# .for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%} -# but there is currently a bug in make(1) that prevents the double-quote -# substitution from working correctly. Once that problem is addressed, -# and has had a enough time to mature, this hack should be removed. -.for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%} +.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 @@ -3174,14 +3186,6 @@ _DESKTOPDIR_REL= .endif -# Put this as far down as possible so it will catch all PLIST_SUB definitions. - -.if defined(INSTALLS_SHLIB) -LDCONFIG_DIRS?= %%PREFIX%%/lib -LDCONFIG_PLIST!= ${ECHO_CMD} ${LDCONFIG_DIRS} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -LDCONFIG_RUNLIST!= ${ECHO_CMD} ${LDCONFIG_PLIST} | ${SED} -e "s!%D!${PREFIX}!g" -.endif - .MAIN: all ################################################################ @@ -3316,6 +3320,8 @@ # 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 @@ -3334,6 +3340,8 @@ clean-for-cdrom-list: .endif +.endif # !defined(LICENSE) + .if defined(ALL_HOOK) all: @cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTNAME=${DISTNAME} \ @@ -3398,9 +3406,9 @@ .endif # Disable install -.if defined(NO_INSTALL) && !target(install) -install: build - @${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE} +.if defined(NO_INSTALL) && !target(do-install) +do-install: + @${DO_NADA} .endif # Disable package @@ -3429,8 +3437,6 @@ # Pre-everything -# XXX MCL suggests deprecating this in favor of something -# less likely to be abused by overloading pre-everything:: @${DO_NADA} @@ -3451,9 +3457,6 @@ .endif .if defined(_OPTIONS_READ) @${ECHO_MSG} "===> Found saved configuration for ${_OPTIONS_READ}" -.if ${OPTIONSFILE} != ${OPTIONSFILE} - @${ECHO_MSG} "===> *** CAUTION *** Using wrong configuration file ${OPTIONSFILE}" -.endif .endif @@ -3492,7 +3495,7 @@ vlist=`${_EXTRACT_AUDITFILE} | ${GREP} "${PORTNAME}" | \ ${AWK} -F\| ' /^[^#]/ { \ if (!system("${PKG_VERSION} -T \"${PKGNAME}\" \"" $$1 "\"")) \ - print "=> " $$3 ".\n Reference: <" $$2 ">" \ + print "=> " $$3 ".\n Reference: " $$2 \ } \ '`; \ if [ -n "$$vlist" ]; then \ @@ -3506,10 +3509,10 @@ fi .endif -# set alg to any of SIZE, MD5, SHA256 (or any other checksum algorithm): -DISTINFO_DATA?= if [ \( -n "${DISABLE_SIZE}" -a -n "${NO_CHECKSUM}" \) -o ! -f "${MD5_FILE}" ]; then exit; fi; \ +# 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}' ${MD5_FILE} + '$$1 == alg && $$2 == "(" file ")" {print $$4}' ${DISTINFO_FILE} # Fetch @@ -3540,11 +3543,11 @@ ${ECHO_MSG} "=> Please correct this problem and try again."; \ exit 1; \ fi; \ - if [ -f ${MD5_FILE} -a "x${NO_CHECKSUM}" = "x" ]; then \ - _md5sum=`alg=MD5; ${DISTINFO_DATA}`; \ - if [ -z "$$_md5sum" ]; then \ - ${ECHO_MSG} "=> $${DIR:+$$DIR/}$$file is not in ${MD5_FILE}."; \ - ${ECHO_MSG} "=> Either ${MD5_FILE} is out of date, or"; \ + 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; \ @@ -3568,7 +3571,7 @@ 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 from $${site}."; \ + ${ECHO_MSG} "=> Attempting to fetch $${site}$${file}"; \ CKSIZE=`alg=SIZE; ${DISTINFO_DATA}`; \ case $${file} in \ */*) ${MKDIR} $${file%/*}; \ @@ -3620,7 +3623,7 @@ 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 from $${site}."; \ + ${ECHO_MSG} "=> Attempting to fetch $${site}$${file}"; \ CKSIZE=`alg=SIZE; ${DISTINFO_DATA}`; \ case $${file} in \ */*) ${MKDIR} $${file%/*}; \ @@ -3743,6 +3746,11 @@ fi .endif +.if !target(configure-autotools) +configure-autotools: + @${DO_NADA} +.endif + .if !target(run-autotools) run-autotools: @${DO_NADA} @@ -3769,10 +3777,11 @@ .if defined(HAS_CONFIGURE) @(cd ${CONFIGURE_WRKSRC} && \ ${SET_LATE_CONFIGURE_ARGS} \ - if ! ${SETENV} CC="${CC}" CXX="${CXX}" \ - CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \ + if ! ${SETENV} CC="${CC}" CPP="${CPP}" CXX="${CXX}" \ + CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" CXXFLAGS="${CXXFLAGS}" \ 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 \ @@ -3812,9 +3821,92 @@ # Check conflicts .if !target(check-conflicts) -check-conflicts: -.if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS) - @found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \ +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 \ @@ -3836,7 +3928,8 @@ ${ECHO_MSG} " Please remove them first with pkg_delete(1)."; \ exit 1; \ fi -.endif # CONFLICTS +.endif # defined(DEFER_CONFLICTS_CHECK) +.endif .endif # Install @@ -3869,20 +3962,7 @@ fi; \ fi @__softMAKEFLAGS='${__softMAKEFLAGS:S/'/'\''/g}'; \ - _LATE_PKG_ARGS=""; \ - if [ -f ${PKGINSTALL} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -i ${PKGINSTALL}"; \ - fi; \ - if [ -f ${PKGDEINSTALL} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -k ${PKGDEINSTALL}"; \ - fi; \ - if [ -f ${PKGREQ} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -r ${PKGREQ}"; \ - fi; \ - if [ -f ${PKGMESSAGE} ]; then \ - _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -D ${PKGMESSAGE}"; \ - fi; \ - if ${PKG_CMD} ${PKG_ARGS} ${PKGFILE}; then \ + if ${PKG_CMD} -b ${PKGNAME} ${PKGFILE}; then \ if [ -d ${PACKAGES} ]; then \ cd ${.CURDIR} && eval ${MAKE} $${__softMAKEFLAGS} package-links; \ fi; \ @@ -4032,7 +4112,7 @@ .if !target(install-ldconfig-file) install-ldconfig-file: -.if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) || defined(INSTALLS_SHLIB) +.if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) .if defined(USE_LDCONFIG) .if defined(USE_LINUX_PREFIX) @${ECHO_MSG} "===> Running linux ldconfig" @@ -4082,25 +4162,10 @@ .endif .endif .endif -# This can be removed once all ports have been converted to USE_LDCONFIG. .if defined(INSTALLS_SHLIB) -.if defined(USE_LDCONFIG) - @${ECHO_MSG} "===> INSTALLS_SHLIB and USE_LDCONFIG both defined." -.endif -.if defined(USE_LDCONFIG32) - @${ECHO_MSG} "===> INSTALLS_SHLIB and USE_LDCONFIG32 both defined." -.endif -.if !defined(INSTALL_AS_USER) - @${ECHO_MSG} "===> Running ldconfig" - ${LDCONFIG_CMD} -.else - @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" - -${LDCONFIG_CMD} + @${ECHO_MSG} "INSTALLS_SHLIB is deprecated. Use USE_LDCONFIG instead." .endif .endif -.else - @${DO_NADA} -.endif .endif .if !target(create-users-groups) @@ -4338,32 +4403,34 @@ .endif _SANITY_SEQ= ${_CHROOT_SEQ} pre-everything check-makefile \ check-categories check-makevars check-desktop-entries \ - check-conflicts check-depends check-deprecated \ - check-vulnerable buildanyway-message options-message + check-depends identify-install-conflicts check-deprecated \ + check-vulnerable check-license buildanyway-message \ + options-message _FETCH_DEP= check-sanity _FETCH_SEQ= fetch-depends pre-fetch pre-fetch-script \ do-fetch post-fetch post-fetch-script _EXTRACT_DEP= fetch -_EXTRACT_SEQ= extract-message checksum extract-depends pre-extract \ - pre-extract-script do-extract \ +_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= patch-message patch-depends patch-dos2unix pre-patch \ +_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 \ - pre-configure pre-configure-script \ + 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 run-depends lib-depends apply-slist pre-install \ +_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 post-install post-install-script \ - add-plist-info add-plist-docs add-plist-examples add-plist-data \ + install-desktop-entries install-license \ + post-install post-install-script add-plist-info \ + add-plist-docs add-plist-examples add-plist-data \ add-plist-post install-rc-script compress-man \ install-ldconfig-file fake-pkg security-check _PACKAGE_DEP= install @@ -4756,7 +4823,7 @@ fi ; \ for site in `eval $$SORTED_MASTER_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ DIR=${DIST_SUBDIR}; \ - CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ + CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${DISTINFO_FILE} | ${AWK} '{print $$4}'`; \ case $${file} in \ */*) args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ @@ -4787,7 +4854,7 @@ fi ; \ for site in `eval $$SORTED_PATCH_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \ DIR=${DIST_SUBDIR}; \ - CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ + CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${DISTINFO_FILE} | ${AWK} '{print $$4}'`; \ case $${file} in \ */*) args="-o $${file} $${site}$${file}";; \ *) args=$${site}$${file};; \ @@ -4845,7 +4912,7 @@ makesum: check-checksum-algorithms @cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} fetch NO_CHECKSUM=yes \ DISABLE_SIZE=yes - @if [ -f ${MD5_FILE} ]; then ${CAT} /dev/null > ${MD5_FILE}; fi + @if [ -f ${DISTINFO_FILE} ]; then ${CAT} /dev/null > ${DISTINFO_FILE}; fi @( \ cd ${DISTDIR}; \ \ @@ -4856,17 +4923,15 @@ eval alg_executable=\$$$$alg; \ \ if [ $$alg_executable != "NO" ]; then \ - $$alg_executable $$file >> ${MD5_FILE}; \ + $$alg_executable $$file >> ${DISTINFO_FILE}; \ fi; \ done; \ - if [ -z "${NO_SIZE}" ]; then \ - ${ECHO_CMD} "SIZE ($$file) = "`${LS} -ALln $$file | ${AWK} '{print $$5}'` >> ${MD5_FILE}; \ - fi; \ + ${ECHO_CMD} "SIZE ($$file) = "`${LS} -ALln $$file | ${AWK} '{print $$5}'` >> ${DISTINFO_FILE}; \ done \ ) @for file in ${_IGNOREFILES}; do \ for alg in ${CHECKSUM_ALGORITHMS:U}; do \ - ${ECHO_CMD} "$$alg ($$file) = IGNORE" >> ${MD5_FILE}; \ + ${ECHO_CMD} "$$alg ($$file) = IGNORE" >> ${DISTINFO_FILE}; \ done; \ done .endif @@ -4874,7 +4939,7 @@ .if !target(checksum) checksum: fetch check-checksum-algorithms @${checksum_init} \ - if [ -f ${MD5_FILE} ]; then \ + if [ -f ${DISTINFO_FILE} ]; then \ cd ${DISTDIR}; OK="";\ for file in ${_CKSUMFILES}; do \ ignored="true"; \ @@ -4978,7 +5043,7 @@ \ 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 (${MD5_FILE})"; \ + ${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; \ @@ -4987,7 +5052,7 @@ exit 1; \ fi; \ elif [ -n "${_CKSUMFILES:M*}" ]; then \ - ${ECHO_MSG} "=> No checksum file (${MD5_FILE})."; \ + ${ECHO_MSG} "=> No checksum file (${DISTINFO_FILE})."; \ fi .endif @@ -5374,7 +5439,7 @@ continue; \ fi;; \ esac; \ - echo cd $$dir; ${MAKE} $$targ; \ + echo cd $$dir; cd $$dir; ${MAKE} $$targ; \ done .if !target(fetch-required) @@ -5494,8 +5559,13 @@ fi; \ done); \ for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \ - tmp=$${dir%/*}; \ - dir=$${tmp\#\#*/}/$${dir\#\#*/}; \ + 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 \ @@ -5532,11 +5602,11 @@ # Show missing dependiencies missing: - @for dir in $$(${ALL-DEPENDS-LIST}); do \ - THISORIGIN=$${dir##${PORTSDIR}/}; \ - installed=$$(${PKG_INFO} -qO $${THISORIGIN}); \ - if [ -z "$$installed" ]; then \ - ${ECHO_CMD} $$THISORIGIN; \ + @_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 @@ -5555,9 +5625,6 @@ # If this ever changes, portmgr should contact the portsnap maintainer # first to avoid gratuitous breakage. -# XXX Older versions do not support the :u make modifier. The .else -# clause can be removed once 6.3-RELEASE is no longer supported. -.if ${OSVERSION} >= 603104 . if !target(describe) _EXTRACT_DEPENDS=${EXTRACT_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} _PATCH_DEPENDS=${PATCH_DEPENDS:C/^[^ :]+:([^ :]+)(:[^ :]+)?/\1/:O:u} @@ -5586,71 +5653,6 @@ esac; \ done < ${DESCR}; ${ECHO_CMD} . endif -.else -. if !target(describe) -describe: - @${ECHO_CMD} -n "${PKGNAME}|${.CURDIR}|${PREFIX}|" -. if defined(COMMENT) - @${ECHO_CMD} -n ${COMMENT:Q} -. else - @${ECHO_CMD} -n '** No Description' -. endif - @perl -e ' \ - if ( -f q{${DESCR}} ) { \ - print q{|${DESCR}}; \ - } else { \ - print q{|/dev/null}; \ - } \ - print q{|${MAINTAINER}|${CATEGORIES}|}; \ - @edirs = map((split /:/)[1], split(q{ }, q{${EXTRACT_DEPENDS}})); \ - @pdirs = map((split /:/)[1], split(q{ }, q{${PATCH_DEPENDS}})); \ - @fdirs = map((split /:/)[1], split(q{ }, q{${FETCH_DEPENDS}})); \ - @bdirs = map((split /:/)[1], split(q{ }, q{${BUILD_DEPENDS}})); \ - @rdirs = map((split /:/)[1], split(q{ }, q{${RUN_DEPENDS}})); \ - @ldirs = map((split /:/)[1], split(q{ }, q{${LIB_DEPENDS}})); \ - for my $$i (\@edirs, \@pdirs, \@fdirs, \@bdirs, \@rdirs, \@ddirs, \@ldirs) { \ - my @dirs = @$$i; \ - @$$i = (); \ - for (@dirs) { \ - if (-d $$_) { \ - push @$$i, $$_; \ - } else { \ - print STDERR qq{${PKGNAME}: \"$$_\" non-existent -- dependency list incomplete\n}; \ - exit(1); \ - } \ - } \ - } \ - for (@edirs, @ddirs) { \ - $$xe{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xe), q{|}; \ - for (@pdirs, @ddirs) { \ - $$xp{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xp), q{|}; \ - for (@fdirs, @ddirs) { \ - $$xf{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xf), q{|}; \ - for (@bdirs, @ddirs, @ldirs) { \ - $$xb{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xb), q{|}; \ - for (@rdirs, @ddirs, @ldirs) { \ - $$xr{$$_} = 1; \ - } \ - print join(q{ }, sort keys %xr), q{|}; \ - if (open(DESCR, q{${DESCR}})) { \ - while (<DESCR>) { \ - if (/^WWW:\s+(\S+)/) { \ - print $$1; \ - last; \ - } \ - } \ - } \ - print qq{\n};' -. endif -.endif www-site: .if exists(${DESCR}) @@ -5775,23 +5777,20 @@ @if [ -f ${PLIST} ]; then \ ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${PLIST} >> ${TMPPLIST}; \ fi -.for reinplace in ${PLIST_REINPLACE} -.if defined(PLIST_REINPLACE_${reinplace:U}) - @${SED} -i "" -e '${PLIST_REINPLACE_${reinplace:U}}' ${TMPPLIST} -.endif -.endfor .for dir in ${PLIST_DIRS} @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dirrm ,' >> ${TMPPLIST} .endfor -# To be removed once INSTALLS_SHLIB has been eradicated. -.if defined(INSTALLS_SHLIB) && !defined(INSTALL_AS_USER) - @${ECHO_CMD} "@exec ${LDCONFIG_PLIST_EXEC_CMD}" >> ${TMPPLIST} - @${ECHO_CMD} "@unexec ${LDCONFIG_PLIST_UNEXEC_CMD}" >> ${TMPPLIST} -.elif defined(INSTALLS_SHLIB) - @${ECHO_CMD} "@exec ${LDCONFIG_PLIST_EXEC_CMD} || ${TRUE}" >> ${TMPPLIST} - @${ECHO_CMD} "@unexec ${LDCONFIG_PLIST_UNEXEC_CMD} || ${TRUE}" >> ${TMPPLIST} +.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} @@ -5944,8 +5943,8 @@ @${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}${RC_SUBR_SUFFIX}; \ - ${ECHO_CMD} "etc/rc.d/$${i%.sh}${RC_SUBR_SUFFIX}" >> ${TMPPLIST}; \ + ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${PREFIX}/etc/rc.d/$${i%.sh}; \ + ${ECHO_CMD} "etc/rc.d/$${i%.sh}" >> ${TMPPLIST}; \ done .endif .else @@ -6014,6 +6013,7 @@ 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 \ @@ -6074,10 +6074,6 @@ .if !defined(OPTIONS) @${ECHO_MSG} "===> No options to configure" .else -.if ${OPTIONSFILE} != ${OPTIONSFILE} - @${ECHO_MSG} "===> Using wrong configuration file ${OPTIONSFILE}" - @exit 1 -.endif .if ${UID} != 0 && !defined(INSTALL_AS_USER) @optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \ ${ECHO_MSG} "===> Switching to root credentials to create $${optionsdir}"; \ @@ -6105,7 +6101,7 @@ elif [ ! -z "$${withoutval}" ]; then \ val=off; \ else \ - val=$$3; \ + val=$${defaultval}; \ fi; \ DEFOPTIONS="$${DEFOPTIONS} $$1 \"$$2\" $${val}"; \ shift 3; \ @@ -6210,7 +6206,7 @@ elif [ ! -z "$${withoutval}" ]; then \ val=off; \ else \ - val="$$3 (default)"; \ + val="$${defaultval} (default)"; \ fi; \ ${ECHO_MSG} " $$1=$${val} \"$$2\""; \ shift 3; \ @@ -6403,7 +6399,7 @@ ${ECHO_CMD} "@cwd ${DESKTOPDIR}" >> ${TMPPLIST}; \ fi; \ while [ $$# -gt 6 ]; do \ - filename="$$4.desktop"; \ + filename="`${ECHO_CMD} "$$4" | ${TR} -cd [:alnum:]`.desktop"; \ pathname="${DESKTOPDIR}/$$filename"; \ categories="$$5"; \ if [ -z "$$categories" ]; then \ @@ -6435,6 +6431,21 @@ .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. Modified: trunk/Mk/bsd.gecko.mk ============================================================================== --- trunk/Mk/bsd.gecko.mk Tue Mar 15 14:16:11 2011 (r516) +++ trunk/Mk/bsd.gecko.mk Wed Mar 16 23:10:05 2011 (r517) @@ -4,7 +4,7 @@ # Date created: 12 Nov 2005 # Whom: Michael Johnson <ahze@FreeBSD.org> # -# $FreeBSD: ports/Mk/bsd.gecko.mk,v 1.25 2010/11/30 13:03:10 beat Exp $ +# $FreeBSD: ports/Mk/bsd.gecko.mk,v 1.26 2010/12/18 11:15:33 beat Exp $ # # 4 column tabs prevent hair loss and tooth decay!
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103162310.p2GNA57O007425>