From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Jan 16 07:50:25 2007 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9962F16A40F for ; Tue, 16 Jan 2007 07:50:25 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 7554613C45D for ; Tue, 16 Jan 2007 07:50:25 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l0G7oMbg042967 for ; Tue, 16 Jan 2007 07:50:22 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l0G7oMMt042966; Tue, 16 Jan 2007 07:50:22 GMT (envelope-from gnats) Resent-Date: Tue, 16 Jan 2007 07:50:22 GMT Resent-Message-Id: <200701160750.l0G7oMMt042966@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Beech Rintoul" Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A8EEC16A416 for ; Tue, 16 Jan 2007 07:40:24 +0000 (UTC) (envelope-from beech@alaskaparadise.com) Received: from pinnacle.akherb.com (60-105-237-24.gci.net [24.237.105.60]) by mx1.freebsd.org (Postfix) with ESMTP id A013E13C441 for ; Tue, 16 Jan 2007 07:40:23 +0000 (UTC) (envelope-from beech@alaskaparadise.com) Received: by pinnacle.akherb.com (Postfix, from userid 1007) id 088A75D2E; Mon, 15 Jan 2007 22:40:22 -0900 (AKST) Received: from stargate.alaskaparadise.com (7-137-58-66.gci.net [66.58.137.7]) by pinnacle.akherb.com (Postfix) with ESMTP id 8FDAF5CD9; Mon, 15 Jan 2007 22:40:14 -0900 (AKST) Message-Id: <1168933214.68180@stargate.alaskaparadise.com> Date: Mon, 15 Jan 2007 22:40:14 -0900 From: "Beech Rintoul" To: "FreeBSD gnats submit" X-Send-Pr-Version: gtk-send-pr 0.4.8 Cc: beech@alaskaparadise.com Subject: ports/107974: [Maintainer Update] ftp/proftpd - Update to 1.3.1rc2 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Jan 2007 07:50:25 -0000 >Number: 107974 >Category: ports >Synopsis: [Maintainer Update] ftp/proftpd - Update to 1.3.1rc2 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Tue Jan 16 07:50:22 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Beech Rintoul >Release: FreeBSD 7.0-CURRENT i386 >Organization: Alaska Paradise >Environment: System: FreeBSD 7.0-CURRENT #99: Sun Jan 14 03:29:08 AKST 2007 root@stargate.alaskaparadise.com:/usr/obj/usr/src/sys/STARGATE >Description: Update to 1.3.1rc2 Remove Patches: patch-contrib-mod_sql.c patch-getopt.c patch-utf.8.c New Patches: patch-include-pidfile.h patch-configure patch-configure.in >How-To-Repeat: >Fix: diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/Makefile /usr/ports/ftp/proftpd/Makefile --- /usr/ports/ftp/proftpd.orig/Makefile Sun Jan 7 08:37:15 2007 +++ /usr/ports/ftp/proftpd/Makefile Fri Jan 12 11:04:18 2007 @@ -6,8 +6,8 @@ # PORTNAME= proftpd -DISTVERSION= 1.3.1rc1 -PORTREVISION= 3 +DISTVERSION= 1.3.1rc2 +PORTREVISION= CATEGORIES= ftp MASTER_SITES= ftp://ftp.proftpd.org/distrib/source/ \ ftp://ftp.fastorama.com/mirrors/ftp.proftpd.org/distrib/source/ \ diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/distinfo /usr/ports/ftp/proftpd/distinfo --- /usr/ports/ftp/proftpd.orig/distinfo Thu Dec 21 13:13:40 2006 +++ /usr/ports/ftp/proftpd/distinfo Fri Jan 12 15:34:06 2007 @@ -1,3 +1,3 @@ -MD5 (proftpd-1.3.1rc1.tar.bz2) = 08f4d526b46c84f10e9634d2d913052c -SHA256 (proftpd-1.3.1rc1.tar.bz2) = 32cf852535c2ec55c5833c2766cbd0c6aba950ab2967565606e1df334736a766 -SIZE (proftpd-1.3.1rc1.tar.bz2) = 1484138 +MD5 (proftpd-1.3.1rc2.tar.bz2) = b117abb8fa7df8bc6d5e2ee85d97b4e0 +SHA256 (proftpd-1.3.1rc2.tar.bz2) = 7494ea061ef28efc7afa63ffe0a80d598a55909d06dede9254e955c67e6440da +SIZE (proftpd-1.3.1rc2.tar.bz2) = 1516464 diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-configure /usr/ports/ftp/proftpd/files/patch-configure --- /usr/ports/ftp/proftpd.orig/files/patch-configure Wed Dec 31 14:00:00 1969 +++ /usr/ports/ftp/proftpd/files/patch-configure Mon Jan 15 22:08:39 2007 @@ -0,0 +1,273 @@ +--- configure.orig Tue Jan 9 19:55:21 2007 ++++ configure Mon Jan 15 22:06:53 2007 +@@ -19246,8 +19246,7 @@ + + if test "$withval" != "no" ; then + +- +-for ac_func in getopt getopt_long ++for ac_func in getopt + do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_func" >&5 +@@ -19495,6 +19494,108 @@ + done + + ++for ac_func in getopt_long ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ + cat >>confdefs.h <<\_ACEOF + #define PR_USE_SYSTEM_GETOPT 1 + _ACEOF +@@ -19510,8 +19611,7 @@ + else + + +- +-for ac_func in getopt getopt_long ++for ac_func in getopt + do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_func" >&5 +@@ -19759,6 +19859,108 @@ + done + + ++for ac_func in getopt_long ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ + cat >>confdefs.h <<\_ACEOF + #define PR_USE_SYSTEM_GETOPT 1 + _ACEOF +@@ -34961,11 +35163,6 @@ + #define PR_USE_SENDFILE 1 + _ACEOF + +- else +- cat >>confdefs.h <<\_ACEOF +-#define PR_USE_SENDFILE 0 +-_ACEOF +- + fi + + case "$pr_cv_func_sendfile" in +@@ -36560,20 +36757,6 @@ + fi + + inclib=`cat $srcdir/contrib/$moduledir/$srcinc | grep "\\\$Libraries:" | sed -e 's/^.*\$Libraries: \(.*\)\\$/\1/'` +- else +- incarch= +- inclib= +- fi +- +- srcinc_in="$srcinc.in" +- if test -f $srcdir/contrib/$moduledir/$srcinc_in ; then +- if test -z $srcarch -a -z $incarch ; then +- incarch=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Archive:" | sed -e 's/^.*\$Archive: \(.*\)\\$/\1/'` +- else +- incarch= +- fi +- +- inclib=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Libraries:" | sed -e 's/^.*\$Libraries: \(.*\)\\$/\1/'` + else + incarch= + inclib= diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-configure.in /usr/ports/ftp/proftpd/files/patch-configure.in --- /usr/ports/ftp/proftpd.orig/files/patch-configure.in Wed Dec 31 14:00:00 1969 +++ /usr/ports/ftp/proftpd/files/patch-configure.in Mon Jan 15 22:07:58 2007 @@ -0,0 +1,54 @@ +--- configure.in.orig Tue Jan 9 18:45:08 2007 ++++ configure.in Mon Jan 15 22:07:06 2007 +@@ -163,8 +163,9 @@ + ], + [ + if test "$withval" != "no" ; then +- AC_CHECK_FUNCS(getopt getopt_long, ++ AC_CHECK_FUNCS(getopt, + [AC_CHECK_HEADERS(getopt.h) ++ AC_CHECK_FUNCS(getopt_long) + AC_DEFINE(PR_USE_SYSTEM_GETOPT, 1, + [Define if using system getopt support])], + [LIB_OBJS="$LIB_OBJS getopt.o getopt1.o"] +@@ -172,8 +173,9 @@ + fi + ], + [ +- AC_CHECK_FUNCS(getopt getopt_long, ++ AC_CHECK_FUNCS(getopt, + [AC_CHECK_HEADERS(getopt.h) ++ AC_CHECK_FUNCS(getopt_long) + AC_DEFINE(PR_USE_SYSTEM_GETOPT, 1, + [Define if using system getopt support])], + [LIB_OBJS="$LIB_OBJS getopt.o getopt1.o"] +@@ -1486,8 +1488,6 @@ + if test "$pr_cv_func_sendfile" != "none"; then + AC_DEFINE(HAVE_SENDFILE) + AC_DEFINE(PR_USE_SENDFILE, 1) +- else +- AC_DEFINE(PR_USE_SENDFILE, 0) + fi + + case "$pr_cv_func_sendfile" in +@@ -1815,20 +1815,6 @@ + else + incarch= + inclib= +- fi +- +- srcinc_in="$srcinc.in" +- if test -f $srcdir/contrib/$moduledir/$srcinc_in ; then +- if test -z $srcarch -a -z $incarch ; then +- incarch=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Archive:" | sed -e 's/^.*\$Archive: \(.*\)\\$/\1/'` +- else +- incarch= +- fi +- +- inclib=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Libraries:" | sed -e 's/^.*\$Libraries: \(.*\)\\$/\1/'` +- else +- incarch= +- inclib= + fi + + dnl If the module will be providing an archive (.a file), then remove it diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-contrib-mod_sql.c /usr/ports/ftp/proftpd/files/patch-contrib-mod_sql.c --- /usr/ports/ftp/proftpd.orig/files/patch-contrib-mod_sql.c Thu Jan 4 16:38:34 2007 +++ /usr/ports/ftp/proftpd/files/patch-contrib-mod_sql.c Wed Dec 31 14:00:00 1969 @@ -1,268 +0,0 @@ ---- contrib/mod_sql.c.orig Mon Dec 11 13:40:18 2006 -+++ contrib/mod_sql.c Thu Jan 4 14:31:13 2007 -@@ -23,7 +23,7 @@ - * the resulting executable, without including the source code for OpenSSL in - * the source distribution. - * -- * $Id: mod_sql.c,v 1.117 2006/12/11 22:40:18 castaglia Exp $ -+ * $Id: mod_sql.c,v 1.121 2007/01/03 18:24:35 castaglia Exp $ - */ - - #include "conf.h" -@@ -104,8 +104,11 @@ - - module sql_module; - --static char *_sql_where(cmd_rec *, int, ...); - #define SQL_MAX_STMT_LEN 4096 -+ -+static char *sql_prepare_where(int, cmd_rec *, int, ...); -+#define SQL_PREPARE_WHERE_FL_NO_TAGS 0x00001 -+ - static char *resolve_long_tag(cmd_rec *, char *); - static int resolve_numeric_tag(cmd_rec *, char *); - static char *resolve_short_tag(cmd_rec *, char); -@@ -752,10 +755,10 @@ - return mr ? (char *) mr->data : NULL; - } - --static char *_sql_where(cmd_rec *cmd, int cnt, ...) { -+static char *sql_prepare_where(int flags, cmd_rec *cmd, int cnt, ...) { - int i, flag; - int curr_avail; -- char *buf = "", *res, *tchar, *curr, *tmp; -+ char *buf = "", *res, *tchar; - va_list dummy; - - res = pcalloc(cmd->tmp_pool, SQL_MAX_STMT_LEN); -@@ -774,31 +777,53 @@ - } - va_end(dummy); - -- /* Process variables in WHERE clauses, except any "%{num}" references. */ -- curr = res; -- curr_avail = SQL_MAX_STMT_LEN; -- for (tmp = buf; *tmp; ) { -- char *str; -- modret_t *mr; -+ if (!(flags & SQL_PREPARE_WHERE_FL_NO_TAGS)) { -+ char *curr, *tmp; - -- if (*tmp == '%') { -- char *tag = NULL; -+ /* Process variables in WHERE clauses, except any "%{num}" references. */ -+ curr = res; -+ curr_avail = SQL_MAX_STMT_LEN; -+ -+ for (tmp = buf; *tmp; ) { -+ char *str; -+ modret_t *mr; - -- if (*(++tmp) == '{') { -- char *query; -+ if (*tmp == '%') { -+ char *tag = NULL; - -- if (*tmp != '\0') -- query = ++tmp; -+ if (*(++tmp) == '{') { -+ char *query; - -- while (*tmp && *tmp != '}') -- tmp++; -+ if (*tmp != '\0') -+ query = ++tmp; -+ -+ while (*tmp && *tmp != '}') -+ tmp++; -+ -+ tag = pstrndup(cmd->tmp_pool, query, (tmp - query)); -+ if (tag) { -+ str = resolve_long_tag(cmd, tag); -+ if (!str) -+ str = pstrdup(cmd->tmp_pool, ""); -+ -+ mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", -+ str), "sql_escapestring"); -+ if (check_response(mr) < 0) -+ return NULL; - -- tag = pstrndup(cmd->tmp_pool, query, (tmp - query)); -- if (tag) { -- str = resolve_long_tag(cmd, tag); -- if (!str) -- str = pstrdup(cmd->tmp_pool, ""); -+ sstrcat(curr, mr->data, curr_avail); -+ curr += strlen(mr->data); -+ curr_avail -= strlen(mr->data); -+ -+ if (*tmp != '\0') -+ tmp++; -+ -+ } else { -+ return NULL; -+ } - -+ } else { -+ str = resolve_short_tag(cmd, *tmp); - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", - str), "sql_escapestring"); - if (check_response(mr) < 0) -@@ -810,32 +835,18 @@ - - if (*tmp != '\0') - tmp++; -- -- } else { -- return NULL; - } - - } else { -- str = resolve_short_tag(cmd, *tmp); -- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", -- str), "sql_escapestring"); -- if (check_response(mr) < 0) -- return NULL; -- -- sstrcat(curr, mr->data, curr_avail); -- curr += strlen(mr->data); -- curr_avail -= strlen(mr->data); -- -- if (*tmp != '\0') -- tmp++; -+ *curr++ = *tmp++; -+ curr_avail--; - } -- -- } else { -- *curr++ = *tmp++; -- curr_avail--; - } -+ *curr++ = '\0'; -+ -+ } else { -+ res = buf; - } -- *curr++ = '\0'; - - return res; - } -@@ -1212,7 +1223,7 @@ - } - - if (!cmap.usercustom) { -- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); -+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 5, "default", - cmap.usrtable, cmap.usrfields, where, "1"), "sql_select"); -@@ -1438,7 +1449,7 @@ - return NULL; - } - -- where = _sql_where(cmd, 2, grpwhere, cmap.groupwhere); -+ where = sql_prepare_where(0, cmd, 2, grpwhere, cmap.groupwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 5, "default", - cmap.grptable, cmap.grpfield, where, "1"), "sql_select"); -@@ -1456,7 +1467,7 @@ - - grpwhere = pstrcat(cmd->tmp_pool, cmap.grpfield, " = '", groupname, "'", - NULL); -- where = _sql_where(cmd, 2, grpwhere, cmap.groupwhere); -+ where = sql_prepare_where(0, cmd, 2, grpwhere, cmap.groupwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", - cmap.grptable, cmap.grpfields, where), "sql_select"); -@@ -1530,7 +1541,7 @@ - - usrwhere = pstrcat(cmd->tmp_pool, cmap.usrfield, " = '", _sql_realuser(cmd), - "'", NULL); -- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); -+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", cmap.usrtable, - query, where), "sql_update"); -@@ -1606,7 +1617,8 @@ - cmap.grpmembersfield, " = '", username, "'", NULL); - } - -- where = _sql_where(cmd, 2, grpwhere, cmap.groupwhere); -+ where = sql_prepare_where(SQL_PREPARE_WHERE_FL_NO_TAGS, cmd, 2, grpwhere, -+ sql_prepare_where(0, cmd, 1, cmap.groupwhere, NULL), NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", - cmap.grptable, cmap.grpfields, where), "sql_select"); -@@ -1746,7 +1758,7 @@ - static char *resolve_short_tag(cmd_rec *cmd, char tag) { - char arg[256] = {'\0'}, *argp; - -- switch(tag) { -+ switch (tag) { - case 'A': { - char *pass; - -@@ -2915,7 +2927,7 @@ - /* single select or not? */ - if (SQL_FASTUSERS) { - /* retrieve our list of passwds */ -- where = _sql_where(cmd, 1, cmap.userwhere); -+ where = sql_prepare_where(0, cmd, 1, cmap.userwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", - cmap.usrtable, cmap.usrfields, where), "sql_select"); -@@ -2978,7 +2990,7 @@ - } - } else { - /* retrieve our list of passwds */ -- where = _sql_where(cmd, 1, cmap.userwhere); -+ where = sql_prepare_where(0, cmd, 1, cmap.userwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", - cmap.usrtable, cmap.usrfield, where), "sql_select"); -@@ -3086,7 +3098,7 @@ - - if (SQL_FASTGROUPS) { - /* retrieve our list of groups */ -- where = _sql_where(cmd, 1, cmap.groupwhere); -+ where = sql_prepare_where(0, cmd, 1, cmap.groupwhere, NULL); - - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 6, "default", - cmap.grptable, cmap.grpfields, where, NULL), "sql_select"); -@@ -3119,9 +3131,15 @@ - } - - } else { -- /* retrieve our list of groups */ -- where = _sql_where(cmd, 1, cmap.groupwhere); -- -+ /* Retrieve our list of groups. */ -+ if (cmap.groupwhere && -+ strlen(cmap.groupwhere) > 0) { -+ where = sql_prepare_where(0, cmd, 1, cmap.groupwhere, NULL); -+ -+ } else { -+ where = NULL; -+ } -+ - mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 6, "default", - cmap.grptable, cmap.grpfield, where, NULL, "DISTINCT"), "sql_select"); - if (check_response(mr) < 0) -@@ -3593,7 +3611,7 @@ - - usrwhere = pstrcat(cmd->tmp_pool, cmap.usrfield, " = '", _sql_realuser(cmd), - "'", NULL); -- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); -+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); - - query = pstrcat(cmd->tmp_pool, cmap.sql_fstor, ", ", - cmap.sql_fretr, ", ", cmap.sql_bstor, ", ", -@@ -3627,7 +3645,7 @@ - - usrwhere = pstrcat(cmd->tmp_pool, cmap.usrfield, " = '", _sql_realuser(cmd), - "'", NULL); -- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); -+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); - - query = pstrcat(cmd->tmp_pool, cmap.sql_frate, ", ", - cmap.sql_fcred, ", ", cmap.sql_brate, ", ", diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-getopt.c /usr/ports/ftp/proftpd/files/patch-getopt.c --- /usr/ports/ftp/proftpd.orig/files/patch-getopt.c Sat Dec 30 13:45:40 2006 +++ /usr/ports/ftp/proftpd/files/patch-getopt.c Wed Dec 31 14:00:00 1969 @@ -1,20 +0,0 @@ ---- lib/getopt.c.orig Thu Feb 28 10:30:01 2002 -+++ lib/getopt.c Tue Dec 26 13:39:53 2006 -@@ -76,7 +76,7 @@ - # endif - #endif - --#ifndef _ -+#if defined(PR_USE_NLS) && !defined(_) - /* This is for other GNU distributions with internationalized messages. - When compiling libc, the _ macro is predefined. */ - # ifdef HAVE_LIBINTL_H -@@ -85,6 +85,8 @@ - # else - # define _(msgid) (msgid) - # endif -+#else -+# define _(msgid) (msgid) - #endif - - /* This version of `getopt' appears to the caller like standard Unix `getopt' diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-include-pidfile.h /usr/ports/ftp/proftpd/files/patch-include-pidfile.h --- /usr/ports/ftp/proftpd.orig/files/patch-include-pidfile.h Wed Dec 31 14:00:00 1969 +++ /usr/ports/ftp/proftpd/files/patch-include-pidfile.h Fri Jan 12 21:47:52 2007 @@ -0,0 +1,71 @@ +diff -u -r1.1 pidfile.h +--- include/pidfile.h 11 Jan 2007 21:36:06 -0000 1.1 ++++ include/pidfile.h 13 Jan 2007 04:13:10 -0000 +@@ -30,7 +30,7 @@ + #define PR_PIDFILE_H + + /* For internal use only. */ +-int pidfile_remove(void); +-void pidfile_write(void); ++int pr_pidfile_remove(void); ++void pr_pidfile_write(void); + + #endif /* PR_PIDFILE_H */ +Index: src/main.c +=================================================================== +RCS file: /cvsroot/proftp/proftpd/src/main.c,v +retrieving revision 1.298 +diff -u -r1.298 main.c +--- src/main.c 11 Jan 2007 21:36:06 -0000 1.298 ++++ src/main.c 13 Jan 2007 04:13:10 -0000 +@@ -261,7 +261,7 @@ + PRIVS_ROOT + pr_delete_scoreboard(); + if (!nodaemon) +- pidfile_remove(); ++ pr_pidfile_remove(); + PRIVS_RELINQUISH + } + +@@ -1760,7 +1760,7 @@ + /* Do not need the pidfile any longer. */ + if (is_standalone && + !nodaemon) +- pidfile_remove(); ++ pr_pidfile_remove(); + + /* Run any exit handlers registered in the master process here, so that + * they may have the benefit of root privs. More than likely these +@@ -2261,7 +2261,7 @@ + pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s (built %s) standalone mode STARTUP", + PROFTPD_VERSION_TEXT " " PR_STATUS, BUILD_STAMP); + +- pidfile_write(); ++ pr_pidfile_write(); + daemon_loop(); + } + +Index: src/pidfile.c +=================================================================== +RCS file: /cvsroot/proftp/proftpd/src/pidfile.c,v +retrieving revision 1.2 +diff -u -r1.2 pidfile.c +--- src/pidfile.c 12 Jan 2007 05:40:37 -0000 1.2 ++++ src/pidfile.c 13 Jan 2007 04:13:10 -0000 +@@ -32,7 +32,7 @@ + + static const char *pidfile_path = PR_PID_FILE_PATH; + +-void pidfile_write(void) { ++void pr_pidfile_write(void) { + FILE *fh = NULL; + + pidfile_path = get_param_ptr(main_server->conf, "PidFile", FALSE); +@@ -56,6 +56,6 @@ + } + } + +-int pidfile_remove(void) { ++int pr_pidfile_remove(void) { + return unlink(pidfile_path); + } diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-utf8.c /usr/ports/ftp/proftpd/files/patch-utf8.c --- /usr/ports/ftp/proftpd.orig/files/patch-utf8.c Thu Dec 21 13:13:40 2006 +++ /usr/ports/ftp/proftpd/files/patch-utf8.c Wed Dec 31 14:00:00 1969 @@ -1,110 +0,0 @@ ---- src/utf8.c.orig Wed Jun 14 15:33:19 2006 -+++ src/utf8.c Wed Dec 13 08:40:35 2006 -@@ -23,7 +23,7 @@ - */ - - /* UTF8 encoding/decoding -- * $Id: utf8.c,v 1.3 2006/06/14 23:33:19 castaglia Exp $ -+ * $Id: utf8.c,v 1.4 2006/12/13 17:40:35 castaglia Exp $ - */ - - #include "conf.h" -@@ -38,12 +38,13 @@ - # include - #endif - -+#ifdef HAVE_ICONV_H - static iconv_t decode_conv = (iconv_t) -1; - static iconv_t encode_conv = (iconv_t) -1; - - static int utf8_convert(iconv_t conv, char *inbuf, size_t *inbuflen, - char *outbuf, size_t *outbuflen) { --#ifdef HAVE_ICONV -+# ifdef HAVE_ICONV - char *start = inbuf; - - while (inbuflen > 0) { -@@ -61,14 +62,14 @@ - break; - } - return 0; --#else -+# else - errno = ENOSYS; - return -1; --#endif /* HAVE_ICONV */ -+# endif /* HAVE_ICONV */ - } - - int utf8_free(void) { --#ifdef HAVE_ICONV -+# ifdef HAVE_ICONV - int res; - - /* Close the iconv handles. */ -@@ -81,10 +82,10 @@ - return -1; - - return 0; --#else -+# else - errno = ENOSYS; - return -1; --#endif -+# endif - } - - int utf8_init(void) { -@@ -111,7 +112,7 @@ - "conversion"); - #endif /* HAVE_NL_LANGINFO */ - --#ifdef HAVE_ICONV -+# ifdef HAVE_ICONV - /* Get the iconv handles. */ - encode_conv = iconv_open(local_charset, "UTF-8"); - if (encode_conv == (iconv_t) -1) -@@ -122,13 +123,15 @@ - return -1; - - return 0; --#else -+# else - errno = ENOSYS; - return -1; --#endif /* HAVE_ICONV */ -+# endif /* HAVE_ICONV */ - } -+#endif /* !HAVE_ICONV_H */ - - char *pr_utf8_decode(pool *p, const char *in, size_t inlen, size_t *outlen) { -+#ifdef HAVE_ICONV_H - size_t inbuflen, outbuflen; - char *inbuf, outbuf[PR_TUNABLE_PATH_MAX*2], *res = NULL; - -@@ -156,9 +159,14 @@ - memcpy(res, outbuf, *outlen); - - return res; -+#else -+ pr_trace_msg("utf8", 1, "missing iconv support, no UTF8 decoding possible"); -+ return pstrdup(p, in); -+#endif /* !HAVE_ICONV_H */ - } - - char *pr_utf8_encode(pool *p, const char *in, size_t inlen, size_t *outlen) { -+#ifdef HAVE_ICONV_H - size_t inbuflen, outbuflen; - char *inbuf, outbuf[PR_TUNABLE_PATH_MAX*2], *res; - -@@ -186,6 +194,10 @@ - memcpy(res, outbuf, *outlen); - - return res; -+#else -+ pr_trace_msg("utf8", 1, "missing iconv support, no UTF8 encoding possible"); -+ return pstrdup(p, in); -+#endif /* !HAVE_ICONV_H */ - } - - #endif /* PR_USE_NLS */ diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/pkg-plist /usr/ports/ftp/proftpd/pkg-plist --- /usr/ports/ftp/proftpd.orig/pkg-plist Sun Jan 7 08:37:15 2007 +++ /usr/ports/ftp/proftpd/pkg-plist Mon Jan 15 22:19:35 2007 @@ -15,6 +15,7 @@ include/proftpd/default_paths.h include/proftpd/dirtree.h include/proftpd/display.h +include/proftpd/env.h include/proftpd/event.h include/proftpd/feat.h include/proftpd/fsio.h @@ -35,9 +36,11 @@ include/proftpd/netio.h include/proftpd/options.h include/proftpd/parser.h +include/proftpd/pidfile.h include/proftpd/pool.h include/proftpd/pr-syslog.h include/proftpd/privs.h +include/proftpd/proctitle.h include/proftpd/proftpd.h include/proftpd/regexp.h include/proftpd/response.h >Release-Note: >Audit-Trail: >Unformatted: