summaryrefslogtreecommitdiff
path: root/ftp/proftpd
diff options
context:
space:
mode:
authorIon-Mihai Tetcu <itetcu@FreeBSD.org>2007-01-16 09:36:53 +0000
committerIon-Mihai Tetcu <itetcu@FreeBSD.org>2007-01-16 09:36:53 +0000
commit45d4ab46389ff75a792a3512494d894d04204d0c (patch)
tree654a8ad92eb569eb61b02f1e4cb65fd1f318223c /ftp/proftpd
parent- update to 10.26.38 (diff)
Update to 1.3.1rc2
PR: ports/107974 Submitted by: Beech Rintoul (maintainer)
Notes
Notes: svn path=/head/; revision=182502
Diffstat (limited to 'ftp/proftpd')
-rw-r--r--ftp/proftpd/Makefile4
-rw-r--r--ftp/proftpd/distinfo6
-rw-r--r--ftp/proftpd/files/patch-configure273
-rw-r--r--ftp/proftpd/files/patch-configure.in54
-rw-r--r--ftp/proftpd/files/patch-contrib-mod_sql.c268
-rw-r--r--ftp/proftpd/files/patch-contrib::mod_sql_mysql.c11
-rw-r--r--ftp/proftpd/files/patch-getopt.c20
-rw-r--r--ftp/proftpd/files/patch-include-pidfile.h71
-rw-r--r--ftp/proftpd/files/patch-utf8.c110
-rw-r--r--ftp/proftpd/pkg-plist3
10 files changed, 406 insertions, 414 deletions
diff --git a/ftp/proftpd/Makefile b/ftp/proftpd/Makefile
index fd14f11ff2c1..c9097d6dce39 100644
--- a/ftp/proftpd/Makefile
+++ b/ftp/proftpd/Makefile
@@ -6,8 +6,8 @@
#
PORTNAME= proftpd
-DISTVERSION= 1.3.1rc1
-PORTREVISION= 3
+DISTVERSION= 1.3.1rc2
+PORTREVISION= 0
CATEGORIES= ftp
MASTER_SITES= ftp://ftp.proftpd.org/distrib/source/ \
ftp://ftp.fastorama.com/mirrors/ftp.proftpd.org/distrib/source/ \
diff --git a/ftp/proftpd/distinfo b/ftp/proftpd/distinfo
index 495d7a9380cc..79342fd9a566 100644
--- a/ftp/proftpd/distinfo
+++ b/ftp/proftpd/distinfo
@@ -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 --git a/ftp/proftpd/files/patch-configure b/ftp/proftpd/files/patch-configure
new file mode 100644
index 000000000000..c7f7634c323c
--- /dev/null
+++ b/ftp/proftpd/files/patch-configure
@@ -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 <limits.h> declares $ac_func.
++ For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
++ <limits.h> exists even on freestanding compilers. */
++
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#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 <limits.h> declares $ac_func.
++ For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
++ <limits.h> exists even on freestanding compilers. */
++
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#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 --git a/ftp/proftpd/files/patch-configure.in b/ftp/proftpd/files/patch-configure.in
new file mode 100644
index 000000000000..b796edfc4dac
--- /dev/null
+++ b/ftp/proftpd/files/patch-configure.in
@@ -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 --git a/ftp/proftpd/files/patch-contrib-mod_sql.c b/ftp/proftpd/files/patch-contrib-mod_sql.c
deleted file mode 100644
index 4d6f8352ec0d..000000000000
--- a/ftp/proftpd/files/patch-contrib-mod_sql.c
+++ /dev/null
@@ -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 --git a/ftp/proftpd/files/patch-contrib::mod_sql_mysql.c b/ftp/proftpd/files/patch-contrib::mod_sql_mysql.c
deleted file mode 100644
index 2f495ff0b86a..000000000000
--- a/ftp/proftpd/files/patch-contrib::mod_sql_mysql.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- contrib/mod_sql_mysql.c.orig Tue Dec 12 19:52:15 2006
-+++ contrib/mod_sql_mysql.c Tue Dec 12 20:02:56 2006
-@@ -135,7 +135,7 @@
- #include "conf.h"
- #include "../contrib/mod_sql.h"
-
--#include <mysql.h>
-+#include <mysql/mysql.h>
-
- /*
- * timer-handling code adds the need for a couple of forward declarations
diff --git a/ftp/proftpd/files/patch-getopt.c b/ftp/proftpd/files/patch-getopt.c
deleted file mode 100644
index 4dae5eb270b2..000000000000
--- a/ftp/proftpd/files/patch-getopt.c
+++ /dev/null
@@ -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 --git a/ftp/proftpd/files/patch-include-pidfile.h b/ftp/proftpd/files/patch-include-pidfile.h
new file mode 100644
index 000000000000..526505d3dabe
--- /dev/null
+++ b/ftp/proftpd/files/patch-include-pidfile.h
@@ -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 --git a/ftp/proftpd/files/patch-utf8.c b/ftp/proftpd/files/patch-utf8.c
deleted file mode 100644
index f8328dadc380..000000000000
--- a/ftp/proftpd/files/patch-utf8.c
+++ /dev/null
@@ -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 <langinfo.h>
- #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 --git a/ftp/proftpd/pkg-plist b/ftp/proftpd/pkg-plist
index ad8ff27b895a..ec1eefa7ff99 100644
--- a/ftp/proftpd/pkg-plist
+++ b/ftp/proftpd/pkg-plist
@@ -15,6 +15,7 @@ include/proftpd/data.h
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/netaddr.h
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