--- proftpd-dfsg-1.3.3a.orig/debian/NEWS
+++ proftpd-dfsg-1.3.3a/debian/NEWS
@@ -0,0 +1,42 @@
+proftpd-dfsg (1.3.2e-3) unstable; urgency=low
+
+    This version adds the useful contributed module mod_vroot, which is still not
+    part of the standard modules. It can be used for providing shared
+    directories under chrooted environments, among other useful features.
+    A new template 'virtuals.conf' is provided also to keep things
+    ordered about vhosts/vroots and show some examples.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 16 Mar 2010 12:13:00 +0100
+
+proftpd-dfsg (1.3.2b-2) unstable; urgency=low
+
+    This version stops client-initiated TLS renegotiations by default. This is
+    a side effect of fixing CVE-2009-3555 in OpenSSL protocol. Unfortunately
+    that could break some clients until a better approach is adopted to fix
+    this protocol issue globally. In order to avoid connection losses in 
+    those cases a new directive has been adopted:
+
+    TLSOption AllowClientRenegotiations
+
+    which can be added to tls.conf. It is currently commented out in Debian
+    provided configuration as in default ProFTPD setting. 
+    See also http://bugs.proftpd.org/show_bug.cgi?id=3324 for more information.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 11 Dec 2009 10:00:02 +0100
+proftpd-dfsg (1.3.2e-3) unstable; urgency=low
+
+    This version stops client-initiated TLS renegotiations by default. This is
+    a side effect of fixing CVE-2009-3555 in OpenSSL protocol. Unfortunately
+    that could break some clients until a better approach is adopted to fix
+    this protocol issue globally. In order to avoid connection losses in 
+    those cases a new directive has been adopted:
+
+    TLSOption AllowClientRenegotiations
+
+    which can be added to tls.conf. It is currently commented out in Debian
+    provided configuration as in default ProFTPD setting. 
+    See also http://bugs.proftpd.org/show_bug.cgi?id=3324 for more information.
+
+  
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 16 Mar 2010 12:13:00 +0100
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-doc.doc-base
+++ proftpd-dfsg-1.3.3a/debian/proftpd-doc.doc-base
@@ -0,0 +1,9 @@
+Document: proftpd-doc
+Title: Documentation for the ProFTPD server
+Author: 
+Abstract: Configuration reference, modules documentation, FAQs and HOWTOs
+Section: System/Administration
+
+Format: HTML
+Index: /usr/share/doc/proftpd-doc/index.html
+Files: /usr/share/doc/proftpd-doc/*.html /usr/share/doc/proftpd-doc/contrib/*.html /usr/share/doc/proftpd-doc/howto/*.html /usr/share/doc/proftpd-doc/modules/*.html
--- proftpd-dfsg-1.3.3a.orig/debian/control
+++ proftpd-dfsg-1.3.3a/debian/control
@@ -0,0 +1,149 @@
+Source: proftpd-dfsg
+Section: net
+Priority: optional
+Maintainer: Francesco Paolo Lovergine <frankie@debian.org>
+Standards-Version: 3.9.0
+Build-Depends: libmysqlclient-dev, libpam-dev, debhelper (>= 7), zlib1g-dev, 
+ libpq-dev, libldap2-dev, libssl-dev (>= 0.9.8l), libwrap0-dev, libcap-dev [linux-any], 
+ autotools-dev, libncurses5-dev, dpatch, libacl1-dev, libattr1-dev, unixodbc-dev, libsqlite3-dev
+Homepage: http://www.proftpd.org/
+
+Package: proftpd-basic
+Architecture: any
+Depends: netbase (>= 4.13), ${shlibs:Depends}, ${misc:Depends}, debconf (>= 0.5.00), adduser, 
+ ucf (>= 0.30), debianutils (>= 1.21.0), libpam-runtime (>= 0.76-13.1),  sed (>= 4.1.5), update-inetd
+Conflicts: ftp-server, proftpd (<< 1.3.2)
+Replaces: proftpd (<< 1.3.2)
+Provides: ftp-server, proftpd, proftpd-abi-1.3.3a
+Suggests: proftpd-doc, openssl, proftpd-mod-mysql, proftpd-mod-pgsql, proftpd-mod-ldap, proftpd-mod-odbc, proftpd-mod-sqlite, openbsd-inetd | inet-superserver
+Description: Versatile, virtual-hosting FTP daemon - binaries
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package contains the daemon and all main modules used for
+ common configurations. If you need database-centric authentication 
+ install the suitable proftpd-mod suggested package.
+
+Package: proftpd-dev
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, libtool
+Suggests: pkg-config
+Description: Versatile, virtual-hosting FTP daemon - development files
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package contains all files required to develop thirdr-parties
+ modules that can be loaded at run-time by means of DSO support.
+
+Package: proftpd-doc
+Architecture: all
+Suggests: proftpd-basic
+Section: doc
+Depends: ${misc:Depends}
+Description: Versatile, virtual-hosting FTP daemon - documentation
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package contains the software documentation. 
+Homepage: http://www.proftpd.org/docs
+
+Package: proftpd-mod-mysql
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - MySQL module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides MySQL based authentication.
+
+Package: proftpd-mod-pgsql
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - PostgreSQL module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides PostgreSQL based authentication.
+
+Package: proftpd-mod-ldap
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - LDAP module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides LDAP based authentication.
+
+Package: proftpd-mod-odbc
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - ODBC module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides ODBC based authentication.
+
+Package: proftpd-mod-sqlite
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - SQLite3 module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides SQLite based authentication.
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-mod-pgsql.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-mod-pgsql.install
@@ -0,0 +1 @@
+usr/lib/proftpd/mod_sql_postgres.so
--- proftpd-dfsg-1.3.3a.orig/debian/rules
+++ proftpd-dfsg-1.3.3a/debian/rules
@@ -0,0 +1,178 @@
+#!/usr/bin/make -f
+
+PACKAGE=proftpd-basic
+PACKAGE_DEV=proftpd-dev
+NAME=proftpd
+VERSION=$(shell grep PROFTPD_VERSION_TEXT $(CURDIR)/include/version.h|cut -d\" -f2)
+
+#
+# HAVE_OPENSSL is required by mod_sql.c. 
+# See #233031 for details. 
+# 
+PROFTPD_FLAGS := -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_OPENSSL -DUSE_LDAP_TLS
+CFLAGS := -O2 $(PROFTPD_FLAGS) 
+CC := gcc
+
+# Some special build options
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+  CFLAGS += -g -O0
+endif
+ifneq (,$(findstring verbose,$(DEB_BUILD_OPTIONS)))
+DH_VERBOSE=1
+export DH_VERBOSE
+endif
+
+# the dpatch rules
+include /usr/share/dpatch/dpatch.make
+
+#
+# dpkg-arch rules
+# 
+ifeq (,$(DEB_BUILD_GNU_TYPE))
+  include debian/scripts/dpkg-arch.mk
+endif
+
+# Note: use --localstatedir=/var/run/proftpd for > 1.3.2
+DSOMODS1 = mod_unique_id:mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_sql_sqlite:mod_sql_odbc:mod_dynmasq:
+DSOMODS2 = mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap:mod_wrap2:mod_wrap2_file:
+DSOMODS3 = mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_vroot:
+DSOMODS4 = mod_exec:mod_sftp:mod_sftp_pam:mod_sftp_sql:mod_shaper:mod_sql_passwd:mod_ifsession
+CONF_ARGS := --prefix=/usr \
+	     --with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') \
+	     --mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) \
+	     --enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme \
+	     --enable-ipv6 --enable-nls 
+#	     --enable-devel=stacktrace 
+
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+  CONF_ARGS += --build $(DEB_HOST_GNU_TYPE)
+else
+  CONF_ARGS += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
+endif
+
+debian/control: debian/control.in
+	sed -e 's/@VERSION@/$(VERSION)/' $< >$@
+
+debian/proftpd-substvars: debian/proftpd-substvars.in
+	sed -e 's/@VERSION@/$(VERSION)/' $< >$@
+	
+build: configure-stamp build-stamp
+build-stamp: 
+	dh_testdir
+	
+	$(MAKE) CC="$(CC)" CFLAGS="$(CFLAGS)" all
+	
+	touch $@
+
+install: build
+	dh_testdir
+	dh_prep
+	
+	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+	mv $(CURDIR)/debian/tmp/usr/share/locale/it_IT $(CURDIR)/debian/tmp/usr/share/locale/it
+	mv $(CURDIR)/debian/tmp/usr/share/locale/ru_RU $(CURDIR)/debian/tmp/usr/share/locale/ru
+
+configure: configure-stamp
+configure-stamp: patch-stamp
+	dh_testdir
+	
+	# Use current autotools helpers
+	-test -r /usr/share/misc/config.sub && \
+		mv ./config.sub ./config.sub.original && \
+		cp -f /usr/share/misc/config.sub ./config.sub
+	-test -r /usr/share/misc/config.guess && \
+		mv ./config.guess ./config.guess.original && \
+		cp -f /usr/share/misc/config.guess ./config.guess
+	
+	./configure $(CONF_ARGS) --with-shared=$(DSOMODS1)$(DSOMODS2)$(DSOMODS3)$(DSOMODS4)
+	
+	touch $@
+
+clean: debian/control debian/proftpd-substvars myclean unpatch
+myclean:
+	dh_testdir
+	dh_clean
+	
+	[ ! -f $(CURDIR)/Makefile ] || $(MAKE) distclean 
+	
+	# Reset upstream autotools helpers
+	[ ! -f config.sub.original ] || mv -f ./config.sub.original ./config.sub 
+	[ ! -f config.guess.original ] || mv -f ./config.guess.original ./config.guess
+	
+	rm -f debian/files.saved debian/files
+	rm -f $$(find . -type l) $$(find . -name "*~" -o -name "*.o")
+	rm -f $(NAME) config.cache config.log lib/*.a ftpshut Make.rules
+	rm -rf debian/$(PACKAGE) debian/$(NAME)-doc
+	rm -rf debian/files* debian/*.gz core
+	rm -f $$(find * -name "*.orig") modules/mod_ratio.c
+	rm -f contrib/dist/rpm/proftpd.spec
+	rm -rf $$(find $(CURDIR) -name .libs)
+	rm -f $$(find $(CURDIR) -name config.log )
+	rm -f $$(find $(CURDIR) -name config.status )
+	rm -f contrib/mod_wrap2/mod_wrap2.h \
+	      contrib/mod_wrap2/Makefile \
+	      contrib/mod_load/mod_load.c \
+	      contrib/mod_load/mod_load.h \
+	      contrib/mod_load/Makefile 
+	# clean up libtool files still around
+	find contrib -name "*.la" -exec rm -f {} \;
+
+binary-indep: checkroot build
+	dh_installdirs -i 
+	dh_install -i 
+	dh_installdocs -i 
+	dh_installchangelogs -i ChangeLog
+	dh_installexamples -i 
+	
+	dh_compress -i
+	dh_fixperms -i
+	dh_installdeb -i
+	dh_gencontrol -i 
+	dh_md5sums -i
+	dh_fixperms -i
+	dh_builddeb -i
+
+binary-arch: checkroot build install
+	dh_installdirs -a
+	dh_install -a 
+	dh_installdocs -a
+	dh_installchangelogs -a ChangeLog
+	dh_installman -a
+	dh_installlogrotate -a
+	dh_installpam -a --name=$(NAME)
+	
+	# removes proftpd.conf installed by upstream
+	rm -f debian/$(PACKAGE)/etc/$(NAME)/$(NAME).conf
+	
+	install -m 644 debian/templates/*.conf debian/$(PACKAGE)/usr/share/$(NAME)/templates
+	install -m 644 debian/templates/welcome.msg debian/$(PACKAGE)/usr/share/$(NAME)/templates/welcome.msg 
+	install -m 644 debian/templates/ftpusers debian/$(PACKAGE)/etc 
+	install -m 755 debian/$(PACKAGE).init debian/$(PACKAGE)/etc/init.d/$(NAME) 
+	install -m 644 debian/templates/default debian/$(PACKAGE)/etc/default/$(NAME) 
+	install contrib/xferstats.holger-preiss debian/$(PACKAGE)/usr/sbin/ftpstats
+	install -m 755 contrib/ftpasswd debian/$(PACKAGE)/usr/sbin/ftpasswd
+	install -m 755 contrib/ftpquota debian/$(PACKAGE)/usr/sbin/ftpquota
+	install -m 755 debian/proftpd-gencert debian/$(PACKAGE)/usr/sbin/proftpd-gencert
+	install -m 644 debian/proftpd-substvars debian/$(PACKAGE_DEV)/usr/share/$(NAME)/proftpd-substvars
+	
+	dh_installdebconf -a
+	dh_compress -a
+	dh_fixperms -a
+	dh_makeshlibs -a
+	dh_shlibdeps -a -l$(CURDIR)/debian/tmp/usr/lib/$(NAME)
+	dh_installdeb -a
+	dh_perl -a
+	dh_gencontrol -a 
+	dh_strip -a
+	dh_md5sums -a
+	dh_fixperms -a
+	dh_builddeb -a
+
+binary:	binary-arch binary-indep
+
+checkroot:
+	dh_testdir
+	dh_testroot
+
+.PHONY: binary binary-arch binary-indep clean checkroot patch unpatch myclean install configure
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd.conf.5
+++ proftpd-dfsg-1.3.3a/debian/proftpd.conf.5
@@ -0,0 +1,37 @@
+." This file was automatically generated on  9 giugno 2005 from Configuration.html.
+." This file may be distributed under the GNU General Public License.
+."
+.TH PROFTPD.CONF 5 " 9 giugno 2005" "proftpd.conf" "Debian proftpd"
+.SH NAME
+proftpd.conf - Configuration file for ProFTPD
+.SH DESCRIPTION
+.PP
+\fBWARNING: This file was automatically generated\fR from the file
+\fI/usr/share/doc/proftpd-doc/Configuration.html\fR (from the
+package \fIproftpd-doc\fR).  It is very well possible that there are
+a few remaining conversion errors.  If in doubt, always consult the
+HTML version.
+.PP
+This manual page describes the configuration options that are
+available in the proftpd configuration file \fI/etc/proftpd/proftpd.conf\fR.
+.SH SYNTAX
+.PP
+A list of available options follow.
+.PP
+.PP
+.SH "SEE ALSO"
+\fBproftpd\fR(8)
+.PP
+The full documentation for
+.B proftpd.conf
+is maintained as a HTML file in the package
+.B proftpd-doc
+; if for example the
+.B lynx
+and
+.B proftpd-doc
+packages are properly installed at your site, the command
+.IP
+.B lynx /usr/share/doc/proftpd-doc/Configuration.html
+.PP
+should give you access to the complete manual.
--- proftpd-dfsg-1.3.3a.orig/debian/watch
+++ proftpd-dfsg-1.3.3a/debian/watch
@@ -0,0 +1,2 @@
+version=3
+ftp://ftp.proftpd.org/distrib/source/proftpd-([\d\.]+)\.tar\.gz
--- proftpd-dfsg-1.3.3a.orig/debian/ftpquota.8
+++ proftpd-dfsg-1.3.3a/debian/ftpquota.8
@@ -0,0 +1,128 @@
+.TH FTPQUOTA "8" "August 2005" "Proftpd" "Proftpd Utilities"
+.SH NAME
+ftpquota \- An utility to manage Proftpd quotas
+.SH SYNOPSIS
+usage: ftpquota [options]
+.SH DESCRIPTION
+This utility can be used to create quota tables and manage their records
+in order to control the mod_quotatab module behavior in Proftpd.
+.SH OPTIONS
+.PP
+The following options describe the type of operation to be performed:
+.TP
+\fB\-\-add\-record\fR
+Create a new record with the specified limits.  Any
+limits left unspecified with have their default
+values.  This option requires the \fB\-\-name\fR and
+\fB\-\-quota\-type\fR options.
+.TP
+\fB\-\-create\-table\fR
+Create the table if not present.  Used to initialize
+a table.  The default limit table path is
+"./ftpquota.limittab".  The default tally table path is
+"./ftpquota.tallytab".
+.TP
+\fB\-\-delete\-record\fR
+Deletes a quota record from the table.  This option
+requires the \fB\-\-name\fR and \fB\-\-quote\-type\fR options.
+.TP
+\fB\-\-show\-records\fR
+Prints out all of the quota records in the table in
+a legible format.
+.TP
+\fB\-\-update\-record\fR
+Updates a quota record with the specified limits.  Any
+limits left unspecified will be updated with their
+default value.  This option requires the \fB\-\-name\fR and
+\fB\-\-quota\-type\fR options.
+.PP
+The following option describes the type of table on which to operate:
+.TP
+\fB\-\-type\fR
+Specifies a table type to use.  The allowable options
+are: "limit" or "tally".  This is required.
+.IP
+The following options are used to specify specific quota limits:
+.TP
+\fB\-\-Bu\fR, \fB\-\-bytes\-upload\fR
+Specifies the limit of the number of bytes that may be
+uploaded.  Defaults to \fB\-1\fR (unlimited).
+.TP
+\fB\-\-Bd\fR, \fB\-\-bytes\-download\fR
+Specifies the limit of the number of bytes that may be
+downloaded.  Defaults to \fB\-1\fR (unlimited).
+.TP
+\fB\-\-Bx\fR, \fB\-\-bytes\-xfer\fR
+Specifies the limit of the number of bytes that may be
+transferred.  Note that this total includes uploads,
+downloads, AND directory listings.  Defaults to
+\fB\-1\fR (unlimited).
+.TP
+\fB\-\-Fu\fR, \fB\-\-files\-upload\fR
+Specifies the limit of the number of files that may be
+uploaded.  Defaults to \fB\-1\fR (unlimited).
+.TP
+\fB\-\-Fd\fR, \fB\-\-files\-download\fR
+Specifies the limit of the number of files that may be
+downloaded.  Defaults to \fB\-1\fR (unlimited).
+.TP
+\fB\-\-Fx\fR, \fB\-\-files\-xfer\fR
+Specifies the limit of the number of files that may be
+transferred, including uploads and downloads.  Defaults
+to \fB\-1\fR (unlimited).
+.TP
+\fB\-L\fR, \fB\-\-limit\-type\fR
+Specifies the type of limit, "hard" or "soft", of
+the bytes limits.  If "hard", any uploaded files that
+push the bytes used counter past the limit will be
+automatically deleted; if "soft", those extra bytes
+will be allowed, but future uploads will be denied.
+This option only makes sense if \fB\-\-type\fR is "limit".
+.TP
+\fB\-N\fR, \fB\-\-name\fR
+Specifies a name for the quota record.  This name
+will be the user/login name, group name, or class
+name, depending on the quota type.  This option
+is ignored if the quota type specified is "all".
+.HP
+\fB\-P\fR, \fB\-\-per\-session\fR
+Specifies that the quota limit is to be applied only
+to each session, rather than persisting across
+sessions.  By default, quotas are persistent.
+Specifies a "quota type" for this record, where
+.TP
+\fB\-Q\fR, \fB\-\-quota\-type\fR
+the type means to which category of FTP users this
+quota will apply.  The quota type must be one of:
+"user", "group", "class", or "all".
+.PP
+The following options are miscellaneous:
+.TP
+\fB\-\-help\fR
+Displays this message.
+.TP
+\fB\-\-table\-path\fR
+Specifies the path to a quota table file to use.
+.TP
+\fB\-\-units\fR
+Specifies whether to treats bytes as is, in kilobytes,
+megabytes, or gigabytes.  Allowable options are:
+"B" or "byte", "Kb" or "kilo", "Mb" or "mega",
+and "Gb" or "giga".  Defaults to "byte".
+.TP
+\fB\-\-verbose\fR
+Toggles more verbose information about the doings of
+the tool as it works.
+.SH AUTHORS
+The Proftpd team. See http://www.proftpd.org/ for information.
+.SH COPYRIGHT
+Copyright (C) 2000-2002 TJ Saunders <tj@castaglia.org>.
+.P
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version. 
+.SH NOTES
+Manual page written for Debian GNU/Linux by
+Francesco P. Lovergine <frankie@debian.org>, Aug 2005
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-doc.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-doc.install
@@ -0,0 +1,21 @@
+README usr/share/doc/proftpd-doc
+README.controls usr/share/doc/proftpd-doc/misc
+README.PAM usr/share/doc/proftpd-doc/misc
+RELEASE_NOTES usr/share/doc/proftpd-doc
+README.IPv6 usr/share/doc/proftpd-doc/misc
+README.ports usr/share/doc/proftpd-doc/misc
+README.capabilities usr/share/doc/proftpd-doc/misc
+README.DSO usr/share/doc/proftpd-doc/misc
+README.LDAP usr/share/doc/proftpd-doc/misc
+README.classes usr/share/doc/proftpd-doc/misc
+README.facl usr/share/doc/proftpd-doc/misc
+README.modules usr/share/doc/proftpd-doc/misc
+CREDITS usr/share/doc/proftpd-doc
+NEWS usr/share/doc/proftpd-doc
+debian/index.html usr/share/doc/proftpd-doc
+debian/*.txt usr/share/doc/proftpd-doc/misc
+doc/howto usr/share/doc/proftpd-doc
+doc/contrib usr/share/doc/proftpd-doc
+doc/modules usr/share/doc/proftpd-doc
+doc/faq.html usr/share/doc/proftpd-doc
+doc/Configuration.* usr/share/doc/proftpd-doc
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-dev.dirs
+++ proftpd-dfsg-1.3.3a/debian/proftpd-dev.dirs
@@ -0,0 +1,5 @@
+usr/bin
+usr/lib/proftpd
+usr/include/proftpd
+usr/share/pkgconfig
+usr/share/proftpd
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-mod-ldap.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-mod-ldap.install
@@ -0,0 +1,2 @@
+usr/lib/proftpd/mod_ldap.so
+usr/lib/proftpd/mod_quotatab_ldap.so
--- proftpd-dfsg-1.3.3a.orig/debian/README.source
+++ proftpd-dfsg-1.3.3a/debian/README.source
@@ -0,0 +1,17 @@
+ProFTPD source for Debian
+-------------------------
+
+This source is created by pre-stripping RFC documents generally
+included in upstream tarballs. A good set of functional fixes
+taken from upstream CVS are also included by means of dpatch (see
+/usr/share/doc/dpatch/README.source.gz for details about the
+program). Debian patches are named after the related bug ID on
+bugzilla.proftpd.org, in order to simplify checking of merged changes at
+every new upstream release: by comparing changelog.Debian and upstream
+NEWS files superfluous patches are easily found.
+
+Note that since 1.3.2, upstream CVS has a proper stable branch which 
+should be followed instead of HEAD for useful fixes.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 01 Sep 2009 22:45:56 +0200
+
--- proftpd-dfsg-1.3.3a.orig/debian/changelog
+++ proftpd-dfsg-1.3.3a/debian/changelog
@@ -0,0 +1,2825 @@
+proftpd-dfsg (1.3.3a-6squeeze6) stable-security; urgency=low
+
+  * Fixed patch 3841 to include the new pr_fsio_lchown() function 
+    to correctly backport changes.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 08 Jan 2013 12:54:23 +0100
+
+proftpd-dfsg (1.3.3a-6squeeze5) stable-security; urgency=low
+
+  * [SECURITY] 3841.dpatch. This patch fixes a possible race condition in the
+  handling of the MKD/XMKD FTP commands, when the UserOwner directive is 
+  involved, and the attacker is on the same physical machine as a running
+  proftpd. This is CVE-2012-6095.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 08 Jan 2013 10:27:27 +0100
+
+proftpd-dfsg (1.3.3a-6squeeze4) stable-security; urgency=low
+
+  * [SECURITY] 3711.dpatch. This patch fixes a response pool use-after-free
+    memory corruption error. This is CVE-2011-4130.
+    (closes: #648373)
+  * [SECURITY] 3624.dpatch This patch fixes the issue by causing mod_tls to
+    clear the buffers of any data received from the client, once the SSL/TLS 
+    handshake has succeded. This is similar to CVE-2011-0411.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 13 Nov 2011 23:17:40 +0100
+
+proftpd-dfsg (1.3.3a-6squeeze1) stable-security; urgency=high
+
+  * [SECURITY] CVE-2011-1137: mod_sftp behaves badly when receiving badly
+    formed SSH messages. See http://bugs.proftpd.org/show_bug.cgi?id=3586
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 07 Mar 2011 09:53:00 +0100
+
+proftpd-dfsg (1.3.3a-6) unstable; urgency=high
+
+  * [SECURITY] 3536.dpatch fixes insufficient bounds checking in sql_prepare_where() 
+    function as found in mod_sql.c. 
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 28 Jan 2011 09:54:52 +0100
+
+proftpd-dfsg (1.3.3a-5) unstable; urgency=high
+
+  * [SECURITY,PATCH] 3521.dpatch fixes Telnet IAC processing stack overflow.
+    This vulnerability allows remote attackers to execute arbitrary code on
+    vulnerable installations of ProFTPD. Authentication is not required to
+    exploit this vulnerability. It applies to >= 1.3.2rc3.
+    (closes: #602279, #602288)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 03 Nov 2010 10:51:05 +0100
+
+proftpd-dfsg (1.3.3a-4) unstable; urgency=high
+
+  * [SECURITY,PATCH] 3519.dpatch fixes Inappropriate directory traversal allowed by
+    mod_site_misc. This vulnerability can be used to:
+     - create a directory located outside the writable directory
+     - delete a directory located outside the writable directory
+     - create a symlink located outside the writable directory
+     - change the time of a file located outside the writable directory.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 22 Oct 2010 11:59:54 +0200
+
+proftpd-dfsg (1.3.3a-3) unstable; urgency=medium
+
+  * Fixed 3492.dpatch to drop .rej file still around.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 14 Sep 2010 15:25:29 +0200
+
+proftpd-dfsg (1.3.3a-2) unstable; urgency=medium
+
+  * A few upstream fixes taken from 1.3.3b bug fixing release. Most fixes
+    are NULL dereferences that cause segfaults at run time.
+  * New patches:
+        3481.dpatch: Problem with SFTP directory listings.
+        3483.dpatch: NULL pointer dereference handling SITE command in mod_quotatab
+        3487.dpatch: Null pointer dereference with EPRT/EPSV/PASV/PORT command
+                     during data transfer.
+        3492.dpatch: Null pointer dereference during data transfer due to
+                     RNFR/RNTO.
+        3494.dpatch: Null pointer dereference for IPv6-enabled proftpd when no
+                     DefaultServer configured.
+        3501.dpatch: <Anonymous> logins with "AuthAliasOnly on" still handled
+                     as anonymous logins.
+  * Updated pt_BR.po template.
+    (closes: #595889)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 13 Sep 2010 15:38:52 +0200
+
+proftpd-dfsg (1.3.3a-1) unstable; urgency=low
+
+  * New upstream release and finally uploading to unstable.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 05 Jul 2010 10:35:40 +0200
+
+proftpd-dfsg (1.3.3a~20100625-2) experimental; urgency=low
+
+  * Fixed ABI version in debian/control.
+  * Moved libcap2-dev to libcap-dev.
+  * Policy bumped to 3.9.0. Removed type-handling now obsoleted.
+    (closes: #587869)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 28 Jun 2010 12:01:08 +0200
+
+proftpd-dfsg (1.3.3a~20100625-1) experimental; urgency=low
+
+  * New upstream CVS snapshot with about 50 fixes of various bugs.
+    See upstream NEWS file for a list of fixes.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 13 May 2010 11:24:54 +0200
+
+proftpd-dfsg (1.3.3-1) experimental; urgency=low
+
+  * New upstream release, with some merges and updates of patches.
+    (closes: #577093, #560807)
+  * New modules have been enabled:
+        mod_exec
+        mod_shaper
+        mod_sftp and its friends
+        mod_sql_passwd
+  * Templates changed to add new modules support.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 19 Apr 2010 12:02:54 +0200
+
+proftpd-dfsg (1.3.2e-4) unstable; urgency=low
+
+  * Fixed inetd_check() in init file. Thanks Mats Erik Andersson.
+    (closes: #554029)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 18 Mar 2010 11:16:29 +0100
+
+proftpd-dfsg (1.3.2e-3) unstable; urgency=low
+
+  * Removed obsolete patches still in debian/patches.
+  * Added mod_vroot to useful contributed modules by mod_vroot.dpatch.
+  * Added virtuals.conf to templates to better support vhost/vroot configs.
+  * Fixed a bit layout in ftpstats.8 contributed manpage.
+  * Updated debian/NEWS file.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 16 Mar 2010 12:38:26 +0100
+
+proftpd-dfsg (1.3.2e-2) unstable; urgency=low
+
+  * Updated from debian/*.in templates, step previously missed.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 11 Mar 2010 18:09:46 +0100
+
+proftpd-dfsg (1.3.2e-1) unstable; urgency=low
+
+  * New upstream release, with merging of {3342,3337}.dpatch.
+  * Moved $remote_fs from Should-Start/-Stop to Required-Start/-Stop as
+    suggested by lintian.
+  * Fixed spelling error in README.Debian. Thanks lintian.
+  * Reformatted time entry in NEWS file. Thanks lintian.
+  * Removed explicit path for proftpd call in postinst. Thanks lintian. 
+  * Previous changelog entry reformatted for 80 cols layout. Thanks lintian.
+  * Install proftpd-substvars without exec attribute.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 09 Mar 2010 17:06:24 +0100
+
+proftpd-dfsg (1.3.2d-2) unstable; urgency=low
+
+  * Added patch CVE-2009-3736.dpatch to fix embedded liblt 1.5.8 against 
+    CVE-2009-3736 as in backport for 1.5 liblt branch:
+    http://lists.gnu.org/archive/html/libtool/2009-11/msg00065.html. 
+    Note that proftpd use a specific directory for loading solibs so also
+    the unfixed version does not really affect proftpd per se. 
+  * Added 3337.dpatch to fix better a <Limit> corner case.
+  * Policy bumped to 3.8.4, without changes.
+  * Now requires openssl >= 0.9.8l-1 to have a working 
+    AllowClientRenegotiations.  Renegotiations is disabled in >= 0.9.8k-6, 
+    but proftpd assumes it works in all versions before 0.9.8l.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 08 Mar 2010 12:33:31 +0100
+
+proftpd-dfsg (1.3.2d-1) unstable; urgency=low
+
+  * New upstream release.
+    It should also fix a problem with renegotiations missed in 1.3.2c.
+    (closes: #558597)
+  * Fixed debian/changelog layout at 80 cols.
+  * Added 3342.dpatch: FEAT response contains LF without preceding CR.
+    (closes: #563711) 
+  * Removed the dpkg-divert check to distinguish inetd/xinetd cases.
+    (closes: #562087)
+  * Init script now check if inetd or xinetd is installed and warn the users
+    if they are not and proftpd config is in inetd mode.
+    (closes: #554029)
+  * Now proftpd-basic does no more depend on inet-superserver. Admins should
+    install inetd/xinetd and configure them when needed. Reintroduced 
+    update-inetd dependency instead.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 20 Feb 2010 23:26:22 +0100
+
+proftpd-dfsg (1.3.2c-1) unstable; urgency=low
+
+  * New upstream release, with fix of CVE-2009-3736 due to update of the
+    embedded liblt with a backported fix.
+    (closes: #553406, #555862, #559842)
+    Merged patches: 3324, 3328.
+  * Added a note about AllowClientRenegotiations option for TLS protocols in 
+    NEWS and a commented directive in tls.conf subfile.
+    (closes: #558597)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 11 Dec 2009 09:42:48 +0100
+
+proftpd-dfsg (1.3.2b-2) unstable; urgency=low
+
+  * Now copy original config.* stuff and restore at cleaning time. This makes
+    lintian happy.
+  * Added security patch 3324.dpatch to manage SSL/TLS renegotiation. This is 
+    related to recently discovered protocol defection which could render it 
+    attackable. See also CVE-2009-3555.
+  * Added 3328.dpatch patch to manage a possible end-less loop in 
+    mod_quotatab_sql.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 10 Nov 2009 13:11:42 +0100
+
+proftpd-dfsg (1.3.2b-1) unstable; urgency=low
+
+  * New upstream release.
+    Merged patches: 3282, 3284 and 3275. Note that 3275 solved CVE-2009-3639.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 26 Oct 2009 11:48:34 +0100
+
+proftpd-dfsg (1.3.2a-2) unstable; urgency=low
+
+  * Added TLSOptions EnableDiags in tls.conf templates, as a useful
+    option to be much more verbose.
+  * Added a proftpd-substvars snippet in proftpd-dev package. It should
+    be used for providing build-time substvars for third-parties packages. 
+    The snippet should be added to local substvars and provides 
+    ${proftpd:Depends} substvar.
+  * Moved to libmysqlclient-dev build-dep for MySQL 5.1 transition and 
+    recent ack aba NMU.
+    (closes: #542905)
+  * Policy bumped to 3.8.3.
+  * Removed /var/run/proftpd among proftpd-basic.dirs/install,
+    it is anyway created in the init script since long time. 
+    This fixes the dir-or-file-in-var-run in lintian.
+  * Long due fix to POTFILES.in due to proftpd -> proftpd-basic change in 
+    binary package name. Fixed lintian warn.
+  * Fixed debian-rules-calls-debhelper-in-odd-order lintian warn.
+  * Fixed debhelper-but-no-misc-depends lintian warn.
+  * Added a long due README.source file, which also fixes
+    patch-system-but-no-source-readme lintian warning.
+  * Set -e in prerm script. Fixes maintainer-script-ignores-errors lintian warn.
+  * Added Old Changelog: token to avoid historical warns by lintian on old
+    entries of debian/changelog.
+  * Fixed exit codes for status action in init script.
+    (closes: #527879)
+  * The -dev package no more install libtool .la files.
+  * [PATCH] Added 3275.dpatch to fix NULs management in TLS cert validation.
+    If reverse DNS resolution is off, OR if client certs are not being verified,
+    OR if the DNS name in the client cert is not required, then the bug does not
+    occur.
+  * [PATCH] Added 3282.dpatch to uncache first user in mod_sql when 
+    SQLNegativeCache is on.  
+  * [PATCH] Added 3284.dpatch to fix TCP_NODELAY misuse in inet.c core file.
+    It negatively impacts >= 1.3.1 versions.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 07 Sep 2009 11:40:53 +0200
+
+proftpd-dfsg (1.3.2a-1) unstable; urgency=low
+
+  * New upstream release with a bounce of fixes.
+  * Removed obsolete patches: 3190, 3196.
+  * Removed obsolete proftpd-common conflicting.
+  * Policy bumped to 3.8.2 (no changes).
+  * Now proftpd-basic Provides: proftpd-abi-<version>, which is useful for external
+    plugins. All plugins created with external sources has to depend on the 
+    specified ABI in order to avoid breakages at upgrade time by mixing 
+    mixed versions.
+  * File debian/control is templated to depend on upstream version for ABI
+    interface automagically at build time.
+  * The cron.monthly ftpstats job has been removed and merged with logrotate.
+    (closes: #522199)
+  * Now postinst disables old monthly cron jobs at upgrade time. Added a note about
+    new logrotation scheduling policy in proftpd-basic.NEWS.
+  * Fixed proftpd-basic.NEWS file contents.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 17 Jul 2009 13:28:38 +0200
+
+proftpd-dfsg (1.3.2-3) unstable; urgency=medium
+
+  * Added proftpd-mod-sqlite and proftpd-mod-odbc to Suggests in debian/control.
+  * Removed LIBS prefixed at configuration time in debian/rules and still around 
+    after odbc.patch. My oversight...
+    (closes: #519029) 
+  * [PATCH] Added 3204.dpatch to provide a better prxs to third-parties module.
+    It properly manages DESTDIR and module $Libraries$. And also provides --help :)
+  * Removed 3188.dpatch because obsoleted by 3204.dpatch.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 10 Mar 2009 10:28:12 +0100
+
+proftpd-dfsg (1.3.2-2) unstable; urgency=low
+
+  * [PATCH] Now prxs.dpatch renamed 3188.dpatch to reflect assigned
+    bugzilla id.
+  * Added mod_sql_odbc, mod_sql_sqlite, mod_unique_id support with their
+    build-deps.
+  * Standard configuration changed to reflect new modules adding. 
+  * A couple of new packages added:
+  	proftpd-mod-sqlite
+        proftpd-mod-odbc
+    to distribute the two new SQL modules.
+  * [PATCH] Added odbc.dpatch to manage automagically unixodbc library
+    linking.
+  * Added some explicative notes in the configuration files about SQL
+    modules loading to make happy users.
+    (closes: #517363)
+  * Some changes in the provided README.Debian file.
+  * [PATCH] Added 3190.dpatch to fix <Limit> handling with MLSD/MLST 
+    commands.
+
+  * Default cron.monthly changed to avoid annoying mails when no data
+    are present. 
+    (closes: #517794)
+  * Added doc-base support for HTML docs in proftpd-doc. 
+    (closes: #317362)
+  * Added TJ copyright to debian/copyright as suggested by ftpmasters.
+    Also revised that file to be more complete.
+  * [PATCH] Added 3196.dpatch to fix secondary group list handling
+    in mod_quotatab.c
+  * Removed usr/share/doc/proftpd in debian/proftpd-basic.dirs stll around
+    since proftpd-basic introduction in 1.3.1 series.
+    (closes: #517974)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 03 Mar 2009 11:19:16 +0100
+
+proftpd-dfsg (1.3.2-1) unstable; urgency=low
+
+  * New upstream release.
+    (closes: #500731, #444027)
+  * Debhelper compatibility moved to 7: revised dh_clean usage and *-stamp
+    targets.
+  * Moved to libcap2.
+    (closes: #492771)
+  * Specifies better module purposes.
+    (closes: #507644)
+  * Depends on openbsd-inetd | inet-superserver in debian/control, instead of
+    update-inetd.
+    (closes: #507311)
+  * Patchset revised by removing all patches merged upstream.
+  * Removed fake proftpd binary, used for etch -> lenny upgrades.
+  * Added proftpd-dev binary package to support external DSO modules build.
+  * Now debian/rules uses dh_installcron, dh_installpam, dh_installman instead
+    of installing by hand.
+  * Log rotation is done via logrotate.
+    (closes: #503342)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 15 Feb 2009 11:13:51 +0100
+
+proftpd-dfsg (1.3.1-17) unstable; urgency=high
+
+  * Security: added 3173.dpatch patch to manage a critical encoding-dependent SQL
+    injection with SQL-based authentication.
+    See http://bugs.proftpd.org/show_bug.cgi?id=3173. This is fixed in 1.3.2.
+    Thanks TJ for backported patch. 
+  * Now debian/rules removes at cleaning time a couple of .la files
+    under contrib/ still around after building. This fixes a recently discovered 
+    FTBS error due to those files.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 06 Feb 2009 12:52:04 +0100
+
+proftpd-dfsg (1.3.1-16) unstable; urgency=low
+
+  * Enabled nls support to allow alternative encodings to work.
+    (closes: #503274)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 20 Oct 2008 13:02:51 +0200
+
+proftpd-dfsg (1.3.1-15) unstable; urgency=high
+
+  * Fixed debian/changelog for wrongly close #496622 instead of #497622.
+  * [PATCH,SECURITY] New 3115.dpatch.
+    Fixes a cross-site forgery based on long command use, CVE-2008-4242.
+    (closes: #502674)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 21 Sep 2008 23:32:46 +0200
+
+proftpd-dfsg (1.3.1-14) unstable; urgency=low
+
+  * Fixed a bit debian/changelog layout and typos.
+  * DisplayFirstChdir -> DisplayChdir in standard proftpd.conf comments.
+    (closes: #496517, #496160)
+  * Added a versioned replaces/conflicts against pre -12 versions.
+    That would manage nicer by-hand installations of proftpd-basic when
+    starting from old single-binary versions. This is not required for
+    (dist)upgrades but it does not hurt anyway.
+  * [PATCH] New 3094.dpatch.
+    Implements unidirectional shutdown of TLS/SSL sessions which is mandatory
+    to support recent filezilla and possibly other clients. This will avoid
+    many headaches for Filezilla >=3.1 users reporting failures in connecting
+    proftpd servers.
+    (closes: #498136)
+  * Fixed long description of proftpd to use 'transitional package' instead of
+    'pseudo package' expression.
+    (closes: #497622)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 26 Aug 2008 16:27:46 +0200
+
+proftpd-dfsg (1.3.1-13) unstable; urgency=low
+
+  * Modified proftpd.conf template to fix AuthOrder syntax.
+  * Removed supefluous comments in model templates.
+  * [PATCH] New patch pam_auth.dpatch, previuously overlooked :-(
+    PAM authoritative configuration not honored fixed.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2986
+    (closes: #493265)
+  * [PATCH] New patch mod_ldap.c.dpatch
+    Fixes two major problems which render mod_ldap unusable on
+    64bit archs and causes serious breakage when URLs are used
+    for LDAPServer configuration. See #3097 and #3046 on proftpd bugzilla.
+    (closes: #491719)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 08 Aug 2008 16:23:41 +0200
+
+proftpd-dfsg (1.3.1-12) unstable; urgency=low
+
+  * Binary packages are now splitted:
+  	- proftpd-mod-mysql
+        - proftpd-mod-pgsql
+        - proftpd-mod-ldap
+        - proftpd-basic
+        - proftpd (pseudo)
+    to reduce dependencies for basic proftpd installations without exotic
+    auth layers. The proftpd binary is now a pseudo-package used for
+    migrating from etch to the new structure.
+    (closes: #364331)
+  * Removed perl dependency in proftpd-basic.
+  * Updated debconf templates
+     - Japanese. Closes: #463172                                                                                             
+     - Brazilian Portuguese. Closes: #486259                                                                                 
+     - Turkish. Closes: #486560                                                                                              
+     - Swedish. Closes: #487371
+  * Updated README.Debian file.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 24 Jun 2008 14:19:19 +0200
+
+proftpd-dfsg (1.3.1-11) unstable; urgency=medium
+
+  * [PATCH] mod_dynmasq.dpatch
+        Added contributed module mod_dynmasq and modified a bit templates for
+        supporting it.
+    (closes: #354059)
+  * Removing currently superfluous static and libtool files in usr/lib/proftpd.
+  * Fixed typo in dh_shlibdeps call in debian/rules.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 16 Jun 2008 23:56:54 +0200
+
+proftpd-dfsg (1.3.1-10) unstable; urgency=low
+
+  * Commented better tls.conf templates in order to simplify SSL/TTL certs
+    generation for users. Changed /etc/ssl/{private/certs} paths used for
+    coherence.
+  * Added a /usr/sbin/proftpd-gencert utility to generate or re-create a self-signed
+    SSL/TLS certificate. This is inspired to the exim4 sample script and
+    useful for lazy people.
+  * Added openssl as suggested package. It is required in order to run
+    proftpd-gencert.
+  * Now set IdentLookups off in default proftpd.conf.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 20 May 2008 10:12:46 +0200
+
+proftpd-dfsg (1.3.1-9) unstable; urgency=low
+
+  * Removed bashisms in debian/rules and revised file names removed.
+    (closes: #478617)
+  * [PATCH] mod_cap.dpatch. Removed obsolete embedded sys/capability.h header
+    inclusion in mod_cap.c modules. Also it avoids building of the obsolete 
+    embedded libpcap.
+    (closes: #479893)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 07 May 2008 11:01:46 +0200
+
+proftpd-dfsg (1.3.1-8) unstable; urgency=low
+
+  * Long due fix to cron.weekly to explicitly specifing the log path.
+    This is not strictly requested because ftpstats has been fixed for
+    default, but anyway useful as reminder for admin in case he changed
+    the log path.
+  * Now debconf warning message about pre-1.3.0 migration has been dropped. 
+    (closes: #452285)
+  * Added a check-config stanza to proftpd.init file to check proftpd.conf. 
+  * Postinst file fixed, it now should gracefully exit on configuration
+    errors for true. 
+    (closes: #379503)
+  * Revised changelog to wrap within 80 columns and making lintian happy. 
+  * Updated it.po to remove fuzziness.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 29 Apr 2008 14:28:24 +0200
+
+proftpd-dfsg (1.3.1-7) unstable; urgency=low
+
+  * [PATCH] check_order.dpatch
+  	Make sure that the handling of any <Limit LOGIN> sections happens after
+        the class of the session has been determined.  Otherwise, any
+        AllowClass/DenyClass directives within the <Limit>
+        section will not be handled properly.
+  * [PATCH] mod_delay.dpatch
+  	Fixing possible segfault due to DelayTable loading failure.
+        See http://bugs.proftpd.org/show_bug.cgi?id=3044
+  * [PATCH] ftpstats.dpatch
+  	Fixes default xferlog pathname in ftpstats.
+        (closes: #378826)
+  * [PATCH] mod_quotatab_sql.dpatch
+  	Fixes segfault when n mod_quotatab_sql if the SQL query returns 
+        NULL bytes/files values
+        See http://bugs.proftpd.org/show_bug.cgi?id=3061
+  * Reintroduced conflicting/replacing against proftpd-common, 
+    just for corner cases. 
+    (closes: #460420)
+  * Introduced new sample templates to be included by provided proftpd.conf 
+    for exotic implementations. They are only optionally included.
+  * Revised class_rules_fix.dpatch to fix netacl.c changes. 
+    See http://bugs.proftpd.org/show_bug.cgi?id=3035
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 04 Apr 2008 17:46:56 +0200
+
+proftpd-dfsg (1.3.1-6) unstable; urgency=low
+
+  * Template revision in 1.3.1-4 altered shared/proftpd/inetd_or_standalone
+    choices. Now proftpd.postinst has been revised for that.
+    (closes: #461913)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 21 Jan 2008 15:06:48 +0100
+
+proftpd-dfsg (1.3.1-5) unstable; urgency=low
+
+  * Long due typo fix in welcome.msg template.
+    (closes: #435320)
+  * Now reload daemon after rotation, due to SIGUP fixing in 1.3.1.
+    (closes: #428828, #435524)
+  * [PATCH] ip_acl_fix.dpatch
+        IPv4 ACLs (not glob/wildcard rules) were not being compared properly
+        against IPv4-mapped IPv6 connections. Thanks TJ.
+        See http://bugs.proftpd.org/show_bug.cgi?id=3031
+  * [PATCH] class_rules_fix.dpatch
+        Class rules do not honor '!' negation character. Thanks TJ.
+        See http://bugs.proftpd.org/show_bug.cgi?id=3033
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 21 Jan 2008 11:46:43 +0100
+
+proftpd-dfsg (1.3.1-4) unstable; urgency=low
+
+  * Added LSB init section to debian/proftpd.init for run-time init.d
+    dependencies.
+  * Removed LSB-like functions in proftpd.init because lsb-base is required
+    since etch.
+  * Added new configuration sub-files: ldap.conf, sql.conf and tls.conf with
+    advanced configurations.
+    All files are included by the main one.
+  * debian/templates/basic.conf renamed proftpd.conf to simplify debian/rules
+  * Added a 'status' stanza to proftpd init script (in daemon mode only).
+    (closes: #370199)
+  * debian/changelog wrapped better to 80 columns.
+  * Template normalization and translation party, thanks Christian Perrier
+    and others for the global patch here merged.
+  	+ Debconf templates and debian/control reviewed by the debian-l10n-
+    	english team as part of the Smith review project. Closes: #455778
+  	+ [Debconf translation updates]
+  	+ Slovak. Closes: #455887
+  	+ Finnish. Closes: #455970
+  	+ Galician. Closes: #455985
+  	+ Norwegian Bokmål. Closes: #456410
+  	+ Portuguese. Closes: #456539
+  	+ Spanish; Castilian. Closes: #456674
+  	+ Basque. Closes: #457036
+  	+ German. Closes: #457091
+  	+ Vietnamese. Closes: #457380
+  	+ Dutch. Closes: #457807
+  	+ Russian. Closes: #457875
+  	+ French. Closes: #458520
+  	+ Finnish. Closes: #455970
+  	+ Czech. Closes: #458791
+  	+ Indonesian. Closes: #458828
+  * [PATCH] sql_timer_cb.dpatch
+  	TIMED connections don't reconnect to the SQL database.
+        See http://bugs.proftpd.org/show_bug.cgi?id=3022
+  * Added a specific Homepage field in debian/control for proftpd-doc.
+  * Policy bumped to 3.7.3 (no relevant changes).
+  * Removed wu-ftpd among conflicting packages (superfluous).
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 07 Jan 2008 10:41:53 +0100
+
+proftpd-dfsg (1.3.1-3) unstable; urgency=low
+
+  * Disabled language support: currently only en_US is supported, so it is
+    not that useful.  It was wrongly compiled in as a DSO module, anyway. 
+    A configuration option --enable-nls should be used instead. 
+    Fixed modules.conf.
+    (closes: #451747, #451090, #457178)
+  * Commented out stacktrace support at configuration time.
+  * Properly moved to debhelper compatibility 5.
+  * Fixed clean rules to remove auto-generated files.
+  * [Lintian] Fixed FSF address in debian/copyright file. 
+              This is a GPL2 or later program.
+  * [Lintian] Spelling error adviced->advised fixed in README.Debian.
+  * Added missing --oknodo at daemon startup in proftpd.init.
+    (closes: #455562)
+  * [debian/templates/basic.conf] Added an AuthOrder commented directive in 
+    default proftpd.conf template.
+  * [debian/rules] Minor changes in script style.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 20 Dec 2007 11:58:45 +0100
+
+proftpd-dfsg (1.3.1-2) unstable; urgency=low
+
+  * Set off all module directives for safety in default template and also
+    changed a bit basic.conf and modules.conf templates.
+  * New modules building and loading added:
+  	mod_ban
+        mod_lang
+        mod_load
+        mod_quotatab_radius
+        mod_site_misc
+        mod_wrap2
+        mod_wrap2_file
+        mod_wrap2_sql
+  * Added patch:
+  	tls-openssl-version.dpatch:
+             Do not fails if OpenSSL header does not match library version, 
+             just warns.
+             See  http://bugs.proftpd.org/show_bug.cgi?id=2996
+	     (closes: #447534)
+  * Removed obsolete patches.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 18 Oct 2007 17:06:46 +0200
+
+proftpd-dfsg (1.3.1-1) unstable; urgency=low
+
+    New upstream release, with merged fixes for old bugs and a good deal of
+    new bugs of course :) (closes: #384039)
+  * Upstream merged patches:
+  	auth_cache.dpatch
+        auth_loop.dpatch
+        ipv6only.dpatch
+        auth_fix.dpatch
+        CORE-2006-1127.dpatch
+        SA23141.dpatch
+        SA22803.dpatch
+        ipv6_cidr_warn.dpatch
+        sighup_fault.dpatch
+        cve_2006_5815.dpatch
+        remove_rpath.dpatch
+        modules_order.dpatch
+   * Existing patchset updated for current sources.
+   * In debian/templates/basic.conf: 'DisplayFirstChdir path' changed in 
+     'DisplayChdir path true' due to changes in directive. 
+     Version 1.3.0 default config will issue a warning.
+   * Added patches:
+        - mode_t.dpatch:
+                FTBS due to conflicting types for 'mode_t'.
+        	See http://bugs.proftpd.org/show_bug.cgi?id=2993
+        - authoritative_pam.dpatch:
+                Authoritative PAM is not honored.
+                See http://bugs.proftpd.org/show_bug.cgi?id=2986
+        - mod_wrap2_file.dpatch:
+                Fixed mod_wrap2_file misbehavior.
+                See http://bugs.proftpd.org/show_bug.cgi?id=2988
+        - auth-id-cache.dpatch:
+                mod_auth_file uid2name() does not cache results causing slow 
+                LIST response. See http://bugs.proftpd.org/show_bug.cgi?id=2984
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 15 Oct 2007 23:18:54 +0200
+
+proftpd-dfsg (1.3.0-26) UNRELEASED; urgency=low
+
+  * Added a modules_order patch to manage modules that use their own build script.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2974
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 05 Oct 2007 23:25:28 +0200
+
+proftpd-dfsg (1.3.0-25) unstable; urgency=low
+
+  * Fixed typo in configuration template.
+    (closes: #424602)
+  * FYI: patch auth_cache fixes CVE-2007-2165.
+  * Removed obsolete pre-etch postgresql-dev build-dep.
+    (closes: #429980)
+  * Anonymous restrictions apply after a failed anonymous login followed by a 
+    successful normal user login. Added a patch anon.dpatch to manage. 
+    See http://bugs.proftpd.org/show_bug.cgi?id=2939
+  * Added debconf template: sk.po
+    (closes: #440724)
+  * Added versioned dependency for sed.
+    (closes: #431399)
+  * Added Homepage field in debian/control.
+  * In proftpd.postinst pre-check before adding a ftp service line via
+    update-inetd. Currently hostname/addresses list prefix to services are not
+    managed at all. This partially fix #430849 for what concerns proftpd.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 29 Sep 2007 11:22:52 +0200
+
+proftpd-dfsg (1.3.0-24) unstable; urgency=low
+
+  * Added ipv6only.dpatch to avoid syslog pollution on ipv6-only boxes.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2932
+    (closes: #422448)
+  * One more fix due to typo into auth_cache patch. 
+    See again http://bugs.proftpd.org/show_bug.cgi?id=2922
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 14 Jun 2007 14:38:20 +0200
+
+proftpd-dfsg (1.3.0-23) unstable; urgency=low
+
+  * Transitional packages proftpd-mysql, proftpd-pgsql and proftpd-ldap removed.
+    (closes: #422717)
+  * Cleaned post-etch build-deps and dependencies.
+  * auth_cache patch fixed to manage correctly PAM auth.
+    See again http://bugs.proftpd.org/show_bug.cgi?id=2922
+    (closes: #421818)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 19 May 2007 15:05:38 +0200
+
+proftpd-dfsg (1.3.0-22) unstable; urgency=high
+
+  * Added update-inetd dependency.
+  * Security: added a auth_cache patch to manage stacked auth scheme which 
+    can manage to introduce unexpected behaviors in some corner cases.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2922
+    (closes: #419255)
+  * Added a auth_loop patch to avoid endless loop in auth modules.
+    
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 17 Apr 2007 10:48:43 +0200
+
+proftpd-dfsg (1.3.0-21) unstable; urgency=low
+
+  * Changed default template to document the SQLBackend directive.
+    README.Debian also changed as consequence. Also added a few more useful
+    commented directives in debian/templates/basic.conf.
+  * Updated debconf templates
+    (closes: #408618, #412222)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun,  4 Mar 2007 11:19:16 +0100
+
+proftpd-dfsg (1.3.0-20) unstable; urgency=medium
+
+  * New patch: auth_fix (fixes taken from 1.3.1rc1)
+    mod_auth_unix returns ERROR instead of DECLINE and causes denial of service
+    when used as first auth module in a AuthOrder directive with others.
+    (cfr http://bugs.proftpd.org/show_bug.cgi?id=2721)
+  * Added libattr1-dev build-dep for backporters.
+    (closes: #400738, #405981)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 18 Jan 2007 12:25:22 +0100
+
+proftpd-dfsg (1.3.0-19) unstable; urgency=high
+
+  * Updated NEWS and README.Debian in order to document SQL backend engine 
+    configuration. (closes: #369813, #405184)
+  * Uses correct encoding declaration in pt debconf template.
+    (closes: #403486)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue,  2 Jan 2007 10:47:24 +0100
+
+proftpd-dfsg (1.3.0-18) unstable; urgency=high
+
+  * Rebuilt for cleaning spurious changes introduced by uncomplete building.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 14 Dec 2006 16:10:26 +0100
+
+proftpd-dfsg (1.3.0-17) unstable; urgency=high
+
+  * SECURITY: ProFTPD Controls Buffer Overflow, locally exploitable. 
+    This is fixed in 1.3.1. New patch CORE-2006-1127 added.
+    See http://www.coresecurity.com/?module=ContentMod&action=item&id=1594
+    and http://bugs.proftpd.org/show_bug.cgi?id=2867 for reference.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 14 Dec 2006 10:21:56 +0100
+
+proftpd-dfsg (1.3.0-16) unstable; urgency=high
+
+  * Added a new security patch for Secunia SA23141 advisory (mod_tls abuse)
+    See SA23141 patch for details.
+    See http://secunia.com/advisories/23141/ for advisory
+    See http://bugs.proftpd.org/show_bug.cgi?id=2860 for details.
+    (closes: #400793)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 29 Nov 2006 11:27:34 +0100
+
+proftpd-dfsg (1.3.0-15) unstable; urgency=high
+
+  * Sigh, a new patch fixes for sure security bug Secunia SA22803 advisory 
+    (sreplace() abuse). See SA22803 patch added to the previous one which 
+    was anyway correct on the basis of CVE-2006-5815.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2858 for details.
+    See http://secunia.com/advisories/22803/ for advisory.
+    (closes: #399070)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 28 Nov 2006 13:29:58 +0100
+
+proftpd-dfsg (1.3.0-14) unstable; urgency=medium
+
+  * New patch: ipv6_onoff: adds long due ipv6 run-time enabling/disabling, 
+    based on http://bugs.proftpd.org/show_bug.cgi?id=2817 CVS patch. 
+    It adds UseIPv6 on|off directive and --ipv4/--ipv6 command line options.
+  * Now changed default proftpd.conf to enable explicitly as previous default.
+    Admin can turn it off if he likes so. That is an alternative to provide an 
+    ipv6 address/name map.
+  * Documenting new option in README.Debian.
+  * Updated japanese debconf template.
+    (closes: #400152)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 24 Nov 2006 11:58:58 +0100
+
+proftpd-dfsg (1.3.0-13) unstable; urgency=high
+
+  * Security fix for CVE-2006-5815, DoS with low impact.
+    (See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5815)
+    Patch cve_2006_5815 added, taken from main.c(1.292->1.294). Other
+    vendors' patch (1.292->1.293) is wrong and causes segfault.
+    Debian rocks as always instead ;-)
+    (closes: #399070)
+  * Updated german po file for debconf.
+    (closes: #399252)
+  * Updated italian po file for debconf.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 20 Nov 2006 12:03:08 +0100
+
+proftpd-dfsg (1.3.0-12) unstable; urgency=high
+
+  * Fixing properly update-rc.d call in postrm. Eventually the init script
+    should be changed to work with dh_installinit, which would be more clean.
+    (closes: #397918)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 10 Nov 2006 15:03:30 +0100
+
+proftpd-dfsg (1.3.0-11) unstable; urgency=medium
+
+  * Sigh, reverted a change in proftpd.install due to an initial package 
+    splitting no more completed. The result was missing SQL and LDAP modules.
+    (closes: #394233)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 20 Oct 2006 14:32:04 +0200
+
+proftpd-dfsg (1.3.0-10) unstable; urgency=low
+
+  * Removed RFCs in the original tarball. 
+    (closes: #393408)
+  * Added a watch file for uscan.
+  * Templates updated.
+    (closes: #375102,#381949,#383077)
+  * Removes proftpd user on purge in postrm.
+    (closes: #387982)
+  * Merged by 1.3.0-9.1 NMU (thanks Arjan Oosting):
+  	+ Call update-inetd during remove and disappear and not during purge.
+         (closes: #388647)
+        + Make dependency on libcap-dev conditional to fix FTBFS on GNU/kFreeBSD
+         (closes: #375017)
+        + Deregister /etc/init.d script on purge
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 16 Oct 2006 15:16:21 +0200
+
+proftpd (1.3.0-9) unstable; urgency=low
+
+  * Missing examples added to proftpd-doc: moved proftpd.examples to 
+    proftpd-doc.examples
+  * Added patch: sighup_fault
+    	Daemon fails when receive SIGHUP and mod_ctrls is enabled.
+    	Cfr http://bugs.proftpd.org/show_bug.cgi?id=2792
+  * Policy bumped to 3.7.2, no changes.
+  * proftpd.init: added /var/run/proftpd creation at run-time (ubuntu patch).
+  * Typo in README.Debian corrected
+    (closes: #369745)
+  * Russian debconf template revised
+    (closes: #367164)
+  * Added a note in README.Debian about AuthOrder and other issues.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu,  1 Jun 2006 14:29:18 +0200
+
+proftpd (1.3.0-8) unstable; urgency=medium
+
+  * New patch for configure.in/configure (remove_rpath) to remove rpath adding
+    at libtool installation time. 
+    (closes: #368301)
+  * Updated patch ipv6_cidr_warn.dpatch to the latest version in CVS.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2785                                                                   
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 22 May 2006 12:22:51 +0200
+
+proftpd (1.3.0-7) unstable; urgency=low
+
+  * Added a note about IPv6 CIDR in README.Debian
+    Added patch ipv6_cidr_warn.dpatch to warn about 32bit CIDR use in IPv6 
+    context.(closes: #365464)
+  * Added patch mod_wrap_noparanoid to avoid builtin paranoid checking in 
+    libwrap. (closes: #366397)
+  * Added a commented directive in basic.conf to specify PassivePorts.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue,  9 May 2006 09:51:52 +0200
+
+proftpd (1.3.0-6) unstable; urgency=low
+
+  * Removed bashism in proftpd.init.
+    (closes: #366089)
+  * Changed proftpd.init to run start-stop-daemon only if the pid file is 
+    present.
+  * Added a commented "UseSendFile off" directive in standard config as 
+    suggestion to see ftp upload progress.
+    (closes: #280105)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri,  5 May 2006 11:30:32 +0200
+
+proftpd (1.3.0-5) unstable; urgency=low
+
+  * New fr.po debconf templates.
+    (closes: #364400)
+  * Now proftpd.init does not fail when proftpd is already stopped.
+    (closes: #364074, #363657)
+  * Revised the mothly cron script.
+    (closes: #364580)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed,  3 May 2006 22:55:39 +0200
+
+proftpd (1.3.0-4) unstable; urgency=low
+
+  * Added /var/log/proftpd directory to proftpd.dirs
+    (closes: #363921)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 20 Apr 2006 18:19:10 +0200
+
+proftpd (1.3.0-3) unstable; urgency=low
+
+  * Sigh, now postinst moves a pre-existent old configuration 
+    for 1.2 series in the new location before applying ucf.
+  * Now postinst adds automagically the inclusion of modules.conf to old
+    config. Also revised sed calls to use in-place editing.
+  * Typos in proftpd.init for logging functions corrected.
+  * Template corrected to use /usr/lib/proftpd as module path.
+    (closes: #363650)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 20 Apr 2006 15:00:54 +0200
+
+proftpd (1.3.0-2) unstable; urgency=low
+
+  * Adding a 'proftpd' user to own the daemon in proftpd.postinst.
+  * Removing upstream basic.conf installated in /etc/proftpd, which
+    prevented a correct template use in postinst phase.
+  * Removed mod_readme in modules.conf which is already statically loaded.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 19 Apr 2006 11:24:48 +0200
+
+proftpd (1.3.0-1) unstable; urgency=low
+
+  The "Here we go" release.
+
+  * New upstream release (final). Just closing fixed-in-experimental issues.
+    (closes: #353175, #349827, #207136, #274414, #356221)
+  * First upload to unstable.
+  * Moved to LSB logging in proftpd.init and changed a bit script inners.
+  * Revised mysql_config use in rules file.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 18 Apr 2006 12:42:04 +0200
+
+proftpd (1.2.10+1.3.0rc5-4) experimental; urgency=low
+
+  * Revised maintainer scripts to correctly manage upgrades of modules.conf and
+    proftpd.conf from 1.2.9 series.
+  * English debconf template revised. 
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 29 Mar 2006 16:04:00 +0200
+
+proftpd (1.2.10+1.3.0rc5-3) experimental; urgency=low
+
+  * Added README.Debian with a few details about the new package and release.
+  * Removed obsolete build-deps: bzip2, shar-utils and patch
+  * Now debian/rules uses mysql_config for includes path
+  * Long and brief descriptions revised
+  * Added support by ucf for /etc/proftpd/modules.conf which is now used for
+    default configuration.
+  * All templates file now moved to /usr/share/proftpd/templates
+  * Now removing /etc/proftpd and /var/run/proftpd on purge in postrm.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 27 Mar 2006 19:51:22 +0200
+
+proftpd (1.2.10+1.3.0rc5-2) experimental; urgency=low
+
+  * Removed bogus libmysqlclient*-dev dependency in proftpd binary package. 
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 23 Mar 2006 13:48:53 +0100
+
+proftpd (1.2.10+1.3.0rc5-1) experimental; urgency=low
+
+  The 'Here we go' release for 1.3.
+
+  * New almost final upstream release. Definitive release would come in 
+    a couple of weeks or so. (closes: #353175, #349827)
+  * Merging with my own experimental branch for 1.3.0 with DSO support.
+    Packaging has been completely revised and simplified (no more multi-binary).
+  * Moved from dbs to dpatch patching system.
+  * Moved to DSO support for add-on modules. 
+  * Moved configuration in a /etc/proftpd directory due to the new 
+    style of multi-files config.
+    (closes: #207136)
+  * Migrated the patch-set and removed obsolete patches.
+  * Debconf template revised. Sorry all translations need revisions.
+    (closes: #274414,#356221)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 22 Mar 2006 10:11:45 +0100
+
+proftpd (1.2.10-27) unstable; urgency=low
+
+  * Transition libmysqlclient12 -> libmysqlclient15, retaining
+    back-compatibility for backporters, just in case.
+    (closes: #343799)
+  * Updated invalid de.po.
+    (closes: #326799)
+  * Now latest mod_ldap is backported to 1.2.10 API correctly. 
+    Thanks Stephan Jaeger.
+    (closes: #321937)
+  * Depends changed in Recommends in proftpd-common in respect with 
+    other proftpd-* packages.
+    This will not remove proftpd-common when ever proftpd is removed, which is
+    not a good thing IMHO. The whole issue will be obsoleted in the new 1.3.0 
+    packaging anyway, because it will remove the both proftpd-common and 
+    proftpd-* in upgrading. 
+    Note that proftpd-common installs a few common scripts.
+    (closes: #341008)
+  * Added 33.documentation.diff patch for a couple of minor doc issues:
+    (closes: #309251,#306339)
+  * Removed Paul Martin as proftpd uploader, he is not active since 
+    years about that.
+  * Moved to level 4 compatibility for debhelper (no changes).
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 11 Jan 2006 13:54:17 +0100
+
+proftpd (1.2.10-26) unstable; urgency=low
+
+  * Changed /dev/tty into /dev/null to manage crappy update-inetd in 
+    batch processing. That's definitively not required by policy, 
+    but useful...
+    (closes: #340262)
+  * Updated download location into copyright file.
+    (closes: #340240)
+  * Updated danish template
+    (closes: #340130)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 22 Nov 2005 11:37:51 +0100
+
+proftpd (1.2.10-25) unstable; urgency=high
+
+  * Added patch 32.mod_tls.c.diff to manage a change in openssl (0.9.8a),
+    this is superfluous in incoming 1.3.0, needed in 1.2.10.
+    (closes: #334979)
+  * Added debconf2.0 alternative to dependencies.
+    (closes: #332076)
+  * Updated templates
+    (closes: #335357,#328054,#334370)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 16 Nov 2005 11:36:42 +0100
+
+proftpd (1.2.10-24) unstable; urgency=low
+
+  * Sigh. Reintroduced /dev/tty redirection for update-inetd in
+    maintainer scripts. See #236595. It seems current netbase does not
+    solve the problem when there is a non controlling terminal indeed. Try
+    to do an upgrade/install via dsh for test.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 23 Sep 2005 11:08:59 +0200
+
+proftpd (1.2.10-23) unstable; urgency=low
+
+  * Managing nicely bad configs now, and other minor changes to init script now done.
+    (closes: #41089, #326943)
+  * Updated de.po template.
+    (closes: #326799)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 11 Sep 2005 11:13:39 +0200
+
+proftpd (1.2.10-22) unstable; urgency=low
+
+  * Updated patch 29.misc-sql.diff to manage a signal 11 error.
+    See http://bugs.proftpd.org/attachment.cgi?id=2344 patch for report
+    http://bugs.proftpd.org/show_bug.cgi?id=2485#c19. Thanks Greg.
+  * Typo in rules files introduced prevented config.guess update.
+    Thanks Ryo Kato.
+  * Missed diskuse contrib tool added. 
+    Thanks Ryo Kato.
+  * Added diskuse.8 man page.
+  * Little change to ftpquota.8 man page contents.
+  * proftpd.init corrected to use || instead of -o in xinetd tests. 
+    Thanks Christoph Bussenius.
+    
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri,  2 Sep 2005 20:36:41 +0200
+
+proftpd (1.2.10-21) unstable; urgency=low
+
+  * Added ftpquota.8 man page
+  * Typo corrected in template file
+    (closes: #317620)
+  * Added vietnamese template
+    (closes: #317608)
+  * Little modification to template statement
+    (closes: #274414)
+  * Removed automatic creation of proftpd.conf.5 file which is broken.
+    A brief version of the page is now provided manually to refer the HTML page.
+    Sorry guys, upstream is not so keen on man pages...
+    (closes: #313146)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 28 Aug 2005 13:10:47 +0200
+
+proftpd (1.2.10-20) unstable; urgency=high
+
+  * SECURITY: Managing SQLShowInfo format string vulnerability.
+    See  http://bugs.proftpd.org/show_bug.cgi?id=2645 for information.
+    Related patch is 31.mod_sql.c.diff.
+  * Policy bumped to 3.6.2, no changes.
+  * New modification to mod_delay to avoid other problem with that module
+    which could cause memory corruption/leakage. The never end saga continues.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 30 Jun 2005 10:18:13 +0200
+
+proftpd (1.2.10-19) unstable; urgency=high
+
+  * SECURITY: Managing ftpshut format string vulnerability.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2646 for information.
+    Related patch is 30.response.c.diff.
+  * A couple of finds had wrong position in args lists, due to recent changes.
+    So missed a few documents.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 29 Jun 2005 11:54:32 +0200
+
+proftpd (1.2.10-18) unstable; urgency=high
+
+  * Sigh! I left around development settings in rules file to test 
+    the damn signal 11 thingy. That disabled capabilities.
+    (closes: #315687)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 25 Jun 2005 09:31:37 +0200
+
+proftpd (1.2.10-17) unstable; urgency=low
+
+  Last (?) upload for 1.2.10 series awaiting for the first amazing 1.3.0
+
+  * Added a libpq-dev build-dep to be both compatible with incoming postgresql 
+    8 and maintain sarge compatibility. Now using pg_config in rules file to 
+    work with both pgsql 7 and 8. Removed patch 04.mod_sql_postgres.c.diff.
+    (closes: #313481)
+  * mod_delay locks and unlocks the table now, this should prevent 
+    random signal 11
+    See http://bugs.proftpd.org/show_bug.cgi?id=2630 for information.
+    Updated again 22.mod_delay.c.diff for that. 
+    Probable follow up for #308313 and #301275.
+  * Reordered find options to avoid warning in current version.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 22 Jun 2005 10:22:38 +0200
+
+proftpd (1.2.10-16) unstable; urgency=low
+
+  "The very first Etch Era version" release.
+
+  * New patch: 29.misc-sql.diff:
+    Adds "sql_exit" internal mod_sql command, and removes 'core.exit' handlers 
+    from backend modules
+    (closes: #294077)
+  * Added a note in README.News about new mod_ldap directives which obsolete 
+    old ones. That change should also be considered possibly for a sarge 
+    doc-only update. 
+    (closes: #287357)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon,  6 Jun 2005 15:50:09 +0200
+
+proftpd (1.2.10-15) unstable; urgency=high
+
+  * Sigh, castaglia changed the patch for mod_delay again: one of the 
+    boundary did not have sense indeed.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2622 and #308313 again.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu,  2 Jun 2005 11:18:08 +0200
+
+proftpd (1.2.10-14) unstable; urgency=high
+
+  * Finally solved the random segfault in mod_delay.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2622.
+    (closes: #308313)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed,  1 Jun 2005 10:49:19 +0200
+
+proftpd (1.2.10-13) unstable; urgency=high
+
+  * Added a -DUSE_LDAP_TLS to CFLAGS in rules for mod_ldap, else it does 
+    not work with TLS. This is now (2.8.15) required along with the yet 
+    present SSL flag.
+    (closes: #308861)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 18 May 2005 13:30:30 +0200
+
+proftpd (1.2.10-12) unstable; urgency=high
+
+  * Added a patch 28.mod_ls.c to manage incorrect symlink following in
+    recursive listing. That breaks old versions behavior and create problem
+    to mirroring software.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2551 for information
+    (closes: #308578)
+  * Revised again 22.mod_delay.c.diff patch to manage long delays:
+    http://bugs.proftpd.org/show_bug.cgi?id=2601
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 13 May 2005 09:51:43 +0200
+
+proftpd (1.2.10-11) unstable; urgency=high
+
+  The "Welcome back to my digital life, just after freezing" release.
+
+  * Added copy of the missed ftpquota command in debian/rules.
+    And yes, its man page is missing yet, it needs to be written from 
+    scratch :-/ http://forums.proftpd.org/phpBB2/viewtopic.php?t=421
+  * Updated patch 22.mod_delay.c.diff to manage an important mod_delay problem
+    which causes a segfault and DOS.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2554 for related upstream 
+    thread.
+  * Another important issue, off BTS.
+    sendfile() fails with large files on some archs (x86_64 for instance) again.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2509 for upstream thread.
+    Previous patch needs revision. Incidentally this solves also the automake
+    cache inclusion.
+    (closes: #307136)
+  * Updated mod_ldap to 1.3.0rc1 version (2.8.15).
+    (closes: #306763)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed,  4 May 2005 14:34:52 +0200
+
+proftpd (1.2.10-10) unstable; urgency=low
+
+  * mod_quotatab_sql.c needed revision to remove another lvalue casting.
+    New patch 27.mod_quotatab_sql.c.diff for that.
+    (closes: #287966)
+  * Revised proftpd-doc to add missing new documentation, howtos and examples.
+    (thanks TJ who pointed me to that).
+  * New FLOSS License Exception for MySQL Server and client libraries now 
+    includes OpenSSL. See manual (appendix I) or 
+    http://dev.mysql.com/doc/mysql/en/mysql-floss-license-exception.html
+    So, now linking with libmysqlclient12 is allowed, debian/control changed.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 11 Feb 2005 14:13:39 +0100
+
+proftpd (1.2.10-9) unstable; urgency=high
+
+  * Syncing quotatab files from CVS to be coherent with new mod_ldap.c
+    module. That's a new patch for that: 25.mod_quotatab.c.diff See
+    http://sf.net/mailarchive/forum.php?thread_id=6255251&forum_id=2637.
+    This justify urgency.
+  * Changed a bit 01.contrib.mod_ldap.c.diff to not declare version variable 
+    after instructions. See also CVS committment as shown in
+    http://cvs.sf.net/viewcvs.py/*checkout*/proftp/proftpd/contrib/mod_ldap.c?rev=1.37
+    (closes: #288327)
+  * New patch 26.mod_radius.c.diff to solve compiling problems on recent 
+    GCC and AMD64
+    (closes: #287966)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun,  2 Jan 2005 21:21:22 +0100
+
+proftpd (1.2.10-8) unstable; urgency=medium
+
+  * Updated patch 22.mod_delay.c.diff to not check for DelayTable if DelayEngine 
+    is off. See http://bugs.proftpd.org/show_bug.cgi?id=2540 for information.
+    (closes: #283811)
+  * Typo in rules, now removing README.cygwin, not README.cgywin :-/
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 29 Dec 2004 22:51:30 +0100
+
+proftpd (1.2.10-7) unstable; urgency=medium
+
+  * New mod_ldap from cvs (2.8.14 instead of 2.8.12). It adds the new 
+    LDAPProtocolVersion directive and other fixes. 
+    01.contrib.mod_ldap.c.diff changed to reflect this.
+    Therefore, mod_ldap now works with protocols 2 or 3 and defaults to 3.
+    This partially fixes #279530.
+  * Patch 03.mod_ldap.c.diff removed (integrated upstream)
+  * Added libpam-rutime versioned dependency in proftpd-common due to 
+    /etc/pam.d/common-* use which is not a woody feature. This does facilitate 
+    use in mixed environment, if not proper upgrades. 
+    Thanks Marc Moeller who pointed a problem due to that.
+  * Added a patch to correcly merge all directives when mod_ifsession is used.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2536 for details.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 18 Dec 2004 09:32:15 +0100
+
+proftpd (1.2.10-6) unstable; urgency=medium
+
+  * Updated mod_delay again from CVS.
+  * Added new patch for TimeoutLogin connection problem: 23.timeout.diff.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2516 for details.
+    (closes: #282214)
+  * Now uses common modules for PAM.
+    (closes: #283131)
+  * Updated german template
+    (closes: #282497)
+  * Removed README files for other platforms.
+  * Removed superfluous perl-base dependency. 
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 29 Nov 2004 14:46:28 +0100
+
+proftpd (1.2.10-5) unstable; urgency=low
+
+  * Sigh, now includes a more recent mod_delay/0.4 instead of mod_delay/0.3
+    (closes: #282045)
+  * Changed xinetd section in rules file to manage better cases with/without a 
+    possible empty /etc/xinetd.d directory.
+    Corrected typo in init script.
+    Corrected xinetd documentation xref in postinst.
+    (closes: #282064)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 20 Nov 2004 09:09:21 +0100
+
+proftpd (1.2.10-4) unstable; urgency=low
+
+  * First upload into unstable. Here we go!
+    (closes: #278309)
+  * Fixes problems probably due to a backported patch from 1.2.10 into 1.2.9-19
+    (closes: #281528)
+  * Fixed a bit default proftpd.conf.
+    (closes: #279580)
+  * Added mod_delay contributed module to manage the so-called "Timing attack".
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 17 Nov 2004 23:12:30 +0100
+
+proftpd (1.2.10-3) experimental; urgency=low
+
+  * Revised patch 21.sendfile_with_large_files due to type mismatch in a function call :-(
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri,  5 Nov 2004 13:38:11 +0100
+
+proftpd (1.2.10-2) experimental; urgency=low
+
+  * Merging changes from 1.2.9-19:
+       - new debconf templates: cs.po, da.po, de.po
+       - built with --enable-sendfile which should reduce average CPU load.
+       - added patch for >2GB files with sendfile(): 21.sendfile_with_large_files.
+         See See http://bugs.proftpd.org/show_bug.cgi?id=2509 for original patch.
+         Hint: run autoconf2.50 after applying cvs patch to the original tree.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri,  5 Nov 2004 11:04:43 +0100
+
+proftpd (1.2.10-1) experimental; urgency=low
+
+  * New upstream release.
+    Removed all patches integrated upstream:
+          13.mod_sql_mysql.c.diff
+          15.mod_quotatab_sql.c.diff
+          16.dirtree.c.diff
+          17.netio.c.diff
+          18.mod_auth_file.c.diff
+          19.main.c.ipv6.diff
+  * Changed 01.mod_ldap.diff patch: removed Ivo's old patch which was also not
+    documented anywhere. See NEWS.Debian for information. Thanks TJ.
+  * Changed NEWS.Debian file to document the above thing.
+  * Added 20.core.create-home.diff patch from CVS to support script exec on
+    home creation.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 11 Oct 2004 23:19:46 +0200
+
+proftpd (1.2.9-16) unstable; urgency=low
+
+  * Added /etc/xinetd.conf to the file checked in init script to verify
+    if proftpd call is configured in xinetd.
+    (closes: #271163)
+  * Added a versioned dependency from libmysqlclient10, compatible with that
+    distributed in sarge.
+    (closes: #269454)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 11 Sep 2004 20:45:04 +0200
+
+proftpd (1.2.9-15) unstable; urgency=high
+
+  * Just a better warning message into proftpd.init.
+  * Revised this changelog for typos.
+  * Updated pt_BR translation.
+    (closes: #264252)
+  * Severity set to high to enter sarge within time slot for freeze.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 17 Aug 2004 13:20:57 +0200
+
+proftpd (1.2.9-14) unstable; urgency=high
+
+  * Added a better management of inetd/xinetd in proftpd.init script. Now
+    inet/standalone/none servertype are considered. It tries to startup
+    in daemon mode only if inetd/xinetd support is truly missing.
+    This is not optimal, but works in the most cases. The greatest problem 
+    is the same pointed below: configuration status could not reflect the 
+    effective daemon status.
+    (closes: #263247)
+  * Renamed 16.dirtree,c.diff into 16.dirtree.c.diff: typo in patch name.
+  * Added ipv6 related patch, again related to weird IPv6 message into
+    #263247: 19.main.c.ipv6.diff. It is present in 1.2.10rc1.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue,  3 Aug 2004 22:38:08 +0200
+
+proftpd (1.2.9-13) unstable; urgency=low
+
+  * New patch: 18.mod_auth_file.c.diff
+    See: http://bugs.proftpd.org/show_bug.cgi?id=2445
+    If one uses the AuthUserFile or AuthGroupFile directive within a <Global>
+    context, that directive overrides any AuthUserFile or AuthGroupFile
+    directives within the "main server" or <VirtualHost> contexts. This patch
+    solves that bug.
+    (closes: #262697)
+  * Revised proftpd.conf comments.
+    (closes: #256520)
+  * Added a -DHAVE_OPENSSL to CFLAGS in rules file. Apparently mysql configure
+    check for SSL support but does not #define properly for mod_sql.c, which
+    is anyway in contrib section. Maybe mod_sql.c needs patching.
+    This hack solves the issue for what concerns Debian anyway.
+    (closes: #233031)
+  * Now double check for inetd/standalone mode. Daemon starts if ServerType is
+    standalone or is absent _and_ ftp service is absent (or commented out) in
+    inetd.conf. That's not so great, because inetd.conf could not reflect
+    the current inetd status, but it's better than nothing.
+    (closes: #256525)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon,  2 Aug 2004 16:01:14 +0200
+
+proftpd (1.2.9-12) unstable; urgency=high
+
+  * Removed all autoconf-related rules within Makefile.in, so patch 07.autoconf.diff
+    has changed. Previous patch tried to force the use of a recent autoconf
+    instead. This freezes configure in the form issued by upstream.
+    (closes: #248612)
+  * Autotools file config.(guess|sub) moved into the build-tree.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 12 May 2004 15:00:07 +0200
+
+proftpd (1.2.9-11) unstable; urgency=low
+
+  * Removed a duplicated build-dep (libwrap0-dev)
+  * Using autotools-dev build-dep instead of autoconf
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 10 May 2004 21:12:30 +0200
+
+proftpd (1.2.9-10) unstable; urgency=low
+
+  * Deletion of /etc/proftpd.conf on purge has been moved into
+    proftpd-common.postrm. The same for all other no-return actions. 
+    Ratio: proftpd-common is the only package which is purged after
+    removing of all bin-dep packages, not just on transitions from a bin
+    package to another. Therefore that's the right place to purge things.
+    (closes: #247860)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri,  7 May 2004 23:28:47 +0200
+
+proftpd (1.2.9-9) unstable; urgency=low
+
+  * Added mod_ifsession compilation (rules), as asked by users.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 17 Apr 2004 20:17:30 +0200
+
+proftpd (1.2.9-8) unstable; urgency=high
+
+  * netbase versioning uniformed to 4.13 for each package.
+  * The no-end saga of ucf, again. Version -7 missed modifications done in -6 for
+    #239528, due to cvs repository outdated status.
+    (closes: #244020)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 13 Apr 2004 13:51:47 +0200
+
+proftpd (1.2.9-7) unstable; urgency=high
+
+  * Removed a double check for inetd update (proftpd.postinst)
+    (closes: #242013)
+  * Added an '|| true' into install_ftp (proftpd.postinst)
+  * Integrating a patch to avoid an infinite loop.
+    See http://bugs.proftpd.org/show_bug.cgi?id=2300 for patch.
+    Fixed by 17.netio.c.diff
+    (closes: #243071,#243277)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 12 Apr 2004 09:41:52 +0200
+
+proftpd (1.2.9-6) unstable; urgency=high
+
+  * Umpf. Previuous upload did not solve the issue. It seems definitively a
+    problem with ucf (Thanks Paul Slootman): --debconf-ok should be used
+    only before a db_stop. Also reverted again with redirection for
+    update-inetd. 
+    For some reason the whole problem was not so easily evident.
+    (closes: #239528)
+  * Previous upload missed patch 16.dirtree.c.diff due to outdated cvs
+    repository on alioth.
+  * Cosmetic changes into basic anon section (DirFake*).
+    Other issues are secondary/outdated.
+    (closes: #240209)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 29 Mar 2004 23:31:52 +0200
+
+proftpd (1.2.9-5) unstable; urgency=high
+                                                                                                                                         
+  * Reverted redirection of stdin and stdout for update-inetd. Also reverted
+    netbase versioning dependency. Apparently workaround in current
+    update-inetd does not work as it should.
+    (closes: #239528)
+                                                                                                                                         
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Wed, 24 Mar 2004 20:14:55 +0100
+                                                                                                                                         
+proftpd (1.2.9-4) unstable; urgency=high
+
+  * Typo introduced in postrm (closes: #236963)
+  * Removed redirection workaround for update-inetd (already builtin in 
+    netbase >=4.13).
+    Changed version dependency for netbase as consequence.
+    (closes: #236595)
+  * Security problem (although conf dependent) fixed in patch 16.dirtree.c.diff. 
+    (Thanks iSteve) See
+    http://bugs.proftpd.org/show_bug.cgi?id=2267 for hint and patch.
+  * Typo in ftpstats.8 corrected (Thanks iSteve)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue,  9 Mar 2004 11:50:36 +0100
+
+proftpd (1.2.9-3) unstable; urgency=low
+
+  * New patch 15.mod_quotatab_sql.c.diff. (Thanks Jerome Walters)
+    Bug found by Christian Schulte <cs@schulte.it>: delta values are signed,
+    and can be negative.
+  * Now use --debconf-ok for ucf, but needs versioning depends on ucf >= 0.30
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 26 Feb 2004 00:11:09 +0100
+
+proftpd (1.2.9-2) unstable; urgency=low
+
+  * Using basic.conf from 1.2.8 series, instead of the old one with prefixed
+    anonymous section.
+  * Added libncurses5-dev build-dep for ftptop.
+  * Policy bumped to 3.6.1 (no changes).
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 17 Nov 2003 13:59:24 +0100
+
+proftpd (1.2.9-1) unstable; urgency=low
+
+  * The first post-Halloween release now moving to sid. 
+    Now using upstream tarball.
+  * CVS repository enabled: tagging appropriately.
+  * Removed patch 14.manpages.diff: manpages are integrated in upstream
+    tarballs, even if not present in CVS.
+  * New patch: 14.mod_quotatab.diff: mod_quotatab 1.2.11 contributed module
+    now replaces the old 1.2.7.
+  * Removed 13.manpages.diff patch which is not due in off-cvs releases.
+  * Tries to manage upgrades from pre-1.2.9 series in a soft way:
+        - The scoreboard file format changed, so all inetd sessions need
+        to be killed and file moved before restarting the service. The
+        file needs to be moved for a standalone configuration, anyway.
+        - SocketOptions directive replaces and deprecates the following
+          directives: tcpReceiveWindow, and tcpSendWindow.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon,  3 Nov 2003 14:14:00 +0100
+
+proftpd (1.2.8+cvs20031020-1) experimental; urgency=low
+
+  * A new CVS snapshot (post 1.2.9rc3).
+  * Merged stuff from unstable branch
+  	- New russian template.
+  	- Added a versioned dependency from debianutils to proftpd-common
+   	- Removed RFCs
+        - Changed order in module loading for dependencies
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 20 Oct 2003 23:36:58 +0200
+
+proftpd (1.2.8+cvs20030927-1) experimental; urgency=high
+
+  * A new CVS snapshot (post 2003-9-24 exploit).
+  * Merged stuff from unstable branch (>= -9):
+         - Now using case insensitive egrep in init files
+         - Patches renumbered sequentially
+         - Removing anonymous access enabling/disabling. A well
+         commented basic configuration, to be modified by hand is much
+         more effective and secure. Also that code is completely failing
+         if admin changed configuration on his own, as generally done by
+         everyone. So, debconf configuration is much less intrusive, and
+         it's performed anyway. User 'ftp' is also added by default if
+         not present, being a considered a 'system' one.
+
+           Added a NEWS.Debian file to explain the new policy.
+           Changed templates as consequence.
+         - International templates revised.
+         - Added strict version source dependency for proftpd-common.
+         - Use proftpd.org instead of .net in control file descriptions.
+         - Added NEWS.Debian as kept in unstable branch.
+         - Removed 05.ftpstats.diff (unuseful).
+         - Postinst revised to manage welcome.msg nicely.
+  * Bugs fixed at this time (see below):
+    (closes: #192590,#204157,#192590,#203230,#186074,#212416)
+    (closes: #145669 see 
+     http://www.castaglia.org/proftpd/patches/README.require-valid-user)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 28 Sep 2003 17:52:31 +0200
+
+proftpd (1.2.8+cvs20030818-1) experimental; urgency=low
+
+  * A new CVS snapshot. IPV6 is now integrated.
+  * Removed previous patches 01.ipv6_rollback.diff and 00.ipv6.diff all IPv6
+    related.
+  * Changed patch 20.contrib.mod_ldap.c.diff to reflect modifications in
+    inet.h
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 19 Aug 2003 09:19:19 +0200
+
+proftpd (1.2.8+cvs20030805-1) experimental; urgency=low
+
+  * A new CVS snapshot. See NEWS file for a list of bugs solved.
+    All Debian patches applies but some hacks on the first one.
+  * Policy updated to 3.6.0
+  * Bugs closed at this time: #204157,#192590,#203230
+  * Added IPV6 support.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue,  5 Aug 2003 20:57:31 +0200
+
+proftpd (1.2.8+cvs20030620-1) experimental; urgency=low
+
+  * This is based on cvs tree at the date. It's not prime time ready.
+  * Removed duplicated tarball: fixes #192590
+  * Removed patches already in CVS:
+       AB.fixes_handling_of_contexts_to_use_proper_pool.diff
+       B2.mod_sql_postgres.c.diff
+       10.mod_cap.c.diff
+  * Added patches:
+       91.autoconf.diff - move configure.in to configure.ac to force use
+       of autoconf2.50 B2.mod_sql_mysql.c.diff - use <mysql/mysql.h>
+       instead of <mysql.h> B3.manpages.diff - add man pages that are
+       missing in the cvs tree
+  * Added autoconf build-dep.
+  * Policy updated to 3.5.10.
+  * Minor changes in rules file in order to build correctly.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 21 Jun 2003 17:31:36 +0200
+
+proftpd (1.2.8-8) unstable; urgency=high
+
+  * Added a set +e before testing proftpd configuration.
+    Proftpd could crash in some cases when testing.
+    (closes: #197585)
+  * Added AB.fixes_handling_of_contexts_to_use_proper_pool.diff: fixes
+    handling of contexts to use properpool, by patching src/dirtree.c and
+    src/sets.c. This is from current CVS tree.
+    (closes: #197586)
+  * Security: added B2.mod_sql_postgres.c.diff:
+    See http://bugs.proftpd.org/show_bug.cgi?id=2087 for information. This
+    has been created using diff among mod_sql_postgres.c-1.16 and 
+    mod_sql_postgres.c-1.10.
+    This is from current CVS tree.
+    (closes: #197984)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 19 Jun 2003 13:50:29 +0200
+
+proftpd (1.2.8-7) unstable; urgency=high
+
+  * Added an input (</dev/tty) redirection for ucf in maint scripts.
+    (closes: #194359). This is a workaround for #193694 which is a
+    debconf/ucf interaction problem.
+  * Japanese podebconf template
+    (closes: #194646)
+  * Updated french podebconf template
+    (closes: #192406)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 27 May 2003 12:49:50 +0200
+
+proftpd (1.2.8-6) unstable; urgency=low
+
+  * Added missing HTML documentation to proftpd-doc. This also clarify
+    misbehaving for mod_tls.
+    (closes: #150694)
+  * Added mod_rewrite, mod_radius, mod_wrap to all packages. So added
+    libwrap0-dev among build-deps.
+    (closes: #158305)
+  * Added more README files and removed a couple of obsoleted ones.
+  * debconf template and it.po revised as suggested.
+    (closes: #190821)
+  * New fr.po integrated.
+    (closes: #191227)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue,  6 May 2003 20:56:06 +0200
+
+proftpd (1.2.8-5) unstable; urgency=high
+
+  * Explicitly depends on libmysqlclient10-dev, which is the last LGPL
+    licensed. Also, current sql module is not tested with mysql4, so the
+    conservative approach is the safest one.
+  * Introduced Replaces in control/proftpd-common against old packages.
+    (closes: #188114)
+  * Policy updated.
+  * Maintainer script totally revised. Wow! Some more hints in basic.conf
+    added too. Also a new warning note is displayed when upgrading.
+    (closes: #168305, #145662, #187695, #186646, #187695)
+    Debconf IS NOT a configuration tool. Now I use it only for minimal
+    config interactions. We absolutely needed a more powerful config editor
+    for proftpd.conf, but I seriously doubt it can be really written.
+  * Introduced -q for savelog instead of stdout/stderr redirect, in
+    cron.monthly.
+    (closes: #188722)
+  * Now truly install ftpasswd.8 among proftpd-common man pages :-/
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 24 Apr 2003 12:31:26 +0200
+
+proftpd (1.2.8-4) unstable; urgency=medium
+
+  * Init file revised to use current default pidfile or PidFile directive.
+    Scoreboard file name no more has the daemon pid bundled.
+    (closes: #186312)
+  * Now postinst changes obsolete LsDefaultOptions in ListOptions directive.
+    That's needed in moving from 1.2.6 basic.conf. Added a list_options()
+    function for this.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 27 Mar 2003 11:09:00 +0100
+
+proftpd (1.2.8-3) unstable; urgency=high
+
+  * Removed dh_undocumented which is no more used.
+  * Added a new patch:
+  	10.mod_cap.c.diff - solves a double free in mod_cap which caused #185030.
+  * Re-added mod_cap thanks to previous patch. So readded libcap-dev.
+  * Patch 20.contrib.mod_ldap.c.diff revised.
+    (closes: #185125, #175581,#185567)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sat, 22 Mar 2003 11:56:53 +0100
+
+proftpd (1.2.8-2) unstable; urgency=high
+
+  * Removed mod_cap. It needs more investigation.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 18 Mar 2003 13:27:24 +0100
+
+proftpd (1.2.8-1) unstable; urgency=high
+
+  * New upstream release, merging with my experimental 1.2.7 pkg...
+    (closes: #185084)
+    This also solve a potential seriuous license bug as stated in 
+    http://lists.debian.org/debian-legal/2003/debian-legal-200303/msg00287.html
+    and 
+    http://lists.debian.org/debian-legal/2003/debian-legal-200301/msg00287.html.
+  * IPv6 removed. It will be available in 1.2.9 anyway. It was also
+    disabled in all releases before 1.2.6-5, so I guess it's not a
+    high-requested feature :)
+  * configure updated to 2.57.
+  * added config.(sub|guess) cleaning.
+  * Paul asked to become co-maintainer.
+  * Removed patches:
+  	30.libcap.change.build.dir.diff
+        32.libcap.compilation.fix.diff.uue
+        50.proftpd-1.2.6rc1-tls.2002.07.11.patch
+        AE.mod_tls.c.no.certificates.found.diff
+        91.mod_tls.diff
+        AF.ipv6.diff
+        B0.mod_ls.c.fsmatch.diff
+  * Added patches:
+  	90.man.diff
+  * Changed fr.po: now truly closes: #182889.
+  * Policy update.
+  * Added dep/build-dep from libcap2(-dev). It does not work with stable libcap.
+    (closes: #185030, hopefully #185125)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Tue, 18 Mar 2003 12:34:58 +0100
+                                                                                           
+proftpd (1.2.6-5) unstable; urgency=low
+
+  * Only restart the daemon if runlevels allow, in accordance with
+    policy section 10.3.3.2. (Closes: #166907)
+  * Revised contents of ftpstats.8 (frankie)
+  * Added ftpasswd.8 (frankie)
+  * Removed obsolete proftpd libcap building. Now uses standard one. (frankie)
+    (Closes: #168953)
+  * fr.po updated (frankie) (Closes: #182889)
+  * pt_BR.po updated (frankie) (Closes: #177226)
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon,  3 Mar 2003 10:39:59 +0100
+
+proftpd (1.2.6-4) unstable; urgency=low
+
+  * debian/control: put proftpd-doc in section "doc".
+  * Now uses po-debconf templates (frankie).
+  * Added Italian template (frankie).
+  * debian/control: added frankie@debian.org as co-maintainer.
+  * debian/control: added build-depend on sharutils, as we now need
+    uudecode because of...
+  * debian/patches: two of the patches contain RCS Id tags in their
+    context, which got mangled by CVS, so they're now uuencoded, which
+    required changes to...
+  * debian/scripts/file2cat: now uudecodes files with .uue extension
+  * debian/scripts/dbs-build.mk: ignore CVS directories when applying
+    patches.
+  * debian/rules: use $$m instead of $m for loop variable.
+    (Closes: #166205)
+  * debian/patches/AC.mod_unixpw.c.ldap.fix.diff: if getpwnam/getpwuid
+    return NULL, revert to original method of getting pw entries.
+    (Closes: #165188)
+  * debian/rules: remove incorrect logic for detecting kernel version
+    which was causing linuxprivs never to be compiled in. Thanks to 
+    frankie for tracing this one. (Closes: #166215)
+
+ -- Paul Martin <pm@debian.org>  Mon, 28 Oct 2002 14:24:28 +0000
+
+proftpd (1.2.6-3) unstable; urgency=low
+
+  * debian/proftpd.config: unfortunately Ivo's patch had a bug in it.
+    Fixed this and another problematic conditional pointed out by Andrew
+    Suffield. (Closes: #164556,#164556)
+  * debian/proftpd.config: more compare-versions fixes. (Closes: #165677)
+
+ -- Paul Martin <pm@debian.org>  Mon, 21 Oct 2002 12:27:08 +0100
+
+proftpd (1.2.6-2) unstable; urgency=low
+
+  * New maintainer. (Closes: #163632)
+  * debian/proftpd.config: fix version test (Closes: #164556)
+  * debian/patches/B0.mod_ls.c.fsmatch.diff: Fixes the "virtual
+    filesystem" abstraction. Only contrib/mod_test.c would be
+    affected, if we built it.
+  * debian/rules: added undocumented.7 link to ftpasswd.8.
+    (Bug: #150101) Bug left open until proper manpage is written.
+  * debian/patches/B1.ftpasswd.cracklib.location.diff: Change the
+    default location of the cracklib dictionaries to match their
+    Debian location. (Closes: #159365)
+
+ -- Paul Martin <pm@debian.org>  Fri, 18 Oct 2002 18:12:59 +0100
+
+proftpd (1.2.6-1) unstable; urgency=low
+
+  * New upstream release.
+  * debian/patches/20.contrib.mod_ldap.c.diff: Updated.
+  * debian/patches/AF.ipv6.diff: Updated.
+  * debian/patches/AG.mod_ratio.c.3.3.diff: Removed.
+  * debian/patches/AH.mod_ldap.c.HEAD.diff: Removed.
+
+ -- Ivo Timmermans <ivo@debian.org>  Sat,  7 Sep 2002 14:49:52 +0200
+
+proftpd (1.2.5+1.2.6rc2-1) unstable; urgency=low
+
+  * New upstream version.
+  * debian/control: Change section from non-US to net.
+  * debian/copyright: Change licenses for mod_ldap.c and mod_ratio.c.
+  * Take advantage of the required new source upload to create an
+    .orig.tar.gz and a .diff.gz.
+  * debian/proftpd.postinst: Call db_stop before replace_file.
+  * debian/patches/33.mod_quota.c.exemption.fix.diff: Removed (upstream
+    has removed mod_quota.c).
+  * debian/rules: Don't include mod_quota.c in compilation.
+  * debian/patches/50proftpd-1.2.5-tls.2002.05.30.patch: Replaced by
+    50.proftpd-1.2.6rc1-tls.2002.07.11.patch.
+  * debian/patches/AB.mod_ls.c.large.files.support.diff: Removed (upstream
+    has included LFS).
+  * debian/patches/AF.ipv6.diff: Updated.
+  * debian/patches/AG.mod_ratio.c.3.3.diff: Update mod_ratio.c to version
+    3.3.
+  * debian/patches/AH.mod_ldap.c.HEAD.diff: Update mod_ldap.c to CVS HEAD.
+
+ -- Ivo Timmermans <ivo@debian.org>  Sun,  1 Sep 2002 17:06:41 +0200
+
+proftpd (1.2.5-3) unstable; urgency=low
+
+  * debian/proftpd.init:
+      - Remove bashism;
+      - signal(): remove superfluous "proftpd" in the find statement;
+        (Closes: #156878)
+      - Added new option "force-stop", which will try to kill proftpd even
+        though the config file says it is started from inetd (like
+        force-start). (Closes: #153922)
+  * debian/proftpd.config: Stop any running proftpd when the old setting
+    was to be run standalone, and the new setting to run from inetd.
+    (Closes: #144882, #151362)
+  * debian/proftpd.postrm: Remove debconf calls.
+    (Closes: #148727, #156464)
+  * debian/copyright:
+      - Include the license exception the ProFTPd team has given (long
+        ago) to allow binaries linked against OpenSSL to be distributed.
+      - Include licenses for contributed modules.
+
+ -- Ivo Timmermans <ivo@debian.org>  Sun, 18 Aug 2002 20:25:11 +0200
+
+proftpd (1.2.5-2) unstable; urgency=low
+
+  * debian/proftpd.init: Let the init script get the location of the
+    scoreboard from the config. (Closes: #150162)
+  * debian/patches/AE.mod_tls.c.no.certificates.found.diff: Don't try to
+    check certificate files on startup. (Closes: #153992, #154238)
+  * debian/patches/20.contrib.mod_ldap.diff: Fix segfault in uid-lookup in
+    proftpd-ldap. (Closes: #150525)
+  * debian/control: Changed sections from non-US/main to non-US.
+  * debian/patches/AF.ipv6.diff: IPv6 patch from Jan Rekorajski, Amand
+    TIHON and others.
+
+ -- Ivo Timmermans <ivo@debian.org>  Tue, 13 Aug 2002 23:23:54 +0200
+
+proftpd (1.2.5-1) unstable; urgency=low
+
+  * New upstream version. (Closes: #146839)
+  * Updated TLS patch.
+  * Upstream now includes ftpasswd, deleted it from 99.misc.diff.
+  * Deleted the patch to delete doc/rfc/draft-murray-auth-ftp-ssl-08.txt,
+    which has been deleted upstream.
+  * Updated AB.mod_ls.c.large.files.support.diff.
+  * Removed one "ShowSymlinks on" from basic.conf. (Closes: #148358)
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu, 13 Jun 2002 17:16:10 +0200
+
+proftpd (1.2.4+1.2.5rc1-6) unstable; urgency=high
+
+  * One more try...
+  * /etc/proftpd.conf is no longer marked as a conffile.  Instead, we
+    verify its existence every time postinst is ran, possibly copying it
+    over from our default version in
+    /usr/share/doc/<package>/examples/proftpd.conf.  If we need to change
+    it, ucf is called to let the user merge in any changes he
+    made. (Closes: #143351)
+  * Rephrased the shared/proftpd/replace_file_install debconf question.
+    (Closes: #144715)
+  * Removed mention of obsolete proftpd-sql in package description.
+    (Closes: #144365)
+
+ -- Ivo Timmermans <ivo@debian.org>  Sun, 28 Apr 2002 10:22:42 +0200
+
+proftpd (1.2.4+1.2.5rc1-5) unstable; urgency=high
+
+  * Reworked postinst to handle configuration files better; allow the user
+    to review the changes before committing them.  Thanks to Roland Mas
+    for the help. (Closes: #143351)
+  * Stop proftpd from prerm. (Closes: #143376)
+
+ -- Ivo Timmermans <ivo@debian.org>  Mon, 22 Apr 2002 13:50:50 +0200
+
+proftpd (1.2.4+1.2.5rc1-4) unstable; urgency=high
+
+  * Configuring proftpd-ldap, proftpd-*sql with debconf was broken, now
+    uses shared debconf templates.  This fixes a release critical bug
+    nobody reported.
+  * Properly mention that support for mysql or postgresql is included in
+    proftpd-{my,pg}sql package descriptions.
+
+ -- Ivo Timmermans <ivo@debian.org>  Wed, 17 Apr 2002 12:07:20 +0200
+
+proftpd (1.2.4+1.2.5rc1-3) unstable; urgency=medium
+
+  * Use CFLAGS when running configure.
+  * Large file support (partially by Petr Cech, thank you).
+    (Closes: #139325)
+  * Fix typo in postinst. (Closes: #140498)
+  * Correct == to = in init script. (Closes: #140896)
+  * Apply fix for proftpd-ldap by Steve Langasek, which makes mod_unixpw
+    use getpwnam if pwdfname isn't /etc/passwd. (Closes: #141275)
+  * Fix crash of proftpd-*sql when user shell field is NULL.
+    (Closes: #140141)
+  * Updated debconf template for Brazilian Portugese. (Closes: #141690)
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu, 11 Apr 2002 19:25:53 +0200
+
+proftpd (1.2.4+1.2.5rc1-2) unstable; urgency=low
+
+  * Changelog entry for 1.2.4-2 got lost, readded.
+  * Changed build dependency for postgresql-dev to 7.2 or higher.
+  * Added build dependency on bzip2.
+  * Patch, probably from Ignacy Gawedzki, to prevent server crash when
+    using REST+GET on unaccessible source. (Closes: #136696)
+
+ -- Ivo Timmermans <ivo@debian.org>  Mon,  4 Mar 2002 19:37:21 +0100
+
+proftpd (1.2.4+1.2.5rc1-1) unstable; urgency=low
+
+  * New upstream version. (Closes: #125829)
+  * Switch to dbs.
+  * Updated TLS patch. (Closes: #118804)
+  * Fix ftpstats (see bugreport for details). (Closes: #133647)
+  * Updated init.d script, use /etc/defaults.  Thanks to Marc Haber for
+    the patch. (Closes: #120324, #128805)
+  * Fixed a typo in postinst which might have caused problems when
+    upgrading.
+  * Renamed the English debconf template, added French translation.
+    (Closes: #136104)
+  * Redirect stderr to /dev/null in cron.monthly. (Closes: #136309)
+
+ -- Ivo Timmermans <ivo@debian.org>  Sun,  3 Mar 2002 18:37:41 +0100
+
+proftpd (1.2.4-2) unstable; urgency=high
+
+  * Fix segfault on ls /////////// (Closes: 125829)
+
+ -- Ivo Timmermans <ivo@debian.org>  Sun, 23 Dec 2001 23:00:43 +0100
+
+proftpd (1.2.4-1) unstable; urgency=low
+
+  * New upstream release
+  * Added Russian debconf templates.
+    (Closes: #114953, #114954, #114955, #114957)
+  * Fixed small error in build script that prevented the German debconf
+    templates from being installed.
+  * Updated standards version.
+  * Make proftpd suggest proftpd-doc instead of recommend.
+    (Closes: #113673)
+  * Allow two extra digits for total number of bytes sent in the xferstat
+    script. (Closes: #107387)
+  * Link in mod_wrap. (Closes: #111454)
+
+ -- Ivo Timmermans <ivo@debian.org>  Mon, 22 Oct 2001 01:45:19 +0200
+
+proftpd (1.2.2-1) unstable; urgency=high
+
+  * New upstream release (Closes: #109070):
+     - Doesn't use ifdef's inside a printf call.
+       (Closes: #104402, #104948)
+  * Don't log `No certificates found' message for each connection, only
+    print it on startup. (Closes: #103318)
+  * Change documentation for HideGroup. (Closes: #106548)
+  * Add new directives for proftpd-ldap: LDAPCheckAllow, LDAPCheckDeny,
+    LDAPHomedirOnDemandScript
+
+ -- Ivo Timmermans <ivo@debian.org>  Sat, 18 Aug 2001 17:29:31 +0200
+
+proftpd (1.2.1+1.2.2rc3-3) unstable; urgency=low
+
+  * Depend on adduser. (Closes: #102944)
+  * Updated the Spanish debconf template. (Closes: #102135)
+  * Include genuser.pl and ftpasswd in the proftpd-common package.
+    (Closes: #102489)
+
+ -- Ivo Timmermans <ivo@debian.org>  Tue,  3 Jul 2001 01:01:44 +0200
+
+proftpd (1.2.1+1.2.2rc3-2) unstable; urgency=low
+
+  * Added -r to rm -f /var/run/proftpd in postrm.
+
+ -- Ivo Timmermans <ivo@debian.org>  Mon,  2 Jul 2001 00:48:16 +0200
+
+proftpd (1.2.1+1.2.2rc3-1) unstable; urgency=low
+
+  * New upstream release.
+  * Applied the TLS patch by Peter Runestig.
+  * Included new config.sub and config.guess. (Closes: #99862)
+  * Fixed regexp in proftpd.init. (Closes: #98078)
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu, 28 Jun 2001 11:57:49 +0200
+
+proftpd (1.2.1-9) unstable; urgency=low
+
+  * Changed sections now that postgresql is in non-US. (Closes: #97124)
+  * Kill any references to /usr/doc and /usr/man from debian/rules.
+
+ -- Ivo Timmermans <ivo@debian.org>  Fri, 11 May 2001 11:16:51 +0200
+
+proftpd (1.2.1-8) unstable; urgency=low
+
+  * Fixed the logic that determines how to handle
+    /etc/proftpd.conf. (Closes: #96593)
+
+ -- Ivo Timmermans <ivo@debian.org>  Wed,  9 May 2001 10:57:32 +0200
+
+proftpd (1.2.1-7) unstable; urgency=low
+
+  * Check that /etc/proftpd.conf exists before calculating the md5sum
+    (doh).
+
+ -- Ivo Timmermans <ivo@debian.org>  Sun,  6 May 2001 14:06:32 +0200
+
+proftpd (1.2.1-6) unstable; urgency=low
+
+  * Make proftpd-doc suggest proftpd-common. (Closes: #95724)
+  * Added tests to see if /etc/proftpd.conf exists. (Closes: #95650)
+
+ -- Ivo Timmermans <ivo@debian.org>  Wed,  2 May 2001 15:09:40 +0200
+
+proftpd (1.2.1-5) unstable; urgency=low
+
+  * Include German debconf templates. (Closes: #93770, #93989)
+  * Redirect update-inetd stdout and stdin to /dev/tty.
+    (Closes: #93152)
+  * Include ftpusers(5) manual page, originally from the ftpd package.
+    (Closes: #94348)
+  * Automatically generate a proftpd.conf(5) manual page from the file
+    doc/Configuration.html; add perl-base to build dependencies.
+    (Closes: #65354)
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu, 19 Apr 2001 03:13:02 +0200
+
+proftpd (1.2.1-4) unstable; urgency=low
+
+  * Make proftpd-common and -doc replace proftpd. (Closes: #93230)
+  * Don't edit /etc/init.d/proftpd from postinst, as this is already
+    handled correctly with a grep. (Closes: #93331)
+  * Split proftpd-sql into proftpd-mysql and proftpd-pgsql.  This is ugly,
+    but necessary. (Closes: #72347, #93150)
+  * proftpd-ldap no longer conflicts with itself.
+  * All the configure scripts use the same config.cache file.
+
+ -- Ivo Timmermans <ivo@debian.org>  Mon,  9 Apr 2001 02:34:26 +0200
+
+proftpd (1.2.1-3) unstable; urgency=low
+
+  * `Let's split up' -- Created a separate package for SQL authentication,
+    drop mod_sql from the standard package.
+  * Created a separate package with mod_ldap for LDAP authentication
+    (untested!). (Closes: #60458)
+  * Check md5sum of /etc/proftpd.conf or ask user before asking questions
+    that mean we have to edit the file. (Closes: #90673)
+  * Needs debhelper 3.0 or later.
+  * Include Brazilian, Dutch and Spanish debconf templates.
+    (Closes: #92143, #92318)
+  * Move all debconf related stuff out of postinst into config.  This
+    makes update-inetd work correctly if it needs to ask something.
+    (Closes: #91931, #91987; addresses #90676)
+  * Also edit the ServerType directive in /etc/proftpd.conf when switching
+    to/from inetd mode. (Closes: #91931, #91987)
+  * Use /etc/pam.d/proftpd (fix typo). (Closes: #91745)
+  * Drop manual.uue from the source, delete sharutils from build depends.
+  * Remove the contents from /var/run/proftpd in postrm and postinst.
+    (Closes: #90675, #91262)
+
+ -- Ivo Timmermans <ivo@debian.org>  Sat, 24 Mar 2001 23:32:58 +0100
+
+proftpd (1.2.1-2) unstable; urgency=low
+
+  * Added postgresql-dev and sharutils to the build dependencies.
+    (Closes: #90650)
+  * Run proftpd as root from inetd.  proftpd switches to the user/group
+    that is given in the configuration file after startup anyway.
+    (Closes: #90643, #90645)
+  * Set priority to optional.
+  * In cron.monthly, test for ftpstats in the right directory
+    (/usr/sbin). (Closes: #90669)
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu, 22 Mar 2001 18:21:46 +0100
+
+proftpd (1.2.1-1) unstable; urgency=low
+
+  * New upstream release.  (Closes: #49742, #60188, #62589, #64926,
+    Closes: #66784, #66785, #68848, #74153, #74545, #74758, #77701,
+    Closes: #76453, #78922, #80220, #81757, #82921, #83822, #85561,
+    Closes: #86175, #86855)
+  * New maintainer. (Closes: #66783, #67343, #68356, #72841, #75487,
+    Closes: #76258, #85259, #85589, #85710, #85724, #85940, #86011,
+    Closes: #86519, #87194, #90299)
+  * Send savelog output from cron.monthly to /dev/null.
+    (Closes: #72894, #88150)
+  * Applied a patch submitted by me that fixes segfaults due to using
+    a nonexistant postgres connection. (Closes: #76710)
+  * Fixed a small error. (Closes: #77701)
+  * Check for the presence of any SQL* directives in proftpd.conf on
+    upgrade, refer to README.mod_sql. (Closes: #77701)
+  * Added /etc/ftpusers file. (Closes: #79062, #87568)
+  * Changed modules/mod_pam.c to use /etc/pam.d/proftpd by default.
+  * Replace pam_unix_password by pam_unix and remove the shadow option
+    from /etc/pam.d/proftpd. (Closes: #81753)
+  * Ask whether proftpd should start from inetd or standalone.
+    (Closes: #67720)
+  * Test if ftpstats exists on the system before executing it in
+    cron.monthly. (Closes: #86773)
+  * postinst: Call cp in a separate shell to prevent ~ftp caching trouble.
+    (Closes: #44530)
+  * Made changes to contrib/mod_sql*.c to allow both mysql and postgres
+    modules to be linked in.
+  * Fixed small but obvious mistake in mod_sqlpw.c. (Closes: #76723)
+  * Apply fix from ftp://ftp.urbanrage.com/pub/c/mod_quota.c (by Dmitry
+    Alyabyev) for QuotaExempt.
+  * Added a line with PersistentPasswd to basic.conf, to please NIS and
+    LDAP users bugging about proftpd not finding their dynamic
+    users. (Closes: #62197)
+  * Set DenyFilter in basic.conf to prevent a DoS posted to bugtraq
+    (proftpd bug id 1066). (Closes: #89871)
+  * Move Umask to the <Directory> blocks.
+
+ -- Ivo Timmermans <ivo@debian.org>  Wed,  7 Mar 2001 02:52:26 +0100
+
+proftpd (1.2.0pre10-2.1) unstable; urgency=high
+
+  * Non-Maintainer upload.
+  * Applied patch against string format buffer attack.
+  * Removed extra User/Group pair from basic.conf, server now runs as
+    user/group nobody by default.
+  * Added build dependencies on libmysqlclient-dev (instead of
+    mysql-dev), zlib1g-dev, debhelper and libpam-dev.
+  * In contrib/libcap/libcap.h: moved the capability.h include to just
+    below sys/types.h to fix horrible build errors.
+
+ -- Ivo Timmermans <ivo@debian.org>  Sat, 24 Feb 2001 02:32:02 +0100
+
+proftpd (1.2.0pre10-2) frozen unstable; urgency=high
+
+  * Use setproctitle(%s,foo) in main.c, lamagra@DIGIBEL.ORG advisory.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed,  5 Jul 2000 18:50:07 -0500
+
+proftpd (1.2.0pre10-1) unstable; urgency=low
+
+  * New upstream version (CVS), closes: #59851, #58043, #58149, #41090.
+  * Included lines in default config which make files overwritable,
+    closes: #58258.
+  * Added patch from Gerhard Poul to create xferreport in cron.daily,
+    closes: #57935.
+  * Added patch from Christian Hammers so the init.d script reliably kills
+    the daemon even in inetd mode, and without using killall, closes:
+    #48487, #45853.
+  * Added directory umask to default config, closes: #42279.
+  * Included more documentation and READMEs.
+  * Disabled mod_pgsql and statically linked to library for mod_mysql,
+    closes: #51120, #50342.
+  * Enabled new module mod_quota.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  7 Mar 2000 14:54:10 -0600
+
+proftpd (1.2.0pre9-7) unstable; urgency=low
+
+  * New upstream version (CVS), fixes TYPE L, closes: #58043.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 16 Feb 2000 16:17:00 -0600
+
+proftpd (1.2.0pre9-6) unstable; urgency=low
+
+  * Uploaded for the correct dist (unstable).
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 20 Dec 1999 05:19:47 -0600
+
+proftpd (1.2.0pre9-5) unstable; urgency=low
+
+  * Included ftpstats manpage by Darren Benham (gecko), closes: #51867,
+    #39508.
+  * Changed xferstats to ftpstats in example crontab, closes: #50027.
+  * Slink version updated as of 2.1r4, closes: #33193, #36829, #34564.
+  * No longer asks debconf questions in the postinst, closes: #48353,
+    #46695.
+  * Included compile fixes from slink version, closes: #49170.
+
+ -- Johnie Ingram <johnie@debian.org>  Fri, 17 Dec 1999 21:01:02 -0600
+
+proftpd (1.2.0pre9-4) stable; urgency=low
+
+  * Included compile fixes from slink version.
+  * Changed xferstats to ftpstats in example crontab, closes: #50027.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon,  8 Nov 1999 22:12:13 -0600
+
+proftpd (1.2.0pre9-3) stable; urgency=high
+
+  * Really really important security upload for slink.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon,  8 Nov 1999 19:35:58 -0600
+
+proftpd (1.2.0pre9-2) unstable; urgency=low
+
+  * New upstream version, closes: #49170 (have_sendfile on m68k).
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 30 Oct 1999 20:51:00 -0500
+
+proftpd (1.2.0pre9-1) unstable; urgency=low
+
+  * New upstream version, closes: #43842, #38203, #48274, #46407, #40085, #33206.
+  * Included patch from Madarasz Gergely so it works on 2.0 kernels again
+    (adopted upstream), closes: #47138.
+  * Database client libraries are linked dynamically, closes: #47147.
+  * Split of netbase ends inetd.conf problems, closes: #17514.
+  * Starting in standalone mode removes ftp from inetd.conf, closes: #29734.
+  * Changed PAM service class to 'ftp'.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 30 Oct 1999 20:44:31 -0500
+
+proftpd (1.2.0pre7-3) unstable; urgency=low
+
+  * New upstream version (pre8 beta).
+  * Added detection of slink (ancient non-FHS) system during build.
+  * Changed awkward name xferstats.proftpd to ftpstats.
+  * Debconfified install question.
+  * Updated SQL support.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon,  4 Oct 1999 13:32:59 -0500
+
+proftpd (1.2.0pre7-2) unstable; urgency=low
+
+  * Turned off debugging feature, closes: #46309.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu, 30 Sep 1999 09:49:00 -0500
+
+proftpd (1.2.0pre7-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fixed pam configuration error, closes: #45775, #45769
+  * Split mod_sql out of mod_mysql; added mod_pgsql.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 27 Sep 1999 00:51:11 -0500
+
+proftpd (1.2.0pre6-3) unstable; urgency=low
+
+  * Updated mod_mysql module, updated CVS, added docs.
+  * Closing old bugs:
+    * Authentication (PAM) works, closes: #38229, #22894, #10360.
+    * Kills on upgrade, closes: #44531.  
+    * Restarts on upgrade, closes: #38560, #33540, #33205.
+    * But only if ServerType standalone, closes: #32950.
+    * No killall to fail, closes: #38260.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 18 Sep 1999 01:48:47 -0500
+
+proftpd (1.2.0pre6-2) unstable; urgency=high
+
+  * New upstream security update.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu, 16 Sep 1999 13:14:32 -0500
+
+proftpd (1.2.0pre6-1) unstable; urgency=low
+
+  * New upstream version.
+  * Separate PAM configuration file; PersistentPasswd defaults to off to
+    allow NIS and PAM auth to work.
+  * Reactivated linuxprivs module, fixed upstream.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 13 Sep 1999 02:50:19 -0500
+
+proftpd (1.2.0pre5-1) unstable; urgency=low
+
+  * New upstream version.
+  * ARM support (1.1.7r3-4 NMU, #29805), mod_mysql, and all debian patches
+    are now included upstream.
+
+ -- Johnie Ingram <johnie@debian.org>  Fri, 10 Sep 1999 03:58:40 -0500
+
+proftpd (1.2.0pre4-3) unstable; urgency=low
+
+  * Updated to Standards-Version 3.0.1.1 (FHS).
+  * Purging proftpd will stop the daemon, closes: #44531.
+
+ -- Johnie Ingram <johnie@debian.org>  Sun,  5 Sep 1999 09:50:48 -0500
+
+proftpd (1.2.0pre4-2) unstable; urgency=high
+
+  * More security fixes.
+
+ -- Johnie Ingram <johnie@debian.org>  Sun,  5 Sep 1999 09:38:01 -0500
+
+proftpd (1.2.0pre4-1) unstable; urgency=high
+
+  * New upstream version, fixing remote root exploit.
+  * Prepared with the PAM of glibc 2.1, closes: #36742, #38562.
+  * Note: the README.Solaris2.5x is included as humor, illustrating how
+    bad non-free OSes can be, closes: #36540.
+  * Fixed segfault possibility in mysql module.
+  * Updated to Standards-Version 3.0.1.0.
+  * Conflicts with and provides ftp-server, closes: #42407.
+  * Added dependency on libpam-modules.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 30 Aug 1999 11:52:18 -0500
+
+proftpd (1.2.0pre2-7) unstable; urgency=low
+
+  * Added useful undocumented features to mod_ratio and mod_mysql.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon,  3 May 1999 12:23:18 -0400
+
+proftpd (1.2.0pre2-6) unstable; urgency=low
+
+  * Activated PAM support, closes: #24115, #24524.
+  * Also closes: #35292, fixed in 1.20pre2-4.
+
+ -- Johnie Ingram <johnie@debian.org>  Fri, 23 Apr 1999 11:04:57 -0400
+
+proftpd (1.2.0pre2-5) unstable; urgency=low
+
+  * Changed default (undocumented) TimeoutStalled from 0 to 300.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 10 Apr 1999 17:53:29 -0400
+
+proftpd (1.2.0pre2-4) unstable; urgency=low
+
+  * Conflicts with wu-ftpd-academ, closes: #35036.
+  * The postrm no longer dies if proftpd is not currently running, closes:
+    #35292.
+  * Updated mod_ratio to 2.0beta, added experimental and utterly
+    undocumented mod_mysql 0.1.
+  * Updated to Standards-Version 2.5.0.0.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu,  8 Apr 1999 12:01:42 -0400
+
+proftpd (1.2.0pre2-3) unstable; urgency=low (high for glibc 2.1)
+
+  * New upstream version (1.2.0pre2)
+      * Fixes root priv problem with glibc 2.1 (mod_linuxprivs disabled),
+        closes: #34604.
+      * Fixes ls -lR again, closes: #34521, #33671, #33494
+      * Returns 550 instead of 553 when retrieving dir, closes: #29498.
+
+ -- Johnie Ingram <johnie@debian.org>  Fri, 19 Mar 1999 10:29:43 -0500
+
+proftpd (1.2.0pre2-2) frozen unstable; urgency=medium
+
+  * Uploaded for frozen.  Fixes ls -alR looping bug discovered by Jim
+    Pick, closes: #33494.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu,  4 Mar 1999 08:11:14 -0500
+
+proftpd (1.2.0pre2-1) unstable; urgency=medium
+
+  * New upstream version, closes: #33494 (ls -alR looping bug discovered
+    by Jim Pick).
+  * Debugging turned off by default, closes: #33396.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 17 Feb 1999 12:46:15 -0500
+
+proftpd (1.2.0pre1-2) stable frozen unstable; urgency=high
+
+  * Uploaded for stable by request of Wichert Akkerman.  This fixes the
+    Palmetto bug discovered by netect.com.  Upgrade.  Now.
+  * Bug also fixed in slink and potato on Feb 4, closes: #32686, #33173.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 10 Feb 1999 09:26:18 -0500
+
+proftpd (1.2.0pre1-1) frozen unstable; urgency=medium
+
+  * Include path exploit fix (closes: #32686, important).
+  * Rehashing (-HUP) now properly discards old LogFormat logs, and
+    recreates from the conf file, closes: #28641.
+  * Fixed division by 0 in xferstats.proftp, closes: #26946.
+  * No longer complains to stderr when capababilities (a 2.2.x feature)
+    aren't supported by the kernel, closes: #27861.
+  * Includes ARM support (1.1.7r3-4 NMU), closes: #29805.
+  * Module mod_ls fixed so ncftp -R works, closes: #29520.
+  * Removing package kills proftpd, closes: #30157, #32331, #32607.
+  * No longer slow (846.68 kB/s over ethernet), closes: #29396.
+  * Tweaked regex in /etc/init.d/proftpd.
+  * Daemon is not pointlessly stopped during upgrade: #28900.
+  * Updated documentation from upstream website.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu,  4 Feb 1999 13:37:17 -0500
+
+proftpd (1.1.7r3-4) unstable; urgency=low
+
+  * Only queries about installing anonymous ftp once (#27873 and #25432).
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 12 Oct 1998 18:24:59 -0400
+
+proftpd (1.1.7r3-3) unstable; urgency=low
+
+  * Merged fix from Alpha release by Paul Slootman (#27823).
+  * Bugs fixed prior to this release, or non-bugs: #20130, #24675, #25158,
+    #25162.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 12 Oct 1998 17:16:53 -0400
+
+proftpd (1.1.7r3-2) unstable; urgency=low
+
+  * New upstream version (CVS).
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 12 Oct 1998 12:53:14 -0400
+
+proftpd (1.1.7r3-1.1) unstable; urgency=low
+
+  * non-maintainer (binary-only) upload for Alpha
+  * invoke "make install" with some modified parameters, else it tries to
+    create directories outside the source directory.
+
+ -- Paul Slootman <paul@debian.org>  Mon, 12 Oct 1998 21:07:12 +0200
+
+proftpd (1.1.7r3-1) unstable; urgency=low
+
+  * New upstream version (pristine).
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 10 Oct 1998 13:11:38 -0400
+
+proftpd (1.1.7r2-2) unstable; urgency=low
+
+  * New upstream version (CVS).
+  * Module linuxprivs is now compiled in for better security, on
+    architectures with kernel source newer than 2.1.103.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed,  7 Oct 1998 10:55:38 -0400
+
+Old Changelog:
+
+proftpd (1.1.7r2-1) unstable; urgency=low, closes=26839
+
+  * New upstream version (pristine).
+  * Removal will not run init.d script if script doesn't exist (#26839).
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  6 Oct 1998 14:17:08 -0400
+
+proftpd (1.1.7r1-1) unstable; urgency=low
+
+  * New upstream version 1.1.7pl1 (CVS).
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 23 Sep 1998 11:29:21 -0400
+
+proftpd (1.1.7pre1-1) unstable; urgency=low, closes=25168 16502 20868 26638 23485 25272
+
+  * New upstream version (CVS) includes ability to diable wtmp logging
+    (#16502) and a correct implementation of %L (#20868).
+  * Fixed xferstats conflict with hylafax-server (#26638).
+  * Removing proftpd now stops the running daemon (#25272).
+  * Bugs fixed prior to this release, by other packages, or non-bugs:
+    #25168, #23485.
+  * Updated to Standards-Version 2.4.1.4.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 12 Sep 1998 17:16:53 -0400
+
+proftpd (1.1.6r2-3) unstable; urgency=low
+
+  * Ratio support is accepted by upstream author as a "contrib" module,
+    and now fully documented.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  8 Sep 1998 22:30:45 -0400
+
+proftpd (1.1.6r2-2) unstable; urgency=low, closes=26089 25133
+
+  * New upstream version (CVS), fixing symlink Bug (#26089) and general
+    slowness when used with 2.1.x kernels (#25133).
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  8 Sep 1998 14:54:59 -0400
+
+proftpd (1.1.6r2-1) unstable; urgency=low, closes=26167 26305 23156 17488
+
+  * New upstream version (CVS).
+  * Modified for new debhelper behavior (#26167, #26305).
+  * Closes #17488, as ls -lat is now supported.
+  * Added xferstats manpage and program wu-ftpd-academ, as modified by
+    Holger Preiss (TU Dresden) (#23156).
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  8 Sep 1998 12:29:25 -0400
+
+proftpd (1.1.6r-1.1) unstable; urgency=low
+
+  * non-maintainer upload for Alpha
+  * don't use wildcards in debian/examples, as that fails with debhelper_1.1.9
+
+ -- Paul Slootman &lt;paul@debian.org&gt;  Wed, 26 Aug 1998 22:37:29 +0200
+
+proftpd (1.1.6r-1) unstable; urgency=low
+
+  * New upstream version (CVS).
+
+ -- Johnie Ingram <johnie@debian.org>  Thu, 20 Aug 1998 10:51:04 -0400
+
+proftpd (1.1.6pre4-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  4 Aug 1998 12:25:14 -0400
+
+proftpd (1.1.6pre2-1) unstable; urgency=low
+
+  * New upstream version (fixes ident timeouts).
+
+ -- Johnie Ingram <johnie@debian.org>  Fri, 31 Jul 1998 11:51:32 -0400
+
+proftpd (1.1.6pre1-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu, 30 Jul 1998 14:29:27 -0400
+
+proftpd (1.1.5r-3) unstable; urgency=low
+
+  * New upstream version (1.1.5pl3).
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 20 Jul 1998 23:04:08 -0400
+
+proftpd (1.1.5r-2) unstable; urgency=low
+
+  * Tweaked syslog logging: CWD command, initial connect, etc.
+  * Added HostRatio directive.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue, 14 Jul 1998 12:09:35 -0400
+
+proftpd (1.1.5r-1) unstable; urgency=low
+
+  * New upstream version.
+  * Removed extraneous debugging output from mod_ratio.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue, 14 Jul 1998 11:00:58 -0400
+
+proftpd (1.1.5pre3-2) unstable; urgency=low
+
+  * Added custom-written ratio module.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue, 14 Jul 1998 01:23:00 -0400
+
+proftpd (1.1.5pre3-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Johnie Ingram <johnie@debian.org>  Sun, 12 Jul 1998 22:11:05 -0400
+
+proftpd (1.1.5pre1-1) unstable; urgency=low, closes=23568 17765 18589
+
+  * New upstream version.
+  * Source code uses correct FSF address (#23568).
+  * Recursive directory listings (ls -lR) now supported (#17765).
+  * No longer possible to crash/spin server with huge dirs (#18589).
+  * Probably fixes 10360, 16502, 18855, 20130, 22894, 23485, and 23875,
+    but more testing is needed.
+
+ -- Johnie Ingram <johnie@debian.org>  Sun,  5 Jul 1998 18:24:45 -0400
+
+proftpd (1.0.3-1) unstable; urgency=low, closes=22207 22437 14447 21808
+
+  * New upstream version.
+  * ProFTPD now uses port 20 for outgoing data instead of "wierd ports"
+    (#14447).
+  * Pre-install script will not fail if init.d script is missing (#22207).
+  * Closes Bug #22437 against ncftp, incorrect handling of multiline
+    responses, actually due to proftpd's incorrect multiline response.
+  * Includes example configurations (#21808).
+
+ -- Johnie Ingram <johnie@debian.org>  Fri, 22 May 1998 17:17:20 -0400
+
+proftpd (1.0.2-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu, 21 May 1998 15:21:06 -0400
+
+proftpd (1.0.1-1) unstable; urgency=low
+
+  * New (somewhat unreleased) upstrem version, fixing potential segfault
+    problem.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue, 19 May 1998 13:48:26 -0400
+
+proftpd (1.0.0unoff1-2) unstable; urgency=low
+
+  * Real-time ratio levels are now logged for each user, at the higher
+    debugging levels (>= 3).
+  * Ratios are calculated at session start in addition to during chdir
+    commands.
+
+ -- Johnie Ingram <johnie@debian.org>  Sun, 19 Apr 1998 20:06:01 -0400
+
+proftpd (1.0.0unoff1-1) unstable; urgency=low
+
+  * Now includes current directories in status output.
+  * The ftpwho command now shows the entire command being executed.
+  * Remoted commands logged separate from malloc debugging: most at level
+    3, STOR, RETR and CWD at level 2.
+  * Now logs the rough bandwidth of each transfer to syslog.
+  * Disabled NEED_PERSISTENT_PASSWORD so NIS works (#18144, #14916).
+  * Converted from debmake to debhelper packaging technology.
+  * Undocumented support for upload/download ratios added.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 18 Apr 1998 23:24:15 -0400
+
+proftpd (1.0.0-8) unstable; urgency=low
+
+  * Priority is now extra.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 18 Mar 1998 17:01:21 -0500
+
+proftpd (1.0.0-7) unstable; urgency=low
+
+  * Corrected spelling of proftpd in init.d message output.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat, 14 Mar 1998 19:47:23 -0500
+
+proftpd (1.0.0-6) unstable; urgency=low
+
+  * Included force-reload target in help text returned by init.d script,
+    and switched to the unofficial official downcase style.
+
+ -- Johnie Ingram <johnie@debian.org>  Fri,  6 Feb 1998 23:43:19 -0500
+
+proftpd (1.0.0-5) unstable; urgency=low
+
+  * Corrected year and URL info in copyright file.
+  * Added reload and force-reload targets to init.d script.
+  * Updated to Standards-Version 2.4.0.0.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  3 Feb 1998 15:05:51 -0500
+
+proftpd (1.0.0-4) unstable; urgency=low, closes=17489
+
+  * Applied proftpd-1.0.0-chmod.patch, fixing behavior of the SITE CHMOD
+    command when octal numbers do not begin with 0.
+  * Default config now shows symlinks as symlinks (#17489).
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  3 Feb 1998 13:14:10 -0500
+
+proftpd (1.0.0-3) unstable; urgency=low
+
+  * Built with new version of debmake to correct md5sum error.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 21 Jan 1998 13:33:39 -0500
+
+proftpd (1.0.0-2) unstable; urgency=low, closes=14234
+
+  * Setting up anonymous FTP now sets up an example welcome.msg (#14234).
+  
+ -- Johnie Ingram <johnie@debian.org>  Thu,  1 Jan 1998 14:02:50 -0500
+
+proftpd (1.0.0-1) unstable; urgency=low, closes=12753
+
+  * New upstream version, fixes MDTM and NOOP commands.
+  * Closed #12753, as install now asks to set up anonymous FTP.
+  * Init script modified for better compliance with policy 2.3.0.1 section
+    3.6.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 31 Dec 1997 23:43:20 -0500
+
+proftpd (0.99.0pl11-2) unstable; urgency=low
+
+  * Fixed bug in preinst discovered on powerpc architecture -- the preinst
+    script could fail with some versions of bash.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  9 Dec 1997 20:11:07 -0500
+
+proftpd (0.99.0pl11-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue, 11 Nov 1997 13:53:58 -0500
+
+proftpd (0.99.0pl10-1) unstable; urgency=low, closes=14725
+
+  * New upstream version, supporting md5 passwords (#14725).
+  * Fixed bug where proftpd would not start automatically after upgrade if
+    anonymous FTP was enabled.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue, 11 Nov 1997 12:36:52 -0500
+
+proftpd (0.99.0pl9-2) unstable; urgency=low
+
+  * Fixed errors in default proftpd.conf pointed out by Scott K. Ellis.
+  * Configuration script no longer asks if anonymous FTP should be
+    enabled, if anonymous FTP is enabled.
+  * Closed #10360, as proftpd now works correctly on both shadow and
+    non-shadow systems.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 29 Oct 1997 14:54:31 -0500
+
+proftpd (0.99.0pl9-1) unstable; urgency=low
+
+  * New upstream version.
+  * Features support for the SIZE command (#13963).
+  
+ -- Johnie Ingram <johnie@debian.org>  Wed, 29 Oct 1997 14:05:12 -0500
+
+proftpd (0.99.0pl8-1) unstable; urgency=low
+
+  * New upstream version.
+  * Includes support for the MDTM command used by the ftp method of dpkg
+    (#13959).
+  * Added code from Christoph Lameter to set up anonymous ftp (#13334).
+  * Removed patch to fix non-shadow support, as this feature has been
+    added to the configuration script.
+  * Added SHELL=/bin/bash to debian rules.
+  * Updated to Standards-Version 2.3.0.0 and debmake 3.4.2..
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 20 Oct 1997 16:11:05 -0400
+
+proftpd (0.99.0pl7-1) unstable; urgency=medium
+
+  * New upstream version.
+  * Fixes wtmp corruption program (#12013, #12483).
+  * Added patch to fix non-shadow support.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 24 Sep 1997 14:10:51 -0400
+
+proftpd (0.99.0pl6-5) unstable; urgency=low
+
+  * Tweaked packaging for better multi-architecture support.
+
+ -- Johnie Ingram <johnie@debian.org>  Sun, 31 Aug 1997 00:38:31 -0400
+
+proftpd (0.99.0pl6-4) unstable; urgency=low
+
+  * Updated to Standards-Version 2.2.0.0 and debmake 3.3.11.
+  * Removed "Evil" code to auto-fetch HTML manual during package build
+    reported by James Troup (#11598).
+  * Switched to pristine upstream tar archive.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat,  9 Aug 1997 14:59:24 -0400
+
+proftpd (0.99.0pl6-3) unstable; urgency=low
+
+  * Linked against libc6 again on Intel architecture.
+  * Fixed errors in default proftpd.conf pointed out by Rob Browning.
+
+ -- Johnie Ingram <johnie@debian.org>  Mon, 28 Jul 1997 04:26:05 -0400
+
+proftpd (0.99.0pl6-2) unstable; urgency=low
+
+  * Updated HTML manual, modifed build script to mirror automatically.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu, 10 Jul 1997 11:14:33 -0400
+
+proftpd (0.99.0pl6-1) unstable; urgency=low
+
+  * New upstream version.
+  * Added complete HTML manual and FAQ to package.
+  * Updated to Standards-Version 2.1.3.3 and debmake 3.3.4.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  8 Jul 1997 23:46:06 -0400
+
+proftpd (0.99.0pl5-1) unstable; urgency=low
+
+  * New upstream version.
+  * No longer unnecessarily edits /etc/inetd.conf during upgrades,
+    and /etc/init.d/proftpd script now automatically detects when proftpd
+    is being run out of inetd instead (Bug #10462).
+  * Closed Bug #10373.
+
+ -- Johnie Ingram <johnie@debian.org>  Wed, 11 Jun 1997 02:46:55 -0400
+
+proftpd (0.99.0pl4-3) unstable; urgency=low
+
+  * Built with libc5 (on i386 systems) in another attempt to fix Bug
+    #10373 (corruption of utmp and wtmp).
+  * Some tweaks to debian "clean" target.
+
+ -- Johnie Ingram <johnie@debian.org>  Sat,  7 Jun 1997 11:47:45 -0400
+
+proftpd (0.99.0pl4-2) unstable; urgency=low
+
+  * Added TODO file and upstream changelog to package.
+  * Temporarily disabled wtmp logging since this corrupts the log on
+    libc5/libc6 systems (Bug #10373).
+
+ -- Johnie Ingram <johnie@debian.org>  Thu,  5 Jun 1997 20:14:17 -0400
+
+proftpd (0.99.0pl4-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Johnie Ingram <johnie@debian.org>  Thu,  5 Jun 1997 13:28:13 -0400
+
+proftpd (0.99.0pl3-2) unstable; urgency=low
+
+  * Added patch from author to fix premature termination of the control
+    connection during MPUT commands.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  3 Jun 1997 15:59:42 -0400
+
+proftpd (0.99.0pl3-1) unstable; urgency=low
+
+  * Initial Release.
+  * Contains two additional patches from the author to fix compilation on
+    libc6, and to log the full pathname in the xferlog.
+
+ -- Johnie Ingram <johnie@debian.org>  Tue,  3 Jun 1997 09:41:41 -0400
+
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.NEWS
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.NEWS
@@ -0,0 +1,83 @@
+proftpd-dfsg (1.3.2e-1) unstable; urgency=low
+
+    A new contributed module mod_vroot has been added to the provided modules pool.
+    Note that it is *still* experimental, so use it at your own risk.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon Apr 19 13:13:45 CEST 2010
+    
+proftpd-dfsg (1.3.2a-1) unstable; urgency=low
+
+    The traditional monthly cron job to collect statistics has been removed
+    and ftpstats is now run at logrotate execution as a post rotation job. 
+    You can safely remove the /etc/cron.monthly/proftpd{-basic}.disabled
+    script(s) after upgrading and customize the /etc/logrotate.d/proftpd-basic 
+    instead as you prefer. Note that until release 1.3.2-1 the log rotation was
+    also performed without using logrotate, and it has been introduced to be
+    more homogeneous with other services.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Fri, 17 Jul 2009 13:21:01 +0200
+
+proftpd-dfsg (1.3.2-1) unstable; urgency=low
+
+    Starting from 1.3.2 ProFTPD supports external DSO modules development.
+    External modules can be built using proftpd-dev package and its utilities
+    and files, prxs and pkg-config specifically. If you'd like some contributed 
+    modules were distributed, but they are not distributed with the main 
+    package, feel free to ask with a RFP and I will evaluate if the module is 
+    in shape and potentially useful for that.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Sun, 17 Feb 2009 11:19:44 +0100
+
+proftpd-dfsg (1.3.1-12) unstable; urgency=low
+
+    Starting from this version, exotic authentication modules have been
+    splitted into different binary packages to reduce the number of 
+    dependencies. For compatibility they are all installed in upgrading,
+    but you can remove both all unused proftpd-mod-* modules and the
+    pseudo-package proftpd, now used only for migration.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 19 Jun 2008 15:24:22 +0200
+
+proftpd-dfsg (1.3.1-10) unstable; urgency=low
+
+     A new tiny `proftpd-gencert` script is now provided to create SSL/TLS 
+     self-signed certificate. The resulting key and certificate can be
+     used along with the tls.conf template to provide ftps connections.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 19 May 2008 18:03:49 +0200
+
+proftpd-dfsg (1.3.1-4) unstable; urgency=low
+
+     Starting from this version a few example set of directives used 
+     for exotic authentications are splitted out in a few separate 
+     .conf files (currently LDAP, SQL and TLS related) which need
+     to be included by the main proftpd.conf file. 
+     Their use is optional but strongly suggested. All directives
+     are commented out by default.
+
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Thu, 03 Jan 2008 17:35:56 +0100
+
+proftpd-dfsg (1.3.0-1) unstable; urgency=low
+
+     Starting from 1.3.0 proftpd support  DSO and debian packaging moved
+     to  a single  package  style, in  respect  with the  multi-binaries
+     package  previously used.  The  list of  modules  (all modules  are
+     enabled per default) is  visibile in /etc/proftpd/modules.conf. You
+     could  also need  to  comment  out the  unused  SQL backend  module
+     loading (mod_sql_mysql  or mod_sql_postgres) in that  file in order
+     to  have  the right  SQL  engine  working. Another  possibility  is
+     specifying a suitable AuthOrder in your configuration file.
+
+     mod_sql_mysql should handle old MySQL password format more
+     gracefully.  Starting with MySQL 4.1.1, the format for passwords stored
+     using the MySQL PASSWORD() function changed.  This format change causes
+     issues for sites that have passwords stored in the older format.  Users
+     of mod_sql+mod_sql_mysql would see this as users being unable to login.
+     Now, if compiled against MySQL 4.1.1 or later, mod_sql_mysql will first
+     check the password using the current MySQL format; if that fails it
+     will fall back to checking the old format.  Note that this only affects
+     sites which have "SQLAuthTypes Backend" in their proftpd.conf.
+
+     
+ -- Francesco Paolo Lovergine <frankie@debian.org>  Mon, 6 Jun 2005 14:39:04 +0200
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.dirs
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.dirs
@@ -0,0 +1,12 @@
+etc/init.d
+etc/cron.monthly
+etc/default
+etc/pam.d
+usr/bin
+usr/sbin
+usr/lib/proftpd
+etc/proftpd
+usr/share/proftpd
+usr/share/proftpd/templates
+var/log/proftpd
+usr/share/locale
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.init
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.init
@@ -0,0 +1,221 @@
+#!/bin/sh 
+
+### BEGIN INIT INFO
+# Provides:          proftpd
+# Required-Start:    $remote_fs $syslog $local_fs $network
+# Required-Stop:     $remote_fs $syslog $local_fs $network
+# Should-Start:      $named
+# Should-Stop:       $named
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Starts ProFTPD daemon
+# Description:       This script runs the FTP service offered
+#                    by the ProFTPD daemon
+### END INIT INFO
+
+# Start the proftpd FTP daemon.
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DAEMON=/usr/sbin/proftpd
+NAME=proftpd
+
+# Defaults
+RUN="no"
+OPTIONS=""
+
+PIDFILE=`grep -i 'pidfile' /etc/proftpd/proftpd.conf | sed -e 's/pidfile[\t ]\+//i'`
+if [ "x$PIDFILE" = "x" ];
+then
+	PIDFILE=/var/run/proftpd.pid
+fi
+
+# Read config (will override defaults)
+[ -r /etc/default/proftpd ] && . /etc/default/proftpd
+
+trap "" 1
+trap "" 15
+
+test -f $DAEMON || exit 0
+
+. /lib/lsb/init-functions
+
+#
+# Servertype could be inetd|standalone|none.
+# In all cases check against inetd and xinetd support.
+#
+if ! egrep -qi "^[[:space:]]*ServerType.*standalone" /etc/proftpd/proftpd.conf
+then
+	if egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/proftpd" /etc/xinetd.conf 2>/dev/null || \
+	   egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/proftpd" /etc/xinetd.d/* 2>/dev/null || \
+       egrep -qi "^ftp.*/usr/sbin/proftpd" /etc/inetd.conf 2>/dev/null
+	then
+    		RUN="no"
+    		INETD="yes"
+	else
+		if ! egrep -qi "^[[:space:]]*ServerType.*inetd" /etc/proftpd/proftpd.conf
+		then
+    		RUN="yes"
+			INETD="no"
+		else
+			RUN="no"
+			INETD="no"
+		fi
+	fi
+fi
+
+# /var/run could be on a tmpfs
+
+[ ! -d /var/run/proftpd ] && mkdir /var/run/proftpd
+
+inetd_check()
+{
+	if [ ! -x /usr/sbin/inetd -a ! -x /usr/sbin/xinetd ]; then
+		echo "Neither inetd nor xinetd appears installed: check your configuration."
+	fi
+}
+
+start()
+{
+    log_daemon_msg "Starting ftp server" "$NAME"
+
+    start-stop-daemon --start --quiet --pidfile "$PIDFILE" --oknodo --exec $DAEMON -- $OPTIONS  
+    if [ $? != 0 ]; then
+        log_end_msg 1
+        exit 1
+    else
+        log_end_msg 0
+    fi
+}
+
+signal()
+{
+
+    if [ "$1" = "stop" ]; then
+		SIGNAL="TERM"
+    	log_daemon_msg "Stopping ftp server" "$NAME"
+    else
+	if [ "$1" = "reload" ]; then
+	    SIGNAL="HUP"
+    	log_daemon_msg "Reloading ftp server" "$NAME"
+	else
+	    echo "ERR: wrong parameter given to signal()"
+	    exit 1
+	fi
+    fi
+    if [ -f "$PIDFILE" ]; then
+    	start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
+   	 if [ $? = 0 ]; then
+        	log_end_msg 0
+    	else
+		SIGNAL="KILL"
+		start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
+    		if [ $? != 0 ]; then
+        		log_end_msg 1
+        		[ $2 != 0 ] || exit 0
+    		else
+        		log_end_msg 0
+    		fi
+    	fi
+   	if [ "$SIGNAL" = "KILL" ]; then
+		rm -f "$PIDFILE"
+    	fi
+    else
+        log_end_msg 0
+    fi
+}
+
+case "$1" in
+    start)
+	if [ "x$RUN" = "xyes" ] ; then
+	    start
+	else
+	    if [ "x$INETD" = "xyes" ] ; then
+		echo "ProFTPd is started from inetd/xinetd."
+		inetd_check
+	    else 
+	    	echo "ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration."
+	    fi
+	fi
+	;;
+
+    force-start)
+	if [ "x$INETD" = "xyes" ] ; then
+	    echo "Warning: ProFTPd is started from inetd/xinetd (trying to start anyway)."
+		inetd_check
+	fi
+	start
+	;;	
+    
+    stop)
+	if [ "x$RUN" = "xyes" ] ; then
+	    signal stop 0
+	else
+	    if [ "x$INETD" = "xyes" ] ; then
+		echo "ProFTPd is started from inetd/xinetd."
+		inetd_check
+	    else 
+	    	echo "ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration."
+	    fi
+	fi
+	;;
+
+    force-stop)
+	if [ "x$INETD" = "xyes" ] ; then
+	    echo "Warning: ProFTPd is started from inetd/xinetd (trying to kill anyway)."
+		inetd_check
+	fi
+	signal stop 0
+	;;
+
+    reload)
+	signal reload 0
+	;;
+
+    force-reload|restart)
+	if [ "x$RUN" = "xyes" ] ; then
+	    signal stop 1
+	    sleep 2
+	    start
+	else
+	    if [ "x$INETD" = "xyes" ] ; then
+		echo "ProFTPd is started from inetd/xinetd."
+		inetd_check
+	    else 
+	    	echo "ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration."
+	    fi
+	fi
+	;;
+
+    status)
+	if [ "x$INETD" = "xyes" ] ; then
+	    echo "ProFTPd is started from inetd/xinetd."
+		inetd_check
+		exit 0
+	else 
+	    if [ -f "$PIDFILE" ]; then
+	    	pid=$(cat $PIDFILE)
+	    else
+	    	pid="x"
+	    fi
+	    if [ `pidof proftpd|grep "$pid"|wc -l` -ne 0 ] ; then
+	    	echo "ProFTPd is started in standalone mode, currently running."
+			exit 0
+	    else
+	    	echo "ProFTPd is started in standalone mode, currently not running."
+			exit 3
+	    fi
+	fi
+	;;
+
+    check-config)
+        $DAEMON -t >/dev/null && echo "ProFTPd configuration OK" && exit 0
+        exit 1
+        ;;
+
+    *)
+	echo "Usage: /etc/init.d/$NAME {start|status|force-start|stop|force-stop|reload|restart|force-reload|check-config}"
+	exit 1
+	;;
+esac
+
+exit 0
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-mod-odbc.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-mod-odbc.install
@@ -0,0 +1 @@
+usr/lib/proftpd/mod_sql_odbc.so
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.prerm
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.prerm
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+if [ -x "/usr/sbin/invoke-rc.d" ]; then
+    invoke-rc.d proftpd stop
+else 
+	if [ -x "/etc/init.d/proftpd" ]; then
+		/etc/init.d/proftpd stop
+	fi
+fi
+
+#DEBHELPER#
--- proftpd-dfsg-1.3.3a.orig/debian/index.html
+++ proftpd-dfsg-1.3.3a/debian/index.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>ProfFTPD documentation index</title>
+</head>
+<body>
+A brief list of ProFTPD included documentation. This is not exhaustive, please consult text-only documentation
+in the program documentation directory <tt>/usr/share/doc/proftpd-doc</tt> and the ProFTPD <a
+href="http://www.proftpd.org">home page</a> for additional information.
+<ul>
+<li><a href="Configuration.html">Configuration Directive List</a></li>
+<li><a href="howto/index.html">HOWTO documents</a></li>
+<li><a href="modules/">Main modules</a></li>
+<li><a href="contrib/">Contributed modules</a></li>
+<li><a href="misc/">Miscellanea</a></li>
+<li><a href="faq.html">Frequently Asked Questions</a></li>
+</ul>
+</body>
+</html>
--- proftpd-dfsg-1.3.3a.orig/debian/mod_mysql.texi
+++ proftpd-dfsg-1.3.3a/debian/mod_mysql.texi
@@ -0,0 +1,19 @@
+This module is contained in the mod_mysql.c file, and is not compiled in
+by default.  It provides the backend support to connect to MySQL
+databases.
+
+@heading MySQL Database Directives
+
+@subheading @anchor{MySQLInfo} MySQLInfo
+
+@format
+Syntax: MySQLInfo host user pass dbname
+Default: none
+Context: server config, virtual host
+@end format
+
+Configures the MySQL database driver (the database may be remote).  A
+connection isn't made until use of a SQL feature requires it, after
+which it may be held open for the lifetime of the FTP session
+depending on the directives in use.  Use @kbd{""} to specify a null
+password.
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.templates
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.templates
@@ -0,0 +1,23 @@
+# These templates have been reviewed by the debian-l10n-english
+# team
+#
+# If modifications/additions/rewording are needed, please ask
+# debian-l10n-english@lists.debian.org for advice.
+#
+# Even minor modifications require translation updates and such
+# changes should be coordinated with translators and reviewers.
+
+Template: shared/proftpd/inetd_or_standalone
+Type: select
+__Choices: from inetd, standalone
+Default: standalone
+_Description: Run proftpd:
+ ProFTPd can be run either as a service from inetd, or as a standalone
+ server. Each choice has its own benefits. With only a few FTP
+ connections per day, it is probably better to run ProFTPd from inetd in
+ order to save resources.
+ .
+ On the other hand, with higher traffic,
+ ProFTPd should run as a standalone server to avoid spawning a new
+ process for each incoming connection.
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-doc.dirs
+++ proftpd-dfsg-1.3.3a/debian/proftpd-doc.dirs
@@ -0,0 +1,2 @@
+usr/share/doc/proftpd-doc
+usr/share/doc/proftpd-doc/misc
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.config
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.config
@@ -0,0 +1,12 @@
+#!/bin/sh -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+action=$1
+version=$2
+
+db_title ProFTPd configuration
+
+db_input high shared/proftpd/inetd_or_standalone || true
+db_go
--- proftpd-dfsg-1.3.3a.orig/debian/ftpstats.8
+++ proftpd-dfsg-1.3.3a/debian/ftpstats.8
@@ -0,0 +1,99 @@
+.\" Copyright (C) 1999 Darren Benham
+.\"
+.\" This manual page is free software.  It is distributed under the
+.\" terms of the GNU General Public License as published by the Free
+.\" Software Foundation; either version 2 of the License, or (at your
+.\" option) any later version.
+.\"
+.\" This manual page is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this manual page; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+.\" USA
+.\"
+.TH FTPSTATS 8 "October 30, 2002" "Debian GNU/Linux"
+
+.SH NAME
+ftpstats \- FTP Log summarizer
+.SH SYNOPSIS
+.B ftpstats
+.RI [ options ] 
+.SH DESCRIPTION
+.PP
+Ftpstats dissects the defined ftp log and reports various 
+statistics as requested.
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+.P
+.SH OPTIONS
+.P
+.TP
+.BR \-f " filename"
+Use
+.IR filename
+rather than the default
+.IR /var/log/xferlog
+.
+.TP
+.BR \-r
+Include real users.
+.TP
+.BR \-a
+Include anonymous users.
+.TP
+.BR \-h
+Include report on hourly traffic.
+.TP
+.BR \-d
+Include report on domain traffic.
+.TP
+.BR \-t
+Report on total traffic by section.
+.TP
+.BR \-i
+Report on incoming traffic only (uploads).
+.TP
+.BR \-o
+Report on outgoing traffic only (downloads).
+.TP
+.BR \-D "domain"
+Report only on traffic from
+.IR domain
+.  
+This option leads to problems with the local domain:  e.g. test.com is
+encountered under test and not recognized under com, -D com will give you only
+stats about com excluding test.com!  Use -A com for correct results.
+.TP
+.BR \-A "address"
+Report only on traffic from addresses whose end matches
+.IR address
+.  e.g. -A test.domain.com will report on address ending with test.domain.com
+.TP
+.BR \-l "depth"
+Depth of path detail for sections
+.TP
+.BR \-s "section"
+Section to report on.  e.g. -s /pub will report only on paths under /pub
+.SH BUGS
+No known bugs at this time.
+If you discover any bugs, please report at http://bugs.proftpd.org/
+For help/support, try the ProFTPD mailing lists, detailed on
+http://www.proftpd.org/lists.html
+.br
+.SH SEE ALSO
+.BR proftpd (8), proftpd.conf (5), xferlog (5)
+.SH AUTHORS
+ProFTPD is written and maintained by a number of people, full credits
+can be found on http://www.proftpd.org/credits.html
+.br
+.SH CREDITS
+This manual page was written by
+Francesco P. Lovergine <frankie@debian.org> and other Debian developers,
+for the Debian GNU/Linux system (but may be used by others).
+.br
+Please use the most appropriate mailing list listed on
+http://www.proftpd.org/lists.html for ftpstats related comments.
--- proftpd-dfsg-1.3.3a.orig/debian/compat
+++ proftpd-dfsg-1.3.3a/debian/compat
@@ -0,0 +1 @@
+7
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.README.Debian
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.README.Debian
@@ -0,0 +1,117 @@
+ProFTPD Server for Debian
+-------------------------
+
+** Debian is different
+
+Current maintainer (me) of proftpd on Debian has the questionable
+habit to integrate many cvs-stolen intermediate patches to the official
+proftpd release, to fix known issues and provide preview features.
+The result is that the released program can be quite far from the
+original tarball, so do not bother upstream team with bug reporting
+about Debian proftpd, without pre-check with the maintainer. At the same
+time, do not desume that some known specific problems are not fixed on
+the basis of the declared upstream version: that could be not true. 
+Read the maintainer changelog before reporting.
+
+** Different authorization layers
+
+The most exotic authorization and add-on layers (based on MySQL,
+PostgreSQL, LDAP, etc.) are split in different independent packages,
+named proftpd-mod-* and you need to install the required add-on package
+in order to use those types of authentication modes with the proftpd-basic
+package, where all other main modules live. See also Dynamic Modules in
+this document below.
+
+In order to use those modules you have to decomment
+the appropriate lines in /etc/proftpd/modules.conf and include that file
+from /etc/proftpd/proftpd.conf, as shown in basic templates stored in
+the /usr/share/proftpd/templates directory. Note that there are
+some implicit inter-dependencies in shared modules and the order used
+in /etc/proftpd/proftpd.conf is NOT casual. If you got some weird
+segfaults at run-time, you are probably using a wrong configuration:
+consider that currently proftpd is quite weak in managing DSO anomalies,
+so be careful.
+
+** IPv6 issue:
+
+In standalone mode proftpd binds both IPv4 and IPv6 addresses. That
+causes a quite annoying message at startup on IPv4-only boxes, such as:
+
+	IPv6 getaddrinfo 'your_host_name' error: Name or service not known
+
+That can be avoided by keeping an IPv6 mapping for your_host_name in your /etc/hosts file, such as:
+
+	::1 ip6-localhost ip6-loopback your_host_name
+
+or also
+
+	::fff:A.B.C.D	your_host_name
+
+when you got a static IPv4 address A.B.C.D. The same is required for all IP4/6 addresses, just
+in case your nameserver does not map your hostname and IPs.
+
+Debian proftpd since 1.3.0-14 is also patched to disable IPv6 at run-time using the
+
+UseIPv6 off
+
+directive in /etc/proftpd/proftpd.conf file or using the following options:
+
+-4, --ipv4     Support IPv4 functionality only
+-6, --ipv6     Support IPv6 functionality
+
+Starting from 1.3.2, upstream default has become having IPv6 off, but Debian has still
+it on by default to be consistent with the past.
+
+** Dynamic modules
+
+Starting from 1.3.0 version proftpd supports DSO modules, which are loaded at run time
+consulting the Debian-specific /etc/proftpd/modules.conf file, which must be included
+in your /etc/proftpd/proftpd.conf configuration file.
+
+Note that in case of SQL modules you need to comment out the unused back-end module 
+(e.g. mod_sql_mysql if you use mod_sql_postgres or viceversa) in order to have the right 
+authentication module working, or to change the auth order in your config file.
+Alternatively, you should use the explicit 'SQLBackend' directive, as shown in the default 
+configuration file. Note that the SQL auth layer requires that both mod_sql.c _and one_ 
+specific backend (e.g. mod_sql_mysql.c) are loaded in that order to work correctly.
+
+As always, your old proftpd.conf is NOT ensured to work smoothly with the current release:
+that can be due to changes in directives and defaults for core or contributed modules.
+You are strongly advised to consult documentation in order to upgrade your existent
+configuration.
+
+** IPv6 and CIDR notation considerations:
+
+Keep attention to the use of CIDR notation in Allow/Deny directives with IPv6 address space!
+A naive approach would be writing something like:
+
+	Allow ::ffff:A.B.C.D/24
+	Deny all
+
+to allow your own IPv4 subnet and deny all the rest. 
+That's definitively WRONG! IPv6 CIDR are considered on a 128 bits range, therefore that directive 
+would allow access to the whole IPv4 address space instead! So a proper directive in that
+case is
+
+	Allow ::ffff:A.B.C.D/120
+	Deny all
+
+
+** Other information
+
+Please, read accurately the NEWS, README and changelog file in /usr/share/doc/proftpd-basic
+to find novelties of this version if you are upgrading from a pre-1.3.1 release.
+It is also extremely useful installing the proftpd-doc package for additional information
+and HOWTOs. Read specifically documentation about the now mandatory AuthOrder specification 
+for all 'exotic' authorization engines. That is specifically important before reporting
+bugs. If after that you still thought to have found a bug, please follow the mini-howto
+
+http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-Debugging.html
+
+to report properly all required information. Without that, your report is very unlikely
+to be considered by both maintainer and upstreams. Also, do not presume soon to have
+found a bug, please think twice before reporting on the Debian BTS, thanks.
+
+If you were more inclined you can try to contact on-line the maintainer or the
+ProFTPd team in the #proftpd channel on irc.freenode.net.
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-substvars
+++ proftpd-dfsg-1.3.3a/debian/proftpd-substvars
@@ -0,0 +1 @@
+proftpd:depends=proftpd-abi-1.3.2e 
--- proftpd-dfsg-1.3.3a.orig/debian/mod_pgsql.txt
+++ proftpd-dfsg-1.3.3a/debian/mod_pgsql.txt
@@ -0,0 +1,30 @@
+This module is contained in the mod_pgsql.c file, and is not compiled in
+by default.  It provides the backend support to connect to Postgresql
+databases.
+
+Postgres Database Directives
+============================
+
+PostgresInfo
+------------
+
+Syntax: PostgresInfo host user pass dbname
+Syntax: PostgresInfo host dbname
+Default: none
+Context: server config, virtual host
+
+   Configures the Posgresql database driver (the database may be
+remote).  A connection isn't made until use of a SQL feature requires
+it, after which it may be held open for the lifetime of the FTP session
+depending on the directives in use.
+
+PostgresPort
+------------
+
+Syntax: PostgresPort [num]
+Default: 5432
+Context: server config, virtual host
+
+   Specifies which TCP/IP port to use for connecting.  Default is 5432,
+or UNIX socket for localhost.
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-gencert
+++ proftpd-dfsg-1.3.3a/debian/proftpd-gencert
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# This script (re)creates a self-signed SSL certificate to be used for FTP/SSL protocol.
+#
+# Copyright (C) Francesco P. Lovergine <frankie@debian.org>
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2, 
+# as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+#
+
+DAYS=365
+BITS=2048
+KEYDIR=/etc/ssl/private
+CERTDIR=/etc/ssl/certs
+KEY=$KEYDIR/proftpd.key
+CERT=$CERTDIR/proftpd.crt
+
+if [ ! -x /usr/bin/openssl ]; then
+	echo "Openssl utility not found"
+	exit 1
+fi
+
+if [ $(id -u) -ne 0 ]; then
+	echo "Run this script as root"
+	exit 2
+fi
+
+if [ ! -d $KEYDIR -o  ! -d $CERTDIR ]; then
+	echo "Target dirs not found"
+	exit 3
+fi
+
+rm -f $KEY $CERT
+/usr/bin/openssl req -x509 -newkey rsa:$BITS \
+          -keyout $KEY -out $CERT \
+          -nodes -days $DAYS
+if [ $? -eq 0 ]; then
+chmod 0600 $KEY 
+chmod 0644 $CERT
+cat <<EOF
+
+Use the following information in your ProFTPd configuration:
+
+TLSRSACertificateFile    $CERT
+TLSRSACertificateKeyFile $KEY
+
+See /etc/proftpd/tls.conf for suggested TLS related configuration
+items and include that file in your /etc/proftpd/proftpd.conf file.
+
+EOF
+else 
+	echo "Key generation failed"
+	exit 4
+fi
+
+exit 0
--- proftpd-dfsg-1.3.3a.orig/debian/mod_mysql.txt
+++ proftpd-dfsg-1.3.3a/debian/mod_mysql.txt
@@ -0,0 +1,19 @@
+This module is contained in the mod_mysql.c file, and is not compiled in
+by default.  It provides the backend support to connect to MySQL
+databases.
+
+MySQL Database Directives
+=========================
+
+MySQLInfo
+---------
+
+Syntax: MySQLInfo host user pass dbname
+Default: none
+Context: server config, virtual host
+
+   Configures the MySQL database driver (the database may be remote).  A
+connection isn't made until use of a SQL feature requires it, after
+which it may be held open for the lifetime of the FTP session depending
+on the directives in use.  Use `""' to specify a null password.
+
--- proftpd-dfsg-1.3.3a.orig/debian/control.in
+++ proftpd-dfsg-1.3.3a/debian/control.in
@@ -0,0 +1,149 @@
+Source: proftpd-dfsg
+Section: net
+Priority: optional
+Maintainer: Francesco Paolo Lovergine <frankie@debian.org>
+Standards-Version: 3.9.0
+Build-Depends: libmysqlclient-dev, libpam-dev, debhelper (>= 7), zlib1g-dev, 
+ libpq-dev, libldap2-dev, libssl-dev (>= 0.9.8l), libwrap0-dev, libcap-dev [linux-any], 
+ autotools-dev, libncurses5-dev, dpatch, libacl1-dev, libattr1-dev, unixodbc-dev, libsqlite3-dev
+Homepage: http://www.proftpd.org/
+
+Package: proftpd-basic
+Architecture: any
+Depends: netbase (>= 4.13), ${shlibs:Depends}, ${misc:Depends}, debconf (>= 0.5.00), adduser, 
+ ucf (>= 0.30), debianutils (>= 1.21.0), libpam-runtime (>= 0.76-13.1),  sed (>= 4.1.5), update-inetd
+Conflicts: ftp-server, proftpd (<< 1.3.2)
+Replaces: proftpd (<< 1.3.2)
+Provides: ftp-server, proftpd, proftpd-abi-@VERSION@
+Suggests: proftpd-doc, openssl, proftpd-mod-mysql, proftpd-mod-pgsql, proftpd-mod-ldap, proftpd-mod-odbc, proftpd-mod-sqlite, openbsd-inetd | inet-superserver
+Description: Versatile, virtual-hosting FTP daemon - binaries
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package contains the daemon and all main modules used for
+ common configurations. If you need database-centric authentication 
+ install the suitable proftpd-mod suggested package.
+
+Package: proftpd-dev
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, libtool
+Suggests: pkg-config
+Description: Versatile, virtual-hosting FTP daemon - development files
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package contains all files required to develop thirdr-parties
+ modules that can be loaded at run-time by means of DSO support.
+
+Package: proftpd-doc
+Architecture: all
+Suggests: proftpd-basic
+Section: doc
+Depends: ${misc:Depends}
+Description: Versatile, virtual-hosting FTP daemon - documentation
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package contains the software documentation. 
+Homepage: http://www.proftpd.org/docs
+
+Package: proftpd-mod-mysql
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - MySQL module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides MySQL based authentication.
+
+Package: proftpd-mod-pgsql
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - PostgreSQL module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides PostgreSQL based authentication.
+
+Package: proftpd-mod-ldap
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - LDAP module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides LDAP based authentication.
+
+Package: proftpd-mod-odbc
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - ODBC module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides ODBC based authentication.
+
+Package: proftpd-mod-sqlite
+Architecture: any
+Depends: proftpd-basic (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Description: Versatile, virtual-hosting FTP daemon - SQLite3 module
+ ProFTPd is a powerful replacement for wu-ftpd. This File Transfer Protocol
+ daemon supports hidden directories, virtual hosts, and per-directory
+ ".ftpaccess" files. It uses a single main configuration file, with a
+ syntax similar to Apache.
+ .
+ Because of the advanced design, anonymous-FTP directories can have
+ an arbitrary internal structure (bin, lib, etc, and special files are
+ not needed). Advanced features such as multiple password files and
+ upload/download ratios are also supported.
+ .
+ This package provides SQLite based authentication.
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-dev.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-dev.install
@@ -0,0 +1,4 @@
+usr/bin/prxs
+usr/lib/proftpd/*.a
+usr/include/proftpd/*
+usr/lib/pkgconfig/proftpd.pc usr/share/pkgconfig
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.postrm
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.postrm
@@ -0,0 +1,16 @@
+#!/bin/sh -e
+
+if [ "$1" = "disappear" -o "$1" = "remove" ]
+then
+    update-inetd --disable ftp
+fi
+
+if [ "$1" = "purge" ]
+then
+    rm -rf /etc/proftpd 
+    update-rc.d proftpd remove >/dev/null || exit $?
+    userdel --remove --force proftpd || true
+fi
+
+#DEBHELPER#
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-substvars.in
+++ proftpd-dfsg-1.3.3a/debian/proftpd-substvars.in
@@ -0,0 +1 @@
+proftpd:depends=proftpd-abi-@VERSION@ 
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.install
@@ -0,0 +1,34 @@
+usr/sbin/*
+usr/bin/ftpcount
+usr/bin/ftpdctl
+usr/bin/ftptop
+usr/bin/ftpwho
+etc/proftpd
+usr/lib/proftpd/mod_ban.so
+usr/lib/proftpd/mod_ctrls_admin.so
+usr/lib/proftpd/mod_dynmasq.so
+usr/lib/proftpd/mod_exec.so
+usr/lib/proftpd/mod_facl.so
+usr/lib/proftpd/mod_ifsession.so
+usr/lib/proftpd/mod_load.so
+usr/lib/proftpd/mod_quotatab.so
+usr/lib/proftpd/mod_quotatab_file.so
+usr/lib/proftpd/mod_quotatab_radius.so
+usr/lib/proftpd/mod_quotatab_sql.so
+usr/lib/proftpd/mod_radius.so
+usr/lib/proftpd/mod_ratio.so
+usr/lib/proftpd/mod_rewrite.so
+usr/lib/proftpd/mod_shaper.so
+usr/lib/proftpd/mod_site_misc.so
+usr/lib/proftpd/mod_sftp.so
+usr/lib/proftpd/mod_sftp_pam.so
+usr/lib/proftpd/mod_sql.so
+usr/lib/proftpd/mod_sql_passwd.so                                                                                                                           
+usr/lib/proftpd/mod_tls.so
+usr/lib/proftpd/mod_wrap2.so
+usr/lib/proftpd/mod_wrap2_file.so
+usr/lib/proftpd/mod_wrap2_sql.so
+usr/lib/proftpd/mod_wrap.so
+usr/lib/proftpd/mod_unique_id.so
+usr/lib/proftpd/mod_vroot.so
+usr/share/locale/*
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-mod-sqlite.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-mod-sqlite.install
@@ -0,0 +1 @@
+usr/lib/proftpd/mod_sql_sqlite.so
--- proftpd-dfsg-1.3.3a.orig/debian/ftpusers.5
+++ proftpd-dfsg-1.3.3a/debian/ftpusers.5
@@ -0,0 +1,42 @@
+.\" Copyright (c) 1994 Peter Tobias (tobias@server.et-inf.fho-emden.de),
+.\"               2001 Ivo Timmermans <ivo@debian.org>
+.\" This file may be distributed under the GNU General Public License.
+.\"
+.Dd April 19, 2001
+.Dt FTPUSERS 5
+.Os "Debian proftpd"
+.Sh NAME
+.Nm ftpusers
+.Nd file which lists users who are not allowed to use ftp
+.Sh DESCRIPTION
+.Pa /etc/ftpusers
+is used by
+.Xr proftpd 8 ;
+the file contains a list of users who are not allowed to use the
+ftp command. For security reasons at least users like ``root'', ``bin'',
+``uucp'' and ``news'' should be listed in this file. 
+Blank lines and lines beginning with `#' are ignored.
+.Pp
+Note: a lines with `#' in the
+.Em middle
+is 
+.Em not
+a comment. Don't put `#' after a name to comment it; use another line,
+or things will silently fail on you.
+.Sh EXAMPLES
+.Pa /etc/ftpusers
+might contain the following entries:
+.Bd -literal
+#
+# /etc/ftpusers
+#
+root
+bin
+uucp
+news
+.Ed
+.Sh FILES
+.Pa /etc/ftpusers
+.Sh SEE ALSO
+.Xr ftp 1 ,
+.Xr proftpd 8
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.preinst
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.preinst
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+
+# summary of how this script can be called:
+#        * <new-preinst> `install'
+#        * <new-preinst> `install' <old-version>
+#        * <new-preinst> `upgrade' <old-version>
+#        * <old-preinst> `abort-upgrade' <new-version>
+#
+
+if [ "$1" = "upgrade" ]; then
+	 if [ -e /usr/sbin/invoke-rc.d ]; then
+         	invoke-rc.d proftpd stop >/dev/null 2>&1 || true 
+	 else
+	 	/etc/init.d/proftpd stop >/dev/null 2>&1 || true
+	 fi
+
+         # Scoreboard file format changed in 1.2.9
+         # Now stopping all inetd sessions and removing it to ensure
+         # a clean upgrade
+         if dpkg --compare-versions "$2" lt "1.2.9-1"; then
+                if [ `pgrep proftpd|wc -l` -ne 0 ]; then
+                        pkill proftpd
+                        sleep 2
+                fi
+                rm -f /var/run/proftpd/proftpd.scoreboard
+         fi
+fi
+
+exit 0
+
+#DEBHELPER#
+
+
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.postinst
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.postinst
@@ -0,0 +1,210 @@
+#!/bin/sh -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+
+ETC_DIR="/etc/proftpd"
+CONF=$ETC_DIR/proftpd.conf
+CONF_NEW=$ETC_DIR/proftpd.conf.proftpd-new
+MODULES=$ETC_DIR/modules.conf
+MODULES_NEW=$ETC_DIR/modules.conf.proftpd-new
+
+installftp()
+{
+	if ! grep -q "^ftp:" /etc/passwd
+	then
+	    adduser --system ftp || true
+            if [ -f /usr/share/proftpd/templates/welcome.msg -a -d ~ftp ] ; then
+                cp -p -v /usr/share/proftpd/templates/welcome.msg ~ftp/welcome.msg.proftpd-new || true
+                do_update ~ftp/welcome.msg || true
+	    fi
+	fi
+}
+
+add_sysuser()
+{
+	if ! grep -q "^proftpd:" /etc/passwd
+	then
+		adduser --system --disabled-login --no-create-home --home /var/run/proftpd proftpd || true
+	fi
+}
+
+list_options()
+{
+    if [ -f $CONF_NEW ] ; then
+	sed -i -e "s/lsdefaultoptions/ListOptions/i" $CONF_NEW 
+    fi
+}
+
+tcpwin_options()
+{
+    if [ -f $CONF_NEW ] ; then
+        sed -i -e "s/tcpreceivewindow/SocketOptions rcvbuf/i" \
+            -e "s/tcpsendwindow/SocketOptions sndbuf/i" $CONF_NEW 
+    fi
+}
+                                                                                         
+scoreboard()
+{
+    if [ -f $CONF_NEW ] ; then
+        sed -i -e "s/\(scoreboardpath.*\)/#\n#ScoreboardPath is deprecated in 1.2.9, use ScoreboardFile instead\n#\1\n#\n#ScoreboardFile\t\/var\/run\/proftpd\/proftpd.scoreboard\n#/i" \
+                                                $CONF_NEW 
+    fi
+}
+
+
+switch_on()
+{
+    if [ -f $CONF_NEW ] ; then
+	sed -i -e 's/^\(ServerType.*\)inetd/\1standalone/' $CONF_NEW 
+    fi
+}
+
+switch_off()
+{
+    if [ -f $CONF_NEW ] ; then
+	sed -i -e 's/^\(ServerType.*\)standalone/\1inetd/' $CONF_NEW
+    fi
+}
+
+include_modules()
+{
+    if [ -f $CONF_NEW ] ; then
+	if ! egrep -qi "^[[:space:]]*Include.*/etc/proftpd/modules.conf" $CONF_NEW ; then
+		printf "#\n# Includes required DSO modules. This is mandatory in proftpd 1.3\n#\nInclude\t/etc/proftpd/modules.conf\n\n" >$CONF_NEW.tmp.$$
+		cat $CONF_NEW >>$CONF_NEW.tmp.$$
+		mv -f $CONF_NEW.tmp.$$ $CONF_NEW
+	fi
+    fi
+}
+
+replace_file () {
+    file=$1
+    if [ ! -f ${file} ] ; then
+	mv ${file}.proftpd-new ${file}
+    else
+	cp $file ${file}.proftpd-old
+	ucf --debconf-ok ${file}.proftpd-new $file 
+    fi
+}
+
+do_update () {
+    file=$1
+    if diff -q ${file} ${file}.proftpd-new >/dev/null 2>&1; then
+	# Old file and new file are identical
+	rm -f ${file}.proftpd-new
+    else
+	replace_file $file
+    fi
+}
+
+disable_script () {
+	file=$1
+	if [ -x ${file} ]; then
+			cp ${file} ${file}.disabled
+			cat >${file}.disabled <<EOF
+#!/bin/sh
+# This script has been disabled at upgrade time
+
+exit 0
+
+EOF
+			cat ${file} >>${file}.disabled
+			rm -f ${file}
+	fi
+}
+
+DONTSTART=0
+
+. /usr/share/debconf/confmodule
+
+if [ "$1" = "configure" ]; then
+    
+    # mv eventual old configuration in the new location
+    if [ -f /etc/proftpd.conf -a ! -f $CONF ]; then
+    	mv /etc/proftpd.conf $CONF
+    fi
+    
+    # use current configuration files or generate new ones from scratch
+    for name in proftpd modules sql ldap tls virtuals
+    do
+      if [ ! -f $ETC_DIR/$name.conf ]; then
+          cp  /usr/share/proftpd/templates/$name.conf $ETC_DIR/$name.conf.proftpd-new
+      else
+          cp  $ETC_DIR/$name.conf $ETC_DIR/$name.conf.proftpd-new
+      fi
+    done
+    
+    # update-inetd does not manage hostlist prefix to service, at least avoid to add a duplicated line
+    if [ -f /etc/inetd.conf -a $(grep -q '^([[:alnum:],.]+)?:?ftp[[:space:]]+' /etc/inetd.conf|wc -l) -eq 0 ]; then
+    	update-inetd --group STANDARD --add 'ftp	stream	tcp	nowait	root	/usr/sbin/tcpd /usr/sbin/proftpd' 
+    fi
+
+    db_get shared/proftpd/inetd_or_standalone
+    if [ "$RET" = "from inetd" ] ; then
+	    update-inetd --enable ftp
+	    switch_off
+    else
+	    update-inetd --disable ftp
+	    switch_on
+    fi
+
+    add_sysuser
+    installftp
+
+    # do mandatory changes
+    list_options
+    tcpwin_options
+    scoreboard
+    include_modules
+
+	# disable old cron jobs if needed
+	disable_script /etc/cron.monthly/proftpd
+	disable_script /etc/cron.monthly/proftpd-basic
+
+    # propose maintainer changes to user
+    do_update /etc/proftpd/proftpd.conf
+    do_update /etc/proftpd/modules.conf
+    do_update /etc/proftpd/tls.conf
+    do_update /etc/proftpd/sql.conf
+    do_update /etc/proftpd/ldap.conf
+    do_update /etc/proftpd/virtuals.conf
+
+    # Proftpd could not close all of its fd nicely
+    db_stop
+
+    # clean run files (pidfile and scoreboard)
+    rm -f /var/run/proftpd/proftpd* /var/run/proftpd.pid 
+
+fi
+
+if [ -e "/etc/init.d/proftpd" ]; then
+    update-rc.d proftpd defaults 50 >/dev/null
+    if [ $DONTSTART -eq 0 ] ; then
+        set +e 
+	    proftpd -t >/dev/null 2>&1
+    	if [ $? = 0 ]; then
+		set -e
+		invoke-rc.d proftpd start
+	else
+		echo "Cannot start proftpd, please check syntax of your configuration file $CONF"
+	fi
+    fi
+fi
+
+#DEBHELPER#
+
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.manpages
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.manpages
@@ -0,0 +1,6 @@
+debian/tmp/usr/share/man/man1/*
+debian/tmp/usr/share/man/man5/*
+debian/tmp/usr/share/man/man8/*
+debian/ftpusers.5
+debian/ftpasswd.8
+debian/ftpstats.8
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.proftpd.pam
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.proftpd.pam
@@ -0,0 +1,11 @@
+#%PAM-1.0
+auth       required	pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
+@include common-auth
+
+# This is disabled because anonymous logins will fail otherwise,
+# unless you give the 'ftp' user a valid shell, or /bin/false and add
+# /bin/false to /etc/shells.
+#auth       required	pam_shells.so
+
+@include common-account
+@include common-session
--- proftpd-dfsg-1.3.3a.orig/debian/copyright
+++ proftpd-dfsg-1.3.3a/debian/copyright
@@ -0,0 +1,114 @@
+This package was debianized by Johnie Ingram (johnie@debian.org)
+Mon,  2 Jun 1997 12:43:52 -0400, two minutes after its first public release.
+Since 2001 maintained on best effort basis by 
+Francesco Paolo Lovergine <frankie@debian.org>
+
+The canonical location is:
+	ftp://ftp.proftpd.org/distrib/source/	
+
+Authors: The ProFTPD Project team i.e.
+	 	TJ Saunders 
+	 	John Morrissey
+		Habeeb J. Dihu
+		Johnie Ingram
+		James Dogopoulos
+		and other past and present contributors.
+
+Copyright:
+
+The core code is made available under the terms of the GPL2+:
+
+ * ProFTPD - FTP server daemon
+ * Copyright (c) 1997, 1998 Public Flood Software
+ * Copyright (c) 1999, 2000 MacGyver aka Habeeb J. Dihu <macgyver@tos.net>
+ * Copyright (c) 2001-2008 The ProFTPD Project team
+ * Copyright (c) 2001-2008 TJ Saunders <tj@castaglia.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the 
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * As a special exemption, Public Flood Software/MacGyver aka Habeeb J. Dihu
+ * and other respective copyright holders give permission to link this program
+ * with OpenSSL, and distribute the resulting executable, without including
+ * the source code for OpenSSL in the source distribution.
+
+On Debian GNU/Linux systems, the text of the GPL can be found in
+/usr/share/common-licenses/GPL.
+
+This package includes xferlog.5 and the xferstats program from
+wu-ftpd-academ, as modified by Holger Preiss (TU Dresden):
+
+    Copyright (c) 1994  Washington University in Saint Louis.
+    All rights reserved.
+
+    This product includes software developed by Washington University
+    in Saint Louis and its contributors.
+
+    Copyright (c) 1980, 1985, 1988, 1989, 1990  The Regents of the
+    University of California.  All rights reserved.
+
+    This product includes software developed by the University of
+    California, Berkeley and its contributors.
+
+    THIS SOFTWARE IS PROVIDED BY WASHINGTON UNIVERSITY AND CONTRIBUTORS
+    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASHINGTON
+    UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+    ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+    POSSIBILITY OF SUCH DAMAGE.
+
+
+Modifications for Debian are copyright (C) 1997-2000 Johnie Ingram,
+copyright (C) 2001-2009 Francesco Paolo Lovergine,
+and also released under the terms of the GPL -- version 2, or any
+later version.
+
+mod_tls.c is distributed under the following terms (BSD license):
+
+ * AUTH/TLS module for ProFTPD, based on the mod_sample.c file.
+ *
+ * Copyright (c) 2000 - 2002 Peter 'Luna' Runestig <peter@runestig.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifi-
+ * cation, are permitted provided that the following conditions are met:
+ *
+ *    o Redistributions of source code must retain the above copyright notice,
+ *      this list of conditions and the following disclaimer.
+ *
+ *    o Redistributions in binary form must reproduce the above copyright no-
+ *      tice, this list of conditions and the following disclaimer in the do-
+ *      cumentation and/or other materials provided with the distribution.
+ *
+ *    o The names of the contributors may not be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LI-
+ * ABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUEN-
+ * TIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEV-
+ * ER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABI-
+ * LITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- proftpd-dfsg-1.3.3a.orig/debian/TODO.texi
+++ proftpd-dfsg-1.3.3a/debian/TODO.texi
@@ -0,0 +1,17 @@
+@subheading @anchor{MySQLRatios} MySQLRatios
+
+@format
+Syntax: MySQLRatios on
+Syntax: MySQLRatios frate-field fcred-field brate-field bcred-field
+Default: off, or (@samp{frate fcred brate bcred}) if fields unspecified.
+Context: server config
+Compatibility: only available with the Debian package.
+@end format
+
+Activates support for retrieving per-user ratios from the database.  To
+use this feature, @samp{SQLUserTable} (mod_sql) and @samp{Ratios on}
+(mod_ratios) directives are needed.
+
+For this to work you need to compile with -DMOD_MYSQL_RATIOS, and use
+mod_ratio version 2.0 or better.  The latest version is not included
+with stock ProFTPD, but the Debian package has it compiled in.
--- proftpd-dfsg-1.3.3a.orig/debian/ftpasswd.8
+++ proftpd-dfsg-1.3.3a/debian/ftpasswd.8
@@ -0,0 +1,173 @@
+.\" Copyright (C) 2002 Francesco P. Lovergine
+.\"
+.\" This manual page is free software.  It is distributed under the
+.\" terms of the GNU General Public License as published by the Free
+.\" Software Foundation; either version 2 of the License, or (at your
+.\" option) any later version.
+.\"
+.\" This manual page is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this manual page; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+.\" USA
+.\"
+.TH FTPASSWD 8 "October 19, 2002" "1.1.2" "Debian GNU/Linux"
+.SH NAME
+ftpasswd \- manipulates ProFTPD authentication files
+.SH SYNOPSIS
+.TP 8
+\fBftpasswd\fR \fB--help\fR|\fB-h\fR|\fB--version\fR  
+.TP 8
+\fBftpasswd\fR \fB--hash\fR  [ \fB--des\fR|\fB--md5\fR ] [ \fB--stdin\fR ] [ \fB--use-cracklib\fR[=path] ]
+.TP 8
+\fBftpasswd\fR \fB--passwd\fR [ \fB-F\fR|\fB--force\fR ] [ \fB--file=\fRfilename ] [\fB--gecos=\fRstring ] 
+.br 
+[ \fB--gid=\fRgid ] [ \fB--des\fR | \fB--md5\fR ] [ \fB--not-system-password\fR ] 
+.br
+[ \fB--stdin\fR ] [ \fB--use-cracklib\fR[=path] ] \fB--home=\fRpath 
+.br \fB--name=\fRusername \fB--shell=\fRshellpath \fB--uid=\fRuid
+.TP 8
+\fBftpasswd\fR \fB--group\fR [ \fB-F\fR|\fB--force\fR ] [ \fB--enable-group-passwd\fR ] 
+.br
+[ \fB--file=\fRfilename ] [ \fB-m\fR|\fB--member\fR ] [ \fB--des\fR|\fB--md5\fR ]
+.br
+[ \fB--stdin\fR ] [ \fB--use-cracklib\fR[=path] ] \fB--gid=\fRgid 
+.br \fB--name=\fRgroupname 
+.TP 8
+\fBftpasswd\fR \fB--passwd\fR \fB--change-password\fR \fB--name\fR=username
+.br
+.PP
+.SH DESCRIPTION
+.P
+ftpasswd is a Perl script which can be used to manipulate
+the password and group files suitable for use with 
+ProFTPD AuthUserFile and AuthGroupFile configuration directives.
+The idea is somewhat similar to Apache's htpasswd program.
+.P
+Required options are --passwd, --group, or --hash.  
+These specify whether ftpasswd is to
+operate on a passwd(5) format file, on a group(5) format file, or simply
+to generate a password hash, respectively.
+.P
+If used with --passwd, ftpasswd creates a file in the passwd(5) format,
+suitable for use with proftpd's AuthUserFile configuration directive.
+You will be prompted for the password to use of the user, which will be
+encrypted, and written out as the encrypted string.
+By default, using --passwd will write output to "./ftpd.passwd",
+.P
+If used with --hash, ftpasswd generates a hash of a password, as would
+appear in an AuthUserFile.  The hash is written to standard out.
+This hash is suitable for use with proftpd's UserPassword directive.
+.P
+If used with --group, ftpasswd creates a file in the group(5) format,
+suitable for use with proftpd's AuthGroupFile configuration directive.
+By default, using --group will write output to "./ftpd.group".
+
+.SH OPTIONS
+.P
+.TP
+.B \-F, \-\-force
+If the password or group file be used already exists, delete it and write a new one.
+.TP
+.BR \-\-file= filename
+Write output to specified file (password or group files), 
+rather than default one. 
+.TP
+.BR \-\-gecos= string
+Descriptive string for the given user (usually the user's full name).
+.TP
+.BR \-\-gid= gid
+Set primary group ID for this user (optional, will default to
+given 
+.BR --uid 
+value if absent) when 
+.BR
+--passwd 
+is specified.
+.TP
+.BR \-\-uid= uid
+numerical group ID.
+.TP
+.B \-h,\ \-\-help,\ \-\-version
+Show usage and version of the program.
+.TP
+.BR \-\-home= path
+Set the home directory for the user (required).
+.TP
+.B \-\-des,\ \-\-md5
+Use the DES or MD5 algorithm for encrypting passwords. 
+The latter is the default.
+.TP
+.BR \-\-name= username ,\ \-\-name= groupname
+Name of the user account or group (required).  
+If the name does not exist in the specified output-file, an entry will be created
+for it. Otherwise, the given fields will be updated.
+.TP
+.BR \-\-shell= path
+Shell for the user (required).  Recommended: 
+.I /bin/false
+.TP
+.BR \-\-change-password 
+Update only the password field for a user.  This option
+requires that the 
+.BR --name 
+option be used, but no others.
+This also double-checks the given password against the
+user's current password in the existing passwd file, and
+requests that a new password be given if the entered password
+is the same as the current password.
+.TP
+.BR --not-system-password
+Double-checks the given password against the system password
+for the user, and requests that a new password be given if
+the entered password is the same as the system password.  This
+helps to enforce different passwords for different types of
+access.
+.TP
+.BR --stdin
+Read the password directly from standard in rather than
+prompting for it.  This is useful for writing scripts that
+automate use of ftpasswd.
+.TP
+.BR --use-cracklib\fR[ =path \fR]
+Causes ftpasswd to use Alec Muffet's cracklib routines in
+order to determine and prevent the use of bad or weak
+passwords.  The optional path to this option specifies
+the path to the dictionary files to use -- default path
+is 
+.IR /usr/lib/cracklib_dict .
+This requires the Perl Crypt::Cracklib module to be installed on your system.
+.TP
+.BR --enable-group-passwd
+Prompt for a group password.  This is disabled by default,
+as group passwords are not usually a good idea at all.
+.TP
+.BR \-m \ username ,\ \-\-member= username
+user to be a member of the group.  This argument may be used
+This argument may be used multiple times to specify the full list 
+of users to be members of this group.
+
+.SH BUGS
+No known bugs at this time.
+If you discover any bugs, please contact the author.
+
+.SH AUTHOR
+This program has been written by TJ Saunders <tj@castaglia.org>
+as a contributed software for ProFTPD.
+.P
+.SH "SEE ALSO"
+.BR proftpd (8), 
+.BR passwd (5), 
+.BR group (5),
+.BR ftpusers (8), 
+.BR ftpstats (8),
+.BR proftpd.conf (5)
+
+.SH CREDITS
+This manual page was written by
+Francesco Paolo Lovergine <frankie@debian.org> 
+for the Debian GNU/Linux system (but may be used by others).
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-basic.logrotate
+++ proftpd-dfsg-1.3.3a/debian/proftpd-basic.logrotate
@@ -0,0 +1,37 @@
+/var/log/proftpd/proftpd.log 
+/var/log/proftpd/controls.log 
+{
+	weekly
+	missingok
+	rotate 7
+	compress
+	delaycompress
+	notifempty
+	create 640 root adm
+	sharedscripts
+	postrotate
+		# reload could be not sufficient for all logs, a restart is safer
+		invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true
+	endscript
+}
+
+/var/log/proftpd/xferlog
+/var/log/proftpd/xferreport
+{
+	monthly
+	missingok
+	rotate 7
+	compress
+	delaycompress
+	notifempty
+	create 640 root adm
+	sharedscripts
+	prerotate
+	endscript
+	postrotate
+		# reload could be not sufficient for all logs, a restart is safer
+		invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true
+		# run ftpstats on past transfer log
+		ftpstats -a -r -l 2 -d -h -f /var/log/proftpd/xferlog.0 2>/dev/null >/var/log/proftpd/xferreport || true
+	endscript
+}
--- proftpd-dfsg-1.3.3a.orig/debian/mod_pgsql.texi
+++ proftpd-dfsg-1.3.3a/debian/mod_pgsql.texi
@@ -0,0 +1,30 @@
+This module is contained in the mod_pgsql.c file, and is not compiled in
+by default.  It provides the backend support to connect to Postgresql
+databases.
+
+@heading Postgres Database Directives
+
+@subheading @anchor{PostgresInfo} PostgresInfo
+
+@format
+Syntax: PostgresInfo host user pass dbname
+Syntax: PostgresInfo host dbname
+Default: none
+Context: server config, virtual host
+@end format
+
+Configures the Posgresql database driver (the database may be remote).
+A connection isn't made until use of a SQL feature requires it, after
+which it may be held open for the lifetime of the FTP session depending
+on the directives in use.
+
+@subheading @anchor{PostgresPort} PostgresPort
+
+@format
+Syntax: PostgresPort [num]
+Default: 5432
+Context: server config, virtual host
+@end format
+
+Specifies which TCP/IP port to use for connecting.  Default is 5432, or
+UNIX socket for localhost.
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-mod-mysql.install
+++ proftpd-dfsg-1.3.3a/debian/proftpd-mod-mysql.install
@@ -0,0 +1 @@
+usr/lib/proftpd/mod_sql_mysql.so
--- proftpd-dfsg-1.3.3a.orig/debian/proftpd-doc.examples
+++ proftpd-dfsg-1.3.3a/debian/proftpd-doc.examples
@@ -0,0 +1 @@
+sample-configurations
--- proftpd-dfsg-1.3.3a.orig/debian/po/templates.pot
+++ proftpd-dfsg-1.3.3a/debian/po/templates.pot
@@ -0,0 +1,53 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
--- proftpd-dfsg-1.3.3a.orig/debian/po/da.po
+++ proftpd-dfsg-1.3.3a/debian/po/da.po
@@ -0,0 +1,106 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd 1.2.9-16\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2004-10-13 18:53+0200\n"
+"Last-Translator: Morten Brix Pedersen <morten@wtf.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+#, fuzzy
+#| msgid "inetd, standalone"
+msgid "standalone"
+msgstr "inetd, alene"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+#, fuzzy
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd kan køre enten som en service fra inetd, eller som en alenestående "
+"server. Hvert valg har deres fordele. Hvis du kun har et par ftp "
+"forbindelser om dagen, kan det måske ikke være ressourcerne værd at have "
+"proftpd kørende hele tiden."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Advarsel om syntaksændringer i ProFTPd opsætning."
+
+#, fuzzy
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Du opgraderer fra en før-1.2.8 version. Du bør kigge din gamle opsætning "
+#~ "igennem for at sikre, at den er kompatibel med de nuværende direktiver. "
+#~ "Se dokumentationen tilgængelig i proftpd-doc og ret /etc/proftpd.conf til "
+#~ "dine behov."
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Desværre er det næsten umuligt for mig at konvertere hele din opsætning "
+#~ "automatisk. Du skal gøre det selv. ProFTPd kan måske ikke bruge den "
+#~ "resulterede opsætning, og vil ikke kunne starte efter opgraderingen."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "Kør proftpd fra inetd eller alene?"
+
+#, fuzzy
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "På den anden side, hvis dit ftpsted bliver besøgt ofte, så er inetd ikke "
+#~ "et godt valg, fordi hver gang en forbindelse bliver åbnet, skal en ny "
+#~ "proces startes."
--- proftpd-dfsg-1.3.3a.orig/debian/po/de.po
+++ proftpd-dfsg-1.3.3a/debian/po/de.po
@@ -0,0 +1,111 @@
+# Translation of proftpd-dfsg debconf templates to German
+# Copyright (C) Jens Nachtigall <nachtigall@web.de>, 2004.
+# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2006, 2007.
+# This file is distributed under the same license as the proftpd-dfsg package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg 1.3.1-3\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-19 19:14+0100\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: de <debian-l10n-german@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "von Inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "Servermodus"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Proftpd starten:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd kann entweder als Dienst über Inetd oder als eigener Server "
+"gestartet werden. Jede der beiden Startarten hat ihre Vorteile. Falls Sie "
+"nur wenige FTP-Verbindungen täglich erwarten, dann ist es wahrscheinlich "
+"sinnvoller, ProFTPd mittels Inetd zu starten, um Ressourcen zu schonen."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Andererseits sollte ProFTPd als eigener Server betrieben werden, falls Sie "
+"viel Verkehr erwarten, um das Starten neuer Prozesse für jede eingehende "
+"Verbindung zu vermeiden."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Warnung: Syntax-Veränderungen der ProFTPd-Konfiguration."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Sie führen ein Upgrade von einer Version älter als 1.3.0 durch. "
+#~ "Wahrscheinlich werden Sie Ihre bisherige Konfiguration hinsichtlich der "
+#~ "neuen Direktiven überprüfen müssen. Bitte konsultieren Sie hierfür die "
+#~ "Dokumentation im Paket proftpd-doc und passen Sie Ihre /etc/proftpd.conf "
+#~ "an."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Leider ist es nahezu unmöglich, Ihre bisherige Konfiguration automatisch "
+#~ "zu konvertieren, abgesehen von ein paar elementaren Dingen. Sie werden es "
+#~ "selbst tun müssen. Außerdem könnte es sein, dass ProFTPd nicht in der "
+#~ "Lage wäre, die aus der Konvertierung resultierende Konfiguration zu "
+#~ "nutzen, so dass es nach dem Upgrade nicht neu starten würde."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Beachten Sie auch, dass beginnend mit Version 1.3.0 dynamische Module "
+#~ "verwendet werden und die Konfiguration aufgeteilt werden sollte, wobei "
+#~ "Befehle, die Module laden, in der neuen Konfigurationsdatei /etc/proftpd/"
+#~ "modules.conf für zukünftige Bearbeitungen bleiben sollten. Diese Datei "
+#~ "sollte von der Hauptkonfigurationsdatei eingebunden werden."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "ProFTPd über Inetd oder als Daemon starten?"
+
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Wenn der FTP-Server jedoch sehr oft benutzt werden wird, sollten Sie ihn "
+#~ "stattdessen als Daemon betreiben, da bei Inetd bei jeder Verbindung eine "
+#~ "eigene Instanz des Programms gestartet werden würde."
--- proftpd-dfsg-1.3.3a.orig/debian/po/cs.po
+++ proftpd-dfsg-1.3.3a/debian/po/cs.po
@@ -0,0 +1,110 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2008-01-02 22:30+0100\n"
+"Last-Translator: Jan Outrata <outrataj@upcase.inf.upol.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "z inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "samostatně"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Spouštět proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd může běžet buď jako služba z inetd, nebo jako samostatný server. Obě "
+"možnosti mají svoje výhody. Při několika ftp spojeních za den je lepší "
+"spouštět ProFTPd z inetd, aby šetřil zdroje."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Naopak při větším provozu by měl ProFTPd běžet jako samostatná služba, aby "
+"nemusel při každém příchozím spojení spouštět nový proces."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Upozornění na změny syntaxe v konfiguraci ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Aktualizujete z verze před 1.3.0. Pravděpodobně budete muset aktualizovat "
+#~ "své předchozí nastavení, aby bylo v souladu s nynějšími direktivami. "
+#~ "Konzultujte dokumentaci dostupnou v proftpd-doc a podle potřeby upravte /"
+#~ "etc/proftpd/proftpd.conf."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Naneštěstí je téměř nemožné převést vaše nastavení, až na nějaké základní "
+#~ "věci, automaticky. Budete to muset udělat sami. ProFTPd také nemusí být "
+#~ "schopný použít výslednou konfiguraci a po aktualizaci by se znovu "
+#~ "nespustil."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Od verze 1.3.0 se používají dynamické moduly a nastavení by mělo být "
+#~ "rozděleno. Instrukce pro zavedení modulů by se měly nacházet v novém "
+#~ "konfiguračním souboru /etc/proftpd/modules.conf. Tento soubor by měl být "
+#~ "zahrnut v hlavním konfiguračním souboru."
+
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Na druhou stranu, pokud je váš ftp server navštěvován často, není inetd "
+#~ "dobrá volba, protože pokaždé, když je otevřeno spojení, je spuštěn nový "
+#~ "proces."
--- proftpd-dfsg-1.3.3a.orig/debian/po/es.po
+++ proftpd-dfsg-1.3.3a/debian/po/es.po
@@ -0,0 +1,113 @@
+# proftpd debconf translation to spanish
+# Copyright (C) 2003, 2006, 2007 Software in the Public Interest
+# This file is distributed under the same license as the proftpd package.
+#
+# Changes:
+# - Initial translation
+#        Carlos Valdivia Yagüe <valyag@dat.etsit.upm.es>, 2003
+#
+# - Revisions
+#        Carlos Valdivia Yagüe <valyag@dat.etsit.upm.es>, 2006, 2007
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd 1.3.1-3\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-12 15:45+0100\n"
+"Last-Translator: Carlos Valdivia Yagüe <valyag@dat.etsit.upm.es>\n"
+"Language-Team: Debian L10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "desde inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "independiente"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Ejecutar proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd puede ejecutarse como un servicio desde inetd o como un servidor "
+"independiente. Ambas opciones tienen sus ventajas. Si sólo recibe unas pocas "
+"conexiones FTP diarias, probablemente sea mejor ejecutar ProFTPd desde inetd "
+"para ahorrar recursos."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Por otro lado, con más tráfico, ProFTPd debería ejecutarse como un servidor "
+"independiente para evitar crear un proceso nuevo por cada conexión entrante."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Aviso de cambios de sintaxis en la configuración de ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Está actualizando desde una versión de ProFTPd anterior a la 1.3.0. Es "
+#~ "muy posible que necesite revisar la configuración anterior para adecuarla "
+#~ "a las directivas actuales. Por favor, consulte la documentación "
+#~ "disponible en proftpd-doc y modifique apropiadamente /etc/proftpd.conf."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Desgraciadamente, es casi imposible convertir su configuración de forma "
+#~ "automática, salvo algunas cuestiones elementales. Tendrá que hacerlo por "
+#~ "su cuenta. ProFTPd podría tener problemas para usar la nueva "
+#~ "configuración y no arrancar después de actualizar."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Tenga en cuenta que a partir de la versión 1.3.0, ProFTPd utiliza módulos "
+#~ "dinámicos y la configuración se ha separado en dos, quedando las "
+#~ "instrucciones de carga de módulos en el nuevo fichero de configuración /"
+#~ "etc/proftpd/modules.conf. Ese fichero debería ser incluido por el fichero "
+#~ "de configuración principal."
--- proftpd-dfsg-1.3.3a.orig/debian/po/fi.po
+++ proftpd-dfsg-1.3.3a/debian/po/fi.po
@@ -0,0 +1,56 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg 1.3.1-3\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-12 20:06+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: Finland\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "inetdistä"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "itsenäisenä"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Aja proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd voidaan ajaa joko palveluna inetdistä tai itsenäisenä palvelimena. "
+"Molemmilla vaihtoehdoilla on hyvät puolensa. Jos FTP-yhteyksiä on vain "
+"muutamia päivässä, on luultavasti parempi ajaa ProFTPd inetdistä resurssien "
+"säästämiseksi."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Toisaalta suuremmilla liikennemäärillä ProFTPd kannattaa ajaa itsenäisenä "
+"palvelimena, koska tällöin vältetään uuden prosessin luominen kullekin "
+"yhteydelle."
--- proftpd-dfsg-1.3.3a.orig/debian/po/eu.po
+++ proftpd-dfsg-1.3.3a/debian/po/eu.po
@@ -0,0 +1,95 @@
+# translation of proftpd-dfsg1.3.1-3-templates.po to Euskara
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Piarres Beobide <pi@beobide.net>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg1.3.1-3-templates\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-19 10:17+0100\n"
+"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
+"Language-Team: Euskara <Librezale@librezale.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "inetd bidez"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "bakarka"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "proftpd exekutatu:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd inetd bidezko zerbitzu bat edo bakarkako zerbitzari bezala exekutatu "
+"daiteke, Aukera bakoitzak bere onurak ditu. Eguneko FTP konexio gutxi "
+"badituzu, hobe da ziurrenik ProFTPd inetd biez exekutatzea errekurtso "
+"gutxiago erabiltzeko."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Beste aldetik, trafiko handi bat baduzu, ProFTPd bakarka exekutatu beharko "
+"zenuke konexio bakoitzean ez prozesu berriak sortu ez daitezen."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Kontutan izan sintaxi aldaketak egon direla ProFTPd konfigruazioan."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "1.3.0 aurreko bertsio batetatik bertsio berritzen ari zara. ziurrenik "
+#~ "aurreko konfigurazioa gainbegiratu beharko duzu direktiba berriak "
+#~ "betetzen dituela ziurtatzeko. Mesedez begiratu dokumentazio eta nola-egin "
+#~ "eskuragarriak eta aldatu /etc/proftpd/proftpd.conf behar den moduan."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Tamalez, nahiko zaila da zure konfigurazioa automatikoki eraldatzea, "
+#~ "oinarrizko aldaketa batzuek ezik. Aldaketa hauek zure kabuz egin beharko "
+#~ "dituzu. ProFTPd-ek arazoak izan ditzake konfigurazio berria erabiltzeko "
+#~ "eta posible da ezin exekutatu izatea bertsio-berritzearen ondoren."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Kontutan izan 1.3.0 bertsiotik aurrera modulu dinamikoak erailtzen direla "
+#~ "eta konfigurazioa zatitua izan dela, /etc/proftpd/modules.conf fitxategi "
+#~ "berrian modulu karga argibideak mantendu direlarik. Fitxategi hori "
+#~ "konfigurazio fitxategi nagusian txertatu beharko en."
--- proftpd-dfsg-1.3.3a.orig/debian/po/fr.po
+++ proftpd-dfsg-1.3.3a/debian/po/fr.po
@@ -0,0 +1,100 @@
+# Translation of proftpd-dfsg debconf templates to French
+# Copyright (C) 2007 Christian Perrier <bubulle@debian.org>
+# This file is distributed under the same license as the proftpd-dfsg package.
+#
+# Christian Perrier <bubulle@debian.org>, 2006-2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-12 11:55+0530\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "Depuis inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "Indépendamment"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Lancement de proftpd :"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd peut être lancé soit en tant que service depuis inetd, soit comme un "
+"serveur indépendant. Chaque méthode a ses avantages. Pour quelques "
+"connexions par jour, il est suggéré de lancer ProFTPd depuis inetd afin de "
+"préserver les ressources du système."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Au contraire, avec un trafic plus important, il est recommandé d'exécuter "
+"ProFTPd indépendamment pour éviter de démarrer un nouveau processus pour "
+"chaque connexion entrante."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Changement de syntaxe dans la configuration de ProFTPd"
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Vous effectuez une mise à jour depuis une version inférieure à 1.3.0. Il "
+#~ "vous sera probablement nécessaire de revoir votre configuration "
+#~ "antérieure afin d'être conforme aux nouvelles directives. Veuillez "
+#~ "consulter la documentation disponible dans le paquet proftpd-doc et "
+#~ "modifier /etc/proftpd/proftpd.conf en conséquence."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Malheureusement, il est à peu près impossible de convertir votre "
+#~ "configuration automatiquement, sauf pour des points particulièrement "
+#~ "simples. Vous devrez le faire vous-même. ProFTPd pourrait être incapable "
+#~ "d'utiliser le fichier de configuration résultant et ne redémarrera donc "
+#~ "pas après la mise à jour."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Veuillez également noter qu'à partir de la version 1.3.0, des modules "
+#~ "dynamiques sont utilisés et que la configuration doit être éclatée en "
+#~ "plusieurs fichiers. Les instructions de chargement des modules sont "
+#~ "placées dans le nouveau fichier de configuration /etc/proftpd/modules."
+#~ "conf pour des développements futurs. Ce fichier sera appelé par le "
+#~ "fichier de configuration principal."
--- proftpd-dfsg-1.3.3a.orig/debian/po/gl.po
+++ proftpd-dfsg-1.3.3a/debian/po/gl.po
@@ -0,0 +1,107 @@
+# Galician translation of proftpd-dfsg's debconf templates
+# This file is distributed under the same license as the proftpd-dfsg package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-12 19:35+0000\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "desde inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "autónomo"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Executar proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd pode executarse coma un servizo de inetd ou coma un servidor "
+"autónomo. Cada posibilidade ten as súas avantaxes. Con só unhas poucas "
+"conexións por FTP diarias, seguramente sexa mellor executar ProFTPd desde "
+"inetd para aforrar recursos."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Por outro lado, con máis tráfico, ProFTPd debería funcionar coma un servidor "
+"autónomo para non ter que crear un novo proceso por cada conexión entrante."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Aviso sobre cambios de sintaxe na configuración de ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Está a se actualizar dunha versión anterior á 1.3.0. Seguramente ha ter "
+#~ "que revisar a súa configuración anterior para que se axuste ás directivas "
+#~ "actuais. Consulte a documentación e os \"how-tos\" dispoñibles no paquete "
+#~ "proftpd-doc e modifique /etc/proftpd/proftpd.conf como sexa necesario."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Lamentablemente, actualmente é case imposible converter a súa "
+#~ "configuración automaticamente, agás para algunhas cousas básicas. Ha ter "
+#~ "que o facer vostede mesmo. ProFTPd tamén podería ser incapaz de empregar "
+#~ "a configuración resultante, polo que non había volver iniciarse trala "
+#~ "actualización."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Teña tamén en conta que, a partires da versión 1.3.0, empréganse módulos "
+#~ "dinámicos e a configuración debería estar dividida, mantendo as "
+#~ "instruccións de carga dos módulos no novo ficheiro de configuración /etc/"
+#~ "proftpd/modules.conf. Ese ficheiro debería ter unha directiva de "
+#~ "inclusión no ficheiro de configuración principal."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "¿Executar proftpd desde inetd ou dun xeito autónomo?"
+
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Por outro lado, se o seu sitio FTP recibe moitas visitas, sería mellor "
+#~ "executar proftp coma un servidor autónomo (porque con inetd lánzase un "
+#~ "novo proceso cada vez que se abre unha conexión)."
--- proftpd-dfsg-1.3.3a.orig/debian/po/id.po
+++ proftpd-dfsg-1.3.3a/debian/po/id.po
@@ -0,0 +1,101 @@
+# proftpd-dfsg debconf translation for Bahasa Indonesia.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the proftpd-dfsg package.
+# Arief S Fitrianto <arief@gurame.fisika.ui.ac.id>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpf-dfsg\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2008-01-03 13:27+0700\n"
+"Last-Translator: Arief S Fitrianto <arief@gurame.fisika.ui.ac.id>\n"
+"Language-Team: Debian L10N Indonesia <debian-l10n-id@gurame.fisika.ui.ac."
+"id>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Indonesian\n"
+"X-Poedit-Country: INDONESIA\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "dari inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "mandiri"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Jalankan proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd dapat beroperasi sebagai layanan dari inetd atau sebagai suatu "
+"server mandiri. Setiap pilihan memiliki keuntungan masing-masing. Jika "
+"koneksi FTP sangat sedikit per harinya, lebih baik menjalankan ProFTPd dari "
+"inetd untuk menghemat sumber daya komputer/server."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Namun apabila lalu lintas FTP sangat tinggi, ProFTPd sebaiknya dioperasikan "
+"sebagai suatu server mandiri untuk menghindari pembukaan proses baru setiap "
+"ada sambungan FTP yang masuk."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr ""
+#~ "Hati-hati terhadap adanya perubahan sintaks pada konfigurasi ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Anda sedang memperbaharui versi pra-1.3.0. Mungkin Anda perlu melihat "
+#~ "kembali konfigurasi sebelumnya agar sesuai dengan sintaks yang berlaku "
+#~ "pada versi baru. Silakan membaca dokumentasi dan petunjuk yang tersedia "
+#~ "pada paket proftpd-doc kemudian ubah /etc/proftpd/proftpd.conf sesuai "
+#~ "kebutuhan."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Malangnya, saat ini hampir tidak mungkin untuk mengubah konfigurasi lama "
+#~ "secara otomatis selain beberapa konfigurasi dasar. Anda harus "
+#~ "melakukannya sendiri. ProFTPd bisa jadi tidak dapat menggunakan "
+#~ "konfigurasi yang dihasilkan dan tidak akan beroperasi setelah proses "
+#~ "pembaharuan ini."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Perlu dicatat pula bahwa mulai versi 1.3.0, modul-modul dinamik digunakan "
+#~ "dan konfigurasi harus dipisahkan. Konfigurasi modul disimpan dalam "
+#~ "berkas /etc/proftpd/modules.conf untuk kebutuhan versi mendatang. Berkas "
+#~ "ini harus dilibatkan dalam berkas konfigurasi utama."
--- proftpd-dfsg-1.3.3a.orig/debian/po/ja.po
+++ proftpd-dfsg-1.3.3a/debian/po/ja.po
@@ -0,0 +1,102 @@
+# 
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+# 
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# 
+#    Developers do not need to manually edit POT or PO files.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg 1.3.1-6\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2008-01-30 08:03+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "inetd 経由"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "スタンドアロン"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "proftpd の起動方法:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd は、inetd 経由のサービスとして実行することもできますし、 スタンドア"
+"ローンのサーバとしても実行できます。どちらにもそれぞれ利点があります。1日に数"
+"回の ftp アクセスしかない場合は、資源を節約するために ProFTPd を inetd から起"
+"動するのが良いかも知れません。"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"一方、頻繁なアクセスがある場合は、接続ごとに新規プロセスが生成されるのを避け"
+"るため、ProFTPd をスタンドアロンサーバとして動作させるべきです。"
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "ProFTPd 設定での書式変更に関する警告"
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "今回は、1.3.0 より古いバージョンからのアップグレードとなります。恐らく現在"
+#~ "の書式に適合するように設定ファイルを見直す必要があるでしょう。proftpd-doc "
+#~ "パッケージで参照可能な文書と How to を確認し、/etc/proftpd.conf の必要な部"
+#~ "分を変更して下さい。"
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "残念なことに、いくつかの基本的な設定以外は設定ファイルを自動的に変換するの"
+#~ "は現状ではほとんど不可能です。自分で変換する必要があります。自動変換後の設"
+#~ "定を使うことは恐らくできないので、アップグレード後に ProFTPd を再起動する"
+#~ "こともできません。"
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "バージョン 1.3.0 から動的モジュールが使用され、設定が分割されたのにも注意"
+#~ "してください。モジュールのロードを引き続き行うには、以降の新しい設定を行う"
+#~ "ために用意された新しい /etc/proftpd/modules.conf 設定ファイルで指定を行い"
+#~ "ます。メインの設定ファイルでこのファイルを含めておくことが必要です。"
--- proftpd-dfsg-1.3.3a.orig/debian/po/it.po
+++ proftpd-dfsg-1.3.3a/debian/po/it.po
@@ -0,0 +1,60 @@
+# This is the italian debconf template for proftpd.
+# Copyright (C) 2003 Francesco P.Lovergine <frankie@debian.org>
+# This file is distributed under the same license as the proftpd package.
+# Francesco P.Lovergine <frankie@debian.org>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd 1.3.1\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2008-04-29 14:28+0100\n"
+"Last-Translator: Francesco Paolo Lovergine <frankie@debian.org>\n"
+"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Italian\n"
+"X-Poedit-Country: ITALY\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "da inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "autonomo"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Esecuzione proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"Ogni scelta ha i suoi benefici. Se si hanno poche connessioni ftp al giorno, "
+"risorse."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"D'altro canto, con traffico maggiore, ProFTPd dovrebbe essere eseguito come "
+"servizio autonomo per evitare di lanciare un nuovo processo per ogni "
+"connession in ingresso."
--- proftpd-dfsg-1.3.3a.orig/debian/po/nb.po
+++ proftpd-dfsg-1.3.3a/debian/po/nb.po
@@ -0,0 +1,95 @@
+# translation of proftpd-dfsg.po to Norwegian Bokmål
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-15 12:36+0100\n"
+"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "fra inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "frittstående"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Kjør proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd kan kjøres enten som en tjeneste fra inetd, eller som en "
+"frittstående tjener. Hvert valg har sine fordeler. Hvis det bare er noen få "
+"FTP-tilkoblinger om dagen, er det antakelig bedre å kjøre ProFTPd fra inetd "
+"for å spare ressurser."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"På den annen side, med høyere trafikk bør ProFTPd kjøre som en frittstående "
+"tjener for å unngå å starte en ny prosess for hver innkommende tilkobling."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Advarsel om syntaksendringer i ProFTPd-oppsettet."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Det oppgraderes nå fra en versjon tidligere enn 1.3.0. Det er trolig "
+#~ "nødvendig å se over det tidligere oppsettet så det stemmer med gjeldende "
+#~ "direktiver. Les dokumentasjonen og how-to-filene i proftpd-doc og endre /"
+#~ "etc/proftpd/proftpd.conf ved behov."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Det er dessverre nesten umulig nå å konvertere oppsettet automatisk, "
+#~ "unntatt for noen helt grunnleggende saker. Du må gjøre det selv. ProFTPd "
+#~ "kunne også være ute av stand til å bruke et automatisk konvertert oppsett "
+#~ "og ville ikke starte på nytt etter oppgradering."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Merk også at fra og med versjon 1.3.0 brukes det dynamiske moduler, og "
+#~ "oppsettet bør deles opp, med instruksjoner for lasting av moduler "
+#~ "inneholdt i den nye oppsettsfila /etc/proftpd/modules.conf for fremtidige "
+#~ "endringer. Den fila bør inkluderes fra hovedoppsettsfila."
--- proftpd-dfsg-1.3.3a.orig/debian/po/nl.po
+++ proftpd-dfsg-1.3.3a/debian/po/nl.po
@@ -0,0 +1,116 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#    Translators, please read /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-19 17:43+0100\n"
+"Last-Translator: Bart Cornelis <cobaco@skolelinux.no>\n"
+"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Dutch\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "via inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "losstaand"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "ProFTPd uitvoeren:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd kan als een losstaande server, of als een dienst via inetd gedraaid "
+"worden. Elke keuze heeft z'n eigen voordelen. Als u relatief weinig ftp-"
+"verbindingen per dag binnenkrijgt is het waarschijnlijk aan te raden om "
+"ProFTPd via inetd te draaien daar dit systeembronnen spaart."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Als u daarentegen relatief veel verkeer heeft, draait u ProFTPd beter als "
+"een losstaande server, daar u dan vermijd dat er voor elke binnenkomende "
+"verbinding een proces afgesplitst wordt. "
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr ""
+#~ "Waarschuwing betreffende syntax-veranderingen in de ProFTPd-configuratie."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "U voert een opwaardering uit vanaf een pre-1.3.0 versie. U zult "
+#~ "waarschijnlijk uw bestaande configuratie moeten aanpassen om te voldoen "
+#~ "aan de huidige richtlijnen. Gelieve de documentatie beschikbaar in "
+#~ "proftpd-doc te consulteren en de noodzakelijke aanpassingen in /etc/"
+#~ "proftpd.conf door te voeren."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Het is helaas bijna onmogelijk om uw instelling automatisch om te "
+#~ "schakelen. Dit wordt geprobeerd, maar afgezien van eenvoudige opzetten, "
+#~ "zult u zelf nog aanpassingen moeten uitvoeren. Het is mogelijk dat "
+#~ "ProFTPd de automatisch gegenereerde configuratie niet kan gebruiken, "
+#~ "waardoor de herstart van ProFTPd na de opwaardering zal mislukken."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Opgelet: vanaf versie 1.3.0 worden er gebruik gemaakt van dynamische "
+#~ "modules en is de configuratie opgesplitst (waarbij de instructies voor "
+#~ "het laden van modules in het nieuwe /etc/proftpd/modules.conf "
+#~ "configuratiebestand gehouden worden teneinde toekomstige hacks toe te "
+#~ "laten; dit bestand wordt ingevoegd (included) door het "
+#~ "hoofdconfiguratiebestand."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "ProFTPd losstaand, of vanuit inetd opstarten?"
+
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Daar staat tegenover dat wanneer uw ftp-site druk bezocht wordt het beter "
+#~ "is om proftp als een losstaande server te draaien (Inetd start namelijk "
+#~ "bij iedere verbinding een nieuw proces)."
--- proftpd-dfsg-1.3.3a.orig/debian/po/pt.po
+++ proftpd-dfsg-1.3.3a/debian/po/pt.po
@@ -0,0 +1,108 @@
+# Portuguese translation of proftpd debconf messages.
+# This file is distributed under the same license as the proftpd package.
+# Ricardo Silva <ardoric@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg 1.3.1-3:\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-15 12:23+0000\n"
+"Last-Translator: Ricardo Silva <ardoric@gmail.com>\n"
+"Language-Team: Native Portuguese <traduz@debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "a partir do inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "em modo solit�rio"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Correr o proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"O ProFTPd pode ser corrido tanto como um servi�o do inetd, bem como um "
+"servidor solit�rio. Cada escolha tem os seus benef�cios. Se tem apenas "
+"algumas liga��es ftp por dia, � provavelmente melhor correr o proftpd pelo "
+"inetd para poupar recursos."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Por outro lado, com mais trafego, o ProFTPd deve ser iniciado como um "
+"servidor solit�rio para evitar a cria��o de novos processos para cada "
+"liga��o."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Aviso sobre mudan�as de sintaxe na configura��o do ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Est� a actualizar de uma vers�o anterior a 1.3.0. Provavelmente ter� de "
+#~ "rever a sua configura��o pr�via de forma a ser compat�vel com as "
+#~ "directivas actuais. Por favor, consulte a documenta��o e os how-to's "
+#~ "dispon�veis no pacote proftpd-doc e mude o ficheiro /etc/proftpd/proftpd."
+#~ "conf conforme necess�rio."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Infelizmente, � quase imposs�vel actualmente converter a sua configura��o "
+#~ "automaticamente, a n�o ser em alguns pontos b�sicos. Ter� de o fazer por "
+#~ "si pr�prio. O ProFTPd pode tamb�m n�o ser capaz de usar a configura��o "
+#~ "resultante, e n�o se inicializar depois da actualiza��o."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Note tamb�m que a partir da vers�o 1.3.0, s�o usados m�dulos din�micos e "
+#~ "a configura��o deve ser separada, mantendo instru��es de carregamento do "
+#~ "m�dulos no novo ficheiro de configura��o /etc/proftpd/modules.conf para "
+#~ "'hacks' futuros. Esse ficheiro deve ser inclu�do pelo ficheiro principal "
+#~ "de configura��o."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "Correr o proftpd a partir do inetd ou em modo solit�rio?"
+
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Por outro lado, se o seu 'site' de ftp � visitado frequentemente, deve "
+#~ "correr o proftpd como um servidor solit�rio (porque com o inetd, sempre "
+#~ "que uma nova liga��o � aberta, � corrido um novo processo)."
--- proftpd-dfsg-1.3.3a.orig/debian/po/ru.po
+++ proftpd-dfsg-1.3.3a/debian/po/ru.po
@@ -0,0 +1,101 @@
+# translation of ru.po to Russian
+# This file is distributed under the same license as the PACKAGE package.
+#    Translators, please read /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Yuriy Talakan' <yt@amur.elektra.ru>, 2006.
+# Yuri Kozlov <kozlov.y@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.3.1-3\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-26 21:56+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "через inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "самостоятельно"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Запуск proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd может быть запущен либо как сервис через inetd, либо как "
+"самостоятельный сервер. Каждый из способов имеет свои преимущества. Если к "
+"ftp-серверу в день подключаются лишь несколько человек, то лучше запускать "
+"ProFTPd через inetd, чтобы сэкономить ресурсы."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"С другой стороны, если подключений много, то вы наоборот, должны запускать "
+"ProFTPd как самостоятельный сервер, чтобы избежать создания нового процесса "
+"при каждом входящем соединении."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Предупреждение: в синтаксисе настройки ProFTPd есть изменения."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Вы обновляетесь с версии пред-1.3.0. Возможно вам нужно проверить "
+#~ "имеющиеся настройки на совместимость с текущей версией. Обратитесь к "
+#~ "документации из пакета proftpd-doc и исправьте файл /etc/proftpd/proftpd."
+#~ "conf так как нужно."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "К сожалению, полная автоматическая конвертация невозможна, кроме "
+#~ "некоторых элементарных вещей. Вы должны сделать это сами. ProFTPd не "
+#~ "сможет использовать получившиеся настройки и не сможет перезапуститься "
+#~ "после обновления."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Обратите внимание, что начиная с версии 1.3.0, используются динамические "
+#~ "модули и настройки надо разделить, оставив инструкции по загрузке модулей "
+#~ "в новом настроечном файле /etc/proftpd/modules.conf для будущих "
+#~ "изменений. Этот файл надо подключить в главном настроечном файле."
--- proftpd-dfsg-1.3.3a.orig/debian/po/sk.po
+++ proftpd-dfsg-1.3.3a/debian/po/sk.po
@@ -0,0 +1,102 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg 1.3.0-24\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-12 13:01+0100\n"
+"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "z inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "samostatne"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Spúšťať proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd je možné spúšťať buď ako službu pomocou inetd alebo ako samostatný "
+"server. Každá voľba má svoje výhody. Ak máte iba niekoľko ftp spojení za "
+"deň, je pre vás pravdepodobne lepšie spúšťať ProFTPd pomocou inetd aby ste "
+"šetrili systémové zdroje."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Na druhej strane, pri vyššej premávke by mal byť ProFTPd spustený ako "
+"samostatný server, aby nebolo potrebné spúšťať nový proces pre každé "
+"prichádzajúce spojenie."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Upozornenie na zmeny syntaxe konfigurácie ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Aktualizujete z verzie staršej ako 1.3.0. Pravdepodobne budete musieť "
+#~ "revidovať vašu predchádzajúcu konfiguráciu, aby zodpovedala súčasným "
+#~ "direktívam. Prosím, pozrite si dokumentáciu a návody dostupné v proftpd-"
+#~ "doc a zmeňte /etc/proftpd/proftpd.conf podľa potreby."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Bohužiaľ, je takmer nemožné automaticky previesť vaše nastavenia okrem "
+#~ "niektorých základných vecí. Budete to musieť urobiť sami. Je tiež možné, "
+#~ "že ProFTPd nebude schopný použiť výslednú konfiguráciu a po aktualizácii "
+#~ "sa nereštartuje."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Všimnite si tiež, že počínajúc verziou 1.3.0, sa používajú dynamické "
+#~ "moduly a konfigurácia by mala byť rozdelená. Inštrukcie týkajúce sa "
+#~ "načítania modulov by mali byť v /etc/proftpd/modules.conf a tento súbor "
+#~ "by mal byť zahrnutý (include) v hlavnom konfiguračnom súbore."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "Spúštať proftpd z inetd alebo samostatne?"
+
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Na druhej strane ak je váš ftp server navštevovaný často, mali by ste "
+#~ "radšej proftpd spúšťať ako samostatný server (pretože zakaždým, keď inetd "
+#~ "prijme spojenie sa spustí nový proces)."
--- proftpd-dfsg-1.3.3a.orig/debian/po/sv.po
+++ proftpd-dfsg-1.3.3a/debian/po/sv.po
@@ -0,0 +1,60 @@
+# translation of proftpd-dfsg_1.3.1-9_sv.po to swedish
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Martin Bagge <martin.bagge@bthstudent.se>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg_1.3.1-9_sv\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2008-06-21 11:53+0200\n"
+"Last-Translator: Martin Bagge <martin.bagge@bthstudent.se>\n"
+"Language-Team: swedish <debian-l10n-swedish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "genom inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "ensamstående"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Kör proftd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd kan köras som tjänst genom inetd eller som ensamstående tjänst. De "
+"båda alternativen har olika fördelar och nackdelar. Med ett fåtal FTP-"
+"anslutningar om dagen så är det förmodligen ett bättre val att köra ProFTPd "
+"genom inetd för att spara resurser."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Å andra sidan så bör ProFTPd köras som ensamstående tjänst om du räknar med "
+"högtrafik, då slipper du problem med att det skapas en ny process för varje "
+"inkommande anslutning."
--- proftpd-dfsg-1.3.3a.orig/debian/po/tr.po
+++ proftpd-dfsg-1.3.3a/debian/po/tr.po
@@ -0,0 +1,60 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Mert Dirik <mertdirik@gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: $paket $surum\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2008-06-16 23:21+0200\n"
+"Last-Translator: Mert Dirik <mertdirik@gmail.com>\n"
+"Language-Team: Debian L10n Turkish <debian-l10n-turkish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Turkish\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "inetd'den"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "kendibaşına"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "'proftpd'yi çalıştır:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd bir inetd hizmeti ya da kendibaşına bir sunucu olarak "
+"çalıştırılabilir. Her iki seçeneğin de kendilerine özgü yararları vardır. "
+"Eğer günde birkaç FTP bağlantısından fazlasını almıyorsanız, ProFTPd'yi "
+"inetd'den çalıştırarak sistem kaynaklarını koruyabilirsiniz."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Öte yandan yüksek bir trafikte, gelen her bağlantıda yeni bir işlem "
+"oluşturmaktan kaçınmak için ProFTPd kendibaşına bir sunucu olarak "
+"çalıştırılmalıdır."
--- proftpd-dfsg-1.3.3a.orig/debian/po/vi.po
+++ proftpd-dfsg-1.3.3a/debian/po/vi.po
@@ -0,0 +1,94 @@
+# Vietnamese translation for ProFTPd.
+# Copyright © 2007 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg 1.3.1-3\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2007-12-22 12:45+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.7b1\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "từ inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "standalone"
+msgstr "độc lập"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Chạy proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"ProFTPd có thể chạy hoặc như dịch vụ từ inetd, hoặc như trình phục vụ độc "
+"lập. Mỗi tùy chọn có lợi riêng. Chỉ có vài kết nối FTP trong mỗi ngày thì "
+"rất có thể nên chạy ProFTPd từ inetd để tiết kiệm tài nguyên."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Mặt khác, khi có nhiều kết nối hơn, ProFTPd nên chạy như trình phục vụ độc "
+"lập, để tránh cần phải tạo một tiến trình mới cho mỗi kết nối gửi đến."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Cảnh báo về cú pháp bị thay đổi trong cấu hình ProFTPd."
+
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Bạn đang nâng cấp từ một phiên bản trước 1.3.0. Rất có thể là bạn cần "
+#~ "phải xem lại cấu hình trước, để tuân theo các chỉ thị hiện thời. Xem tài "
+#~ "liệu hướng dẫn có sẵn trong gói « proftpd-doc » và sửa đổi tập tin cấu "
+#~ "hình « /etc/proftpd/proftpd.conf » như cần thiết."
+
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Tiếc là hiện thời gần không thể chuyển đổi thiết lập một cách tự động, "
+#~ "trừ đối với một số vấn đề cơ bản. Vậy bạn cần phải tự làm. ProFTPd cũng "
+#~ "có lẽ không thể sử dụng cấu hình kết quả, và không khởi chạy được sau khi "
+#~ "nâng cấp."
+
+#~ msgid ""
+#~ "Note also that starting from 1.3.0 version, dynamic modules are used and "
+#~ "configuration should be splitted, keeping modules loading instructions "
+#~ "within the new /etc/proftpd/modules.conf configuration file for future "
+#~ "hacks. That file should be included by the main configuration file."
+#~ msgstr ""
+#~ "Cũng ghi chú rằng kể từ phiên bản 1.3.0, các mô-đun động được dùng và cấu "
+#~ "hình nên bị chia ra, giữ các mô-đun nạp câu lệnh bên trong tập tin cấu "
+#~ "hình « etc/proftpd/modules.conf » mới để sửa đổi sau. Tập tin đó nên được "
+#~ "tập tin cấu hình chính bao gồm."
--- proftpd-dfsg-1.3.3a.orig/debian/po/POTFILES.in
+++ proftpd-dfsg-1.3.3a/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] proftpd-basic.templates
--- proftpd-dfsg-1.3.3a.orig/debian/po/pt_BR.po
+++ proftpd-dfsg-1.3.3a/debian/po/pt_BR.po
@@ -0,0 +1,177 @@
+# Debconf translations for proftpd-dfsg.
+# Copyright (C) 2010 THE proftpd-dfsg'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the proftpd-dfsg package.
+# Flamarion Jorge <jorge.flamarion@gmail.com>, 2010.
+#
+#    Translators, please read /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: proftpd-dfsg\n"
+"Report-Msgid-Bugs-To: proftpd-dfsg@packages.debian.org\n"
+"POT-Creation-Date: 2009-09-01 22:31+0200\n"
+"PO-Revision-Date: 2010-09-04 13:47-0300\n"
+"Last-Translator: Flamarion Jorge <jorge.flamarion@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
+"org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"pt_BR utf-8\n"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+msgid "from inetd"
+msgstr "a partir do inetd"
+
+#. Type: select
+#. Choices
+#: ../proftpd-basic.templates:2001
+#| msgid "inetd, standalone"
+msgid "standalone"
+msgstr "autônomo"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid "Run proftpd:"
+msgstr "Executar o proftpd:"
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"ProFTPd can be run either as a service from inetd, or as a standalone "
+"server. Each choice has its own benefits. With only a few FTP connections "
+"per day, it is probably better to run ProFTPd from inetd in order to save "
+"resources."
+msgstr ""
+"O ProFTPd pode ser executado como um serviço a partir do inetd ou como um "
+"servidor autônomo. Cada escolha tem seus próprios benefícios. Com apenas "
+"algumas conexões FTP por dia, provavelmente é melhor executar o ProFTPd a "
+"partir do inetd para economizar recursos."
+
+#. Type: select
+#. Description
+#: ../proftpd-basic.templates:2002
+msgid ""
+"On the other hand, with higher traffic, ProFTPd should run as a standalone "
+"server to avoid spawning a new process for each incoming connection."
+msgstr ""
+"Por outro lado, com um alto tráfego, o ProFTPd deveria executar como um "
+"servidor autônomo para evitar a criação de um novo processo para cada "
+"conexão de entrada."
+
+#~ msgid "Warning on syntax changes in ProFTPd configuration."
+#~ msgstr "Aviso sobre a sintaxe de mudanas na configurao do ProFTPd."
+
+#, fuzzy
+#~ msgid ""
+#~ "You are upgrading from a pre-1.3.0 version. Probably you will need to "
+#~ "revise your previous configuration to be compliant with current "
+#~ "directives. Please, consult documentation and how-tos available in "
+#~ "proftpd-doc and change /etc/proftpd/proftpd.conf as needed."
+#~ msgstr ""
+#~ "Voc est atualizando a aprtir de verso anterior  verso 1.2.8. "
+#~ "Provavelmente voc precisar revisar sua confgiurao anterior para que a "
+#~ "mesma seja compatvel com as diretivas atuais. Por favor, consulte a "
+#~ "documentao disponvel no pacote proftpd-doc e modifique o arquivo /etc/"
+#~ "proftpd.conf de acordo com a mesma."
+
+#, fuzzy
+#~ msgid ""
+#~ "Unfortunately, it is nearly impossible currently to convert your setup "
+#~ "automatically, but for some basic issues. You will have to do  it "
+#~ "yourself. ProFTPd could also be unable to use the resulting  "
+#~ "configuration, and it would not restart after upgrading."
+#~ msgstr ""
+#~ "Infelizmente,  quase impossvel converter sua configurao antiga "
+#~ "automaticamente, salvo alguns detalhes elementares. Voce ter que fazer "
+#~ "isso manualmente. O ProFTPd poder tambm no ser capaz de usar a configurao "
+#~ "resultante e no conseguir reiniciar aps a atualizao."
+
+#~ msgid "Run proftpd from inetd or standalone?"
+#~ msgstr "Executar o proftpd em modo inetd ou standalone ?"
+
+#, fuzzy
+#~ msgid ""
+#~ "On the other hand, if your ftp site is visited frequently, you should "
+#~ "rather run proftp as a standalone server (because with inetd, each time a "
+#~ "connection is opened, a new process is spawned)."
+#~ msgstr ""
+#~ "Por outro lado, caso seu site ftp seja visitado frequentemente, o inetd "
+#~ "no  uma boa escolha, devido a um novo processo ser iniciado a cada vez "
+#~ "que uma conexo  iniciada."
+
+#~ msgid "Enable anonymous access?"
+#~ msgstr "Habilitar acesso annimo?"
+
+#~ msgid ""
+#~ "Enabling anonymous access grants access to your ftp site by any user, "
+#~ "without being a system user.  This is probably not a good idea for "
+#~ "paranoid sysadmins.  Only enable if you know what it does."
+#~ msgstr ""
+#~ "Habilitar acesso annimo garante que qualquer usurio, mesmo no sendo "
+#~ "usurio do sistema, acesse seu site ftp. Essa provavelmente no  uma boa "
+#~ "para administradores de sistemas paranicos. Somente habilite essa opo se "
+#~ "voce realmente sabe o que isso pode acarretar."
+
+#~ msgid "Using SQL with ProFTPd."
+#~ msgstr "Usando SQL com ProFTPd."
+
+#~ msgid ""
+#~ "I found some old sql directives in /etc/proftpd.conf.  This release of "
+#~ "proftpd doesn't know many of the old sql-related configuration options.  "
+#~ "Many new ones were introduced, and old ones aren't recognized."
+#~ msgstr ""
+#~ "Algumas diretrizes SQL antigas foram encontradas em /etc/proftpd.conf. "
+#~ "Essa verso do proftpd no reconhece muitas das opes de configurao antigas "
+#~ "relacionadas  SQL. Muitas novas diretrizes foram includas e antigas opes "
+#~ "no so reconhecidas."
+
+#~ msgid ""
+#~ "Luckily, it is well documented.  Therefore I refer you to the "
+#~ "documentation in /usr/share/doc/proftpd/README.mod_sql.  I will not start "
+#~ "proftpd; do that yourself when you edited the configuration."
+#~ msgstr ""
+#~ "Porm, este processo  bem documentado.  Entretanto  aconselhado a leitura "
+#~ "da documentao presente em /usr/share/doc/proftpd/README.mod_sql. O "
+#~ "proftpd no ser iniciado; faa isso manualmente depois de editar as "
+#~ "configuraes."
+
+#, fuzzy
+#~ msgid "Edit configuration file ${file}?"
+#~ msgstr " Editar arquivo de configurao /etc/proftpd.conf ?"
+
+#, fuzzy
+#~ msgid ""
+#~ "You did not install any debconf-enabled versions of the proftpd yet. This "
+#~ "means that I shall ask you some questions about the way to start proftpd "
+#~ "and anonymous access."
+#~ msgstr ""
+#~ "Nenhuma verso anterior do pacote proftpd com suporte debconf foi "
+#~ "instalada em seu sistema. Isso significa que eu devo lhe fazer algumas "
+#~ "perguntas sobre a maneira de iniciar o proftpd e sobre acesso annimo."
+
+#, fuzzy
+#~ msgid ""
+#~ "However, since you had proftpd installed before, I need to know if it is "
+#~ "ok for me to edit ${file} to actually make those changes.  Only answer "
+#~ "yes if you did not change much.  You will have a chance to review the "
+#~ "changes later on."
+#~ msgstr ""
+#~ "Porm, uma vez que voc possua o proftpd instalado anteriormente,  preciso "
+#~ "saber se voc permite que o arquivo /etc/proftpd.conf seja editado para "
+#~ "relizar algumas mudanas. Somente responda sim se voc no muda muito sua "
+#~ "configurao."
+
+#, fuzzy
+#~ msgid ""
+#~ "If you answer `no' here, I will not ask questions that may require me to "
+#~ "edit the file."
+#~ msgstr ""
+#~ "Caso voc responda `no' aqui, questes que requeiram a edio desse arquivo "
+#~ "no sero perguntadas."
--- proftpd-dfsg-1.3.3a.orig/debian/scripts/dpkg-arch.mk
+++ proftpd-dfsg-1.3.3a/debian/scripts/dpkg-arch.mk
@@ -0,0 +1,7 @@
+# see dpkg-architecture(8)
+DEB_BUILD_ARCH		:= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+DEB_BUILD_GNU_CPU	:= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU)
+DEB_BUILD_GNU_SYSTEM	:= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM)
+DEB_BUILD_GNU_TYPE	:= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_GNU_SYSTEM	:= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
+DEB_HOST_GNU_TYPE	:= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3521.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3521.dpatch
@@ -0,0 +1,27 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3521.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/netio.c proftpd-dfsg/src/netio.c
+--- proftpd-dfsg~/src/netio.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/src/netio.c	2010-11-03 10:50:38.000000000 +0100
+@@ -1100,6 +1100,16 @@
+         }
+       }
+ 
++      /* In the situation where the previous byte was an IAC, we wrote IAC
++       * into the output buffer, and decremented buflen (size of the output
++       * buffer remaining).  Thus we need to check here if buflen is zero,
++       * before trying to decrement buflen again (and possibly underflowing
++       * the buflen size_t data type).
++       */
++      if (buflen == 0) {
++        break;
++      }
++
+       *bp++ = cp;
+       buflen--;
+     }
--- proftpd-dfsg-1.3.3a.orig/debian/patches/ftpstats.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/ftpstats.dpatch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## ftpstats.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad trunk~/contrib/xferstats.holger-preiss trunk/contrib/xferstats.holger-preiss
+--- trunk~/contrib/xferstats.holger-preiss	2008-03-28 14:12:28.000000000 +0100
++++ trunk/contrib/xferstats.holger-preiss	2008-03-28 14:14:34.000000000 +0100
+@@ -49,7 +49,7 @@
+ # $mydom2 = "org";
+ 
+ # edit the next line to customize for your default log file
+-$usage_file = "/var/log/xferlog";
++$usage_file = "/var/log/proftpd/xferlog";
+ 
+ # Edit the following lines for default report settings.
+ # Entries defined here will be over-ridden by the command line.
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3624.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3624.dpatch
@@ -0,0 +1,53 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3624.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' git~/contrib/mod_tls.c git/contrib/mod_tls.c
+--- git~/contrib/mod_tls.c	2011-11-13 23:10:14.000000000 +0100
++++ git/contrib/mod_tls.c	2011-11-13 23:11:37.000000000 +0100
+@@ -61,7 +61,7 @@
+ # include <sys/mman.h>
+ #endif
+ 
+-#define MOD_TLS_VERSION		"mod_tls/2.4.1"
++#define MOD_TLS_VERSION		"mod_tls/2.4.2"
+ 
+ /* Make sure the version of proftpd is as necessary. */
+ #if PROFTPD_VERSION_NUMBER < 0x0001021001 
+@@ -2758,11 +2758,33 @@
+ 
+   /* Stash the SSL object in the pointers of the correct NetIO streams. */
+   if (conn == session.c) {
++    pr_buffer_t *strm_buf;
++
+     ctrl_ssl = ssl;
+     tls_ctrl_rd_nstrm->strm_data = tls_ctrl_wr_nstrm->strm_data = (void *) ssl;
+ 
++    /* Clear any data from the NetIO stream buffers which may have been read
++     * in before the SSL/TLS handshake occurred (Bug#3624).
++     */
++    strm_buf = tls_ctrl_rd_nstrm->strm_buf;
++    if (strm_buf != NULL) {
++      strm_buf->current = NULL;
++      strm_buf->remaining = strm_buf->buflen;
++    }
++
+   } else if (conn == session.d) {
++    pr_buffer_t *strm_buf;
++
+     tls_data_rd_nstrm->strm_data = tls_data_wr_nstrm->strm_data = (void *) ssl;
++
++    /* Clear any data from the NetIO stream buffers which may have been read
++     * in before the SSL/TLS handshake occurred (Bug#3624).
++     */
++    strm_buf = tls_data_rd_nstrm->strm_buf;
++    if (strm_buf != NULL) {
++      strm_buf->current = NULL;
++      strm_buf->remaining = strm_buf->buflen;
++    }
+   }
+ 
+ #if OPENSSL_VERSION_NUMBER == 0x009080cfL
--- proftpd-dfsg-1.3.3a.orig/debian/patches/quotatab_modules.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/quotatab_modules.dpatch
@@ -0,0 +1,708 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## quotatab_modules.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Adds some missing stuff for quotatab modules.
+
+@DPATCH@
+diff -urNad proftpd-1.2.10+1.3.0rc5~/README.mod_quotatab proftpd-1.2.10+1.3.0rc5/README.mod_quotatab
+--- proftpd-1.2.10+1.3.0rc5~/README.mod_quotatab	1970-01-01 01:00:00.000000000 +0100
++++ proftpd-1.2.10+1.3.0rc5/README.mod_quotatab	2006-03-22 22:55:51.000000000 +0100
+@@ -0,0 +1,354 @@
++  ------------------------------------------------------------------------
++
++                         ProFTPD module mod_quotatab
++
++  ------------------------------------------------------------------------
++
++This module is contained in the mod_quotatab.c, mod_quotatab.h, and in its
++submodule source files, for ProFTPD 1.2, found here, and is not compiled by
++default. Installation instructions can be found here.
++
++This module is designed to impose quotas, both byte- and file-based, on FTP
++accounts, based on user, group, class, or for all accounts. It is based on
++the ideas contained in Eric Estabrook's mod_quota; however, this module has
++been written from scratch to implement quotas in a very different manner. A
++more detailed explanation of the usage of this module follows the directive
++explanations.
++
++The most current version of mod_quotatab's submodules supports storage of
++quota table information in various formats:
++
++   * mod_quotatab_file for file-based quota tables
++   * mod_quotatab_sql for SQL-based quota tables
++
++The most current version of mod_quotatab can be found at:
++
++  http://www.castaglia.org/proftpd/
++
++The eventual goal of this module is to make use of the Confstream API, an
++experimental API described here. This API would make support for tables in
++other formats (e.g. LDAP, CDB, DBM) much easier to implement.
++
++Author
++
++Please contact TJ Saunders <tj at castaglia.org> with any questions,
++concerns, or suggestions regarding this module.
++
++Thanks
++
++2002-01-12: Thanks to SupaFly <ntlfy at ntlworld.com> for helping debug an
++issue with a missing tally table.
++
++2002-03-30: Thanks to Kai Langheim <kl at q-nic.de> for pointing out several
++small bugs affecting users with no quota entries.
++
++Directives
++
++   * QuotaDirectoryTally
++   * QuotaDisplayUnits
++   * QuotaEngine
++   * QuotaLimitTable
++   * QuotaLog
++   * QuotaShowQuotas
++   * QuotaTallyTable
++
++SITE Commands
++
++   * SITE QUOTA
++
++  ------------------------------------------------------------------------
++
++QuotaDirectoryTally
++
++Syntax: QuotaDirectoryTally on|off
++Default: QuotaDirectoryTally off
++Context: server config, <VirtualHost>, <Global>
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++The QuotaDirectoryTally directive configures mod_quotatab to take directory
++operations (e.g. creating a directory, removing a directory) into account
++when tallying.
++
++  ------------------------------------------------------------------------
++
++QuotaDisplayUnits
++
++Syntax: QuotaDisplayUnits "b"|"Kb"|"Mb"|"Gb"
++Default: None
++Context: server config, <VirtualHost>, <Global>
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++This directive configures how the user's current byte quota values will be
++reported to them. Note that this directive does not affect how the quota
++values are stored in the quota table, only their presentation to the user.
++
++"b" causes quotas to be displayed in bytes; "Kb", kilobytes; "Mb",
++megabytes; and "Gb", gigabytes.
++
++Example:
++
++  # display quota information in megabytes
++  QuotaDisplayUnits Mb
++
++  ------------------------------------------------------------------------
++
++QuotaEngine
++
++Syntax: QuotaEngine on|off
++Default: None
++Context: server config, <VirtualHost>, <Global>
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++The QuotaEngine directive enables or disables the module's runtime quota
++engine. If it is set to off this module does no runtime processing at all.
++Use this directive to disable the module instead of commenting out all
++mod_quotatab directives.
++
++  ------------------------------------------------------------------------
++
++QuotaLimitTable
++
++Syntax: QuotaLimitTable source-type:source-info
++Default: None
++Context:
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++This directive configures the information necessary for the module to locate
++and use the table containing the quota limit, the maximum number of bytes
++and/or files defined for use by specific users, groups, classes, etc, and is
++required for mod_quotatab to function.
++
++Please consult the relevant submodule documentation for details on that
++module's syntax for this configuration directive.
++
++See also: QuotaTallyTable
++
++  ------------------------------------------------------------------------
++
++QuotaLog
++
++Syntax: QuotaLog file|"none"
++Default: None
++Context:
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++The QuotaLog directive is used to a specify a log file for mod_quotatab
++reporting, and can be done a per-server basis. The file parameter must be
++the full path to the file to use for logging. Note that this path must not
++be to a world-writeable directory and, unless AllowLogSymlinks is explicitly
++set to on (generally a bad idea), the path must not be a symbolic link.
++
++If file is "none", no logging will be done at all; this setting can be used
++to override a QuotaLog setting inherited from a <Global> context.
++
++  ------------------------------------------------------------------------
++
++QuotaShowQuotas
++
++Syntax: QuotaShowQuotas on|off
++Default: on
++Context:
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++The QuotaShowQuotas directive can be used to enable/disable mod_quotatab's
++response to a SITE QUOTA request. For some sites, revealing the current
++quota information may be considered an unnecessary, perhaps even
++detrimental, information leak; other sites may consider this a definite
++feature.
++
++  ------------------------------------------------------------------------
++
++QuotaTallyTable
++
++Syntax: QuotaTallyTable source-type:source-info
++Default: None
++Context:
++Module: mod_quotatab
++Compatibility: 1.2.5rc2 and later
++
++This directive configures the information necessary for the module to locate
++and use the table containing the quota tally, or the current byte/file
++counts for users, groups, classes, etc, and is required for mod_quotatab to
++function.
++
++Please consult the relevant submodule documentation for details on that
++module's syntax for this configuration directive.
++
++See also: QuotaLimitTable
++
++  ------------------------------------------------------------------------
++
++SITE QUOTA
++
++The SITE QUOTA command will display the quota, both the limit and the
++current tally, to the client. This SITE command accepts no parameters, and
++can only be used once the client has successfully logged in.
++
++Example:
++
++ftp> quote SITE QUOTA
++200-The current quota for this session are [current/limit]:
++ Name: tj
++ Quota Type: User
++ Per Session: True
++ Limit Type: Hard
++   Uploaded Kb:         unlimited
++   Downloaded Kb:       unlimited
++   Transferred Kb:      unlimited
++   Uploaded files:      1/1
++   Downloaded files:    unlimited
++   Transferred files:   unlimited
++200 Please contact root@familiar.castaglia.org if these entries are inaccurate
++ftp>
++
++Use of this SITE command can be controlled via <Limit>, e.g.:
++
++  <Limit SITE_QUOTA>
++    AllowUser tj
++    DenyAll
++  </Limit>
++
++Like many SITE commands, the FTP client will probably not recognize or
++support SITE QUOTA. Hopefully the client does have the ability to send
++arbitrary commands to the server, as the common ftp(1) client does via
++quote.
++
++The email address displayed in the SITE QUOTA output can be configured via
++the ServerAdmin directive.
++
++  ------------------------------------------------------------------------
++
++Usage
++
++To use mod_quotatab's functionality, you must first define the tables that
++together contain the quota information.
++
++There are two such quota tables: one table for providing quota information
++about the absolute byte/file limits for users, groups, and classes, and a
++separate table for maintaining the current tally, or number of bytes/files
++used, for those same users, groups, and classes. This separation of
++information allows for a configuration such as using LDAP to efficiently
++distribute the limit information, and local SQL databases for efficiently
++storing the tally. The limit table is considered a read-only table, and is
++only accessed at the start of session in order to determine what the session
++limits should be. The tally table is accessed in read-write mode, and is
++updated after the relevant FTP commands have been processed.
++
++This module was not explicitly designed for easy interaction with other
++applications, but rather for other criteria:
++
++   * efficient lookups and updates
++   * no need for ~/.quota files
++   * no need of requirement for root privileges to access quotas
++   * easy support for an abstraction layer for storing quota information in
++     other formats
++   * support for a SITE command that allows users to view their current
++     quotas
++
++This module maintains its quotas based solely on FTP commands - it does not
++enforce quotas based on files that may have been added, deleted, or moved
++via shell access or any mechanism other than through the proftpd server.
++
++When a client logs in, assuming QuotaEngine is on, mod_quotatab will check
++the limit table for the record most appropriate for that client. This check
++first examines the table for records of type user that match the client's
++login name. If no such matching records are found, it checks for records of
++type group that match any of the user's groups (both primary and
++supplemental). Failing that, it will check for records of type class that
++belong to the class (if enabled) from which the client is connecting. If
++still no matching records are found, the table will be searched for a record
++of type all; if absent, the module will assume that no quotas apply to the
++client.
++
++Once the limits for the current session have been established, mod_quotatab
++examines the tally table to see what the current numbers in the matching
++tally record are. Should the client have an applicable limit record but no
++matching tally record, the module will initialize a new record in the tally
++table.
++
++For the purposes of tracking the number of uploaded bytes/files, the tally
++will be adjusted accordingly upon use of the following FTP commands: APPE
++(bytes only), DELE, STOR, and STOU. The number of bytes used for the
++calculation will be determined from the difference in file size of the file
++in question.
++
++For the purposes of tracking the number of downloaded bytes/files, the tally
++will be adjusted accordingly upon use of the following FTP commands: RETR.
++The number of bytes used for the calculation will be determined from the
++number of bytes sent to the client.
++
++For the purposes of tracking the number of transferred bytes/files, the
++tally will be adjusted accordingly upon use of the following FTP commands:
++APPE (bytes only), DELE, RETR, STOR, and STOU. The number of bytes used for
++the calculation will be determined from the number of bytes sent to the
++client. This type of limit allows for byte/file limits to be set that
++encompass both uploads and downloads.
++
++Note that if all three types of quotas are set (upload, download, and
++transfer), any quota reached will cause denial of FTP commands. This means
++that a high upload quota will never be reached if a low transfer quota is in
++effect. This holds true for bytes and files quota. For example, if a user
++has a limited number of both bytes and files to be uploaded in their limit
++record, the first limit reached (bytes or files) is the effective limit.
++Caveat emptor.
++
++For any quota limit that is set as "unlimited", mod_quotatab will not keep
++the tally. Many site administrators might want this ability, for accounting
++purposes. However, that ability is outside of the intended design of this
++module; other logging modules are much better suited for accounting purposes
++(e.g. mod_sql's SQLLog directive).
++
++If any developers wish to make use of mod_quotatab's quota information, or
++to develop a new submodule, there is developer documentation available here.
++
++  ------------------------------------------------------------------------
++
++Installation
++
++To install mod_quotatab, follow these instructions. After unpacking the
++tarball, copy the mod_quotatab.c, mod_quotatab.h, mod_quotatab_file.c, and
++mod_quotatab_sql.c files into:
++
++  proftpd-dir/contrib/
++
++after unpacking the latest proftpd-1.2 source code. Follow the usual steps
++for using third-party modules in proftpd:
++
++  ./configure --with-modules=quotatab-modules
++  make
++  make install
++
++where quotatab-modules will depend on the types of quota tables you wish to
++support.
++
++For file-based quota tables, include the mod_quotatab_file submodule, e.g.:
++
++  mod_quotatab:mod_quotatab_file
++
++For SQL-based quota tables, include the mod_quotatab_sql submodule, e.g.:
++
++  mod_quotatab:mod_quotatab_sql
++
++And, if you wish to support file- and SQL-based quota tables:
++
++  mod_quotatab:mod_quotatab_file:mod_quotatab_sql
++
++Note that SQL tables require that a correct installation of mod_sql (and any
++of its backend modules) also be used. Consult the mod_sql documentation for
++installation instructions for that module.
++
++  ------------------------------------------------------------------------
++
++Author: $Author: frankie $
++Last Updated: $Date: 2003/11/17 15:30:12 $
++
++  ------------------------------------------------------------------------
++� Copyright 2000-2002 TJ Saunders
++All Rights Reserved
++  ------------------------------------------------------------------------
+diff -urNad proftpd-1.2.10+1.3.0rc5~/diskuse proftpd-1.2.10+1.3.0rc5/diskuse
+--- proftpd-1.2.10+1.3.0rc5~/diskuse	1970-01-01 01:00:00.000000000 +0100
++++ proftpd-1.2.10+1.3.0rc5/diskuse	2006-03-22 22:55:51.000000000 +0100
+@@ -0,0 +1,232 @@
++#!/usr/bin/perl
++# -------------------------------------------------------------------------
++# Copyright (C) 2002 TJ Saunders <tj@castaglia.org>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
++#
++#  $Id: 14.quotatab_modules.diff,v 1.4 2003/11/17 15:30:12 frankie Exp $
++#
++# -------------------------------------------------------------------------
++
++use strict;
++
++use Fcntl;
++use File::Basename qw(basename);
++use Getopt::Long;
++
++my $program = basename($0);
++my %opts = {};
++
++GetOptions(\%opts, 'G', 'K', 'M', 'dir-tally', 'group=s', 'help',
++  'user=s', 'verbose');
++
++my $verbose = 0;
++my $user_id = -1;
++my $group_id = -1;
++
++usage() if defined($opts{'help'});
++
++if (length(@ARGV) < 1) {
++  print STDOUT "$program: wrong number of parameters\n";
++  exit 0;
++}
++
++unless (defined($opts{'user'}) || defined($opts{'group'})) {
++  print STDOUT "$program: missing required --group or --user option\n";
++  exit 0;
++}
++
++if (defined($opts{'user'})) {
++  $user_id = getpwnam($opts{'user'}) or
++    die "$program: no such user: $opts{'user'}\n";
++}
++
++if (defined($opts{'group'})) {
++  $group_id = getgrnam($opts{'group'}) or
++    die "$program: no such group: $opts{'group'}\n";
++}
++
++$verbose = 1 if (defined($opts{'verbose'}));
++
++my ($total_bytes, $total_files);
++
++foreach my $dir (@ARGV) {
++  my ($bytes, $files) = get_dir_disk_use($dir);
++
++  $total_bytes += $bytes;
++  $total_files += $files;
++}
++
++my $byte_units = "bytes";
++
++if (defined($opts{'K'})) {
++  $total_bytes /= 1024;
++  $byte_units = "KB";
++
++} elsif (defined($opts{'M'})) {
++  $total_bytes /= (1024 * 1024);
++  $byte_units = "MB";
++
++} elsif (defined($opts{'G'})) {
++  $total_bytes /= (1024 * 1024 * 1024);
++  $byte_units = "GB";
++}
++
++my $file_units = "files";
++$file_units = "file" if ($total_files == 1);
++
++print STDOUT "$program: $total_bytes $byte_units in $total_files $file_units\n";
++
++# done
++exit 0;
++
++# --------------------------------------------------------------------------
++sub get_dir_disk_use {
++  my ($dir) = @_;
++
++  print STDOUT "$program: examining directory '$dir'\n" if $verbose;
++
++  my @subdirs = ();
++  my $nbytes = 0;
++  my $nfiles = 0;
++
++  unless (opendir(DIR, $dir)) {
++    print STDERR "$program: unable to open directory '$dir': $!\n";
++    return (0, 0);
++  }
++
++  my @files = readdir(DIR);
++  close(DIR);
++
++  foreach my $file (@files) {
++    my ($mode, $uid, $gid, $size) = (lstat("$dir/$file"))[2, 4, 5, 7];
++
++    # Is this entry a regular file, or a directory?
++    unless (-f "$dir/$file" || (-l "$dir/$file" && !-f "$dir/$file") || -d "$dir/$file") {
++      print STDOUT "$program: skipping '$dir/$file': not a file or directory\n" if $verbose;
++      next;
++    }
++
++    # Does this file match the given user/group ownership?
++    if ($user_id != -1 && $group_id != -1) {
++
++      if ($uid == $user_id && $gid == $group_id) {
++
++        if (defined($opts{'dir-tally'}) && $file eq ".") {
++          $nbytes += $size;
++          $nfiles++;
++ 
++        } elsif (! -d "$dir/$file") {
++          $nbytes += $size;
++          $nfiles++;
++        }
++
++      } else {
++        print STDOUT "$program: '$file' does not match UID $user_id, GID $group_id\n" if $verbose;
++      }
++
++    } elsif ($user_id != -1) {
++
++      if ($uid == $user_id) {
++
++        if (defined($opts{'dir-tally'}) && $file eq ".") {
++          $nbytes += $size;
++          $nfiles++;
++
++        } elsif (! -d "$dir/$file") {
++          $nbytes += $size;
++          $nfiles++;
++        }
++
++      } else {
++        print STDOUT "$program: '$file' does not match UID $user_id\n" if $verbose;
++      }
++
++    } elsif ($group_id != -1) {
++
++      if ($gid == $group_id) {
++
++        if (defined($opts{'dir-tally'}) && $file eq ".") {
++          $nbytes += $size;
++          $nfiles++;
++
++        } elsif (! -d "$dir/$file") {
++          $nbytes += $size;
++          $nfiles++;
++        }
++
++      } else {
++        print STDOUT "$program: '$file' does not match GID $group_id\n" if $verbose;
++      }
++    }
++
++    # Is this entry a directory?  If so, add it to the subdir list.
++    if (-d "$dir/$file") {
++
++      # Skip dot directories
++      push(@subdirs, "$dir/$file") unless ($file eq "." || $file eq "..");
++    }
++  }
++
++  # Now, recurse through the directory's subdirectories
++  foreach my $subdir (@subdirs) {
++    my ($bytecount, $filecount) = get_dir_disk_use($subdir);
++    $nbytes += $bytecount;
++    $nfiles += $filecount;
++  }
++
++  return ($nbytes, $nfiles);
++}
++
++# --------------------------------------------------------------------------
++sub usage {
++
++  print STDOUT <<END_OF_USAGE;
++
++usage: $program [options] dir1 dir2 ... dirN
++
++ $program calculates the amount of disk space used underneath the given
++ directory (or directories).  Either a --group or a --user option is required.
++ If both are used, only files whose ownership matches both the given name and
++ group will be added to the disk usage sum.
++
++ Options:
++
++  --G          Display the number of bytes in units of gigabytes.  The default
++               number is in bytes.
++
++  --K          Display the number of bytes in units of kilobytes.  The default
++               number is in bytes.
++
++  --M          Display the number of bytes in units of megabytes.  The default
++               number is in bytes.
++
++  --dir-tally  Count the size of directories toward the disk usage sum.  The
++               default is to consider regular files only.
++
++  --group      Count files owned by this group in the disk usage sum.
++
++  --help       Display this message.
++
++  --user       Count files owned by this user in the disk usage sum.
++
++  --verbose    Display diagnostic output while $program is running.
++
++END_OF_USAGE
++
++  exit 0;
++}
++
++# --------------------------------------------------------------------------
+diff -urNad proftpd-1.2.10+1.3.0rc5~/diskuse.html proftpd-1.2.10+1.3.0rc5/diskuse.html
+--- proftpd-1.2.10+1.3.0rc5~/diskuse.html	1970-01-01 01:00:00.000000000 +0100
++++ proftpd-1.2.10+1.3.0rc5/diskuse.html	2006-03-22 22:55:51.000000000 +0100
+@@ -0,0 +1,103 @@
++<!-- $Id: 14.quotatab_modules.diff,v 1.4 2003/11/17 15:30:12 frankie Exp $ -->
++<!-- $Source: /cvsroot/pkg-proftpd/debian/patches/14.quotatab_modules.diff,v $ -->
++
++<html>
++<head>
++<title>diskuse: tool for ProFTPD mod_quotatab</title>
++</head>
++
++<body bgcolor=white>
++
++<hr><br>
++<center>
++<h2><b><code>diskuse</code>: tool for ProFTPD module <code>mod_quotatab</code></b></h2>
++</center>
++<hr><br>
++
++This program is distributed with the
++<a href="./mod_quotatab.html"><code>mod_quotatab</code></a> module for
++ProFTPD 1.2.  It is used to calculate the amount of disk space currently
++used by a given user and/or group.
++
++<p>
++The most current version of <code>diskuse</code> can be found at:
++<pre>
++  <a href="http://www.castaglia.org/proftpd/">http://www.castaglia.org/proftpd/</a>
++</pre>
++
++<h2>Author</h2>
++<p>
++Please contact TJ Saunders &lt;tj <i>at</i> castaglia.org&gt; with any
++questions, concerns, or suggestions regarding this program.
++
++<p>
++<hr><br>
++<h2><a name="Usage">Usage</a></h2>
++The following describes the common usage of the <code>diskuse</code> tool.
++The options supported are described in more detail
++<a href="#Options">later</a>.
++
++<p>
++Usage of this tool is fairly straightforward: choose the directory (or
++directories) to scan, and the user or group for whom you wish to calculate
++disk usage:
++<pre>
++  diskuse /home /usr /tmp --user=bob
++</pre>
++The <code>--K</code>, <code>--M</code>, and <code>--G</code> options can be
++used to display the disk usage calculated in kilobytes, megabytes, or
++gigabytes, respectively.
++
++<p>
++<hr><br>
++<h2><a name="Options">Options</a></h2>
++The following is the output from running <code>diskuse --help</code>:
++<pre>
++usage: diskuse [options] dir1 dir2 ... dirN
++
++ diskuse calculates the amount of disk space used underneath the given
++ directory (or directories).  Either a --group or a --user option is required.
++ If both are used, only files whose ownership matches both the given name and
++ group will be added to the disk usage sum.
++
++ Options:
++
++  --G          Display the number of bytes in units of gigabytes.  The default
++               number is in bytes.
++
++  --K          Display the number of bytes in units of kilobytes.  The default
++               number is in bytes.
++
++  --M          Display the number of bytes in units of megabytes.  The default
++               number is in bytes.
++
++  --dir-tally  Count the size of directories toward the disk usage sum.  The
++               default is to consider regular files only.
++
++  --group      Count files owned by this group in the disk usage sum.
++
++  --help       Display this message.
++
++  --user       Count files owned by this user in the disk usage sum.
++
++  --verbose    Display diagnostic output while diskuse is running.
++</pre>
++
++<p>
++<hr><br>
++
++Author: <i>$Author: frankie $</i><br>
++Last Updated: <i>$Date: 2003/11/17 15:30:12 $</i><br>
++
++<br><hr>
++
++<font size=2><b><i>
++&copy; Copyright 2000-2002 TJ Saunders<br>
++ All Rights Reserved<br>
++</i></b></font>
++
++<hr><br>
++
++</body>
++</html>
++
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3481.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3481.dpatch
@@ -0,0 +1,24 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3481.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sftp/fxp.c proftpd-dfsg/contrib/mod_sftp/fxp.c
+--- proftpd-dfsg~/contrib/mod_sftp/fxp.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/contrib/mod_sftp/fxp.c	2010-09-14 10:45:27.000000000 +0200
+@@ -6581,8 +6581,12 @@
+ 
+   /* Change into the directory being read, so that ".", "..", and relative
+    * paths (e.g. for symlinks) get resolved properly.
++   *
++   * We need to dup the string returned by pr_fs_getvwd(), since it returns
++   * a pointer to a static string which is changed by the call we make
++   * to pr_fsio_chdir().
+    */
+-  vwd = pr_fs_getvwd();
++  vwd = pstrdup(fxp->pool, pr_fs_getvwd());
+ 
+   res = pr_fsio_chdir(fxh->dir, FALSE);
+   if (res < 0) {
--- proftpd-dfsg-1.3.3a.orig/debian/patches/ifsess-use-sess-pool.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/ifsess-use-sess-pool.dpatch
@@ -0,0 +1,37 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## ifsess-use-sess-pool.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad trunk~/contrib/mod_ifsession.c trunk/contrib/mod_ifsession.c
+--- trunk~/contrib/mod_ifsession.c	2007-10-09 23:45:04.000000000 +0200
++++ trunk/contrib/mod_ifsession.c	2008-01-25 23:42:14.000000000 +0100
+@@ -322,7 +322,7 @@
+       if (mergein) {
+         pr_log_debug(DEBUG2, MOD_IFSESSION_VERSION
+           ": merging <IfGroup> directives in");
+-        ifsess_dup_set(main_server->pool, main_server->conf, c->subset);
++        ifsess_dup_set(session.pool, main_server->conf, c->subset);
+ 
+         /* Add this config_rec pointer to the list of pointers to be
+          * removed later.
+@@ -387,7 +387,7 @@
+       if (mergein) {
+         pr_log_debug(DEBUG2, MOD_IFSESSION_VERSION
+           ": merging <IfUser> directives in");
+-        ifsess_dup_set(main_server->pool, main_server->conf, c->subset);
++        ifsess_dup_set(session.pool, main_server->conf, c->subset);
+ 
+         /* Add this config_rec pointer to the list of pointers to be
+          * removed later.
+@@ -468,7 +468,7 @@
+       if (mergein) {
+         pr_log_debug(DEBUG2, MOD_IFSESSION_VERSION
+           ": merging <IfClass> directives in");
+-        ifsess_dup_set(main_server->pool, main_server->conf, c->subset);
++        ifsess_dup_set(session.pool, main_server->conf, c->subset);
+ 
+         /* Add this config_rec pointer to the list of pointers to be
+          * removed later.
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3519.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3519.dpatch
@@ -0,0 +1,153 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3519.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_site_misc.c proftpd-dfsg/contrib/mod_site_misc.c
+--- proftpd-dfsg~/contrib/mod_site_misc.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/contrib/mod_site_misc.c	2010-10-22 12:19:52.000000000 +0200
+@@ -81,27 +81,32 @@
+ 
+ static int site_misc_create_path(pool *p, const char *path) {
+   struct stat st;
+-  char *curr_path, *dup_path;
++  char *curr_path, *tmp_path;
+ 
+   pr_fs_clear_cache();
+ 
+   if (pr_fsio_stat(path, &st) == 0)
+     return 0;
+ 
+-  dup_path = pstrdup(p, path);
+-  curr_path = session.cwd;
+- 
+-  while (dup_path &&
+-         *dup_path) {
++  /* The given path should already be canonicalized; we do not need to worry
++   * if it is relative to the current working directory or not.
++   */
++
++  tmp_path = pstrdup(p, path);
++
++  curr_path = "/";
++  while (tmp_path &&
++         *tmp_path) {
+     char *curr_dir;
+ 
+     pr_signals_handle();
+ 
+-    curr_dir = strsep(&dup_path, "/");
++    curr_dir = strsep(&tmp_path, "/");
+     curr_path = pdircat(p, curr_path, curr_dir, NULL);
+-   
+-    if (site_misc_create_dir(curr_path) < 0)
++
++    if (site_misc_create_dir(curr_path) < 0) {
+       return -1;
++    }
+   }
+  
+   return 0;
+@@ -277,10 +282,19 @@
+       return PR_ERROR(cmd);
+     }
+ 
++    path = dir_canonical_path(cmd->tmp_pool, path);
++    if (path == NULL) {
++      pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EINVAL));
++      return PR_ERROR(cmd);
++    }
++
+     cmd_name = cmd->argv[0];
+     cmd->argv[0] = "SITE_MKDIR";
+-    if (!dir_check(cmd->tmp_pool, cmd, G_WRITE, path, NULL)) {
++    if (!dir_check_canon(cmd->tmp_pool, cmd, G_WRITE, path, NULL)) {
+       cmd->argv[0] = cmd_name;
++
++      pr_log_debug(DEBUG4, MOD_SITE_MISC_VERSION
++        ": %s command denied by <Limit>", cmd->argv[0]);
+       pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EPERM));
+       return PR_ERROR(cmd);
+     }
+@@ -324,11 +338,19 @@
+       path = pstrcat(cmd->tmp_pool, path, *path ? " " : "", cmd->argv[i], NULL);
+ 
+     path = pr_fs_decode_path(cmd->tmp_pool, path);
++    path = dir_canonical_path(cmd->tmp_pool, path);
++    if (path == NULL) {
++      pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EINVAL));
++      return PR_ERROR(cmd);
++    }
+ 
+     cmd_name = cmd->argv[0];
+     cmd->argv[0] = "SITE_RMDIR";
+-    if (!dir_check(cmd->tmp_pool, cmd, G_WRITE, path, NULL)) {
++    if (!dir_check_canon(cmd->tmp_pool, cmd, G_WRITE, path, NULL)) {
+       cmd->argv[0] = cmd_name;
++
++      pr_log_debug(DEBUG4, MOD_SITE_MISC_VERSION
++        ": %s command denied by <Limit>", cmd->argv[0]);
+       pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EPERM));
+       return PR_ERROR(cmd);
+     }
+@@ -370,19 +392,35 @@
+     }
+ 
+     src = pr_fs_decode_path(cmd->tmp_pool, cmd->argv[2]);
++    src = dir_canonical_path(cmd->tmp_pool, src);
++    if (src == NULL) {
++      pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EINVAL));
++      return PR_ERROR(cmd);
++    }
+ 
+     cmd_name = cmd->argv[0];
+     cmd->argv[0] = "SITE_SYMLINK";
+-    if (!dir_check(cmd->tmp_pool, cmd, G_READ, src, NULL)) {
++    if (!dir_check_canon(cmd->tmp_pool, cmd, G_READ, src, NULL)) {
+       cmd->argv[0] = cmd_name;
++
++      pr_log_debug(DEBUG4, MOD_SITE_MISC_VERSION
++        ": %s command denied by <Limit>", cmd->argv[0]);
+       pr_response_add_err(R_550, "%s: %s", cmd->argv[2], strerror(EPERM));
+       return PR_ERROR(cmd);
+     }
+ 
+     dst = pr_fs_decode_path(cmd->tmp_pool, cmd->argv[3]);
++    dst = dir_canonical_path(cmd->tmp_pool, dst);
++    if (dst == NULL) {
++      pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EINVAL));
++      return PR_ERROR(cmd);
++    }
+ 
+-    if (!dir_check(cmd->tmp_pool, cmd, G_WRITE, dst, NULL)) {
++    if (!dir_check_canon(cmd->tmp_pool, cmd, G_WRITE, dst, NULL)) {
+       cmd->argv[0] = cmd_name;
++
++      pr_log_debug(DEBUG4, MOD_SITE_MISC_VERSION
++        ": %s command denied by <Limit>", cmd->argv[0]);
+       pr_response_add_err(R_550, "%s: %s", cmd->argv[3], strerror(EPERM));
+       return PR_ERROR(cmd);
+     }
+@@ -463,10 +501,19 @@
+ 
+     path = pr_fs_decode_path(cmd->tmp_pool, path);
+ 
++    path = dir_canonical_path(cmd->tmp_pool, path);
++    if (path == NULL) {
++      pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EINVAL));
++      return PR_ERROR(cmd);
++    }
++
+     cmd_name = cmd->argv[0];
+     cmd->argv[0] = "SITE_UTIME";
+-    if (!dir_check(cmd->tmp_pool, cmd, G_WRITE, path, NULL)) {
++    if (!dir_check_canon(cmd->tmp_pool, cmd, G_WRITE, path, NULL)) {
+       cmd->argv[0] = cmd_name;
++
++      pr_log_debug(DEBUG4, MOD_SITE_MISC_VERSION
++        ": %s command denied by <Limit>", cmd->argv[0]);
+       pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(EPERM));
+       return PR_ERROR(cmd);
+     }
--- proftpd-dfsg-1.3.3a.orig/debian/patches/xferstats.holger-preiss.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/xferstats.holger-preiss.dpatch
@@ -0,0 +1,30 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## xferstats.holger-preiss.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fixes format in xferstats, this patch should go upstream.
+
+@DPATCH@
+diff -urNad trunk~/contrib/xferstats.holger-preiss trunk/contrib/xferstats.holger-preiss
+--- trunk~/contrib/xferstats.holger-preiss	2008-08-08 16:05:07.000000000 +0200
++++ trunk/contrib/xferstats.holger-preiss	2008-09-13 16:10:21.000000000 +0200
+@@ -250,14 +250,14 @@
+ 
+ Total Transfers from each Archive Section (By bytes)
+ 
+-                                                 ---- Percent  Of ----
+-     Archive Section      Files Sent Bytes Sent  Files Sent Bytes Sent
+-------------------------- ---------- ----------- ---------- ----------
++                                                   ---- Percent  Of ----
++     Archive Section      Files Sent Bytes Sent    Files Sent Bytes Sent
++------------------------- ---------- ------------- ---------- ----------
+ .
+ 
+ format line2 =
+-@<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>> @>>>>>>>>>> @>>>>>>>   @>>>>>>>
+-$section,                 $files,    $bytes,     $pctfiles, $pctbytes
++@<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>> @>>>>>>>>>>>> @>>>>>>>   @>>>>>>>
++$section,                 $files,    $bytes,       $pctfiles, $pctbytes
+ .
+ 
+ $| = 1;
--- proftpd-dfsg-1.3.3a.orig/debian/patches/mod_vroot.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/mod_vroot.dpatch
@@ -0,0 +1,1283 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## mod_vroot.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_vroot.c proftpd-dfsg/contrib/mod_vroot.c
+--- proftpd-dfsg~/contrib/mod_vroot.c	1970-01-01 01:00:00.000000000 +0100
++++ proftpd-dfsg/contrib/mod_vroot.c	2010-03-16 11:00:04.000000000 +0100
+@@ -0,0 +1,1056 @@
++/*
++ * ProFTPD: mod_vroot -- a module implementing a virtual chroot capability
++ *                       via the FSIO API
++ *
++ * Copyright (c) 2002-2009 TJ Saunders
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
++ *
++ * As a special exemption, TJ Saunders and other respective copyright holders
++ * give permission to link this program with OpenSSL, and distribute the
++ * resulting executable, without including the source code for OpenSSL in the
++ * source distribution.
++ *
++ * This is mod_vroot, contrib software for proftpd 1.2 and above.
++ * For more information contact TJ Saunders <tj@castaglia.org>.
++ *
++ * $Id: mod_vroot.c,v 1.19 2009/03/19 23:43:59 tj Exp tj $
++ */
++
++#include "conf.h"
++#include "privs.h"
++
++#define MOD_VROOT_VERSION 	"mod_vroot/0.8.5"
++
++/* Make sure the version of proftpd is as necessary. */
++#if PROFTPD_VERSION_NUMBER < 0x0001030201
++# error "ProFTPD 1.3.2rc1 or later required"
++#endif
++
++static const char *vroot_log = NULL;
++static int vroot_logfd = -1;
++
++static char vroot_cwd[PR_TUNABLE_PATH_MAX + 1];
++static char vroot_base[PR_TUNABLE_PATH_MAX + 1];
++static size_t vroot_baselen = 0;
++static unsigned char vroot_engine = FALSE;
++
++static pool *vroot_alias_pool = NULL;
++static pr_table_t *vroot_alias_tab = NULL;
++
++static unsigned int vroot_opts = 0;
++#define	VROOT_OPT_ALLOW_SYMLINKS	0x0001
++
++/* Support routines note: some of these support functions are borrowed from
++ * pure-ftpd.
++ */
++
++static void strmove(register char *dst, register const char *src) {
++  if (!dst || !src)
++    return;
++
++  while (*src != 0) {
++    *dst++ = *src++;
++  }
++
++  *dst = 0;
++}
++
++static void vroot_clean_path(char *path) {
++  char *p;
++
++  if (path == NULL || *path == 0)
++      return;
++
++  while ((p = strstr(path, "//")) != NULL)
++    strmove(p, p + 1);
++
++  while ((p = strstr(path, "/./")) != NULL)
++    strmove(p, p + 2);
++
++  while (strncmp(path, "../", 3) == 0)
++    path += 3;
++
++  p = strstr(path, "/../");
++  if (p != NULL) {
++    if (p == path) {
++      while (strncmp(path, "/../", 4) == 0)
++        strmove(path, path + 3);
++
++      p = strstr(path, "/../");
++    }
++
++    while (p != NULL) {
++      char *next_elem = p + 4;
++
++      if (p != path && *p == '/') 
++        p--;
++
++      while (p != path && *p != '/')
++        p--;
++
++      if (*p == '/')
++        p++;
++
++      strmove(p, next_elem);
++      p = strstr(path, "/../");
++    }
++  }
++
++  p = path;
++
++  if (*p == '.') {
++    p++;
++
++    if (*p == '\0')
++      return;
++
++    if (*p == '/') {
++      while (*p == '/') 
++        p++;
++
++      strmove(path, p);
++    }
++  }
++}
++
++static int vroot_lookup_path(char *path, size_t pathlen, const char *dir) {
++  char buf[PR_TUNABLE_PATH_MAX + 1], *bufp = NULL;
++
++  memset(buf, '\0', sizeof(buf));
++  memset(path, '\0', pathlen);
++
++  if (strcmp(dir, ".") != 0)
++    sstrncpy(buf, dir, sizeof(buf));
++  else
++    sstrncpy(buf, pr_fs_getcwd(), sizeof(buf));
++
++  vroot_clean_path(buf);
++
++  bufp = buf;
++
++  if (strncmp(bufp, vroot_base, vroot_baselen) == 0) {
++    bufp += vroot_baselen;
++  }
++
++  loop:
++  if (bufp[0] == '.' &&
++      bufp[1] == '.' &&
++      (bufp[2] == '\0' ||
++       bufp[2] == '/')) {
++    char *tmp = NULL;
++
++    tmp = strrchr(path, '/');
++    if (tmp != NULL)
++      *tmp = '\0';
++    else
++      *path = '\0';
++
++    if (strncmp(path, vroot_base, vroot_baselen) == 0 ||
++         path[vroot_baselen] != '/') {
++      snprintf(path, pathlen, "%s/", vroot_base);
++    }
++
++    if (bufp[0] == '.' &&
++        bufp[1] == '.' &&
++        bufp[2] == '/') {
++      bufp += 3;
++      goto loop;
++    }
++
++  } else if (*bufp == '/') {
++    snprintf(path, pathlen, "%s/", vroot_base);
++
++    bufp += 1;
++    goto loop;
++
++  } else if (*bufp != '\0') {
++    size_t buflen, tmplen;
++
++    if (strstr(bufp, "..") != NULL) {
++      errno = EPERM;
++      return -1;
++    }
++
++    buflen = strlen(bufp) + 1;
++    tmplen = strlen(path);
++
++    if (tmplen + buflen >= pathlen) {
++      errno = ENAMETOOLONG;
++      return -1;
++    }
++
++    path[tmplen] = '/';
++    memcpy(path + tmplen + 1, bufp, buflen);
++  }
++
++  /* Clean any unnecessary characters added by the above processing. */
++  vroot_clean_path(path);
++
++  return 0;
++}
++
++/* For handling VRootAlias configs. */
++
++static int vroot_alias_do_unlink(const void *key, size_t keysz, void *value,
++    size_t valuesz, void *user_data) {
++  int res;
++  const char *path;
++
++  /* The key is the absolute path. */
++  path = key;
++
++  (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++    "removing VRootAlias '%s' symlink", path);
++  res = unlink(path);
++  if (res < 0) {
++    (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++      "error unlinking '%s': %s", path, strerror(errno));
++  }
++
++  return 0;
++}
++
++static int is_vroot_alias(const char *path) {
++  if (pr_table_get(vroot_alias_tab, path, 0) != NULL) {
++    return 0;
++  }
++
++  errno = ENOENT;
++  return -1;
++}
++
++static int handle_vroot_alias(void) {
++  config_rec *c;
++
++  /* Handle any VRootAlias settings. */
++
++  c = find_config(main_server->conf, CONF_PARAM, "VRootAlias", FALSE);
++  while (c) {
++    char src_path[PR_TUNABLE_PATH_MAX+1], dst_path[PR_TUNABLE_PATH_MAX+1],
++      vpath[PR_TUNABLE_PATH_MAX+1];
++    int res;
++
++    pr_signals_handle();
++
++    /* XXX Note that by using vroot_lookup_path(), we assume a POST_CMD
++     * invocation.  Looks like VRootAlias might end up being incompatible
++     * with VRootServerRoot.
++     */
++
++    vroot_lookup_path(vpath, sizeof(vpath), c->argv[0]);
++    
++    memset(dst_path, '\0', sizeof(dst_path));
++    sstrcat(dst_path, vroot_base, sizeof(dst_path));
++    sstrcat(dst_path, "/", sizeof(dst_path));
++    sstrcat(dst_path, c->argv[0], sizeof(dst_path));
++    vroot_clean_path(dst_path);
++
++    memset(src_path, '\0', sizeof(src_path));
++    sstrncpy(src_path, c->argv[1], sizeof(src_path));
++    vroot_clean_path(src_path);
++
++    /* Do NOT use pr_fsio_symlink() for this, since that ends up in one of our
++     * callbacks.  Use symlink(2) directly.  Ignore EEXIST.
++     */
++    res = symlink(src_path, dst_path);
++    if (res < 0 &&
++        errno != EEXIST) {
++      (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++        "unable to symlink '%s' to '%s': %s", src_path, dst_path,
++        strerror(errno));
++
++    } else {
++      if (vroot_alias_pool == NULL) {
++        vroot_alias_pool = make_sub_pool(session.pool);
++        pr_pool_tag(vroot_alias_pool, "VRoot Alias Pool");
++
++        vroot_alias_tab = pr_table_alloc(vroot_alias_pool, 0);
++      }
++
++      if (pr_table_add(vroot_alias_tab, pstrdup(vroot_alias_pool, vpath),
++          pstrdup(vroot_alias_pool, src_path), 0) < 0) {
++        (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++          "error stashing VRootAlias '%s': %s", dst_path, strerror(errno));
++      }
++    }
++
++    c = find_config_next(c, c->next, CONF_PARAM, "VRootAlias", FALSE);
++  }
++
++  return 0;
++}
++
++/* FS callbacks
++ */
++
++static int vroot_stat(pr_fs_t *fs, const char *path, struct stat *st) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return stat(path, st);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return stat(vpath, st);
++}
++
++static int vroot_lstat(pr_fs_t *fs, const char *path, struct stat *st) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return lstat(path, st);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++
++  if ((vroot_opts & VROOT_OPT_ALLOW_SYMLINKS) ||
++      is_vroot_alias(path) == 0) {
++    if (lstat(vpath, st) < 0) {
++      return -1;
++    }
++
++    return stat(vpath, st);
++  }
++
++  return lstat(vpath, st);
++}
++
++static int vroot_rename(pr_fs_t *fs, const char *rnfm, const char *rnto) {
++  char vpath1[PR_TUNABLE_PATH_MAX + 1], vpath2[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return rename(rnfm, rnto);
++  }
++
++  if (vroot_lookup_path(vpath1, sizeof(vpath1), rnfm) < 0 ||
++      vroot_lookup_path(vpath2, sizeof(vpath2), rnto) < 0)
++    return -1;
++
++  return rename(vpath1, vpath2);
++}
++
++static int vroot_unlink(pr_fs_t *fs, const char *path) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return unlink(path);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return unlink(vpath);
++}
++
++static int vroot_open(pr_fh_t *fh, const char *path, int flags) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return open(path, flags, PR_OPEN_MODE);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return open(vpath, flags, PR_OPEN_MODE);
++}
++
++static int vroot_creat(pr_fh_t *fh, const char *path, mode_t mode) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return creat(path, mode);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return creat(vpath, mode);
++}
++
++static int vroot_link(pr_fs_t *fs, const char *path1, const char *path2) {
++  char vpath1[PR_TUNABLE_PATH_MAX + 1], vpath2[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return link(path1, path2);
++  }
++
++  if (vroot_lookup_path(vpath1, sizeof(vpath1), path1) < 0 ||
++      vroot_lookup_path(vpath2, sizeof(vpath2), path2) < 0)
++    return -1;
++
++  return link(vpath1, vpath2);
++}
++
++static int vroot_symlink(pr_fs_t *fs, const char *path1, const char *path2) {
++  char vpath1[PR_TUNABLE_PATH_MAX + 1], vpath2[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return symlink(path1, path2);
++  }
++
++  if (vroot_lookup_path(vpath1, sizeof(vpath1), path1) < 0 ||
++      vroot_lookup_path(vpath2, sizeof(vpath2), path2) < 0)
++    return -1;
++
++  return symlink(vpath1, vpath2);
++}
++
++static int vroot_readlink(pr_fs_t *fs, const char *path, char *buf,
++    size_t max) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return readlink(path, buf, max);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return readlink(vpath, buf, max);
++}
++
++static int vroot_truncate(pr_fs_t *fs, const char *path, off_t length) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return truncate(path, length);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return truncate(vpath, length);
++}
++
++static int vroot_chmod(pr_fs_t *fs, const char *path, mode_t mode) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return chmod(path, mode);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return chmod(vpath, mode);
++}
++
++static int vroot_chown(pr_fs_t *fs, const char *path, uid_t uid, gid_t gid) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return chown(path, uid, gid);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return chown(vpath, uid, gid);
++}
++
++static int vroot_chroot(pr_fs_t *fs, const char *path) {
++  char *chroot_path = "/", *tmp = NULL;
++  config_rec *c;
++
++  if (!path ||
++      *path == '\0') {
++    errno = EINVAL;
++    return -1;
++  }
++
++  memset(vroot_base, '\0', sizeof(vroot_base));
++
++  if (path[0] == '/' &&
++      path[1] == '\0') {
++    /* chrooting to '/', nothing needs to be done. */
++    return 0;
++  }
++
++  c = find_config(main_server->conf, CONF_PARAM, "VRootServerRoot", FALSE);
++  if (c) {
++    char *server_root;
++
++    server_root = c->argv[0];
++
++    /* Now, make sure that the given path is below the configured
++     * VRootServerRoot.  If so, then we perform a real chroot to the
++     * VRootServerRoot directory, then use vroots from there.
++     */ 
++
++    if (strncmp(path, server_root, strlen(server_root)) == 0) {
++      (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++        "chroot path '%s' within VRootServerRoot '%s', "
++        "chrooting to VRootServerRoot", path, server_root);
++
++      if (chroot(server_root) < 0) {
++        (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++          "error chrooting to VRootServerRoot '%s': %s", server_root,
++          strerror(errno));
++        return -1;
++      }
++
++      pr_fs_clean_path(path + strlen(server_root), vroot_base,
++        sizeof(vroot_base));
++      chroot_path = server_root;
++
++    } else {
++      (void) pr_log_writefile(vroot_logfd, MOD_VROOT_VERSION,
++        "chroot path '%s' is not within VRootServerRoot '%s', "
++        "not chrooting to VRootServerRoot", path, server_root);
++      pr_fs_clean_path(path, vroot_base, sizeof(vroot_base));
++    }
++
++  } else {
++    pr_fs_clean_path(path, vroot_base, sizeof(vroot_base));
++  }
++
++  tmp = vroot_base;
++
++  /* Advance to the end of the path. */
++  while (*tmp != '\0') {
++    tmp++;
++  }
++
++  for (;;) {
++    tmp--;
++
++    if (tmp == vroot_base ||
++        *tmp != '/') {
++      break;
++    }
++
++    *tmp = '\0';
++  }
++
++  vroot_baselen = strlen(vroot_base);
++  if (vroot_baselen >= sizeof(vroot_cwd)) {
++    errno = ENAMETOOLONG;
++    return -1;
++  }
++
++  session.chroot_path = chroot_path;
++  return 0;
++}
++
++static int vroot_chdir(pr_fs_t *fs, const char *path) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1], *vpathp = NULL;
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return chdir(path);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  if (chdir(vpath) < 0)
++    return -1;
++
++  vpathp = vpath;
++
++  if (strncmp(vpathp, vroot_base, vroot_baselen) == 0)
++    vpathp += vroot_baselen;
++
++  pr_fs_setcwd(vpathp);
++  return 0;
++}
++
++static void *vroot_opendir(pr_fs_t *fs, const char *path) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++  int res;
++  struct stat st;
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return opendir(path);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return NULL;
++
++  /* Check if the looked-up vpath is a symlink; we may need to resolve any
++   * links ourselves, rather than assuming that the system opendir(3) can
++   * handle it.
++   */
++
++  res = vroot_lstat(fs, vpath, &st);
++  while (res == 0 &&
++         S_ISLNK(st.st_mode)) {
++    char data[PR_TUNABLE_PATH_MAX + 1];
++
++    pr_signals_handle();
++
++    memset(data, '\0', sizeof(data));
++    res = vroot_readlink(fs, vpath, data, sizeof(data)-1);
++    if (res < 0)
++      break;
++
++    data[res] = '\0';
++
++    sstrncpy(vpath, data, sizeof(vpath));
++    res = vroot_lstat(fs, vpath, &st);
++  }
++
++  return opendir(vpath);
++}
++
++static int vroot_mkdir(pr_fs_t *fs, const char *path, mode_t mode) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return mkdir(path, mode);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return mkdir(vpath, mode);
++}
++
++static int vroot_rmdir(pr_fs_t *fs, const char *path) {
++  char vpath[PR_TUNABLE_PATH_MAX + 1];
++
++  if (session.curr_phase == LOG_CMD ||
++      session.curr_phase == LOG_CMD_ERR ||
++      (session.sf_flags & SF_ABORT) ||
++      *vroot_base == '\0') {
++    /* NOTE: once stackable FS modules are supported, have this fall through
++     * to the next module in the stack.
++     */
++    return rmdir(path);
++  }
++
++  if (vroot_lookup_path(vpath, sizeof(vpath), path) < 0)
++    return -1;
++
++  return rmdir(vpath);
++}
++
++/* Configuration handlers
++ */
++
++/* usage: VRootAlias dst-path src-path */
++MODRET set_vrootalias(cmd_rec *cmd) {
++  CHECK_ARGS(cmd, 2);
++  CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL);
++
++  if (pr_fs_valid_path(cmd->argv[2]) < 0) {
++    CONF_ERROR(cmd, pstrcat(cmd->tmp_pool, "source path '", cmd->argv[2],
++      "' is not an absolute path", NULL));
++  }
++
++  add_config_param_str(cmd->argv[0], 2, cmd->argv[1], cmd->argv[2]);
++  return PR_HANDLED(cmd);
++}
++
++/* usage: VRootEngine on|off */
++MODRET set_vrootengine(cmd_rec *cmd) {
++  int bool = -1;
++  config_rec *c = NULL;
++
++  CHECK_ARGS(cmd, 1);
++  CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL);
++
++  bool = get_boolean(cmd, 1);
++  if (bool == -1)
++    CONF_ERROR(cmd, "expected Boolean parameter");
++
++  c = add_config_param(cmd->argv[0], 1, NULL);
++  c->argv[0] = pcalloc(c->pool, sizeof(unsigned char));
++  *((unsigned char *) c->argv[0]) = bool;
++
++  return PR_HANDLED(cmd);
++}
++
++/* usage: VRootLog path|"none" */
++MODRET set_vrootlog(cmd_rec *cmd) {
++  CHECK_ARGS(cmd, 1);
++  CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL);
++
++  if (pr_fs_valid_path(cmd->argv[1]) < 0)
++    CONF_ERROR(cmd, "must be an absolute path");
++
++  (void) add_config_param_str(cmd->argv[0], 1, cmd->argv[1]);
++  return PR_HANDLED(cmd);
++}
++
++/* usage: VRootOptions opt1 opt2 ... optN */
++MODRET set_vrootoptions(cmd_rec *cmd) {
++  config_rec *c = NULL;
++  register unsigned int i;
++  unsigned int opts = 0U;
++
++  if (cmd->argc-1 == 0)
++    CONF_ERROR(cmd, "wrong number of parameters");
++
++  CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL);
++
++  c = add_config_param(cmd->argv[0], 1, NULL);
++  for (i = 1; i < cmd->argc; i++) {
++    if (strcmp(cmd->argv[i], "allowSymlinks") == 0) {
++      opts |= VROOT_OPT_ALLOW_SYMLINKS;
++
++    } else {
++      CONF_ERROR(cmd, pstrcat(cmd->tmp_pool, ": unknown VRootOption: '",
++        cmd->argv[i], "'", NULL));
++    }
++  }
++
++  c->argv[0] = pcalloc(c->pool, sizeof(unsigned int));
++  *((unsigned int *) c->argv[0]) = opts;
++
++  return PR_HANDLED(cmd);
++}
++
++/* usage: VRootServerRoot path */
++MODRET set_vrootserverroot(cmd_rec *cmd) {
++  struct stat st;
++  config_rec *c;
++  size_t pathlen;
++
++  CHECK_ARGS(cmd, 1);
++  CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL);
++
++  if (pr_fs_valid_path(cmd->argv[1]) < 0)
++    CONF_ERROR(cmd, "must be an absolute path");
++
++  if (stat(cmd->argv[1], &st) < 0) {
++    CONF_ERROR(cmd, pstrcat(cmd->tmp_pool, "error checking '", cmd->argv[1],
++      "': ", strerror(errno), NULL));
++  }
++
++  if (!S_ISDIR(st.st_mode)) {
++    CONF_ERROR(cmd, pstrcat(cmd->tmp_pool, "'", cmd->argv[1],
++      "' is not a directory", NULL));
++  }
++
++  c = add_config_param(cmd->argv[0], 1, NULL);
++
++  /* Make sure the configured path has a trailing path separater ('/').
++   * This is important.
++   */
++ 
++  pathlen = strlen(cmd->argv[1]);
++  if (cmd->argv[1][pathlen - 1] != '/') {
++    c->argv[0] = pstrcat(c->pool, cmd->argv[1], "/", NULL);
++
++  } else {
++    c->argv[0] = pstrdup(c->pool, cmd->argv[1]);
++  }
++
++  return PR_HANDLED(cmd);
++}
++
++/* Command handlers
++ */
++
++MODRET vroot_pre_pass(cmd_rec *cmd) {
++  pr_fs_t *fs = NULL;
++  unsigned char *use_vroot = NULL;
++
++  use_vroot = get_param_ptr(main_server->conf, "VRootEngine", FALSE); 
++
++  if (!use_vroot ||
++      *use_vroot == FALSE) {
++    vroot_engine = FALSE;
++    return PR_DECLINED(cmd);
++  }
++
++  /* First, make sure that we have not already registered our FS object. */
++  fs = pr_unmount_fs("/", "vroot");
++  if (fs) {
++    destroy_pool(fs->fs_pool);
++  }
++
++  fs = pr_register_fs(main_server->pool, "vroot", "/");
++  if (fs == NULL) {
++    pr_log_debug(DEBUG3, MOD_VROOT_VERSION ": error registering fs: %s",
++      strerror(errno));
++    return PR_DECLINED(cmd);
++  }
++
++  pr_log_debug(DEBUG5, MOD_VROOT_VERSION ": vroot registered");
++
++  /* Add the module's custom FS callbacks here. This module does not
++   * provide callbacks for the following (as they are unnecessary):
++   * close(), read(), write(), lseek(), readdir(), and closedir().
++   */
++  fs->stat = vroot_stat;
++  fs->lstat = vroot_lstat;
++  fs->rename = vroot_rename;
++  fs->unlink = vroot_unlink;
++  fs->open = vroot_open;
++  fs->creat = vroot_creat;
++  fs->link = vroot_link;
++  fs->readlink = vroot_readlink;
++  fs->symlink = vroot_symlink;
++  fs->truncate = vroot_truncate;
++  fs->chmod = vroot_chmod;
++  fs->chown = vroot_chown;
++  fs->chdir = vroot_chdir;
++  fs->chroot = vroot_chroot;
++  fs->opendir = vroot_opendir;
++  fs->mkdir = vroot_mkdir;
++  fs->rmdir = vroot_rmdir;
++
++  vroot_engine = TRUE;
++  return PR_DECLINED(cmd);
++}
++
++MODRET vroot_post_pass(cmd_rec *cmd) {
++  if (vroot_engine) {
++
++    /* If not chrooted, unregister vroot. */
++    if (!session.chroot_path) {
++      if (pr_unregister_fs("/") < 0) {
++        pr_log_debug(DEBUG2, MOD_VROOT_VERSION
++          ": error unregistering vroot: %s", strerror(errno));
++
++      } else {
++        pr_log_debug(DEBUG5, MOD_VROOT_VERSION ": vroot unregistered");
++        pr_fs_setcwd(pr_fs_getvwd());
++        pr_fs_clear_cache();
++      }
++
++    } else {
++      config_rec *c;
++
++      /* Otherwise, lookup and process any VRootOptions. */
++      c = find_config(main_server->conf, CONF_PARAM, "VRootOptions", FALSE);
++      if (c) {
++        vroot_opts = *((unsigned int *) c->argv[0]);
++      }
++
++      /* XXX This needs to be in the PRE_CMD PASS handler, as when
++       * VRootServer is used, so that a real chroot(2) occurs.
++       */
++      handle_vroot_alias();
++
++    }
++  }
++
++  return PR_DECLINED(cmd);
++}
++
++MODRET vroot_post_pass_err(cmd_rec *cmd) {
++  if (vroot_engine) {
++
++    /* If not chrooted, unregister vroot. */
++    if (!session.chroot_path) {
++      if (pr_unregister_fs("/") < 0)
++        pr_log_debug(DEBUG2, MOD_VROOT_VERSION
++          ": error unregistering vroot: %s", strerror(errno));
++      else
++        pr_log_debug(DEBUG5, MOD_VROOT_VERSION
++          ": vroot unregistered");
++    }
++
++    /* Remove any VRootAlias symlinks. */
++    if (vroot_alias_tab) {
++      pr_table_do(vroot_alias_tab, vroot_alias_do_unlink, NULL, 0);
++      pr_table_empty(vroot_alias_tab);
++      destroy_pool(vroot_alias_pool);
++      vroot_alias_pool = NULL;
++      vroot_alias_tab = NULL;
++    }
++  }
++
++  return PR_DECLINED(cmd);
++}
++
++/* Initialization routines
++ */
++
++static int vroot_sess_init(void) {
++  config_rec *c;
++
++  c = find_config(main_server->conf, CONF_PARAM, "VRootLog", FALSE);
++  if (c) {
++    vroot_log = c->argv[0];
++  }
++
++  if (vroot_log &&
++      strcasecmp(vroot_log, "none") != 0) {
++    int res;
++
++    PRIVS_ROOT
++    res = pr_log_openfile(vroot_log, &vroot_logfd, 0660);
++    PRIVS_RELINQUISH
++
++    switch (res) {
++      case 0:
++        break;
++
++      case -1:
++        pr_log_debug(DEBUG1, MOD_VROOT_VERSION
++          ": unable to open VRootLog '%s': %s", vroot_log, strerror(errno));
++        break;
++
++      case PR_LOG_SYMLINK:
++        pr_log_debug(DEBUG1, MOD_VROOT_VERSION
++          ": unable to open VRootLog '%s': %s", vroot_log, "is a symlink");
++        break;
++
++      case PR_LOG_WRITABLE_DIR:
++        pr_log_debug(DEBUG1, MOD_VROOT_VERSION
++          ": unable to open VRootLog '%s': %s", vroot_log,
++          "parent directory is world-writable");
++        break;
++    }
++  }
++
++  return 0;
++}
++
++/* Module API tables
++ */
++
++static conftable vroot_conftab[] = {
++  { "VRootAlias",	set_vrootalias,		NULL },
++  { "VRootEngine",	set_vrootengine,	NULL },
++  { "VRootLog",		set_vrootlog,		NULL },
++  { "VRootOptions",	set_vrootoptions,	NULL },
++  { "VRootServerRoot",	set_vrootserverroot,	NULL },
++  { NULL }
++};
++
++static cmdtable vroot_cmdtab[] = {
++  { PRE_CMD,		C_PASS,	G_NONE,	vroot_pre_pass, FALSE, FALSE },
++  { POST_CMD,		C_PASS,	G_NONE,	vroot_post_pass, FALSE, FALSE },
++  { POST_CMD_ERR,	C_PASS,	G_NONE,	vroot_post_pass_err, FALSE, FALSE },
++  { 0, NULL }
++};
++
++module vroot_module = {
++  NULL, NULL,
++
++  /* Module API version 2.0 */
++  0x20,
++
++  /* Module name */
++  "vroot",
++
++  /* Module configuration handler table */
++  vroot_conftab,
++
++  /* Module command handler table */
++  vroot_cmdtab,
++
++  /* Module authentication handler table */
++  NULL,
++
++  /* Module initialization function */
++  NULL,
++
++  /* Session initialization function */
++  vroot_sess_init,
++
++  /* Module version */
++  MOD_VROOT_VERSION
++};
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/doc/contrib/mod_vroot.html proftpd-dfsg/doc/contrib/mod_vroot.html
+--- proftpd-dfsg~/doc/contrib/mod_vroot.html	1970-01-01 01:00:00.000000000 +0100
++++ proftpd-dfsg/doc/contrib/mod_vroot.html	2010-03-16 11:00:13.000000000 +0100
+@@ -0,0 +1,212 @@
++<!-- $Id: mod_vroot.html,v 1.9 2009/03/19 23:44:19 tj Exp tj $ -->
++<!-- $Source: /home/tj/proftpd/modules/doc/RCS/mod_vroot.html,v $ -->
++
++<html>
++<head>
++<title>ProFTPD module mod_vroot</title>
++</head>
++
++<body bgcolor=white>
++
++<hr>
++<center>
++<h2><b>ProFTPD module <code>mod_vroot</code></b></h2>
++</center>
++<hr><br>
++
++This module is contained in the <code>mod_vroot.c</code> file for
++ProFTPD 1.3.<i>x</i>, and is not compiled by default.  Installation
++instructions are discussed <a href="#Installation">here</a>.
++
++<p>
++The purpose of this module to is to implement a virtual chroot capability
++that does not require root privileges.  The <code>mod_vroot</code> module
++provides this capability by using ProFTPD's FS API, available as of 1.2.8rc1.
++
++<p>
++The most current version of <code>mod_vroot</code> can be found at:
++<pre>
++  <a href="http://www.castaglia.org/proftpd/">http://www.castaglia.org/proftpd/</a>
++</pre>
++
++<h2>Author</h2>
++<p>
++Please contact TJ Saunders &lt;tj <i>at</i> castaglia.org&gt; with any
++questions, concerns, or suggestions regarding this module.
++
++<h2>Thanks</h2>
++<p>
++<i>2003-08-26</i>: Thanks to Oskar Liljeblad for the elegant patch that added
++symlink support.
++
++<h2>Directives</h2>
++<ul>
++  <li><a href="#VRootAlias">VRootAlias</a>
++  <li><a href="#VRootEngine">VRootEngine</a>
++  <li><a href="#VRootLog">VRootLog</a>
++  <li><a href="#VRootOptions">VRootOptions</a>
++  <li><a href="#VRootServerRoot">VRootServerRoot</a>
++</ul>
++
++<hr>
++<h2><a name="VRootAlias">VRootAlias</a></h2>
++<strong>Syntax:</strong> VRootAlias <em>dst-path src-path</em><br>
++<strong>Default:</strong> None<br>
++<strong>Context:</strong> server config, <code>&lt;VirtualHost&gt;</code>, <code>&lt;Global&gt;</code><br>
++<strong>Module:</strong> mod_vroot<br>
++<strong>Compatibility:</strong> 1.3.2 and later
++
++<p>
++The <code>VRootAlias</code> directive is used to create an "alias" of a
++directory outside of the chroot area into the chroot.  The <em>dst-path</em>
++parameter is a <b>relative</b> path, relative to the chroot area (<i>i.e.</i>
++the directory in which the session starts).  The <em>src-path</em> parameter,
++on the other hand, is an <b>absolute</b> path, and may be to a file or
++directory.
++
++<p>
++For example, you might map a shared upload directory into a user's home
++directory using:
++<pre>
++  &lt;IfModule mod_vroot.c&gt;
++    VRootEngine on
++
++    DefaultRoot ~
++    VRootAlias upload /var/ftp/upload
++  &lt;/IfModule&gt;
++</pre>
++This will automatically create an "upload" directory to appear in the
++chroot area (in this case, the user's home directory).
++
++<p>
++Note that this directive will <b>not</b> work if the
++<code>VRootServerRoot</code> is used.
++
++<p>
++<hr>
++<h2><a name="VRootEngine">VRootEngine</a></h2>
++<strong>Syntax:</strong> VRootEngine <em>on|off</em><br>
++<strong>Default:</strong> None<br>
++<strong>Context:</strong> server config, <code>&lt;VirtualHost&gt;</code>, <code>&lt;Global&gt;</code><br>
++<strong>Module:</strong> mod_vroot<br>
++<strong>Compatibility:</strong> 1.2.8rc1 and later
++
++<p>
++The <code>VRootEngine</code> directive enables the virtual chroot engine
++implemented by <code>mod_vroot</code>.  If enabled, the virtual chroot will
++be used in place of the operating system's <code>chroot(2)</code>.  This
++directive affects any <code>DefaultRoot</code> directives and any
++<code>&lt;Anonymous&gt;</code> contexts within the server context in which
++the <code>VRootEngine</code> directive appears.
++
++<p>
++<hr>
++<h2><a name="VRootLog">VRootLog</a></h2>
++<strong>Syntax:</strong> VRootLog <em>file</em><br>
++<strong>Default:</strong> None<br>
++<strong>Context:</strong> server config, <code>&lt;VirtualHost&gt;</code>, <code>&lt;Global&gt;</code><br>
++<strong>Module:</strong> mod_vroot<br>
++<strong>Compatibility:</strong> 1.3.0rc1 and later
++
++<p>
++The <code>VRootLog</code> directive is used to specify a log file for
++<code>mod_vroot</code>'s reporting on a per-server basis.  The <em>file</em>
++parameter given must be the full path to the file to use for logging.
++
++<p>
++<hr>
++<h2><a name="VRootOptions">VRootOptions</a></h2>
++<strong>Syntax:</strong> VRootOptions <em>opt1 ...</em><br>
++<strong>Default:</strong> None<br>
++<strong>Context:</strong> &quot;server config&quot; <code>&lt;VirtualHost&gt;</code>, <code>&lt;Global&gt;</code><br>
++<strong>Module:</strong> mod_vroot<br>
++<strong>Compatibility:</strong> 1.2.9rc2 and later
++
++<p>
++The <code>VRootOptions</code> directive is used to configure various optional
++behavior of <code>mod_vroot</code>.
++
++<p>
++Example:
++<pre>
++  VRootOptions allowSymlinks
++</pre>
++
++<p>
++The currently implemented options are:
++<ul>
++  <li><code>allowSymlinks</code><br>
++    Normally, any symlinks that point outside of the vroot area simply do
++    not work.  When the <code>allowSymlinks</code> option is enabled, these
++    symlinks will be allowed.  Note that by enabling symlinks, the efficacy
++    of the vroot &quot;jail&quot; is reduced.
++</ul>
++
++<p>
++<hr>
++<h2><a name="VRootServerRoot">VRootServerRoot</a></h2>
++<strong>Syntax:</strong> VRootServerRoot <em>path</em><br>
++<strong>Default:</strong> None<br>
++<strong>Context:</strong> &quot;server config&quot; <code>&lt;VirtualHost&gt;</code>, <code>&lt;Global&gt;</code><br>
++<strong>Module:</strong> mod_vroot<br>
++<strong>Compatibility:</strong> 1.3.2rc1 and later
++
++<p>
++The <code>VRootServerRoot</code> directive is used to configure a directory
++to which the <code>mod_vroot</code> module will perform a <i>real</i> chroot.
++The idea is that each <code>&lt;VirtualHost&gt;</code> can have its own
++directory to which a real <code>chroot(2)</code> system call is made;
++the user-specific home directories will be virtual roots underneath this
++directory.  Thus some measure of security, via the <code>chroot(2)</code>
++system call, is provided by the kernel, while still allowing symlinked shared
++folders among users of this <code>&lt;VirtualHost&gt;</code>.
++
++<p>
++For example:
++<pre>
++  &lt;VirtualHost a.b.c.d&gt;
++    VRootEngine on
++    VRootServerRoot /etc/ftpd/a.b.c.d/
++    VRootOptions allowSymlinks
++    DefaultRoot ~
++    ...
++
++  &lt;/VirtualHost&gt;
++</pre>
++
++<p>
++See also: <a href="#VRootOptions"><code>VRootOptions</code></a>
++
++<p>
++<hr><br>
++<h2><a name="Installation">Installation</a></h2>
++After unpacking and patching the latest proftpd-1.3.<i>x</i> source code, copy
++the <code>mod_vroot.c</code> file into:
++<pre>
++  <i>proftpd-dir</i>/contrib/
++</pre>
++Then follow the normal steps for using third-party modules in proftpd:
++<pre>
++  ./configure --with-modules=mod_vroot
++  make
++  make install
++</pre>
++
++<p>
++<hr><br>
++
++Author: <i>$Author: tj $</i><br>
++Last Updated: <i>$Date: 2009/03/19 23:44:19 $</i><br>
++
++<br><hr>
++
++<font size=2><b><i>
++&copy; Copyright 2000-2009 TJ Saunders<br>
++ All Rights Reserved<br>
++</i></b></font>
++
++<hr><br>
++
++</body>
++</html>
++
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3492.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3492.dpatch
@@ -0,0 +1,29 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3492.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/data.c proftpd-dfsg/src/data.c
+--- proftpd-dfsg~/src/data.c	2010-09-14 10:46:50.000000000 +0200
++++ proftpd-dfsg/src/data.c	2010-09-14 10:46:50.000000000 +0200
+@@ -899,6 +899,9 @@
+        * they will also interfere with the current data transfer.  In doing
+        * so, we break RFC compliance a little; RFC959 does not allow a
+        * response code of 450 for those commands (although it should).
++       *
++       * We also forbid RNFR and RNTO, which use session.xfer to store
++       * the pathname of the file to be renamed.
+        */
+       if (strcmp(cmd->argv[0], C_APPE) == 0 ||
+           strcmp(cmd->argv[0], C_LIST) == 0 ||
+@@ -907,6 +910,8 @@
+           strcmp(cmd->argv[0], C_RETR) == 0 ||
+           strcmp(cmd->argv[0], C_STOR) == 0 ||
+           strcmp(cmd->argv[0], C_STOU) == 0 ||
++          strcmp(cmd->argv[0], C_RNFR) == 0 ||
++          strcmp(cmd->argv[0], C_RNTO) == 0 ||
+           strcmp(cmd->argv[0], C_PORT) == 0 ||
+           strcmp(cmd->argv[0], C_EPRT) == 0 ||
+           strcmp(cmd->argv[0], C_PASV) == 0 ||
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3483.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3483.dpatch
@@ -0,0 +1,46 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3483.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_quotatab.c proftpd-dfsg/contrib/mod_quotatab.c
+--- proftpd-dfsg~/contrib/mod_quotatab.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/contrib/mod_quotatab.c	2010-09-14 10:46:10.000000000 +0200
+@@ -3278,6 +3278,11 @@
+ }
+ 
+ MODRET quotatab_pre_site(cmd_rec *cmd) {
++
++  /* Make sure it's a valid SITE command */
++  if (cmd->argc < 2)
++    return PR_DECLINED(cmd);
++
+   if (strcasecmp(cmd->argv[1], "COPY") == 0) {
+     cmd_rec *copy_cmd;
+ 
+@@ -3390,6 +3395,11 @@
+ }
+ 
+ MODRET quotatab_post_site(cmd_rec *cmd) {
++
++  /* Make sure it's a valid SITE command */
++  if (cmd->argc < 2)
++    return PR_DECLINED(cmd);
++
+   if (strcasecmp(cmd->argv[1], "COPY") == 0) {
+     cmd_rec *copy_cmd;
+ 
+@@ -3402,6 +3412,11 @@
+ }
+ 
+ MODRET quotatab_post_site_err(cmd_rec *cmd) {
++
++  /* Make sure it's a valid SITE command */
++  if (cmd->argc < 2)
++    return PR_DECLINED(cmd);
++
+   if (strcasecmp(cmd->argv[1], "COPY") == 0) {
+     cmd_rec *copy_cmd;
+ 
--- proftpd-dfsg-1.3.3a.orig/debian/patches/ftpasswd.cracklib.location.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/ftpasswd.cracklib.location.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## ftpasswd.cracklib.location.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Debian specific change for the crack-lib dictionary location. 
+
+@DPATCH@
+diff -urNad proftpd-1.2.10+1.3.0rc5~/contrib/ftpasswd proftpd-1.2.10+1.3.0rc5/contrib/ftpasswd
+--- proftpd-1.2.10+1.3.0rc5~/contrib/ftpasswd	2004-10-07 23:17:58.000000000 +0200
++++ proftpd-1.2.10+1.3.0rc5/contrib/ftpasswd	2006-03-22 22:08:32.000000000 +0100
+@@ -37,7 +37,8 @@
+ my $default_passwd_file = "./ftpd.passwd";
+ my $default_group_file = "./ftpd.group";
+ my $shell_file = "/etc/shells";
+-my $default_cracklib_dict = "/usr/lib/cracklib_dict";
++#my $default_cracklib_dict = "/usr/lib/cracklib_dict";
++my $default_cracklib_dict = "/var/cache/cracklib";
+ my $cracklib_dict;
+ my $output_file;
+ my $version = "1.1.3";
--- proftpd-dfsg-1.3.3a.orig/debian/patches/CVE-2011-1137.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/CVE-2011-1137.dpatch
@@ -0,0 +1,154 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## CVE-2011-1137.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sftp/mod_sftp.c proftpd-dfsg/contrib/mod_sftp/mod_sftp.c
+--- proftpd-dfsg~/contrib/mod_sftp/mod_sftp.c	2011-03-04 00:43:31.000000000 +0100
++++ proftpd-dfsg/contrib/mod_sftp/mod_sftp.c	2011-03-04 00:55:49.000000000 +0100
+@@ -83,12 +83,12 @@
+     memset(buf, '\0', sizeof(buf));
+ 
+     for (i = 0; i < sizeof(buf) - 1; i++) {
+-      res = sftp_ssh2_packet_sock_read(conn->rfd, &buf[i], 1);
++      res = sftp_ssh2_packet_sock_read(conn->rfd, &buf[i], 1, 0);
+       while (res <= 0) {
+         if (errno == EINTR) {
+           pr_signals_handle();
+ 
+-          res = sftp_ssh2_packet_sock_read(conn->rfd, &buf[i], 1);
++          res = sftp_ssh2_packet_sock_read(conn->rfd, &buf[i], 1, 0);
+           continue;
+         }
+ 
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sftp/packet.c proftpd-dfsg/contrib/mod_sftp/packet.c
+--- proftpd-dfsg~/contrib/mod_sftp/packet.c	2011-03-04 00:51:44.000000000 +0100
++++ proftpd-dfsg/contrib/mod_sftp/packet.c	2011-03-04 00:55:49.000000000 +0100
+@@ -46,6 +46,12 @@
+ static uint32_t packet_client_seqno = 0;
+ static uint32_t packet_server_seqno = 0;
+ 
++/* Maximum length of the payload data of an SSH2 packet we're willing to
++ * accept.  Any packets reporting a payload length longer than this will be
++ * ignored/dropped.
++ */
++#define SFTP_PACKET_MAX_PAYLOAD_LEN	(256 * 1024)
++
+ /* RFC4344 recommends 2^31 for the client packet sequence number at which
+  * we should request a rekey, and 2^32 for the server packet sequence number.
+  * Since we're using uin32_t, though, it isn't a big enough data type for those
+@@ -138,7 +144,8 @@
+  * It is the caller's responsibility to ensure that buf is large enough to
+  * hold reqlen bytes.
+  */
+-int sftp_ssh2_packet_sock_read(int sockfd, void *buf, size_t reqlen) {
++int sftp_ssh2_packet_sock_read(int sockfd, void *buf, size_t reqlen,
++    int flags) {
+   void *ptr;
+   size_t remainlen;
+ 
+@@ -213,6 +220,13 @@
+     if (res == remainlen)
+       break;
+ 
++    if (flags & SFTP_PACKET_READ_FL_PESSIMISTIC) {
++      pr_trace_msg(trace_channel, 20, "read %lu bytes, expected %lu bytes; "
++        "pessimistically returning", (unsigned long) res,
++        (unsigned long) remainlen);
++      break;
++    }
++
+     pr_trace_msg(trace_channel, 20, "read %lu bytes, expected %lu bytes; "
+       "reading more", (unsigned long) res, (unsigned long) remainlen);
+     ptr = ((char *) ptr + res);
+@@ -352,7 +366,12 @@
+     (unsigned long) buflen);
+ 
+   if (buflen > 0) {
+-    sftp_ssh2_packet_sock_read(sockfd, buf, buflen);
++    int flags = SFTP_PACKET_READ_FL_PESSIMISTIC;
++
++    /* We don't necessary want to wait for the entire random amount of data
++     * to be read in.
++     */
++    sftp_ssh2_packet_sock_read(sockfd, buf, buflen, flags);
+   }
+ 
+   return;
+@@ -372,7 +391,7 @@
+    * how many more bytes there are in the packet.
+    */
+ 
+-  res = sftp_ssh2_packet_sock_read(sockfd, buf, blocksz);
++  res = sftp_ssh2_packet_sock_read(sockfd, buf, blocksz, 0);
+   if (res < 0)
+     return res;
+ 
+@@ -430,8 +449,26 @@
+   if (payload_len + padding_len == 0)
+     return 0;
+ 
+-  if (payload_len > 0)
++  if (payload_len > 0) {
++    /* We don't want to reject the packet outright yet; but we can ignore
++     * the payload data we're going to read in.  This packet will fail
++     * eventually anyway.
++     */
++    if (payload_len > SFTP_PACKET_MAX_PAYLOAD_LEN) {
++      pr_trace_msg(trace_channel, 20,
++        "payload len (%lu bytes) exceeds max payload len (%lu), "
++        "ignoring payload", (unsigned long) payload_len,
++        (unsigned long) SFTP_PACKET_MAX_PAYLOAD_LEN);
++
++      pr_log_writefile(sftp_logfd, MOD_SFTP_VERSION,
++        "client sent buggy/malicious packet payload length, ignoring");
++
++      errno = EPERM;
++      return -1;
++    }
++
+     pkt->payload = pcalloc(pkt->pool, payload_len);
++  }
+ 
+   /* If there's data in the buffer we received, it's probably already part
+    * of the payload, unencrypted.  That will leave the remaining payload
+@@ -492,7 +529,7 @@
+     return -1;
+   }
+ 
+-  res = sftp_ssh2_packet_sock_read(sockfd, buf + *offset, data_len);
++  res = sftp_ssh2_packet_sock_read(sockfd, buf + *offset, data_len, 0);
+   if (res < 0) {
+     return res;
+   }
+@@ -520,7 +557,7 @@
+   if (mac_len == 0)
+     return 0;
+ 
+-  res = sftp_ssh2_packet_sock_read(sockfd, buf, mac_len);
++  res = sftp_ssh2_packet_sock_read(sockfd, buf, mac_len, 0);
+   if (res < 0)
+     return res;
+ 
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sftp/packet.h proftpd-dfsg/contrib/mod_sftp/packet.h
+--- proftpd-dfsg~/contrib/mod_sftp/packet.h	2011-03-04 00:43:31.000000000 +0100
++++ proftpd-dfsg/contrib/mod_sftp/packet.h	2011-03-04 00:55:49.000000000 +0100
+@@ -78,7 +78,15 @@
+ int sftp_ssh2_packet_get_last_sent(time_t *);
+ 
+ int sftp_ssh2_packet_read(int, struct ssh2_packet *);
+-int sftp_ssh2_packet_sock_read(int, void *, size_t);
++int sftp_ssh2_packet_sock_read(int, void *, size_t, int);
++
++/* This sftp_ssh2_packet_sock_read() flag is used to tell the function to
++ * read in as many of the requested length of data as it can, but to NOT
++ * keep polling until that length has been acquired (i.e. to read the
++ * requested length pessimistically, assuming that it will not all appear).
++ */
++#define SFTP_PACKET_READ_FL_PESSIMISTIC		0x001
++
+ int sftp_ssh2_packet_write(int, struct ssh2_packet *);
+ 
+ int sftp_ssh2_packet_handle(void);
--- proftpd-dfsg-1.3.3a.orig/debian/patches/odbc.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/odbc.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## odbc.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add library declaration to avoid tricky LIBS use at building time.
+## DP: A better option would be fixing the configure.in to allow
+## DP: user to specify ODBC dependencies.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sql_odbc.c proftpd-dfsg/contrib/mod_sql_odbc.c
+--- proftpd-dfsg~/contrib/mod_sql_odbc.c	2010-04-19 11:46:04.000000000 +0200
++++ proftpd-dfsg/contrib/mod_sql_odbc.c	2010-04-19 12:13:13.000000000 +0200
+@@ -22,6 +22,7 @@
+  * the source code for OpenSSL in the source distribution.
+  *
+  * $Id: mod_sql_odbc.c,v 1.11 2009/10/02 21:22:56 castaglia Exp $
++ * $Libraries: -lodbc $
+  */
+ 
+ #include "conf.h"
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3494.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3494.dpatch
@@ -0,0 +1,45 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3494.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/netaddr.c proftpd-dfsg/src/netaddr.c
+--- proftpd-dfsg~/src/netaddr.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/src/netaddr.c	2010-09-14 11:02:40.000000000 +0200
+@@ -1456,7 +1456,7 @@
+ }
+ 
+ int pr_netaddr_is_loopback(const pr_netaddr_t *na) {
+-  if (!na) {
++  if (na == NULL) {
+     errno = EINVAL;
+     return -1;
+   }
+@@ -1468,6 +1468,25 @@
+ 
+ #ifdef PR_USE_IPV6
+     case AF_INET6:
++      if (pr_netaddr_is_v4mappedv6(na) == TRUE) {
++        pool *tmp_pool;
++        pr_netaddr_t *v4na;
++        int res;
++
++        tmp_pool = make_sub_pool(permanent_pool);
++
++        v4na = pr_netaddr_alloc(tmp_pool);
++        pr_netaddr_set_family(v4na, AF_INET);
++        pr_netaddr_set_port(v4na, pr_netaddr_get_port(na));
++        memcpy(&v4na->na_addr.v4.sin_addr, get_v4inaddr(na),
++          sizeof(struct in_addr));
++
++        res = pr_netaddr_is_loopback(v4na);
++        destroy_pool(tmp_pool);
++
++        return res;
++      }
++
+       /* XXX *sigh* Different platforms implement the IN6_IS_ADDR macros
+        * differently.  For example, on Linux, those macros expect to operate
+        * on s6_addr32, while on Solaris, the macros operate on struct in6_addr.
--- proftpd-dfsg-1.3.3a.orig/debian/patches/mod_cap.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/mod_cap.dpatch
@@ -0,0 +1,35 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## mod_cap.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad trunk~/lib/libcap/Makefile trunk/lib/libcap/Makefile
+--- trunk~/lib/libcap/Makefile	2008-05-07 11:36:04.000000000 +0200
++++ trunk/lib/libcap/Makefile	2008-05-07 11:38:20.000000000 +0200
+@@ -23,7 +23,7 @@
+ INCLS=libcap.h cap_names.h $(INCS)
+ OBJS=$(addsuffix .o, $(FILES))
+ 
+-all: $(LIBNAME)
++all: 
+ 
+ _makenames: _makenames.c cap_names.sed
+ 	$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
+diff -urNad trunk~/modules/mod_cap.c trunk/modules/mod_cap.c
+--- trunk~/modules/mod_cap.c	2008-05-07 11:36:24.000000000 +0200
++++ trunk/modules/mod_cap.c	2008-05-07 11:38:05.000000000 +0200
+@@ -42,10 +42,8 @@
+ #  define _LINUX_BYTEORDER_GENERIC_H
+ # endif
+ 
+-# ifdef HAVE_LINUX_CAPABILITY_H
+-#  include <linux/capability.h>
+-# endif /* HAVE_LINUX_CAPABILITY_H */
+-# include "../lib/libcap/include/sys/capability.h"
++#include <linux/capability.h>
++#include <sys/capability.h>
+ 
+ /* What are these for? */
+ # undef WNOHANG
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3536.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3536.dpatch
@@ -0,0 +1,704 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3536.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sql.c proftpd-dfsg/contrib/mod_sql.c
+--- proftpd-dfsg~/contrib/mod_sql.c	2011-01-26 10:41:31.000000000 +0100
++++ proftpd-dfsg/contrib/mod_sql.c	2011-01-28 10:33:46.000000000 +0100
+@@ -30,7 +30,7 @@
+ #include "privs.h"
+ #include "mod_sql.h"
+ 
+-#define MOD_SQL_VERSION			"mod_sql/4.2.4"
++#define MOD_SQL_VERSION			"mod_sql/4.2.5"
+ 
+ #if defined(HAVE_CRYPT_H) && !defined(AIX4) && !defined(AIX5)
+ # include <crypt.h>
+@@ -105,6 +105,12 @@
+ /* For tracking the size of deleted files. */
+ static off_t sql_dele_filesz = 0;
+ 
++/* It is best if this value is larger than the PR_TUNABLE_BUFFER_SIZE value.
++ * PR_TUNABLE_BUFFER_SIZE controls how much network data from a client at
++ * a time we might read; by keeping the statement buffer size larger, we reduce
++ * the chance of handling data from the network which exceeds the statement
++ * buffer length.
++ */
+ #define SQL_MAX_STMT_LEN	4096
+ 
+ static char *sql_prepare_where(int, cmd_rec *, int, ...);
+@@ -123,6 +129,8 @@
+ 
+ static modret_t *process_named_query(cmd_rec *cmd, char *name);
+ 
++static const char *trace_channel = "sql";
++
+ /*
+  * cache typedefs
+  */
+@@ -840,7 +848,8 @@
+   char *buf = "", *res;
+   va_list dummy;
+ 
+-  res = pcalloc(cmd->tmp_pool, SQL_MAX_STMT_LEN);
++  /* Allocate one byte more for the terminating NUL. */
++  res = pcalloc(cmd->tmp_pool, SQL_MAX_STMT_LEN + 1);
+ 
+   flag = 0;
+   va_start(dummy, cnt);
+@@ -863,13 +872,20 @@
+   if (!(flags & SQL_PREPARE_WHERE_FL_NO_TAGS)) {
+     char *curr, *tmp;
+ 
+-    /* Process variables in WHERE clauses, except any "%{num}" references. */
++    /* Process variables in WHERE clauses, except any "%{num}" references.
++     *
++     * curr_avail is deliberately set to be one byte less than the allocated
++     * length, to make sure that there is a terminating NUL.
++     */
+     curr = res;
+     curr_avail = SQL_MAX_STMT_LEN;
+ 
+     for (tmp = buf; *tmp; ) {
+       char *str;
+       modret_t *mr;
++      size_t taglen;
++
++      pr_signals_handle();
+ 
+       if (*tmp == '%') {
+         char *tag = NULL;
+@@ -886,18 +902,33 @@
+           tag = pstrndup(cmd->tmp_pool, query, (tmp - query));
+           if (tag) {
+             str = (char *) resolve_long_tag(cmd, tag);
+-            if (!str)
++            if (str == NULL) {
+               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;
+ 
+-            sstrcat(curr, mr->data, curr_avail);
+-            curr += strlen(mr->data);
+-            curr_avail -= strlen(mr->data);
++            /* Make sure we don't write too much data. */
++            taglen = strlen(mr->data);
++            if (curr_avail > taglen) {
++              sstrcat(curr, mr->data, curr_avail);
++              curr += taglen;
++              curr_avail -= taglen;
+ 
++            } else {
++              /* Log when this happens; it means we have more input than buffer
++               * space.
++               */
++              sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++                "(%d of %lu bytes) for tag (%lu bytes) when preparing "
++                "statement, ignoring tag '%s'", curr_avail,
++                (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) taglen, tag);
++            }
++
++            /* Advance past the tag. */
+             if (*tmp != '\0')
+               tmp++;
+ 
+@@ -912,20 +943,51 @@
+           if (check_response(mr) < 0)
+             return NULL;
+ 
+-          sstrcat(curr, mr->data, curr_avail);
+-          curr += strlen(mr->data);
+-          curr_avail -= strlen(mr->data);
++          /* Make sure we don't write too much data. */
++          taglen = strlen(mr->data);
++          if (curr_avail > taglen) {
++            sstrcat(curr, mr->data, curr_avail);
++            curr += taglen;
++            curr_avail -= taglen;
+ 
++          } else {
++            /* Log when this happens; it means we have more input than buffer
++             * space.
++             */
++            sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++              "(%d of %lu bytes) for tag (%lu bytes) when preparing "
++              "statement, ignoring tag '%%%c'", curr_avail,
++              (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) taglen, *tmp);
++          }
++
++          /* Advance past the tag. */
+           if (*tmp != '\0')
+             tmp++;
+         }
+ 
+       } else {
+-        *curr++ = *tmp++;
+-        curr_avail--;
++
++        /* Make sure we don't try to write too much data. */
++        if (curr_avail > 0) {
++          *curr++ = *tmp;
++          curr_avail--;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.  And break out of the processing loop.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%d of %lu bytes) for input when preparing statement, skipping",
++            curr_avail, (unsigned long) SQL_MAX_STMT_LEN);
++          break;
++        }
++
++        if (*tmp != '\0')
++          tmp++;
+       }
+     }
+-    *curr++ = '\0';
++
++    *curr = '\0';
+ 
+   } else {
+     res = buf;
+@@ -1653,7 +1715,7 @@
+   modret_t *mr = NULL;
+   array_header *gids = NULL, *groups = NULL;
+   char *name = cmd->argv[0], *username = NULL;
+-  int numrows = 0;
++  int argc, numrows = 0, res = -1;
+   register unsigned int i = 0;
+ 
+   /* Check for NULL values */
+@@ -1665,11 +1727,21 @@
+ 
+   lpw.pw_uid = -1;
+   lpw.pw_name = name;
+-  
++
++  /* Now that we have the pointers for the lists, tweak the argc field
++   * before passing this cmd_rec on, lest we try to resolve some variable
++   * like %r which will assume that all of the cmd_rec args are strings, as
++   * from the client.
++   */
++  argc = cmd->argc;
++  cmd->argc = 1;
++
+   /* Retrieve the necessary info */
+   if (!name ||
+-      !(pw = sql_getpasswd(cmd, &lpw)))
++      !(pw = sql_getpasswd(cmd, &lpw))) {
++    cmd->argc = argc;
+     return -1;
++  }
+ 
+   /* Populate the first group ID and name */
+   if (gids)
+@@ -1684,8 +1756,10 @@
+ 
+   mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", name),
+     "sql_escapestring");
+-  if (check_response(mr) < 0)
++  if (check_response(mr) < 0) {
++    cmd->argc = argc;
+     return -1;
++  }
+ 
+   username = (char *) mr->data;
+ 
+@@ -1718,9 +1792,11 @@
+   
+     mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default",
+       cmap.grptable, cmap.grpfields, where), "sql_select");
+-    if (check_response(mr) < 0)
++    if (check_response(mr) < 0) {
++      cmd->argc = argc;
+       return -1;
+-  
++    }
++ 
+     sd = (sql_data_t *) mr->data;
+ 
+   } else {
+@@ -1731,8 +1807,10 @@
+      */
+     mr = sql_lookup(_sql_make_cmd(cmd->tmp_pool, 3, "default",
+       cmap.groupcustommembers, username));
+-    if (check_response(mr) < 0)
++    if (check_response(mr) < 0) {
++      cmd->argc = argc;
+       return -1;
++    }
+ 
+     ah = mr->data;
+     sd = pcalloc(cmd->tmp_pool, sizeof(sql_data_t));
+@@ -1754,8 +1832,10 @@
+   }
+ 
+   /* If we have no data... */
+-  if (sd->rnum == 0)
++  if (sd->rnum == 0) {
++    cmd->argc = argc;
+     return -1;
++  }
+ 
+   rows = sd->data;
+   numrows = sd->rnum;
+@@ -1785,15 +1865,15 @@
+ 
+   if (gids &&
+       gids->nelts > 0) {
+-    return gids->nelts;
++    res = gids->nelts;
+ 
+   } else if (groups &&
+            groups->nelts) {
+-    return groups->nelts;
++    res = groups->nelts;
+   }
+ 
+-  /* Default */
+-  return -1;
++  cmd->argc = argc;
++  return res;
+ }
+ 
+ /* Command handlers
+@@ -1890,20 +1970,27 @@
+ }
+ 
+ static const char *resolve_long_tag(cmd_rec *cmd, char *tag) {
++  const char *long_tag = NULL;
+ 
+   if (strcmp(tag, "protocol") == 0) {
+-    return pr_session_get_protocol(0);
++    long_tag = pr_session_get_protocol(0);
+   }
++  if (long_tag == NULL &&
++      strcmp(tag, "protocol") == 0) {
++    long_tag = pr_session_get_protocol(0);
++   }
+ 
+-  if (strlen(tag) > 5 &&
++  if (long_tag == NULL &&
++      strlen(tag) > 5 &&
+       strncmp(tag, "env:", 4) == 0) {
+     char *env;
+ 
+     env = pr_env_get(cmd->tmp_pool, tag + 4);
+-    return pstrdup(cmd->tmp_pool, env ? env : "");
++    long_tag = pstrdup(cmd->tmp_pool, env ? env : "");
+   }
+ 
+-  if (strlen(tag) > 6 &&
++  if (long_tag == NULL &&
++      strlen(tag) > 6 &&
+       strncmp(tag, "time:", 5) == 0) {
+     char time_str[128], *fmt;
+     time_t now;
+@@ -1916,10 +2003,12 @@
+     memset(time_str, 0, sizeof(time_str));
+     strftime(time_str, sizeof(time_str), fmt, time_info);
+ 
+-    return pstrdup(cmd->tmp_pool, time_str);
++    long_tag = pstrdup(cmd->tmp_pool, time_str);
+   }
+ 
+-  return NULL;
++  pr_trace_msg(trace_channel, 15, "returning long tag '%s' for tag '%s'",
++    long_tag, tag);
++  return long_tag;
+ }
+ 
+ static int resolve_numeric_tag(cmd_rec *cmd, char *tag) {
+@@ -1937,7 +2026,7 @@
+ }
+ 
+ static char *resolve_short_tag(cmd_rec *cmd, char tag) {
+-  char arg[PR_TUNABLE_PATH_MAX+1], *argp = NULL;
++  char arg[PR_TUNABLE_PATH_MAX+1], *argp = NULL, *short_tag = NULL;
+ 
+   memset(arg, '\0', sizeof(arg));
+ 
+@@ -2295,7 +2384,11 @@
+       break;
+   }
+ 
+-  return pstrdup(cmd->tmp_pool, argp);
++  short_tag = pstrdup(cmd->tmp_pool, argp);
++  pr_trace_msg(trace_channel, 15, "returning short tag '%s' for tag '%%%c'",
++    short_tag, tag);
++
++  return short_tag;
+ }
+ 
+ static char *named_query_type(cmd_rec *cmd, char *name) {
+@@ -2316,7 +2409,7 @@
+ static modret_t *process_named_query(cmd_rec *cmd, char *name) {
+   config_rec *c;
+   char *query = NULL, *tmp = NULL, *argp = NULL;
+-  char outs[SQL_MAX_STMT_LEN] = {'\0'}, *outsp = NULL;
++  char outs[SQL_MAX_STMT_LEN+1], *outsp = NULL;
+   char *esc_arg = NULL;
+   modret_t *mr = NULL;
+   int num = 0;
+@@ -2329,6 +2422,8 @@
+ 
+   c = find_config(main_server->conf, CONF_PARAM, query, FALSE);
+   if (c) {
++    size_t arglen, outs_remain = sizeof(outs)-1;
++
+     /* Select string fixup */
+     memset(outs, '\0', sizeof(outs));
+     outsp = outs;
+@@ -2400,18 +2495,47 @@
+           esc_arg = (char *) mr->data;
+         }
+ 
+-        sstrcat(outs, esc_arg, sizeof(outs));
+-        outsp += strlen(esc_arg);
++        arglen = strlen(esc_arg);
++        if (outs_remain > arglen) {
++          sstrcat(outsp, esc_arg, outs_remain);
++          outsp += arglen;
++          outs_remain -= arglen;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) for tag (%Lu bytes) when processing named "
++            "query '%s', ignoring tag", (unsigned long) outs_remain,
++            (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) arglen, name);
++        }
+ 
+         if (*tmp != '\0')
+           tmp++;
+ 
+       } else {
+-        *outsp++ = *tmp++;
++        if (outs_remain > 0) {
++          *outsp++ = *tmp;
++          outs_remain--;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.  And break out the processing loop.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) for input when processing named query '%s', "
++            "skipping", (unsigned long) outs_remain,
++            (unsigned long) SQL_MAX_STMT_LEN, name);
++          break;
++        }
++
++        if (*tmp != '\0')
++          tmp++;
+       }
+     }
+       
+-    *outsp++ = 0;
++    *outsp = '\0';
+ 
+     /* Construct our return data based on the type of query */
+     if (strcasecmp(c->argv[0], SQL_UPDATE_C) == 0) {
+@@ -2567,7 +2691,7 @@
+   char *type = NULL;
+   char *name = NULL;
+   config_rec *c = NULL;
+-  char outs[SQL_MAX_STMT_LEN] = {'\0'}, *outsp;
++  char outs[SQL_MAX_STMT_LEN+1], *outsp;
+   char *argp = NULL; 
+   char *tmp = NULL;
+   modret_t *mr = NULL;
+@@ -2581,6 +2705,8 @@
+   
+   c = find_config(main_server->conf, CONF_PARAM, name, FALSE);
+   while (c) {
++    size_t arglen, outs_remain = sizeof(outs)-1;
++
+     sql_log(DEBUG_FUNC, ">>> info_master (%s)", name);
+ 
+     /* we now have at least one config_rec.  Take the output string from 
+@@ -2594,6 +2720,8 @@
+     outsp = outs;
+ 
+     for (tmp = c->argv[1]; *tmp; ) {
++      pr_signals_handle();
++
+       if (*tmp == '%') {
+         /* is the tag a named_query reference?  If so, process the 
+          * named query, otherwise process it as a normal tag.. 
+@@ -2656,18 +2784,48 @@
+           argp = resolve_short_tag(cmd, *tmp);
+         }
+ 
+-        sstrcat(outs, argp, sizeof(outs));
+-        outsp += strlen(argp);
++        arglen = strlen(argp);
++        if (outs_remain > arglen) {
++          sstrcat(outsp, argp, outs_remain);
++          outsp += arglen;
++          outs_remain -= arglen;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) for tag (%Lu bytes) when processing "
++            "SQLShowInfo query '%s', ignoring tag",
++            (unsigned long) outs_remain, (unsigned long) SQL_MAX_STMT_LEN,
++            (unsigned long) arglen, name);
++        }
+ 
+         if (*tmp != '\0')
+           tmp++;
+ 
+       } else {
+-        *outsp++ = *tmp++;
++        if (outs_remain > 0) {
++          *outsp++ = *tmp++;
++          outs_remain--;
++
++        } else {
++          /* Log when this happens; it means we have more input than
++           * buffer space.  And break out of the processing loop.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) when processing SQLShowInfo query '%s', "
++            "ignoring input", (unsigned long) outs_remain,
++            (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) arglen);
++          break;
++        }
++
++        if (*tmp != '\0')
++          tmp++;
+       }
+     }
+       
+-    *outsp++ = 0;
++    *outsp = '\0';
+ 
+     /* Add the response, if we have one. */
+     if (strlen(outs) > 0) {
+@@ -2684,6 +2842,8 @@
+   
+   c = find_config(main_server->conf, CONF_PARAM, name, FALSE);
+   while (c) {
++    size_t arglen, outs_remain = sizeof(outs)-1;
++
+     sql_log(DEBUG_FUNC, ">>> info_master (%s)", name);
+ 
+     /* we now have at least one config_rec.  Take the output string from 
+@@ -2697,6 +2857,8 @@
+     outsp = outs;
+ 
+     for (tmp = c->argv[1]; *tmp; ) {
++      pr_signals_handle();
++
+       if (*tmp == '%') {
+         /* is the tag a named_query reference?  If so, process the 
+          * named query, otherwise process it as a normal tag.. 
+@@ -2759,18 +2921,48 @@
+           argp = resolve_short_tag(cmd, *tmp);
+         }
+ 
+-        sstrcat(outs, argp, sizeof(outs));
+-        outsp += strlen(argp);
++        arglen = strlen(argp);
++        if (outs_remain > arglen) {
++          sstrcat(outsp, argp, outs_remain);
++          outsp += arglen;
++          outs_remain -= arglen;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) for tag (%Lu bytes) when processing "
++            "SQLShowInfo query '%s', ignoring tag",
++            (unsigned long) outs_remain, (unsigned long) SQL_MAX_STMT_LEN,
++            (unsigned long) arglen, name);
++        }
+ 
+         if (*tmp != '\0')
+           tmp++;
+ 
+       } else {
+-        *outsp++ = *tmp++;
++        if (outs_remain > 0) {
++          *outsp++ = *tmp;
++          outs_remain--;
++
++        } else {
++          /* Log when this happens; it means we have more input than
++           * buffer space.  And break out of the processing loop.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) when processing SQLShowInfo query '%s', "
++            "ignoring input", (unsigned long) outs_remain,
++            (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) arglen);
++          break;
++        }
++
++        if (*tmp != '\0')
++          tmp++;
+       }
+     }
+       
+-    *outsp++ = 0;
++    *outsp = '\0';
+ 
+     /* Add the response, if we have one. */
+     if (strlen(outs) > 0) {
+@@ -2789,7 +2981,7 @@
+   char *type = NULL;
+   char *name = NULL;
+   config_rec *c = NULL;
+-  char outs[SQL_MAX_STMT_LEN] = {'\0'}, *outsp = NULL;
++  char outs[SQL_MAX_STMT_LEN+1], *outsp = NULL;
+   char *argp = NULL; 
+   char *tmp = NULL;
+   modret_t *mr = NULL;
+@@ -2803,6 +2995,8 @@
+   
+   c = find_config(main_server->conf, CONF_PARAM, name, FALSE);
+   while (c) {
++    size_t arglen, outs_remain = sizeof(outs)-1;
++
+     sql_log(DEBUG_FUNC, ">>> errinfo_master (%s)", name);
+ 
+     /* we now have at least one config_rec.  Take the output string from 
+@@ -2816,6 +3010,8 @@
+     outsp = outs;
+ 
+     for (tmp = c->argv[1]; *tmp; ) {
++      pr_signals_handle();
++
+       if (*tmp == '%') {
+         /* is the tag a named_query reference?  If so, process the 
+          * named query, otherwise process it as a normal tag.. 
+@@ -2879,18 +3075,48 @@
+           argp = resolve_short_tag(cmd, *tmp);
+         }
+ 
+-        sstrcat(outs, argp, sizeof(outs));
+-        outsp += strlen(argp);
++        arglen = strlen(argp);
++        if (outs_remain > arglen) {
++          sstrcat(outsp, argp, outs_remain);
++          outsp += arglen;
++          outs_remain -= arglen;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) for tag (%Lu bytes) when processing "
++            "SQLShowInfo query '%s', ignoring tag",
++            (unsigned long) outs_remain, (unsigned long) SQL_MAX_STMT_LEN,
++            (unsigned long) arglen, name);
++        }
+ 
+         if (*tmp != '\0')
+           tmp++;
+ 
+       } else {
+-        *outsp++ = *tmp++;
++        if (outs_remain > 0) {
++          *outsp++ = *tmp;
++          outs_remain--;
++
++        } else {
++          /* Log when this happens; it means we have more input than
++           * buffer space.  And break out of the processing loop.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) when processing SQLShowInfo query '%s', "
++            "ignoring input", (unsigned long) outs_remain,
++            (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) arglen);
++          break;
++        }
++
++        if (*tmp != '\0')
++          tmp++;
+       }
+     }
+       
+-    *outsp++ = 0;
++    *outsp = '\0';
+ 
+     /* Add the response, if we have one. */
+     if (strlen(outs) > 0) {
+@@ -2907,6 +3133,8 @@
+   
+   c = find_config(main_server->conf, CONF_PARAM, name, FALSE);
+   while (c) {
++    size_t arglen, outs_remain = sizeof(outs)-1;
++
+     sql_log(DEBUG_FUNC, ">>> errinfo_master (%s)", name);
+ 
+     /* we now have at least one config_rec.  Take the output string from 
+@@ -2984,18 +3212,48 @@
+           argp = resolve_short_tag(cmd, *tmp);
+         }
+ 
+-        sstrcat(outs, argp, sizeof(outs));
+-        outsp += strlen(argp);
++        arglen = strlen(argp);
++        if (outs_remain > arglen) {
++          sstrcat(outsp, argp, outs_remain);
++          outsp += arglen;
++          outs_remain -= arglen;
++
++        } else {
++          /* Log when this happens; it means we have more input than buffer
++           * space.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) for tag (%Lu bytes) when processing "
++            "SQLShowInfo query '%s', ignoring tag",
++            (unsigned long) outs_remain, (unsigned long) SQL_MAX_STMT_LEN,
++            (unsigned long) arglen, name);
++        }
+ 
+         if (*tmp != '\0')
+           tmp++;
+ 
+       } else {
+-        *outsp++ = *tmp++;
++        if (outs_remain > 0) {
++          *outsp++ = *tmp;
++          outs_remain--;
++
++        } else {
++          /* Log when this happens; it means we have more input than
++           * buffer space.  And break out of the processing loop.
++           */
++          sql_log(DEBUG_FUNC, "insufficient statement buffer size "
++            "(%lu of %lu bytes) when processing SQLShowInfo query '%s', "
++            "ignoring input", (unsigned long) outs_remain,
++            (unsigned long) SQL_MAX_STMT_LEN, (unsigned long) arglen);
++          break;
++        }
++
++        if (*tmp != '\0')
++          tmp++;
+       }
+     }
+       
+-    *outsp++ = 0;
++    *outsp = '\0';
+ 
+     /* Add the response, if we have one. */
+     if (strlen(outs) > 0) {
--- proftpd-dfsg-1.3.3a.orig/debian/patches/00list
+++ proftpd-dfsg-1.3.3a/debian/patches/00list
@@ -0,0 +1,24 @@
+autotools
+change_pam_name
+xferstats.holger-preiss
+ftpasswd.cracklib.location
+quotatab_modules
+mod_sql_mysql.c
+mod_wrap_noparanoid
+ftpstats
+mod_cap
+odbc
+mod_vroot
+3481
+3483
+3487
+3492
+3494
+3501
+3519
+3521
+3536
+CVE-2011-1137
+3624
+3711
+3841
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3487.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3487.dpatch
@@ -0,0 +1,48 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3487.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/modules/mod_ls.c proftpd-dfsg/modules/mod_ls.c
+--- proftpd-dfsg~/modules/mod_ls.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/modules/mod_ls.c	2010-09-14 10:46:32.000000000 +0200
+@@ -303,7 +303,8 @@
+         errno != 0) {
+       int xerrno = errno;
+ 
+-      if (session.d) {
++      if (session.d &&
++          session.d->outstrm) {
+         xerrno = PR_NETIO_ERRNO(session.d->outstrm);
+       }
+ 
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/data.c proftpd-dfsg/src/data.c
+--- proftpd-dfsg~/src/data.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/src/data.c	2010-09-14 10:46:32.000000000 +0200
+@@ -894,6 +894,11 @@
+        * already have a data transfer in progress.  For any data transfer
+        * command, send a 450 ("busy") reply.  Looks like almost all of the
+        * data transfer commands accept that response, as per RFC959.
++       *
++       * We also prevent the EPRT, EPSV, PASV, and PORT commands, since
++       * they will also interfere with the current data transfer.  In doing
++       * so, we break RFC compliance a little; RFC959 does not allow a
++       * response code of 450 for those commands (although it should).
+        */
+       if (strcmp(cmd->argv[0], C_APPE) == 0 ||
+           strcmp(cmd->argv[0], C_LIST) == 0 ||
+@@ -901,7 +906,11 @@
+           strcmp(cmd->argv[0], C_NLST) == 0 ||
+           strcmp(cmd->argv[0], C_RETR) == 0 ||
+           strcmp(cmd->argv[0], C_STOR) == 0 ||
+-          strcmp(cmd->argv[0], C_STOU) == 0) {
++          strcmp(cmd->argv[0], C_STOU) == 0 ||
++          strcmp(cmd->argv[0], C_PORT) == 0 ||
++          strcmp(cmd->argv[0], C_EPRT) == 0 ||
++          strcmp(cmd->argv[0], C_PASV) == 0 ||
++          strcmp(cmd->argv[0], C_EPSV) == 0) {
+         pool *resp_pool;
+ 
+         pr_trace_msg(trace_channel, 5,
--- proftpd-dfsg-1.3.3a.orig/debian/patches/change_pam_name.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/change_pam_name.dpatch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## change_pam_name.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Debian specific change ftp -> proftpd in PAM configuration.
+
+@DPATCH@
+diff -urNad --exclude=CVS --exclude=.svn ./modules/mod_auth_pam.c /tmp/dpep-work.jZHh8Y/proftpd-1.2.10+1.3.0rc1-1/modules/mod_auth_pam.c
+--- ./modules/mod_auth_pam.c	2004-11-03 17:53:35.000000000 +0100
++++ /tmp/dpep-work.jZHh8Y/proftpd-1.2.10+1.3.0rc1-1/modules/mod_auth_pam.c	2005-06-13 11:15:45.000000000 +0200
+@@ -64,7 +64,7 @@
+ module auth_pam_module;
+ 
+ static pam_handle_t *	pamh			= NULL;
+-static char *		pamconfig		= "ftp";
++static char *		pamconfig		= "proftpd";
+ static char *		pam_user 		= NULL;
+ static char *		pam_pass 		= NULL;
+ static size_t		pam_user_len		= 0;
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3501.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3501.dpatch
@@ -0,0 +1,42 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3501.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/auth.c proftpd-dfsg/src/auth.c
+--- proftpd-dfsg~/src/auth.c	2010-09-13 15:38:16.000000000 +0200
++++ proftpd-dfsg/src/auth.c	2010-09-14 10:47:16.000000000 +0200
+@@ -1204,14 +1204,18 @@
+   }
+ 
+   if (!is_alias) {
+-    auth_alias_only = get_param_ptr(anon_c ? anon_c->subset : main_server->conf,
++    /* Yes, we do want to be using c, not anon_c, here.  Otherwise, we
++     * risk a regression of Bug#3501.
++     */
++
++    auth_alias_only = get_param_ptr(c ? c->subset : main_server->conf,
+       "AuthAliasOnly", FALSE);
+ 
+     if (auth_alias_only &&
+         *auth_alias_only == TRUE) {
+-      if (anon_c &&
+-          anon_c->config_type == CONF_ANON) {
+-        anon_c = NULL;
++      if (c &&
++          c->config_type == CONF_ANON) {
++        c = NULL;
+ 
+       } else {
+         *login_name = NULL;
+@@ -1224,7 +1228,7 @@
+           *auth_alias_only == TRUE)
+         *login_name = NULL;
+ 
+-      if ((!login_name || !anon_c) &&
++      if ((!login_name || !c) &&
+           anon_name) {
+         *anon_name = NULL;
+       }
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3841.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3841.dpatch
@@ -0,0 +1,397 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3841.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sftp/fxp.c proftpd-dfsg/contrib/mod_sftp/fxp.c
+--- proftpd-dfsg~/contrib/mod_sftp/fxp.c	2013-01-08 13:25:42.000000000 +0100
++++ proftpd-dfsg/contrib/mod_sftp/fxp.c	2013-01-08 13:25:42.000000000 +0100
+@@ -5341,6 +5341,7 @@
+   uint32_t attr_flags, buflen, bufsz, status_code;
+   struct fxp_packet *resp;
+   cmd_rec *cmd, *cmd2;
++  int res;
+ 
+   path = sftp_msg_read_string(fxp->pool, &fxp->payload, &fxp->payload_sz);
+   if (fxp_session->client_version >= fxp_utf8_protocol_version) {
+@@ -5488,7 +5489,8 @@
+   (void) pr_log_writefile(sftp_logfd, MOD_SFTP_VERSION,
+     "creating directory '%s' with mode 0%o", path, (unsigned int) dir_mode);
+ 
+-  if (pr_fsio_mkdir(path, dir_mode) < 0) {
++  res = pr_fsio_smkdir(fxp->pool, path, dir_mode, (uid_t) -1, (gid_t) -1);
++  if (res < 0) {
+     const char *reason;
+     int xerrno = errno;
+ 
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/contrib/mod_sftp/scp.c proftpd-dfsg/contrib/mod_sftp/scp.c
+--- proftpd-dfsg~/contrib/mod_sftp/scp.c	2013-01-08 12:34:48.000000000 +0100
++++ proftpd-dfsg/contrib/mod_sftp/scp.c	2013-01-08 13:25:42.000000000 +0100
+@@ -711,7 +711,7 @@
+       if (xerrno == ENOENT) {
+         pr_trace_msg(trace_channel, 5, "creating directory '%s'", sp->filename);
+ 
+-        if (pr_fsio_mkdir(sp->filename, 0777) < 0) {
++        if (pr_fsio_smkdir(p, sp->filename, 0777, (uid_t) -1, (gid_t) -1) < 0) {
+           xerrno = errno;
+ 
+           (void) pr_log_writefile(sftp_logfd, MOD_SFTP_VERSION,
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/include/fsio.h proftpd-dfsg/include/fsio.h
+--- proftpd-dfsg~/include/fsio.h	2013-01-08 12:34:48.000000000 +0100
++++ proftpd-dfsg/include/fsio.h	2013-01-08 13:25:42.000000000 +0100
+@@ -129,6 +129,7 @@
+   int (*fchmod)(pr_fh_t *, int, mode_t);
+   int (*chown)(pr_fs_t *, const char *, uid_t, gid_t);
+   int (*fchown)(pr_fh_t *, int, uid_t, gid_t);
++  int (*lchown)(pr_fs_t *, const char *, uid_t, gid_t);
+   int (*access)(pr_fs_t *, const char *, int, uid_t, gid_t, array_header *);
+   int (*faccess)(pr_fh_t *, int, uid_t, gid_t, array_header *);
+   int (*utimes)(pr_fs_t *, const char *, struct timeval *);
+@@ -249,6 +250,7 @@
+ int pr_fsio_rmdir(const char *);
+ int pr_fsio_rename(const char *, const char *);
+ int pr_fsio_rename_canon(const char *, const char *);
++int pr_fsio_smkdir(pool *, const char *, mode_t, uid_t, gid_t);
+ int pr_fsio_unlink(const char *);
+ int pr_fsio_unlink_canon(const char *);
+ pr_fh_t *pr_fsio_open(const char *, int);
+@@ -270,6 +272,7 @@
+ int pr_fsio_chmod_canon(const char *, mode_t);
+ int pr_fsio_chown(const char *, uid_t, gid_t);
+ int pr_fsio_fchown(pr_fh_t *, uid_t, gid_t);
++int pr_fsio_lchown(const char *, uid_t, gid_t);
+ int pr_fsio_chown_canon(const char *, uid_t, gid_t);
+ int pr_fsio_chroot(const char *);
+ int pr_fsio_access(const char *, int, uid_t, gid_t, array_header *);
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/modules/mod_core.c proftpd-dfsg/modules/mod_core.c
+--- proftpd-dfsg~/modules/mod_core.c	2013-01-08 12:34:48.000000000 +0100
++++ proftpd-dfsg/modules/mod_core.c	2013-01-08 13:25:42.000000000 +0100
+@@ -4048,7 +4048,8 @@
+     return PR_ERROR(cmd);
+   }
+ 
+-  if (pr_fsio_mkdir(dir, 0777) < 0) {
++  if (pr_fsio_smkdir(cmd->tmp_pool, dir, 0777, session.fsuid,
++      session.fsgid) < 0) {
+     int xerrno = errno;
+ 
+     (void) pr_trace_msg("fileperms", 1, "%s, user '%s' (UID %lu, GID %lu): "
+@@ -4060,71 +4061,6 @@
+     return PR_ERROR(cmd);
+   }
+ 
+-  /* Check to see if we need to change the ownership (user and/or group) of
+-   * the newly created directory.
+-   */
+-  if (session.fsuid != (uid_t) -1) {
+-    int err = 0, iserr = 0;
+-
+-    pr_fsio_stat(dir, &st);
+-
+-    PRIVS_ROOT
+-    if (pr_fsio_chown(dir, session.fsuid, session.fsgid) == -1) {
+-      iserr++;
+-      err = errno;
+-    }
+-    PRIVS_RELINQUISH
+-
+-    if (iserr) {
+-      pr_log_pri(PR_LOG_WARNING, "chown() as root failed: %s", strerror(err));
+-
+-    } else {
+-      if (session.fsgid != (gid_t) -1) {
+-        pr_log_debug(DEBUG2, "root chown(%s) to uid %lu, gid %lu successful",
+-          dir, (unsigned long) session.fsuid, (unsigned long) session.fsgid);
+-
+-      } else {
+-        pr_log_debug(DEBUG2, "root chown(%s) to uid %lu successful", dir,
+-          (unsigned long) session.fsuid);
+-      }
+-    }
+-
+-  } else if (session.fsgid != (gid_t) -1) {
+-    register unsigned int i;
+-    int use_root_privs = TRUE;
+-
+-    pr_fsio_stat(dir, &st);
+-
+-    /* Check if session.fsgid is in session.gids.  If not, use root privs.  */
+-    for (i = 0; i < session.gids->nelts; i++) {
+-      gid_t *group_ids = session.gids->elts;
+-
+-      if (group_ids[i] == session.fsgid) {
+-        use_root_privs = FALSE;
+-        break;
+-      }
+-    }
+-
+-    if (use_root_privs) {
+-      PRIVS_ROOT
+-    }
+-
+-    res = pr_fsio_chown(dir, (uid_t) -1, session.fsgid);
+-
+-    if (use_root_privs) {
+-      PRIVS_RELINQUISH
+-    }
+-
+-    if (res == -1) {
+-      pr_log_pri(PR_LOG_WARNING, "%schown() failed: %s",
+-        use_root_privs ? "root " : "", strerror(errno));
+-
+-    } else { 
+-      pr_log_debug(DEBUG2, "%schown(%s) to gid %lu successful",
+-        use_root_privs ? "root " : "", dir, (unsigned long) session.fsgid);
+-    }
+-  }
+-
+   pr_response_add(R_257, _("\"%s\" - Directory successfully created"),
+     quote_dir(cmd, dir));
+ 
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/fsio.c proftpd-dfsg/src/fsio.c
+--- proftpd-dfsg~/src/fsio.c	2013-01-08 12:34:48.000000000 +0100
++++ proftpd-dfsg/src/fsio.c	2013-01-08 13:35:09.000000000 +0100
+@@ -29,6 +29,7 @@
+  */
+ 
+ #include "conf.h"
++#include "privs.h"
+ 
+ #ifdef HAVE_REGEX_H
+ # include <regex.h>
+@@ -179,6 +180,10 @@
+   return fchown(fd, uid, gid);
+ }
+ 
++static int sys_lchown(pr_fs_t *fs, const char *path, uid_t uid, gid_t gid) {
++  return lchown(path, uid, gid);
++}
++
+ /* We provide our own equivalent of access(2) here, rather than using
+  * access(2) directly, because access(2) uses the real IDs, rather than
+  * the effective IDs, of the process.
+@@ -2477,6 +2482,170 @@
+   return res;
+ }
+ 
++/* "secure mkdir" variant of mkdir(2), uses mkdtemp(3), lchown(2), and
++ * rename(2) to create a directory which cannot be hijacked by a symlink
++ * race (hopefully) before the UserOwner/GroupOwner ownership changes are
++ * applied.
++ */
++int pr_fsio_smkdir(pool *p, const char *path, mode_t mode, uid_t uid,
++    gid_t gid) {
++  int res;
++  char *tmpl_path;
++#ifdef HAVE_MKDTEMP
++  mode_t mask, *dir_umask;
++  char *dst_dir, *tmpl, *ptr;
++  size_t tmpl_len;
++  struct stat st;
++#endif /* HAVE_MKDTEMP */
++
++  if (path == NULL) {
++    errno = EINVAL;
++    return -1;
++  }
++
++#ifdef HAVE_MKDTEMP
++  ptr = strrchr(path, '/');
++  if (ptr == NULL) {
++    errno = EINVAL;
++    return -1;
++  }
++
++  dst_dir = pstrndup(p, path, (ptr - path));
++  res = lstat(dst_dir, &st);
++  if (res < 0) {
++    return -1;
++  }
++
++  if (!S_ISDIR(st.st_mode)) {
++    errno = EPERM;
++    return -1;
++  }
++
++  /* Allocate enough space for the temporary name: the length of the
++   * destination directory, a slash, 9 X's, 3 for the prefix, and 1 for the
++   * trailing NUL.
++   */
++  tmpl_len = strlen(path) + 14;
++  tmpl = pcalloc(p, tmpl_len);
++  snprintf(tmpl, tmpl_len-1, "%s/dstXXXXXXXXX", dst_dir);
++
++  /* Use mkdtemp(3) to create the temporary directory (in the same destination
++   * directory as the target path).
++   */
++  tmpl_path = mkdtemp(tmpl);
++  if (tmpl_path == NULL) {
++    return -1;
++  }
++#else
++
++  res = pr_fsio_mkdir(path, mode);
++  if (res < 0) {
++    return -1;
++  }
++
++  tmpl_path = pstrdup(p, path);
++
++#endif /* HAVE_MKDTEMP */
++
++  if (uid != (uid_t) -1) {
++    int xerrno;
++
++    PRIVS_ROOT
++    res = pr_fsio_lchown(tmpl_path, uid, gid);
++    xerrno = errno;
++    PRIVS_RELINQUISH
++
++    if (res < 0) {
++      pr_log_pri(PR_LOG_WARNING, "lchown(%s) as root failed: %s", tmpl_path,
++        strerror(xerrno));
++
++    } else {
++      if (gid != (gid_t) -1) {
++        pr_log_debug(DEBUG2, "root lchown(%s) to UID %lu, GID %lu successful",
++          tmpl_path, (unsigned long) uid, (unsigned long) gid);
++
++      } else {
++        pr_log_debug(DEBUG2, "root lchown(%s) to UID %lu successful",
++          tmpl_path, (unsigned long) uid);
++      }
++    }
++
++  } else if (gid != (gid_t) -1) {
++    register unsigned int i;
++    int use_root_privs = TRUE, xerrno;
++
++    /* Check if session.fsgid is in session.gids.  If not, use root privs.  */
++    for (i = 0; i < session.gids->nelts; i++) {
++      gid_t *group_ids = session.gids->elts;
++
++      if (group_ids[i] == gid) {
++        use_root_privs = FALSE;
++        break;
++      }
++    }
++
++    if (use_root_privs) {
++      PRIVS_ROOT
++    }
++
++    res = pr_fsio_lchown(tmpl_path, (uid_t) -1, gid);
++    xerrno = errno;
++
++    if (use_root_privs) {
++      PRIVS_RELINQUISH
++    }
++
++    if (res < 0) {
++      pr_log_pri(PR_LOG_WARNING, "%slchown(%s) failed: %s",
++        use_root_privs ? "root " : "", tmpl_path, strerror(xerrno));
++
++    } else {
++      pr_log_debug(DEBUG2, "%slchown(%s) to GID %lu successful",
++        use_root_privs ? "root " : "", tmpl_path, (unsigned long) gid);
++    }
++  }
++
++#ifdef HAVE_MKDTEMP
++  /* Use chmod(2) to set the permission that we want.
++   *
++   * mkdtemp(3) creates a directory with 0700 perms; we are given the
++   * target mode (modulo the configured Umask).
++   */
++  dir_umask = get_param_ptr(CURRENT_CONF, "DirUmask", FALSE);
++  if (dir_umask) {
++    mask = *dir_umask;
++
++  } else {
++    mask = (mode_t) 0022;
++  }
++
++  res = chmod(tmpl_path, mode & ~mask);
++  if (res < 0) {
++    int xerrno = errno;
++
++    (void) rmdir(tmpl_path);
++
++    errno = xerrno;
++    return -1;
++  }
++
++  /* Use rename(2) to move the temporary directory into place at the
++   * target path.
++   */
++  res = rename(tmpl_path, path);
++  if (res < 0) {
++    int xerrno = errno;
++    
++    (void) rmdir(tmpl_path);
++    
++    errno = xerrno;
++    return -1;
++  }
++#endif /* HAVE_MKDTEMP */
++
++  return 0;
++}
++
+ int pr_fsio_rmdir(const char *path) {
+   int res;
+   pr_fs_t *fs;
+@@ -3336,6 +3505,33 @@
+   return res;
+ }
+ 
++int pr_fsio_lchown(const char *name, uid_t uid, gid_t gid) {
++  int res;
++  pr_fs_t *fs;
++
++  fs = lookup_file_fs(name, NULL, FSIO_FILE_CHOWN);
++  if (fs == NULL) {
++    return -1;
++  }
++
++  /* Find the first non-NULL custom lchown handler.  If there are none,
++   * use the system chown.
++   */
++  while (fs && fs->fs_next && !fs->lchown) {
++    fs = fs->fs_next;
++  }
++
++  pr_trace_msg(trace_channel, 8, "using %s lchown() for path '%s'",
++    fs->fs_name, name);
++  res = (fs->lchown)(fs, name, uid, gid);
++
++  if (res == 0) {
++    pr_fs_clear_cache();
++  }
++
++  return res;
++}
++
+ int pr_fsio_access(const char *path, int mode, uid_t uid, gid_t gid,
+     array_header *suppl_gids) {
+   pr_fs_t *fs;
+@@ -3955,6 +4151,7 @@
+   root_fs->fchmod = sys_fchmod;
+   root_fs->chown = sys_chown;
+   root_fs->fchown = sys_fchown;
++  root_fs->lchown = sys_lchown;
+   root_fs->access = sys_access;
+   root_fs->faccess = sys_faccess;
+   root_fs->utimes = sys_utimes;
+@@ -4036,6 +4233,9 @@
+   if (fs->chown)
+     hooks = pstrcat(p, hooks, *hooks ? ", " : "", "chown(2)", NULL);
+ 
++  if (fs->lchown)
++    hooks = pstrcat(p, hooks, *hooks ? ", " : "", "lchown(2)", NULL);
++
+   if (fs->access)
+     hooks = pstrcat(p, hooks, *hooks ? ", " : "", "access(2)", NULL);
+ 
--- proftpd-dfsg-1.3.3a.orig/debian/patches/autotools.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/autotools.dpatch
@@ -0,0 +1,26 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## autotools.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Remove autoheader and autoconf running to avoid 
+## DP: possibile issues on systems with autotools installed.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/Makefile.in proftpd-dfsg/Makefile.in
+--- proftpd-dfsg~/Makefile.in	2010-04-19 11:46:04.000000000 +0200
++++ proftpd-dfsg/Makefile.in	2010-04-19 12:11:59.000000000 +0200
+@@ -195,10 +195,10 @@
+ 
+ 
+ # autoheader might not change config.h.in, so touch a stamp file.
+-${srcdir}/config.h.in: stamp-h.in
+-${srcdir}/stamp-h.in: configure.in acconfig.h
+-	cd ${srcdir} && autoheader
+-	echo timestamp > ${srcdir}/stamp-h.in
++#${srcdir}/config.h.in: stamp-h.in
++#${srcdir}/stamp-h.in: configure.in acconfig.h
++#	cd ${srcdir} && autoheader
++#	echo timestamp > ${srcdir}/stamp-h.in
+ 
+ config.h: stamp-h
+ stamp-h: config.h.in config.status
--- proftpd-dfsg-1.3.3a.orig/debian/patches/mod_sql_mysql.c.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/mod_sql_mysql.c.dpatch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## mod_sql_mysql.c.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Debian specific fix for mysql.h location.
+
+@DPATCH@
+diff -urNad trunk~/contrib/mod_sql_mysql.c trunk/contrib/mod_sql_mysql.c
+--- trunk~/contrib/mod_sql_mysql.c	2007-10-09 23:45:04.000000000 +0200
++++ trunk/contrib/mod_sql_mysql.c	2007-10-10 00:11:38.000000000 +0200
+@@ -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
--- proftpd-dfsg-1.3.3a.orig/debian/patches/3711.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/3711.dpatch
@@ -0,0 +1,31 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 3711.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' proftpd-dfsg~/src/main.c proftpd-dfsg/src/main.c
+--- proftpd-dfsg~/src/main.c	2011-11-11 12:23:30.000000000 +0100
++++ proftpd-dfsg/src/main.c	2011-11-11 12:39:53.000000000 +0100
+@@ -706,6 +706,10 @@
+       _dispatch(cmd, LOG_CMD_ERR, FALSE, NULL);
+ 
+       pr_response_flush(&resp_err_list);
++
++      /* Restore any previous pool to the Response API. */
++      pr_response_set_pool(resp_pool);
++
+       return success;
+     }
+ 
+@@ -761,6 +765,9 @@
+         break;
+ 
+       default:
++        /* Restore any previous pool to the Response API. */
++        pr_response_set_pool(resp_pool);
++
+         errno = EINVAL;
+         return -1;
+     }
--- proftpd-dfsg-1.3.3a.orig/debian/patches/mod_wrap_noparanoid.dpatch
+++ proftpd-dfsg-1.3.3a/debian/patches/mod_wrap_noparanoid.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## mod_wrap_noparanoid.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Avoid PARANOID mode in the tcpwrapper mod_wrap module.
+
+@DPATCH@
+diff -urNad proftpd-1.3.0~/contrib/mod_wrap.c proftpd-1.3.0/contrib/mod_wrap.c
+--- proftpd-1.3.0~/contrib/mod_wrap.c	2004-10-31 01:16:41.000000000 +0200
++++ proftpd-1.3.0/contrib/mod_wrap.c	2006-05-10 22:05:53.000000000 +0200
+@@ -888,8 +888,7 @@
+ 
+   fromhost(&request);
+ 
+-  if (STR_EQ(eval_hostname(request.client), paranoid) ||
+-      !hosts_access(&request)) {
++  if (!hosts_access(&request)) {
+     char *denymsg = NULL;
+ 
+     /* log the denied connection */
--- proftpd-dfsg-1.3.3a.orig/debian/templates/default
+++ proftpd-dfsg-1.3.3a/debian/templates/default
@@ -0,0 +1,9 @@
+# Defaults for proftpd initscript
+
+# Master system-wide proftpd switch. The initscript
+# will not run if it is not set to yes.
+RUN="yes"
+
+# Default options.
+# For more exhaustive logging, try "-d 3".
+OPTIONS=""
--- proftpd-dfsg-1.3.3a.orig/debian/templates/ftpusers
+++ proftpd-dfsg-1.3.3a/debian/templates/ftpusers
@@ -0,0 +1,14 @@
+# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).
+
+root
+daemon
+bin
+sys
+sync
+games
+man
+lp
+mail
+news
+uucp
+nobody
--- proftpd-dfsg-1.3.3a.orig/debian/templates/proftpd.conf
+++ proftpd-dfsg-1.3.3a/debian/templates/proftpd.conf
@@ -0,0 +1,176 @@
+#
+# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
+# To really apply changes reload proftpd after modifications.
+# 
+
+# Includes DSO modules
+Include /etc/proftpd/modules.conf
+
+# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
+UseIPv6				on
+# If set on you can experience a longer connection delay in many cases.
+IdentLookups			off
+
+ServerName			"Debian"
+ServerType			standalone
+DeferWelcome			off
+
+MultilineRFC2228		on
+DefaultServer			on
+ShowSymlinks			on
+
+TimeoutNoTransfer		600
+TimeoutStalled			600
+TimeoutIdle			1200
+
+DisplayLogin                    welcome.msg
+DisplayChdir               	.message true
+ListOptions                	"-l"
+
+DenyFilter			\*.*/
+
+# Use this to jail all users in their homes 
+# DefaultRoot			~
+
+# Users require a valid shell listed in /etc/shells to login.
+# Use this directive to release that constrain.
+# RequireValidShell		off
+
+# Port 21 is the standard FTP port.
+Port				21
+
+# In some cases you have to specify passive ports range to by-pass
+# firewall limitations. Ephemeral ports can be used for that, but
+# feel free to use a more narrow range.
+# PassivePorts                  49152 65534
+
+# If your host was NATted, this option is useful in order to
+# allow passive tranfers to work. You have to use your public
+# address and opening the passive ports used on your firewall as well.
+# MasqueradeAddress		1.2.3.4
+
+# This is useful for masquerading address with dynamic IPs:
+# refresh any configured MasqueradeAddress directives every 8 hours
+<IfModule mod_dynmasq.c>
+# DynMasqRefresh 28800
+</IfModule>
+
+# To prevent DoS attacks, set the maximum number of child processes
+# to 30.  If you need to allow more than 30 concurrent connections
+# at once, simply increase this value.  Note that this ONLY works
+# in standalone mode, in inetd mode you should use an inetd server
+# that allows you to limit maximum number of processes per service
+# (such as xinetd)
+MaxInstances			30
+
+# Set the user and group that the server normally runs at.
+User				proftpd
+Group				nogroup
+
+# Umask 022 is a good standard umask to prevent new files and dirs
+# (second parm) from being group and world writable.
+Umask				022  022
+# Normally, we want files to be overwriteable.
+AllowOverwrite			on
+
+# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
+# PersistentPasswd		off
+
+# This is required to use both PAM-based authentication and local passwords
+# AuthOrder			mod_auth_pam.c* mod_auth_unix.c
+
+# Be warned: use of this directive impacts CPU average load!
+# Uncomment this if you like to see progress and transfer rate with ftpwho
+# in downloads. That is not needed for uploads rates.
+#
+# UseSendFile			off
+
+TransferLog /var/log/proftpd/xferlog
+SystemLog   /var/log/proftpd/proftpd.log
+
+<IfModule mod_quotatab.c>
+QuotaEngine off
+</IfModule>
+
+<IfModule mod_ratio.c>
+Ratios off
+</IfModule>
+
+
+# Delay engine reduces impact of the so-called Timing Attack described in
+# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
+# It is on by default. 
+<IfModule mod_delay.c>
+DelayEngine on
+</IfModule>
+
+<IfModule mod_ctrls.c>
+ControlsEngine        off
+ControlsMaxClients    2
+ControlsLog           /var/log/proftpd/controls.log
+ControlsInterval      5
+ControlsSocket        /var/run/proftpd/proftpd.sock
+</IfModule>
+
+<IfModule mod_ctrls_admin.c>
+AdminControlsEngine off
+</IfModule>
+
+#
+# Alternative authentication frameworks
+#
+#Include /etc/proftpd/ldap.conf
+#Include /etc/proftpd/sql.conf
+
+#
+# This is used for FTPS connections
+#
+#Include /etc/proftpd/tls.conf
+
+#
+# Useful to keep VirtualHost/VirtualRoot directives separated
+#
+#Include /etc/proftpd/virtuals.con
+
+# A basic anonymous configuration, no upload directories.
+
+# <Anonymous ~ftp>
+#   User				ftp
+#   Group				nogroup
+#   # We want clients to be able to login with "anonymous" as well as "ftp"
+#   UserAlias			anonymous ftp
+#   # Cosmetic changes, all files belongs to ftp user
+#   DirFakeUser	on ftp
+#   DirFakeGroup on ftp
+# 
+#   RequireValidShell		off
+# 
+#   # Limit the maximum number of anonymous logins
+#   MaxClients			10
+# 
+#   # We want 'welcome.msg' displayed at login, and '.message' displayed
+#   # in each newly chdired directory.
+#   DisplayLogin			welcome.msg
+#   DisplayChdir		.message
+# 
+#   # Limit WRITE everywhere in the anonymous chroot
+#   <Directory *>
+#     <Limit WRITE>
+#       DenyAll
+#     </Limit>
+#   </Directory>
+# 
+#   # Uncomment this if you're brave.
+#   # <Directory incoming>
+#   #   # Umask 022 is a good standard umask to prevent new files and dirs
+#   #   # (second parm) from being group and world writable.
+#   #   Umask				022  022
+#   #            <Limit READ WRITE>
+#   #            DenyAll
+#   #            </Limit>
+#   #            <Limit STOR>
+#   #            AllowAll
+#   #            </Limit>
+#   # </Directory>
+# 
+# </Anonymous>
--- proftpd-dfsg-1.3.3a.orig/debian/templates/tls.conf
+++ proftpd-dfsg-1.3.3a/debian/templates/tls.conf
@@ -0,0 +1,56 @@
+#
+# Proftpd sample configuration for FTPS connections.
+#
+# Note that FTPS impose some limitations in NAT traversing.
+# See http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html
+# for more information.
+#
+
+<IfModule mod_tls.c>
+#TLSEngine                               on
+#TLSLog                                  /var/log/proftpd/tls.log
+#TLSProtocol                             SSLv23
+#
+# Server SSL certificate. You can generate a self-signed certificate using 
+# a command like:
+#
+# openssl req -x509 -newkey rsa:1024 \
+#          -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt \
+#          -nodes -days 365
+#
+# The proftpd.key file must be readable by root only. The other file can be
+# readable by anyone.
+#
+# chmod 0600 /etc/ssl/private/proftpd.key 
+# chmod 0640 /etc/ssl/private/proftpd.key
+# 
+#TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
+#TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key
+#
+# CA the server trusts
+#TLSCACertificateFile 			 /etc/ssl/certs/CA.pem
+# or avoid CA cert and be verbose
+#TLSOptions                             NoCertRequest EnableDiags 
+#
+# Per default drop connection if client tries to start a renegotiate
+# This is a fix for CVE-2009-3555 but could break some clients.
+#
+#TLSOptions 							AllowClientRenegotiations
+#
+# Authenticate clients that want to use FTP over TLS?
+#
+#TLSVerifyClient                         off
+#
+# Are clients required to use FTP over TLS when talking to this server?
+#
+#TLSRequired                             on
+#
+# Allow SSL/TLS renegotiations when the client requests them, but
+# do not force the renegotations.  Some clients do not support
+# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
+# clients will close the data connection, or there will be a timeout
+# on an idle data connection.
+#
+#TLSRenegotiate                          required off
+</IfModule>
+
--- proftpd-dfsg-1.3.3a.orig/debian/templates/sql.conf
+++ proftpd-dfsg-1.3.3a/debian/templates/sql.conf
@@ -0,0 +1,33 @@
+#
+# Proftpd sample configuration for SQL-based authentication.
+#
+# (This is not to be used if you prefer a PAM-based SQL authentication)
+#
+
+<IfModule mod_sql.c>
+#
+# Choose a SQL backend among MySQL or PostgreSQL.
+# Both modules are loaded in default configuration, so you have to specify the backend 
+# or comment out the unused module in /etc/proftpd/modules.conf.
+# Use 'mysql' or 'postgres' as possible values.
+#
+#SQLBackend	mysql
+#
+#SQLEngine on
+#SQLAuthenticate on
+#
+# Use both a crypted or plaintext password 
+#SQLAuthTypes Crypt Plaintext
+#
+# Use a backend-crypted or a crypted password
+#SQLAuthTypes Backend Crypt 
+#
+# Connection 
+#SQLConnectInfo proftpd@sql.example.com proftpd_user proftpd_password
+#
+# Describes both users/groups tables
+#
+#SQLUserInfo users userid passwd uid gid homedir shell
+#SQLGroupInfo groups groupname gid members
+#
+</IfModule>
--- proftpd-dfsg-1.3.3a.orig/debian/templates/virtuals.conf
+++ proftpd-dfsg-1.3.3a/debian/templates/virtuals.conf
@@ -0,0 +1,38 @@
+#
+# Proftpd sample configuration for Virtual Hosts and Virtual Roots.
+#
+# Note that FTP protocol requires IP based virtual host, not name based.
+#
+
+# 
+# A generic sample virtual host.
+#
+#<VirtualHost ftp.server.com>
+#ServerAdmin             ftpmaster@server.com
+#ServerName              "Big FTP Archive"
+#TransferLog             /var/log/proftpd/xfer/ftp.server.com
+#MaxLoginAttempts        3
+#RequireValidShell       no
+#DefaultRoot             /srv/ftp_root
+#AllowOverwrite          yes
+#</VirtualHost>
+
+#
+# The vroot module is not required, but can be useful for shared
+# directories.
+#
+<IfModule mod_vroot.c>
+#VRootEngine on
+
+#DefaultRoot ~
+#VRootAlias upload /var/ftp/upload
+#
+#<VirtualHost a.b.c.d>
+#VRootEngine on
+#VRootServerRoot /etc/ftpd/a.b.c.d/
+#VRootOptions allowSymlinks
+#DefaultRoot ~
+#</VirtualHost>
+#
+</IfModule>
+
--- proftpd-dfsg-1.3.3a.orig/debian/templates/welcome.msg
+++ proftpd-dfsg-1.3.3a/debian/templates/welcome.msg
@@ -0,0 +1,7 @@
+Welcome, archive user %U@%R !
+
+The local time is: %T
+
+This is an experimental FTP server.  If you have any unusual problems,
+please report them via e-mail to <root@%L>.
+
--- proftpd-dfsg-1.3.3a.orig/debian/templates/ldap.conf
+++ proftpd-dfsg-1.3.3a/debian/templates/ldap.conf
@@ -0,0 +1,26 @@
+#
+# Proftpd sample configuration for LDAP authentication.
+#
+# (This is not to be used if you prefer a PAM-based SQL authentication)
+#
+
+<IfModule mod_ldap.c>
+#
+# This is used for ordinary LDAP connections, with or without TLS
+#
+#LDAPServer ldap://ldap.example.com
+#LDAPDNInfo "cn=admin,dc=example,dc=com" "admin_password"
+#LDAPDoAuth on "dc=users,dc=example,dc=com"
+#
+# To be set on only for LDAP/TLS on ordinary port, for LDAP+SSL see below
+#LDAPUseTLS on
+#
+
+#
+# This is used for encrypted LDAPS connections
+#
+#LDAPServer ldaps://ldap.example.com
+#LDAPDNInfo "cn=admin,dc=example,dc=com" "admin_password"
+#LDAPDoAuth on "dc=users,dc=example,dc=com"
+#
+</IfModule>
--- proftpd-dfsg-1.3.3a.orig/debian/templates/modules.conf
+++ proftpd-dfsg-1.3.3a/debian/templates/modules.conf
@@ -0,0 +1,91 @@
+#
+# This file is used to manage DSO modules and features.
+#
+
+# This is the directory where DSO modules reside
+
+ModulePath /usr/lib/proftpd
+
+# Allow only user root to load and unload modules, but allow everyone
+# to see which modules have been loaded
+
+ModuleControlsACLs insmod,rmmod allow user root
+ModuleControlsACLs lsmod allow user *
+
+LoadModule mod_ctrls_admin.c
+LoadModule mod_tls.c
+
+# Install one of proftpd-mod-mysql, proftpd-mod-pgsql or any other
+# SQL backend engine to use this module and the required backend.
+# This module must be mandatory loaded before anyone of
+# the existent SQL backeds.
+#LoadModule mod_sql.c
+
+# Install proftpd-mod-ldap to use this
+#LoadModule mod_ldap.c
+
+#
+# 'SQLBackend mysql' or 'SQLBackend postgres' (or any other valid backend) directives 
+# are required to have SQL authorization working. You can also comment out the
+# unused module here, in alternative.
+#
+
+# Install proftpd-mod-mysql and decomment the previous
+# mod_sql.c module to use this.
+#LoadModule mod_sql_mysql.c
+
+# Install proftpd-mod-pgsql and decomment the previous 
+# mod_sql.c module to use this.
+#LoadModule mod_sql_postgres.c
+
+# Install proftpd-mod-sqlite and decomment the previous
+# mod_sql.c module to use this
+#LoadModule mod_sql_sqlite.c
+
+# Install proftpd-mod-odbc and decomment the previous
+# mod_sql.c module to use this
+#LoadModule mod_sql_odbc.c
+
+# Install one of the previous SQL backends and decomment 
+# the previous mod_sql.c module to use this
+#LoadModule mod_sql_passwd.c
+
+LoadModule mod_radius.c
+LoadModule mod_quotatab.c
+LoadModule mod_quotatab_file.c
+
+# Install proftpd-mod-ldap to use this
+#LoadModule mod_quotatab_ldap.c
+
+# Install one of the previous SQL backends and decomment 
+# the previous mod_sql.c module to use this
+#LoadModule mod_quotatab_sql.c
+LoadModule mod_quotatab_radius.c
+LoadModule mod_wrap.c
+LoadModule mod_rewrite.c
+LoadModule mod_load.c
+LoadModule mod_ban.c
+LoadModule mod_wrap2.c
+LoadModule mod_wrap2_file.c
+# Install one of the previous SQL backends and decomment 
+# the previous mod_sql.c module to use this
+#LoadModule mod_wrap2_sql.c
+LoadModule mod_dynmasq.c
+LoadModule mod_vroot.c
+LoadModule mod_exec.c
+LoadModule mod_shaper.c
+LoadModule mod_ratio.c
+LoadModule mod_site_misc.c
+
+LoadModule mod_sftp.c
+LoadModule mod_sftp_pam.c
+# Install one of the previous SQL backends and decomment 
+# the previous mod_sql.c module to use this
+#LoadModule mod_sftp_sql.c
+
+LoadModule mod_facl.c
+LoadModule mod_unique_id.c
+
+# keep this module the last one
+LoadModule mod_ifsession.c
+
