Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 May 2014 03:33:23 GMT
From:      pkg-fallout-builder@FreeBSD.org
To:        lx@FreeBSD.org
Cc:        pkg-fallout@FreeBSD.org
Subject:   [REL - 10amd64-quarterly][security/medusa] Failed for medusa-2.1_1 in build
Message-ID:  <201405070333.s473XNog086346@beefy2.isc.freebsd.org>

next in thread | raw e-mail | index | archive | help
You are receiving this mail as a port that you maintain
is failing to build on the FreeBSD package build server.
Please investigate the failure and submit a PR to fix
build.

Maintainer:     lx@FreeBSD.org
Last committer: mat@FreeBSD.org
Ident:          $FreeBSD: branches/2014Q2/security/medusa/Makefile 340722 2014-01-22 17:00:46Z mat $
Log URL:        http://beefy2.isc.freebsd.org/bulk/10amd64-quarterly/2014-05-07_02h47m12s/logs/medusa-2.1_1.log
Build URL:      http://beefy2.isc.freebsd.org/bulk/10amd64-quarterly/2014-05-07_02h47m12s
Log:

====>> Building security/medusa
build started at Wed May  7 03:33:11 UTC 2014
port directory: /usr/ports/security/medusa
building for: FreeBSD 10amd64-quarterly-job-13 10.0-RELEASE-p1 FreeBSD 10.0-RELEASE-p1 amd64
maintained by: lx@FreeBSD.org
Makefile ident:      $FreeBSD: branches/2014Q2/security/medusa/Makefile 340722 2014-01-22 17:00:46Z mat $
Poudriere version: 3.1-pre
Host OSVERSION: 1100013
Jail OSVERSION: 1000510

---Begin Environment---
OSVERSION=1000510
UNAME_v=FreeBSD 10.0-RELEASE-p1
UNAME_r=10.0-RELEASE-p1
BLOCKSIZE=K
MAIL=/var/mail/root
STATUS=1
SAVED_TERM=
MASTERMNT=/usr/local/poudriere/data/build/10amd64-quarterly/ref
PKG_EXT=txz
tpid=59170
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
POUDRIERE_BUILD_TYPE=bulk
PKGNG=1
PKGNAME=medusa-2.1_1
PKG_DELETE=/usr/local/sbin/pkg-static delete -y -f
PKG_ADD=/usr/local/sbin/pkg-static add
OLDPWD=/usr/local/poudriere/data/build/10amd64-quarterly/ref/poudriere/rdeps
PWD=/usr/local/poudriere/data/build/10amd64-quarterly/ref/poudriere/pool
MASTERNAME=10amd64-quarterly
USER=root
HOME=/root
POUDRIERE_VERSION=3.1-pre
LOCALBASE=/usr/local
PACKAGE_BUILDING=yes
PKG_VERSION=/poudriere/pkg-static version
PKG_BIN=/usr/local/sbin/pkg-static
---End Environment---

---Begin OPTIONS List---
===> The following configuration options are available for medusa-2.1_1:
     DOCS=on: Build and/or install documentation
     PGSQL=off: PostgreSQL database support
     SVN=off: Subversion support
===> Use 'make config' to modify these settings
---End OPTIONS List---

--CONFIGURE_ARGS--
--enable-module-ncp=no --enable-module-afp=no --enable-module-svn=no --enable-module-postgres=no --prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
TMPDIR="/tmp" TMPDIR="/tmp" SHELL=/bin/sh CONFIG_SHELL=/bin/sh CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=262144
--End CONFIGURE_ENV--

--MAKE_ENV--
TMPDIR="/tmp" TMPDIR="/tmp" SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  LIBDIR="/usr/lib"  CC="cc" CFLAGS="-O2 -pipe -fno-strict-aliasing"  CPP="cpp" CPPFLAGS=""  LDFLAGS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fno-strict-aliasing"  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install  -s -o root -g wheel -m 555"  BSD_INSTALL_LIB="install  -s -o root -g wheel -m 444"  BSD_INSTALL_SCRIPT="install  -o root -g wheel -m 555"  BSD_INSTALL_DATA="install  -o root -g wheel -m 444"  BSD_INSTALL_MAN="install  -o root -g wheel -m 444"
--End MAKE_ENV--

--PLIST_SUB--
SVN="@comment
"
POSTGRESQL="@comment
"
OSREL=10.0
PREFIX=%D
LOCALBASE=/usr/local
PORTDOCS=""
PORTEXAMPLES=""
PORTDATA=""
LIB32DIR=lib
DOCSDIR="share/doc/medusa"
EXAMPLESDIR="share/examples/medusa"
DATADIR="share/medusa"
WWWDIR="www/medusa"
ETCDIR="etc/medusa"
--End PLIST_SUB--

--SUB_LIST--
PREFIX=/usr/local
LOCALBASE=/usr/local
DATADIR=/usr/local/share/medusa
DOCSDIR=/usr/local/share/doc/medusa
EXAMPLESDIR=/usr/local/share/examples/medusa
WWWDIR=/usr/local/www/medusa
ETCDIR=/usr/local/etc/medusa
--End SUB_LIST--

---Begin make.conf---
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
PORTSDIR=/usr/ports
PACKAGES=/packages
DISTDIR=/distfiles
#### /usr/local/etc/poudriere.d/make.conf ####
WITH_PKGNG=yes
NO_RESTRICTED=yes
DISABLE_MAKE_JOBS=poudriere
---End make.conf---
===>  Cleaning for medusa-2.1_1
=======================<phase: check-sanity   >============================
===========================================================================
=======================<phase: pkg-depends    >============================
===>   medusa-2.1_1 depends on file: /usr/local/sbin/pkg - not found
===>    Verifying install for /usr/local/sbin/pkg in /usr/ports/ports-mgmt/pkg
===>   Installing existing package /packages/All/pkg-1.2.7.txz
Installing pkg-1.2.7... done
If you are upgrading from the old package format, first run:

  # pkg2ng
===>   Returning to build of medusa-2.1_1
===========================================================================
=======================<phase: fetch-depends  >============================
===========================================================================
=======================<phase: fetch          >============================
===> Fetching all distfiles required by medusa-2.1_1 for building
===========================================================================
=======================<phase: checksum       >============================
===> Fetching all distfiles required by medusa-2.1_1 for building
=> SHA256 Checksum OK for medusa-2.1.tar.gz.
===========================================================================
=======================<phase: extract-depends>============================
===========================================================================
=======================<phase: extract        >============================
===> Fetching all distfiles required by medusa-2.1_1 for building
===>  Extracting for medusa-2.1_1
=> SHA256 Checksum OK for medusa-2.1.tar.gz.
===========================================================================
=======================<phase: patch-depends  >============================
===========================================================================
=======================<phase: patch          >============================
===>  Patching for medusa-2.1_1
===========================================================================
=======================<phase: build-depends  >============================
===========================================================================
=======================<phase: lib-depends    >============================
===>   medusa-2.1_1 depends on shared library: ssh2 - not found
===>    Verifying install for ssh2 in /usr/ports/security/libssh2
===>   Installing existing package /packages/All/libssh2-1.4.3_2,2.txz
Installing libssh2-1.4.3_2,2... done
===>   Returning to build of medusa-2.1_1
===>   medusa-2.1_1 depends on shared library: pcre - not found
===>    Verifying install for pcre in /usr/ports/devel/pcre
===>   Installing existing package /packages/All/pcre-8.34.txz
Installing pcre-8.34... done
===>   Returning to build of medusa-2.1_1
===========================================================================
=======================<phase: configure      >============================
===>  Configuring for medusa-2.1_1
===>   FreeBSD 10 autotools fix applied to /wrkdirs/usr/ports/security/medusa/work/medusa-2.1/aclocal.m4
===>   FreeBSD 10 autotools fix applied to /wrkdirs/usr/ports/security/medusa/work/medusa-2.1/configure
configure: loading site script /usr/ports/Templates/config.site
checking build system type... amd64-portbld-freebsd10.0
checking host system type... amd64-portbld-freebsd10.0
checking target system type... amd64-portbld-freebsd10.0
checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... (cached) /bin/mkdir -p
checking for gawk... (cached) /usr/bin/awk
checking whether make sets $(MAKE)... yes
checking for gcc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of cc... gcc3
checking how to run the C preprocessor... cpp
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... (cached) /usr/bin/egrep
checking for ANSI C header files... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking for strings.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking size of short... 2
checking whether to enable debugging... yes
configure: checking for pthread support...
checking for main in -lpthread... yes
configure: checking for dlopen/dlclose...
checking for dlclose in -ldl... no
checking for dlclose in -lc... yes
checking for library containing clock_gettime... none required
checking for clock_gettime... (cached) yes
configure: checking for OpenSSL Library and Header files...
checking for CRYPTO_lock in -lcrypto... yes
<snip>
                                  ^
wrapper.c:293:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
          strncpy(_psSessionData->szCmdParamFull + nCmdPartLength, psCredSet->psUser->pUser, strlen(psCredSet->psUser->pUser)); 
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:101:32: note: passing argument to parameter here
char    *strncpy(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:294:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
          strncpy(_psSessionData->szCmdParamFull + nCmdPartLength + strlen(psCredSet->psUser->pUser), szTmp + 2, strlen(szTmp) - 2); 
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:101:32: note: passing argument to parameter here
char    *strncpy(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:307:71: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if ((_psSessionData->nType == TYPE_SINGLE) && (szTmp = strstr(_psSessionData->szCmdParamFull, "%P")))
                                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:118:26: note: passing argument to parameter here
char    *strstr(const char *, const char *) __pure;
                            ^
wrapper.c:311:29: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
          strncpy(szCmdTmp, _psSessionData->szCmdParamFull, nCmdPartLength); 
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:101:57: note: passing argument to parameter here
char    *strncpy(char * __restrict, const char * __restrict, size_t);
                                                           ^
wrapper.c:315:19: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
          strncpy(_psSessionData->szCmdParamFull, szCmdTmp, nCmdLength + 1);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:101:32: note: passing argument to parameter here
char    *strncpy(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:332:51: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        _psSessionData->szCmdFull = malloc(strlen(_psSessionData->szCmd) + strlen(_psSessionData->szCmdParamFull) + 7);
                                                  ^~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:95:28: note: passing argument to parameter here
size_t   strlen(const char *) __pure;
                            ^
wrapper.c:332:83: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        _psSessionData->szCmdFull = malloc(strlen(_psSessionData->szCmd) + strlen(_psSessionData->szCmdParamFull) + 7);
                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:95:28: note: passing argument to parameter here
size_t   strlen(const char *) __pure;
                            ^
wrapper.c:333:53: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        memset(_psSessionData->szCmdFull, 0, strlen(_psSessionData->szCmd) + strlen(_psSessionData->szCmdParamFull) + 7);
                                                    ^~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:95:28: note: passing argument to parameter here
size_t   strlen(const char *) __pure;
                            ^
wrapper.c:333:85: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        memset(_psSessionData->szCmdFull, 0, strlen(_psSessionData->szCmd) + strlen(_psSessionData->szCmdParamFull) + 7);
                                                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:95:28: note: passing argument to parameter here
size_t   strlen(const char *) __pure;
                            ^
wrapper.c:334:74: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncpy(_psSessionData->szCmdFull, _psSessionData->szCmd, strlen(_psSessionData->szCmd));
                                                                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:95:28: note: passing argument to parameter here
size_t   strlen(const char *) __pure;
                            ^
wrapper.c:334:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncpy(_psSessionData->szCmdFull, _psSessionData->szCmd, strlen(_psSessionData->szCmd));
                ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:101:32: note: passing argument to parameter here
char    *strncpy(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:334:44: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncpy(_psSessionData->szCmdFull, _psSessionData->szCmd, strlen(_psSessionData->szCmd));
                                           ^~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:101:57: note: passing argument to parameter here
char    *strncpy(char * __restrict, const char * __restrict, size_t);
                                                           ^
wrapper.c:335:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncat(_psSessionData->szCmdFull, " ", 1);
                ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:99:32: note: passing argument to parameter here
char    *strncat(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:336:83: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncat(_psSessionData->szCmdFull, _psSessionData->szCmdParamFull, strlen(_psSessionData->szCmdParamFull));
                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:95:28: note: passing argument to parameter here
size_t   strlen(const char *) __pure;
                            ^
wrapper.c:336:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncat(_psSessionData->szCmdFull, _psSessionData->szCmdParamFull, strlen(_psSessionData->szCmdParamFull));
                ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:99:32: note: passing argument to parameter here
char    *strncat(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:336:44: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncat(_psSessionData->szCmdFull, _psSessionData->szCmdParamFull, strlen(_psSessionData->szCmdParamFull));
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:99:57: note: passing argument to parameter here
char    *strncat(char * __restrict, const char * __restrict, size_t);
                                                           ^
wrapper.c:337:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        strncat(_psSessionData->szCmdFull, " 1>&2", 5);
                ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:99:32: note: passing argument to parameter here
char    *strncat(char * __restrict, const char * __restrict, size_t);
                                  ^
wrapper.c:342:16: warning: implicit declaration of function 'initProcess' is invalid in C99 [-Wimplicit-function-declaration]
        iRet = initProcess(_psSessionData);
               ^
wrapper.c:374:16: warning: implicit declaration of function 'closeProcess' is invalid in C99 [-Wimplicit-function-declaration]
        iRet = closeProcess(_psSessionData);
               ^
wrapper.c:451:18: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
      if ((fopen(_psSessionData->szCmd, "r")) == NULL)
                 ^~~~~~~~~~~~~~~~~~~~~
/usr/include/stdio.h:242:36: note: passing argument to parameter here
FILE    *fopen(const char * __restrict, const char * __restrict);
                                      ^
wrapper.c:460:20: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
        if (system(_psSessionData->szCmdFull) < 0)
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/stdlib.h:113:25: note: passing argument to parameter here
int      system(const char *);
                            ^
wrapper.c:491:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
wrapper.c:582:3: warning: implicit declaration of function 'setPassResult' is invalid in C99 [-Wimplicit-function-declaration]
  setPassResult((*psLogin), szPassword);
  ^
35 warnings generated.
mv -f .deps/wrapper.Tpo .deps/wrapper.Po
cc  -O2 -pipe -fno-strict-aliasing  -module -fPIC -L/usr/local/lib -rdynamic -o wrapper.mod wrapper.o medusa-trace.o -lssh2 -shared -lcrypto -lc -lpthread  -lssl -lcrypto -lm
cc -DHAVE_CONFIG_H -I. -I.. -I../src    -g -DDEBUG -fPIC -I/usr/include -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/postgresql -I/usr/include/pgsql -I/usr/include/afpfs-ng  -O2 -pipe -fno-strict-aliasing -MT listModules.o -MD -MP -MF .deps/listModules.Tpo -c -o listModules.o listModules.c
listModules.c:83:5: warning: implicit declaration of function 'writeVerbose' is invalid in C99 [-Wimplicit-function-declaration]
    writeVerbose(VB_NONE, "  Available modules in \"%s\" :", pszTarget);
    ^
1 warning generated.
mv -f .deps/listModules.Tpo .deps/listModules.Po
cc -DHAVE_CONFIG_H -I. -I.. -I../src    -g -DDEBUG -fPIC -I/usr/include -I/usr/local/include -I/usr/local/ssl/include -I/usr/include/postgresql -I/usr/include/pgsql -I/usr/include/afpfs-ng  -O2 -pipe -fno-strict-aliasing -MT medusa.o -MD -MP -MF .deps/medusa.Tpo -c -o medusa.o medusa.c
medusa.c:57:3: warning: implicit declaration of function 'writeVerbose' is invalid in C99 [-Wimplicit-function-declaration]
  writeVerbose(VB_NONE, "");
  ^
medusa.c:140:9: warning: implicit declaration of function 'writeError' is invalid in C99 [-Wimplicit-function-declaration]
        writeError(ERR_ALERT, "Options 'h' and 'H' are mutually exclusive.");
        ^
medusa.c:300:7: warning: implicit declaration of function 'listModules' is invalid in C99 [-Wimplicit-function-declaration]
      listModules(szModulePaths, 1);  // End the program after this executes by passing a 1 as the second param
      ^
medusa.c:337:11: warning: implicit declaration of function 'invokeModule' is invalid in C99 [-Wimplicit-function-declaration]
    ret = invokeModule(_psAudit->pModuleName, NULL, NULL, NULL);
          ^
medusa.c:1441:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
medusa.c:1500:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
medusa.c:1570:5: error: non-void function 'startLoginThreadPool' should return a value [-Wreturn-type]
    return;
    ^
medusa.c:1612:7: error: non-void function 'startLoginThreadPool' should return a value [-Wreturn-type]
      return;
      ^
medusa.c:1648:7: error: non-void function 'startLoginThreadPool' should return a value [-Wreturn-type]
      return;
      ^
medusa.c:1678:3: error: non-void function 'startLoginThreadPool' should return a value [-Wreturn-type]
  return;
  ^
medusa.c:1747:28: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      else if (szResumeMap = strstr(_psAudit->pOptResume, szTmp1))
               ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
medusa.c:1747:28: note: place parentheses around the assignment to silence this warning
      else if (szResumeMap = strstr(_psAudit->pOptResume, szTmp1))
                           ^
               (                                                 )
medusa.c:1747:28: note: use '==' to turn this assignment into an equality comparison
      else if (szResumeMap = strstr(_psAudit->pOptResume, szTmp1))
                           ^
                           ==
7 warnings and 4 errors generated.
*** Error code 1

Stop.
make[4]: stopped in /wrkdirs/usr/ports/security/medusa/work/medusa-2.1/src
*** Error code 1

Stop.
make[3]: stopped in /wrkdirs/usr/ports/security/medusa/work/medusa-2.1/src
*** Error code 1

Stop.
make[2]: stopped in /wrkdirs/usr/ports/security/medusa/work/medusa-2.1
*** Error code 1

Stop.
make[1]: stopped in /wrkdirs/usr/ports/security/medusa/work/medusa-2.1
*** Error code 1

Stop.
make: stopped in /usr/ports/security/medusa
===>  Cleaning for medusa-2.1_1



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405070333.s473XNog086346>