Subject: CVS commit: pkgsrc
To: None <>
From: Rene Hexel <>
List: source-changes
Date: 12/27/1999 04:13:17
Module Name:	pkgsrc
Committed By:	rh
Date:		Mon Dec 27 12:13:16 UTC 1999

Modified Files:
	pkgsrc/net/wu-ftpd: Makefile
	pkgsrc/net/wu-ftpd/files: md5 patch-sum
	pkgsrc/net/wu-ftpd/patches: patch-aa patch-af patch-ag patch-ai
	pkgsrc/net/wu-ftpd/pkg: PLIST
Removed Files:
	pkgsrc/net/wu-ftpd/patches: patch-ab patch-ae patch-ah patch-aj
	    patch-ak patch-al patch-am patch-an

Log Message:
Update wu-ftpd to 2.6.0.

Changes in 2.6.0:
 o  On sigpipe, always log a lost connection.
 o  Added a log message on attempts to download files marked unretrievable.
 o  The SITE NEWER feature has been disabled.  A compile-time option has been
    added to re-enable it.  See config.h.noac for more information on this.
 o  With restricted-uid/gid, CWD to a non-existant directory would display the
    full pathname rather than just relative to the user's home.  Actually, the
    fix catches most cases where this could occur, not just the CWD verb.
 o  Fixed a bug in the restricted-uid/gid feature which could allow access
    outside the user's home directory in some cases.
 o  Bumped MAXHST (max. hosts allowed on a line) for ftphosts from 10 to 12.
    Fixed a bug related to this which can cause the server to crash checking
    host access.
 o  The internal ls (see below) was judged to be unready.  It has been disabled
    by default but can be enabled with a compile-time option for those who wish
    to attempt to debug it (be warned, it has a lot of problems).
 o  Split the "bad shell or user not in ftpusers" syslog message into two
    messages to prevent confusion.
 o  Filename globs for LIST, NLST and SITE EXEC, as well as a few internal
    uses, are cleaned up before processing.  For example: */./../* becomes
    just *.  This prevents certain memory starvation DoS attacks.
 o  Corrections for RFC compliance can break some clients.  If possible, the
    broken client should be updated, but a compile-time option has been
    added.  See the config.h.noac for more information on this.
 o  Created doc/HOWTO directory and moved VIRTUAL.FTP.SUPPORT and
    upload.configuration.HOWTO there.
 o  Add a README.AUTOCONF file describing the autoconf build in detail.
 o  UC, Berkeley, has removed the requirement that all advertising material
    must include credit to them.  Removed the clause from the LICENSE and
    the historical licenses in the COPYRIGHT file.
 o  Added the email-on-upload feature from BeroFTPD.  See the ftpaccess man
    page for defaults on these added ftpaccess clauses:
        mailserver <hostname>
        incmail <emailaddress>
        mailfrom <emailaddress>
        virtual <address> incmail <emailaddress>
        virtual <address> mailfrom <emailaddress>
        defaultserver incmail <emailaddress>
        defaultserver mailfrom <emailaddress>
 o  Redhat added the -I option to disable RFC931 (AUTH/ident).  Added to
    the baseline so Redhat users don't see a loss of a feature.  Setting
    the timeout for rfc931 to zero will do the same thing in the ftpaccess
 o  The test for whether restricted-uid/restricted-gid applied should have
    been done before the chroot so it used the system /etc/passwd and
    /etc/group files.
 o  CDUP when you were already at the home directory, would complain about
    you being restricted (if you were).  Instead it should give a positive
    reply, and do nothing.  This makes it behave more like CDUP when you're
    not restricted to your home directory.
 o  deny-uid and deny-gid were being tested for anonymous users.  Bad move,
    it's too easy to forget to allow them.  Use 'defaultserver private' to
    keep anonymous users away.
 o  Correct the operation of the NLST command.  Finally.  mget should now
    work as users expect it to.
 o  Prevent buffer overruns when processing message files.
 o  Correct a reference through a NULL pointer when doing S/Key
    authentication and the user is not in the passwd file.
 o  Check the return code from select() when setting up a data connection.
    Under some rare conditions it is possible that the select was called
    for an fd_set which has no members, hanging the daemon.
 o  Ensure a pattern of "*" matches everything.  The new path_compare (used
    on upload and throughput clauses in the ftpaccess file) sets the option
        *    matches everything
        /*   matches everything
        /*/* matches /dogs/toto and /dogs/toto/photos but not /dogs
 o  setproctitle() support added for UnixWare.
 o  Removed all FIXES files.  Merged their contents into this CHANGES file
    (the one you're reading now).  The old doc/FIXES directory has been
    tar'd and will be placed in the attic when 2.6.0 releases.
 o  Corrected an error in the MAPPING_CHDIR feature which could be used to
    gain root privileges on the server.
 o  Added -V command-line option to View the copyright and exit.
 o  Added the privatepw command and documentation.
 o  Port for FreeBSD corrected.
 o  Adding the LICENSE file to the baseline.
 o  Added print_copyright function so our copyright is embedded in the
 o  WU-FTPD Development Group copyright headers added.  Original Copyright
    headers moved into the COPYRIGHT file.
 o  RCS Ids from 2.4.x removed and new templates added for
 o  Make sure the signal context is restored when jumping out of signal
    handlers.  This was causing signal 11 on some systems.
 o  Cleaned up the how-to of setting up virtual hosting support.
 o  Corrected header file dependencies.
 o  Changed NLST to nlst, necessary as ftpcmd.c #defines NLST.
 o  Tidied up virtual variables.
 o  Changed so compiles cleanly on SCO OpenServer 5, UnixWare 2 and
    UnixWare 7.
 o  Anonymous users could get in even though no class was defined for them.
 o  Support for non-ANSI/ISO compilers has been removed.  You MUST have and
    ANSI/ISO C compiler.  This has been true for some time, all that has
    changed is the (incomplete) support for older (K&R) compilers has been
 o  Added Kent Landfield's NEWVIRT scheme for extensive virutal hosting.
    See the updated documentation on virtual hosting for details.
 o  ftprestart has been added to the base daemon kit.
 o  A buffer overrun in the ftpshut command has been corrected.  Since, on
    most sites, the ftpshut command is only usable by the superuser, this
    is not considered a security issue.  If you have installed ftpshut with
    suid-root permissions (not the default), then there is the possibility
    this overrun could be used to leverage root permissions.
 o  Several new ftpaccess clauses have been added.  These allow control of
    the various timeouts used within the daemon.  The new clauses are:
        timeout accept <seconds>
        timeout connect <seconds>
        timeout data <seconds>
        timeout idle <seconds>
        timeout maxidle <seconds>
        timeout RFC931 <seconds>
 o  Myriad places where inactivity timeouts were not being properly
    detected or handled have been corrected.
        The built-in directory listings, both the original NLST and the
        build-in LIST (ls), now detect inactivity.  The original NLST did
        not which could lead to hanging daemons.
        C FILE handles for data connections are now always flushed, then
        the socket is shutdown cleanly before being closed.
        As a side effect, the daemon now more often properly detects
        incomplete transfers.  This can lead, though, to the xferlog
        showing the correct byte count (meaning the daemon read or wrote
        that many bytes over the data connection), but still log the
        transfer as incomplete (meaning the socket did not properly
        shutdown so the client probably missed some data).
 o  The daemon no longer attempts to replace the system's <arpa/ftp.h>
    header when compiling.  Instead, it uses its own local copy at all
 o  The daemon will now wait for the transfer to complete before sending
    'Transfer complete' or similar messages.  This improves the daemon's
    reliability for poorly written clients which take recipt of the message
    as indication the transfer has completed rather than reading until the
    connection closes.
 o  Guest and anonymous logout was not recorded on Linux.  Removed call to
    updwtmp and returned to old method of updating the lastlog.
 o  Script "" is no longer needed.  The Development Group will not be
    releasing patches to upgrade; they can be obtained from CVS if needed.
 o  "realpath_on_steroids" is no longer needed.  Removed.
 o  Use a custom version of fnmatch() which changes the rules for matching
    file and directory names.  The most visible result of this is
    noretrieve and allow-retrieve are now much more flexible.  See the
    ftpaccess manpage for examples.
 o  Use the correct SPT_TYPE for FreeBSD 2.0 or later.
 o  Correct the class= logic on the allow-retrieve clause.
 o  Enhanced DNS extensions.  This adds three ftpaccess clauses:
        dns refuse_mismatch <filename> [override]
        dns refuse_no_reverse <filename> [override]
        dns resolveroptions [options]
 o  Corrected a reference in the manpage for ftpconversions to ftpd.
 o  The string 'path-filter' is now used in the system logs to describe
    problems resulting from failing a path-filter check.  The daemon used
    to just say 'bad filename' which was misleading to some people.
 o  Added instruction on how to support PAM on Solaris.  Right now this
    means hand editing src/config/config.sol and
 o  Checking that all platforms use config.h, src/config/config.isc was
    found to have forgotten to include the file.
 o  A security deficency on SunOS 4.1, not having a working getcwd()
    function, has been corrected by using the provided function.
    Compilation bugs in the portable getcwd() function have been corrected.
 o  The daemon will no longer hang attempting to close the RFC931 socket
    when the remote end is firewalled and does not respond to traffic for
    this protocol.  This was determined to be inappropriate handling of
    SIGALRM; handling for this signal has been cleaned up throughout the
 o  The daemon may now be built using GNU autoconf.  This is in the early
    stages and not all platforms may be supported.  The old build system
    will be maintained for at least the 2.6.0 release; until the major
    platforms are all known to be supported.
 o  Two new ftpaccess clauses have been added.  These allows the site admin
    to selectively allow PORT and PASV data connections where the remote IP
    address does not match the remote IP address on the control connection.
    The new clauses are:
        port-allow <class> [<addrglob> ...]
        pasv-allow <class> [<addrglob> ...]
 o  The daemon now includes an internal 'ls' command.
 o  Ported to Mac OS/X.
 0  Added (limited) support for AFS and DCE user authentication.  This is
    only know to work on AIX, and needs porting to other platforms.  For
    now, this requires hand work to enable.
 o  Added an ftpaccess clause to enable TCP keepalives.  This clause is:
        keepalive <yes|no>
 o  You can now specify the xferlog filename for the default server just as
    you can for the virtual hosts; in the ftpaccess file.  The new clause
        xferlog <absolute path>
 o  ftpaccess manpage cleaned up.  Many typos corrected, some techincal
    changes.  Indentation should now be correct.
 o  Apache's to the src and support directories.  Ran all *.c
    and *.h files through it.  ftpcmd.y has been indented by hand.  The
    code is now a lot more readable!
 o  A bug in the parsing for the deny !nameserved ftpaccess clause has been
 o  Technical corrections in the ftpd manpage.
 o  Add util/recompress.c as a more generic version of gzip2cmp.c


Changes in 2.5.0:
 o  Change the handling of wtmp for GNU libc to use the Os-provided
    function updwtmp().
 o  Prevent some buffer overruns.
 o  Fix permissions on some files installed by RPM, add the log rotation
    control file.
 o  Change the seteuid() calls for fchown() and chown() for POSIXLY_CORRECT
 o  pid file locking in ftpcount (ftpwho) is now consistent with the way
    the daemon locks these files.
 o  Cancel any pending alarm request to stop acl_remove() from being
    interrupted then called again via the SIGALRM handler, this should fix
    the flock on a bad file descriptor looping problem.
 o  Use %m in syslog format strings in place of %s and strerror(), this
    simplifies #ifdefs.
 o  For SCO, link ftpcount with libsocket, necessary as it now calls
 o  Added Redhat's RPM SPEC file for building RPMs.
 o  English corrections in ftpaccess manpage.  Technical correction: the
    noretrieve/allow-retrieve clauses do NOT support regular expressions.
 o  Move where ftpglob stuff is defined to avoid compilation errors on some
 o  Port to SGI Irix version 4 corrected.
 o  Overwrite behavior on uploads has been made consistent with shell
    usage.  The daemon does not change ownership or permissions on
 o  Corrected the PASV command to bind to the correct interface (local IP
 o  Removed the OVERWRITE and UPLOAD defines from platform config files;
    they are defined in the main config.h header.
 o  Issuing CWD without any parameters caused a signal 11, crashing the
 o  Port to HP/UX corrected.
 o  Added ERRATA file to discuss problems with getcwd().
 o  Added a portable version of the getcwd() function for systems which do
    not have it or imcorrectly implement it.  NextStep 3 uses this new
 o  OPIE support was being disabled even though the proper command-line
    switches were being set.  Corrected the use of opieverify().
 o  The fatal() function was not declared void; this was causing problems
    with some compilers.
 o  Port to Hitachi HI-UX corrected.
 o  Some calls to fnmatch() were missing parameters.
 o  Corrected the 'restricted' user feature.  It now works well with most
    FTP clients.
 o  Correct usage of -d vs -e in the install Makefile for a number of
 o  You can now use negated hostnames/addresses on the class ftpaccess
 o  Added an ftpaccess clause to specify random text for the initial
        greeting text <message>
 o  Corrected password encryption/checking for Digital Unix with C2
    security (SECUREOSF).
 o  Merged the TODO file from the VR series with Stan's TODO file for the
    Academ betas.
 o  Changed the various permission denial messages sent by the daemon to
    the client to make it clear the message originated from the server.
 o  Ports to SCO, Solaris, uxw, ptx and isc corrected.
 o  Use the newer SEEK_ defines in place of the old BSD L_ defines and
    removed the global definition of entry, each function should define it
 o  Removed an unnecessary lseek(L_SET) in ftpcount (ftpwho).
 o  Link ftpcount and ftpshut with ${XXLIBS}.
 o  Made strsep() definition consistent with BSD and Linux.  Add strsep()
    definition to conversions.c.
 o  Added #include <string.h> to ckconfig.c.
 o  Replaced the _PATH_DEVNULL define with a #include of "pathnames.h" in
 o  Support long group access passwords if SecureWare or HPUX_10_TRUSTED
    are defined (using bigcrypt()).
 o  Fixed a memory leak in restrict.c.
 o  Digital Unix version 4 has a working getcwd(); use it instead of
 o  Stop restrict_list_check() from walking off the end of name.
 o  Added -x command-line option to mean 'log syslog+xferlog'.
 o  Changed the log ftpaccess clause to allow logging transfers to both the
    syslog and xferlog.  The log ftpaccess clauses now include:
        log syslog
        log xferlog
        log syslog+xferlog
 o  Formation of the WU-FTPD Development Group on 1 April, 1999.
    2.4.2-VR17 chosen as initial baseline for the daemon.


Changes in 2.4.2-VR17:
 o  Gregory A Lundberg resigns as the de-facto maintainer of WU-FTPD.  "And
    you thought I was joking."
 o  VIRTUAL is now the default for Solaris; all Solaris systems support
    multiple interfaces (IP addresses).
 o  Fixed complaints involving virtual_len reported by several beta
 o  Some of the 'C' source code in ftpcmd.y depended upon a particular
    behavior when ANSI/ISO does not define it.  Corrected so all compilers
    will properly interpret the code.
 o  Corrected the support for QUOTA on Solaris.
 o  The GNU EGCS 'C' compiler is broken.  A quick check and we can avoid
    the brokenness.
 o  Port to Ultrix corrected.
 o  The default shell on NextStep wants -d instead of -e.  Changed to test
    instead of [] since that's more portable; will probably do the same to
    other systems in a future release.
 o  MNTMAXSTR was possibly undefined on Digital Unix 4.0 even when not
    using QUOTA_DEVICE, causing compilation errors.
 o  Added daemonaddress to the ftpaccess manpage.
 o  Added a note from Chad Price <> in src/logwtmp.c
    about the brokenness of Solaris' last command.
 o  It turns out that not all SunOS 4.1 boxes actually have a getcwd()
 o  The labels unix and __unix__ are depricated on BSD, effecting the logic
    for the reponse to the SYST command.
 o  Added an appnote about OPIE.  See src/makefiles/Makefile.lnx for a way
    to automatically have the daemon use OPIE.  Send your Makefile if you
    do something similar for your system.
 o  Added an appnote about a problem experienced with Trusted Solaris.
 o  Added doc/misc directory to start collecting interesting tidbits which
    may help people get their servers going.
 o  The FIXES files were really cluttering up the base directory.  Moved
    them to a directory under doc.
 o  The 'log security' ftpaccess clause covered all but a few messages
    about filesystem operations.  It now covers the few it missed.
 o  Under some conditions _PATH_WTMP was not being set in pathnames.h
 o  QUOTA is now supported for Solaris.
 o  Trusted Solaris needed additional functionality in ftpcount (ftpwho).
 o  File locking in ftpcount (ftpwho) was never completed.
 o  Port to HP/UX corrected.
 o  'make install' now accepts DESTDIR to install into a directory
    structure other than the root file system.  A number of other optional
    parameters are available to override the default ownership of the
    installed files.  Missing directories are automatically created.  File
    permisssions were reduced to the minimum necessary.
 o  Dead code removed.
 o  The Makefile for Linux now automatically detects if PAM is installed
    and compiles the daemon to use it.
 o  Fix an uninitialized variable in ftpshut which could effect the way the
    command works with default values.
 o  Suppress trailing blanks from the output of a wide 'ps' in the ftpcount
    (ftpwho) command.  Just making things pretty.
 o  Updated upload.configuration.HOWTO to describe more of the
    configuration having to do with class= rules and overwrite, delete and
    rename clauses.
 o  Added vers.c and edit to 'make cleandir' in the src directory.  These
    files are automatically created during the build process.
 o  Added a restrict_check(".") in the LIST command for consistency with
    the remainder of the code in ftpcmd.y.
 o  Corrected the 'restricted' users feature so it would play nicely with
    web clients and the way some of them mis-interpret FTP URLs.

To generate a diff of this commit:
cvs rdiff -r1.10 -r1.11 pkgsrc/net/wu-ftpd/Makefile
cvs rdiff -r1.4 -r1.5 pkgsrc/net/wu-ftpd/files/md5
cvs rdiff -r1.2 -r1.3 pkgsrc/net/wu-ftpd/files/patch-sum
cvs rdiff -r1.5 -r1.6 pkgsrc/net/wu-ftpd/patches/patch-aa \
cvs rdiff -r1.5 -r0 pkgsrc/net/wu-ftpd/patches/patch-ab \
cvs rdiff -r1.3 -r0 pkgsrc/net/wu-ftpd/patches/patch-ae
cvs rdiff -r1.3 -r1.4 pkgsrc/net/wu-ftpd/patches/patch-af
cvs rdiff -r1.4 -r0 pkgsrc/net/wu-ftpd/patches/patch-ah \
cvs rdiff -r1.4 -r1.5 pkgsrc/net/wu-ftpd/patches/patch-ai
cvs rdiff -r1.2 -r0 pkgsrc/net/wu-ftpd/patches/patch-aj \
    pkgsrc/net/wu-ftpd/patches/patch-ak pkgsrc/net/wu-ftpd/patches/patch-an
cvs rdiff -r1.2 -r1.3 pkgsrc/net/wu-ftpd/pkg/PLIST

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.