--- wu-ftpd-2.6.2.orig/config.guess +++ wu-ftpd-2.6.2/config.guess @@ -1,7 +1,11 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. -# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-06-10' + # This file 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 @@ -14,88 +18,343 @@ # # 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. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Written by Per Bothner . -# The master version of this file is at the FSF in /home/gd/gnu/lib. + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) +# (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 - # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-cbm-sysv4 - exit 0;; - amiga:NetBSD:*:*) - echo m68k-cbm-netbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-cbm-openbsd${UNAME_RELEASE} - exit 0 ;; + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi - exit 0 ;; - NILE:*:*:dcosx) + exit ;; + NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -104,46 +363,78 @@ esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:NetBSD:*:*) - echo m68k-atari-netbsd${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-atari-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:NetBSD:*:*) - echo m68k-sun-netbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-sun-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:NetBSD:*:*) - echo m68k-apple-netbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-apple-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >dummy.c - int main (argc, argv) int argc; char **argv; { + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); @@ -158,62 +449,83 @@ exit (-1); } EOF - ${CC-cc} dummy.c -o dummy \ - && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ - -o ${TARGET_BINARY_INTERFACE}x = x ] ; then + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then echo m88k-dg-dgux${UNAME_RELEASE} - else + else echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} fi - else echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i?86:AIX:*:*) + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >dummy.c + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c #include main() @@ -224,17 +536,21 @@ exit(0); } EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; - *:AIX:*:4) - if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then + exit ;; + *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -242,43 +558,120 @@ if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=4.${UNAME_RELEASE} + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[3478]??:HP-UX:*:*) + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; - 9000/8?? ) HP_ARCH=hppa1.0 ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; esac - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >dummy.c + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c #include int main () @@ -303,224 +696,476 @@ exit (0); } EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; - i?86:OSF1:*:*) + exit ;; + i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F300:UNIX_System_V:*:*) - FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - F301:UNIX_System_V:*:*) - echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` - exit 0 ;; - hp3[0-9][05]:NetBSD:*:*) - echo m68k-hp-netbsd${UNAME_RELEASE} - exit 0 ;; - hp3[0-9][05]:OpenBSD:*:*) - echo m68k-hp-openbsd${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | *:BSD/OS:*:*) + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) - echo i386-pc-cygwin32 - exit 0 ;; + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd | genuineintel) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin32 - exit 0 ;; + echo powerpcle-unknown-cygwin + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:Linux:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so - # first see if it will tell us. - ld_help_string=`ld --help 2>&1` - if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then - echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then - echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then - echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then - echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 - elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then - echo "powerpc-unknown-linux-gnu" ; exit 0 - elif test "${UNAME_MACHINE}" = "alpha" ; then - echo alpha-unknown-linux-gnu ; exit 0 - elif test "${UNAME_MACHINE}" = "sparc" ; then - echo sparc-unknown-linux-gnu ; exit 0 - else - # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us - # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout. - test ! -d /usr/lib/ldscripts/. \ - && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - # Determine whether the default compiler is a.out or elf - cat >dummy.c <&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF - ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - fi ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i?86:DYNIX/ptx:4*:*) + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; - i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i?86:*:3.2:*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi - exit 0 ;; + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 - exit 0 ;; + exit ;; paragon:*:*:*) echo i860-intel-osf1 - exit 0 ;; + exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:*) + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; - i?86:LynxOS:2.*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) + exit ;; + rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -528,36 +1173,171 @@ else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -cat >dummy.c <$dummy.c < # include @@ -582,7 +1362,7 @@ #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -595,7 +1375,10 @@ #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif @@ -640,11 +1423,24 @@ #endif #if defined (vax) -#if !defined (ultrix) - printf ("vax-dec-bsd\n"); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif #endif #if defined (alliant) && defined (i860) @@ -655,12 +1451,12 @@ } EOF -${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 -rm -f dummy.c dummy +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -669,25 +1465,69 @@ case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi -#echo '(Unable to guess system type)' 1>&2 +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: --- wu-ftpd-2.6.2.orig/Makefile.in +++ wu-ftpd-2.6.2/Makefile.in @@ -67,16 +67,14 @@ -@mkdir -p $(DESTDIR)/$(mandir)/man1 -@mkdir -p $(DESTDIR)/$(mandir)/man5 -@mkdir -p $(DESTDIR)/@ETCDIR@ - @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ftpd $(DESTDIR)/@sbindir@/in.ftpd + @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ftpd $(DESTDIR)/@sbindir@/wu-ftpd @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ftpshut $(DESTDIR)/@sbindir@/ftpshut @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ftpcount $(DESTDIR)/@bindir@/ftpcount @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ftpwho $(DESTDIR)/@bindir@/ftpwho - @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ckconfig $(DESTDIR)/@sbindir@/ckconfig @INSTALL_PROGRAM@ -o bin -g bin -m 755 bin/ftprestart $(DESTDIR)/@sbindir@/ftprestart @INSTALL_PROGRAM@ -o bin -g bin -m 755 util/privatepw/privatepw $(DESTDIR)/@sbindir@/privatepw @echo installing manpages. - -@mkdir -p $(mandir) - @INSTALL_DATA@ -o bin -g bin -m 644 doc/ftpd.8 $(DESTDIR)/$(mandir)/man8/ftpd.8 + @INSTALL_DATA@ -o bin -g bin -m 644 doc/ftpd.8 $(DESTDIR)/$(mandir)/man8/wu-ftpd.8 @INSTALL_DATA@ -o bin -g bin -m 644 doc/ftpcount.1 $(DESTDIR)/$(mandir)/man1/ftpcount.1 @INSTALL_DATA@ -o bin -g bin -m 644 doc/ftpwho.1 $(DESTDIR)/$(mandir)/man1/ftpwho.1 @INSTALL_DATA@ -o bin -g bin -m 644 doc/ftpshut.8 $(DESTDIR)/$(mandir)/man8/ftpshut.8 @@ -87,5 +85,3 @@ @INSTALL_DATA@ -o bin -g bin -m 644 doc/xferlog.5 $(DESTDIR)/$(mandir)/man5/xferlog.5 @INSTALL_DATA@ -o bin -g bin -m 644 doc/ftprestart.8 $(DESTDIR)/$(mandir)/man8/ftprestart.8 @INSTALL_DATA@ -o bin -g bin -m 644 util/privatepw/privatepw.8 $(DESTDIR)/$(mandir)/man8/privatepw.8 - @if test ! -f $(DESTDIR)/@ETCDIR@/ftpaccess; then echo "Since you didn't have a ftpaccess file, the sample has been"; echo "installed to $(DESTDIR)/@ETCDIR@/ftpaccess."; echo "You will probably want to edit it."; @INSTALL@ -c -o bin -g bin -m 644 doc/examples/ftpaccess $(DESTDIR)/@ETCDIR@/ftpaccess; fi - @if test ! -f $(DESTDIR)/@ETCDIR@/ftpconversions; then echo "Since you didn't have a ftpconversions file, the sample has been"; echo "installed to $(DESTDIR)/@ETCDIR@/ftpconversions."; echo "You will probably want to edit it."; @INSTALL@ -c -o bin -g bin -m 644 doc/examples/ftpconversions $(DESTDIR)/@ETCDIR@/ftpconversions; fi --- wu-ftpd-2.6.2.orig/configure.in +++ wu-ftpd-2.6.2/configure.in @@ -1,10 +1,5 @@ dnl use autoconf 2.12 or higher (2.14 preferred) to generate the configure script -dnl ============================================================================ -dnl First of all, definitions of our headers and lookups of generic programs... -dnl ============================================================================ -AC_INIT(src/ftpd.c) - divert(0)dnl # # Copyright (c) 1999,2000,2001 WU-FTPD Development Group. @@ -32,6 +27,11 @@ # undivert(0) +dnl ============================================================================ +dnl First of all, definitions of our headers and lookups of generic programs... +dnl ============================================================================ +AC_INIT(src/ftpd.c) + AC_CONFIG_HEADER(config.h src/config.h) AC_PREFIX_DEFAULT(/usr) AC_CANONICAL_SYSTEM @@ -227,34 +227,54 @@ if test $result = yes; then LIBS="$LIBS -lcrypt" fi -USENSL=no -AC_CHECK_LIB(socket,socket,result=yes,result=no) -if test $result = yes; then - LIBS="$LIBS -lsocket" -else - AC_CHECK_LIB(socket,socket,result=yes,result=no,-lnsl) - if test $result = yes; then - LIBS = "$LIBS -lsocket -lnsl" - USENSL=yes - else - AC_CHECK_LIB(socket,connect,result=yes,result=no) - if test $result = yes; then - LIBS="$LIBS -lsocket" - else - AC_CHECK_LIB(socket,connect,result=yes,result=no,-lnsl) - if test $result = yes; then - LIBS="$LIBS -lsocket -lnsl" - USENSL=yes - fi - fi - fi -fi -if test $USENSL != yes; then - AC_CHECK_LIB(nsl,inet_addr,result=yes,result=no) - if test $result = yes; then - LIBS="$LIBS -lnsl" - fi -fi + +dnl Debian modification: This results in an unnecessary link to -lnsl, see below +dnl +dnl USENSL=no +dnl AC_CHECK_LIB(socket,socket,result=yes,result=no) +dnl if test $result = yes; then +dnl LIBS="$LIBS -lsocket" +dnl else +dnl AC_CHECK_LIB(socket,socket,result=yes,result=no,-lnsl) +dnl if test $result = yes; then +dnl LIBS = "$LIBS -lsocket -lnsl" +dnl USENSL=yes +dnl else +dnl AC_CHECK_LIB(socket,connect,result=yes,result=no) +dnl if test $result = yes; then +dnl LIBS="$LIBS -lsocket" +dnl else +dnl AC_CHECK_LIB(socket,connect,result=yes,result=no,-lnsl) +dnl if test $result = yes; then +dnl LIBS="$LIBS -lsocket -lnsl" +dnl USENSL=yes +dnl fi +dnl fi +dnl fi +dnl fi +dnl if test $USENSL != yes; then +dnl AC_CHECK_LIB(nsl,inet_addr,result=yes,result=no) +dnl if test $result = yes; then +dnl LIBS="$LIBS -lnsl" +dnl fi +dnl fi + +# Taken from http://autoconf-archive.cryp.to/lib_socket_nsl.html, and modified slightly +# +# COPYLEFT +# +# Copyright (c) 2008 Russ Allbery +# Copyright (c) 2008 Stepan Kasal +# Copyright (c) 2008 Warren Young +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +AC_SEARCH_LIBS([gethostbyname], [nsl]) +AC_SEARCH_LIBS([socket], [socket], [], [ + AC_CHECK_LIB([socket], [socket], [LIBS="-lsocket -lnsl $LIBS"], + [], [-lnsl])]) AC_MSG_CHECKING(for sys_siglist) AC_TRY_COMPILE([#include @@ -812,11 +832,12 @@ if test $pam = yes; then AC_DEFINE(USE_PAM) LIBS="$LIBS -lpam" - AC_CHECK_LIB(dl, dlopen, result=yes, result=no) - if test $result = yes; then +# AC_CHECK_LIB(dl, dlopen, result=yes, result=no) +# if test $result = yes; then # Some PAM implementations require -ldl... - LIBS="$LIBS -ldl" - fi + # Debian's doesn't, so this is commented out +# LIBS="$LIBS -ldl" +# fi fi dnl =========================================================================== dnl See if we have shadow passwords... --- wu-ftpd-2.6.2.orig/config.sub +++ wu-ftpd-2.6.2/config.sub @@ -1,6 +1,11 @@ #! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-06-11' + # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. @@ -17,14 +22,18 @@ # # 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. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. @@ -45,30 +54,76 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -if [ x$1 = x ] -then - echo Configuration name missing. 1>&2 - echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 - echo "or $0 ALIAS" 1>&2 - echo where ALIAS is a recognized configuration type. 1>&2 - exit 1 -fi +me=`echo "$0" | sed -e 's,.*/,,'` -# First pass through any local machine types. -case $1 in - *local*) - echo $1 - exit 0 - ;; - *) - ;; +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - linux-gnu*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -94,15 +149,40 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) - os=sco3.2v5 + os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) @@ -117,10 +197,17 @@ # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -143,25 +230,88 @@ -psos*) os=-psos ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \ - | arme[lb] | pyramid \ - | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ - | alpha | we32k | ns16k | clipper | i370 | sh \ - | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ - | pdp11 | mips64el | mips64orion | mips64orionel \ - | sparc | sparclet | sparclite | sparc64) + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i[3456]86) + i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. @@ -170,23 +320,97 @@ exit 1 ;; # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ - | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ - | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ - | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ - | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; alliant | fx80) basic_machine=fx80-alliant ;; @@ -197,25 +421,39 @@ basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) - basic_machine=m68k-cbm + basic_machine=m68k-unknown ;; - amigados) - basic_machine=m68k-cbm - os=-amigados + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos ;; amigaunix | amix) - basic_machine=m68k-cbm + basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -224,6 +462,26 @@ basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -244,27 +502,45 @@ basic_machine=c38-convex os=-bsd ;; - cray | ymp) - basic_machine=ymp-cray + cray | j90) + basic_machine=j90-cray os=-unicos ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [ctj]90-cray) - basic_machine=c90-cray - os=-unicos + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola @@ -273,6 +549,14 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -292,6 +576,10 @@ encore | umax | mmax) basic_machine=ns32k-encore ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; fx2800) basic_machine=i860-alliant ;; @@ -302,6 +590,10 @@ basic_machine=tron-gmicro os=-sysv ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 @@ -310,6 +602,14 @@ basic_machine=h8300-hitachi os=-hms ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; harris) basic_machine=m88k-harris os=-sysv3 @@ -325,13 +625,30 @@ basic_machine=m68k-hp os=-hpux ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; - hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) @@ -340,27 +657,42 @@ hppa-next) os=-nextstep3 ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; i370-ibm* | ibm*) basic_machine=i370-ibm - os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[3456]86v32) + i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; - i[3456]86v4*) + i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; - i[3456]86v) + i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; - i[3456]86sol2) + i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; iris | iris4d) basic_machine=mips-sgi case $os in @@ -375,6 +707,14 @@ basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -386,19 +726,58 @@ basic_machine=ns32k-utek os=-sysv ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos @@ -411,6 +790,10 @@ basic_machine=mips-sony os=-newsos ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; next | m*-next ) basic_machine=m68k-next case $os in @@ -436,9 +819,39 @@ basic_machine=i960-intel os=-nindy ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; np1) basic_machine=np1-gould ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 @@ -447,59 +860,123 @@ basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; - pc532 | pc532-*) + pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pentium | p5) - basic_machine=i586-intel + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc ;; - pentiumpro | p6) - basic_machine=i686-intel + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc ;; - pentium-* | p5-*) + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumpro-* | p6-*) + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - k5) - # We don't have specific support for AMD's K5 yet, so just call it a Pentium - basic_machine=i586-amd - ;; - nexen) - # We don't have specific support for Nexgen yet, so just call it a Pentium - basic_machine=i586-nexgen + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; - power) basic_machine=rs6000-ibm + power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown - ;; + ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown - ;; + ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; ps2) basic_machine=i386-ibm ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -507,6 +984,16 @@ basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; sps7) basic_machine=m68k-bull os=-sysv2 @@ -514,6 +1001,13 @@ spur) basic_machine=spur-unknown ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; sun2) basic_machine=m68000-sun ;; @@ -554,13 +1048,55 @@ sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; symmetry) basic_machine=i386-sequent os=-dynix ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -569,6 +1105,10 @@ basic_machine=a29k-nyu os=-sym1 ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; vaxv) basic_machine=vax-dec os=-sysv @@ -577,9 +1117,9 @@ basic_machine=vax-dec os=-vms ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; vxworks960) basic_machine=i960-wrs os=-vxworks @@ -592,13 +1132,33 @@ basic_machine=a29k-wrs os=-vxworks ;; - xmp) - basic_machine=xmp-cray - os=-unicos + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 ;; - xps | xps100) + xps | xps100) basic_machine=xps100-honeywell ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -606,28 +1166,44 @@ # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. - mips) - basic_machine=mips-mips + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; - sparc) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; - cydra) + cydra) basic_machine=cydra-cydrome ;; orion) @@ -636,6 +1212,15 @@ orion105) basic_machine=clipper-highlevel ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 @@ -668,9 +1253,12 @@ -solaris) os=-solaris2 ;; - -unixware* | svr4*) + -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; @@ -679,19 +1267,56 @@ # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ + | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -linux-gnu* | -uxpv*) + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -701,6 +1326,15 @@ -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; -osfrose*) os=-osfrose ;; @@ -716,11 +1350,26 @@ -acis*) os=-aos ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; -ctix* | -uts*) os=-sysv ;; + -nova*) + os=-rtmk-nova + ;; -ns2 ) - os=-nextstep2 + os=-nextstep2 + ;; + -nsk*) + os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) @@ -729,6 +1378,9 @@ -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -747,9 +1399,30 @@ # This must come after -sysvr4. -sysv*) ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; -xenix) os=-xenix ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; -none) ;; *) @@ -772,13 +1445,29 @@ # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; + arm*-rebel) + os=-linux + ;; arm*-semi) os=-aout ;; - pdp11-*) + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) os=-none ;; *-dec | vax-*) @@ -796,15 +1485,48 @@ # default. # os=-sunos4 ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; *-hp) os=-hpux ;; @@ -815,7 +1537,7 @@ os=-sysv ;; *-cbm) - os=-amigados + os=-amigaos ;; *-dg) os=-dgux @@ -847,27 +1569,39 @@ *-next) os=-nextstep3 ;; - *-gould) + *-gould) os=-sysv ;; - *-highlevel) + *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; - *-sgi) + *-sgi) os=-irix ;; - *-siemens) + *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; - f301-fujitsu) + f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; *) os=-none ;; @@ -886,12 +1620,18 @@ -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; + -beos*) + vendor=be + ;; -hpux*) vendor=hp ;; + -mpeix*) + vendor=hp + ;; -hiux*) vendor=hitachi ;; @@ -907,21 +1647,47 @@ -genix*) vendor=ns ;; - -mvs*) + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; - -vxsim* | -vxworks*) + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: --- wu-ftpd-2.6.2.orig/src/access.c +++ wu-ftpd-2.6.2/src/access.c @@ -642,7 +642,7 @@ } #ifndef NO_PRIVATE entry = (struct aclmember *) NULL; - if (getaclentry("private", &entry) && !strcasecmp(ARG0, "yes")) + if (getaclentry("private", &entry) && ARG0 && !strcasecmp(ARG0, "yes")) priv_setup(_path_private); #endif /* !NO_PRIVATE */ @@ -650,7 +650,7 @@ set = 0; while (!set && getaclentry("compress", &entry)) { l_compress = 0; - if (!strcasecmp(ARG0, "yes")) + if (ARG0 && !strcasecmp(ARG0, "yes")) l_compress = 1; for (which = 1; (which < MAXARGS) && ARG[which]; which++) { if (!wu_fnmatch(ARG[which], class, FNM_CASEFOLD)) { @@ -664,7 +664,7 @@ set = 0; while (!set && getaclentry("tar", &entry)) { l_tar = 0; - if (!strcasecmp(ARG0, "yes")) + if (ARG0 && !strcasecmp(ARG0, "yes")) l_tar = 1; for (which = 1; (which < MAXARGS) && ARG[which]; which++) { if (!wu_fnmatch(ARG[which], class, FNM_CASEFOLD)) { @@ -678,23 +678,23 @@ entry = (struct aclmember *) NULL; while (getaclentry("log", &entry)) { - if (!strcasecmp(ARG0, "commands")) { - if (anonymous && strcasestr(ARG1, "anonymous")) + if (ARG0 && !strcasecmp(ARG0, "commands")) { + if (ARG1 && anonymous && strcasestr(ARG1, "anonymous")) log_commands = 1; - if (guest && strcasestr(ARG1, "guest")) + if (ARG1 && guest && strcasestr(ARG1, "guest")) log_commands = 1; - if (!guest && !anonymous && strcasestr(ARG1, "real")) + if (ARG1 && !guest && !anonymous && strcasestr(ARG1, "real")) log_commands = 1; } - if (!strcasecmp(ARG0, "transfers")) { + if (ARG0 && !strcasecmp(ARG0, "transfers")) { set = 0; - if (strcasestr(ARG1, "anonymous") && anonymous) + if (ARG1 && strcasestr(ARG1, "anonymous") && anonymous) set = 1; - if (strcasestr(ARG1, "guest") && guest) + if (ARG1 && strcasestr(ARG1, "guest") && guest) set = 1; - if (strcasestr(ARG1, "real") && !guest && !anonymous) + if (ARG1 && strcasestr(ARG1, "real") && !guest && !anonymous) set = 1; - if (strcasestr(ARG2, "inbound")) + if (ARG2 && strcasestr(ARG2, "inbound")) inbound = 1; if (strcasestr(ARG2, "outbound")) outbound = 1; @@ -703,20 +703,20 @@ if (set) log_outbound_xfers = outbound; } - if (!strcasecmp(ARG0, "security")) { - if (strcasestr(ARG1, "anonymous") && anonymous) + if (ARG0 && !strcasecmp(ARG0, "security")) { + if (ARG1 && strcasestr(ARG1, "anonymous") && anonymous) log_security = 1; - if (strcasestr(ARG1, "guest") && guest) + if (ARG1 && strcasestr(ARG1, "guest") && guest) log_security = 1; - if (strcasestr(ARG1, "real") && !guest && !anonymous) + if (ARG1 && strcasestr(ARG1, "real") && !guest && !anonymous) log_security = 1; } - if (!strcasecmp(ARG0, "syslog")) + if (ARG0 && !strcasecmp(ARG0, "syslog")) syslogmsg = 1; - if (!strcasecmp(ARG0, "xferlog")) + if (ARG0 && !strcasecmp(ARG0, "xferlog")) syslogmsg = 0; - if (!strcasecmp(ARG0, "syslog+xferlog") - || !strcasecmp(ARG0, "xferlog+syslog")) + if (ARG0 && (!strcasecmp(ARG0, "syslog+xferlog") + || !strcasecmp(ARG0, "xferlog+syslog"))) syslogmsg = 2; } } --- wu-ftpd-2.6.2.orig/src/proto.h +++ wu-ftpd-2.6.2/src/proto.h @@ -135,6 +135,7 @@ void alias(char *s); void cdpath(void); void print_groups(void); +char *sanitise_ls_args(char *); /* ** ftpd.c --- wu-ftpd-2.6.2.orig/src/ftpcount.c +++ wu-ftpd-2.6.2/src/ftpcount.c @@ -238,8 +238,8 @@ #elif defined(sun) sprintf(line, "/usr/ucb/ps auxww %ld", buf[which]); #else -#if defined (LINUX_BUT_NOT_REDHAT_6_0) - sprintf(line, "/bin/ps axwww %d", buf[which]); +#if defined (LINUX) + sprintf(line, "/bin/ps fwwwp %d", buf[which]); #else sprintf(line, "/bin/ps -f -p %d", buf[which]); #endif --- wu-ftpd-2.6.2.orig/src/realpath.c +++ wu-ftpd-2.6.2/src/realpath.c @@ -299,7 +299,7 @@ rootd = 0; if (*wbuf) { - if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) { + if (strlen(resolved) + strlen(wbuf) + (1-rootd) + 1 > MAXPATHLEN) { errno = ENAMETOOLONG; goto err1; } --- wu-ftpd-2.6.2.orig/src/ftpd.c +++ wu-ftpd-2.6.2/src/ftpd.c @@ -85,6 +85,9 @@ #ifdef HAVE_UFS_QUOTA_H #include #endif +#ifdef HAVE_UFS_UFS_QUOTA_H +#include +#endif #ifdef HAVE_SYS_FS_UFS_QUOTA_H #include #endif @@ -307,12 +310,12 @@ int TCPwindowsize = 0; /* 0 = use system default */ #ifdef TRANSFER_COUNT -int data_count_total = 0; /* total number of data bytes */ -int data_count_in = 0; -int data_count_out = 0; -int byte_count_total = 0; /* total number of general traffic */ -int byte_count_in = 0; -int byte_count_out = 0; +off_t data_count_total = 0; /* total number of data bytes */ +off_t data_count_in = 0; +off_t data_count_out = 0; +off_t byte_count_total = 0; /* total number of general traffic */ +off_t byte_count_in = 0; +off_t byte_count_out = 0; int file_count_total = 0; /* total number of data files */ int file_count_in = 0; int file_count_out = 0; @@ -368,8 +371,9 @@ #endif /* Access control and logging passwords */ -/* OFF by default. _H */ -int use_accessfile = 0; +/* ON for Debian (hs) */ +int use_accessfile = 1; +int allow_rest = 1; char guestpw[MAXHOSTNAMELEN]; char privatepw[MAXHOSTNAMELEN]; int nameserved = 0; @@ -602,9 +606,9 @@ closelog(); #ifdef FACILITY - openlog("ftpd", LOG_PID | LOG_NDELAY, FACILITY); + openlog("wu-ftpd", LOG_PID | LOG_NDELAY, FACILITY); #else - openlog("ftpd", LOG_PID); + openlog("wu-ftpd", LOG_PID); #endif #ifdef SecureWare @@ -647,9 +651,9 @@ #endif /* DAEMON */ #ifndef DAEMON - while ((c = getopt(argc, argv, ":aAvdlLiIoP:qQr:t:T:u:wVWX")) != -1) { + while ((c = getopt(argc, argv, ":aAvdlLiIoP:qQr:Rt:T:u:wVWX")) != -1) { #else /* DAEMON */ - while ((c = getopt(argc, argv, ":aAvdlLiIop:P:qQr:sSt:T:u:VwWX")) != -1) { + while ((c = getopt(argc, argv, ":aAvdlLiIop:P:qQr:RsSt:T:u:VwWX")) != -1) { #endif /* DAEMON */ switch (c) { @@ -705,6 +709,10 @@ } break; + case 'R': + allow_rest = 0; + break; + case 'P': data_source.sin_port = htons(atoi(optarg)); break; @@ -791,6 +799,12 @@ sigaddset(&block_sigmask, SIGHUP); #endif #endif +#ifdef SIGTERM + (void) signal(SIGTERM, randomsig); +#ifdef NEED_SIGFIX + sigaddset(&block_sigmask, SIGTERM); +#endif +#endif #ifdef SIGINT (void) signal(SIGINT, randomsig); #ifdef NEED_SIGFIX @@ -1245,8 +1259,8 @@ } } else { -#if defined(SVR4) || defined(ISC) -#if defined(AIX) || defined(SOLARIS2) +#if defined(SVR4) || defined(ISC) || defined(linux) +#if defined(AIX) || defined(SOLARIS2) || defined(linux) strcpy(ls_long, "/bin/ls -lA"); #else strcpy(ls_long, "/bin/ls -la"); @@ -1266,12 +1280,11 @@ } } else { -#if defined(SVR4) || defined(ISC) -#if defined(AIX) || defined(SOLARIS2) +#if defined(SVR4) || defined(ISC) || defined(linux) +#if defined(AIX) || defined(SOLARIS2) || defined(linux) strcpy(ls_short, "/bin/ls -lA"); #else strcpy(ls_short, "/bin/ls -la"); - #endif #else strcpy(ls_short, "/bin/ls -lgA"); @@ -1662,9 +1675,9 @@ /* Display s/key challenge where appropriate. */ if (pwd == NULL || skeychallenge(&skey, pwd->pw_name, sbuf)) - sprintf(buf, "Password required for %s.", name); + snprintf(buf, sizeof(buf)-1, "Password required for %s.", name); else - sprintf(buf, "%s %s for %s.", sbuf, + snprintf(buf, sizeof(buf)-1, "%s %s for %s.", sbuf, pwok ? "allowed" : "required", name); return (buf); } @@ -2554,7 +2567,12 @@ rval = 0; if (pw == NULL) { /* assume guest account identity */ - pw = sgetpwnam("ftp"); + if ((pw = sgetpwnam("ftp")) == NULL && + (pw = sgetpwnam("nobody")) == NULL) { + syslog(LOG_NOTICE, "%s not known locally, and no suitable guest account found", the_user); + exit(0); + } + anonymous = 0; guest = 1; /* even go as far as... */ @@ -3180,7 +3198,7 @@ #endif if (!anonymous && !guest) { if (chdir(pw->pw_dir) < 0) { -#ifdef PARANOID +#if defined(PARANOID) || defined(DEBIAN) #ifdef VERBOSE_ERROR_LOGING syslog(LOG_NOTICE, "FTP LOGIN FAILED (cannot chdir) for %s, %s", remoteident, pw->pw_name); @@ -3189,7 +3207,7 @@ pw->pw_name, pw->pw_dir); goto bad; #else - if (chdir("/") < 0) { + if (restricted_user || chdir("/") < 0) { #ifdef VERBOSE_ERROR_LOGING syslog(LOG_NOTICE, "FTP LOGIN FAILED (cannot chdir) for %s, %s", remoteident, pw->pw_name); @@ -4753,6 +4771,7 @@ FILE *file; int retry = 0; int on = 1; + int cval, serrno; #ifdef IPTOS_LOWDELAY int tos; #endif @@ -4873,32 +4892,41 @@ return (NULL); } usedefault = 1; - file = getdatasock(mode); - if (file == NULL) { - reply(425, "Can't create data socket (%s,%d): %s.", - inet_ntoa(data_source.sin_addr), - ntohs(data_source.sin_port), strerror(errno)); - return (NULL); - } - data = fileno(file); - (void) signal(SIGALRM, alarm_signal); - alarm(timeout_connect); - while (connect(data, (struct sockaddr *) &data_dest, - sizeof(data_dest)) < 0) { + do { + file = getdatasock(mode); + if (file == NULL) { + reply(425, "Can't create data socket (%s,%d): %s.", + inet_ntoa(data_source.sin_addr), + ntohs(data_source.sin_port), strerror(errno)); + return (NULL); + } + data = fileno(file); + (void) signal(SIGALRM, alarm_signal); + alarm(timeout_connect); + cval = connect(data, (struct sockaddr *) &data_dest, sizeof(data_dest)); + serrno = errno; alarm(0); - if ((errno == EADDRINUSE || errno == EINTR) && retry < swaitmax) { - sleep((unsigned) swaitint); - retry += swaitint; - (void) signal(SIGALRM, alarm_signal); - alarm(timeout_connect); - continue; + if (cval == -1) { + /* + * When connect fails, the state of the socket is unspecified so + * it should be closed and a new socket created for each connection + * attempt. This also prevents denial of service problems when + * running on operating systems that only allow one non-connected + * socket bound to the same local address. + */ + (void) fclose(file); + data = -1; + errno = serrno; + if ((errno == EADDRINUSE || errno == EINTR) && retry < swaitmax) { + sleep((unsigned) swaitint); + retry += swaitint; + } + else { + perror_reply(425, "Can't build data connection"); + return (NULL); + } } - perror_reply(425, "Can't build data connection"); - (void) fclose(file); - data = -1; - return (NULL); - } - alarm(0); + } while (cval == -1); if (keepalive) (void) setsockopt(pdata, SOL_SOCKET, SO_KEEPALIVE, (char *) &on, sizeof(on)); if (TCPwindowsize) @@ -5383,12 +5411,12 @@ else lreply(0, " No data connection"); #ifdef TRANSFER_COUNT - lreply(0, " %d data bytes received in %d files", data_count_in, file_count_in); - lreply(0, " %d data bytes transmitted in %d files", data_count_out, file_count_out); - lreply(0, " %d data bytes total in %d files", data_count_total, file_count_total); - lreply(0, " %d traffic bytes received in %d transfers", byte_count_in, xfer_count_in); - lreply(0, " %d traffic bytes transmitted in %d transfers", byte_count_out, xfer_count_out); - lreply(0, " %d traffic bytes total in %d transfers", byte_count_total, xfer_count_total); + lreply(0, " %" L_FORMAT " data bytes received in %d files", data_count_in, file_count_in); + lreply(0, " %" L_FORMAT " data bytes transmitted in %d files", data_count_out, file_count_out); + lreply(0, " %" L_FORMAT " data bytes total in %d files", data_count_total, file_count_total); + lreply(0, " %" L_FORMAT " traffic bytes received in %d transfers", byte_count_in, xfer_count_in); + lreply(0, " %" L_FORMAT " traffic bytes transmitted in %d transfers", byte_count_out, xfer_count_out); + lreply(0, " %" L_FORMAT " traffic bytes total in %d transfers", byte_count_total, xfer_count_total); #endif reply(211, "End of status"); } @@ -5439,6 +5467,8 @@ void reply(int n, char *fmt,...) { + char buf[BUFSIZ]; + VA_LOCAL_DECL if (autospout != NULL) { /* deal with the autospout stuff... */ @@ -5449,7 +5479,28 @@ *p = '\0'; /* send a line...(note that this overrides dolreplies!) */ + /* Commented out the following call and rebuilt it based on + * vreply. Should fix Bug#30931. -Joey vreply(USE_REPLY_LONG | USE_REPLY_NOTFMT, n, ptr, ap); + */ + if (n) /* if numeric is 0, don't output one; use n==0 in place of printf's */ + sprintf(buf, "%03d%c", n, '-'); + + /* This is somewhat of a kludge for autospout. I personally think that + * autospout should be done differently, but that's not my department. -Kev + */ + snprintf(buf + (n ? 4 : 0), n ? sizeof(buf) - 4 : sizeof(buf), "%s", ptr); + + if (debug) /* debugging output :) */ + syslog(LOG_DEBUG, "<--- %s", buf); + + /* Yes, you want the debugging output before the client output; wrapping + * stuff goes here, you see, and you want to log the cleartext and send + * the wrapped text to the client. + */ + + printf("%s\r\n", buf); /* and send it to the client */ + fflush(stdout); if (p) ptr = p + 1; /* set to the next line... (\0 is handled in the while) */ @@ -5819,40 +5870,49 @@ void pwd(void) { - char path[MAXPATHLEN + 1]; - char rhome[MAXPATHLEN + 1]; - char *rpath = path; /* Path to return to client */ - int pathlen; -#ifndef MAPPING_CHDIR -#ifdef HAVE_GETCWD - extern char *getcwd(); -#else - extern char *getwd(char *); -#endif -#endif /* MAPPING_CHDIR */ - -#ifdef HAVE_GETCWD - if (getcwd(path, MAXPATHLEN) == (char *) NULL) -#else - if (getwd(path) == (char *) NULL) -#endif -/* Dink! If you couldn't get the path and the buffer is now likely to - be undefined, why are you trying to PRINT it?! _H* - reply(550, "%s.", path); */ - { - fb_realpath(".", path); /* realpath_on_steroids can deal */ - } - /* relative to home directory if restricted_user */ - if (restricted_user) { - fb_realpath(home, rhome); - pathlen = strlen(rhome); - if (pathlen && rhome[pathlen - 1] == '/') - pathlen--; - rpath = rpath + pathlen; - if (!*rpath) - strcpy(rpath, "/"); - } - reply(257, "\"%s\" is current directory.", rpath); + char path[MAXPATHLEN + 1]; + char rpath[MAXPATHLEN + 1]; + char rhome[MAXPATHLEN + 1]; + char *cpath = path; /* Path to return to client */ + size_t pathlen; + #if !defined(MAPPING_CHDIR) + # if defined(HAVE_GETCWD) + extern char *getcwd(); + # else /* !(defined(HAVE_GETCWD)) */ + extern char *getwd(char *); + # endif /* !(defined(HAVE_GETCWD)) */ + #endif /* !defined(MAPPING_CHDIR) */ + + + +#if defined(HAVE_GETCWD) + if (getcwd(path, MAXPATHLEN) == (char *) NULL) + #else /* !(defined(HAVE_GETCWD)) */ + if (getwd(path) == (char *) NULL) + #endif /* !(defined(HAVE_GETCWD)) */ + /* Dink! If you couldn't get the path and the buffer is now likely to + be undefined, why are you trying to PRINT it?! _H* + reply(550, "%s.", path); */ + { + fb_realpath(".", path); /* realpath_on_steroids can deal */ + } + /* relative to home directory if restricted_user */ + if (restricted_user) { + /* getcwd can return a path with symbolic links in it, so + ** we must resolve it first if we want be sure that + ** strncmp (cpath, rhome, strlen (rhome)) == 0 + */ + fb_realpath(path, rpath); + cpath = rpath; + fb_realpath(home, rhome); + pathlen = strlen(rhome); + if (pathlen && rhome[pathlen - 1] == '/') + pathlen--; + cpath += pathlen; + if (*cpath == '\0') + strcpy(cpath, "/"); + } + reply(257, "\"%s\" is current directory.", cpath); } char *renamefrom(char *name) @@ -5917,7 +5977,6 @@ return; } - #ifdef PARANOID /* Almost forgot about this. Don't allow renaming TO existing files -- otherwise someone can rename "trivial" to "warez", and "warez" is gone! @@ -6818,7 +6877,7 @@ buf[i] = '\0'; } (void) strcpy(Argv[0], buf); - p = &Argv[0][i]; + p = &Argv[0][i+1]; while (p < LastArgv) *p++ = SPT_PADCHAR; Argv[1] = NULL; @@ -6993,7 +7052,7 @@ */ #define PAM_BAIL if (pam_error != PAM_SUCCESS) { pam_end(pamh, 0); return 0; } PAM_password = passwd; - pam_error = pam_start("ftp", user, &PAM_conversation, &pamh); + pam_error = pam_start("wu-ftpd", user, &PAM_conversation, &pamh); pam_set_item(pamh, PAM_RHOST, remotehost); PAM_BAIL; pam_error = pam_authenticate(pamh, 0); @@ -7099,9 +7158,9 @@ close(i); } #ifdef FACILITY - openlog("ftpd", LOG_PID | LOG_NDELAY, FACILITY); + openlog("wu-ftpd", LOG_PID | LOG_NDELAY, FACILITY); #else - openlog("ftpd", LOG_PID); + openlog("wu-ftpd", LOG_PID); #endif /* junk stderr */ @@ -7189,9 +7248,9 @@ if (lsock != 0 && lsock != 1) close(lsock); #ifdef FACILITY - openlog("ftpd", LOG_PID | LOG_NDELAY, FACILITY); + openlog("wu-ftpd", LOG_PID | LOG_NDELAY, FACILITY); #else - openlog("ftpd", LOG_PID); + openlog("wu-ftpd", LOG_PID); #endif return; } @@ -7293,7 +7352,7 @@ int which; struct aclmember *entry = NULL; (void) acl_getclass(class); - while (getaclentry("port-allow", &entry)) { + while (getaclentry("pasv-allow", &entry)) { if ((ARG0 != NULL) && (strcasecmp(class, ARG0) == 0)) for (which = 1; (which < MAXARGS) && (ARG[which] != NULL); which++) { if (hostmatch(ARG[which], remoteaddr, NULL)) @@ -7459,6 +7518,8 @@ in++; if (*in == '/') in++; + else + out++; } else if ((in[0] == '.') && (in[1] == '.') && ((in[2] == '/') || (in[2] == '\0'))) { if (out == path) { @@ -7487,6 +7548,9 @@ } else { do + if ((in[0] == '*') && (in[1] == '*')) + in++; + else *out++ = *in++; while ((*in != '\0') && (*in != '/')); if (*in == '/') --- wu-ftpd-2.6.2.orig/src/glob.c +++ wu-ftpd-2.6.2/src/glob.c @@ -110,6 +110,12 @@ char *agargv[GAVSIZ]; char *vv[2]; + if (v[0] == '.' && v[1] == '\0') { + vv[0] = strspl(v, ""); + vv[1] = NULL; + return (copyblk(vv)); + } + fixpath(v); if (v[0] == '\0') v = "*"; --- wu-ftpd-2.6.2.orig/src/extensions.c +++ wu-ftpd-2.6.2/src/extensions.c @@ -108,12 +108,12 @@ pdata, anonymous, guest; #ifdef TRANSFER_COUNT -extern int data_count_total; /* total number of data bytes */ -extern int data_count_in; -extern int data_count_out; -extern int byte_count_total; /* total number of general traffic */ -extern int byte_count_in; -extern int byte_count_out; +extern off_t data_count_total; /* total number of data bytes */ +extern off_t data_count_in; +extern off_t data_count_out; +extern off_t byte_count_total; /* total number of general traffic */ +extern off_t byte_count_in; +extern off_t byte_count_out; extern int file_count_total; /* total number of data files */ extern int file_count_in; extern int file_count_out; @@ -390,7 +390,14 @@ break; case 'Q': -#ifdef QUOTA_BLOCKS /* 1024-blocks instead of 512-blocks */ +/* more recent versions of linux have a different name for curblocks in the quota structure + * -- Chris Butler 2006-03-23 + */ +#if defined(_LINUX_QUOTA_VERSION) && (_LINUX_QUOTA_VERSION >= 2) +#define dqb_curblocks dqb_curspace +#endif + +#if defined(QUOTA_BLOCKS) /* 1024-blocks instead of 512-blocks */ snprintf(outptr, outlen, "%ld", quota.dqb_curblocks % 2 ? (long) (quota.dqb_curblocks / 2 + 1) : (long) (quota.dqb_curblocks / 2)); #else @@ -456,10 +463,10 @@ case 'x': switch (*++inptr) { case 'u': /* upload bytes */ - sprintf(outptr,"%d", TRUNC_KB(data_count_in) ); + sprintf(outptr,"%" L_FORMAT, TRUNC_KB(data_count_in) ); break; case 'd': /* download bytes */ - sprintf(outptr,"%d", TRUNC_KB(data_count_out) ); + sprintf(outptr,"%" L_FORMAT, TRUNC_KB(data_count_out) ); break; case 'R': /* rate 1:n */ if( upload_download_rate > 0 ) { @@ -472,7 +479,7 @@ case 'c': /* credit bytes */ if( upload_download_rate > 0 ) { off_t credit=( data_count_in * upload_download_rate) - (data_count_out - total_free_dl); - sprintf(outptr,"%d", TRUNC_KB(credit) ); + sprintf(outptr,"%" L_FORMAT, TRUNC_KB(credit) ); } else { strcpy(outptr,"unlimited"); @@ -1590,7 +1597,8 @@ } /* H* fix: no deletion, period. You put a file here, I get to look at it. */ -#ifdef PARANOID +/* Debian unfix: we like PARANOID, but we still want to delete files */ +#if 0 pdelete = 0; #endif @@ -1858,6 +1866,9 @@ #else endmntent(fp); #endif + if (!current) + return 0; + current->next = NULL; wu_realpath(pathname, path, chroot_path); --- wu-ftpd-2.6.2.orig/src/pathnames.h.in +++ wu-ftpd-2.6.2/src/pathnames.h.in @@ -96,8 +96,8 @@ /* _PATH_FTPD_PIDFILE is only used if DAEMON is defined */ -#define _PATH_PIDNAMES "@PIDDIR@/ftp.pids-%s" -#define _PATH_FTPD_PID "@PIDDIR@/ftpd.pid" +#define _PATH_PIDNAMES "@PIDDIR@/wu-ftpd.pids-%s" +#define _PATH_FTPD_PID "@PIDDIR@/wu-ftpd.pid" #define _PATH_XFERLOG "@LOGDIR@/xferlog" #ifndef _PATH_UTMP --- wu-ftpd-2.6.2.orig/src/ftpcmd.y +++ wu-ftpd-2.6.2/src/ftpcmd.y @@ -89,6 +89,7 @@ extern int data; extern int errno; extern char *home; +extern int allow_rest; off_t restart_point; int yyerrorcalled; @@ -100,12 +101,12 @@ extern int restricted_user; /* global flag indicating if user is restricted to home directory */ #ifdef TRANSFER_COUNT -extern int data_count_total; -extern int data_count_in; -extern int data_count_out; -extern int byte_count_total; -extern int byte_count_in; -extern int byte_count_out; +extern off_t data_count_total; +extern off_t data_count_in; +extern off_t data_count_out; +extern off_t byte_count_total; +extern off_t byte_count_in; +extern off_t byte_count_out; extern int file_count_total; extern int file_count_in; extern int file_count_out; @@ -193,23 +194,20 @@ %% cmd_list: /* empty */ - | cmd_list cmd - = { + | cmd_list cmd { fromname = (char *) NULL; restart_point = 0; } | cmd_list rcmd ; -cmd: USER SP username CRLF - = { +cmd: USER SP username CRLF { user($3); if (log_commands) syslog(LOG_INFO, "USER %s", $3); free($3); } - | PASS SP password CRLF - = { + | PASS SP password CRLF { if (log_commands) if (anonymous) syslog(LOG_INFO, "PASS %s", $3); @@ -219,8 +217,7 @@ pass($3); free($3); } - | PORT check_login SP host_port CRLF - = { + | PORT check_login SP host_port CRLF { if (log_commands) syslog(LOG_INFO, "PORT"); /* H* port fix, part B: admonish the twit. @@ -251,8 +248,7 @@ #endif } } - | PASV check_login CRLF - = { + | PASV check_login CRLF { /* Require login for PASV, too. This actually fixes a bug -- telnet to an unfixed wu-ftpd and type PASV first off, and it crashes! */ if (log_commands) @@ -264,8 +260,7 @@ reply(425, "Cannot open passive connection"); #endif } - | TYPE check_login SP type_code CRLF - = { + | TYPE check_login SP type_code CRLF { if (log_commands) syslog(LOG_INFO, "TYPE %s", typenames[cmd_type]); if ($2) @@ -304,8 +299,7 @@ #endif /* NBBY == 8 */ } } - | STRU check_login SP struct_code CRLF - = { + | STRU check_login SP struct_code CRLF { if (log_commands) syslog(LOG_INFO, "STRU %s", strunames[$4]); if ($2) @@ -319,8 +313,7 @@ reply(504, "Unimplemented STRU type."); } } - | MODE check_login SP mode_code CRLF - = { + | MODE check_login SP mode_code CRLF { if (log_commands) syslog(LOG_INFO, "MODE %s", modenames[$4]); if ($2) @@ -334,22 +327,19 @@ reply(502, "Unimplemented MODE type."); } } - | ALLO check_login SP NUMBER CRLF - = { + | ALLO check_login SP NUMBER CRLF { if (log_commands) syslog(LOG_INFO, "ALLO %d", $4); if ($2) reply(202, "ALLO command ignored."); } - | ALLO check_login SP NUMBER SP R SP NUMBER CRLF - = { + | ALLO check_login SP NUMBER SP R SP NUMBER CRLF { if (log_commands) syslog(LOG_INFO, "ALLO %d R %d", $4, $8); if ($2) reply(202, "ALLO command ignored."); } - | RETR check_login SP pathname CRLF - = { + | RETR check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "RETR %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) { @@ -359,8 +349,7 @@ if ($4 != NULL) free($4); } - | STOR check_login SP pathname CRLF - = { + | STOR check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "STOR %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -368,8 +357,7 @@ if ($4 != NULL) free($4); } - | APPE check_login SP pathname CRLF - = { + | APPE check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "APPE %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -377,15 +365,13 @@ if ($4 != NULL) free($4); } - | NLST check_login CRLF - = { + | NLST check_login CRLF { if (log_commands) syslog(LOG_INFO, "NLST"); if ($2 && !restrict_check(".")) send_file_list(""); } - | NLST check_login SP STRING CRLF - = { + | NLST check_login SP STRING CRLF { if (log_commands) syslog(LOG_INFO, "NLST %s", $4); if ($2 && $4 && !restrict_check($4)) @@ -393,8 +379,7 @@ if ($4 != NULL) free($4); } - | LIST check_login CRLF - = { + | LIST check_login CRLF { if (log_commands) syslog(LOG_INFO, "LIST"); if ($2 && !restrict_check(".")) { @@ -409,17 +394,23 @@ #endif } } - | LIST check_login SP pathname CRLF - = { + | LIST check_login SP pathname CRLF { + char *ls_args; + if (log_commands) syslog(LOG_INFO, "LIST %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_list_check($4)) { retrieve_is_data = 0; #ifndef INTERNAL_LS + ls_args = sanitise_ls_args($4); + if (anonymous && dolreplies) - retrieve(ls_long, $4); + retrieve(ls_long, ls_args); else - retrieve(ls_short, $4); + retrieve(ls_short, ls_args); + + if (ls_args != NULL) + free(ls_args); #else ls($4, 0); #endif @@ -427,8 +418,7 @@ if ($4 != NULL) free($4); } - | STAT check_login SP pathname CRLF - = { + | STAT check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "STAT %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -436,15 +426,13 @@ if ($4 != NULL) free($4); } - | STAT check_login CRLF - = { + | STAT check_login CRLF { if (log_commands) syslog(LOG_INFO, "STAT"); if ($2) statcmd(); } - | DELE check_login SP pathname CRLF - = { + | DELE check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "DELE %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -452,8 +440,7 @@ if ($4 != NULL) free($4); } - | RNTO check_login SP pathname CRLF - = { + | RNTO check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "RNTO %s", CHECKNULL($4)); if ($2 && $4 && !restrict_check($4)) { @@ -469,22 +456,19 @@ if ($4) free($4); } - | ABOR check_login CRLF - = { + | ABOR check_login CRLF { if (log_commands) syslog(LOG_INFO, "ABOR"); if ($2) reply(225, "ABOR command successful."); } - | CWD check_login CRLF - = { + | CWD check_login CRLF { if (log_commands) syslog(LOG_INFO, "CWD"); if ($2 && !restrict_check(home)) cwd(home); } - | CWD check_login SP pathname CRLF - = { + | CWD check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "CWD %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -492,15 +476,13 @@ if ($4 != NULL) free($4); } - | HELP check_login CRLF - = { + | HELP check_login CRLF { if (log_commands) syslog(LOG_INFO, "HELP"); if ($2) help(cmdtab, (char *) NULL); } - | HELP check_login SP STRING CRLF - = { + | HELP check_login SP STRING CRLF { register char *cp = (char *) $4; if (log_commands) @@ -520,15 +502,13 @@ if ($4 != NULL) free($4); } - | NOOP check_login CRLF - = { + | NOOP check_login CRLF { if (log_commands) syslog(LOG_INFO, "NOOP"); if ($2) reply(200, "NOOP command successful."); } - | MKD check_login SP pathname CRLF - = { + | MKD check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "MKD %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -536,8 +516,7 @@ if ($4 != NULL) free($4); } - | RMD check_login SP pathname CRLF - = { + | RMD check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "RMD %s", CHECKNULL($4)); if ($2 && $4 != NULL && !restrict_check($4)) @@ -545,15 +524,13 @@ if ($4 != NULL) free($4); } - | PWD check_login CRLF - = { + | PWD check_login CRLF { if (log_commands) syslog(LOG_INFO, "PWD"); if ($2) pwd(); } - | CDUP check_login CRLF - = { + | CDUP check_login CRLF { if (log_commands) syslog(LOG_INFO, "CDUP"); if ($2) @@ -563,15 +540,13 @@ ack("CWD"); } - | SITE check_login SP HELP CRLF - = { + | SITE check_login SP HELP CRLF { if (log_commands) syslog(LOG_INFO, "SITE HELP"); if ($2) help(sitetab, (char *) NULL); } - | SITE check_login SP HELP SP STRING CRLF - = { + | SITE check_login SP HELP SP STRING CRLF { if (log_commands) syslog(LOG_INFO, "SITE HELP %s", $6); if ($2) @@ -579,8 +554,7 @@ if ($6 != NULL) free($6); } - | SITE check_login SP UMASK CRLF - = { + | SITE check_login SP UMASK CRLF { mode_t oldmask; if (log_commands) @@ -591,8 +565,7 @@ reply(200, "Current UMASK is %03o", oldmask); } } - | SITE check_login SP UMASK SP octal_number CRLF - = { + | SITE check_login SP UMASK SP octal_number CRLF { mode_t oldmask; struct aclmember *entry = NULL; int ok = 1; @@ -619,8 +592,7 @@ reply(553, "Permission denied on server. (umask)"); } } - | SITE check_login SP CHMOD SP octal_number SP pathname CRLF - = { + | SITE check_login SP CHMOD SP octal_number SP pathname CRLF { struct aclmember *entry = NULL; int ok = (anonymous ? 0 : 1); @@ -669,8 +641,7 @@ if ($8 != NULL) free($8); } - | SITE check_login SP IDLE CRLF - = { + | SITE check_login SP IDLE CRLF { if (log_commands) syslog(LOG_INFO, "SITE IDLE"); if ($2) @@ -678,8 +649,7 @@ "Current IDLE time limit is %d seconds; max %d", timeout_idle, timeout_maxidle); } - | SITE check_login SP IDLE SP NUMBER CRLF - = { + | SITE check_login SP IDLE SP NUMBER CRLF { if (log_commands) syslog(LOG_INFO, "SITE IDLE %d", $6); if ($2) @@ -693,8 +663,7 @@ reply(200, "Maximum IDLE time set to %d seconds", timeout_idle); } } - | SITE check_login SP GROUP SP username CRLF - = { + | SITE check_login SP GROUP SP username CRLF { #ifndef NO_PRIVATE if (log_commands) syslog(LOG_INFO, "SITE GROUP %s", $6); @@ -703,8 +672,7 @@ free($6); #endif /* !NO_PRIVATE */ } - | SITE check_login SP GPASS SP password CRLF - = { + | SITE check_login SP GPASS SP password CRLF { #ifndef NO_PRIVATE if (log_commands) syslog(LOG_INFO, "SITE GPASS password"); @@ -713,8 +681,7 @@ free($6); #endif /* !NO_PRIVATE */ } - | SITE check_login SP GPASS CRLF - = { + | SITE check_login SP GPASS CRLF { #ifndef NO_PRIVATE if (log_commands) syslog(LOG_INFO, "SITE GPASS"); @@ -722,8 +689,7 @@ priv_gpass(NULL); #endif /* !NO_PRIVATE */ } - | SITE check_login SP NEWER SP STRING CRLF - = { + | SITE check_login SP NEWER SP STRING CRLF { if (log_commands) syslog(LOG_INFO, "SITE NEWER %s", $6); #ifdef SITE_NEWER @@ -734,8 +700,7 @@ #endif free($6); } - | SITE check_login SP NEWER SP STRING SP pathname CRLF - = { + | SITE check_login SP NEWER SP STRING SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "SITE NEWER %s %s", $6, CHECKNULL($8)); @@ -749,8 +714,7 @@ if ($8) free($8); } - | SITE check_login SP MINFO SP STRING CRLF - = { + | SITE check_login SP MINFO SP STRING CRLF { if (log_commands) syslog(LOG_INFO, "SITE MINFO %s", $6); #ifdef SITE_NEWER @@ -761,8 +725,7 @@ #endif free($6); } - | SITE check_login SP MINFO SP STRING SP pathname CRLF - = { + | SITE check_login SP MINFO SP STRING SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "SITE MINFO %s %s", $6, CHECKNULL($8)); @@ -776,8 +739,7 @@ if ($8) free($8); } - | SITE check_login SP INDEX SP STRING CRLF - = { + | SITE check_login SP INDEX SP STRING CRLF { /* this is just for backward compatibility since we * thought of INDEX before we thought of EXEC */ @@ -791,8 +753,7 @@ if ($6 != NULL) free($6); } - | SITE check_login SP EXEC SP STRING CRLF - = { + | SITE check_login SP EXEC SP STRING CRLF { if (!restricted_user && $2 != 0 && $6 != NULL) { (void) site_exec((char *) $6); } @@ -800,8 +761,7 @@ free($6); } - | STOU check_login SP pathname CRLF - = { + | STOU check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "STOU %s", CHECKNULL($4)); if ($2 && $4 && !restrict_check($4)) @@ -809,8 +769,7 @@ if ($4 != NULL) free($4); } - | SYST check_login CRLF - = { + | SYST check_login CRLF { if (log_commands) syslog(LOG_INFO, "SYST"); if ($2) @@ -833,8 +792,7 @@ * Return size of file in a format suitable for * using with RESTART (we just count bytes). */ - | SIZE check_login SP pathname CRLF - = { + | SIZE check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "SIZE %s", CHECKNULL($4)); if ($2 && $4 && !restrict_check($4)) { @@ -853,8 +811,7 @@ * where xxx is the fractional second (of any precision, * not necessarily 3 digits) */ - | MDTM check_login SP pathname CRLF - = { + | MDTM check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "MDTM %s", CHECKNULL($4)); if ($2 && $4 && !restrict_check($4)) { @@ -878,28 +835,25 @@ if ($4 != NULL) free($4); } - | QUIT CRLF - = { + | QUIT CRLF { if (log_commands) syslog(LOG_INFO, "QUIT"); #ifdef TRANSFER_COUNT if (logged_in) { - lreply(221, "You have transferred %d bytes in %d files.", data_count_total, file_count_total); - lreply(221, "Total traffic for this session was %d bytes in %d transfers.", byte_count_total, xfer_count_total); + lreply(221, "You have transferred %" L_FORMAT " bytes in %d files.", data_count_total, file_count_total); + lreply(221, "Total traffic for this session was %" L_FORMAT " bytes in %d transfers.", byte_count_total, xfer_count_total); lreply(221, "Thank you for using the FTP service on %s.", hostname); } #endif /* TRANSFER_COUNT */ reply(221, "Goodbye."); dologout(0); } - | error CRLF - = { + | error CRLF { yyerrok; } ; -rcmd: RNFR check_login SP pathname CRLF - = { +rcmd: RNFR check_login SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "RNFR %s", CHECKNULL($4)); @@ -911,27 +865,27 @@ if (fromname == 0 && $4) free($4); } - | REST check_login SP byte_size CRLF - = { + | REST check_login SP byte_size CRLF { + if (allow_rest) { if (log_commands) syslog(LOG_INFO, "REST %d", (int) restart_point); - if ($2) { - fromname = 0; - restart_point = $4; - reply(350, "Restarting at %ld. %s", (long) restart_point, - "Send STORE or RETRIEVE to initiate transfer."); - } - } - - | SITE check_login SP ALIAS CRLF - = { + if ($2) { + fromname = 0; + restart_point = $4; + reply(350, "Restarting at %ld. %s", (long) restart_point, + "Send STORE or RETRIEVE to initiate transfer."); + } + } else { + reply(502, "REST has been disabled."); + } + } + | SITE check_login SP ALIAS CRLF { if (log_commands) syslog(LOG_INFO, "SITE ALIAS"); if ($2) alias((char *) NULL); } - | SITE check_login SP ALIAS SP STRING CRLF - = { + | SITE check_login SP ALIAS SP STRING CRLF { if (log_commands) syslog(LOG_INFO, "SITE ALIAS %s", $6); if ($2) @@ -939,22 +893,19 @@ if ($6 != NULL) free($6); } - | SITE check_login SP GROUPS CRLF - = { + | SITE check_login SP GROUPS CRLF { if (log_commands) syslog(LOG_INFO, "SITE GROUPS"); if ($2) print_groups(); } - | SITE check_login SP CDPATH CRLF - = { + | SITE check_login SP CDPATH CRLF { if (log_commands) syslog(LOG_INFO, "SITE CDPATH"); if ($2) cdpath(); } - | SITE check_login SP CHECKMETHOD SP method CRLF - = { + | SITE check_login SP CHECKMETHOD SP method CRLF { if (log_commands) syslog(LOG_INFO, "SITE CHECKMETHOD %s", CHECKNULL($6)); if (($2) && ($6 != NULL)) @@ -962,15 +913,13 @@ if ($6 != NULL) free($6); } - | SITE check_login SP CHECKMETHOD CRLF - = { + | SITE check_login SP CHECKMETHOD CRLF { if (log_commands) syslog(LOG_INFO, "SITE CHECKMETHOD"); if ($2) ShowCheckMethod(); } - | SITE check_login SP CHECKSUM SP pathname CRLF - = { + | SITE check_login SP CHECKSUM SP pathname CRLF { if (log_commands) syslog(LOG_INFO, "SITE CHECKSUM %s", CHECKNULL($6)); if (($2) && ($6 != NULL) && (!restrict_check($6))) @@ -978,8 +927,7 @@ if ($6 != NULL) free($6); } - | SITE check_login SP CHECKSUM CRLF - = { + | SITE check_login SP CHECKSUM CRLF { if (log_commands) syslog(LOG_INFO, "SITE CHECKSUM"); if ($2) @@ -991,7 +939,7 @@ ; password: /* empty */ - = { + { $$ = (char *) malloc(1); $$[0] = '\0'; } @@ -1001,8 +949,7 @@ byte_size: NUMBER ; -host_port: NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER - = { +host_port: NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER { register char *a, *p; a = (char *) &cliaddr; @@ -1016,92 +963,74 @@ } ; -form_code: N - = { +form_code: N { $$ = FORM_N; } - | T - = { + | T { $$ = FORM_T; } - | C - = { + | C { $$ = FORM_C; } ; -type_code: A - = { +type_code: A { cmd_type = TYPE_A; cmd_form = FORM_N; } - | A SP form_code - = { + | A SP form_code { cmd_type = TYPE_A; cmd_form = $3; } - | E - = { + | E { cmd_type = TYPE_E; cmd_form = FORM_N; } - | E SP form_code - = { + | E SP form_code { cmd_type = TYPE_E; cmd_form = $3; } - | I - = { + | I { cmd_type = TYPE_I; } - | L - = { + | L { cmd_type = TYPE_L; cmd_bytesz = NBBY; } - | L SP byte_size - = { + | L SP byte_size { cmd_type = TYPE_L; cmd_bytesz = $3; } /* this is for a bug in the BBN ftp */ - | L byte_size - = { + | L byte_size { cmd_type = TYPE_L; cmd_bytesz = $2; } ; -struct_code: F - = { +struct_code: F { $$ = STRU_F; } - | R - = { + | R { $$ = STRU_R; } - | P - = { + | P { $$ = STRU_P; } ; -mode_code: S - = { +mode_code: S { $$ = MODE_S; } - | B - = { + | B { $$ = MODE_B; } - | C - = { + | C { $$ = MODE_C; } ; -pathname: pathstring - = { +pathname: pathstring { /* * Problem: this production is used for all pathname * processing, but only gives a 550 error reply. @@ -1192,8 +1121,7 @@ method: STRING ; -octal_number: NUMBER - = { +octal_number: NUMBER { register int ret, dec, multby, digit; /* @@ -1218,7 +1146,7 @@ ; check_login: /* empty */ - = { + { if (logged_in) $$ = 1; else { @@ -1833,16 +1761,16 @@ if (stat(filename, &stbuf) < 0 || (stbuf.st_mode & S_IFMT) != S_IFREG) reply(550, "%s: not a plain file.", filename); - else -#if OFFSET_SIZE == 8 - reply(213, "%qu", stbuf.st_size); -#else -#ifdef _AIX42 - reply(213, "%llu", stbuf.st_size); -#else - reply(213, "%lu", stbuf.st_size); -#endif -#endif + else{ + if (sizeof(stbuf.st_size) <= sizeof(unsigned int)) + reply(213, "%u", stbuf.st_size); + else if (sizeof(stbuf.st_size) <= sizeof(unsigned long int)) + reply(213, "%lu", stbuf.st_size); + else if (sizeof(stbuf.st_size) <= sizeof(unsigned long long int)) + reply(213, "%llu", stbuf.st_size); + else + reply(504, "Size of file %s out of range.", filename); + } break; } case TYPE_A:{ @@ -1881,7 +1809,7 @@ void site_exec(char *cmd) { #ifdef PARANOID - syslog(LOG_CRIT, "REFUSED SITE_EXEC (slipped through!!): %s", cmd); + syslog(LOG_CRIT, "REFUSED SITE_EXEC"/* (slipped through!!)*/": %s", cmd); #else char buf[MAXPATHLEN]; char *sp = (char *) strchr(cmd, ' '), *slash, *t; @@ -2016,3 +1944,38 @@ (void) fflush(stdout); reply(214, ""); } + +char *sanitise_ls_args(char *inp) +{ + /* sanitise arguments to ls, to avoid -w DoS with GNU ls */ + char *ls_args, *inp_p, *ls_args_p; + + if (inp == NULL) + return NULL; + + ls_args = malloc(strlen(inp) + 1); + inp_p = inp; + ls_args_p = ls_args; + + while(*inp_p != '\0') { + if (strncasecmp(inp_p,"-w",2) == 0) { + /* skip -w and its argument */ + inp_p += 2; + for (;*inp_p != '\0' && isspace(*inp_p);inp_p++); + for (;*inp_p != '\0' && !isspace(*inp_p);inp_p++); + } else if (strncasecmp(inp_p,"--width",7) == 0) { + /* same with the long option */ + inp_p += 7; + for (;*inp_p != '\0' && isspace(*inp_p);inp_p++); + for (;*inp_p != '\0' && !isspace(*inp_p);inp_p++); + } else { + *ls_args_p = *inp_p; + ++ls_args_p; + ++inp_p; + } + } + + *ls_args_p = '\0'; + return ls_args; +} + --- wu-ftpd-2.6.2.orig/src/config/config.nbs +++ wu-ftpd-2.6.2/src/config/config.nbs @@ -48,7 +48,7 @@ #undef SHADOW_PASSWORD #undef USG #define VIRTUAL -#define OFFSET_SIZE 8 +#undef OFFSET_SIZE #define USE_VAR #undef USE_PID #define VAR_RUN --- wu-ftpd-2.6.2.orig/doc/ftprestart.8 +++ wu-ftpd-2.6.2/doc/ftprestart.8 @@ -27,10 +27,10 @@ ] .PP The -.PN ftprestart +.B ftprestart command provides an automated way to restart previously shutdown ftp servers. -.PN ftprestart +.B ftprestart is used when you are ready to re-enable your FTP server. It does the opposite of ftpshut and removes shutdown message files that were created by ftpshut. It will remove the system-wide shutdown message file as well as the shutdown message files --- wu-ftpd-2.6.2.orig/doc/ftpcount.1 +++ wu-ftpd-2.6.2/doc/ftpcount.1 @@ -26,10 +26,8 @@ .B \-V ] .SH Description -.NXR "ftpcount command" -.NXR "system" "show ftpd usage" The -.PN ftpcount +.B ftpcount command shows the current number of users (and the limit) for each class defined in the ftpaccess file. @@ -38,6 +36,5 @@ .B \-V option causes the program to display copyright and version information, then terminate. -.PN ftpcount. .SH See Also ftpwho(1) --- wu-ftpd-2.6.2.orig/doc/ftpaccess.5 +++ wu-ftpd-2.6.2/doc/ftpaccess.5 @@ -18,8 +18,7 @@ .\" $Id: ftpaccess.5,v 1.24 2000/07/01 17:49:09 wuftpd Exp $ .\" .TH ftpaccess 5 -.SH Name - +.SH NAME ftpaccess \- ftpd configuration file .SH Description @@ -1106,8 +1105,8 @@ site-exec-max-lines 25 .fi limits output from SITE EXEC (and therefore SITE INDEX) to 200 lines for -'remote' users, specifies there is no limit at all for 'local' users, and -sets a limit of 25 lines for all other users. +\'remote' users, specifies there is no limit at all for 'local' users, and sets +a limit of 25 lines for all other users. .TP 0.5i .B dns refuse_mismatch [override] --- wu-ftpd-2.6.2.orig/doc/ftpd.8 +++ wu-ftpd-2.6.2/doc/ftpd.8 @@ -61,6 +61,8 @@ .BR \-r rootdir ] [ +.BR \-R +] [ .BR \-s ] [ .BR \-S @@ -238,7 +240,13 @@ .B \-r option instructs the daemon to chroot(2) to the specified rootdir immedeately upon loading. This can improve system security by limiting the files which may be damaged should a breakin occur through the -daemon. Set is much like anonymous FTP, with additional files needed which vary from system to system. +daemon. Set is much like anonymous FTP, with additional files needed +which vary from system to system. +.PP +When started with +.B \-R +the daemon will not honour the REST command, possibly preventing +"download managers" from hogging your bandwidth. .PP The ftp server currently supports the following ftp requests; case is not distinguished. --- wu-ftpd-2.6.2.orig/doc/ftpconversions.5 +++ wu-ftpd-2.6.2/doc/ftpconversions.5 @@ -21,7 +21,6 @@ .SH Name ftpconversions \- ftpd conversions database .SH Description -.NXR "conversions file" "format" The conversions known by .BR ftpd(8) and their attributes are stored in an ASCII file that @@ -46,6 +45,8 @@ The conversions mechanism does not currently support the strip prefix and addon prefix fields. .SH Files -.PN FTPLIB/ftpconversions +.nf +FTPLIB/ftpconversions +.fi .SH See Also ftpd(8), ftpaccess(5) --- wu-ftpd-2.6.2.orig/doc/examples/ftpconversions +++ wu-ftpd-2.6.2/doc/examples/ftpconversions @@ -1,9 +1,9 @@ :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS - :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP - : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP - : : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR - : : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS - : : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP - : : :.crc:/bin/cksum %s:T_REG::CKSUM - : : :.md5:/bin/md5sum %s:T_REG::MD5SUM + :.gz: : :/bin/gzip -cd -- %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP + : : :.gz:/bin/gzip -9 -c -- %s:T_REG:O_COMPRESS:GZIP + : : :.tar:/bin/tar -c -f - -- %s:T_REG|T_DIR:O_TAR:TAR + : : :.tar.Z:/bin/tar -c -Z -f - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS + : : :.tar.gz:/bin/tar -c -z -f - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP + : : :.crc:/bin/cksum -- %s:T_REG::CKSUM + : : :.md5:/bin/md5sum -- %s:T_REG::MD5SUM --- wu-ftpd-2.6.2.orig/util/xferstats +++ wu-ftpd-2.6.2/util/xferstats @@ -43,13 +43,13 @@ # # edit the next two lines to customize for your domain. # This will allow your domain to be seperated in the domain listing. -$hostname = `hostname`; +$hostname = `hostname -f`; $hostname =~ y/A-Z/a-z/; @DomainName = split /\./, $hostname; -$mydom2 = pop(@DomainName); +$mydom2 = pop(@DomainName); chop ($mydom2); $mydom1 = pop(@DomainName); # edit the next line to customize for your default log file -$usage_file = "/var/log/xferlog"; +$usage_file = "/var/log/wu-ftpd/xferlog"; # Edit the following lines for default report settings. # Entries defined here will be over-ridden by the command line. @@ -58,9 +58,10 @@ $opt_d = 0; $opt_t = 1; $opt_l = 3; +$opt_q = 0; require 'getopts.pl'; -&Getopts('f:rahdD:l:s:'); +&Getopts('f:rahdD:l:s:q'); if ($opt_r) { $real = 1;} if ($opt_a) { $anon = 1;} @@ -155,7 +156,10 @@ @syslist = keys(systemfiles); @dates = sort datecompare keys(xferbytes); -if ($xferfiles == 0) {die "There was no data to process.\n";} +if ($xferfiles == 0) { + die "There was no data to process.\n" unless ($opt_q); + exit 0; +} print "TOTALS FOR SUMMARY PERIOD ", $dates[0], " TO ", $dates[$#dates], "\n\n"; @@ -307,8 +311,8 @@ $date1 = substr($a, 11, 4) * 4800; $date2 = substr($b, 11, 4) * 4800; - $date1 += index("JanFebMarAprMayJunJulAugSepOctNovDec",substr($a, 4, 3))*100; - $date2 += index("JanFebMarAprMayJunJulAugSepOctNovDec",substr($b, 4, 3))*100; + $date1 += index("JanFebMarAprMayJunJulAugSepOctNovDec",substr($a, 4, 3)) / 3 * 400; + $date2 += index("JanFebMarAprMayJunJulAugSepOctNovDec",substr($b, 4, 3)) / 3 * 400; $date1 += substr($a, 8, 2); $date2 += substr($b, 8, 2); $date1 - $date2; --- wu-ftpd-2.6.2.orig/util/privatepw/Makefile.in +++ wu-ftpd-2.6.2/util/privatepw/Makefile.in @@ -40,7 +40,7 @@ all: privatepw privatepw: privatepw.c ../../src/COPYRIGHT.c vers.c - $(CC) $(CFLAGS) -L../../support $(LIBS) -o $@ privatepw.c ../../src/COPYRIGHT.c vers.c + $(CC) $(CFLAGS) -L../../support -o $@ privatepw.c ../../src/COPYRIGHT.c vers.c $(LIBS) install: $(BINDIR)/privatepw $(MANDIR)/privatepw.8 --- wu-ftpd-2.6.2.orig/util/privatepw/privatepw.c +++ wu-ftpd-2.6.2/util/privatepw/privatepw.c @@ -211,6 +211,8 @@ int c; FILE *tfp; + int tfd; + char tmpname[BUFLEN]; opterr = 0; create = 0; @@ -294,9 +296,15 @@ return (0); } - tmp = tmpnam(NULL); + strcpy (tmpname, "/tmp/privatepwXXXXXX"); + tmp = &tmpname[0]; + tfd = mkstemp (tmp); + if (tfd < 0) { + fprintf(stderr, "Could not open temp file.\n"); + return (1); + } - if ((tfp = fopen(tmp, "w")) == NULL) { + if ((tfp = fdopen(tfd, "w")) == NULL) { fprintf(stderr, "Could not open temp file.\n"); return (1); } --- wu-ftpd-2.6.2.orig/debian/logrotate +++ wu-ftpd-2.6.2/debian/logrotate @@ -0,0 +1,18 @@ +/var/log/wu-ftpd/xferreport { + rotate 15 + monthly + missingok +} + +/var/log/wu-ftpd/xferlog { + rotate 10 + monthly + compress + copytruncate + missingok + start 1 + postrotate + /usr/sbin/xferstats -q -f /var/log/wu-ftpd/xferlog.1 -a -d -h 2>&1 >/var/log/wu-ftpd/xferreport +# killall -HUP inetd + endscript +} --- wu-ftpd-2.6.2.orig/debian/watch +++ wu-ftpd-2.6.2/debian/watch @@ -0,0 +1,5 @@ +version=3 + +# watch control file for uscan +# Site Directory Pattern Version Script +ftp://ftp.wu-ftpd.org/pub/wu-ftpd/wu-ftpd-([\d\.]*)\.tar\.gz debian uupdate --- wu-ftpd-2.6.2.orig/debian/binary.lintian-overrides +++ wu-ftpd-2.6.2/debian/binary.lintian-overrides @@ -0,0 +1,7 @@ +# addftpuser is designed to be run by the postinst, so uses debconf to get +# config info +wu-ftpd: debconf-is-not-a-registry usr/sbin/addftpuser + +# mknod is called to create ~ftp/dev/null, so it's not touching /dev at all +# (and afaik, you can't make MAKEDEV do it's stuff elsewhere..) +wu-ftpd: mknod-in-maintainer-script postinst:97 --- wu-ftpd-2.6.2.orig/debian/addftpuser.8 +++ wu-ftpd-2.6.2/debian/addftpuser.8 @@ -0,0 +1,49 @@ +.\" manual page for addftpuser +.\" Vincent Renardias +.TH "addftpuser" "8" "July 1999" "Debian Project" +.SH NAME +addftpuser \- set up anonymous FTP user +.br +rmftpuser \- remove anonymous FTP user +.SH SYNOPSIS +.B addftpuser +[--group ] [--check-binaries] [--update-binaries] [--help] [--version] +.br +.B rmftpuser +.SH DESCRIPTION +.B addftpuser +command can create anonymous FTP user, set up its home directory, install +neccessary binaries in it, set or correct all the permissions in it, and +make a directory for user uploads under it. +.br +.B rmftpuser +command can remove the anonymous FTP user, along with its home directory. +.SH OPTIONS +.TP +.I "\--group " +use this group for the anonymous FTP account. +.TP +.I "--check-binaries" +Check whether the binaries and libraries of the ftp hierarchy should be +updated or not (an exit status of 0 means no update required). +.TP +.I "\--update-binaries" +Update binaries and libraries of the anonymous ftp hierarchy. +.TP +.I "\--help" +Display some help and exit. +.TP +.I "\--version" +Output version information and exit. +.sp +.TP +The +.B rmftpuser +command ignores any command line options or parameters. +.SH SEE ALSO +.BR ftpd(8) +.SH AUTHORS +Copyright (C) 1995 Peter Tobias +changed some parts Heiko Schlittermann . +This manpage was written by Vincent Renardias for the +Debian GNU/Linux wu-ftpd-academ package. --- wu-ftpd-2.6.2.orig/debian/compat +++ wu-ftpd-2.6.2/debian/compat @@ -0,0 +1 @@ +5 --- wu-ftpd-2.6.2.orig/debian/README.config +++ wu-ftpd-2.6.2/debian/README.config @@ -0,0 +1,22 @@ +WU-FTPD configuration, /etc/wu-ftpd/ +------------------------------------ + +The /etc/wu-ftpd directory is the default location for WU-FTPD +configuration files ftpaccess, ftpconversions, ftpgroups and ftphosts. + +There are some additional helpful files there, check them out. You +should place any message/shutmsg/banner files you create here. Example +configuration files can be found in /usr/share/doc/wu-ftpd/examples/. + +Please remember that some of these files, like pathmsg or welcome.msg, +may have to be placed under the anonymous FTP user's home directory +(~ftp/etc) to be used while the anonymous FTP user is logged in. This +can be configured in the /etc/wu-ftpd/ftpaccess file. + +If you want to offer additional commands for the SITE EXEC command, you +will have to install these commands in /bin/ftp-exec (for real users) +or ~ftp/bin/ftp-exec (for anonymous users). Symbolic links may be +used between the commands in /usr/bin (or any other directory) and +/bin/ftp-exec. However, you shouldn't use symbolic links for the +commands in the ~ftp/bin/ftp-exec directory (unless you really know +what you're doing). --- wu-ftpd-2.6.2.orig/debian/pathmsg.es +++ wu-ftpd-2.6.2/debian/pathmsg.es @@ -0,0 +1,5 @@ + + Vd. ha usado un nombre de fichero ilegal. Los nombres de fichero + para usuarios anónimos deben tener sólamente los caracteres + A-Z, a-z, 0-9 y "._-+" y no puede empezar con "." o "-". + --- wu-ftpd-2.6.2.orig/debian/init +++ wu-ftpd-2.6.2/debian/init @@ -0,0 +1,150 @@ +#!/bin/sh +# +# /etc/init.d/wu-ftpd -- start/stop the wu-ftpd FTP daemon. +# +### BEGIN INIT INFO +# Provides: wu-ftpd +# Required-Start: $syslog $network $remote_fs +# Required-Stop: $syslog $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts and stops the wu-ftpd FTP daemon +### END INIT INFO + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +NAME=wu-ftpd +DAEMON=/usr/sbin/wu-ftpd +PIDFILE=/var/run/wu-ftpd.pid +DESC="FTP server" + +unset LANG +trap "" 1 15 +test -x $DAEMON || exit 0 + +RUN_DAEMON=yes +WU_OPTIONS="-l" +if [ -f /etc/default/$NAME ]; then + . /etc/default/$NAME +fi + +DAEMON_ARGS="-S $WU_OPTIONS" + +run_wu="1" + +if [ "x$RUN_DAEMON" = "xno" ]; then + run_wu=0 +fi + +# check that the FTP service isn't already enabled in inetd +if [ -f /etc/inetd.conf ] && [ -n `which inetd` ] && egrep '^ftp[[:space:]][[:space:]]*' /etc/inetd.conf >/dev/null; then + run_wu=0 +fi + +for FILE in /etc/xinetd.d/*netd.d; do + if [ -f $FILE ] && [ -n `which xinetd` ] && egrep 'server[[:space:]]*=.*ftpd' $FILE > /dev/null; then + run_wu=0 + fi +done + +is_running() +{ + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + || return 0 + + return 1 +} + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + is_running && return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + + return "$RETVAL" +} + +. /lib/lsb/init-functions + +case "$1" in + start) + if [ "$run_wu" = "1" ]; then + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + fi + ;; + stop) + if [ -f /var/run/wu-ftpd.pid ] && kill -0 `cat /var/run/wu-ftpd.pid` 2>/dev/null; then + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + fi + ;; + restart|force-reload) + if [ "$run_wu" = "1" ]; then + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + fi + ;; + status) + if is_running; then + log_success_msg "wu-ftpd FTP server is running." + exit 0 + else + log_failure_msg "wu-ftpd FTP server is not running." + exit 1 + fi + ;; + *) + echo "Usage: /etc/init.d/wu-ftpd {start|stop|restart|force-reload|status}" + exit 1 + ;; +esac + +exit 0 --- wu-ftpd-2.6.2.orig/debian/prerm +++ wu-ftpd-2.6.2/debian/prerm @@ -0,0 +1,27 @@ +#!/bin/sh -e +# Pre-removal script for the Debian wu-ftpd package. + +PACKAGE=wu-ftpd +BINARY=/usr/sbin/$PACKAGE + +have_ftp() { + egrep '^ftp[[:space:]]' /etc/inetd.conf >/dev/null +} + +ftp_running=no +have_ftp && ftp_running=yes + +if [ "$1" != "upgrade" ]; then + if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] + then + update-inetd --comment-chars '##' --pattern in.ftpd --enable ftp + else + update-inetd --comment-chars '##' --pattern in.ftpd --enable ftp + fi + + if test "$ftp_running" = "no"; then + update-inetd --pattern in.ftpd --disable ftp + fi +fi + +#DEBHELPER# --- wu-ftpd-2.6.2.orig/debian/addftpuser +++ wu-ftpd-2.6.2/debian/addftpuser @@ -0,0 +1,466 @@ +#!/usr/bin/perl -w +# +# addftpuser: a utility to create an anonymous FTP account +# +# Copyright (C) 1995 Peter Tobias +# ... changed some parts Heiko Schlittermann +# +# 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., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +# only use the following line while programming (BTW, it doesn't work :) +use strict; +use Debconf::Client::ConfModule ':all'; + +# The rmftpuser functionality, by Josip Rodin `99. +if ( $0 =~ m/rmftpuser$/i ) { + if ($ARGV[0] ne "--configure") { # called from postinst + print STDERR "Running this program directly is now deprecated. Instead, please\n"; + print STDERR "run \`dpkg-reconfigure wu-ftpd'\n"; + exit(1); + } + + my $itshomedir = (getpwnam("ftp"))[7]; + exit(0) unless defined($itshomedir); + + system ("userdel", "ftp") == 0 or die "Removal failed!\n"; + print STDERR "The anonymous FTP user has been successfully removed.\n"; + print STDERR "Its home directory, $itshomedir, has been left intact.\n"; + + exit(0); +} + +my $version = '$Revision: 1.7 $'; + +my $default_home = "/home/ftp"; # the default FTP home directory +my $default_dir_mode = 0755; # the default directory permissions +my $group = "staff"; # the default group for the FTP hierarchy +my $pathmsg = "/etc/wu-ftpd/pathmsg"; # the pathmsg file +my $welcomemsg = "/etc/wu-ftpd/welcome.msg"; # the welcome.msg file +my $ftpusers = "/etc/ftpusers"; # the ftpusers file +my @default_bins = qw(/bin/ls /bin/gzip /bin/tar); +my @optbins = (); + +push @optbins, "/usr/bin/zip" if ( -e "/usr/bin/zip" ); +push @optbins, "/usr/bin/bzip2" if ( -e "/usr/bin/bzip2" ); + +my $updatebin = 0; +my $configure = 0; +my $want_incoming = 0; +my $nocreatehome = ""; + +my ($aout, @dirs, $done, $elf, @ftpfiles, $have_passwd_entry, $home); + +# strip directory from the filename +$0 =~ s#.*/##; + +# cleanup $version +$version =~ s/\S+: (\S+) \$/$1/; + +# set OUTPUT_AUTOFLUSH +$| = 1; + +# don't change the permissions +umask(000); + +if (scalar(@ARGV) == 0) { + print STDERR "Running this program directly is now deprecated. Instead, please\n"; + print STDERR "run \`dpkg-reconfigure wu-ftpd'\n"; + exit(1); +} + +while (defined($ARGV[0]) && $ARGV[0] =~ m/^-/) { + $_ = shift(@ARGV); + if (/--help$/) { + &usage; + } elsif (/--version$/) { + print "$0 $version\n"; + exit(0); + } elsif (/--check-binaries$/) { + &checkbin; + } elsif (/--configure$/) { + $configure = 1; + } elsif (/--update-binaries$/) { + $updatebin = 1; + } elsif (/--group$/) { + $group = shift(@ARGV); + die "$0: Option group requires an argument\n" unless ($group); + } else { + print "$0: Unknown option: $_\n"; + print "$0: Try `$0 --help' for more information.\n"; + exit(10); + } +} + +if (@ARGV) { + print "$0: Unknown argument: @ARGV\n"; + print "$0: Try `$0 --help' for more information.\n"; + exit(10); +} + +# only root may set up an anonymous FTP account +die "You must be root to run this script.\n" if ($> != 0); + +# check if the user "ftp" already exists +setpwent; +if ((getpwnam("ftp"))[0]) { + $have_passwd_entry = 1; +} +endpwent; + +exit(0) if ($configure && get("wu-ftpd/anonymous") eq "false"); + +$home = get("wu-ftpd/homedir"); +if (not $have_passwd_entry) { + $nocreatehome = " --no-create-home" if (-d $home); + + if (getgrnam('ftp')) { + $_ = "adduser --system --home $home$nocreatehome --ingroup ftp ftp"; + } else { + $_ = "adduser --system --home $home$nocreatehome --group ftp"; + } + + system($_ . " >&2") and die("$0: failed system command ``$_''\n"); +} + +$want_incoming = 1 if (get("wu-ftpd/create-incoming") eq "true"); + +# don't let the user interrupt us +&ignore_signals; + +# create the FTP home directory and its subdirectories +@dirs = split(/\//, $home); +shift(@dirs); # remove the first element (it's empty because of the + # leading slash in $home) +pop(@dirs); # remove the last element (we will create it later) +$done = ""; + +while(@dirs) { + my $element = shift(@dirs); + unless(-d "$done/$element") { + mkdir("$done/$element", $default_dir_mode); + } + $done = "$done/$element"; +} + +# if the directory exist fix the permissions otherwise create it +chmod(0555, "$home") || mkdir("$home", 0555) || + die "$0: can't mkdir $home: $!\n"; +chmod(0111, "$home/bin") || mkdir("$home/bin", 0111) || + die "$0: can't mkdir $home/bin: $!\n"; +chmod(0111, "$home/lib") || mkdir("$home/lib", 0111) || + die "$0: can't mkdir $home/lib: $!\n"; +chmod(0111, "$home/dev") || mkdir("$home/dev", 0111) || + die "$0: can't mkdir $home/dev: $!\n"; +chmod(0111, "$home/etc") || mkdir("$home/etc", 0111) || + die "$0: can't mkdir $home/etc: $!\n"; +chmod(0555, "$home/pub") || mkdir("$home/pub", 0555) || + warn "$0: warning: can't mkdir $home/pub: $!\n"; +chown(0, 0, "$home", "$home/bin", "$home/lib", "$home/etc", "$home/pub", "$home/dev"); + +if (-e "/lib64") { + chmod(0555, "$home/lib64") || mkdir("$home/lib64", 0555) || + warn "$0: warning: can't mkdir $home/lib64: $!\n"; + chown(0, 0, "$home/lib64"); +} + + +if ($want_incoming and not $updatebin) { + chmod(0753, "$home/pub/incoming") || mkdir("$home/pub/incoming", 0753) || + warn "$0: warning: can't mkdir $home/pub/incoming: $!\n"; + chown(0, 0, "$home/pub/incoming"); +} elsif (not $want_incoming and -d "$home/pub/incoming") { + system("mv $home/pub/incoming $home/pub/incoming.disabled"); + chmod(0000, "$home/pub/incoming.disabled"); + print STDERR "The $home/pub/incoming directory has been disabled. You are advised to\ncheck $home/pub/incoming.disabled before removing it.\n\n"; +} + +my %bins; +my @homebins = <$home/bin/*>; + +if (@homebins) { + foreach (@homebins) { + my ($src, $dst); + $dst = $_; /^.*\/(.*)/; $src = "`which $dst`"; + -r $src and $bins{$src} = $dst; + } +} + +foreach (@default_bins,@optbins) { + unless (exists $bins{$_}) { + my ($src, $dst); + $src = $_; s/^.*\///; $dst = "$home/bin/$_"; + $bins{$src} = $dst; + } +} + +# copy the wanted binaries +foreach (keys %bins) { + my ($src, $dst) = ($_, $bins{$_}); + ©_move($src, $dst) || die "$0: Failed to copy $src to $dst: $?\n"; +} + +# library check +opendir(FTPBIN, "$home/bin"); + @ftpfiles = readdir(FTPBIN); +closedir(FTPBIN); + +foreach ((getlibs(<$home/bin/*>))) { + my ($src, $dst); + $src = $_; + + if (m{/lib64/}) { + s/^.*\///; $dst = "$home/lib64/$_"; + } else { + s/^.*\///; $dst = "$home/lib/$_"; + } + + ©_move($src, $dst) || die "$0: Failed to copy $src to $dst: $?\n"; +} + + +# copy the pathmsg file (if available) +system("cp $pathmsg $home/etc/pathmsg") unless (-f "$home/etc/pathmsg"); + +# copy the welcome.msg file (if available) +system("cp $welcomemsg $home/welcome.msg") unless (-f "$home/welcome.msg"); + +setpwent; +my (undef, undef, $uid, $gid) = getpwnam("ftp"); +endpwent; + +# create the passwd file for the new anonymous FTP hierarchy +if ( ! -f "$home/etc/passwd") { + open(FPASSWD,">$home/etc/passwd"); + print FPASSWD "root:*:0:0:root::\n"; + print FPASSWD "ftp:*:$uid:$gid:Anonymous FTP::\n"; + close(FPASSWD); +} + +# create the group file for the new anonymous FTP hierarchy +if ( ! -f "$home/etc/group") { + open(FGROUP,">$home/etc/group"); + print FGROUP "root\:\:0:\n"; + print FGROUP "$group\:\:$gid:\n"; + close(FGROUP); +} + +# create a /dev/null for the new anonymous FTP hierarchy +if ( ! -e "$home/dev/null") { + system("mknod $home/dev/null c 1 3"); +} + +# fix a few permissions +chmod 0444, <$home/etc/*>; +chmod 0111, <$home/bin/*>; +chmod 0555, <$home/lib/*>; +chmod 0666, "$home/dev/null"; + +# check ftpusers +if (get("wu-ftpd/ftpusers") eq "true") { + open (FFTPUSERS, "<$ftpusers"); + my @ftpusers = ; + my $tmpfile = `tempfile`; + chomp $tmpfile; + + open (FTMPFILE, ">$tmpfile"); + for (@ftpusers) { + /^(ftp|anonymous)$/ && do { print FTMPFILE '#',$_; next; }; + + print FTMPFILE; + } + close FFTPUSERS; + close FTMPFILE; + + my @cmd = ("mv", $tmpfile, $ftpusers); + system(@cmd) and die "can't overwrite $ftpusers"; +} + +print STDERR "The anonymous FTP user has been successfully set up.\n"; +# restore the default signal action. Not really necessary ... +&restore_signals; + +exit 0; + +############################################################################ + +sub usage { + print STDOUT <); + close(LD); + unshift(@ld, ("/lib", "/usr/lib")); + + while(@ld) { + $_ = shift(@ld); + return("$_/libc.so.$v") if (-f "$_/libc.so.$v"); + } + return(0); +} + +sub filetype { + # ($n_aout, $n_elf) = &filetype($base_directory, @filenames_without_path); + my($dir, @files) = @_; + my($n_aout, $n_elf, $string); + while(@files) { + $_ = shift(@files); + next if ($_ eq "." or $_ eq ".."); + open(CH, "$dir/$_"); + read(CH, $string, 4); + if ($string =~ m/\177ELF/) { + ++$n_elf; + } elsif ($string =~ m/..\144./) { + ++$n_aout; + } + close(CH); + undef($string); + } + return($n_aout, $n_elf); +} + +sub getlibs { + my $file; + my %libs; + foreach $file (@_) { + foreach (`ldd $file`) { chomp; + my $lib; + if (/\s=>\s/) { + ($lib) = /.*=>\s(.*?)\s/; + } elsif (/(ld\.so|ld-linux)/) { + ($lib) = /\s*(\S+)\s*\(0x/; + } else { + next; + } + $lib ne "" or next; + + $libs{$lib} = 1; + } + } + # Hack: although it does not show up with ldd, + # libnss_files.so is required for file owner/groups to + # displayed for anonymous FTP. + # + # Commented out, since there's no easy way to find out what version + # of the library we need. + # -- Chris Butler + # + # my $nnsv; + # for($nssv=1;$nssv<10;$nssv++) { + # if ( -f "/lib/libnss_files.so.$nssv") { + # $libs{"/lib/libnss_files.so.$nssv"} = 1; + # } + # } + return sort keys %libs; +} + +sub checkbin { + # exit with error level 1 if the file formats of /bin/ + # and ~ftp/bin/ are different. + my($ftphome, $binls_elf, $ftpls_elf); + my @dynlinker = (); + my (@errors, @bins); + setpwent; + if ($ftphome = (getpwnam("ftp"))[7]) { + if (-d $ftphome) { + + @errors = (); + foreach (@bins) { + my ($src, $dst); + $src = $_; /^.*\/(.*)/; $dst = "$ftphome/bin/$1"; + -r $dst or push @errors, "ERROR: Can't find $dst.\n"; + } + @errors and $! = 1, die @errors; + + @errors = (); + foreach (@bins, @optbins) { + my ($src, $dst); + my ($srcmd5, $dstmd5); + $src = $_; /^.*\/(.*)/; $dst = "$ftphome/bin/$1"; + + $srcmd5 = (split /\s/, `md5sum $src`, 2)[0]; + $dstmd5 = (split /\s/, `md5sum $dst`, 2)[0]; + + ($srcmd5 eq $dstmd5) and next; + push @errors, "$0: ERROR: md5 check failed for $dst\n"; + } + @errors and $! = 1, die @errors; + + opendir(D, "$ftphome/bin") or die("$0: Can't read $ftphome/bin: $!\n"); + @_ = readdir(D); closedir(D); + + @errors = (); + foreach (getlibs(<$ftphome/bin/*>)) { + /(ld\.so|ld-linux)/ and push @dynlinker, "$ftphome$_"; + -f "$ftphome$_" or push @errors, "$0: Warning: $ftphome$_ not found.\n"; + } + @errors and $! = 1, die @errors; + } + } + endpwent; + + # at the very last, if we went through ... we should check + # if the dyn loader is executable (2.0.34 needs this) + foreach (@dynlinker) { + -x $_ or push @errors, "$0: Dyn. Linker $_ not executable\n"; + } + @errors and $! = 2, die @errors; + exit(0); +} + +# First copy to dest.tmp then move to dest (for binaries) + +sub copy_move { + my ($src, $dst) = (shift, shift); + my @cmd; + my $tmpdst = "$dst.tmp"; + + @cmd = ("cp", $src, $tmpdst); + system(@cmd) and return undef; + @cmd = ("mv", $tmpdst, $dst); + system(@cmd) and return undef; + + return 1; +} +# vim:ts=4:sw=4:ai:aw:si: --- wu-ftpd-2.6.2.orig/debian/bug.script +++ wu-ftpd-2.6.2/debian/bug.script @@ -0,0 +1,6 @@ +#!/bin/sh + +echo "-- inetd packages installed" >&3 +echo >&3 + +dpkg -l *inetd* >&3 --- wu-ftpd-2.6.2.orig/debian/templates +++ wu-ftpd-2.6.2/debian/templates @@ -0,0 +1,92 @@ +Template: wu-ftpd/run_mode +Type: select +__Choices: inetd, standalone +Default: inetd +_Description: Mode of running wu-ftpd: + wu-ftpd can now be run as a standalone daemon instead of being called from + inetd. This means wu-ftpd can respond slightly faster to a new connection, + especially under high load. + +Template: wu-ftpd/ftpusers-symlink +Type: text +_Description: Copying ${target} to make ${ftpusers} a regular file. + Your ${ftpusers} file is currently a symbolic link. Due to new + restrictions in the PAM package, this is no longer allowed. + +Template: wu-ftpd/update-binaries +Type: boolean +_Description: Update out-of-date binaries in ${ftphome}? + Your binaries and libraries in ${ftphome} are out-of-date. This could + break your anonymous FTP services. + +Template: wu-ftpd/anonymous +Type: boolean +Default: false +_Description: Do you want to allow anonymous ftp access? + Anonymous FTP allows users to log in to the server using the username + "anonymous" and their e-mail address as a password. This is usually used + to give people access to public files. + . + If you accept here, a user called 'ftp' will be created, along with a + home directory (which will be the root of the anonymous FTP area). The + home directory will be populated with the binaries, libraries and + configuration files necessary for anonymous FTP to work. + +Template: wu-ftpd/homedir +Type: string +Default: /home/ftp +_Description: Location of the FTP home directory: + This is the directory where the anonymous FTP area will be created, and + the home directory for the "ftp" user. It must be an absolute path (ie: it + must begin with a '/'). + +Template: wu-ftpd/homedir-not-absolute +Type: note +_Description: The FTP home directory you specified is not an absolute path + The FTP home directory must be an absolute path. In other words, it must + start with a '/', eg: "/home/ftp". + +Template: wu-ftpd/homedir-exists +Type: boolean +Default: false +_Description: ${homedir} already exists, use it? + The FTP home directory you specified (${homedir}) already exists. + +Template: wu-ftpd/create-incoming +Type: boolean +Default: false +_Description: Do you want to create a directory for user uploads? + If you accept here, a directory called ${homedir}/pub/incoming (/pub/incoming + on the FTP site) will be created and set up to be a secure place for uploading + files. + . + Please look at /etc/wu-ftpd/ftpaccess and its manual page for more + information on making /pub/incoming more secure. + +Template: wu-ftpd/libnss +Type: text +_Description: libnss_files.so needs manual installation + Anonymous FTP users will only see UID and GID numbers, instead of names, + because the libnss_files.so library hasn't been installed. + . + It is not installed by default, since there is no easy way to find out + what version needs to be installed. + . + If you want to install it manually, it should be placed in ${homedir}/lib + owned by root, and with permissions of 444 (r--r--r--) + +Template: wu-ftpd/ftpusers +Type: boolean +Default: true +_Description: Remove anonymous entries from ${ftpusers}? + Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the + anonymous ftp usernames. + . + To enable access to anonymous ftp, these entries must be removed. + +Template: wu-ftpd/home-noexist +Type: boolean +Default: true +_Description: ${homedir} doesn't exist, create it? + You already have an anonymous FTP account, but the FTP home directory + [${homedir}] does not exist! --- wu-ftpd-2.6.2.orig/debian/wu-ftpd-faq.html +++ wu-ftpd-2.6.2/debian/wu-ftpd-faq.html @@ -0,0 +1,1690 @@ + + + +Frequently Asked Questions about wu-ftpd + + + +

Frequently Asked Questions about wu-ftpd, with answers

+ +This article contains the answers to Frequently Asked Questions (FAQ) +concerning the wu-ftpd software. To ask questions about wu-ftpd, subscribe +to the mailinglist and ask there. If you wish to get +the latest version of this file, it is available as +

+Via WWW : <URL:http://www.wu-ftpd.org/wu-ftpd-faq.html> +

+Via FTP : <URL:ftp://ftp.wu-ftpd.org/pub/wu-ftpd/wu-ftpd-faq.txt> +

+ +Comments : this version is still lacking with details about certain +operating systems. Comments about those are welcome. +


+
    + +
  1. Contents of this FAQ +

    +

      + +
    1. Contents of this FAQ +
    2. What is this document +
        +
      1. What is the intended audience for this document +
      +

      +

    3. What is WU-FTPD itself ? +
        +
      1. What is the license status for WU-FTPD ? +
      2. How do I subscribe/unsubscribe to the mailing lists ? +
      3. Is this list archived anywhere ? +
      4. What are related documents ? +
      5. Are there any alternatives ? +
      +

      +

    4. Where do I get WU-FTPD ? +
        +
      1. Where do I get the latest version ? +
      2. What were the VR patches for WU-FTPD ? +
      3. What is BeroFTPD ? +
      4. PGP verification of the package fails! +
      +

      +

    5. Compiling WU-FTPD +
        +
      1. cc complains about strunames, typenames, modenames, .. being undeclared. +
      2. I don't have yacc +
      3. WU-FTPD doesn't 'see' that users are in multiple groups. +
      4. I get "conflicting types for `realpath'" +
      5. WU-FTPD doesn't use the shadow passwords on my Linux machine. +
      6. It doesn't compile at all on newer Linux installs. The error is : +
      7. The timezone in the xferlog is wrong +
      8. The timezone in the ls output is wrong +
      9. Digital Unix doesn't log commands after an anonymous user logs in +
      10. install fails with 'install: ..' +
      11. Digital Unix (The Unix Formerly Known As OSF/1) and Enhanced C2 security, +
      12. It doesn't compile at all on Digital Unix, errors about struct timeval +
      13. What should I do to be able to use WU-FTPD in a HP-UX 10.01 +
      14. What should I do for HP-UX 10.10 to make it work completely. +
      15. Installation notes for HP-UX 10.20. +
      16. I want to compile for IPv6 +
      +

      +

    6. Special compilation options/fixes +
        +
      1. I need to authenticate real users via AFS +
      2. I need to use S/KEY authorisation +
      3. I want to block certain default addresses (IE30User@, mozilla@) +
      +

      +

    7. Installing WU-FTPD +
        +
      1. Command-line options for WU-FTPD +
      2. Testing on a different port number than ftp:21 +
      3. Not all command line parameters seem to be used by WU-FTPD +
      4. How do I use the package file WUFtpd250.wu-ftpd-2.6.2.SPARC.ULTRASparc.2.5.1.2.5.pkg.tar ? +
      5. How do I enable WU-FTPD under Redhat 7 and higher ? +
      6. I can't get out of my homedir with Redhat 8 +
      +

      +

    8. Are there year 2000 issues with WU-FTPD? +
    9. The ftpaccess file +
        +
      1. Some files (banners, etc) don't get shown to anonymous users. +
      2. What is the exact format of the <times> parameter in the "limit" +
      3. What tools are there to check the configuration +
      4. Why does %M produce (Max unlimited) on the login banner +
      +

      +

    10. Programs (ls, gzip, tar) work for real users, not for anonymous users, giving errors like 425 Can't create data socket (0.0.0.0,20): Bad file number or simply no output. +
        +
      1. Solaris +
      2. Building a statically linked ls for Solaris fails +
      3. Linux +
      4. Dec OSF +
      5. SunOS4.1.x +
      6. AIX +
      7. IRIX (5.3, 6.2) +
      8. SCO Unix +
      9. BSD vs SVR4 ls +
      10. It worked, until I upgraded the operating system. +
      +

      +

    11. Running WU-FTPD +
        +
      1. ftpd allways says "221 Server shutting down. Goodbye." +
      2. Anonymous ftp works fine, but real users are denied access +
      3. ftpconversions doesn't work +
      4. On-the-fly compression works, on-the-fly tarring, but not both. +
      5. I want to use zip compression (InfoZip) +
      6. I want a real user to be able to access the host only via ftp, not via telnet +
      7. Somebody uploaded a file with a weird name +
      8. I want anonymous users to be able to upload files, but in the most secure manner possible +
      9. The upload clause doesn't work with directories as it used to. +
      10. The default umask used when a real user uploads a file is wrong +
      11. I heard something about 'SITE EXEC' having a security hole +
      12. How do I make reports more readable ? +
      13. Incoming file transfers fail with SunOS and an NFS mounted incoming +
      14. Normal ftp clients work, Netscape ftp's fail. So, passive mode doesn't work. +
      15. I made a symbolic link within the anonymous tree or guest tree and it doesn't work for the anonymous/guest users. +
      16. I want to redirect anonymous users to another machine +
      17. ftpd stops accepting connections when a lot of connections come in. +
      18. Running WU-FTPD on a *large* site +
      19. Only the first 8 characters of the anonymous username are recieved by the server. +
      20. WU-FTPD fails with '500 Illegal PORT Command' under AIX 4.3 or Solaris 8 +
      21. I want to host multiple ftp servers on the same machine +
      22. I just upgraded and now nobody can log in. It worked before. +
      23. I get disconnected directly from the ftp server. +
      24. Mirror breaks with WU-FTPD >= 2.6.0. +
      25. Logins to the ftp server take a long time, after that things run smooth +
      26. ls doesn't show anything except files. It does not show directories and links +
      27. My client hangs at the end of a transfer +
      28. Sometimes ftpd stops working and inetd logs 'ftp/tcp server failing (looping), service terminated' +
      29. I can't login, in the syslog is: get passwd; pwdb: request not recognized +
      30. Under Solaris, certain user information stays cached even when changed +
      31. Does WU-FTPD support resuming downloads/uploads +
      +

      +

    12. Other things +
        +
      1. Where is the FTP protocol documented ? +
      2. How can I make my ftp-archive accessible by Email (ftpmail) ? +
      3. How do I force all clients to switch to binary mode ? +
      4. My embedded device has a builtin version of WU-FTPD which is outdated according to your site, how do I update it ? +
      +

      +

    13. Credits/miscellanious +
        +
      1. How do I contact the WU-FTPD Development team +
      2. I have a correction / new feature, how do I submit it for the WU-FTPD Development team's consideration +
      +

      +

    + +

    + +

  2. What is this document +

    +This is the FAQ (frequently asked questions) for newer versions of +WU-FTPD as maintained at ftp.wu-ftpd.org. This document is an addition +to the man-pages of WU-FTPD which are part of the installation and available +online as +<URL:http://www.wu-ftpd.org/man/>. + +

    +Answer number one is: +Update to the latest version (at this moment: 2.6.2). A lot +of problems have been fixed, including security problems. +

    +Note: The various addresses used in this document are for contacting +the authors on subjects mentioned in this document. Using these +addresses for sending unsolicited Email is forbidden. + +

    +

    Again: please update to the latest version for security purposes!

    +

    +

    +

      +
    1. What is the intended audience for this document +

      +This document (and WU-FTPD in general) need a general knowledge of Unix +system management aimed at the Unix version you are trying to install +WU-FTPD on. Subjects like user management, password management, +file-system management, changing access settings and chroot environments +are prerequisite knowledge. +Reviews of books about Unix in general (and other books) on +The Virtual Bookcase at <URL:http://www.virtualbookcase.com/> +

      +

    + +
  3. What is WU-FTPD itself ? +

    +Wuarchive-ftpd, more affectionately known as WU-FTPD, is a +replacement ftp daemon for Unix systems developed at Washington +University (*.wustl.edu) by Chris Myers and later by Bryan D. O'Connor +(who are no longer working on it or supporting it!). +WU-FTPD is the +most popular ftp daemon on the Internet, used on many anonymous +ftp sites all around the world. + +

    +

    +

      +
    1. What is the license status for WU-FTPD ? +

      +The correct answer to this is in the the 'LICENSE' file which comes with +the source tree and is available online as +<URL:http://www.wu-ftpd.org/license.html> + +

      +

      +

    2. How do I subscribe/unsubscribe to the mailing lists ? +

      +Users of WU-FTPD are encouraged to switch to the mailing lists hosted +at wu-ftpd.org. The following lists are available : + +wuftpd-announce +Announcements concerning WU-FTPD. This is the ONLY announcement list for +WU-FTPD. The list is open subscription, only members of the WU-FTPD +Development Group may post. Traffic on this list is very low. Traffic +should be signed using the development group's PGP signing key. +
      +wuftpd-dev +General discussion list for developers. The list is open subscription, +only subscribed users may post. Traffic on this list is generally low, but +can be high occasionally. +
      +wuftpd-doc +General discussion list for documentation writers. The list is open +subscription, only subscribed members may post. Traffic on this list is +generally low but can be high occasionally. +
      +wuftpd-questions +General support and discussion. This is the list to use if you have +questions concerning compiling, installing or configuring WU-FTPD. +The list is open subscription. Anyone may post. Traffic on this list is +generally high (although there are some medium-traffic days occasionally). +
      + +To subscribe, send a mail message to +Majordomo@wu-ftpd.org with a +body of +

      +subscribe listname
      +end
      +
      + +

      +

      +

    3. Is this list archived anywhere ? +

      +The old list from wustl.edu is archived from June 1994 until recent, +reachable via WWW at +<URL:http://www.landfield.com/wu-ftpd/mail-archive>, and via ftp at +<URL:ftp://ftp.landfield.com/wu-ftpd/mail-archive>. +The search page is at <URL:http://www.landfield.com/wu-ftpd/mail-archive/search.html> +This archive is maintained by Kent Landfield +(kent@landfield.com). +

      +The lists from wu-ftpd.org are available via Anonymous IMAP. Connect +to mail.wu-ftpd.org using IMAP (TCP port 143) and give 'anonymous' as your +username and your e-mail address as password. If your mail client cannot +see the folder list, give the listname to access that lists archive. + +

      +

      +

    4. What are related documents ? +

      +The RFC's that describe the FTP protocol are rfc959 (updated by RFC2228) and rfc1579. RFC's +relating to WU-FTPD are available from +<URL:http://www.wu-ftpd.org/rfc/> +Another possible location to get these is : +<URL:http://info.internet.isi.edu/in-notes/rfc/files/rfc959.txt> +<URL:http://info.internet.isi.edu/in-notes/rfc/files/rfc1579.txt> +or +<URL:http://www.faqs.org/rfcs/rfc959.txt> +<URL:http://www.faqs.org/rfcs/rfc1579.txt> + +

      +Documents on specific parts of the configuration or specific uses of WU-FTPD: +

      +

      +Kent Landfield maintains a resource center to collect all WU-FTPD related +links at +<URL:http://www.landfield.com/wu-ftpd/> +

      +Darci Chapman maintains the Solaris/wu-ftpd howto guide at +<URL:http://www.wildheart.org/wu-ftpd/> + +

      +The man-page for WU-FTPD can be viewed online at +<URL:http://www.academ.com/cgi-bin/bsdi-man?proto=1.1&apropos=0&msection=local&query=ftpd> +with the man-page for ftpaccess in +<URL:http://www.academ.com/cgi-bin/bsdi-man?proto=1.1&query=ftpaccess&msection=5&apropos=0> +

      +The Academ WU-FTPD pages at +<URL:http://www.academ.com/academ/wu-ftpd/>. + +

      + +'ANONYMOUS FTP CONFIGURATION GUIDELINES' +

      +A set of guidelines from CERT (Computer Emergency Response Team) about +setting up anonymous ftp. +

      +<URL:http://www.cert.org/tech_tips/anonymous_ftp_config.html> +

      +<URL:http://www.cert.org/tech_tips/anonymous_ftp_abuses.txt> +

      +'How to set up a secure ftp server' +

      +A file describing how to set up anonymous ftp in general in a secure way, +avoiding misuse. +

      +<URL:ftp://sunsite.unc.edu/pub/sun-info/sun-faq/FAQs/SettingUpSecureFTP.faq> +

      +'guest howto' +

      +A document describing the setup of guest groups. A more modern version +of the next document. +

      +<URL:http://www.wu-ftpd.org/guest-howto.txt> +

      +'guestgroup howto' +

      +A document describing the set up of guestgroups in WU-FTPD server. At +this moment a separate document from this document. +

      +<URL:ftp://ftp.fni.com/pub/wu-ftpd/guest-howto> +

      +A document describing virtual ftp servers +

      +<URL:http://www.westnet.com/providers/multi-wu-ftpd.txt> +

      +Ftpaccess on virtual ftp servers +

      +<URL:ftp://ftp.meme.com/pub/software/wu-ftpd-2.4.2/README.ALT.FTPACCESS> +

      +upload.configuration.HOWTO +

      +<URL:ftp://ftp.wu-ftpd.org/pub/wu-ftpd/upload.configuration.HOWTO> +How to set up the upload configuration for 2.4.2 Beta 18 VR14 and higher +(including 2.6.2). +

      +There are also some books discussing setting up anonymous FTP. +

      +The book links link to the right book on the amazon.com web-site. +

      +

      +Reviews of more books about Unix in general (and other books) on +The Virtual Bookcase at <URL:http://www.virtualbookcase.com/> + +

      +

      +

    5. Are there any alternatives ? +

      +Troll Ftpd, a free ftp-server, available from +<URL:http://www.troll.no/freebies/ftpd.html> +

      +FileDrive, a commercial file-server which needs its own clients, available +from <URL:http://www.filedrive.com/> +

      +NcFTPd server, commercial server (free for educational domains), available +from <URL:http://www.ncftpd.com/> +

      +ProFTPD, a free ftpserver (GPL), available from +<URL:http://www.proftpd.org/> +

      +ftpd-BSD, a port of the OpenBSD ftpd, available from +<URL:http://www.eleves.ens.fr:8080/home/madore/programs/#prog_ftpd-BSD> +

      +Net::FTPServer, written in Perl, available from +<URL:http://ftpserver.bibliotech.net/> +

      +WFTPD, a commercial server for Windows with a Pro version for NT/2000/XP, +available from +<URL:http://www.wftpd.com/> +

      +

    + +
  4. Where do I get WU-FTPD ? +

    +The original WU-FTPD home is wuarchive.wustl.edu, but at this moment wuarchive +no longer supports or maintains WU-FTPD. +The correct location at this moment for WU-FTPD releases is +ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ (please use a real ftp client to access this). +

    +Mirror sites: +

    +

    +

      +
    1. Where do I get the latest version ? +

      +The WU-FTPD development group maintains WU-FTPD and makes the latest version +available at ftp.wu-ftpd.org in +ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ (please use ftp to access this). +This version of WU-FTPD is now actively maintained by the WU-FTPD Development +Group, reachable by email as +(wuftpd-dev@wu-ftpd.org). + +

      +

      +

    2. What were the VR patches for WU-FTPD ? +

      +The VR-series offered a number of enhancements and bug fixes not available +in the base version. The VR patches have been integrated in WU-FTPD 2.5.0 +and the will not be available from ftp.vr.net after the end of August 1999. +

      +

      +

    3. What is BeroFTPD ? +

      +BeroFTPD was a derivative of WU-FTPD with extra functionality for +virtual hosts. Patches from the VR versions were included. +The enhancements from BeroFTPD are now incorporated into the main daemon. +

      +

      +

    4. PGP verification of the package fails! +

      +The signature has been made with a newer pgp. You need a recent pgp to get +the right answer. + +

      +

      +

    + +
  5. Compiling WU-FTPD +

    +Since WU-FTPD 2.6.0, GNU autoconf is introduced, but it is still in experimental +stage. So first try ./configure and if that fails try the old method: +
    +In general, editing src/pathnames.h and typing build arch +should be enough. +

    +

      +
    1. cc complains about strunames, typenames, modenames, .. being undeclared. +

      +This error is fully explained in the INSTALL/INSTALL.orig file in wu-ftpd +package. +A few relevant lines : + +

      +If cc complains about strunames, typenames, modenames, ... being undefined
      +you need to install support/ftp.h as /usr/include/arpa/ftp.h (always make
      +a backup of the old ftp.h just in case!) and do the build again.  The new
      +ftp.h should be a compatible superset of your existing ftp.h, so you
      +shouldn't have problems with this replacement.
      +
      + +

      +

      +

    2. I don't have yacc +

      +Replace yacc with bison -y in the Makefile. + +

      +

      +

    3. WU-FTPD doesn't 'see' that users are in multiple groups. +

      +This is fixed in recent versions (2.6.2). Upgrade now. +

      +

      +

    4. I get "conflicting types for `realpath'" +

      +This is fixed in recent versions (2.6.2). Upgrade now. +

      +

      +

    5. WU-FTPD doesn't use the shadow passwords on my Linux machine. +

      +Upgrade to version 2.6.2 or later. They automatically use shadow passwords +when available. If this gives problems, you might want to upgrade your Linux. +For older versions: +

      +Since older Linux distributions (around libc.5.3 this got fixed) +don't include shadow passwords, +WU-FTPD might assume your Linux does not have shadow passwords. To compile for +shadow passwords with Linux when this happens : +

      +

        +
      • Get the shadow.h from the latest shadow package. +
      • After building the shadow package, you have a libshadow.a. +
      +
        +
      • Copy shadow.h to the src dir. +
      • Copy libshadow.a to the support dir. +
      • Edit src/config.h to say '#define SHADOW_PASSWORD' instead of #undef. +
      • Edit the LIBES line in src/Makefile to read :
        +LIBES = -lsupport -lbsd -lshadow (for some releases, -lcrypt is +also needed) +
      +

      +Modify src/ftpd.c around line 1061 to read :

      +

      +	xpasswd = pw_encrypt(passwd, salt);
      +
      +

      +

      +

    6. It doesn't compile at all on newer Linux installs. The error is : +

      +Upgrade to version 2.6.2 +

      +

      +

    7. The timezone in the xferlog is wrong +

      +Either, you compiled with support for setting the process title +(SPT_TYPE) on a machine that doesn't support this, where changing the +process title clobbers the environment and therefore zaps the TZ +variable. Recompile with SPT_TYPE set to SPT_NONE. +

      +Systems which don't support SPT_TYPE : Aix, SGI Irix +

      +Or, you need to copy the zoneinfo files to the ~ftp tree too. These are : +

      +/etc/TIMEZONE
      +/etc/default/init
      +/etc/localtime (FreeBSD)
      +/usr/share/lib/zoneinfo/..
      +
      +The name of the correct file in /usr/share/lib/zoneinfo depends +on your current timezone. Exact filenames depend on your operating system +too. +See the man-pages for timezone(4) and zic(1M). +

      +

      +

    8. The timezone in the ls output is wrong +

      +See above, but also check if your system needs /etc/default/init (Solaris 2.5 +for example) for setting the correct TZ variable. This file has to be in +chrooted environments too. +

      +

      +Digital Unix needs /etc/zoneinfo/localtime. +

      +

      +

    9. Digital Unix doesn't log commands after an anonymous user logs in +

      +Upgrade to version 2.6.2 or later. +

      +

      +

    10. install fails with 'install: ..' +

      +The makefile is setup for the bsd version of the install program. Some OS'es +(including Solaris) use the svr4 version. In that case set in the makefile : +
      +INSTALL = /usr/ucb/install +

      +

      +

    11. Digital Unix (The Unix Formerly Known As OSF/1) and Enhanced C2 security, +

      +First, upgrade to version 2.6.2 or later. Then, make the changes +noted in src/makefiles/Makefile.{dec,du4}. +

      +

      +

    12. It doesn't compile at all on Digital Unix, errors about struct timeval +

      +Upgrade to version 2.6.2 or later. +

      +

      +

    13. What should I do to be able to use WU-FTPD in a HP-UX 10.01 +

      +Upgrade to version 2.6.2 or later. If you are not using C2 security, +you may need to change the definitions for SHADOW_PASSWORD and +HPUX_10_TRUSTED. +

      +Some kernel configuration may be required to allow more heavy load on +lock files and multiple access to the same file. This can all be done +through SAM. An important thing to keep in mind on a heavily accessed +machine is that the fin_wait state needs to be lowered enough to keep +open file locks at a minimum. +

      +

      +

    14. What should I do for HP-UX 10.10 to make it work completely. +

      +If the above doesn't work, some more notes : +

      +

      +/usr/include/shadow.h:  This *system* file had an apparent typo that caused
      +gcc to fail.  I changed the following statement:
      +
      +     extern int lckpwdf(void), 
      +            to 
      +     extern int lckpwdf(void); <<--- note the ';'
      +
      +realpath.c:  I think there was a external reference (maybe more than 1
      +reference?)  which did not match the internal declaration.  I think I
      +changed the realpath declaration to match the externals.  I deleted the
      +original sources so I don't recall the change exactly.
      +
      +ftpcmd.c:  This file results from ftpcmd.y (via yacc/bison).  Unfortunately
      +the resulting c code will not build.  It was necessary to move 2 of the
      +structures to an earlier section.  I think it was the 'cmdtab[]' and
      +'sitetab[]' structures which were moved.  They were being called prior to
      +their declaration.  (`what bison` gives $Revision: 1.2 $)
      +
      +Makefile.hpx:  Modified to not delete the ftpcmd.c file fixed above.
      +
      +ftpd.c:  1) installed the shadow password patch per the instructions in the
      +FAQ.  The new code worked without any problems (I'll probably port it to
      +the POP3 server I've been wanting to install).  2) Modified the sprintf
      +calls near SEPPROCTITLE to include "wuftpd" in the process string (similar
      +to hp-ux ftpd).  this allows "ps -ef | grep ftp" to show all connected ftp
      +processes.  It might need a little doctoring up since the file names on
      +RETR have ^M^J tacked on.
      +
      + +

      +Extra remark: On a trusted system HP's getpwnam does not supply the encrypted +password. Instead you have to use getprpwnam. Modify ftpd.c to use getprpwnam. +

      +         pr_pw = getprpwnam(pw->pw_name);      /* get shadow password */
      +         xpasswd = crypt(passwd, pr_pw->ufld.fd_encrypt);
      +         bpasswd = bigcrypt(passwd, pr_pw->ufld.fd_encrypt);
      +
      +

      +

      +

    15. Installation notes for HP-UX 10.20. +

      +A complete set of installation notes for WU-FTPD on HP-UX 10.20:
      + +This section is written by someone else who wishes to remain unnamed. +

      +I installed wu-ftp2.4 on a clean HPUX 10.20 build. The 10.20 build came +straight from HP, and the only important differences on this build from +a generic build is that the X-libs and X-utils were stripped out +(something I would recommend if you are building an HP 10.20 for ftp +only). +

      +- Get both the wu-ftp2.4 package and the current ansi-c compiler +package (I got mine from HP, you can request the package +ansic.hp-10.20.tar.gz) +

      +- Uncompress and untar the C package first (HP comes with a standard c +compiler, but it is only useful in the kernel compiling and doesn't +function well outside of doing kernel work). +Follow the README/INSTALL docs for installing the c compiler. Make sure +you put this new compiler in your path, or do some editing whenever you +use cc to point to this compiler and not the default. +

      +- Build WU-FTPD normally +

      +- Set up the server +

      +- Special notes about tuning for heavy load: + +The ftp servers that I maintain are heavily hit and some kernel +configuration was required to allow more heavy load on lock files and +multiple access to the same file. This was all done through SAM. An +important thing to keep in mind on a heavily accessed machine is that +the fin_wait state needs to be lowered enough to keep open file locks +at a minimum. I set all of my fin_waits to 5 minutes or less. +

      +

      +

    16. I want to compile for IPv6 +

      +At this moment, IPv6 support is not available in WU-FTPD from the WU-FTPD +Development Group. But, there is hope, the Kame project makes a patchset +available for IPv6 support under BSD and Linux. More info at the Kame +project homepage: +<URL:http://www.kame.net/> +

      +

      +

    + +
  6. Special compilation options/fixes +

    +This section deals with specialities in compilation for certain situations. + +

    +

    +

      +
    1. I need to authenticate real users via AFS +

      +Edit the Makefile for your OS to add the AFS libs/includes. They only +appear in the Makefile for AIX. After that add the following line to the +#include section of src/ftpd.c : +

      +#include <afs/stds.h>
      +
      +

      +

    2. I need to use S/KEY authorisation +

      +Method for 'configure' : +
      +(For Solaris 7):
      + +

      +1. copied skey.h /usr/include
      +2. copied libskey.a /usr/lib
      +3. ran configure --enable-skey
      +
      +

      +Method for 'build' : +

      +The general SKEY procedure is something like this:
      +
      +The last thing in config.h is an #undef SKEY; comment that out.  That is
      +a gotcha that can take some time to find, although that doesn't seem to
      +be the problem.
      +
      +Copy skey.h into the src directory.
      +
      +Copy libskey.a into the support directory.
      +
      +Edit the appropriate Makefile.* in src/makefiles and add the following:
      +   add "-DSKEY" to the CFLAGS macro;
      +   add "-lskey" to the LIBES macro.
      +
      +That should do it; if not, holler back.
      +
      +

      +

      +

    3. I want to block certain default addresses (IE30User@, mozilla@) +

      +Check the option 'deny-mail' in the ftpaccess(5) manpage. +

      +

    + +
  7. Installing WU-FTPD +

    +In general, change the line for the ftp-server in /etc/inetd.conf (the +file that defines the servers started by inetd. For some operating systems, +this is another file). +

    +

    +

      +
    1. Command-line options for WU-FTPD +

      +With the latest versions, using no command-line options will set it to a +default-mode, in which it will not parse the ftpaccess file. Add +the option -a to the command line in inetd.conf. +

      +

      +

    2. Testing on a different port number than ftp:21 +

      +This can be done from the command line or with a special definition in +/etc/services / /etc/inetd.conf. For command-line, look up -P and +-p in the ftpaccess(5) manpage. +

      +To set up with special definitions, add 2 ports with +consecutive numbers in /etc/services, and then start WU-FTPD on these +ports. Add to /etc/services something like : +

      +ftptest         4021/tcp        #command port    
      +ftptest-data    4020/tcp        #data port
      +
      + +Then start WU-FTPD from /etc/inetd.conf like : +
      +ftptest stream tcp nowait root /usr/etc/in.ftpd in.ftpd
      +
      + +The key is the name 'ftptest' which associates the port assignment +in the /etc/services file to that in the inetd.conf file. Make +certain the choice of ports in /etc/services (4021 and 4020 above) +are from the local use list and don't conflict with other port +assignments (see RFC1700, ASSIGNED NUMBERS). One important +subtlety. The data port is not really derived from the data port +declaration in the /etc/services file. The FTP specification +(RFC765) states the data port is defined as one less than the +command port. However, including the data port declaration in the +/etc/services file prevents it from being accidentally assigned to +something else. + +

      +

      +

    3. Not all command line parameters seem to be used by WU-FTPD +

      +Your inetd probably drops some parameters after a given number (4 or 5). +You can use the following wrapper program to give additional parameters : +

      +/* wrapper for wuftpd to add command line arguments
      +   that don't fit under inetd */
      +
      +#include <stdio.h>
      +#include <stdlib.h>
      +#include <unistd.h>
      +#include <errno.h>
      +#include <syslog.h>
      +
      +int main(argc,argv)
      +   int argc;
      +   char **argv;
      +{
      +   char *path="/local-adm/bin/ftpd";
      +   char *cmd="ftpd";
      +
      +   fflush(stderr);
      +   fflush(stdout);
      +   errno=0;
      +   execl(path,cmd,"-a","-l","-L","-u022",NULL);
      +
      +   openlog("wrapftpd",LOG_PID, LOG_LOCAL6);
      +   syslog(LOG_WARNING,(const char *)strerror(errno));
      +   closelog();
      +   exit(EXIT_FAILURE);
      +
      +}
      +
      +

      +

      +

    4. How do I use the package file WUFtpd250.wu-ftpd-2.6.2.SPARC.ULTRASparc.2.5.1.2.5.pkg.tar ? +

      +Unpack the tar into an empty directory which will then have a subdirectory +named WUFtpd262 + +Do not enter this directory, but type 'pkgadd -d .', you will get +something like: + +

      +# pkgadd -d .
      +
      +The following packages are available:
      +  1  WUFtpd262     wu-ftpd 2.6.2 SPARC/ULTRAsparc 2.5.1 - 2.5
      +                   (sun4c,sun4d,sun4e,sun4m,sun4u,sun4u1) 2.6.2
      +
      +Select package(s) you wish to process (or 'all' to process
      +all packages). (default: all) [?,??,q]: 
      +
      +

      +

    5. How do I enable WU-FTPD under Redhat 7 and higher ? +

      +Redhat 7 and above use xinetd instead of inetd. Use chkconfig wu-ftpd on +or edit /etc/xinetd.d/ftp to enable +the service (it is disabled by default even when WU-FTPD is installed). +

      +

    6. I can't get out of my homedir with Redhat 8 +

      +Redhat 8 automatically puts every user in their homedir using the guestuser +directive. Comment this out if you want to be able to browse the entire +system. +

      +

    + +
  8. Are there year 2000 issues with WU-FTPD? +

    +The original version of WU-FTPD had a year 2000 representation +problem in the handling of the MDTM (modification time of file) command. +No internal workings of WU-FTPD were affected by this problem. +

    +This problem has been fixed in WU-FTPD 2.4.2 beta 14 which was +published August 1997. With this fix, WU-FTPD is believed to be completely +Y2K-compliant. +

    +The fix that was applied :
    +The following statement appears in ftpcmd.y. It is part of +the action for the syntax: MDTM check_login SP pathname CRLF + +

    +		reply(213,
    +			"19%02d%02d%02d%02d%02d%02d",
    +			t->tm_year, t->tm_mon+1, t->tm_mday,
    +			t->tm_hour, t->tm_min, t->tm_sec);
    +
    + +The 19%02d needs to be changed to %04d and t->tm_year needs to +be changed to t->tm_year + 1900: + +
    +		reply(213,
    +			"%04d%02d%02d%02d%02d%02d",
    +			t->tm_year + 1900, t->tm_mon+1, t->tm_mday,
    +			t->tm_hour, t->tm_min, t->tm_sec);
    +
    + +And WU-FTPD versions that old also have gaping security holes. + +

    +

    +

  9. The ftpaccess file +

    +

    +

    +

      +
    1. Some files (banners, etc) don't get shown to anonymous users. +

      +When the anonymous user is logged in, bannerfiles are opened relative to +the root of the anonymous user. Keep this in mind. It can be usefull to +have 2 sets of banners or use links. + +

      +

      +

    2. What is the exact format of the <times> parameter in the "limit" +

      +This is a format consisting of day and time parameters. Possible items : +Sa,Su,Mo, .. Any (for any day) and time parameters. For example : +SaSu|Any1800-0700 means all of Saturday and Sunday or Any +day between 18:00 and 07:00. Check if ftpd inherits the correct time zone. + +

      +

      +

    3. What tools are there to check the configuration +

      +ckconfig is delivered with wu-ftpd. At this moment no other tools are +known. + +

      +

      +

    4. Why does %M produce (Max unlimited) on the login banner +

      +All counts and maximums depend on which class the user is in, and the +class is unknown before login (since WU-FTPD takes +realuser/anonymous/guestuser as a variable for calculating which class +a user is in). + +

      +

      +

    + +
  10. Programs (ls, gzip, tar) work for real users, not for anonymous users, giving errors like 425 Can't create data socket (0.0.0.0,20): Bad file number or simply no output. +

    +First, consider if you can't relink them staticly so the shared libraries +aren't needed. You can get the GNU fileutils from : +<URL:ftp://prep.ai.mit.edu/pub/gnu/fileutils-3.16.tar.gz> +(version numbers may vary). +

    +For different operating systems, different libraries and/or devices are +needed. You can test if things are running correctly by doing a chroot +to the ftp homedir. To test if /bin/ls is working in the ~ftp dir, type : +

    +chroot ~ftp /bin/ls +

    +Or, the partition is mounted -nosuid which gives the same error under +SunOS or Solaris, more information on the page +<URL:http://www.stokely.com/stokely/sunservice.tips/11991.html> +

    +

      +
    1. Solaris +

      +First, have a look at the manpage for the original in.ftpd(1m). +It has a scipt for setting everything up. If the filesystem with ~ftp is +mounted -nosuid, the special device files will not work. +

      +Solaris needs ~ftp/dev/tcp and ~ftp/dev/zero and the libraries. Check +the man-page for your Solaris version for exact details. Use the +command ldd to find out which libraries a program uses. Also, +the ~ftp/etc/group file is needed for ls to work, without it it will +just dump core. Follow the same rules as for /etc/passwd : not too much +information in that file, like group passwords (if you have those). +

      +Needed libraries can include :
      +ld.so, ld.so.1, libc.so.1, libdl.so.1, libintl.so.1, libmp.so.1, libnsl.so.1, +libsocket.so.1, libw.so.1, nss_compat.so.1, nss_dns.so.1, nss_files.so.1, +nss_nis.so.1, nss_nisplus.so.1, straddr.so +

      +

      +

    2. Building a statically linked ls for Solaris fails +

      +This is discussed in the comp.unix.solaris Frequently Asked Questions +<URL:http://www.fwi.uva.nl/pub/solaris/solaris2> item 6.24 (at this moment). +

      +

      +

    3. Linux +

      +Use the command ldd to find out which libraries a program uses. +Create ~ftp/dev/null and ~ftp/dev/zero. +You will need the ELF file loader, ld-linux.so in ~ftp/lib. +

      + +

      +

      +

    4. Dec OSF +

      +Copy the static version of ls (/sbin/ls) and not the dynamic one. The static +version is about 400K.
      +Make passwd and group files in ~ftp/etc. Copy from /etc/sia +dir to ~ftp/etc/sia the files matrixconf and +siainitgood. + +

      +

      +

    5. SunOS4.1.x +

      +SunOS needs ~ftp/dev/zero, ~ftp/dev/tcp and the libraries. Check permissions +on the device files. + +

      +

      +

    6. AIX +

      +AIX comes with scripts to automate this installation. +

      +AIX 3.2.5 - /usr/lpp/tcpip/samples/anon.ftp
      +AIX 4.1.4 - /usr/samples/tcpip/anon.ftp
      +

      + +After the script is done, change the mode of ~ftp/pub to something safer. +

      +Also, AIX comes with a 'dump' utility that can show which libraries a +program uses. + +

      +

      +

    7. IRIX (5.3, 6.2) +

      +IRIX 6.2 needs ~/ftp/dev/zero and libraries. +To create /dev/zero, check its current major and minor number with : +

      +ls -lL /dev/zero
      +
      +And then create it in ~ftp using : +
      +cd ~ftp/dev
      +mknod zero c <major> <minor>
      +cd ..
      +chmod 555 dev
      +
      + +You will probably need to +copy /lib/libc.so.1 to ~ftp/lib/libc.so.1 and /lib/rld to ~ftp/lib/rld. +These are required by ls, compress, gtar and gzip. +

      +You can see what libraries a program needs by doing the following: +

      +csh# setenv _RLD_PATH /usr/lib/rld.debug
      +csh# setenv _RLD_ARGS '-v -quickstart_info -stat'
      +
      + +To stop seeing what libraries are needed unset the environment variables: +
      +csh# unsetenv _RLD_PATH
      +csh# unsetenv _RLD_ARGS
      +
      + +Useful information on Irix also in the IRIX Insight Library (Online Books) +in the book/chapter "IRIX Admin: Networking and Mail" in the paragraph +"How to Set Up a Proper Anonymous FTP Account". + + +

      +

      +

    8. SCO Unix +

      +SCO needs /dev/socksys. + +

      +

      +

    9. BSD vs SVR4 ls +

      +This is a very sneaky one. To quote : The problem was that ls_short and +ls_long were being defined incorrectly (since the system was compiled with +a BSDish compiler, the BSD config file was used) using ls -lA and ls -lgA +respectively. It turns out that the ls command was running but it was +erroring out (this is because the system is actually running SVR4), since +a failed ls produces output only to stderr not stdout I saw nothing for +my output. + + + +

      +

      +

    10. It worked, until I upgraded the operating system. +

      +Something in the upgrade changed in your OS. Most likely : newer shared +libraries. Also : other major/minor numbers in /dev. Redo the shared libs +and devices after an upgrade if things like the above happen. + +

      +

      +

    + +
  11. Running WU-FTPD +

    +There is a nice set of man-pages with WU-FTPD. They do contain a lot of +information. +

    +Also, note that a lot of things about the chrooted environment for anonymous +users also applies to the chrooted environment for guest users. +

    +

    +

      +
    1. ftpd allways says "221 Server shutting down. Goodbye." +

      +The directive shutdown in the ftpaccess file points to a file that +exists at that moment. Either change the directive or delete the file. +

      +Also, after you've used the ftpshut command, you'll need to remove the +ftpshut file by hand. +

      +

      +

    2. Anonymous ftp works fine, but real users are denied access +

      +Check the following :

      +

        +
      • Reasons for denial are logged using syslog. Check your logs. +
      • Their shell is in the /etc/shells file. Note : AIX doesn't even have +this file, so you need to create it for WU-FTPD. +
      • The problem has been fixed in the latest versions for AIX. Get the +latest version. +
      • /etc/shells needs the correct access rights (world readable and +not world writable). +
      • If you're using shadow passwords : make sure the daemon is compiled +with shadow password support. +
      +

      +

      +

    3. ftpconversions doesn't work +

      +There are a lot of possible reasons, mostly having to do with the fact that +some versions tar use different command line parameters. +

        +
      • Solaris 2.4 : if you use Solaris tar, and give the commandline as +/bin/tar -cf - %s, the effect will be the same as /bin/tar +-cvf - %s. The -v option will add extraneous data to the +stream. Solution : replace it with /bin/tar cf - %s (no leading -). +
      • Also, check your 'tar' and 'compress' directives in ftpaccess. +
      +

      +

      +

    4. On-the-fly compression works, on-the-fly tarring, but not both. +

      +With Solaris 2.4 and GNU's tar-1.11.8 (configured and compiled with +--disable-nls flag) use the GNU tar flag +--use-compress-program=path to compression program +

      +sample :
      + + : : :.tar.Z:/bin/ftp-exec/tar -c --use-compress-program=/bin/ftp-exec/compress -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
      + : : :.tar.gz:/bin/ftp-exec/tar -c --use-compress-program=/bin/ftp-exec/gzip -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
      +
      +

      +

      +

    5. I want to use zip compression (InfoZip) +

      +Lines for ftpconversions : +

      + :.zip: : :/bin/unzip  -qq -p %s:T_REG|T_ASCII:O_UNCOMPRESS:UNZIP
      + : : :.zip:/bin/zip -qq -r - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:ZIP
      +
      + +Info-ZIP can be found at <URL:http://quest.jpl.nasa.gov/Info-ZIP/> + +

      +

      +

    6. I want a real user to be able to access the host only via ftp, not via telnet +

      +Create a shell for this purpose (for example, a program that says the above +or a copy of /bin/true). Put this shell in +/etc/shells. Change the shell of the user to that shell.
      +Next : make sure mail cannot be delivered locally to the account. Using +the fact that the shell is valid for sendmail (it is in /etc/shells) +a user can be able to start commands as that user. +

      +Information and a sample script on +<URL:http://www.landfield.com/wu-ftpd/ftponly/ftponly.html> +

      +

      +

      +
      The same, for AIX. +
      Use chuser (or SMIT) to set the user to +login=no, su=no, telnet=no, rlogin=no. +

      + +

      +
    7. Somebody uploaded a file with a weird name +

      +Somebody is trying to misuse your ftp-site for transferring software +(worst case scenario). Check if the directive path-filter in +the ftpaccess file is something like : +

      +path-filter anonymous /etc/paths.msg ^[-A-Za-z0-9\._]*$ ^\. ^-
      +
      + +

      +

      +

    8. I want anonymous users to be able to upload files, but in the most secure manner possible +

      +In general: you don't want this. But, if you're stubborn... +

      +Read the upload.configuration.HOWTO, pointer at the beginning of this faq. + +Make very sure that you have the latest version of WU-FTPD (2.6.2), set your path-filter to the one mentioned above. Make the +incoming directory owned by something else than ftp (root, or nobody) +with another group then ftp (nobody). Something like : + +

      +drwx-wx-wt       root    nobody        incoming
      +
      + +This will allow ftp to write in the directory, but not read it. + +Set the upload directive in ftpaccess to something like : + +
      +upload    /home/ftp    /home/ftp/incoming/*   yes root daemon 0400 nodirs
      +
      + +One note : files get created as root and changed to the owner mentioned +in the upload line. This will fail on some secure NFS setups. Best solution +is to mount the /incoming separately. + +

      +

      +

    9. The upload clause doesn't work with directories as it used to. +

      +Unlimited subdirectory creation has been prohibited as this has been +the source of problems with WU-FTPD. You will need to explicitely allow +a certain amount of levels of subdirs, like for example: +

      +upload /home/test /home/test/public_html                   yes test users 0664 dirs 0775
      +upload /home/test /home/test/public_html/*                 yes test users 0664 dirs 0775
      +upload /home/test /home/test/public_html/*/*               yes test users 0664 dirs 0775
      +upload /home/test /home/test/public_html/*/*/*             yes test users 0664 dirs 0775
      +
      + +This is new for versions 2.6.0 and higher. + +

      +

      +

    10. The default umask used when a real user uploads a file is wrong +

      +The default umask is inherited from inetd. This can be a wrong one. +There is a command line parameter -u. Edit the line in +inetd.conf to something like ftpd -A -L -l -u077. + +

      +

      +

    11. I heard something about 'SITE EXEC' having a security hole +

      +In some slackware distributions the _PATH_EXECPATH is set to something +like /bin. Recompile WU-FTPD with it set to a special path like /bin/ftp-exec. +

      +To test for this hole, type (when logged in as a real user, not anonymous) : +
      +ftp> SITE EXEC bash -c id +

      +If you get a return with '200-uid=0(root) gid=0(root)' in it, you have the problem. +

      +

      +

    12. How do I make reports more readable ? +

      +There are a couple of scripts to make better reports from the xferlog. +

        +
      • dumpxfer processes the xferlog and gives more humanly readable +output +
      • processlog script to run dumpxfer, email you the output and +truncate the log +
      +These are available via anonymous ftp via +<URL:ftp://tnt.microimages.com/tools/> +both need Perl. +

      +I (Koos van den Hout) also wrote a Perl script to process the log, mail daily +statistics and uploaded files, and create a top most downloaded files. It +is available from +<URL:ftp://ftp.cetis.hvu.nl/pub/koos/ftplogcheck> +

      +iistat generates nice transfer graphs from the xferlog file (and from a lot of other sources). Available from +<URL:ftp://ftp.support.lotus.com/pub/utils/InternetServices/iisstat/iisstat.html> +

      +Phil Schwan wrote xferstats, available from +ftp://ftp.wu-ftpd.org/pub/support/ +

      +Webalizer, a very good web log analyzer, also supports WU-FTPD xferlog format. Available from +<URL:http://www.mrunix.net/webalizer/> + + +

      +

      +

    13. Incoming file transfers fail with SunOS and an NFS mounted incoming +

      +You get errors like : + +

      +Dec 7 11:14:33 ftphost vmunix: NFS write error 13 on host fileserver
      +fh 746 1 a0000 5fea7 3b5a1bd8 a0000 2 1e0a6aed 
      +
      + +That's a known problem. Updating to the latest version is the first help. +Other possible solutions : + +
        +
      • Have the incoming disk on the ftpserver itself +
      • /etc/ftpaccess sets owner to ftp, group to a restricted group and mode +to 0040 (only group read) +
      +

      +

    14. Normal ftp clients work, Netscape ftp's fail. So, passive mode doesn't work. +

      +Apparantly ftpd needs write permission on ~ftp/dev/tcp in order to operate +correctly in passive mode (Solaris). Set it to the same mode as permissions +shown by ls -lL /dev/tcp, +being 666. Also read the Solaris man page for ftpd for Solaris-specific +information. Changed from previous versions +

      +Fix: +

      +cd ~ftp/dev
      +chmod 666 tcp
      +
      + +

      +

      +

    15. I made a symbolic link within the anonymous tree or guest tree and it doesn't work for the anonymous/guest users. +

      +Symbolic links in Unix are relative to your active root. If you want +to access +files/directories/diskspace outside your chrooted environment, you'll have to +import it using directory loopback mounts (available on at least +Solaris) or using NFS mounts (available on most other operating systems +but they have a performance impact). + +

      +

      +

    16. I want to redirect anonymous users to another machine +

      +That's a not-so-well-known ftpaccess feature : just add 'guestserver anon.ftp.server.hostname' to your ftpaccess file.. +

      +

      +

    17. ftpd stops accepting connections when a lot of connections come in. +

      +This is a feature of inetd, not ftpd. Inetd will limit the amount of connections +that can be made to a service per minute. Some versions allow to specify this +amount in inetd.conf, by specifying it in the nowait flag, like : +

      +ftp stream tcp nowait.256 root /usr/sbin/ftpd ftpd -a
      +
      +which will allow 256 connections per minute. Check the manpage for inetd. + +

      +

      +

    18. Running WU-FTPD on a *large* site +

      +Tuning for a large site is mostly OS tuning since WU-FTPD fully depends on +the OS to do things like file-caching and tcp-tuning. If your traffic is +more than what can flow easily over a 100 Mbit card maybe you should look +into bonding multiple 100 Mbit networks together or go ATM or gigabit +ethernet. +

      +WU-FTPD is now default suited for running on a large site. The patches +mentioned below have been included per default. +

      +For example sunsite.doc.ic.ac.uk has made some modifications available at +<URL:ftp://sunsite.doc.ic.ac.uk/packages/mirror/experimental/wu-2.4.2-upd13.shar> +

      +From the notes on those patches: +

      +DAEMON
      +If ftpd called with -D then run as a standalone daemon listing on the
      +ftp port.   This can speed up ftpd response as all ftpd then needs to
      +do is fork off a copy to handle an incoming request.  Under inetd 
      +a new copy has to be opened and exec'd.
      +
      +FILEWHAT
      +If SETPROCTITLE doesn't work or if you have so many users that ps
      +takes a long time then FILEWHAT keeps the info in a file so that
      +ftpcount can just print it.
      +
      +

      +

      +

    19. Only the first 8 characters of the anonymous username are recieved by the server. +

      +This is actually a bug in very old ftp-clients which only send the first 8 +characters because the password is limited to 8 characters anyway. Upgrade +your client. +

      +

      +

    20. WU-FTPD fails with '500 Illegal PORT Command' under AIX 4.3 or Solaris 8 +

      +Both set services in inetd.conf to ipv6 which WU-FTPD doesn't +support yet. Fix: change the protocol from tcp6 to tcp. +

      +

      +

    21. I want to host multiple ftp servers on the same machine +

      +At this moment this is only possible with one IP number for each ftp server. +So called 'name based virtual hosting' is inherently impossible with the +current FTP protocol. +WU-FTPD 2.6.0 supports this in a somewhat limited extent, BeroFTPD supports it +somewhat better, but read the catch: +

      +There is a draft for an extension to the ftp protocol named HOST to support virtual hosts like HTTP. But, this is a draft and there are a lot +of old ftp clients out there. So do not count on using this. +

      +

      +

    22. I just upgraded and now nobody can log in. It worked before. +

      +Did you look in the system log? The daemon will log the reason for the +failure there. It helps a lot to know why. +Most plausible (at the moment) you're upgrading to the latest version and, if +you'd look, the syslog says 'not in any class'. +That means you're using the old, unsafe wildcards on your class +statements such as the following: +class lcl real,guest,anonymous 127.*.*.* +The latest versions don't support this notation for security reasons. +Use netmask or CIDR instead, as in either of the following: +class lcl real,guest,anonymous 127.0.0.0/8 or +class lcl real,guest,anonymous 127.0.0.0:255.0.0.0. +

      +

      +

    23. I get disconnected directly from the ftp server. +

      +Most probable reason: in inetd.conf the ftp server gets started using +tcpd (tcp_wrappers) which fails a security check. Look in the logfiles +given from syslog.conf which check fails. + +

      +

      +

    24. Mirror breaks with WU-FTPD >= 2.6.0. +

      +Get the patch for mirror to update it. Available from: +<URL:ftp://ftp.wu-ftpd.org/pub/support/wu-ftpd-2.6.0-mirror-2.9.patch> +

      +In WU-FTPD 2.6.0, some flaws in dealing with the ftp protocol were fixed +which broke some clients. +

      +

      +

    25. Logins to the ftp server take a long time, after that things run smooth +

      +Possible causes: +IDENT (RFC931) lookup is enabled in WU-FTPD. This has a timeout of 10 seconds. +If the protocol (port 113) gets blocked by a firewall or suchlike, it will +wait for timeout. If it is 30 seconds and you are using Redhat >= 7 with xinetd, +disable AUTH in inetd as well. Change the entries in /etc/xinetd.d/ftp that +read: +

      +log_on_success      += DURATION USERID
      +log_on_failure      += USERID
      +
      +Remove the 'USERID' from both. +Any other time period: DNS is broken for the IP address the connection is +coming from. + +

      +

      +

    26. ls doesn't show anything except files. It does not show directories and links +

      +Some ftp clients improperly use the NLST and LIST commands. NLST was +intended to show files only for retrieval using the mget command. LIST +was intended to show everything in human-readable form. Earlier +versions of WU-FTPD did not correctly interpret the RFC which +defines these commands and many ftp clients were written incorrectly +and do not use the definitions in the RFC. + +Starting WU-FTPD 2.6.0, the interpretation of NLST versus LIST ftp +commands has been changed to what is the right interpretation. NLST +lists retrievable files for the ftp mget command, LIST lists all files +for a human reader. Suggested fix: fix the client software, or train +the users to use ls -l (or dir) in a command-line client to get a listing +of the files and directories. + +

      +

      +

    27. My client hangs at the end of a transfer +

      +Starting WU-FTPD 2.6.0, the FTP RFC has been implemented in a stricter way, +which breaks some clients. Most visible clients are mirror and squid. More +information on which clients and how to update them at +<URL:http://www.wu-ftpd.org/broken-clients.html> + +

      +

      +

    28. Sometimes ftpd stops working and inetd logs 'ftp/tcp server failing (looping), service terminated' +

      +Inetd counts the number of connection occuring within a minute. If +that number exceeds some threshold, is assumes the ftp service is +broken (or under attack) and keeps getting restarted - and shuts down +the service. In most systems, this can be overcome by adding a +parameter to the inetd.conf file like .... nowait.400 (400 +connections per minute). Check the specific syntax for your operating +system. + +

      +

      +

    29. I can't login, in the syslog is: get passwd; pwdb: request not recognized +

      +Your /etc/pam.d/ftp file is missing/incomplete, it should contain at +least: +

      +#%PAM-1.0
      +auth    required pam_pwdb.so shadow nullok
      +auth    required pam_shells.so
      +account required pam_pwdb.so
      +session required pam_pwdb.so
      +
      + +And for denying users in /etc/ftpusers: +
      +auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
      +
      + +

      +

      +

    30. Under Solaris, certain user information stays cached even when changed +

      +Solaris uses nscd to cache certain information. With 'nscd -i passwd' the +cache will be refreshed. You can also have a look at the manpage for nscd +on how to change this behaviour. + +

      +

      +

    31. Does WU-FTPD support resuming downloads/uploads +

      +Since the correct way to resume a download is not standardized, it depends +on the interaction between server and client. The way that it is usually +implemented is supported by WU-FTPD. + +

      +

      +

    + +
  12. Other things +

    + +

    +

      +
    1. Where is the FTP protocol documented ? +

      +RFC959 documents the FTP protocol. + +

      +

      +

    2. How can I make my ftp-archive accessible by Email (ftpmail) ? +

      +There is a Perl-script collection available named ftpmail. It is available on +a lot of ftp-sites (archie for 'ftpmail'), some of which are : +

      +<URL:ftp://sunsite.doc.ic.ac.uk/packages/ftpmail/>, +nic.funet.fi, ftp.warwick.ac.uk, ftp.loria.fr, ftp.germany.eu.net. + +

      +

      +

    3. How do I force all clients to switch to binary mode ? +

      +You can't. Binary or Ascii transfer is purely a choice of the client in the +ftp protocol. Some clients switch to binary mode automatically at startup, +but that is purely their choice and not governed by the server. + +

      +

      +

    4. My embedded device has a builtin version of WU-FTPD which is outdated according to your site, how do I update it ? +

      +Firewall the device from the Internet and if possible from +network (most embedded devices should not be reachable from the +Internet anyway). After that start bugging the vendor for an update +pointing the vendor towards the website for WU-FTPD at <URL:http://www.wu-ftpd.org/>. + +

      +

      +

    + +
  13. Credits/miscellanious +

    +A number of people deserve credit : +

    +(No chocolate cookies. Yet) +

    +

    +

      +
    1. How do I contact the WU-FTPD Development team +

      +Send email to (wuftpd-members@wu-ftpd.org) +

      +

      +

    2. I have a correction / new feature, how do I submit it for the WU-FTPD Development team's consideration +

      +The development team prefers context-diffs against the lastest version +of the source code. Completely new files may be included separately or +as part of the context-diff. +

      +If your entire patch is small (less than 25,000 bytes) you may send it +via email, with a brief description of your change, to +wuftpd-members@wu-ftpd.org. +

      +If your patch or addition is large (over 25,000 bytes) or invloves +several files, please create a compressed tar (tar.gz or tar.Z) and +upload it to ftp://ftp.wu-ftpd.org/incoming After you have uploaded, +please send a brief description of your patchs, along with the name you +uploaded it as, to wuftpd-members@wu-ftpd.org. +

      +

    + +
+ +Last modified : Wed Mar 12 18:06:21 2003 + +
+Created by : +Koos van den Hout (koos@wu-ftpd.org)
+Email related to this faq: (faq@wu-ftpd.org)
+Homepage : http://idefix.net/~koos/
+ + --- wu-ftpd-2.6.2.orig/debian/ftpusers +++ wu-ftpd-2.6.2/debian/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 --- wu-ftpd-2.6.2.orig/debian/in.welcome.msg +++ wu-ftpd-2.6.2/debian/in.welcome.msg @@ -0,0 +1,10 @@ +Welcome, archive user %U@%R ! + +The local time is: %T + +This is an experimental FTP server. If have any unusual problems, +please report them via e-mail to . + +If you do have problems, please try using a dash (-) as the first +character of your password -- this will turn off the continuation +messages that may be confusing your FTP client. --- wu-ftpd-2.6.2.orig/debian/in.msg.deny +++ wu-ftpd-2.6.2/debian/in.msg.deny @@ -0,0 +1,4 @@ + + Sorry, access from your host/domain (%R) is restricted. + Please e-mail for more information. + --- wu-ftpd-2.6.2.orig/debian/in.msg.nodns +++ wu-ftpd-2.6.2/debian/in.msg.nodns @@ -0,0 +1,4 @@ + + Sorry, access from your host is denied, because it does not have + a valid reverse DNS record. Please contact your admin and fix it. + --- wu-ftpd-2.6.2.orig/debian/in.ftpaccess +++ wu-ftpd-2.6.2/debian/in.ftpaccess @@ -0,0 +1,111 @@ +# Debian default wu-ftpd `ftpaccess' configuration file, derived from +# the `ftpaccess.heavy' example in wu-ftpd sources. +# For more options/commands see ftpaccess(5) and /usr/share/doc/wu-ftpd/*. + +# Some of the example message files have been translated to Spanish, +# and are available in /usr/share/doc/wu-ftpd/examples/. +# (thanks to Javier Fernandez-Sanguino Pen~a + + +# E-mail address of the FTP admin, can be accessed via the %E in messages. +email ftpadmin@misconfigured.host + +# Which UIDs and GIDs may, and which may not use the FTP service. +#deny-uid %-99 +#deny-gid %-99 +#allow-uid ftp ftpadmin +#allow-gid ftp ftpadmin + +# Maximum number of retries after login failures, before disconnecting. +#loginfails 5 + +# Can users see anything else but their home directory +#restricted-uid lamer +#unrestricted-gid ftpadmin + +# Allow use of private file for SITE GROUP and SITE GPASS? +#private no + +# What kind of greeting to give. +#greeting + +# Banner to show immediately on connect. +#banner /etc/wu-ftpd/welcome.msg + +# Deny access to specified hosts, with message. +#deny *.microsoft.com /etc/wu-ftpd/msg.deny +#deny /etc/wu-ftpd/denied.hosts /etc/wu-ftpd/msg.deny +# !nameserved means hosts that can't be resolved. +#deny !nameserved /etc/wu-ftpd/msg.nodns + +# Various DNS related options. +#dns refuse_mismatch [override] +#dns refuse_no_reverse [override] +#dns resolveroptions [options] + +# Class name typelist addresses +#class local real,guest,anonymous *.my.domain 192.168.0.0 +#class remote real,guest,anonymous * +class all real,guest,anonymous * + +# Limit who how many date/time message file +#limit local 20 Any /etc/wu-ftpd/msg.toomany +#limit remote 100 SaSu|Any1800-0600 /etc/wu-ftpd/msg.toomany +limit all 10 Any /etc/wu-ftpd/msg.toomany + +# The files that wu-ftpd will recognize as must-be-read, and display them. +message /welcome.msg login +message .message cwd=* + +# The files that wu-ftpd will recognize as should-be-read, and warn about them. +readme README* login +readme README* cwd=* + +# Whether to use compression. +compress yes local remote all +tar yes local remote all + +# Logging of actions. +#log commands anonymous,guest,real +#log security +#log syslog +log transfers anonymous,guest,real inbound,outbound + +# The file wu-ftpd will check to see if the server is going to be shut down. +# (use ftpshut to generate it) +shutdown /etc/wu-ftpd/shutmsg + +# These files are marked unretrievable +noretrieve /etc/passwd /etc/group +noretrieve core + +# The directory to which anonymous FTP user will chroot to. +# Note: if you change this {add,rm}ftpuser may stop functioning. +#anonymous-root /home/ftp + +# Password verification for the anonymous FTP user. +# [] +passwd-check rfc822 enforce + +# Maximum connection time in minutes +#limit-time anonymous 30 + +# Some permissions for the anonymous FTP user. +# All the following default to "yes" for everybody +rename no anonymous # rename permission? +delete no anonymous # delete permission? +overwrite no anonymous # overwrite permission? +chmod no anonymous # chmod permission? +umask no anonymous # umask permission? + +# Anonymous FTP directories upload settings +# anon-ftp-root path allow? owner group mode dirs? +upload /home/ftp * no +upload /home/ftp /pub/incoming yes ftp daemon 0666 nodirs + +# What can a filename contain (this /etc is under the anonymous-FTP root) +path-filter anonymous /etc/pathmsg ^[-+A-Za-z0-9_.]*$ ^\. ^- + +# Shortcuts for anonymous FTP incoming (note: the ':' isn't obligatory) +alias incoming: /pub/incoming +cdpath /pub --- wu-ftpd-2.6.2.orig/debian/in.ftpconversions +++ wu-ftpd-2.6.2/debian/in.ftpconversions @@ -0,0 +1,29 @@ +# +# ftpconversions(5) -- wu-ftpd on-the-fly file conversion settings +# +# Fields (separated with `:') are: +# 1. reserved (prefix to strip from real filename) +# 2. suffix to strip from real filename +# 3. reserved (prefix to add to real filename) +# 4. suffix to add to real filename +# 5. external command to do conversion (full paths under ~ftp/ required!) +# 6. types of data which may be converted (T_REGular files, T_DIRectories, T_ASCII transfers) +# 7. log which conversions were used (O_TARring, O_COMPRESSing, O_UNCOMPRESSing) +# 8. description of conversion +# + :.Z: : :/usr/bin/compress -d -c %s :T_REG|T_ASCII:O_UNCOMPRESS:uncompress + : : :.Z:/usr/bin/compress -c %s:T_REG:O_COMPRESS:compress + :.gz: : :/bin/gzip -cd -- %s:T_REG|T_ASCII:O_UNCOMPRESS:gunzip + : : :.gz:/bin/gzip -c9 -- %s:T_REG:O_COMPRESS:gzip + :.bz2: : :/usr/bin/bzip2 -cd -- %s:T_REG|T_ASCII:O_UNCOMPRESS:bunzip2 + : : :.bz2:/usr/bin/bzip2 -c9 -- %s:T_REG:O_COMPRESS:bzip2 + :.zip: : :/usr/bin/unzip -q -c - %s:T_REG|T_DIR:O_TAR|O_UNCOMPRESS:unzip + : : :.zip:/usr/bin/zip -q -r -9 - %s:T_REG|T_DIR:O_TAR|O_COMPRESS:zip + : : :.tar:/bin/tar -chf - -- %s:T_REG|T_DIR:O_TAR:tar + : : :.tar.Z:/bin/tar -chZf - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+compress + : : :.tar.gz:/bin/tar -chzf - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+gzip + : : :.tgz:/bin/tar -chzf - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+gzip + : : :.tar.bz2:/bin/tar -chjf - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+bzip2 + : : :.ltar:/bin/tar -cf - -- %s:T_REG|T_DIR:O_TAR:tar + : : :.ltar.Z:/bin/tar -cZf - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+compress + : : :.ltar.gz:/bin/tar -czf - -- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+gzip --- wu-ftpd-2.6.2.orig/debian/README.Debian +++ wu-ftpd-2.6.2/debian/README.Debian @@ -0,0 +1,112 @@ +Debian wu-ftpd package notes ++--------------------------+ + +You can read more about how to set up (configure) wu-ftpd in the +/etc/wu-ftpd/README file. + +In the case where ftp-only accounts are required on the system, it is +common practice to set the users shell in /etc/passwd to something that +is not contained in /etc/shells (for example: /etc/ftponly). The default +PAM configuration that ships with wu-ftpd disallows logins without a +valid shell. To allow these logins, simply remove the line referring to +pam_shells.so in /etc/pam.d/wu-ftpd. + +If you don't have the proper libnss_files.so.X library installed in +~ftp/lib directory, owned by root, and with permissions of 444 (r--r--r--), +anonymous FTP users will only see UID and GID numbers, instead of names. +It is not installed by default, since there is no easy way to find out what +version we need to install. + +If you have any additional commands in ~ftp/bin or ~ftp/bin/ftp-exec, you +should make sure that they are up to date, and that the libraries they +use are present, and in sync with your other system libraries. A check +for this will automatically be performed in the future. + +Jason Gunthorpe provided a sample awk script to make +wu-ftpd xferlog output usable by webalizer or analog: + +awk '{if (length($3) != 2) $3 = "0" $3;\ + print $7 " - - [" $3 "/" $2 "/" $5 ":" $4 "] \"GET " $9 \ + " HTTP/1.0\" 200 " $8}' /var/log/wu-ftpd/xferlog.0 + +Here's Gregory A. Lundberg's , one of the main wu-ftpd +upstream developers, opinion of wtmp logging: + +Date: Wed, 4 Aug 1999 10:53:53 -0400 +From: Gregory A Lundberg +To: WU-FTPD Questions , + WU-FTPD Discussion List , + Josip Rodin , + Chris Butler , + WU-FTPD Development Group +Subject: Why wtmp is bad + +These are my parting thoughts on src/logwtmp.c and wtmp logging ... + +Many administrators like to see FTP logins when they run the last(1) +command. On most unix systems, this is implemented using the wtmp file +(usually named /var/run/wtmp). + +The wtmp file records login/logout (and other activity, such as system +shutdown and reboot) by appending a record to the end of the file. This +can be problematic, especially for the WU-FTPD daemon. + +Some platforms, notably Solaris, traditionally have problems with wtmp +logging and the last(1) command. For Solaris, steps have been taken to +mitigate (but not necessarily solve) these problems in WU-FTPD. If you are +using wtmp logging on Solaris, you MUST ensure you have applied all +available patches. (Even then, I'm told, it is possible you will have +intermitent problems with the last(1) command.) + +To append to the wtmp file, one opens the file with O_APPEND. This can +lead to corruption if the file is mounted via NFS (or any other filesystem +which does not directly support appending). In this case, the system must +synthesize the effect of O_APPEND, which leads to a race condition +resulting in file corruption. For this reason, if you are using wtmp +logging, you MUST ensure the wtmp file is on a local filesystem. + +The wtmp file grows without bounds. Therefore, on a well-run server, it +will occassionally be cleaned out. In general, there are two methods by +which the file is cleared: mv/touch and cp/cat. Both methods suffer from +race conditions which can lead to loss of information. In most cases, the +window for this race is very small (a fraction of a second); the resulting +information loss will occur very infrequently and will probably be +unnoticed. This problem is worse with the WU-FTPD daemon; the probability +of information loss is substantially higher. + +The WU-FTPD daemon uses chroot(2) to increase security for guest and +anonymous users. The login record is written prior to the chroot(2). +Unfortunately, the logout record can only be written afterward. To enable +the daemon to write the logout record, the wtmp file is openned at the +beginning of the FTP session and remains open for the duration. For +systems using mv/touch clearing, which results in a new wtmp file being +created and the old one being deleted, this significantly increases the +window for information loss during wtmp clearing (from a fraction of a +second to minutes or even hours). For maximum reliability, you MUST use +cp/cat (emptying the file without recreating it) to clear the file. + +One effect of this workarround to the problem of wtmp logging while +chroot'ing is the WU-FTPD daemon uses slightly more system resources (a +file handle and associated buffers) than would otherwise be necessary. If +your server is especially busy, or close to kernel limits, you should +consider disabling wtmp logging as a means of reducing the resource +utilization of the daemon. + +I generally set up FTP servers to run as unattended standalone machines. +On these machines, the last(1) command is unnecessary. In addition, FTP +activity is forwarded to my system log hosts via syslog(3). When +historical login/logout information is desired, I generate it by scanning +the system logs. Therefore, no wtmp logging is ever needed. I disable it +using the -W command-line switch. I recommend you examine your own needs +concerning wtmp logging. + +-- + +Gregory A Lundberg WU-FTPD Development Group +1441 Elmdale Drive lundberg@wu-ftpd.org +Kettering, OH 45409-1615 USA 1-800-809-2195 + +* end * + + -- Josip Rodin, Tue, 14 Mar 2000 18:39:00 +0100 + Chris Butler, Fri, 10 Mar 2000 16:24:06 +0000 --- wu-ftpd-2.6.2.orig/debian/in.msg.toomany +++ wu-ftpd-2.6.2/debian/in.msg.toomany @@ -0,0 +1,4 @@ + + Sorry, there are too many users using the system at this time. + There is currently a limit of %M users. Please try again later. + --- wu-ftpd-2.6.2.orig/debian/in.ftpservers +++ wu-ftpd-2.6.2/debian/in.ftpservers @@ -0,0 +1,25 @@ +# +# ftpservers file: +# +# Format of the file is: +# ipaddr/hostname directory-containing-configuration-files +# +# 10.196.145.10 /etc/ftpd/ftpaccess.somedomain/ +# 10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/ +# some.domain INTERNAL +# +# The server parses the file and tries to match the IP address connected +# to one found in the ftpservers file. If a match is found then the path +# to the specified directory that contains the configuration files +# for that specific domain is returned. If a match is not found, or +# an invalid directory path is encountered like above, default +# paths to the configuration files to use are returned. +# +# You can use the actual IP address or a specific hostname. +# +# 10.196.145.20 /etc/ftpd/config/faqs.org/ +# ftp.some.domain /etc/ftpd/config/faqs.org/ +# +# As usual, comments and blanklines are ignored. +# +#### --- wu-ftpd-2.6.2.orig/debian/msg.toomany.es +++ wu-ftpd-2.6.2/debian/msg.toomany.es @@ -0,0 +1,5 @@ + + Lo lamentamos, hay demasiados usuarios usando el sistema en este + momento. Por favor, inténtelo más tarde. Hay actualmente un + límite de %M usuarios. + --- wu-ftpd-2.6.2.orig/debian/pam +++ wu-ftpd-2.6.2/debian/pam @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed +auth required pam_shells.so +@include common-auth +@include common-account +@include common-session --- wu-ftpd-2.6.2.orig/debian/xferstats.8 +++ wu-ftpd-2.6.2/debian/xferstats.8 @@ -0,0 +1,51 @@ +.\" manual page for xferstats +.\" Vincent Renardias +.TH XFERSTATS 8 "October 1999" "Debian Project" "WU-FTPD" +.SH NAME +xferstats \- displays FTP usage statistics +.SH SYNOPSIS +.B xferstats +[-f ] [-r] [-a] [-h] [-d] [-t] [-D ] [-l ] [-s
] +.SH DESCRIPTION +The +.B xferstats +command computes usage statistics of the local FTP service. It shows +the current process information for each user logged into the FTP server. +.SS OPTIONS +.TP +.I "\-a" +Include anonymous users. +.TP +.I "\-d" +Include report on domain traffic. +.TP +.I "\-D " +Report only on traffic from . +.TP +.I "\-f " +Use for the log file. +.TP +.I "\-h" +Include report on hourly traffic. +.TP +.I "\-l " +Depth of path detail for sections. +.TP +.I "\-r" +Include real users. +.TP +.I "\-s
" +Section (directory, path) to report on. For example `-s /pub' will report +only on paths under /pub. +.TP +.I "\-t" +Report on total traffic by section. +.SH SEE ALSO +.BR ftpcount(1), ftpwho(1), wu-ftpd(8) +.SH AUTHORS +This program comes with the wu-ftpd package, which is made by the WU-FTPD +development group, reachable at . +.sp +This manual page was written by Vincent Renardias +for the Debian GNU/Linux wu-ftpd-academ package, and updated by Josip +Rodin for wu-ftpd. --- wu-ftpd-2.6.2.orig/debian/postinst +++ wu-ftpd-2.6.2/debian/postinst @@ -0,0 +1,102 @@ +#!/bin/sh -e +# Post-install script for the Debian wu-ftpd package. +# +# Re-written in shell by Chris Butler +# +# Original perl from Peter Tobias, later changed by Heiko Schlittermann +# and Josip Rodin. Re-written for DebConf by Chris Butler. + +. /usr/share/debconf/confmodule + +WU_FTPD="/usr/sbin/wu-ftpd" +DEFAULT_OPTS="-l" +ADDFTPUSER="/usr/sbin/addftpuser" +RMFTPUSER="/usr/sbin/rmftpuser" +INETD_CONF="/etc/inetd.conf" + +if [ "$1" = "configure" ]; then + + if [ -f "/etc/cron.monthly/wu-ftpd-academ" ]; then + mv /etc/cron.monthly/wu-ftpd-academ /etc/cron.monthly/wu-ftpd-academ.obsolete + fi + + # Get rid of old alternatives + if [ -h "/etc/alternatives/ftpd" ]; then + update-alternatives --remove ftpd /usr/sbin/wu-ftpd + fi + + # Sort out /etc/ftpusers stuff + if [ -h "/etc/ftpusers" ]; then + TMPFILE="`tempfile`" + + cp /etc/ftpusers $TMPFILE + rm /etc/ftpusers + mv $TMPFILE /etc/ftpusers + fi + + if [ -h "/etc/wu-ftpd/ftpusers" ]; then + rm /etc/wu-ftpd/ftpusers + fi + + # Check for old binaries in ~ftp/bin (are /bin/ls and ~ftp/bin/ls the same?) + db_get wu-ftpd/update-binaries + + if [ "$RET" = "true" ]; then + $ADDFTPUSER --update-binaries + fi + + db_get wu-ftpd/anonymous + if [ "$RET" = "true" ]; then + $ADDFTPUSER --configure + else + $RMFTPUSER --configure + fi + + db_get wu-ftpd/run_mode + RUNMODE="$RET" + + # stop debconf interactions, to avoid update-inetd's bad interactions with debconf when xinetd is installed (debian bug #489494) + db_stop + + if [ -z "$2" ]; then + update-inetd --group STANDARD --add "## ftp\t\tstream\ttcp\tnowait$max_opt\troot\t/usr/sbin/tcpd\t$WU_FTPD $DEFAULT_OPTS" /dev/null + fi + + if [ "$RUNMODE" = "inetd" ]; then + if [ -x /etc/init.d/wu-ftpd ] && [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d wu-ftpd stop >&2 + else + /etc/init.d/wu-ftpd stop >&2 + fi + update-inetd --enable ftp >/dev/null + else + if ! [ -e "/etc/default/wu-ftpd" ]; then + cat >/etc/default/wu-ftpd </dev/null + fi + # Check for existence of ~ftp/dev/null + HOMEFTP=`getent passwd ftp | cut -f6 -d:` + + if [ -n "$HOMEFTP" ] && [ -d "$HOMEFTP" ] && ! [ -e "$HOMEFTP/dev/null" ]; then + echo >&2 + echo "Creating required file $HOMEFTP/dev/null..." >&2 + + chmod 0111 "$HOMEFTP/dev" || mkdir --mode=0111 "$HOMEFTP/dev" + mknod "$HOMEFTP/dev/null" c 1 3 + chmod 0666 "$HOMEFTP/dev/null" + fi +fi # ($1 == "configure") + +#DEBHELPER# --- wu-ftpd-2.6.2.orig/debian/in.pathmsg +++ wu-ftpd-2.6.2/debian/in.pathmsg @@ -0,0 +1,5 @@ + + You used an illegal filename. The filenames for anonymous users + must be made of only the characters A-Z, a-z, 0-9 and "._-+" and + may not begin with a "." or a "-". + --- wu-ftpd-2.6.2.orig/debian/wu-ftpd.dirs +++ wu-ftpd-2.6.2/debian/wu-ftpd.dirs @@ -0,0 +1,5 @@ +etc/wu-ftpd +var/log/wu-ftpd +etc/logrotate.d +usr/share/lintian/overrides +usr/share/bug/wu-ftpd --- wu-ftpd-2.6.2.orig/debian/postrm +++ wu-ftpd-2.6.2/debian/postrm @@ -0,0 +1,16 @@ +#!/bin/sh -e +# Post-removal script for the Debian wu-ftpd package. + +#DEBHELPER# + +if [ -x /usr/sbin/update-inetd ]; then + update-inetd --disable ftp +fi + +if [ "$1" = "purge" ]; then + rm -rf /var/log/wu-ftpd + rm -rf /etc/wu-ftpd + if [ -x /usr/sbin/update-inetd ]; then + update-inetd --remove '^ftp\s.*/usr/sbin/wu-ftpd.*$' + fi +fi --- wu-ftpd-2.6.2.orig/debian/wu-ftpd-faq.txt +++ wu-ftpd-2.6.2/debian/wu-ftpd-faq.txt @@ -0,0 +1,1217 @@ +THE_URL:file://localhost/home/koos/wu-ftpd-work/wu-ftpd-faq/wu-ftpd-faq.html +THE_TITLE:Frequently Asked Questions about wu-ftpd + +Frequently Asked Questions about wu-ftpd, with answers + + This article contains the answers to Frequently Asked Questions (FAQ) + concerning the wu-ftpd software. To ask questions about wu-ftpd, + subscribe to the mailinglist and ask there. If you wish to get the + latest version of this file, it is available as + + Via WWW : + + Via FTP : + + Comments : this version is still lacking with details about certain + operating systems. Comments about those are welcome. + _________________________________________________________________ + + 1. Contents of this FAQ + 1. Contents of this FAQ + 2. What is this document + 1. What is the intended audience for this document + 3. What is WU-FTPD itself ? + 1. What is the license status for WU-FTPD ? + 2. How do I subscribe/unsubscribe to the mailing lists ? + 3. Is this list archived anywhere ? + 4. What are related documents ? + 5. Are there any alternatives ? + 4. Where do I get WU-FTPD ? + 1. Where do I get the latest version ? + 2. What were the VR patches for WU-FTPD ? + 3. What is BeroFTPD ? + 4. PGP verification of the package fails! + 5. Compiling WU-FTPD + 1. cc complains about strunames, typenames, modenames, .. + being undeclared. + 2. I don't have yacc + 3. WU-FTPD doesn't 'see' that users are in multiple groups. + 4. I get "conflicting types for `realpath'" + 5. WU-FTPD doesn't use the shadow passwords on my Linux + machine. + 6. It doesn't compile at all on newer Linux installs. The + error is : + 7. The timezone in the xferlog is wrong + 8. The timezone in the ls output is wrong + 9. Digital Unix doesn't log commands after an anonymous + user logs in + 10. install fails with 'install: ..' + 11. Digital Unix (The Unix Formerly Known As OSF/1) and + Enhanced C2 security, + 12. It doesn't compile at all on Digital Unix, errors about + struct timeval + 13. What should I do to be able to use WU-FTPD in a HP-UX + 10.01 + 14. What should I do for HP-UX 10.10 to make it work + completely. + 15. Installation notes for HP-UX 10.20. + 16. I want to compile for IPv6 + 6. Special compilation options/fixes + 1. I need to authenticate real users via AFS + 2. I need to use S/KEY authorisation + 3. I want to block certain default addresses (IE30User@, + mozilla@) + 7. Installing WU-FTPD + 1. Command-line options for WU-FTPD + 2. Testing on a different port number than ftp:21 + 3. Not all command line parameters seem to be used by + WU-FTPD + 4. How do I use the package file + WUFtpd250.wu-ftpd-2.6.2.SPARC.ULTRASparc.2.5.1.2.5.pkg.t + ar ? + 5. How do I enable WU-FTPD under Redhat 7 and higher ? + 6. I can't get out of my homedir with Redhat 8 + 8. Are there year 2000 issues with WU-FTPD? + 9. The ftpaccess file + 1. Some files (banners, etc) don't get shown to anonymous + users. + 2. What is the exact format of the parameter in the + "limit" + 3. What tools are there to check the configuration + 4. Why does %M produce (Max unlimited) on the login banner + 10. Programs (ls, gzip, tar) work for real users, not for + anonymous users, giving errors like 425 Can't create data + socket (0.0.0.0,20): Bad file number or simply no output. + 1. Solaris + 2. Building a statically linked ls for Solaris fails + 3. Linux + 4. Dec OSF + 5. SunOS4.1.x + 6. AIX + 7. IRIX (5.3, 6.2) + 8. SCO Unix + 9. BSD vs SVR4 ls + 10. It worked, until I upgraded the operating system. + 11. Running WU-FTPD + 1. ftpd allways says "221 Server shutting down. Goodbye." + 2. Anonymous ftp works fine, but real users are denied + access + 3. ftpconversions doesn't work + 4. On-the-fly compression works, on-the-fly tarring, but + not both. + 5. I want to use zip compression (InfoZip) + 6. I want a real user to be able to access the host only + via ftp, not via telnet + 7. Somebody uploaded a file with a weird name + 8. I want anonymous users to be able to upload files, but + in the most secure manner possible + 9. The upload clause doesn't work with directories as it + used to. + 10. The default umask used when a real user uploads a file + is wrong + 11. I heard something about 'SITE EXEC' having a security + hole + 12. How do I make reports more readable ? + 13. Incoming file transfers fail with SunOS and an NFS + mounted incoming + 14. Normal ftp clients work, Netscape ftp's fail. So, + passive mode doesn't work. + 15. I made a symbolic link within the anonymous tree or + guest tree and it doesn't work for the anonymous/guest + users. + 16. I want to redirect anonymous users to another machine + 17. ftpd stops accepting connections when a lot of + connections come in. + 18. Running WU-FTPD on a *large* site + 19. Only the first 8 characters of the anonymous username + are recieved by the server. + 20. WU-FTPD fails with '500 Illegal PORT Command' under AIX + 4.3 or Solaris 8 + 21. I want to host multiple ftp servers on the same machine + 22. I just upgraded and now nobody can log in. It worked + before. + 23. I get disconnected directly from the ftp server. + 24. Mirror breaks with WU-FTPD >= 2.6.0. + 25. Logins to the ftp server take a long time, after that + things run smooth + 26. ls doesn't show anything except files. It does not show + directories and links + 27. My client hangs at the end of a transfer + 28. Sometimes ftpd stops working and inetd logs 'ftp/tcp + server failing (looping), service terminated' + 29. I can't login, in the syslog is: get passwd; pwdb: + request not recognized + 30. Under Solaris, certain user information stays cached + even when changed + 31. Does WU-FTPD support resuming downloads/uploads + 12. Other things + 1. Where is the FTP protocol documented ? + 2. How can I make my ftp-archive accessible by Email + (ftpmail) ? + 3. How do I force all clients to switch to binary mode ? + 4. My embedded device has a builtin version of WU-FTPD + which is outdated according to your site, how do I + update it ? + 13. Credits/miscellanious + 1. How do I contact the WU-FTPD Development team + 2. I have a correction / new feature, how do I submit it + for the WU-FTPD Development team's consideration + 2. What is this document + This is the FAQ (frequently asked questions) for newer versions of + WU-FTPD as maintained at ftp.wu-ftpd.org. This document is an + addition to the man-pages of WU-FTPD which are part of the + installation and available online as + . + Answer number one is: Update to the latest version (at this + moment: 2.6.2). A lot of problems have been fixed, including + security problems. + Note: The various addresses used in this document are for + contacting the authors on subjects mentioned in this document. + Using these addresses for sending unsolicited Email is forbidden. + Again: please update to the latest version for security purposes! + 1. What is the intended audience for this document + This document (and WU-FTPD in general) need a general + knowledge of Unix system management aimed at the Unix version + you are trying to install WU-FTPD on. Subjects like user + management, password management, file-system management, + changing access settings and chroot environments are + prerequisite knowledge. Reviews of books about Unix in + general (and other books) on The Virtual Bookcase at + + 3. What is WU-FTPD itself ? + Wuarchive-ftpd, more affectionately known as WU-FTPD, is a + replacement ftp daemon for Unix systems developed at Washington + University (*.wustl.edu) by Chris Myers and later by Bryan D. + O'Connor (who are no longer working on it or supporting it!). + WU-FTPD is the most popular ftp daemon on the Internet, used on + many anonymous ftp sites all around the world. + 1. What is the license status for WU-FTPD ? + The correct answer to this is in the the 'LICENSE' file which + comes with the source tree and is available online as + + 2. How do I subscribe/unsubscribe to the mailing lists ? + Users of WU-FTPD are encouraged to switch to the mailing + lists hosted at wu-ftpd.org. The following lists are + available : wuftpd-announce Announcements concerning WU-FTPD. + This is the ONLY announcement list for WU-FTPD. The list is + open subscription, only members of the WU-FTPD Development + Group may post. Traffic on this list is very low. Traffic + should be signed using the development group's PGP signing + key. + wuftpd-dev General discussion list for developers. The list + is open subscription, only subscribed users may post. Traffic + on this list is generally low, but can be high occasionally. + wuftpd-doc General discussion list for documentation writers. + The list is open subscription, only subscribed members may + post. Traffic on this list is generally low but can be high + occasionally. + wuftpd-questions General support and discussion. This is the + list to use if you have questions concerning compiling, + installing or configuring WU-FTPD. The list is open + subscription. Anyone may post. Traffic on this list is + generally high (although there are some medium-traffic days + occasionally). + To subscribe, send a mail message to Majordomo@wu-ftpd.org + with a body of +subscribe listname +end + 3. Is this list archived anywhere ? + The old list from wustl.edu is archived from June 1994 until + recent, reachable via WWW at + , and via + ftp at . + The search page is at + This archive is maintained by Kent Landfield + (kent@landfield.com). + The lists from wu-ftpd.org are available via Anonymous IMAP. + Connect to mail.wu-ftpd.org using IMAP (TCP port 143) and + give 'anonymous' as your username and your e-mail address as + password. If your mail client cannot see the folder list, + give the listname to access that lists archive. + 4. What are related documents ? + The RFC's that describe the FTP protocol are rfc959 (updated + by RFC2228) and rfc1579. RFC's relating to WU-FTPD are + available from Another + possible location to get these is : + + or + + Documents on specific parts of the configuration or specific + uses of WU-FTPD: + o telnet.testing.HOWTO : how to test WU-FTPD using + telnet/netcat. + o upload.configuration.HOWTO : How to allow uploads + by remote users in a secure way. + Kent Landfield maintains a resource center to collect all + WU-FTPD related links at + + Darci Chapman maintains the Solaris/wu-ftpd howto guide at + + The man-page for WU-FTPD can be viewed online at + with the man-page for ftpaccess + in + + The Academ WU-FTPD pages at + . + 'ANONYMOUS FTP CONFIGURATION GUIDELINES' + A set of guidelines from CERT (Computer Emergency Response + Team) about setting up anonymous ftp. + + + 'How to set up a secure ftp server' + A file describing how to set up anonymous ftp in general in a + secure way, avoiding misuse. + + 'guest howto' + A document describing the setup of guest groups. A more + modern version of the next document. + + 'guestgroup howto' + A document describing the set up of guestgroups in WU-FTPD + server. At this moment a separate document from this + document. + + A document describing virtual ftp servers + + Ftpaccess on virtual ftp servers + + upload.configuration.HOWTO + How to set up the upload configuration for 2.4.2 Beta + 18 VR14 and higher (including 2.6.2). + There are also some books discussing setting up anonymous + FTP. + The book links link to the right book on the amazon.com + web-site. + o TCP/IP Network Administration has a section on setting + up anonymous ftp. + o Managing Internet Information Services was a good (maybe + a bit outdated) book on WU-FTPD. But, it is out of + print. + Reviews of more books about Unix in general (and other books) + on The Virtual Bookcase at + + 5. Are there any alternatives ? + Troll Ftpd, a free ftp-server, available from + + FileDrive, a commercial file-server which needs its own + clients, available from + NcFTPd server, commercial server (free for educational + domains), available from + ProFTPD, a free ftpserver (GPL), available from + + ftpd-BSD, a port of the OpenBSD ftpd, available from + + Net::FTPServer, written in Perl, available from + + WFTPD, a commercial server for Windows with a Pro version for + NT/2000/XP, available from + 4. Where do I get WU-FTPD ? + The original WU-FTPD home is wuarchive.wustl.edu, but at this + moment wuarchive no longer supports or maintains WU-FTPD. The + correct location at this moment for WU-FTPD releases is + ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ (please use a real ftp client + to access this). + Mirror sites: + + Austria: + ftp://gd.tuwien.ac.at/infosys/servers/ftp/wu-ftpd/ + http://gd.tuwien.ac.at/infosys/servers/ftp/wu-ftpd/ + + Canada: + ftp://ftp.crc.ca/pub/packages/ftp/servers/wuarchive-ftpd-vr/ + + Estonia: + ftp://ftp.ut.ee/pub/unix/networking/wu-ftpd/ + + Hungary: + ftp://ftp.ahol.com/pub/mirrors/wu-ftpd/ + ftp://ftp.kfki.hu/pub/infosystems/wu-ftpd/ + + Germany: + ftp://ftp.dpn.de/pub/mirrors/wu-ftpd/ + + Israel: + ftp://ftp.tau.ac.il/pub/unix/ftp/wu-ftpd/ + + Japan: + ftp://ftp.ring.gr.jp/pub/net/wu-ftpd/ + http://www.ring.gr.jp/archives/net/wu-ftpd/ + ftp://ring.aist.go.jp/pub/net/wu-ftpd/ + http://ring.aist.go.jp/archives/net/wu-ftpd/ + ftp://ring.asahi-net.or.jp/pub/net/wu-ftpd/ + http://ring.asahi-net.or.jp/archives/net/wu-ftpd/ + ftp://ring.so-net.ne.jp/pub/net/wu-ftpd/ + http://ring.so-net.ne.jp/archives/net/wu-ftpd/ + ftp://ring.nacsis.ac.jp/pub/net/wu-ftpd/ + http://ring.nacsis.ac.jp/archives/net/wu-ftpd/ + ftp://ring.etl.go.jp/pub/net/wu-ftpd/ + http://ring.etl.go.jp/archives/net/wu-ftpd/ + ftp://ftp.win.ne.jp/pub/network/wu-ftpd/ + ftp://mirror.nucba.ac.jp/mirror/wu-ftpd/ + http://mirror.nucba.ac.jp/mirror/wu-ftpd/ + ftp://ftp.cin.nihon-u.ac.jp/pub/net/ftp/wu-ftpd-vr/ + ftp://ftp.riken.go.jp/pub/net/wu-ftpd/ + http://SunSITE.sut.ac.jp/pub/archives/packages/wu-ftpd/ + ftp://SunSITE.sut.ac.jp/pub/archives/packages/wu-ftpd/ + + Norway: + ftp://ftp.bitcon.no/pub/unix/networking/wu-ftpd/ + http://archive.bitcon.no/pub/unix/networking/wu-ftpd/ + + Poland: + ftp://ftp.task.gda.pl/pub/unix/ftp/wu-ftpd-vr/ + ftp://giswitch.sggw.waw.pl/pub/unix/wu-ftpd/ + + Spain: + ftp://ftp.upc.es/pub/wu-ftpd/ + + Sweden: + ftp://ftp.sunet.se/pub/nir/ftp/servers/wuarchive-ftpd-vr/ + http://ftp.sunet.se/pub/nir/ftp/servers/wuarchive-ftpd-vr/ + + Switzerland: + ftp://sunsite.cnlab-switch.ch/mirror/wu-ftpd/ + + Taiwan: + ftp://ftp.nchu.edu.tw/pub/packages/wu-ftpd/ + http://pds.nchu.edu.tw/pub/packages/wu-ftpd/ + + Turkey: + ftp://ftp.ulak.net.tr/pub/wu-ftpd/ + http://ftp.ulak.net.tr/pub/wu-ftpd/ + + United Kingdom: + ftp://sunsite.org.uk/Mirrors/ftp.vr.net/pub/wu-ftpd/ + http://sunsite.org.uk/Mirrors/ftp.vr.net/pub/wu-ftpd/ + ftp://ftp.ox.ac.uk/pub/comp/security/COAST/mirrors/ftp.vr.net + / + + United States: + ftp://ftp.academy.rpi.edu/pub/wu-ftpd/ + ftp://ftp.vr.net/pub/wu-ftpd/ + http://www.landfield.com/wu-ftpd/wu-ftpd.org/ + 1. Where do I get the latest version ? + The WU-FTPD development group maintains WU-FTPD and makes the + latest version available at ftp.wu-ftpd.org in + ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ (please use ftp to access + this). This version of WU-FTPD is now actively maintained by + the WU-FTPD Development Group, reachable by email as + (wuftpd-dev@wu-ftpd.org). + 2. What were the VR patches for WU-FTPD ? + The VR-series offered a number of enhancements and bug fixes + not available in the base version. The VR patches have been + integrated in WU-FTPD 2.5.0 and the will not be available + from ftp.vr.net after the end of August 1999. + 3. What is BeroFTPD ? + BeroFTPD was a derivative of WU-FTPD with extra functionality + for virtual hosts. Patches from the VR versions were + included. The enhancements from BeroFTPD are now incorporated + into the main daemon. + 4. PGP verification of the package fails! + The signature has been made with a newer pgp. You need a + recent pgp to get the right answer. + 5. Compiling WU-FTPD + Since WU-FTPD 2.6.0, GNU autoconf is introduced, but it is still + in experimental stage. So first try ./configure and if that fails + try the old method: + In general, editing src/pathnames.h and typing build arch should + be enough. + 1. cc complains about strunames, typenames, modenames, .. being + undeclared. + This error is fully explained in the INSTALL/INSTALL.orig + file in wu-ftpd package. A few relevant lines : +If cc complains about strunames, typenames, modenames, ... being undefined +you need to install support/ftp.h as /usr/include/arpa/ftp.h (always make +a backup of the old ftp.h just in case!) and do the build again. The new +ftp.h should be a compatible superset of your existing ftp.h, so you +shouldn't have problems with this replacement. + 2. I don't have yacc + Replace yacc with bison -y in the Makefile. + 3. WU-FTPD doesn't 'see' that users are in multiple groups. + This is fixed in recent versions (2.6.2). Upgrade now. + 4. I get "conflicting types for `realpath'" + This is fixed in recent versions (2.6.2). Upgrade now. + 5. WU-FTPD doesn't use the shadow passwords on my Linux machine. + Upgrade to version 2.6.2 or later. They automatically use + shadow passwords when available. If this gives problems, you + might want to upgrade your Linux. For older versions: + Since older Linux distributions (around libc.5.3 this got + fixed) don't include shadow passwords, WU-FTPD might assume + your Linux does not have shadow passwords. To compile for + shadow passwords with Linux when this happens : + o Get the shadow.h from the latest shadow package. + o After building the shadow package, you have a + libshadow.a. + o Copy shadow.h to the src dir. + o Copy libshadow.a to the support dir. + o Edit src/config.h to say '#define SHADOW_PASSWORD' + instead of #undef. + o Edit the LIBES line in src/Makefile to read : + LIBES = -lsupport -lbsd -lshadow (for some releases, + -lcrypt is also needed) + Modify src/ftpd.c around line 1061 to read : + xpasswd = pw_encrypt(passwd, salt); + 6. It doesn't compile at all on newer Linux installs. The error + is : + Upgrade to version 2.6.2 + 7. The timezone in the xferlog is wrong + Either, you compiled with support for setting the process + title (SPT_TYPE) on a machine that doesn't support this, + where changing the process title clobbers the environment and + therefore zaps the TZ variable. Recompile with SPT_TYPE set + to SPT_NONE. + Systems which don't support SPT_TYPE : Aix, SGI Irix + Or, you need to copy the zoneinfo files to the ~ftp tree too. + These are : +/etc/TIMEZONE +/etc/default/init +/etc/localtime (FreeBSD) +/usr/share/lib/zoneinfo/.. + The name of the correct file in /usr/share/lib/zoneinfo + depends on your current timezone. Exact filenames depend on + your operating system too. See the man-pages for timezone(4) + and zic(1M). + 8. The timezone in the ls output is wrong + See above, but also check if your system needs + /etc/default/init (Solaris 2.5 for example) for setting the + correct TZ variable. This file has to be in chrooted + environments too. + Digital Unix needs /etc/zoneinfo/localtime. + 9. Digital Unix doesn't log commands after an anonymous user + logs in + Upgrade to version 2.6.2 or later. + 10. install fails with 'install: ..' + The makefile is setup for the bsd version of the install + program. Some OS'es (including Solaris) use the svr4 version. + In that case set in the makefile : + INSTALL = /usr/ucb/install + 11. Digital Unix (The Unix Formerly Known As OSF/1) and Enhanced + C2 security, + First, upgrade to version 2.6.2 or later. Then, make the + changes noted in src/makefiles/Makefile.{dec,du4}. + 12. It doesn't compile at all on Digital Unix, errors about + struct timeval + Upgrade to version 2.6.2 or later. + 13. What should I do to be able to use WU-FTPD in a HP-UX 10.01 + Upgrade to version 2.6.2 or later. If you are not using C2 + security, you may need to change the definitions for + SHADOW_PASSWORD and HPUX_10_TRUSTED. + Some kernel configuration may be required to allow more heavy + load on lock files and multiple access to the same file. This + can all be done through SAM. An important thing to keep in + mind on a heavily accessed machine is that the fin_wait state + needs to be lowered enough to keep open file locks at a + minimum. + 14. What should I do for HP-UX 10.10 to make it work completely. + If the above doesn't work, some more notes : +/usr/include/shadow.h: This *system* file had an apparent typo that caused +gcc to fail. I changed the following statement: + + extern int lckpwdf(void), + to + extern int lckpwdf(void); <<--- note the ';' + +realpath.c: I think there was a external reference (maybe more than 1 +reference?) which did not match the internal declaration. I think I +changed the realpath declaration to match the externals. I deleted the +original sources so I don't recall the change exactly. + +ftpcmd.c: This file results from ftpcmd.y (via yacc/bison). Unfortunately +the resulting c code will not build. It was necessary to move 2 of the +structures to an earlier section. I think it was the 'cmdtab[]' and +'sitetab[]' structures which were moved. They were being called prior to +their declaration. (`what bison` gives $Revision: 1.2 $) + +Makefile.hpx: Modified to not delete the ftpcmd.c file fixed above. + +ftpd.c: 1) installed the shadow password patch per the instructions in the +FAQ. The new code worked without any problems (I'll probably port it to +the POP3 server I've been wanting to install). 2) Modified the sprintf +calls near SEPPROCTITLE to include "wuftpd" in the process string (similar +to hp-ux ftpd). this allows "ps -ef | grep ftp" to show all connected ftp +processes. It might need a little doctoring up since the file names on +RETR have ^M^J tacked on. + Extra remark: On a trusted system HP's getpwnam does not + supply the encrypted password. Instead you have to use + getprpwnam. Modify ftpd.c to use getprpwnam. + pr_pw = getprpwnam(pw->pw_name); /* get shadow password */ + xpasswd = crypt(passwd, pr_pw->ufld.fd_encrypt); + bpasswd = bigcrypt(passwd, pr_pw->ufld.fd_encrypt); + 15. Installation notes for HP-UX 10.20. + A complete set of installation notes for WU-FTPD on HP-UX + 10.20: + This section is written by someone else who wishes to remain + unnamed. + I installed wu-ftp2.4 on a clean HPUX 10.20 build. The 10.20 + build came straight from HP, and the only important + differences on this build from a generic build is that the + X-libs and X-utils were stripped out (something I would + recommend if you are building an HP 10.20 for ftp only). + - Get both the wu-ftp2.4 package and the current ansi-c + compiler package (I got mine from HP, you can request the + package ansic.hp-10.20.tar.gz) + - Uncompress and untar the C package first (HP comes with a + standard c compiler, but it is only useful in the kernel + compiling and doesn't function well outside of doing kernel + work). Follow the README/INSTALL docs for installing the c + compiler. Make sure you put this new compiler in your path, + or do some editing whenever you use cc to point to this + compiler and not the default. + - Build WU-FTPD normally + - Set up the server + - Special notes about tuning for heavy load: The ftp servers + that I maintain are heavily hit and some kernel configuration + was required to allow more heavy load on lock files and + multiple access to the same file. This was all done through + SAM. An important thing to keep in mind on a heavily accessed + machine is that the fin_wait state needs to be lowered enough + to keep open file locks at a minimum. I set all of my + fin_waits to 5 minutes or less. + 16. I want to compile for IPv6 + At this moment, IPv6 support is not available in WU-FTPD from + the WU-FTPD Development Group. But, there is hope, the Kame + project makes a patchset available for IPv6 support under BSD + and Linux. More info at the Kame project homepage: + + 6. Special compilation options/fixes + This section deals with specialities in compilation for certain + situations. + 1. I need to authenticate real users via AFS + Edit the Makefile for your OS to add the AFS libs/includes. + They only appear in the Makefile for AIX. After that add the + following line to the #include section of src/ftpd.c : +#include + 2. I need to use S/KEY authorisation + Method for 'configure' : + (For Solaris 7): +1. copied skey.h /usr/include +2. copied libskey.a /usr/lib +3. ran configure --enable-skey + Method for 'build' : +The general SKEY procedure is something like this: + +The last thing in config.h is an #undef SKEY; comment that out. That is +a gotcha that can take some time to find, although that doesn't seem to +be the problem. + +Copy skey.h into the src directory. + +Copy libskey.a into the support directory. + +Edit the appropriate Makefile.* in src/makefiles and add the following: + add "-DSKEY" to the CFLAGS macro; + add "-lskey" to the LIBES macro. + +That should do it; if not, holler back. + 3. I want to block certain default addresses (IE30User@, + mozilla@) + Check the option 'deny-mail' in the ftpaccess(5) manpage. + 7. Installing WU-FTPD + In general, change the line for the ftp-server in /etc/inetd.conf + (the file that defines the servers started by inetd. For some + operating systems, this is another file). + 1. Command-line options for WU-FTPD + With the latest versions, using no command-line options will + set it to a default-mode, in which it will not parse the + ftpaccess file. Add the option -a to the command line in + inetd.conf. + 2. Testing on a different port number than ftp:21 + This can be done from the command line or with a special + definition in /etc/services / /etc/inetd.conf. For + command-line, look up -P and -p in the ftpaccess(5) manpage. + To set up with special definitions, add 2 ports with + consecutive numbers in /etc/services, and then start WU-FTPD + on these ports. Add to /etc/services something like : +ftptest 4021/tcp #command port +ftptest-data 4020/tcp #data port + Then start WU-FTPD from /etc/inetd.conf like : +ftptest stream tcp nowait root /usr/etc/in.ftpd in.ftpd + The key is the name 'ftptest' which associates the port + assignment in the /etc/services file to that in the + inetd.conf file. Make certain the choice of ports in + /etc/services (4021 and 4020 above) are from the local use + list and don't conflict with other port assignments (see + RFC1700, ASSIGNED NUMBERS). One important subtlety. The data + port is not really derived from the data port declaration in + the /etc/services file. The FTP specification (RFC765) states + the data port is defined as one less than the command port. + However, including the data port declaration in the + /etc/services file prevents it from being accidentally + assigned to something else. + 3. Not all command line parameters seem to be used by WU-FTPD + Your inetd probably drops some parameters after a given + number (4 or 5). You can use the following wrapper program to + give additional parameters : +/* wrapper for wuftpd to add command line arguments + that don't fit under inetd */ + +#include +#include +#include +#include +#include + +int main(argc,argv) + int argc; + char **argv; +{ + char *path="/local-adm/bin/ftpd"; + char *cmd="ftpd"; + + fflush(stderr); + fflush(stdout); + errno=0; + execl(path,cmd,"-a","-l","-L","-u022",NULL); + + openlog("wrapftpd",LOG_PID, LOG_LOCAL6); + syslog(LOG_WARNING,(const char *)strerror(errno)); + closelog(); + exit(EXIT_FAILURE); + +} + 4. How do I use the package file + WUFtpd250.wu-ftpd-2.6.2.SPARC.ULTRASparc.2.5.1.2.5.pkg.tar ? + Unpack the tar into an empty directory which will then have a + subdirectory named WUFtpd262 Do not enter this directory, but + type 'pkgadd -d .', you will get something like: +# pkgadd -d . + +The following packages are available: + 1 WUFtpd262 wu-ftpd 2.6.2 SPARC/ULTRAsparc 2.5.1 - 2.5 + (sun4c,sun4d,sun4e,sun4m,sun4u,sun4u1) 2.6.2 + +Select package(s) you wish to process (or 'all' to process +all packages). (default: all) [?,??,q]: + 5. How do I enable WU-FTPD under Redhat 7 and higher ? + Redhat 7 and above use xinetd instead of inetd. Use chkconfig + wu-ftpd on or edit /etc/xinetd.d/ftp to enable the service + (it is disabled by default even when WU-FTPD is installed). + 6. I can't get out of my homedir with Redhat 8 + Redhat 8 automatically puts every user in their homedir using + the guestuser directive. Comment this out if you want to be + able to browse the entire system. + 8. Are there year 2000 issues with WU-FTPD? + The original version of WU-FTPD had a year 2000 representation + problem in the handling of the MDTM (modification time of file) + command. No internal workings of WU-FTPD were affected by this + problem. + This problem has been fixed in WU-FTPD 2.4.2 beta 14 which was + published August 1997. With this fix, WU-FTPD is believed to be + completely Y2K-compliant. + The fix that was applied : + The following statement appears in ftpcmd.y. It is part of the + action for the syntax: MDTM check_login SP pathname CRLF + reply(213, + "19%02d%02d%02d%02d%02d%02d", + t->tm_year, t->tm_mon+1, t->tm_mday, + t->tm_hour, t->tm_min, t->tm_sec); + The 19%02d needs to be changed to %04d and t->tm_year needs to be + changed to t->tm_year + 1900: + reply(213, + "%04d%02d%02d%02d%02d%02d", + t->tm_year + 1900, t->tm_mon+1, t->tm_mday, + t->tm_hour, t->tm_min, t->tm_sec); + And WU-FTPD versions that old also have gaping security holes. + 9. The ftpaccess file + 1. Some files (banners, etc) don't get shown to anonymous users. + When the anonymous user is logged in, bannerfiles are opened + relative to the root of the anonymous user. Keep this in + mind. It can be usefull to have 2 sets of banners or use + links. + 2. What is the exact format of the parameter in the + "limit" + This is a format consisting of day and time parameters. + Possible items : Sa,Su,Mo, .. Any (for any day) and time + parameters. For example : SaSu|Any1800-0700 means all of + Saturday and Sunday or Any day between 18:00 and 07:00. Check + if ftpd inherits the correct time zone. + 3. What tools are there to check the configuration + ckconfig is delivered with wu-ftpd. At this moment no other + tools are known. + 4. Why does %M produce (Max unlimited) on the login banner + All counts and maximums depend on which class the user is in, + and the class is unknown before login (since WU-FTPD takes + realuser/anonymous/guestuser as a variable for calculating + which class a user is in). + 10. Programs (ls, gzip, tar) work for real users, not for anonymous + users, giving errors like 425 Can't create data socket + (0.0.0.0,20): Bad file number or simply no output. + First, consider if you can't relink them staticly so the shared + libraries aren't needed. You can get the GNU fileutils from : + (version + numbers may vary). + For different operating systems, different libraries and/or + devices are needed. You can test if things are running correctly + by doing a chroot to the ftp homedir. To test if /bin/ls is + working in the ~ftp dir, type : + chroot ~ftp /bin/ls + Or, the partition is mounted -nosuid which gives the same error + under SunOS or Solaris, more information on the page + + 1. Solaris + First, have a look at the manpage for the original + in.ftpd(1m). It has a scipt for setting everything up. If the + filesystem with ~ftp is mounted -nosuid, the special device + files will not work. + Solaris needs ~ftp/dev/tcp and ~ftp/dev/zero and the + libraries. Check the man-page for your Solaris version for + exact details. Use the command ldd to find out which + libraries a program uses. Also, the ~ftp/etc/group file is + needed for ls to work, without it it will just dump core. + Follow the same rules as for /etc/passwd : not too much + information in that file, like group passwords (if you have + those). + Needed libraries can include : + ld.so, ld.so.1, libc.so.1, libdl.so.1, libintl.so.1, + libmp.so.1, libnsl.so.1, libsocket.so.1, libw.so.1, + nss_compat.so.1, nss_dns.so.1, nss_files.so.1, nss_nis.so.1, + nss_nisplus.so.1, straddr.so + 2. Building a statically linked ls for Solaris fails + This is discussed in the comp.unix.solaris Frequently Asked + Questions + item 6.24 (at this moment). + 3. Linux + Use the command ldd to find out which libraries a program + uses. Create ~ftp/dev/null and ~ftp/dev/zero. You will need + the ELF file loader, ld-linux.so in ~ftp/lib. + 4. Dec OSF + Copy the static version of ls (/sbin/ls) and not the dynamic + one. The static version is about 400K. + Make passwd and group files in ~ftp/etc. Copy from /etc/sia + dir to ~ftp/etc/sia the files matrixconf and siainitgood. + 5. SunOS4.1.x + SunOS needs ~ftp/dev/zero, ~ftp/dev/tcp and the libraries. + Check permissions on the device files. + 6. AIX + AIX comes with scripts to automate this installation. + AIX 3.2.5 - /usr/lpp/tcpip/samples/anon.ftp + AIX 4.1.4 - /usr/samples/tcpip/anon.ftp + After the script is done, change the mode of ~ftp/pub to + something safer. + Also, AIX comes with a 'dump' utility that can show which + libraries a program uses. + 7. IRIX (5.3, 6.2) + IRIX 6.2 needs ~/ftp/dev/zero and libraries. To create + /dev/zero, check its current major and minor number with : +ls -lL /dev/zero + And then create it in ~ftp using : +cd ~ftp/dev +mknod zero c +cd .. +chmod 555 dev + You will probably need to copy /lib/libc.so.1 to + ~ftp/lib/libc.so.1 and /lib/rld to ~ftp/lib/rld. These are + required by ls, compress, gtar and gzip. + You can see what libraries a program needs by doing the + following: +csh# setenv _RLD_PATH /usr/lib/rld.debug +csh# setenv _RLD_ARGS '-v -quickstart_info -stat' + To stop seeing what libraries are needed unset the + environment variables: +csh# unsetenv _RLD_PATH +csh# unsetenv _RLD_ARGS + Useful information on Irix also in the IRIX Insight Library + (Online Books) in the book/chapter "IRIX Admin: Networking + and Mail" in the paragraph "How to Set Up a Proper Anonymous + FTP Account". + 8. SCO Unix + SCO needs /dev/socksys. + 9. BSD vs SVR4 ls + This is a very sneaky one. To quote : The problem was that + ls_short and ls_long were being defined incorrectly (since + the system was compiled with a BSDish compiler, the BSD + config file was used) using ls -lA and ls -lgA respectively. + It turns out that the ls command was running but it was + erroring out (this is because the system is actually running + SVR4), since a failed ls produces output only to stderr not + stdout I saw nothing for my output. + 10. It worked, until I upgraded the operating system. + Something in the upgrade changed in your OS. Most likely : + newer shared libraries. Also : other major/minor numbers in + /dev. Redo the shared libs and devices after an upgrade if + things like the above happen. + 11. Running WU-FTPD + There is a nice set of man-pages with WU-FTPD. They do contain a + lot of information. + Also, note that a lot of things about the chrooted environment for + anonymous users also applies to the chrooted environment for guest + users. + 1. ftpd allways says "221 Server shutting down. Goodbye." + The directive shutdown in the ftpaccess file points to a file + that exists at that moment. Either change the directive or + delete the file. + Also, after you've used the ftpshut command, you'll need to + remove the ftpshut file by hand. + 2. Anonymous ftp works fine, but real users are denied access + Check the following : + o Reasons for denial are logged using syslog. Check your + logs. + o Their shell is in the /etc/shells file. Note : AIX + doesn't even have this file, so you need to create it + for WU-FTPD. + o The problem has been fixed in the latest versions for + AIX. Get the latest version. + o /etc/shells needs the correct access rights (world + readable and not world writable). + o If you're using shadow passwords : make sure the daemon + is compiled with shadow password support. + 3. ftpconversions doesn't work + There are a lot of possible reasons, mostly having to do with + the fact that some versions tar use different command line + parameters. + o Solaris 2.4 : if you use Solaris tar, and give the + commandline as /bin/tar -cf - %s, the effect will be the + same as /bin/tar -cvf - %s. The -v option will add + extraneous data to the stream. Solution : replace it + with /bin/tar cf - %s (no leading -). + o Also, check your 'tar' and 'compress' directives in + ftpaccess. + 4. On-the-fly compression works, on-the-fly tarring, but not + both. + With Solaris 2.4 and GNU's tar-1.11.8 (configured and + compiled with --disable-nls flag) use the GNU tar flag + --use-compress-program=path to compression program + sample : + : : :.tar.Z:/bin/ftp-exec/tar -c + --use-compress-program=/bin/ftp-exec/compress -f - + %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS + : : :.tar.gz:/bin/ftp-exec/tar -c + --use-compress-program=/bin/ftp-exec/gzip -f - + %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP + 5. I want to use zip compression (InfoZip) + Lines for ftpconversions : + :.zip: : :/bin/unzip -qq -p %s:T_REG|T_ASCII:O_UNCOMPRESS:UNZIP + : : :.zip:/bin/zip -qq -r - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:ZIP + Info-ZIP can be found at + + 6. I want a real user to be able to access the host only via + ftp, not via telnet + Create a shell for this purpose (for example, a program that + says the above or a copy of /bin/true). Put this shell in + /etc/shells. Change the shell of the user to that shell. + Next : make sure mail cannot be delivered locally to the + account. Using the fact that the shell is valid for sendmail + (it is in /etc/shells) a user can be able to start commands + as that user. + Information and a sample script on + + + The same, for AIX. + Use chuser (or SMIT) to set the user to login=no, + su=no, telnet=no, rlogin=no. + + 7. Somebody uploaded a file with a weird name + Somebody is trying to misuse your ftp-site for transferring + software (worst case scenario). Check if the directive + path-filter in the ftpaccess file is something like : +path-filter anonymous /etc/paths.msg ^[-A-Za-z0-9\._]*$ ^\. ^- + 8. I want anonymous users to be able to upload files, but in the + most secure manner possible + In general: you don't want this. But, if you're stubborn... + Read the upload.configuration.HOWTO, pointer at the beginning + of this faq. Make very sure that you have the latest version + of WU-FTPD (2.6.2), set your path-filter to the one mentioned + above. Make the incoming directory owned by something else + than ftp (root, or nobody) with another group then ftp + (nobody). Something like : +drwx-wx-wt root nobody incoming + This will allow ftp to write in the directory, but not read + it. Set the upload directive in ftpaccess to something like : +upload /home/ftp /home/ftp/incoming/* yes root daemon 0400 nodirs + One note : files get created as root and changed to the owner + mentioned in the upload line. This will fail on some secure + NFS setups. Best solution is to mount the /incoming + separately. + 9. The upload clause doesn't work with directories as it used + to. + Unlimited subdirectory creation has been prohibited as this + has been the source of problems with WU-FTPD. You will need + to explicitely allow a certain amount of levels of subdirs, + like for example: +upload /home/test /home/test/public_html yes test users 0664 +dirs 0775 +upload /home/test /home/test/public_html/* yes test users 0664 +dirs 0775 +upload /home/test /home/test/public_html/*/* yes test users 0664 +dirs 0775 +upload /home/test /home/test/public_html/*/*/* yes test users 0664 +dirs 0775 + This is new for versions 2.6.0 and higher. + 10. The default umask used when a real user uploads a file is + wrong + The default umask is inherited from inetd. This can be a + wrong one. There is a command line parameter -u. Edit the + line in inetd.conf to something like ftpd -A -L -l -u077. + 11. I heard something about 'SITE EXEC' having a security hole + In some slackware distributions the _PATH_EXECPATH is set to + something like /bin. Recompile WU-FTPD with it set to a + special path like /bin/ftp-exec. + To test for this hole, type (when logged in as a real user, + not anonymous) : + ftp> SITE EXEC bash -c id + If you get a return with '200-uid=0(root) gid=0(root)' in it, + you have the problem. + 12. How do I make reports more readable ? + There are a couple of scripts to make better reports from the + xferlog. + o dumpxfer processes the xferlog and gives more humanly + readable output + o processlog script to run dumpxfer, email you the output + and truncate the log + These are available via anonymous ftp via + both need Perl. + I (Koos van den Hout) also wrote a Perl script to process the + log, mail daily statistics and uploaded files, and create a + top most downloaded files. It is available from + + iistat generates nice transfer graphs from the xferlog file + (and from a lot of other sources). Available from + + Phil Schwan wrote xferstats, available from + ftp://ftp.wu-ftpd.org/pub/support/ + Webalizer, a very good web log analyzer, also supports + WU-FTPD xferlog format. Available from + + 13. Incoming file transfers fail with SunOS and an NFS mounted + incoming + You get errors like : +Dec 7 11:14:33 ftphost vmunix: NFS write error 13 on host fileserver +fh 746 1 a0000 5fea7 3b5a1bd8 a0000 2 1e0a6aed + That's a known problem. Updating to the latest version is the + first help. Other possible solutions : + o Have the incoming disk on the ftpserver itself + o /etc/ftpaccess sets owner to ftp, group to a restricted + group and mode to 0040 (only group read) + 14. Normal ftp clients work, Netscape ftp's fail. So, passive + mode doesn't work. + Apparantly ftpd needs write permission on ~ftp/dev/tcp in + order to operate correctly in passive mode (Solaris). Set it + to the same mode as permissions shown by ls -lL /dev/tcp, + being 666. Also read the Solaris man page for ftpd for + Solaris-specific information. Changed from previous versions + Fix: +cd ~ftp/dev +chmod 666 tcp + 15. I made a symbolic link within the anonymous tree or guest + tree and it doesn't work for the anonymous/guest users. + Symbolic links in Unix are relative to your active root. If + you want to access files/directories/diskspace outside your + chrooted environment, you'll have to import it using + directory loopback mounts (available on at least Solaris) or + using NFS mounts (available on most other operating systems + but they have a performance impact). + 16. I want to redirect anonymous users to another machine + That's a not-so-well-known ftpaccess feature : just add + 'guestserver anon.ftp.server.hostname' to your ftpaccess + file.. + 17. ftpd stops accepting connections when a lot of connections + come in. + This is a feature of inetd, not ftpd. Inetd will limit the + amount of connections that can be made to a service per + minute. Some versions allow to specify this amount in + inetd.conf, by specifying it in the nowait flag, like : +ftp stream tcp nowait.256 root /usr/sbin/ftpd ftpd -a + which will allow 256 connections per minute. Check the + manpage for inetd. + 18. Running WU-FTPD on a *large* site + Tuning for a large site is mostly OS tuning since WU-FTPD + fully depends on the OS to do things like file-caching and + tcp-tuning. If your traffic is more than what can flow easily + over a 100 Mbit card maybe you should look into bonding + multiple 100 Mbit networks together or go ATM or gigabit + ethernet. + WU-FTPD is now default suited for running on a large site. + The patches mentioned below have been included per default. + For example sunsite.doc.ic.ac.uk has made some modifications + available at + + From the notes on those patches: +DAEMON +If ftpd called with -D then run as a standalone daemon listing on the +ftp port. This can speed up ftpd response as all ftpd then needs to +do is fork off a copy to handle an incoming request. Under inetd +a new copy has to be opened and exec'd. + +FILEWHAT +If SETPROCTITLE doesn't work or if you have so many users that ps +takes a long time then FILEWHAT keeps the info in a file so that +ftpcount can just print it. + 19. Only the first 8 characters of the anonymous username are + recieved by the server. + This is actually a bug in very old ftp-clients which only + send the first 8 characters because the password is limited + to 8 characters anyway. Upgrade your client. + 20. WU-FTPD fails with '500 Illegal PORT Command' under AIX 4.3 + or Solaris 8 + Both set services in inetd.conf to ipv6 which WU-FTPD doesn't + support yet. Fix: change the protocol from tcp6 to tcp. + 21. I want to host multiple ftp servers on the same machine + At this moment this is only possible with one IP number for + each ftp server. So called 'name based virtual hosting' is + inherently impossible with the current FTP protocol. WU-FTPD + 2.6.0 supports this in a somewhat limited extent, BeroFTPD + supports it somewhat better, but read the catch: + There is a draft for an extension to the ftp protocol named + HOST to support virtual hosts like HTTP. But, this is a draft + and there are a lot of old ftp clients out there. So do not + count on using this. + 22. I just upgraded and now nobody can log in. It worked before. + Did you look in the system log? The daemon will log the + reason for the failure there. It helps a lot to know why. + Most plausible (at the moment) you're upgrading to the latest + version and, if you'd look, the syslog says 'not in any + class'. That means you're using the old, unsafe wildcards on + your class statements such as the following: class lcl + real,guest,anonymous 127.*.*.* The latest versions don't + support this notation for security reasons. Use netmask or + CIDR instead, as in either of the following: class lcl + real,guest,anonymous 127.0.0.0/8 or class lcl + real,guest,anonymous 127.0.0.0:255.0.0.0. + 23. I get disconnected directly from the ftp server. + Most probable reason: in inetd.conf the ftp server gets + started using tcpd (tcp_wrappers) which fails a security + check. Look in the logfiles given from syslog.conf which + check fails. + 24. Mirror breaks with WU-FTPD >= 2.6.0. + Get the patch for mirror to update it. Available from: + + In WU-FTPD 2.6.0, some flaws in dealing with the ftp protocol + were fixed which broke some clients. + 25. Logins to the ftp server take a long time, after that things + run smooth + Possible causes: IDENT (RFC931) lookup is enabled in WU-FTPD. + This has a timeout of 10 seconds. If the protocol (port 113) + gets blocked by a firewall or suchlike, it will wait for + timeout. If it is 30 seconds and you are using Redhat >= 7 + with xinetd, disable AUTH in inetd as well. Change the + entries in /etc/xinetd.d/ftp that read: +log_on_success += DURATION USERID +log_on_failure += USERID + Remove the 'USERID' from both. Any other time period: DNS is + broken for the IP address the connection is coming from. + 26. ls doesn't show anything except files. It does not show + directories and links + Some ftp clients improperly use the NLST and LIST commands. + NLST was intended to show files only for retrieval using the + mget command. LIST was intended to show everything in + human-readable form. Earlier versions of WU-FTPD did not + correctly interpret the RFC which defines these commands and + many ftp clients were written incorrectly and do not use the + definitions in the RFC. Starting WU-FTPD 2.6.0, the + interpretation of NLST versus LIST ftp commands has been + changed to what is the right interpretation. NLST lists + retrievable files for the ftp mget command, LIST lists all + files for a human reader. Suggested fix: fix the client + software, or train the users to use ls -l (or dir) in a + command-line client to get a listing of the files and + directories. + 27. My client hangs at the end of a transfer + Starting WU-FTPD 2.6.0, the FTP RFC has been implemented in a + stricter way, which breaks some clients. Most visible clients + are mirror and squid. More information on which clients and + how to update them at + + 28. Sometimes ftpd stops working and inetd logs 'ftp/tcp server + failing (looping), service terminated' + Inetd counts the number of connection occuring within a + minute. If that number exceeds some threshold, is assumes the + ftp service is broken (or under attack) and keeps getting + restarted - and shuts down the service. In most systems, this + can be overcome by adding a parameter to the inetd.conf file + like .... nowait.400 (400 connections per minute). Check the + specific syntax for your operating system. + 29. I can't login, in the syslog is: get passwd; pwdb: request + not recognized + Your /etc/pam.d/ftp file is missing/incomplete, it should + contain at least: +#%PAM-1.0 +auth required pam_pwdb.so shadow nullok +auth required pam_shells.so +account required pam_pwdb.so +session required pam_pwdb.so + And for denying users in /etc/ftpusers: +auth required /lib/security/pam_listfile.so item=user sense=deny file +=/etc/ftpusers onerr=succeed + 30. Under Solaris, certain user information stays cached even + when changed + Solaris uses nscd to cache certain information. With 'nscd -i + passwd' the cache will be refreshed. You can also have a look + at the manpage for nscd on how to change this behaviour. + 31. Does WU-FTPD support resuming downloads/uploads + Since the correct way to resume a download is not + standardized, it depends on the interaction between server + and client. The way that it is usually implemented is + supported by WU-FTPD. + 12. Other things + 1. Where is the FTP protocol documented ? + RFC959 documents the FTP protocol. + 2. How can I make my ftp-archive accessible by Email (ftpmail) ? + There is a Perl-script collection available named ftpmail. It + is available on a lot of ftp-sites (archie for 'ftpmail'), + some of which are : + , + nic.funet.fi, ftp.warwick.ac.uk, ftp.loria.fr, + ftp.germany.eu.net. + 3. How do I force all clients to switch to binary mode ? + You can't. Binary or Ascii transfer is purely a choice of the + client in the ftp protocol. Some clients switch to binary + mode automatically at startup, but that is purely their + choice and not governed by the server. + 4. My embedded device has a builtin version of WU-FTPD which is + outdated according to your site, how do I update it ? + Firewall the device from the Internet and if possible from + network (most embedded devices should not be reachable from + the Internet anyway). After that start bugging the vendor for + an update pointing the vendor towards the website for WU-FTPD + at . + 13. Credits/miscellanious + A number of people deserve credit : + + Alexander L. Haiut (alx@cs.bgu.ac.il), creator of the + original faq. + + *Hobbit* (hobbit@avian.org) for the first security patches to + WU-FTPD. + + Stan Barber (sob@owlman.academ.com), long time maintainer of + WU-FTPD and the patch-archive for WU-FTPD. Not actively + maintaining it anymore. + + Reinier Post (reinpost@win.tue.nl), for the scripts that + maintain this FAQ. + + And of course, Chris Myers and Bryan O'Connor at Washington + University who wrote WU-FTPD in the first place. Warning : + Both are no longer working on WU-FTPD, or even working at + Washington University. Please don't mail them with questions. + + And all the people who send me updates for the FAQ or other + information. A number of names still archived: Al Longyear + (longyear@sii.com), Francois Belanger (francois@goltier.com), + Chuck Davis (cdavis@wrair-amss.army.mil), Perry L. Morgan + (pmorgan@uceng.uc.edu), Justin Kurmaty (justin@pty.com), + Michael Brennen (mbrennen@fni.com), W. James Showalter + (gamma@mintaka.disa.mil), Albert Lunde + (Albert-Lunde@nwu.edu), Eric (ewedaa@kset.com), Eilon Gishri + (eilon@aristo.tau.ac.il), Frans Stekelenburg (gjs@knmi.nl), + Jim Davis (jdavis@cs.arizona.edu), Perry A. Stupp + (pstupp@i-com.com), Peter Glassenbury + (pete@cosc.canterbury.ac.nz), Simon Rakov + (Simon_Rakov@iongate.staff.ichange.com), Andy Johnson + (asj@cc.usu.edu). + (No chocolate cookies. Yet) + 1. How do I contact the WU-FTPD Development team + Send email to (wuftpd-members@wu-ftpd.org) + 2. I have a correction / new feature, how do I submit it for the + WU-FTPD Development team's consideration + The development team prefers context-diffs against the + lastest version of the source code. Completely new files may + be included separately or as part of the context-diff. + If your entire patch is small (less than 25,000 bytes) you + may send it via email, with a brief description of your + change, to wuftpd-members@wu-ftpd.org. + If your patch or addition is large (over 25,000 bytes) or + invloves several files, please create a compressed tar + (tar.gz or tar.Z) and upload it to + ftp://ftp.wu-ftpd.org/incoming After you have uploaded, + please send a brief description of your patchs, along with + the name you uploaded it as, to wuftpd-members@wu-ftpd.org. + + Last modified : Wed Mar 12 18:06:06 2003 + _________________________________________________________________ + + Created by : Koos van den Hout (koos@wu-ftpd.org) + Email related to this faq: (faq@wu-ftpd.org) + Homepage : http://idefix.net/~koos/ --- wu-ftpd-2.6.2.orig/debian/rules +++ wu-ftpd-2.6.2/debian/rules @@ -0,0 +1,111 @@ +#!/usr/bin/make -f +# Derived from wu-ftpd-academ rules file and dh_make examples. + +export CFLAGS = -g -Wall -D_FILE_OFFSET_BITS=64 # -DPARANOID +export INSTALL_PROGRAM = install + +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL += -s +endif +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(NUMJOBS) +endif + +#export DH_VERBOSE=1 +export DH_OPTIONS + +tmp=$(shell pwd)/debian/wu-ftpd + +configure: configure-stamp +configure-stamp: + dh_testdir + autoconf + ./configure --prefix=/usr --with-etc-dir=/etc/wu-ftpd \ + --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + --with-log-dir=/var/log/wu-ftpd --disable-numericuid \ + --mandir='$${prefix}/share/man' --enable-pam \ + --enable-quota --enable-passwd --disable-mail + touch $@ + +build: build-stamp +build-stamp: configure + dh_testdir + $(MAKE) + touch $@ + +clean: + dh_testdir + dh_testroot + [ ! -f Makefile ] || $(MAKE) distclean + dh_clean configure-stamp build-stamp install-stamp config.log + debconf-updatepo + cp /usr/share/misc/config.guess /usr/share/misc/config.sub . + +install: install-stamp +install-stamp: build-stamp checklocations + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + $(MAKE) install prefix=$(tmp)/usr + + install -m 755 util/xferstats $(tmp)/usr/sbin/xferstats + install -m 755 debian/addftpuser $(tmp)/usr/sbin/addftpuser + install -m 644 debian/ftpusers $(tmp)/etc/ftpusers + cd $(tmp)/usr/sbin && ln -s addftpuser rmftpuser + + install -m 755 debian/bug.script $(tmp)/usr/share/bug/wu-ftpd/script + +# cd $(tmp)/etc/wu-ftpd && ln -sf ../ftpusers ftpusers + set -e; cd debian; for p in in.*; do \ + install -m644 $$p $(tmp)/etc/wu-ftpd/`echo $$p|sed -e 's/in\.//'`;\ + done + + touch $@ + +binary-indep: + # nothing to see here, move along... + +binary-arch: DH_OPTIONS=-pwu-ftpd +binary-arch: install-stamp + dh_testdir + dh_testroot + dh_installdocs ERRATA README doc/HOWTO/VIRTUAL.FTP.SUPPORT doc/TODO \ + doc/HOWTO/upload.configuration.HOWTO debian/wu-ftpd-faq.txt \ + debian/wu-ftpd-faq.html debian/README.config + install -m 644 debian/*.8 $(tmp)/usr/share/man/man8/ + cd $(tmp)/usr/share/man/man8 && ln -s addftpuser.8.gz rmftpuser.8.gz && \ + ln -s xferstats.8.gz xferstats.wu-ftpd.8.gz + dh_installexamples `find doc/examples -type f` debian/*.es + dh_installchangelogs CHANGES + install -m 644 debian/logrotate $(tmp)/etc/logrotate.d/wu-ftpd + install -m 644 debian/binary.lintian-overrides $(tmp)/usr/share/lintian/overrides/wu-ftpd + dh_installdebconf + dh_installinit -r -u"defaults 50" + dh_installpam + dh_strip + dh_compress + if [ -f "$(tmp)/usr/share/doc/wu-ftpd/README.config.gz" ]; then \ + ln -s /usr/share/doc/wu-ftpd/README.config.gz $(tmp)/etc/wu-ftpd/README.gz;\ + else \ + ln -s /usr/share/doc/wu-ftpd/README.config $(tmp)/etc/wu-ftpd/README;\ + fi + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-arch binary-indep +.PHONY: build clean binary binary-arch binary-indep install checklocations --- wu-ftpd-2.6.2.orig/debian/changelog +++ wu-ftpd-2.6.2/debian/changelog @@ -0,0 +1,1227 @@ +wu-ftpd (2.6.2-33ubuntu1) precise; urgency=low + + * Merge from debian unstable. Remaining changes: + + Fix FTBFS with ld --as-needed. + + -- Stephan Adig Fri, 28 Oct 2011 11:33:54 +0000 + +wu-ftpd (2.6.2-33) unstable; urgency=low + + * QA upload to orphan the package + as agreed with previous maintainer. + Thanks, Chris, for your work on this package. + * Fix pending l10n issues. Debconf translations: + - Brazilian Portuguese (Flamarion Jorge). Closes: #594788 + - Danish (Joe Hansen). Closes: #595533 + - Slovak (Slavko). Closes: #618345 + + -- Christian Perrier Mon, 14 Mar 2011 07:08:47 +0100 + +wu-ftpd (2.6.2-32ubuntu2) oneiric; urgency=low + + * Fix FTBFS with ld --as-needed. LP: #832921. + + -- Matthias Klose Mon, 12 Sep 2011 15:30:34 +0200 + +wu-ftpd (2.6.2-32ubuntu1) natty; urgency=low + + * Merge from debian unstable. (LP: #595103) Remaining changes: + - debian/init: Check {,x}inetd presence on startup. + + -- Bilal Akhtar Sat, 16 Oct 2010 20:36:07 +0300 + +wu-ftpd (2.6.2-32) unstable; urgency=low + + * Fix path_to_device in src/extensions.c to cope with an empty fstab + (closes: #568235) + * Fixed regexps in addftpuser for architectures where the ELF dynamic linker + is called ld.so. (closes: #550807) + * Updated init.d script to depend on $remote_fs instead of $local_fs + * Split Choices field in config template + * Use dpkg-architecture in debian/rules. + * Increase Standards-Version to 3.8.4 + + -- Chris Butler Fri, 05 Feb 2010 01:05:13 +0000 + +wu-ftpd (2.6.2-31ubuntu1) karmic; urgency=low + + * Merge from debian unstable, Ubuntu remaining changes: + - debian/init: Check {,x}inetd presence on startup. + + -- Alessio Treglia Wed, 30 Sep 2009 10:04:57 +0200 + +wu-ftpd (2.6.2-31) unstable; urgency=low + + * Call db_stop in postinst before running update-inetd to + workaround bug update-inetd bug #489494 (closes: #531565) + * Add signal handler for SIGTERM that causes the server to exit + (closes: #536774) + * Copy latest config.{guess,sub} from autotools-dev package, added + build-dep on autotools-dev (closes: #536261) + * Fixed lintian warnings: add -e to prerm script, remove path to + invoke-rc.d in postinst, fix path in addftpuser override + * Converted example spanish message files to UTF-8 + * Updated Standards-Version to 3.8.2 - no changes required. + * Moved AC_INIT call to after the divert/undivert for the license in + configure.in (closes: #540524) + * Fixed quota.h include in src/ftpd.c, fixes build failure on + Debian/kfreebsd + + -- Chris Butler Sat, 15 Aug 2009 11:02:18 +0100 + +wu-ftpd (2.6.2-30ubuntu1) intrepid; urgency=low + + * Merge from debian unstable, remaining changes: + + debian/init: + - check (x)inetd presence on startup + + -- Emanuele Gentili Fri, 01 Aug 2008 17:59:40 +0200 + +wu-ftpd (2.6.2-30) unstable; urgency=low + + * Removed logcheck ignore rules, to avoid conflict with logcheck-database + package (closes: #486703) + * Upped standards-version to 3.8.0 + - Added support for parallel option to debian/rules + + -- Chris Butler Sat, 21 Jun 2008 16:19:51 +0100 + +wu-ftpd (2.6.2-29ubuntu1) intrepid; urgency=low + + * Merge from debian unstable, remaining changes: (LP: #237240) + - Modify Maintainer value to match Debian-Maintainer-Field Spec + - debian/init: check (x)inetd presence on startup (LP: #92864) + + -- Nicolas Valcárcel Fri, 06 Jun 2008 18:17:04 -0500 + +wu-ftpd (2.6.2-29) unstable; urgency=low + + * Incorporated changes from NMU. + * Updated debconf translations: es, ja, eu, cs + (closes: #435255, #463651, #481305, #481626) + * Added new debconf translations: fi, gl, ru + (closes: #481507, #481538, #481937) + * Added script in /usr/share/bug to list installed inetd packages + * Get rid of error message when inetd.conf does not exist + * Remove bashism from debian/rules (closes: #478640) + * Add Homepage and Vcs-* fields to debian/control + * Fixed some lintian warnings + * Patched the configure script to remove unnecesssary linking against -ldl + and -lnsl + + -- Chris Butler Wed, 28 May 2008 11:23:33 +0100 + +wu-ftpd (2.6.2-28.1ubuntu1) intrepid; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - Modify Maintainer value to match Debian-Maintainer-Field Spec + - debian/init: check (x)inetd presence on startup (LP: #92864) + + -- Lionel Porcheron Wed, 21 May 2008 22:12:39 +0200 + +wu-ftpd (2.6.2-28.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix bashism in postinst script (Closes: #473697) + * Bump Standards-Version to 3.7.3. + + -- Chris Lamb Sat, 12 Apr 2008 03:22:11 +0100 + +wu-ftpd (2.6.2-28ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - Modify Maintainer value to match Debian-Maintainer-Field Spec + * debian/init: check (x)inetd presence on startup (LP: #92864) + + -- Lionel Porcheron Wed, 01 Aug 2007 00:38:54 +0200 + +wu-ftpd (2.6.2-28) unstable; urgency=low + + * applied patch to fix output of SIZE command (closes: #433887) + * fixed typo in template (closes: #433665) + * updated debconf translations: pt, de, sv, eu, vi, fr, es, ca + (closes: #433664, #434578, #434686, #434777) + + -- Chris Butler Sat, 21 Jul 2007 12:26:47 +0100 + +wu-ftpd (2.6.2-27) unstable; urgency=low + + * Made the init script LSB-compliant + * Added Spanish debconf translation (closes: #428570) + * Removed DH_COMPAT from debian/rules and replaced with debian/compat + * Changed netbase dependency to depend on update-inetd + * Removed old version migration code from debian/preinst as it's not + required for upgrades from etch (or even sarge) + * Updated some debconf questions to follow style guides + + -- Chris Butler Mon, 9 Jul 2007 14:34:40 +0100 + +wu-ftpd (2.6.2-26ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - debian/control: Add update-inetd to wu-ftpd's dependencies + * Modify Maintainer value to match Debian-Maintainer-Field Spec + + -- Lionel Porcheron Wed, 23 May 2007 00:05:03 +0200 + +wu-ftpd (2.6.2-26) unstable; urgency=high + + * Disabled MAIL_ADMIN functionality due to CVE-2003-1327 (closes: + #425162) + + -- Chris Butler Tue, 22 May 2007 13:21:26 +0100 + +wu-ftpd (2.6.2-25) unstable; urgency=low + + * Incorporated changes from NMU + * Fixed typo in addftpuser (closes: #380454) + * Updated debconf translations: Japanese, Basque and German + (closes: #393125, #398550, #401097) + + -- Chris Butler Mon, 11 Dec 2006 13:25:45 +0000 + +wu-ftpd (2.6.2-24.1) unstable; urgency=medium + + * NMU to fix release critical bug. + * Only call update-inetd on purge when available (Closes: #389387). + * Add missing build-dependency on po-debconf. + + -- Thijs Kinkhorst Fri, 6 Oct 2006 13:34:39 +0200 + +wu-ftpd (2.6.2-24) unstable; urgency=low + + * Fixed some integer overflow problems with session summary information + (closes: #365440) + * Updated Czech translation (closes: #370330) + * Updated Standards-Version to 3.7.2 + + -- Chris Butler Mon, 5 Jun 2006 13:47:27 +0100 + +wu-ftpd (2.6.2-23) unstable; urgency=low + + * Added code to check for ld-linux.so in the ldd output, as the format + has recently changed (closes: #365997) + * Updated Portuguese translation (closes: #364974) + + -- Chris Butler Mon, 8 May 2006 14:08:21 +0100 + +wu-ftpd (2.6.2-22) unstable; urgency=low + + * More checking in the init script (closes: #355371) + * Simplified the postinst and converted it to shell, so that debhelper can + help properly. + * Added calls to update-inetd in the postrm to disable and remove ftp entry. + (closes: #333178) + * Updated config.sub/config.guess (closes: #356519) + * One of the members of struct dqblk has changed name, fixes FTBFS on + unstable (closes: #358550) + * Updated debconf translations: french (closes: #353686), swedish + (closes: #350627) + + -- Chris Butler Sun, 5 Mar 2006 13:52:50 +0000 + +wu-ftpd (2.6.2-21) unstable; urgency=low + + * Removed -DPARANOID completely, since most people complained about it. + (closes: #312728, #316370) + * Now uses common pam configuration files (closes: #305409) + * Improved safety of rmftpuser confirmation (closes: #329296) + * Added some debconf translations - Basque, Vietnamese, Swedish, Portuguese + (closes: #309240, #324120, #333096, #335948) + * Fix typo in debconf template (closes: #324139) + * Added option to /usr/sbin/xferstats to suppress error when given an empty + log file to process, and also added this option to the commandline in the + logrotate script (closes: #307152) + * Fixed dependency on debconf, now lets debhelper sort it out + (closes: #332151) + * Check for empty right hand side in ldd output in addftpuser + * Added some basic logcheck ignore files + + -- Chris Butler Mon, 23 Jan 2006 11:27:19 +0000 + +wu-ftpd (2.6.2-20) unstable; urgency=low + + * Allow overwriting and deletion of files, even with -DPARANOID + (closes: #301411, #303064) + * Add bzip2 to the list of binaries copied over to ~ftp/bin (closes: + #297767) + + -- Chris Butler Sun, 17 Apr 2005 10:40:45 +0100 + +wu-ftpd (2.6.2-19) unstable; urgency=high + + * [SECURITY] Fix DoS attack in the NLST command (CAN-2005-0256) + (closes: #296929) + * Fix regexp in addftpuser (closes: #296928) + * There were a number of errors/omissions from last version's changelog + (I was quite tired by the end of it all!) + - Bug number 267177 in the first lot should have been 267166 + - Added German po-debconf translation (closed: #280050) + - Added Czech po-debconf translation (closed: #274072) + - Updated addftpuser to recognise libraries that should be in /lib64 + when copying libraries to the anonymous ftp area. (closes: #293239) + + -- Chris Butler Sat, 26 Feb 2005 10:01:35 +0000 + +wu-ftpd (2.6.2-18) unstable; urgency=high + + * Incorporates changes from NMUs + (closes: #267177, #231300, #243286, #254870, #234292, #267307, #236986) + * Fix DoS in the LIST command (closes: #219165) + * Remove '-g' option from ls arguments (closes: #247764) + * Compile with LFS support (closes: #156999, #290813) + * Compile with -DPARANOID by default (closes: #237328) + * Recode Catalan translation from latin1 to utf-8 + + -- Chris Butler Tue, 22 Feb 2005 21:48:07 +0000 + +wu-ftpd (2.6.2-17.2) unstable; urgency=high + + * NMU (0-day NMU as per release managers request) + * Add a missing Depends on netbase (closes: #267166) + * Update Janapanese po-debconf translation (closes: #231300) + * Add Polish po-debconf translation (closes: #243286) + * Add Catalan po-debconf translation (closes: #254870) + + -- Pierre Machard Sat, 21 Aug 2004 22:15:12 +0200 + +wu-ftpd (2.6.2-17.1) unstable; urgency=high + + * Non-maintainer upload by the Security Team + * Fix bug allowing restricted users to escape from their home dir by + denying themselves access to it (CAN-2004-0148) + * Apply upstream patch skeychallenge.patch to fix buffer overflow in + skey_challenge (CAN-2004-0185) (Closes: #234292) + + -- Matt Zimmerman Mon, 8 Mar 2004 22:20:59 -0800 + +wu-ftpd (2.6.2-17) unstable; urgency=low + + * Updated dutch po-debconf translation (closes: #216940) + * Added japanese po-debconf translation (closes: #224176) + * Update debconf database with FTP home directory if ftp user already + exists (closes: #222997) + * Include full path to xferstats in logrotate script (closes: #222949) + + -- Chris Butler Tue, 21 Oct 2003 23:05:35 +0100 + +wu-ftpd (2.6.2-16) unstable; urgency=low + + * Redirect egrep output to /dev/null in init script (closes: #211647) + * Remove old alternatives in postinst if necessary (closes: #212597) + * Preserve [.max] setting from inetd.conf (closes: #212603) + * Add versioned Conflict on logrotate (<< 3.6.5-1), as older versions + do not understand the "start" directive (closes: #212624) + + -- Chris Butler Mon, 29 Sep 2003 17:36:12 +0100 + +wu-ftpd (2.6.2-15) unstable; urgency=high + + * [SECURITY] Prefix %s substitutions in ftpconversions with '--' to avoid + option processing. In the case of tar, this would allow arbitrary command + execution (DSA-377-1) + * Install xferstats to /usr/sbin/xferstats since we don't use + alternatives any more (closes: #210263) + * Added dutch debconf translation (closes: #208256) + * Bumped Standards-Version up to 3.6.1 + + -- Chris Butler Wed, 10 Sep 2003 19:21:34 +0100 + +wu-ftpd (2.6.2-14) unstable; urgency=low + + * Fix path in README.config (closes: #205464) + * Add code to the ftpglob() function to recognise the special case of "." + making "LIST ." work correctly (closes: #101847) + * Applied patch from Phillipe Troin to allow disabling the REST command + (closes: #138497) + + -- Chris Butler Thu, 14 Aug 2003 21:27:26 +0100 + +wu-ftpd (2.6.2-13) unstable; urgency=high + + * Fix syntax error in init.d script (closes: #203857) + + -- Chris Butler Sat, 2 Aug 2003 15:26:52 +0100 + +wu-ftpd (2.6.2-12) unstable; urgency=high + + * [SECURITY] Fix off-by-one bug in fb_realpath function (see DSA-357-1) + * Fix inetd.conf handling in init.d script, add support for xinetd.conf, + and add RUN_DAEMON option to /etc/default/wu-ftpd (closes: #203104) + + -- Chris Butler Fri, 1 Aug 2003 14:59:38 +0100 + +wu-ftpd (2.6.2-11) unstable; urgency=low + + * Gettextize debconf templates (closes: #198875) + * Reword a couple of the templates to ease translation (closes: #198878) + * Added french translation of debconf templates (closes: #200294) + * Moved /etc/wu-ftpd/README to /usr/share/doc (fixes lintian warning) + * Bumped Standards-Version to 3.6.0 + + -- Chris Butler Tue, 1 Jul 2003 13:24:18 +0100 + +wu-ftpd (2.6.2-10) unstable; urgency=medium + + * Bumped Standards-Version to 3.5.10 + * Applied patch from Markus Hochholdinger to fix pwd problems with + restricted users (closes: #197910, #197911) + + -- Chris Butler Wed, 18 Jun 2003 18:57:51 +0100 + +wu-ftpd (2.6.2-9) unstable; urgency=low + + * Create ~ftp/dev if it doesn't exist (closes: #196973) + + -- Chris Butler Wed, 11 Jun 2003 22:44:08 +0100 + +wu-ftpd (2.6.2-8) unstable; urgency=low + + * Fix CVS conflict that broke addftpuser script (closes: #196844) + + -- Chris Butler Tue, 10 Jun 2003 18:15:56 +0100 + +wu-ftpd (2.6.2-7) unstable; urgency=low + + * Rewritten postinst + - Now uses debconf (closes: #122352) + - Checks and updates ALL binaries in /home/ftp/bin (closes: #58193, #131522) + + -- Chris Butler Sun, 8 Jun 2003 18:54:30 +0100 + +wu-ftpd (2.6.2-6) unstable; urgency=medium + + * Fixed addftpuser to not pass empty argument to addftpuser + * Fixed logrotate config (closes: #191699) + + -- Chris Butler Sun, 4 May 2003 16:04:47 +0100 + +wu-ftpd (2.6.2-5) unstable; urgency=low + + * chmod the ~ftp/lib/* files to 0555 instead of 0111 - required to + work on PPC (closes: #164185) + * Fixed debian/in.ftpconversions (closes: #168733) + * Add xferreport stuff to debian/logrotate (closes: #169186) + * Pass --no-create-home to adduser if directory already exists + (closes: #139336) + * wu-ftpd was renamed back in potato, so we can get rid of the wu- + ftpd-academ convenience package now + * Updated installation/removal scripts to be in-line with policy + * add debhelper token to preinst + + -- Chris Butler Tue, 22 Apr 2003 18:50:20 +0100 + +wu-ftpd (2.6.2-4) unstable; urgency=low + + * Create ~ftp/dev/null in postinst if it doesn't exist, and by default + in addftpuser (closes: #147397) + * unset LANG in init.d file (closes: #177336) + * Stop wu-ftpd on removal/purge if running as a daemon (closes: + #150639) + * Get rid of /etc/wu-ftpd/ftpusers cruft (closes: #83241, #169165, + #166868, #169026, #185981, #165094) + * Applied connect-dos.patch from ftp.wu-ftpd.org + * Upgraded Standards-Version + + -- Chris Butler Fri, 4 Apr 2003 20:20:25 +0100 + +wu-ftpd (2.6.2-3.1) unstable; urgency=low + + * Non-maintainer bugsquash upload + * Apply bison syntax error patch (thanks, Matt Kraai!) + (Closes: #166601) + + -- Hwei Sheng Teoh Sun, 24 Nov 2002 08:33:39 -0500 + +wu-ftpd (2.6.2-3) unstable; urgency=low + + * Really fixed the lack of wu-ftpd binary this time (closes: #137510) + + -- Chris Butler Sun, 10 Mar 2002 20:00:10 +0000 + +wu-ftpd (2.6.2-2) unstable; urgency=low + + * Brown paper bag upload: Managed to upgrade the upstream source and + lose most of the Debian-specific changes. Fixed now (closes: + #137331) + * Update config.{sub,guess} to the latest versions in autotools-dev, + to allow building on ARM (closes: #137343) + + -- Chris Butler Fri, 8 Mar 2002 13:19:58 +0000 + +wu-ftpd (2.6.2-1) unstable; urgency=low + + * New upstream release (closes: #136647) + * [SECURITY] Fixes a globbing bug (closes: #121638) + * Fix paths in /etc/wu-ftpd/ftpconversions (closes: #124224) + * Changed debian/rules to have a seperate configure target + * Compile in support for using other passwd files for virtual hosts + (closes: #87756) + + -- Chris Butler Thu, 7 Mar 2002 16:45:11 +0000 + +wu-ftpd (2.6.1-6) unstable; urgency=high + + * [SECURITY] Fix buffer overflow error in globbing routines + + -- Chris Butler Wed, 28 Nov 2001 04:00:01 +0000 + +wu-ftpd (2.6.1-5) unstable; urgency=medium + + * Apply patch to privatepw fixing a temp file vulnerability (closes: + #82766) + + -- Chris Butler Sat, 24 Feb 2001 01:41:36 +0000 + +wu-ftpd (2.6.1-4) unstable; urgency=high + + * Applied missing_format_strings.patch from + ftp://ftp.wu-ftpd.org/pub/wu-ftpd/patches/apply_to_2.6.1/ + (fixes bug reported today on bugtraq) + + -- Chris Butler Thu, 18 Jan 2001 23:27:20 +0000 + +wu-ftpd (2.6.1-3) unstable; urgency=high + + * Added dh_fixperms to binary-indep target (fixes lintian warning) + * Upgrade to debhelper v2 + * Mark /etc/pam.d/wu-ftpd as a conffile (closes: #78985) + + -- Chris Butler Thu, 7 Dec 2000 16:11:17 +0000 + +wu-ftpd (2.6.1-2) unstable; urgency=high + + * Exit postinst with an error if addftpuser fails. + * Update to latest version of FAQ, and add HTML version (closes: #66973) + * Checking arguments for NULL pointers in access.c (closes: #66774) + * Make sure we're only operating on files /etc/{wu-ftpd-academ,ftpd} by + using find (closes: #66217) + * Add information about pam_shells.so to README.Debian (closes: #14004) + * Attempt to use "nobody" account if "ftp" account does not exist, and + user is not known locally (closes: #76635) + + -- Chris Butler Wed, 6 Dec 2000 00:39:38 +0000 + +wu-ftpd (2.6.1-1) unstable; urgency=high + + * New upstream version (closes: #74659) + * Change dependencies on netbase (closes: #68852) + * Applied pasv-port-allow-correction.patch from + ftp://ftp.wu-ftpd.org/pub/wu-ftpd/patches/apply_to_2.6.1/ + + -- Chris Butler Tue, 21 Nov 2000 23:33:09 +0000 + +wu-ftpd (2.6.0-5) frozen unstable; urgency=medium + + * Changes by Chris: + + doc/ftpaccess.5: Add sentences to the various logging commands + detailing where the information is logged (closes: #59768) + + debian/logrotate: add missingok to prevent error message when + xferlog doesn't exist (closes: #59604) + + debian/README.config: changed "~ftp/usr/bin/" -> "~ftp/bin" + + debian/README.Debian: added paragraph about updating binaries in + anonymous ftp directories + * Changes by Josip: + + Fixed handling of wu-ftpd-academ's cron.monthly script, the old + "solution" gave errors with run-parts. Now postinst doesn't overwrite + user's old conffile, it just adds a suffix ".obsolete" to it, which + disables it. Added a short note to README.Debian about it. Added + postrm for wu-ftpd-academ, to clean up any conffile mess on purge. + Closes: #60307. [RC] + + -- Josip Rodin Sun, 12 Mar 2000 15:19:13 +0100 + +wu-ftpd (2.6.0-4) frozen unstable; urgency=low + + * Enabled the wu-ftpd-academ dummy package, which is very important for + users upgrading from slink and previous distributions, otherwise + they won't get the fixed wu-ftpd daemon installed, and that's a quite + large security flaw, considering the number of CERT advisories, BUGTRAQ + buffer overflows and all sorts of exploits floating around the net. + * Fixed/updated the init script, the way it outputs messages, to comply + with the policy. + * Updated the ftpconversions file to support bz2, and lowercased the + error description messages. + * Added the note from adduser --update-binaries, about libnss_files.so, + to README.Debian. + + -- Josip Rodin Mon, 28 Feb 2000 18:43:57 +0100 + +wu-ftpd (2.6.0-3) unstable; urgency=low + + * debian/addftpuser: Automatically check for anonymous ftp usernames + in ftpusers and offer to comment them out. (closes: #49551) + * Changed src/ftpd.c file to actually *use* the PAM config file + /etc/pam.d/wu-ftpd, closes: #49826. + * The former patch was made by Chris, and the latter by me. + * Standards-Version: 3.1.1. Added Build-Depends: in the control file. + + -- Josip Rodin Tue, 30 Nov 1999 19:12:20 +0100 + +wu-ftpd (2.6.0-2) unstable; urgency=low + + * Fixed the PAM config file, s/pam_pwdb/pam_unix/ and s/ shadow nullok// , + as BenC kindly advised on IRC. + * Echo 'exit 0' in /etc/cron.monthly/wu-ftpd-academ if the file exits, + closes: #49551. + * Removed the extra patch for src/ftpcount.c (doh!). + * Added a little check to debian/rules, to warn about possibly incorrect + path definitions, just as a precaution if anything gets screwed. + * Small cleanups in in.pathmsg, in.msg.toomany, rules, preinst, Makefile.in. + * Standards-Version: 3.1.0. + * Added ftpservers example file in /etc/wu-ftpd/ directory and to the + list of conffiles. Only comments in it, of course. + + -- Josip Rodin Tue, 9 Nov 1999 20:16:45 +0100 + +wu-ftpd (2.6.0-1) unstable; urgency=low + + * New upstream version. (BTW previous upload closed bug #45409) + * Removed a couple of our patches, now integrated upstream. + * Included most of Culus' ideas regarding logrotate, closes: #47846 . + Commented out postrotate stuff - SIGHUPing inetd and xferstats, may + not be useful on all systems (xferstats doesn't even work on my log). + Not Depend:ing on logrotate, though, it's not quite neccessary. + * Added README.Debian file, included README.wtmp file in it, plus + some other stuff. Thus, removed README.wtmp. Posted README.IP-REVERSAL + to the wu-ftpd discussion list and removed from package, not useful. + * Minor cleanups in the rules and control files. Some corrections to + xferstats.8. + * Re-added slave alternative symlink for xferstats stuff in postinst, + fixes: #47881 . + + -- Josip Rodin Mon, 25 Oct 1999 16:41:58 +0200 + +wu-ftpd (2.6pre5-1) unstable; urgency=low + + * New upstream version. + Biggest changes include autoconfized compilation; all doc/FIXES* files + included in one file, CHANGES. The new license is here, too, but not + much has changed from original BSD one. + * Reworked most of Debian patches to match changed upstream code: + + Instead of patching config.h, src/config.h and src/pathnames.h, do + all we need in src/pathnames.h.in (with a bugfix in configure.in :) + and when invoking configure. + + Enabled quota support. + + Minor corrections to the addftpuser script. + + Defined SHADOW_PASSWORD in src/ftpd.c because logging in would + not work otherwise (reason for that not quite known to myself). + + Expanded the patch for src/ftpd.c which does + s/openlog("ftpd"/openlog("wu-ftpd"/ to all similar/equal cases found. + + Not including /usr/sbin/ckconfig in the package, it isn't quite + useful to the package users, and there could be namespace pollution. + * Updated the FAQ, version from Sep 19. + * Added a patch from wuftpd-questions mailing list to fix _PATH_* + warnings in ftpcount, and one from wu-ftpd list which is already in CVS. + * Fixed clean: rules in debian/rules; added COPYRIGHT and doc/TODO + from dh_installdocs line, removed INSTALL from it. + * Removed proftpd from the Conflicts: line, ftp-server is enough. + * Moved to Policy 3.x, requires newer debhelper. Made neccessary changes + to packaging files which used old directories. + * The change to FHS directories came in handy, and we can now dump most + of the old alternatives system regarding manual pages, because they + have nothing to conflict with in /usr/share/man/man?/ directories. The + package already Conflicts: with any packages that might include those + files. My further examination showed that we don't need alternatives + handling for anything else except /usr/sbin/ftpd and its manpage (that + one might be eliminated soon, too). + On the other hand, we might once dump the Conflicts: with other ftpds, + but reinstating the symlinks shouldn't be hard. + * Added FHS /usr/doc symlinks creation/deletion to postinst/postrm (for + postinst, I just rewrote sh stuff that debhelper would put in, in Perl). + * Fixed some spelling/grammar errors in postinst, and removed a faulty + exit(0) from the update-binaries query. + * debian/README.Debian.changes moved to the end of debian/changelog file. + * /usr/share/doc/wu-ftpd/README.config in the package is now a symlink to + /etc/wu-ftpd/README, because there is no need for two different files. + I edited the file a bit, too, to fix some mistakes and add some useful + information. + * Ditched worthless debian/notinc-* files. + * Removed debian/cron.monthly file which wasn't used anyway. + * Added a nifty little debian/watch file. + * Made a PAM config file debian/pam, from RPM's wu-ftpd.spec file. + Added --enable-pam to configure flags, and a call to dh_installpam in + the rules file. It appears to work on my slink system with latest PAM + packages installed, I guess someone will file a bug if it doesn't + function on potato :) + * Changed "compress" to "nocompress" in the logrotate file, because + according to RPM spec file author, wu-ftpd can't handle SIGHUP properly. + Indented the lines in the file better. + + -- Josip Rodin Thu, 9 Sep 1999 11:30:59 +0200 + +wu-ftpd (2.5.0-4) unstable; urgency=medium + + * src/ftpd.c: Applied mapped.path.overrun.patch from ftp.wu- + ftpd.org/pub/wu-ftpd/quickfixes/apply_to_2.5.0, instead of patch + from BTS. + * src/ftpd.c: Above patch also fixes another buffer overrun problem + missed by the other patch. + * src/access.c: Applied not.in.class.patch from ftp.wu- + ftpd.org/pub/wu-ftpd/quickfixes/apply_to_2.5.0 (actually applied in + -3, but I forgot the changelog entry ) + * src/ftpd.c: Applied patch from Jason Gunthorpe to avoid accept being + called on a FD with no pending connections. (closes: #43518) + * Uploading for prospective maintainer Chris Butler. My changes are: + + fixed file modes in makefiles/Makefile.lnx , for consistency. + + removed unneeded changes from src/ftpcount.c + + fixed README.wtmp location in debian/rules (debian/ was missing) + + updated vers.c (because all of those important patches) + + -- Josip Rodin Sat, 28 Aug 1999 14:11:29 +0100 + +wu-ftpd (2.5.0-3) unstable; urgency=medium + + * src/ftpd.c: Fix possible buffer overrun in do_elem() (closes: #43465) + * debian/postinst: Fixed location of alternative as well. + * Uploading for prospective maintainer Chris Butler. My changes (Chris + is going to kill me, but they're minor :) are: + + debian/rules: re-add README.wtmp to the dh_installexamples line, + do compress the >4K changelogs, and manage examples differently. + + debian/examples: removed, now in rules. + + build.out: removed, cruft. + + debian/copyright: add Chris's name and address as the current + maintainer. + + -- Josip Rodin Wed, 25 Aug 1999 20:35:27 +0200 + +wu-ftpd (2.5.0-2) unstable; urgency=low + + * New maintainer: Chris Butler (Josip Rodin acting as a sponsor). + * Josip's changes: + + Added Gregory A Lundberg's text on why wtmp logging is bad, as + README.wtmp, in the package. + + Changed $(RPM_OPT_FLAGS) (yuck! :) in {src,support}/makefiles/Makefile.lnx + to "-g -O2" instead of just "-O3". Adding "-Wall" creates way too much + output. + + Fixed update-alternatives link to real location of ftpshut (postinst), + closes: #43236 . + * Chris's changes: + + debian/rules: Fixed bashism. + + debian/FAQ: Updated to latest version from ftp.cetis.hvu.nl . + + debian/addftpuser: Don't install any version of libnss_files.so, + since we don't have any way of knowing which one we need. Issue + an explanation to the user instead. (closes: #42482) + + src/pathnames.h: Change _PATH_FTPHOSTS to use /etc/wu-ftpd instead + of /etc/ftpd . + + debian/addftpuser: Change to do a cp followed by a rename for binaries. + (closes: #42485) + + src/ftpd.c: Fix the SPT code to make it pad right to the end. + (closes: #42486) + + -- Josip Rodin Sun, 22 Aug 1999 15:39:10 +0200 + +wu-ftpd (2.5.0-1) unstable; urgency=low + + * Applied three patches from + ftp://ftp.wu-ftpd.org/pub/wu-ftpd/quickfixes/apply_to_2.5.0/ : + + data-limit.patch + Fixes an error in the ftpaccess.5 manpage, s/byte-limit/data-limit/ . + + deny.not.nameserved.patch + After release of 2.5.0, two separate reports of problems with + deny !nameserved msgfile + were received. Basically, the daemon was treating '!nameserved' as + a host name and not fully giving it the special treatment it needs. + This problem has been in the daemon since, at least, version 2.4 + was not unmasked until 2.5.0 added '!' syntax to hostmatch(). + + rfc931.timeout.patch + If the remote client is behind a firewall, the RFC931 conversation + will time out. When this occurred, the daemon would fail to close the + socket in a timely manne. Worse yet, if the control connection would + later time out (which it almost always does with a web browser on the + remote end), the daemon would hang forever; never timing out and + closing down. + * Correctly defined all utmp/wtmp/lastlog locations in src/pathnames.h . + * Rewrote /etc/inetd.conf parsing routines in postinst script to a much + simpler method, thanks to Tommi Virtanen and Ruud de Rooij. + * Made substitution of /ftpd/ and /wu-ftpd-academ/ with /wu-ftpd/ + automatic in preinst. Fixed some other small errors in preinst, too. + * Added loads of (I hope useful) comments into the default ftpaccess + file. Edited debian/README.config and decided to include it in the + package, as /etc/wu-ftpd/README , to help new users set it up. + * Renamed the debian/example.* files to in.*, because after all they do + get installed under /etc. Fixed some minor errors in them, and added + msg.deny and msg.nodns (and in the conffiles list). + * Removed some erroneous code from src/logwtmp.c , to fix wtmp logging, + closes: #42302 . + + -- Josip Rodin Fri, 30 Jul 1999 00:02:28 +0200 + +wu-ftpd (2.5.0-0.3) unstable; urgency=low + + * Implemented log rotation through logrotate, with /etc/logrotate.d/wu-ftpd + file. Removed old cron.monthly file, and all references to it. Package + now suggests logrotate, until the latter gets its priority raised to + >= important. + * Added optional init.d file (as debian/init), for running in daemon + mode (wu-ftpd -S -l), but only if an FTP service isn't enabled already + in /etc/inetd.conf. Actual script stolen from proftpd :o) Although + wu-ftpd doesn't support reload, and is instead ignoring signal 15, and + is terminated by other signals (I tried 1, 3, 10...). + * Some fixes in the xferstats man page, debian/rules, postinst, prerm + and copyright. + * Replaced '/usr/sbin/ftpd' with '/usr/sbin/wu-ftpd' wherever possible. + The former is a bit vague. + * Minor fixes in upstream config files. Changed the pidfile to be + /var/run/wu-ftpd.pid (how did I miss that before?). + * It now Conflicts: and Provides: ftp-server, as that will soon be in + the Policy (virtual packages list). + * Removed 'function' bashism from prerm. + * The preinst script now creates the /etc/ftpusers file if it doesn't + exist, to prevent the dangling symlink. It'll also automatically + substitute of all ftpd and wu-ftpd-academ paths in the copied old files + (if some of them do contain those paths). + * I'm maintaining this package now... It is, however, still offerred up + for adoption, but not yet orphaned. + * TODO: rewrite the postinst functions that copy the files from old dirs + to the new directory not to do just 'cp' but 'sed' and instantly + replace whatever needed. The whole script is slow otherwise. + + -- Josip Rodin Wed, 21 Jul 1999 16:20:16 +0200 + +wu-ftpd (2.5.0-0.2) unstable; urgency=low + + * Moved the routines that copy the old configuration and log files + to the new locations from postinst to preinst, and rewrote preinst + in sh, so that we don't need to predepend on any kind of perl. + * Fixed a heap of bugs in the preinst, like these: + - it creates the /etc/wu-ftpd directory, if it doesn't already exist. + - it's handling the move from /etc/wu-ftpd-academ to /etc/wu-ftpd . + - it moves xferstats log file to the right location, and it creates + and sets up permissions for everything. + * Don't do anything inetd.conf related in postinst if it isn't an + upgrade ($2). Also, don't ask the anonymous FTP user question but + simply call `addftpuser --configure`. Fixed some other small bugs. + * Added the 'rmftpuser' ability in the addftpuser script (rmftpuser + is a link to it, and if $0 ends with rmftpuser, then do the stuff). + It will also ask you if you want to leave the ~ftp directory or not. + * Fixed some errors in xferstats and addftpuser manpages, and added + description of both addftpuser and rmftpuser to the latter. + * Examined and applied our xferstats patches to the upstream one, + and vice versa, using upstream changelogs and some common sense :) + * TODO: postinst's and prerm's inetd.conf functions need a slight + rewrite, they're doing too many unneeded things to the file, and + usually fail at it. + * ------------------------------------------------ + * --- THIS PACKAGE IS LOOKING FOR A MAINTAINER --- + * ------------------------------------------------ + + -- Josip Rodin Mon, 12 Jul 1999 01:55:38 +0200 + +wu-ftpd (2.5.0-0.1) unstable; urgency=medium + + * Added Conflicts: proftpd (because it is a FTP daemon, and they can't + both be on the 21st port). This should change to Conflicts: ftp-server + in the future. + * Changed the Perl dependency to perl | perl5 . + * Some changes to debian/postinst: + - added a question to postinst to ask on new installs whether to + enable anonymous FTP (by adding the FTP user) or not. It wont + do anything on upgrade (i.e. when $2 exists). + - checks whether $1 is "configure" everywhere. + - fixed some spelling errors and did s/ftp/FTP/. + * Added debian/postrm, to remove /var/log/wu-ftpd/ and /etc/wu-ftpd/ + on purge. + * Added "$1" != "upgrade" check in debian/prerm. + * Minor cleanups in debian/rules. Now installs debian/README.config and + debian/README.IP-REVERSAL in /usr/doc/wu-ftpd . + + * ++++++++++++++++++++++++++++++++++++++++++++++++ + * +++ THIS PACKAGE IS LOOKING FOR A MAINTAINER +++ + * ++++++++++++++++++++++++++++++++++++++++++++++++ + + -- Josip Rodin Thu, 8 Jul 1999 02:11:47 +0200 + +wu-ftpd (2.5.0-0) unstable; urgency=medium + + * Upload for the QA Group, because we need the bugfixes. + * New upstream version of wu-ftpd-academ, actually, but I don't + know whether Heiko is interested in maintaining this new package. + Let's emphasize this, since the package is quite important: + ************************************************ + *** THIS PACKAGE IS LOOKING FOR A MAINTAINER *** + ************************************************ + * Based on -academ packaging (with a couple of minor changes). + Once this is in the archive, we can discuss if we want to replace + -academ package with this one. + * Included the FAQ as debian/FAQ, or /usr/doc/wu-ftpd/FAQ.gz + * Includes almost all patches from the old -academ package, some are + left out, .rejs saved as debian/notinc-* . TODO: check these out. + * Still uses the savelog for log rotation. TODO: include proper + logrotate configuration. The wu-ftpd.spec file should help. + * TODO: the postinst script needs some serious bugfixing, probably + a rewrite, because it doesn't work really well. + + -- Josip Rodin Tue, 1 Jun 1999 10:20:18 +0200 + +wu-ftpd-academ (2.4.2.18-0.2) unstable; urgency=high + + * Applied security-patch from Olaf Kirch + + -- Wichert Akkerman Wed, 10 Feb 1999 00:04:32 +0100 + +wu-ftpd-academ (2.4.2.18-0.1) unstable; urgency=medium + + * NMU (emailed Heiko about it on Jan 27th, but no answer so far) + * Upgraded to new upstream code (Which from the README fixes 29 bugs) + (Fix #28814, #32465). + * Make lintian happy: + - declare dependancy on 'perl', since getopts.pl + is not part of perl-base. + * The default timeout for idle clients is now 2 hours (Fix #6974). + * The '%U' in the first banner doesn't cause a ftpd to coredump + anymore (Fix #7604, #10488). + * copyright file is correct (Fix #8374). + * Add rough manpage for xferstats (Fix #10332). + * Bug #11448 has been fixed long ago it seems. + * Set #12004 to fixed (Can't reproduce it, must have been fixed + a long ago). + * Fix #12492 (now works fine with MD5 passwds). + * Fix #13742, #21504, #28637, #27795, #26660 + (ftpwho now works as expected). + * Bugs #17297, #17584 have already been fixed. + * Bugs #17401, #17508, #17622, #17742, #17753, #17799, #18240, #18256, + #18257, #18687, #19668, #20355, #17844, #20419, #21392 are fixed. + * Bug #19433 is fixed (lintian is happy). + * #20029, #20518, #20810, #21391 don't apply anymore (since we don't + ship the fnmatch(3) manpage). + * #22846, #22920: Can't reproduce; seems fixed. + * #24800 is fixed (see below). + * Integrate glibc2.1 patch from Ch. Meder (Bug #30167). + * Integrate patch from jgg to improve ftpwho (Bug #31679). + * Don't integrate patch from bug report #31676 since the upstream + source upgrade made it unnecessary. + * Write a manpage for addftpuser.8 (Bug #23224). + * Integrate patch to addftpuser from Joey (Bug #23557). + * Don't integrate Ch. Chimelis Alpha patchs (Don't seem needed anymore) + Fix #32193, #15970. + * Patch addftpuser to fix the libc6/libnss.so problem: + Fixes: #31334, #26642 #17110. + * Checked that #13557 is indeed fixed. + #13016, #12236, #26289 was the same problem. + * #24565 should be fixed (same description/symptoms than bug #24507). + * Don't overwrite ~ftp/etc/{passwd,group} if there already is one + (Fix #25018). + * Fix postinst so it doesn't disable ftp or add multiples + '##ftp...' lines (Bugs #27400, #32382, #23113, #24977). + * Patch ftpd.c so that QUIT is reported on lost connections + (Bug #24317). + * Print complete filename in xferlog (Bug #10146). + * Looking at src/ftpd.c, the (data_dest.sin_addr.s_addr != + his_addr.sin_addr.s_addr) check that caused bug #13178 is gone + (at no code doing a similar thing seem to have been added). + * We're now down from 70 outstanding bugs to 6 which certainly + looks better ;) + + -- Vincent Renardias Thu, 4 Feb 1999 22:14:35 +0100 + +wu-ftpd-academ (2.4.2.16-12.1) frozen unstable; urgency=medium + + * Non-maintainer release, aknowledged by maintainer + * Fixes broken code which was ignored on i386 but not on other + architectures. (closes: Bug#30931) + * Made return value of main() an int + + -- Martin Schulze Wed, 20 Jan 1999 22:17:29 +0100 + +wu-ftpd-academ (2.4.2.16-12) frozen unstable; urgency=medium + + * Mention Scott Barker in + ftpd.c, he contributed the code to use FQDN for virtual + hosts. (#24800) (This bug fix changed no code, the + code for FQDN support has been changed long ago.) + + -- Heiko Schlittermann Tue, 21 Jul 1998 09:42:20 +0200 + +wu-ftpd-academ (2.4.2.16-11) frozen unstable; urgency=medium + + * 2.0.34: ld-linux needs to be executable (#22323) + * uses it private comment characters in inetd.conf (so netstd shouldn't + reenable the base ftpd when updated) (This should be worked + out together with the netstd maintainer.) (#24507) + + -- Heiko Schlittermann Fri, 17 Jul 1998 17:24:06 +0200 + +wu-ftpd-academ (2.4.2.16-10) frozen unstable; urgency=medium + + * addftpuser: don't show error messages when attempt + to check optional binaries binaries. (closes #22988, #22828) + + -- Heiko Schlittermann Thu, 18 Jun 1998 11:34:51 +0200 + +wu-ftpd-academ (2.4.2.16-9) frozen unstable; urgency=medium + + * changed the postinst script to really copy the /etc/ftpd/* + files if there's no /etc/wu-ftpd-academ/ftpaccess. + (#22701) + * use ``wu-ftpd-academ'' as the syslog tag (#22667) + * symlink /etc/ftpusers to /etc/wu-ftpd-academ/ftpusers + to have wu-ftpd-academ make use of this file. (#22087) + + -- Heiko Schlittermann Sat, 23 May 1998 17:23:55 +0200 + +wu-ftpd-academ (2.4.2.16-8) frozen unstable; urgency=medium + + * refer to the new config dir in ftpaccess (#21638) + + -- Heiko Schlittermann Sat, 25 Apr 1998 12:40:37 +0200 + +wu-ftpd-academ (2.4.2.16-7) frozen unstable; urgency=high + + * create the proper home directory entry in /etc/passwd + + -- Heiko Schlittermann Mon, 20 Apr 1998 20:20:06 +0200 + +wu-ftpd-academ (2.4.2.16-6) frozen unstable; urgency=high + + * access the new config dir /etc/wu-ftpd-academ when + copying pathmsg and other files to ftp's home dir + (#21425) + + -- Heiko Schlittermann Mon, 20 Apr 1998 15:38:16 +0200 + +wu-ftpd-academ (2.4.2.16-5) frozen unstable; urgency=low + + * binary now called /usr/sbin/wu-ftpd-academ + * addftpuser: dies with ret. code 1 when approbiate (md5 + check failed for binaries, etc, ...) + * addftpuser: only warn if we can't create the ~ftp/pub directory + (may reside on a r/o filesytem). BUT: it's still an error + if the bin and lib dirs can't get created + + -- Heiko Schlittermann Tue, 14 Apr 1998 07:57:44 +0200 + +wu-ftpd-academ (2.4.2.16-4) frozen unstable; urgency=high + + * addftpuser --check-binaries/--update-binaries now hopefully + takes more care about the libs. (#16186, #18309, #19834, #20295) + * use adduser instead of doing the passwd/group modifications + itself (#19833, #13558) + * changed the call to `ps -f -p' into `ps fp' in ftpcount/ftpwho (#20411) + * don't remove tftp service from inetd.conf any longer + * put config files to /etc/wu-ftpd-academ rather than + /etc/ftpd (makes coexistence with other ftpds easier) + * moved location of logfile (xferstats) to /var/log/wu-ftpd-academ + * changed name of the pidfile to wu-ftpd-academ.pids. + * changed to process table entry from sendmail ;-) to wu-ftpd-academ + * added working script xferstats (thanks to Holger + Preiss (TU Dresden) (#18731, #14365) + * linked manpages for xferstats and addftpuser to undocumented.7 (sorry) + * made use of update-alternatives for: + /usr/sbin/ftpd : ftpd : /usr/sbin/wu-ftpd-academ + /usr/man/man8/ftpd.8.gz + /usr/sbin/xferstats + + -- Heiko Schlittermann Mon, 13 Apr 1998 13:46:37 +0200 + +wu-ftpd-academ (2.4.2.16-3) unstable; urgency=high + + * virtual hosting possible again (#17820) + * called as wu-ftpd, not wu.ftpd (#17298) + * %U doesn't segfaults (libc6 version, probably closes $13573) + + -- Heiko Schlittermann Tue, 17 Feb 1998 00:51:06 +0100 + +wu-ftpd-academ (2.4.2.16-2) unstable; urgency=high + + * enabled shadow support + * upload the real original source + + -- Heiko Schlittermann Thu, 15 Jan 1998 17:11:17 +0100 + +wu-ftpd-academ (2.4.2.16-1) unstable; urgency=high + + * enabled shadow support + + -- Heiko Schlittermann Thu, 15 Jan 1998 16:40:15 +0100 + +wu-ftpd-academ (2.4.2.16-0) unstable; urgency=medium + + * new upstream + * libc6 + * no debian related bugs fixed in this release + + -- Heiko Schlittermann Thu, 15 Jan 1998 10:02:01 +0100 + +wu-ftpd-academ (2.4.2.13-0) unstable experimental; urgency=medium + + * new upstream + + -- Heiko Schlittermann Fri, 4 Jul 1997 00:36:38 +0200 + +wu-ftpd-academ (2.4.2.12-0) unstable; urgency=medium + + * academ release, initial debian packagin + + -- Heiko Schlittermann Mon, 3 Mar 1997 15:47:25 +0100 + +wu-ftpd (2.4-27) stable unstable; urgency=medium + + * patch (security and PORT command) + * missing wtmp is logged as LOG_NOTICE, not longer as LOG_ERR, + since it's normal, but significant ;-) + + -- Heiko Schlittermann Wed, 8 Jan 1997 20:06:57 +0100 + +wu-ftpd (2.4-26) unstable; urgency=low + + * new packaging format + * new maintainer + + -- Heiko Schlittermann Fri, 18 Oct 1996 23:30:18 +0200 + +Thu Sep 12 14:22:12 MET DST 1996 Peter Tobias + * Version 2.4-25 released + * cleaned up addftpuser + * changed welcome.msg to show the RFC931 username and the local time + * gzipped manual pages +Thu Aug 1 00:37:20 MET DST 1996 Peter Tobias + * Version 2.4-24 released + * addftpuser: added missing exit(0) to &checkbin + * enabled RFC931 check + * changed %U cookie to show the RFC931 name for anonymous/guest + logins (if possible) + * minor change to the %T time format +Sun Jun 2 15:52:01 MET DST 1996 Peter Tobias + * Version 2.4-23 released + * made cron script more quiet + * update binaries in ~ftp/bin if necessary (Bug#3129) + * addftpuser: added two new options --check-binaries and + --update-binaries +Fri May 17 10:16:57 MET DST 1996 Peter Tobias + * Version 2.4-22 released + * addftpuser: set OUTPUT_AUTOFLUSH (Bug#3025) + * log login failures to LOG_AUTH instead of LOG_DAEMON (Bug#3024) +Sun May 5 20:40:20 MET DST 1996 Peter Tobias + * Version 2.4-21 released + * enabled support for optional shadow passwords (patch from Marek + Michalkiewicz ) +Tue Mar 19 01:22:15 MET 1996 Peter Tobias + * Version 2.4-20 released + * added 'tzset()' to make sure that the time conversion works + * xferstats: fixed the 'Systems Using Archives' entry (Bug#2461) +Thu Feb 22 20:23:52 MET 1996 Peter Tobias + * Version 2.4-19 released + * ftpaccess: fixed path-filter entry (allow '+' in filenames) + * fixed a pointer bug in checknoretrieve() +Mon Feb 12 00:40:26 MET 1996 Peter Tobias + * Version 2.4-18 released + * fixed manual pages (Bug#2190) + * fixed the "PASV before login" bug + * fixed the "multiple PASV" bug +Fri Jan 5 22:39:24 MET 1996 Peter Tobias + * Version 2.4-17 released + * xferstats: fixed a bug in the datecompare subroutine (Bug#2079) + * fixed the "wu-ftpd in CPU loop" bug (Bug#1872) + Patch from Stephen R. van den Berg +Fri Nov 17 10:26:26 MET 1995 Peter Tobias + * Version 2.4-16 released + * changed wu-ftpd to use the getwd instead of getcwd (Bug#1869) +Tue Nov 14 16:29:02 MET 1995 Peter Tobias + * Version 2.4-15 released + * don't produce output during cron.monthly (Bug#1787) + * addftpuser: copy a welcome.msg file to ~ftp + * fixed a problem with the %L magic cookie (it will print + the FQDN now) + * moved ftpshut from /usr/bin to /usr/sbin +Wed Oct 11 10:22:22 MET 1995 Peter Tobias + * Version 2.4-14 released + * addftpuser: changed group "ftp" to "staff" in ~ftp/etc/group + (Bug#1556) + * addftpuser: it won't create ~ftp/dev/zero anymore. Old versions + of ld.so needed /dev/zero for the ELF libraries +Wed Sep 13 01:17:34 MET DST 1995 Peter Tobias + * Version 2.4-13 released + * debian.postinst: minor changes + * debian.prerm: minor changes +Tue Aug 22 00:23:38 MET DST 1995 Peter Tobias + * Version 2.4-12 released + * addftpuser: it will use a simple getopt function + instead of newgetopt.pl (Bug#1200) + * addftpuser: removed --link option (hardlinks) + * addftpuser: copy zip to ~ftp/bin if possible + * addftpuser: check binaries in ~ftp/bin and copy + a.out and/or ELF libraries + * addftpuser: search for libraries using + /etc/ld.so.conf + * added ".tgz" to /etc/ftpd/ftpconversions + * added a patch from Olaf Kirch + (SETPROCTITLE: check for '@' in anonymous ftp + password) + * rewrote the install/remove scripts (they now use update-inetd) + * debian.control: added "depends: netbase (>1.14)" + * addftpuser: check for an existing ftp user first (Bug#1271) +Mon Jul 31 22:21:27 MET DST 1995 Peter Tobias + * Version 2.4-11 released + * changed the default umask to 022 + * addftpuser: use readdir/grep instead of glob() (Bug#1172) +Thu Jul 27 20:07:21 MET DST 1995 Peter Tobias + * Version 2.4-10 released + * added "zip" to /etc/ftpd/ftpconversions + * changed the tar options in /etc/ftpd/ftpconversions + (include the files symlinks point to) + get .tar ==> tar -c -h -f + get .tar.Z ==> tar -c -h -Z -f + get .tar.gz ==> tar -c -h -z -f + * added ".ltar", ".ltar.Z" and ".ltar.gz" to + /etc/ftpd/ftpconversions (only record the + presence of a symbolic link) + get .ltar ==> tar -c -f + get .ltar.Z ==> tar -c -Z -f + get .ltar.gz ==> tar -c -z -f + * addftpuser: it will now change the permissions + of existing directories if necessary + * added an extended description +Wed May 31 22:32:17 MET DST 1995 Peter Tobias + * Version 2.4-9 released + * changed the path for the SITE EXEC commands to + /usr/bin/ftpexec +Sun May 14 02:29:48 MET DST 1995 Peter Tobias + * Version 2.4-8 released + * the xferlog file will be rotated monthly. The + script also creates a report for the last month + (/var/log/xferreport) (Bug#872) + * changed xferstats to set the values for $mydom1 + and $mydom2 automatically (default DNS domain) +Sun Mar 26 22:46:38 MET DST 1995 Peter Tobias + * Version 2.4-7 released + * addftpuser: it will now create the directories + correctly + * addftpuser: create /pub/incoming if the user + wants it + * addftpuser: use the original name of the libc + library and create a symbolic link to libc.so.4 + (or newer) + * addftpuser: added a few additional checks + * addftpuser: added the command line options "--help", + "--version", "--link" and "--group groupname" + The --group option allows you to specify a + different group for the anonymous FTP account + * addftpuser: it will copy the libraries and binaries + by default. If you want to use hard links instead + use the --link option. + * enabled pathfilter in /etc/ftpd/ftpaccess + for the guest group and the anonymous group + and added ~ftp/etc/pathmsg + * disabled delete, overwrite, chmod and umask + in /etc/ftpd/ftpaccess for the guest group and + anonymous group +****************************************************************************** +The following things have originally been changed for the Debian distribution: +- changed makefiles/Makefile.lnx (added PREFIX) +- changed src/config/config.lnx (added USE_ETC_FTPD) +- changed src/config/config.lnx (added PATH_UTMP) +- changed src/config/config.lnx (added PATH_LASTLOG) +@@@@ +- changed the manpage for ftpd (how to setup an anonymous ftp account) +- changed some of the examples (mostly pathnames and class definitions) +- changed xferstats (location of perl and xferlog) +- changed GETCWD definition in config.lnx +- added support for the linux vfs +- added the "noretrieve" option patch from Mitch Dsouza + +- fixed braindead linux safeguard around write(2) + (Stephen R. van den Berg ) +INFO: you probably have to use the Berkeley yacc instead of the GNU bison. + -- Peter Tobias + --- wu-ftpd-2.6.2.orig/debian/copyright +++ wu-ftpd-2.6.2/debian/copyright @@ -0,0 +1,98 @@ +The package of wu-ftpd-academ was made by Heiko Schlittermann. The +wu-ftpd package's source was debianized using the wu-ftpd-academ +packaging, by Josip Rodin. + +Current maintainer is Chris Butler + +The wu-ftpd source was downloaded from: + ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ + + WU-FTPD SOFTWARE LICENSE + +Use, modification, or redistribution (including distribution of any modified +or derived work) in any form, or on any medium, is permitted only if all the +following conditions are met: + +1. Redistributions qualify as "freeware" or "Open Source Software" under + the following terms: + + a. Redistributions are made at no charge beyond the reasonable cost + of materials and delivery. Where redistribution of this software + is as part of a larger package or combined work, this restriction + applies only to the costs of materials and delivery of this + software, not to any other costs associated with the larger package + or combined work. + + b. Redistributions are accompanied by a copy of the Source Code or by + an irrevocable offer to provide a copy of the Source Code for up + to three years at the cost of materials and delivery. Such + redistributions must allow further use, modification, and + redistribution of the Source Code under substantially the same + terms as this license. For the purposes of redistribution "Source + Code" means all files included in the original distribution, + including all modifications or additions, on a medium and in a + form allowing fully working executable programs to be produced. + +2. Redistributions of Source Code must retain the copyright notices as + they appear in each Source Code file and the COPYRIGHT file, these + license terms, and the disclaimer/limitation of liability set forth as + paragraph 6 below. + +3. Redistributions in binary form must reproduce the Copyright Notice, + these license terms, and the disclaimer/limitation of liability set + forth as paragraph 6 below, in the documentation and/or other materials + provided with the distribution. For the purposes of binary distribution + the "Copyright Notice" refers to the following language: + + Copyright (c) 1999 WU-FTPD Development Group. + All rights reserved. + + Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994 + The Regents of the University of California. + Portions Copyright (c) 1993, 1994 Washington University in Saint Louis. + Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc. + Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P. Allman. + Portions Copyright (c) 1998 Sendmail, Inc. + Portions Copyright (c) 1989 Massachusetts Institute of Technology. + Portions Copyright (c) 1997 Stan Barber. + Portions Copyright (c) 1997 Kent Landfield. + Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997 + Free Software Foundation, Inc. + + Use and distribution of this software and its source code are + governed by the terms and conditions of the WU-FTPD Software + License ("LICENSE"). + + If you did not receive a copy of the license, it may be + obtained online at http://www.wu-ftpd.org/license.html + +4. All advertising materials mentioning features or use of this software + must display the following acknowledgement: "This product includes + software developed by the WU-FTPD Development Group, the Washington + University at Saint Louis, the University of California, Berkeley, and + their contributors." + +5. Neither the name of the WU-FTPD Development Group, nor the names of any + copyright holders, nor the names of any contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. The names "wuftpd" and "wu-ftpd" are + trademarks of the WU-FTPD Development Group and the Washington + University at Saint Louis. + +6. Disclaimer/Limitation of Liability: + + THIS SOFTWARE IS PROVIDED BY THE WU-FTPD DEVELOPMENT GROUP, 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 WU-FTPD DEVELOPMENT GROUP, THE COPYRIGHT HOLDERS, 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 DAMAGES. + +7. USE, MODIFICATION, OR REDISTRIBUTION, OF THIS SOFTWARE IMPLIES + ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS LICENSE. --- wu-ftpd-2.6.2.orig/debian/config +++ wu-ftpd-2.6.2/debian/config @@ -0,0 +1,143 @@ +#!/usr/bin/perl +# +# DebConf 'config' script for wu-ftpd +# Written by Chris Butler +# + +use Debconf::Client::ConfModule ':all'; +use strict; + +my $homedir; +my $ftpusers = "/etc/ftpusers"; + +input("medium", "wu-ftpd/run_mode"); +if (-l "$ftpusers") { + subst("wu-ftpd/ftpusers-symlink", "target", readlink("$ftpusers")); + subst("wu-ftpd/ftpusers-symlink", "ftpusers", $ftpusers); + input("high", "wu-ftpd/ftpusers-symlink"); +} +input("medium", "wu-ftpd/anonymous"); +go(); + + +if (get("wu-ftpd/anonymous") eq "true") { + if ( -f "$ftpusers" ) { + my $found_ftpuser = 0; + open (FFTPUSERS, "<$ftpusers"); + while () { + /^(ftp|anonymous)$/ && do { + subst("wu-ftpd/ftpusers", "ftpusers", $ftpusers); + input("medium", "wu-ftpd/ftpusers"); + $found_ftpuser = 1; + last; + }; + } + close(FFTPUSERS); + unless ($found_ftpuser) { set("wu-ftpd/ftpusers", "false"); } + } + my $homedir_exists = 0; + setpwent; + if ($homedir = (getpwnam("ftp"))[7]) { + if (-d $homedir) { + set("wu-ftpd/homedir", $homedir); + input("low", "wu-ftpd/homedir"); + input("medium", "wu-ftpd/update-binaries") if (checkbin($homedir, <$homedir/bin/*>)); + input("medium", "wu-ftpd/create-incoming"); + go(); + exit(0); + } else { + subst("wu-ftpd/home-noexist", "homedir", $homedir); + input("medium", "wu-ftpd/home-noexist"); + go(); + + if (get("wu-ftpd/home-noexist") eq "true") { + set("wu-ftpd/homedir", $homedir); + $homedir_exists = 1; + } else { + exit(0); + } + } + } + endpwent; + + while(1) { + input("medium", "wu-ftpd/homedir") unless $homedir_exists; + $homedir_exists = 0; + my @ret = go(); + + last if ($ret[0] == 30); + + $homedir = get("wu-ftpd/homedir"); + $homedir =~ s/\s+//g; # remove spaces ... + $homedir =~ s#//+#/#g; # we don't want things like // + $homedir =~ s#/$##; # remove trailing slash if it exists + + if (!($homedir =~ m#^/#)) { + input("medium", "wu-ftpd/homedir-not-absolute"); + go(); + redo; + } + if (-d "$homedir") { + subst("wu-ftpd/homedir-exists", "homedir", $homedir); + input("medium", "wu-ftpd/homedir-exists"); + go(); + + redo unless (get("wu-ftpd/homedir-exists") eq "true"); + } + last; + } + + input("medium", "wu-ftpd/update-binaries") if (checkbin($homedir, <$homedir/bin/*>)); + input("medium", "wu-ftpd/create-incoming"); + input("low", "wu-ftpd/libnss"); + + go(); +} + +sub getlibs { + my $file; + my %libs; + foreach $file (@_) { + foreach (`ldd $file`) { chomp; + my $lib; + /\s=>\s/ or next; + ($lib) = /.*=>\s(.*?)\s/; + $libs{$lib} = 1; + } + } + return sort keys %libs; +} + +# Checks $homedir/bin/* to see if they're up-to-date +sub checkbin { + my ($ftphome, @testbins) = @_; + my @dynlinker = (); + my (%bins, $errors); + + foreach (@testbins) { + my ($src, $dst); + $dst = $_; /^.*\/(.*)/; $src = "`which $dst`"; + -r $src and $bins{$src} = $dst; + } + + foreach (keys %bins) { + my ($src, $dst) = $_, $bins{$_}; + my ($srcmd5, $dstmd5); + + $srcmd5 = (split /\s/, `md5sum $src`, 2)[0]; + $dstmd5 = (split /\s/, `md5sum $dst`, 2)[0]; + + ($srcmd5 eq $dstmd5) and next; + $errors++; + } + $errors and return 1; + + foreach (getlibs(keys %bins)) { + /ld-linux/ and push @dynlinker, "$ftphome$_"; + -f "$ftphome$_" or $errors++; + } + $errors and return 1; + + return 0; +} + --- wu-ftpd-2.6.2.orig/debian/welcome.msg.es +++ wu-ftpd-2.6.2/debian/welcome.msg.es @@ -0,0 +1,10 @@ +¡Bienvenido, usuario de archivo %U@%R ! + +La hora local es: %T + +Este es un servidor experimental de FTP. Si tiene algún problema +inusual, por favor mandelos por correo electrónico a . + +Si tiene algún problema, por favor intente utilizar un guión (-) +como primer carácter de su password -- esto desactivará los +mensajes que siguen que podrán confundir a su cliente de ftp. --- wu-ftpd-2.6.2.orig/debian/control +++ wu-ftpd-2.6.2/debian/control @@ -0,0 +1,41 @@ +Source: wu-ftpd +Section: net +Priority: extra +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian QA Group +Build-Depends: bison, libpam0g-dev, perl5, debhelper (>= 5.0.0), po-debconf, autoconf, autotools-dev +Standards-Version: 3.8.4 +Homepage: http://www.wu-ftpd.org/ +Vcs-Svn: http://svn.crustynet.org.uk/repos/wu-ftpd/ +Vcs-Browser: http://svn.crustynet.org.uk/cgi-bin/trac.cgi/browser/wu-ftpd + +Package: wu-ftpd +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, update-inetd, perl5 | perl, debianutils (>= 1.6) +Suggests: logrotate +Conflicts: ftp-server, wu-ftpd-academ (<< 2.5.0), netbase (<< 2.0), logrotate (<< 3.6.5-1) +Replaces: wu-ftpd-academ (<< 2.5.0) +Provides: ftp-server +Description: powerful and widely used FTP server + This FTP daemon, originally from the Washington University of St. Louis, + is a powerful, and widely used replacement FTP server for Unix systems. + The FTP protocol is a method of transferring files between machines on + a network and/or over the Internet. + . + Besides fully supporting the FTP protocol defined in RFCs 959 and + 1579 (and others), it adds the following features: + o logging of transfers, + o logging of commands, + o on the fly compression and archiving, + o classification of users on type and location, + o per class limits, + o per directory upload permissions, + o restricted guest accounts, + o system wide and per directory messages, + o directory aliases, + o cdpath, + o filename filter, + o virtual host support (similar to the Apache HTTP server). + . + This release is maintained by the WU-FTPD Development Group as a + public service to the Internet. --- wu-ftpd-2.6.2.orig/debian/po/ca.po +++ wu-ftpd-2.6.2/debian/po/ca.po @@ -0,0 +1,275 @@ +# +# Catalan translation for wu-ftpd package. +# Copyright (C) 2007 Chris Butler. +# This file is distributed under the same license as the wu-ftpd package. +# +# Aleix Badia i Bosch , 2004 +# Jordà Polo , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: 2.6.2\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-22 09:43+0200\n" +"Last-Translator: Jordà Polo \n" +"Language-Team: Català \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "dimoni" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Mode d'execució del wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"El wu-ftpd pot executar-se com a dimoni en comptes d'iniciar-se des de " +"l'inetd. Això fa que les respostes a noves connexions siguin lleugerament " +"més ràpides, especialment si hi ha molta càrrega." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "" +"S'està copiant ${target} per convertir ${ftpusers} en un fitxer normal." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"El fitxer ${ftpusers} és actualment un enllaç simbòlic. Aquesta configuració " +"ja no està permesa arran de les noves restriccions del paquet PAM." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Voleu actualitzar els binaris desfasats del directori ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Els binaris i llibreries del directori ${ftphome} estan desfasats. Això " +"podria provocar errors al servei d'FTP anònim." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Voleu habilitar l'accés d'ftp anònim?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"L'FTP anònim permet als usuaris entrar al servidor utilitzant el nom " +"d'usuari «anonymous» i la seva adreça de correu electrònic com a contrasenya. " +"S'acostuma a utilitzar per permetre l'accés a fitxers públics." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Si ho accepteu, es crearà un usuari anomenat «ftp», així com un directori " +"personal (que serà l'arrel de l'àrea d'FTP anònim). Aquest directori " +"personal s'omplirà amb els binaris, llibreries i fitxers de configuració " +"necessaris per permetre l'FTP anònim." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Ubicació del directori personal de l'FTP anònim:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Aquest és el directori on es crearà l'àrea d'FTP anònim i el directori " +"personal de l'usuari «ftp». Ha de ser un camí absolut (és a dir, ha de " +"començar per «/»)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "El directori personal d'FTP especificat no és un camí absolut." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"El directori principal d'FTP ha de ser un camí absolut. És a dir, ha de " +"començar per «/» (p.ex. «/home/ftp»)." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "El directori ${homedir} ja existeix, voleu utilitzar-lo?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" +"El directori personal d'FTP que heu especificat (${homedir}) ja existeix. " + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Voleu crear un directori per a fitxers pujats pels usuaris?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Si ho accepteu, es crearà un directori anomenat ${homedir}/pub/incoming (/" +"pub/incoming a l'FTP) i es configurarà perquè sigui un entorn segur per " +"pujar-hi fitxers." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Per fer més segur el directori /pub/incoming, feu una ullada al fitxer /etc/" +"wu-ftpd/ftpacces i a la seva pàgina de manual." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "El fitxer libnss_files.so s'ha d'instal·lar manualment" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"No s'ha instal·lat la llibreria libnss_files.so, així que els usuaris d'FTP " +"anònim només veuran els números UID i GID en comptes dels noms." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Per defecte no està instal·lat perquè no hi ha un mètode fàcil de descobrir " +"la versió que cal instal·lar." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Si el voleu instal·lar manualment, l'hauríeu de posar al directori " +"${homedir}/lib amb l'usuari root com a propietari i amb els permisos 444 (r--" +"r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Voleu suprimir les entrades «anonymous» del fitxer ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"El fitxer ${ftpusers} conté entrades com «ftp» i/o «anonymous», que " +"corresponen als noms d'usuaris d'ftp anònims." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Per habilitar l'accés anònim a l'ftp s'han de suprimir aquestes entrades." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "El directori ${homedir} no existeix, voleu crear-lo?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Ja teniu un compte d'FTP anònim, però el directori personal d'FTP " +"[${homedir}] no existeix!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, dimoni" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "Voleu que el wu-ftpd s'executi com a dimoni o a través de l'inetd?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Voleu que s'actualitzin?" --- wu-ftpd-2.6.2.orig/debian/po/vi.po +++ wu-ftpd-2.6.2/debian/po/vi.po @@ -0,0 +1,265 @@ +# Vietnamese translation for WU-FTPd. +# Copyright © 2007 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2007. +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd 2.6.2-20\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-24 14:39+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b1\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "độc lập" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Chế độ chạy wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd lúc bây giờ có thể chạy như trình nền độc lập, thay vào được gọi từ " +"inetd. Có nghĩa là wu-ftpd có thể đáp ứng một ít nhanh hơn sự kết nối mới, " +"nhất là khi rất bận." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Đang sao chép ${target} để khiến ${ftpusers} là tập tin chuẩn." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Hiện thời tập tin ${ftpusers} của bạn là một liên kết tượng trưng. Do giới " +"hạn mới trong gói PAM, không còn cho phép lại trường hợp này." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Cập nhật các nhị phân quá thời trong ${ftphome} không?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Các nhị phân và thư viện trong ${ftphome} là quá thời, mà có thể phá vỡ các " +"dịch vụ FTP vô danh của bạn." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Bạn có muốn cho phép truy cập FTP vô danh không?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"FTP vô danh (anonymous) cho phép người dùng đăng nhập vào trình phục vụ, " +"dùng tên người dùng « anonymous » và địa chỉ thư họ làm mật khẩu. Nó thường " +"được dùng để cho phép người dùng truy cập tập tin công cộng. " + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Nếu bạn đồng ý ở đây, một người dùng tên « ftp » sẽ được tạo, cùng với một " +"thư mục chính (mà sẽ là gốc của vùng FTP vô danh). Thư mục chính sẽ được " +"điền bằng các nhị phân, thư viện và tập tin cấu hình cần thiết cho chức năng " +"FTP vô danh." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Vị trí của thư mục chính FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Đây là thư mục trong đó sẽ tạo vùng FTP vô danh và thư mục chính cho người " +"dùng « ftp ». Nó phải là đường dẫn tuyệt đối (tức là nó phải bắt đầu với chéo " +"« / »)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Bạn đã xác định một thư mục chính FTP không phải đường dẫn tuyệt đối" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Thư mục chính FTP phải lả đường dẫn tuyệt đối. Tức là nó phải bắt đầu với " +"chéo, v.d. « /home/ftp »." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} đã tồn tại: dùng nó ?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Bạn đã xác định một thư mục chính FTP ${homedir} đã có." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Bạn có muốn tạo một thư mục cho các bản tải lên của người dùng không?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Nếu bạn đồng ý ở đây, một thư mục tên « ${homedir}/pub/incoming » (« /pub/" +"incoming » ở địa chỉ Mạng FTP) sẽ được tạo và thiết lập làm nơi bảo mật để " +"tải lên tập tin." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Xem « /etc/wu-ftpd/ftpaccess » và trang hướng dẫn của nó để tìm thêm thông " +"tin về cách khiến « /pub/incoming » bảo mật hơn." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "« libnss_files.so » cần thiết được cài đặt bằng tay" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Người dùng FTP vô danh sẽ thấy chỉ các con số UID và GID, thay cho tên, vì " +"thư viện « libnss_files.so » chưa được cài đặt." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Nó không được cài đặt theo mặc định, vì không có cách dễ dàng tìm biết phiên " +"bản nào nên được cài đặt." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Nếu bạn muốn tự cài đặt nó, nó nên được để vào « ${homedir}/lib », do người " +"chủ (root) sở hữu, với quyền hạn 444 (r--r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Gỡ bỏ các mục nhập vô danh khỏi ${ftpusers} không?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Tập tin ${ftpusers} của bạn chứa mục nhập cho « ftp » và « anonymous », những " +"tên người dùng FTP vô danh." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Để hiệu lực khả năng truy cập chức năng FTP vê danh, những mục nhập này phải " +"được gỡ bỏ." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} không tồn tại : tạo nó ?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Bạn đã có một tài khoản FTP vô danh, nhưng chưa có thư mục chính FTP " +"[${homedir}]." + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, độc lập" --- wu-ftpd-2.6.2.orig/debian/po/templates.pot +++ wu-ftpd-2.6.2/debian/po/templates.pot @@ -0,0 +1,225 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "" + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" --- wu-ftpd-2.6.2.orig/debian/po/cs.po +++ wu-ftpd-2.6.2/debian/po/cs.po @@ -0,0 +1,276 @@ +# +# 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: wu-ftpd\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2008-05-17 14:02+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "samostatně" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Způsob spouštění wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd se již nemusí spouštět jen z inetd, ale může také běžet jako " +"samostatný démon. To znamená, že wu-ftpd může trošku rychleji reagovat na " +"příchozí spojení, což je poznat hlavně pod velkou zátěží." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Kopíruji ${target}, aby se z ${ftpusers} stal normální soubor." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Stávající soubor ${ftpusers} je symbolický odkaz, což již nová omezení v " +"balíku PAM nedovolují." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Aktualizovat zastaralé binárky v ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Binární soubory a knihovny v ${ftphome} jsou již zastaralé. Tímto můžete " +"narušit službu anonymního FTP." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Chcete povolit anonymní ftp přístup?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonymní FTP umožňuje přihlášení uživatelům k serveru pod jménem „anonymous“ " +"a emailovou adresou místo hesla. Toho se obvykle využívá pro přístup k " +"veřejným souborům." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Pokud odpovíte kladně, vytvoří se uživatel „ftp“ společně s jeho domovským " +"adresářem, což bude kořen anonymního FTP. Domovský adresář bude obsahovat " +"binární soubory, knihovny a konfigurační soubory nezbytné pro chod " +"anonymního FTP." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Umístění domovského adresáře pro FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"V tomto adresáři bude vytvořena oblast pro anonymní FTP a současně to bude " +"domovský adresář uživatele „ftp“. Adresář musíte zadat jako absolutní cestu, " +"tj. musí začínat lomítkem „/“." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Zadaný domovský adresář pro FTP není absolutní cestou" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Domovský adresář pro FTP musí být absolutní cesta. Jinými slovy musí začínat " +"lomítkem „/“, např. „/home/ftp“." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} již existuje. Využít jej?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Zadaný domovský adresář pro FTP (${homedir}) již existuje." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Chcete vytvořit adresář, kam mohou uživatelé nahrávat soubory?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Budete-li souhlasit, vytvoří se adresář ${homedir}/pub/incoming (na FTP se " +"bude tvářit jako /pub/incoming), který bude soužit jako bezpečné místo pro " +"nahrávání souborů." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Pro více informací o zabezpečení /pub/incoming si přečtěte /etc/wu-ftpd/" +"ftpaccess a jeho manuálovou stránku." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so vyžaduje ruční instalaci" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonymní FTP uživatelé uvidí místo jmen uživatelů a skupin pouze UID a GID " +"čísla, protože nebyla nainstalována knihovna libnss_files.so." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Standardně se neinstaluje, protože neexistuje jednoduché pravidlo, které by " +"řeklo, kterou verzi instalovat." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Chcete-li knihovnu nainstalovat ručně, měli byste ji umístit do adresáře " +"${homedir}/lib s právy 444 (r--r--r--) a jako vlastník bude root." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Odstranit anonymní záznamy z ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Váš soubor ${ftpusers} obsahuje anonymní uživatele „ftp“ a/nebo „anonymous“." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Pro povolení přístupu k anonymnímu ftp musí být tyto záznamy odstraněny." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} neexistuje. Má se vytvořit?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Máte vytvořen anonymní FTP účet, ale domovský FTP adresář [${homedir}] " +"neexistuje!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, samostatně" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "Spouštět wu-ftpd z inetd nebo jako samostatný server?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Chcete je nyní aktualizovat?" --- wu-ftpd-2.6.2.orig/debian/po/sv.po +++ wu-ftpd-2.6.2/debian/po/sv.po @@ -0,0 +1,275 @@ +# 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. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-23 23:06+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "fristående" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Läge för körande wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd kan köras som en fristående demon istället för att anropas från " +"inetd. Detta kan göra att wu-ftpd svarar lite snabbare på nya anslutningar, " +"speciellt vid hög belastning." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Kopierar ${target} för att göra ${ftpusers} till en vanlig fil." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Filen ${ftpusers} är för närvarande en symbolisk länk. På grund av nya " +"begränsningar i paketet PAM är detta inte längre tillåtet." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Uppdatera föråldrade binärfiler i ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Dina binärfiler och bibliotek i ${ftphome} är föråldrade. Detta kan innebära " +"att dina anonyma FTP-tjänster inte fungerar." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Vill du tillåta anonym åtkomst till din ftp-server?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonym ftp låter användare logga in på servern med användarnamnet \"anonymous" +"\" och sin e-postadress som lösenord. Detta används vanligtvis för att ge " +"folk åtkomst till publika filer." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Om du accepterar här kommer en användare kallad \"ftp\" att skapas " +"tillsammans med en hemkatalog (vilken kommer att bli roten för den anonyma " +"FTP-arean). Hemkatalogen kommer att befolkas med binärfiler, bibliotek och " +"konfigurationsfiler som är nödvändiga för att anonym ftp ska fungera." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Platsen för hemkatalogen för ftp:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Detta är katalogen där den anonyma ftp-arean kommer att skapas och " +"hemkatalogen för användaren \"ftp\". Det måste vara en absolut sökväg " +"(alltså börja med ett \"/\")." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Hemkatalogen för ftp som du angav är inte en absolut sökväg" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Hemkatalogen för FTP måste vara en absolut sökväg. Med andra ord, den måste " +"börja med ett \"/\", exempelvis \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} finns redan, använda den?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Hemkatalogen för ftp som du angav (${ftphome}) finns redan." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Vill du skapa en katalog för användarna att skicka upp filer till?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Om du accepterar här kommer en katalog kallad ${homedir}/pub/incoming (/pub/" +"incoming på ftp-servern) att skapas och konfigureras till att vara en säker " +"plats att skicka upp filer till." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Ta en titt på /etc/wu-ftpd/ftpaccess och dess manualsida för mer information " +"om hur man gör /pub/incoming mer säker." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so behöver installeras manuellt" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonyma ftp-användare kommer endast att se UID och GID-nummer, istället för " +"namn eftersom biblioteket libnss_files.so inte har installerats." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Den installeras inte som standard eftersom det inte finns något enkelt sätt " +"att ta reda på vilken version som behöver installeras." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Om du vill installera den manuellt ska den placeras i ${homedir}/lib och " +"ägas av root med rättigheterna 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Ta bort anonyma poster från ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Filen ${ftpusers} innehåller poster för \"ftp\" och/eller \"anonymous\" som " +"är användarnamn för anonyma ftp-användare." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "För att aktivera åtkomst till anonym ftp måste dessa poster tas bort." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} finns inte, skapa den?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Du har redan ett konto för anonym FTP men hemkatalogen för ftp [${homedir}] " +"finns inte!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, fristående" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "Vill du köra wu-ftpd som en fristående demon eller från inetd?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Vill du uppdatera dem nu?" --- wu-ftpd-2.6.2.orig/debian/po/ja.po +++ wu-ftpd-2.6.2/debian/po/ja.po @@ -0,0 +1,275 @@ +# +# 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: wu-ftpd 2.6.2-28\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2008-01-31 07:26+0900\n" +"Last-Translator: Hideki Yamane (Debian-JP) \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "スタンドアロン" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "wu-ftpd の動作モード:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd は inetd 経由の呼び出しだけでなくスタンドアロンのデーモンとして動作さ" +"せられるようになりました。これにより、特に高負荷時の新規接続に対する wu-ftpd " +"のレスポンスが多少高速になっています。" + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "" +"${ftpusers} を通常のファイルに置き換えるため、${target} をコピーします。" + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"現在、 ${ftpusers} はシンボリックリンクです。 PAM パッケージの新たな制限によ" +"り、これは許可されなくなっています。" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "${ftphome} の古いバイナリを更新しますか?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"${ftphome} にあるバイナリとライブラリは、もはや使えません。この為、anonymous " +"FTP サービス (匿名 FTP サービス) が動作しない可能性があります。" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "anonymous (匿名) での FTP 接続を許可しますか?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"anonymous FTP (匿名 FTP) ではユーザ名を \"anonymous\" ・パスワードをメールア" +"ドレスとしてサーバにログインできます。これは通常、公開ファイルへのアクセスを" +"提供するのに利用されます。" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"ここで許可した場合、 'ftp' というユーザと (anonymous FTP 領域のルートディレク" +"トリになる) そのホームディレクトリが作成されます。ホームディレクトリは " +"anonymous FTP が動作するために必要となるバイナリやライブラリや設定ファイルで" +"占められることになります。" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "FTP のホームディレクトリの位置:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"この anonymous FTP 領域のためのディレクトリが作られて、 \"ftp\" ユーザのホー" +"ムディレクトリとなります。これは絶対パスである必要があります (つまり、 '/' で" +"始まらなくてはなりません) 。" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "指定された FTP ホームディレクトリは絶対パスではありません" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"FTP ホームディレクトリは絶対パスでなくてはいけません。言い換えると '/' で始ま" +"る必要があります。例: \"/home/ftp\"" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} が既にあります。これをこのまま利用しますか?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" +"FTP のホームディレクトリとして指定したディレクトリ (${homedir}) が既に存在し" +"ています。" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "ユーザのアップロードのためにディレクトリを作成しますか?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"これを許可した場合、 ${homedir}/pub/incoming (FTP サイトでは /pub/incoming) " +"というディレクトリが作成されてアップロードされたファイル用に確保されます。" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"/pub/incoming をよりセキュアにする方法については、詳しくは /etc/wu-ftpd/" +"ftpaccess とマニュアルを参照してください。" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so は手動でのインストールが必要です" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"libnss_files.so ライブラリがインストールされていないので、 anonymous FTP ユー" +"ザは、ユーザ名ではなく利用する UID と GID の値のみで判別されます。" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"このライブラリは標準ではインストールされません。これは、どのバージョンをイン" +"ストールすべきかを判別するのが困難なためです。" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"手動でインストールを行う場合は、所有者を root・パーミッションを 444 (r--r--" +"r--) にして ${homedir}/lib に配置する必要があります。" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "${ftpusers} からユーザ anonymous を削除しますか?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"${ftpusers} ファイルは anonymous ftp ユーザ名の 'ftp' や 'anonymous' を含んで" +"います。" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"anonymous ftp でのアクセスを許可するには、これらのユーザ名を削除する必要があ" +"ります。" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} が存在しません。作成しますか?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"すでに anonymous FTP 用のユーザアカウントがありますが、 FTP ホームディレクト" +"リ [${homedir}] が存在しません!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, スタンドアロン" --- wu-ftpd-2.6.2.orig/debian/po/sk.po +++ wu-ftpd-2.6.2/debian/po/sk.po @@ -0,0 +1,261 @@ +# Slovak translations for wu-ftpd package +# Slovenské preklady pre balík wu-ftpd. +# Copyright (C) 2011 THE wu-ftpd'S COPYRIGHT HOLDER +# This file is distributed under the same license as the wu-ftpd package. +# Automatically generated, 2011. +# Slavko , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd 2.6.2-32\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2011-03-14 15:15+0100\n" +"Last-Translator: Slavko \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "samostatný" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Režim spúšťania wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd už môže byť spúšťaný ako samostatný démon, nie len volaný z inetd. " +"To znamená, že wu-ftpd môže na nové spojenia odpovedať trochu rýchlejšie, " +"najmä pri veľkej záťaži." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Kopírovanie ${target}, aby sa z ${ftpusers} stal skutočný súbor." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Existujúci súbor ${ftpusers} je symbolický odkaz. Kvôli novým obmedzeniam v " +"balíku PAM to už nie je dovolené." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Aktualizovať neaktuálne binárky v ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Binárne súbory a knižnice v ${ftphome} nie sú aktuálne. Môže to narušiť " +"služby anonymného FTP." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Chcete povoliť anonymný FTP prístup?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonymné FTP dovoľuje používateľom prihlásenie na server pomocou " +"prihlasovacieho mena „anonymous” a ich emailovou adresou ako heslom. " +"Zvyčajne je to využívané na poskytnutie prístupu k verejným súborom." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Ak odpoviete kladne, bude vytvorený používateľ „ftp”a jeho domovský adresár " +"(ktorý bude koreňom oblasti anonymného FTP). Do domovského adresára budú " +"umiestnené binárne súbory, knižnice a konfiguračné súbory, potrebné na " +"fungovanie anonymného FTP." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Umiestnenie domovského adresára FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"V tomto adresári bude vytvorená oblasť anonymného FTP a domovský adresár " +"používateľa „ftp”. Musí to byť absolútna cesta (tj. musí začínať „/”)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Zadaná cesta domovského adresára FTP nie je absolútnou cestou" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Domovský adresár FTP musí byť absolútna cesta. Inými slovami musí začínať " +"„/”, napr. „/home/ftp”." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} už existuje, použiť ho?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Zadaný domovský adresár (${homedir}) už existuje." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Chcete vytvoriť adresár, do ktorého môžu používatelia nahrávať súbory?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Ak budete súhlasiť, bude vytvorený adresár ${homedir}/pub/incoming (/pub/" +"incoming cez FTP) a bude nastavený ako bezpečné miesto na nahrávanie súborov." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Viac informácií o zabezpečení /pub/incoming nájdete v /etc/wu-ftpd/ftpaccess " +"a v jeho manuálovej stránke." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so vyžaduje manuálnu inštaláciu" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonymní používatelia FTP budú vidieť len čísla UID a GID, namiesto mien, " +"pretože nebola nainštalovaná knižnica libnss_files.so." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Predvolene nie je inštalovaná, pretože neexistuje jednoduchý spôsob ako " +"zistiť, ktorá verzia má byť nainštalovaná." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Ak ju chcete nainštalovať manuálne, má byť umiestnené v ${homedir}/lib, " +"vlastníkom má byť root a má mať práva 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Odstrániť anonymné položky z ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Váš súbor ${ftpusers} obsahuje položky anonymných používateľov „ftp” a/alebo " +"„anonymous”." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Aby bolo možné povoliť anonymné FTP, tieto položky musia byť odstránené." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} neexistuje, vytvoriť ho?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Už máte vytvorený anonymný FTP účet, ale domovský adresár FTP [${homedir}] " +"neexistuje!" --- wu-ftpd-2.6.2.orig/debian/po/pt_BR.po +++ wu-ftpd-2.6.2/debian/po/pt_BR.po @@ -0,0 +1,263 @@ +# wu-ftpd Brazilian Portuguese translation. +# Copyright (C) 2010 wu-ftpd COPYRIGHT HOLDER +# This file is distributed under the same license as the wu-ftpd package. +# Flamarion Jorge , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: 2.6.2-32\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2010-08-21 11:57-0300\n" +"Last-Translator: Flamarion Jorge \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"pt_BR utf-8\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "autônomo" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Modo de execução do wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"O wu-ftpd agora pode ser executado como um daemon autônomo ao invés de ser " +"chamado a partir do inetd. Isto significa que o wu-ftpd pode responder um " +"pouco mais rápido a uma nova conexão, especialmente sob alta carga." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Copiando ${target} para tornar ${ftpusers} um arquivo regular." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Seu arquivo ${ftpusers} é atualmente um link simbólico. Devido às novas " +"restrições no pacote PAM, isto não é mais permitido." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Atualizar binários desatualizados em ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Seus binários e bibliotecas em ${ftphome} estão desatualizados. Isto pode " +"causar a parada dos seus serviços de FTP anônimo." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Deseja permitir acesso ftp anônimo?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"FTP anônimo permite aos usuários fazer log in no servidor usando o nome de " +"usuário \"anonymous\" e seu endereço de e-mail como senha. Isto é usado " +"geralmente para dar às pessoas acesso a arquivos públicos." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Se aceitar, um usuário chamado 'ftp' será criado, juntamente com o diretório " +"home (que será a raiz da área de FTP anônimo). O diretório home será " +"populado com os binários, bibliotecas e arquivos de configuração necessários " +"para o FTP anônimo funcionar." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Localização do diretório home do FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Este é o diretório onde a área de FTP anônimo será criada, e o diretório " +"home do usuário \"ftp\". Deve ser um caminho absoluto (isto é: deve começar " +"com uma '/')." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "O diretório home do FTP que você especificou não é um caminho absoluto" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"O diretório home do FTP deve ser um caminho absoluto. Em outras palavras, " +"deve começar com uma '/', ex.: \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} já existe, usá-lo?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "O diretório home do FTP que você especificou (${homedir}) já existe." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Deseja criar um diretório para envio de arquivos de usuários?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Se você aceitar, um diretório chamado ${homedir}/pub/incoming (/pub/incoming " +"no site FTP) será criado e configurado para ser um lugar seguro para envio " +"de arquivos." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Por favor, olhe em /etc/wu-ftpd/ftpaccess e sua página de manual para mais " +"informações sobre como fazer o diretório /pub/incoming mais seguro." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so precisa instalação manual" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Usuários FTP anônimos verão somente números UID e GID ao invés de nomes, " +"porque a biblioteca libnss_files.so não foi instalada." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Ela não é instalada por padrão, uma vez que não há nenhuma maneira fácil de " +"descobrir qual é a versão que precisa ser instalada." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Se você quiser instalá-la manualmente, ela deverá ser colocada em ${homedir}/" +"lib, sendo root o dono, e com permissões 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Remover entradas anônimas de ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Seu arquivo ${ftpusers} contém entradas para 'ftp' e/ou 'anonymous', os " +"nomes de usuários ftp anônimos." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Para habilitar o acesso a ftp anônimo, estas entradas devem ser removidas." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} não existe, criá-lo?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Você já tem uma conta de usuário FTP anônimo, mas o diretório home do FTP " +"[${homedir}] não existe!" --- wu-ftpd-2.6.2.orig/debian/po/de.po +++ wu-ftpd-2.6.2/debian/po/de.po @@ -0,0 +1,281 @@ +# German translation of wu-ftpd templates +# Jens Nachtigall , 2004. +# Helge Kreutzmann , 2006, 2007. +# This file is distributed under the same license as the wu-ftpd package. +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd 2.6.2-27\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-21 16:51+0200\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "Inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "Daemon" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Modus, in dem Wu-ftpd laufen soll." + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"Wu-ftpd kann als eigener Daemon laufen, statt von Inetd aufgerufen zu " +"werden. Dadurch kann die Reaktionszeit von Wu-ftpd auf eine neue Verbindung " +"etwas schneller sein, insbesondere im Fall hoher Auslastung." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "" +"Kopiere ${target}, um ${ftpusers} in eine regulren Datei zu verwandeln." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Ihre Datei ${ftpusers} ist zurzeit ein symbolischer Link. Aufgrund neuer " +"Restriktionen im PAM-Paket ist das nicht mehr erlaubt." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Veraltete Programme in ${ftphome} aktualisieren?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Ihre Programme und Bibliotheken in ${ftphome} sind veraltet. Dadurch knnen " +"Ihre anonymen FTP-Dienste eventuell nicht mehr funktionieren." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Mchten Sie anonymen FTP-Zugang erlauben?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonymes FTP erlaubt es Benutzern, sich auf dem Server mit dem Benutzernamen " +"anonymous und ihrer eigenen E-Mail-Adresse als Passwort anzumelden. Das " +"wird fr gewhnlich verwendet, um Leuten Zugriff auf ffentliche Dateien zu " +"gewhren." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Falls Sie hier zustimmen, wird ein Benutzer namens ftp erstellt, zusammen " +"mit einem Homeverzeichnis (welches das Wurzelverzeichnis des anonymen FTP-" +"Bereichs sein wird). Das Homeverzeichnis wird mit den Programmen, " +"Bibliotheken und Konfigurationsdateien, die fr anonymes FTP notwendig sind, " +"ausgestattet." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Ort (location) des FTP-Homeverzeichnisses:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Das ist das Verzeichnis, wo der anonyme FTP-Bereich erstellt wird. Es wird " +"auch das Homeverzeichnis des Benutzers ftp sein. Es muss als absoluter Pfad " +"angegeben werden (d.h. es muss mit einem / beginnen)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Das von Ihnen angegebene FTP-Homeverzeichnis ist kein absoluter Pfad." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Das FTP-Homeverzeichnis muss ein absoluter Pfad sein. Anders ausgedrckt, es " +"muss mit einem / beginnen, z.B. /home/ftp." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} existiert bereits. Soll es verwendet werden?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" +"Das von Ihnen angegebene FTP-Homeverzeichnis (${homedir}) existiert bereits." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "" +"Mchten Sie ein Verzeichnis erstellen, das Benutzer zum Hochladen von " +"Dateien verwenden knnen?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Falls Sie hier zustimmen, wird ein Verzeichnis mit dem Namen ${homedir}/pub/" +"incoming erstellt (/pub/incoming auf der FTP-Site). Dieses Verzeichnis wird " +"so eingerichtet, dass Dateien auf sichere Art in dieses Verzeichnis " +"hochgeladen werden knnen." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Bitte schauen Sie sich /etc/wu-ftpd/ftpaccess und lesen Sie die " +"Handbuchseite ftpaccess(5), um zu erfahren, wie /pub/incoming noch sicherer " +"eingestellt werden kann." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so muss von Hand installiert werden" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Benutzer von anonymem FTP werden statt Namen nur Benutzer-IDs (UIDs) und " +"Gruppen-IDs (GIDs) sehen, weil die Bibliothek libnss_files.so nicht " +"installiert wurde." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Sie wird nicht standardmig installiert, da es keine einfache Mglichkeit " +"gibt herauszufinden, welche Version installiert werden muss." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Falls Sie sie von Hand installieren wollen, dann sollte sie in ${homedir}/" +"lib gespeichert werden, mit root als Eigentmer und den Berechtigungen 444 " +"(r--r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Eintrge fr anonymes FTP aus ${ftpusers} entfernen?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Ihre Datei ${ftpusers} enthlt Eintrge fr ftp und/oder anonymous, " +"welches die Benutzernamen fr anonymes FTP sind." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Um Zugriff auf anonymes FTP zu aktivieren, mssen diese Eintrge entfernt " +"werden." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} existiert nicht. Soll es erstellt werden?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Sie haben bereits ein Benutzerkonto fr anonymes FTP. Allerdings existiert " +"das dazugehrige FTP-Homeverzeichnis [${homedir}] noch nicht." + +#~ msgid "inetd, standalone" +#~ msgstr "Inetd, Daemon" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "Soll Wu-ftpd als eigener Daemon oder ber Inetd gestartet werden?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Mchten Sie sie jetzt auf den neuesten Stand bringen?" --- wu-ftpd-2.6.2.orig/debian/po/eu.po +++ wu-ftpd-2.6.2/debian/po/eu.po @@ -0,0 +1,274 @@ +# translation of eu.po to Euskara +# translation of templates-wu-ftpd-eu.po to +# translation of templates.po to +# +# 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. +# +# Piarres Beobide , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: eu\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2008-05-15 09:39+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "bakarka" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Wu-ftpd abiarazteko modua:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd orain bakarkako deabru bezala abiarazi daiteke inetd bidez gain. " +"Honek wu-ftpd -ren konexio berrien erantzuna askoz azkarragoa izatea lortzen " +"du bereiziki lan-zama handia dagoenean." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "${target} kopiatzen ${ftpusers} fitxategi arrunt bat bihurtzeko." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Zure ${ftpusers} fitxategia momentu honetan esteka sinboliko bat da. PAM " +"paketearen muga berriak direla eta hau ez da gehiago onartzen." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "${ftphome}-eko zaharkituriko bitarrak eguneratu?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"${ftphome}-ko zure bitar eta liburutegiak zaharkiturik daude. Honek zure FTP " +"zerbitzu anonimoa apur dezake." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Sarrera anonimoak onartu nahi al duzu?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"FTP anonimoak erabiltzaileak zerbitzarian \"anonymous\" erabiltzailea eta " +"pasahitza bezala beraien ePosta helbide erabiltzen sarrera gaitzen du. " +"Normalean jendeari ftp publikoetara sarrera emateko." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Hau onartu ezkero 'ftp' izeneko erabiltzaile bat eta etxe direktorio bat " +"(zein FTP anonimoaren sarrera erroa izango dena) sortuko dira. Etxe " +"direktorioan FTP anonimoak funtzionatzeko behar diren fitxategi bitar eta " +"liburutegiak ipiniko dira." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "FTP etxe direktorioaren kokapena:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Hau da FTP anonimo eremua sortuko den direktorioa baita \"ftp\" " +"erabiltzailearen etxea ere. Bide absolutua izan behar da (adibidez: '/' " +"batez hasi behar da)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Zuk adierazitako FTP etxe direktorioa ez da bide absolutu bat" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"FTP etxe direktorioa bide absolutu bat izan behar da. Beste hitz batzuetan " +"'/' batez hasi behar da, adibidez \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} badago dagoeneko, berau erabili?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Zuk ezarritako FTP etxe direktorioa (${homedir}) badago dagoeneko." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Erabiltzaileen igoerentzat direktorio bat sortu nahi al duzu?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Hau onartu ezkero ${homedir}/pub/incoming (FTP guneko /pub/incoming) izeneko " +"direktorio bat sortu eta gauzak igo ahal izateko leku ziur bat bezala " +"konfiguratua izango da." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Mesedez begiratu /etc/wu-ftpd/ftpaccess eta bere manual orrialdea /pub/" +"incoming-en segurtasunari buruz argibide gehiagorako." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so -ek eskuzko instalazioa behar du" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonimo FTP erabiltzaileak izenen ordez UIDa eta GIDa zenbakiak bakarrik " +"ikus ditzakete libnss_files.so liburutegia ez bait dago instalaturik." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Ez da instalatzen lehenespen bezala, zein bertsio instalatu behar den " +"jakiteko era erraz bat ez dagoenez." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Eskuz instalatu nahi izanez gero, berau ${homedir}/lib direktorioan root-en " +"jabetzapean egon behar da eta 444 (r--r--r--) baimenak izan behar ditu" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Ezabatu ${ftpusers} sarrera anonimoak?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Zure ${ftpusers} fitxategiak erabiltzaile anonimoak diren'ftp' eta/edo " +"'anonymous', erabiltzaileen erregistroak ditu." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Ftp anonimo sarrerak gaitzeko erregistro hauek ezabatu egin behar dira." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} ez dago, sortu?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Dagoeneko baduzu FTP anonimo kontu bat, baina FTP etxe direkotrioa" +"[${homedir}] ez da aurkitzen!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, bakarka" --- wu-ftpd-2.6.2.orig/debian/po/gl.po +++ wu-ftpd-2.6.2/debian/po/gl.po @@ -0,0 +1,262 @@ +# Galician translation of wu-ftpd's debconf templates +# This file is distributed under the same license as the wu-ftpd package. +# Jacobo Tarrio , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2008-05-16 21:17+0100\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "autónomo" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Modo de execución de wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd pode funcionar coma un servizo autónomo, no canto de facer que inetd " +"o execute. Isto significa que wu-ftpd pode respostar lixeiramente máis " +"rápido a unha nova conexión, especialmente baixo carga elevada." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "A copiar ${target} para facer ${ftpusers} un ficheiro normal." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"O ficheiro ${ftpusers} é unha ligazón simbólica. Debido a novas restricións " +"no paquete PAM, isto xa non se admite." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "¿Actualizar os binarios anticuados en ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Os binarios e bibliotecas de ${ftphome} están anticuados. Isto pode facer " +"que o servizo de FTP anónimo deixe de funcionar." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "¿Quere permitir o acceso a FTP anónimo?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"O FTP anónimo permite aos usuarios conectarse ao servidor co usuario " +"\"anonymous\" e o seu enderezo de email coma contrasinal. Isto adóitase " +"empregar para dar acceso a ficheiros públicos." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Se acepta esta opción hase crear un usuario chamado \"ftp\", xunto cun " +"directorio inicial (que ha ser a raíz da área de FTP anónimo). O directorio " +"inicial ha estar poboado cos binarios, bibliotecas e ficheiros de " +"configuración necesarios para que funcione o FTP anónimo." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Ubicación do directorio inicial de FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Este é o directorio no que a área de FTP anónimo se ha crear, e o directorio " +"inicial do usuario \"ftp\". Debe ser unha ruta absoluta (é dicir, debe " +"comezar por \"/\")." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "O directorio inicial de FTP que indicou non é unha ruta absoluta" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"O directorio inicial de FTP debe ser unha ruta absoluta. Noutras palabras, " +"debe comezar por \"/\"; por exemplo, \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} xa existe, ¿quere empregalo?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "O directorio inicial de FTP que indicou (${homedir}) xa existe." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "¿Quere crear un novo directorio para que os usuarios suban ficheiros?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Se acepta esta opción hase crear un directorio chamado ${homedir}/pub/" +"incoming (/pub/incoming no sitio FTP), e hase configurar para ser un lugar " +"seguro no que subir ficheiros." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Consulte /etc/wu-ftpd/ftpaccess e a súa páxina de manual para máis " +"información sobre como facer /pub/incoming máis seguro." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so precisa de instalación manual" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Os usuarios de FTP anónimo só han ver números UID e GID, no canto de nomes, " +"xa que non se instalou a biblioteca libnss_files.so." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Non está instalada por defecto, xa que non hai unha maneira simple de " +"averiguar que versión hai que instalar." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Se quere instalala manualmente, debería ubicala en ${homedir}/lib, " +"propiedade de \"root\", e con permisos 444 (r--r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "¿Eliminar as entradas anónimas de ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"O ficheiro ${ftpusers} contén entradas para \"ftp\" e/ou \"anonymous\", os " +"nomes dos usuarios de ftp anónimo." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Para activar o acceso ao ftp anónimo, é preciso eliminar esas entradas." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} non existe, ¿quere crealo?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Xa ten unha conta de FTP anónimo, pero o directorio inicial de FTP " +"[${homedir}] non existe." + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, autónomo" --- wu-ftpd-2.6.2.orig/debian/po/POTFILES.in +++ wu-ftpd-2.6.2/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates --- wu-ftpd-2.6.2.orig/debian/po/pt.po +++ wu-ftpd-2.6.2/debian/po/pt.po @@ -0,0 +1,272 @@ +# Portuguese translation of wu-ftpd's debconf messages. +# 2005, Rui Branco > +# 2005-10-22 - Rui Branco +# 2006-04-27 - Rui Branco -1f +# 2007-07-21 - Rui Branco -6f1u +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd 2.6.2-22\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-21 13:54+0100\n" +"Last-Translator: Rui Branco \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "dedicado" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Modo de correr o wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"O wu-ftpd pode agora correr como um 'daemon' dedicado em vez de ser chamado " +"pelo inetd. Significa que o wu-ftpd pode responder ligeiramente mais rápido " +"a uma nova ligação, especialmente sob carga pesada." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "A copiar ${target} para criar ${ftpusers} como um ficheiro regular." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"O seu ficheiro ${ftpusers} é de momento um link simbólico. Devido a novas " +"restrições no pacote PAM, isto já não é permitido." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Actualizar binários desactualizados em ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Os seus ficheiros binários e bibliotecas em ${ftphome} estão " +"desactualizados. Este facto pode comprometer os seus serviços FTP anónimos." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Quer permitir o acesso anónimo ao ftp?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"O FTP anónimo permite o acesso ao servidor por utilizadores que utilizem o " +"nome de utilizador \"anonymous\" e como palavra-chave o seu endereço de e-" +"mail. Isto normalmente é facultado para permitir o acesso a ficheiros " +"públicos." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Se aceitar, um utilizador chamado 'ftp' será criado, tal como um directório " +"'home' (que será a raiz para a área anónima de FTP). O directório 'home' " +"será preenchido com ficheiros binários, bibliotecas e ficheiros de " +"configuração necessários ao funcionamento do FTP." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Localização do directório 'home' do FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Este é o directório onde a área de utilizadores anónimos do FTP será criada, " +"tal como o directório 'home' para o utilizador \"ftp\". Tem que ser indicado " +"em caminho absoluto (ie: tem que começar por '/')." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "O directório 'home' FTP que especificou não é um caminho absoluto" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"O directório 'home' FTP tem que ser um caminho absoluto. Por outras palavras " +"terá que começar com uma '/', eg: \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "O directório ${homedir} já existe, quer usá-lo?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "O directório 'home' FTP que especificou (${homedir}) já existe." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Pretende criar um directório para 'uploads' de utilizadores?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Se aceitar, um directório chamado ${homedir}/pub/incoming (/pub/incoming no " +"site FTP) será criado e configurado como um local seguro para receber " +"ficheiros." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Veja em /etc/wu-ftpd/ftpaccess e na sua página de manual para mais " +"informação sobre como tornar o directório /pub/incoming mais seguro." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "O ficheiro libnss_files.so necessita de instalação manual" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Os utilizadores FTP anónimos apenas verão os números UID e GID em vez dos " +"nomes, isto porque a 'library' libnss_files.so ainda não foi criada." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Não é instalada por omissão visto não existir um modo fácil de descobrir a " +"versão necessária para instalar." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Se a quiser instalar manualmente deverá colocá-la em ${homedir}/lib cujo " +"dono é o 'root' e com permissões 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Remover as entradas anónimas de ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"O seu ficheiro ${ftpusers} contém entradas para 'ftp' e/ou 'anonymous', os " +"nomes de utilizadores ftp anónimos." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Para permitir o acesso anónimo ao ftp estas entradas têm que ser removidas." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "O directório ${homedir} não existe, deseja criá-lo?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Já possui uma conta de FTP anónimo, mas o directório 'home' FTP [${homedir}] " +"não existe!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, dedicado" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "" +#~ "Deseja correr o wu-ftpd como um 'daemon' dedicado ou a partir do inetd?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Quer actualizá-los agora?" --- wu-ftpd-2.6.2.orig/debian/po/ru.po +++ wu-ftpd-2.6.2/debian/po/ru.po @@ -0,0 +1,265 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd new\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2008-05-19 21:25+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\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 +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "самостоятельно" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Метод работы wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd теперь может работать как самостоятельная служба, а не вызываться из " +"inetd. Это значит, что wu-ftpd может отвечать на запросы немного быстрее, " +"особенно при большой нагрузке." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Копируется ${target} для создания обычного файла ${ftpusers}." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Имеющийся файл ${ftpusers} является символической ссылкой. Из-за новых " +"ограничений пакета PAM, это теперь не разрешается." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Обновить устаревшие двоичные файлы в ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Имеющиеся двоичные файлы и библиотеки в ${ftphome} устарели. Это может " +"повредить анонимной службе FTP." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Разрешить анонимный ftp-доступ?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Анонимный FTP позволяет пользователям регистрироваться на сервере под именем " +"\"anonymous\" и с адресом электронной почты в качестве пароля. Это, обычно, " +"используется для предоставления доступа к общим файлам." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Если вы ответите утвердительно, то будет создана учётная запись 'ftp' с " +"своим домашним каталогом (который будет корневым каталогом анонимной области " +"FTP). В домашний каталог будут скопированы двоичные файлы, библиотеки и " +"файлы настройки, необходимые для работы анонимного FTP." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Расположение домашнего каталога FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Это каталог, где будет создана анонимная область FTP, и который является " +"домашним каталогом пользователя \"ftp\". Должен указываться абсолютный путь " +"(то есть, он должен начинаться с '/')." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Домашний каталог FTP указан не как абсолютный путь" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Домашний каталог FTP должен указываться в виде абсолютного пути. Другими " +"словами, он должен начинаться с '/', например: \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} уже существует, использовать имеющийся?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Указанный домашний каталог FTP (${homedir}) уже существует." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Создать каталог для пользовательских закачек?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Если вы ответите утвердительно, то будет создан каталог ${homedir}/pub/" +"incoming (/pub/incoming на FTP-серверe), и настроено безопасное место для " +"закачиваемых файлов." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"О том, как сделать /pub/incoming более безопасным, написано в файле /etc/wu-" +"ftpd/ftpaccess и его справочной странице." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so требуется установить вручную" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Анонимные пользователи FTP будут видеть только числа UID и GID, а не имена, " +"так как не была установлена библиотека libnss_files.so." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"По умолчанию, она не устанавливается, так как нет простого способа выяснить, " +"какую версию нужно устанавливать." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Если вы захотите установить её вручную, то её нужно поместить в ${homedir}/" +"lib, установить в качестве владельца root и права 444 (r--r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Удалить анонимных пользователей из ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"В имеющемся файле ${ftpusers} содержатся записи для 'ftp' и/или 'anonymous'; " +"это учётные записи анонимных пользователей." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "Чтобы включить анонимный ftp-доступ, эти записи должны быть удалены." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} не существует, создать его?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"У вас уже есть учётная запись для анонимного FTP, но домашний каталог FTP " +"[${homedir}] не существует!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, самостоятельно" --- wu-ftpd-2.6.2.orig/debian/po/nl.po +++ wu-ftpd-2.6.2/debian/po/nl.po @@ -0,0 +1,288 @@ +# +# 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. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd 2.6.2-15\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2003-09-26 02:51+0100\n" +"Last-Translator: Tim Vandermeersch \n" +"Language-Team: dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "zelfstandig" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "" + +#. Type: select +#. Description +#: ../templates:1002 +#, fuzzy +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd kan nu als zelfstandige daemon draaien in plaats van aangeroepen te " +"worden uit inetd. Dit kan als gevolg hebben dat wu-ftpd sneller reageert op " +"een nieuwe verbinding, zeker bij een hoge belasting." + +#. Type: text +#. Description +#: ../templates:2001 +#, fuzzy +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "${target} aan het kopiren om ${ftpusers} een normaal bestand te maken" + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Uw ${ftpusers} bestand is momenteel een symbolische koppeling. Omwille van " +"nieuwe beperkingen in het PAM pakket is dit niet langer toegestaan." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Verouderde programmabestanden in ${ftphome} bijwerken?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Uw programma en bibliotheekbetstanden in ${ftphome} zijn verouderd. Dit kan " +"uw anonieme FTP stuk maken." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Wilt u anonieme ftp-toegang toelaten?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonieme FTP laat gebruikers toe in te loggen op de server met de " +"gebruikersnaam \"anonymous\" en hun e-mail-adres als wachtwoord. Dit wordt " +"meestal gebruikt om mensen toegang te geven tot publieke bestanden." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Als u hier aanvaardt, zal een gebruiker 'ftp' worden aangemaakt, samen met " +"een thuismap (die de hoofdmap van het anonieme FTP gedeelte zal bevinden). " +"De thuismap zal gevuld worden met programma-, bibliotheek- en " +"configuratiebestanden nodig om anonieme FTP te laten werken." + +#. Type: string +#. Description +#: ../templates:5001 +#, fuzzy +msgid "Location of the FTP home directory:" +msgstr "Wat is de lokatie van de FTP-thuismap" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Dit is de map waar de anonieme FTP omgeving zal worden gemaakt, en de " +"thuismap voor de \"ftp\" gebruiker. Het moet een absoluut pad zijn (het moet " +"beginnen met '/')" + +#. Type: note +#. Description +#: ../templates:6001 +#, fuzzy +msgid "The FTP home directory you specified is not an absolute path" +msgstr "De FTP-thuismap die u opgaf is geen absoluut pad." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"De FTP-thuismap moet een absoluut pad zijn. Met andere woorden, het moet " +"beginnen met '/', voorbeeld: \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} bestaat al, hergebruiken?" + +#. Type: boolean +#. Description +#: ../templates:7001 +#, fuzzy +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" +"De FTP-thuismap die u gekozen heeft (${homedir}) bestaat al. Wilt u de " +"bestaande map gebruiken?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Wilt u een map aanmaken voor gebruiker-uploads?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Als u hier aanvaardt, zal een map genaamd ${homedir}/pub/incoming (/pub/" +"incoming op de FTP-site) aangemaakt worden en geconfigureerd worden als een " +"veilige plaats om bestanden te uploaden." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Zie /etc/wu-ftpd/ftpaccess en zijn handleidingspagina voor meer informatie " +"over hoe /pub/incoming veiliger te maken." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so heeft handmatige installatie nodig" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonieme FTP-gebruikers zullen enkel UID en GID getallen zien, in de plaats " +"van namen omdat libnss_files.so niet genstalleerd is." + +#. Type: text +#. Description +#: ../templates:9001 +#, fuzzy +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Het wordt niet standaard genstalleerd, omdat er geen makkelijke manier is " +"om te weten welke versie we moeten installeren" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Als u het handmatig wil installeren, plaats het dan in ${homedir}/lib met " +"root als eigenaar, en met permissies 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Anonieme items in ${ftpusers} verwijderen?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Uw ${ftpusers} bestand bevat items voor 'ftp' en/of 'anonymous', de anonieme " +"ftp-gebruikers namen." + +#. Type: boolean +#. Description +#: ../templates:10001 +#, fuzzy +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Om anonieme ftp toe te laten, moeten deze items verwijderd worden. Wilt u " +"dit nu doen?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} bestaat niet, aanmaken?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"U heeft al een anonieme FTP account, maar de FTP thuis map [${homedir}] " +"bestaat niet!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, zelfstandig" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "Wilt u wu-ftpd als zelfstandige daemon draaien of vanuit inetd?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Wilt u ze nu bijwerken? " --- wu-ftpd-2.6.2.orig/debian/po/fr.po +++ wu-ftpd-2.6.2/debian/po/fr.po @@ -0,0 +1,284 @@ +# +# 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: wu-ftpd_2.6.2-10\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-25 00:03+0200\n" +"Last-Translator: Simon Paillard \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "autonome" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Mthode de lancement de wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"Wu-ftpd peut tre lanc en tant que dmon autonome plutt qu'tre appel par " +"inetd. Cela peut lgrement amliorer le temps de rponse aux nouvelles " +"connexions, surtout si le serveur est fortement charg." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Copie de ${target} afin que ${ftpusers} soit un fichier rgulier" + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Actuellement, le fichier ${ftpusers} est un lien symbolique. En raison de " +"nouvelles restrictions dans le paquet PAM, cette configuration ne peut plus " +"fonctionner correctement." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Voulez-vous mettre jour les excutables prims dans ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Les excutables et bibliothques dans ${ftphome} sont prims. Cela peut " +"perturber les services FTP anonymes." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Souhaitez-vous autoriser l'accs FTP anonyme?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Le FTP anonyme permet aux utilisateurs de s'identifier sur le serveur en " +"utilisant l'identifiant de connexion anonymous et leur adresse " +"lectronique comme mot de passe. Cette mthode permet d'offrir un accs " +"public au le contenu du serveur." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Si vous choisissez d'activer les connexions anonymes, un utilisateur nomm " +"ftp sera cr, en mme temps qu'un rpertoire racine (qui sera la racine " +"de l'accs anonyme). Les excutables, les bibliothques et les fichiers de " +"configuration ncessaires au bon fonctionnement du FTP anonyme seront placs " +"dans ce rpertoire racine." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Emplacement du rpertoire racine FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Veuillez indiquer le rpertoire o sera cr l'espace affect au FTP anonyme " +"ainsi que le rpertoire racine de l'utilisateur ftp. Ce chemin doit tre " +"absolu (c.--d. qu'il doit commencer par un caractre /)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Chemin absolu obligatoire pour le rpertoire racine FTP" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Le rpertoire racine FTP doit tre un chemin absolu. En d'autres termes, il " +"doit commencer par un caractre /, par exemple /home/ftp." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "Voulez-vous utiliser ${homedir} mme s'il existe dj?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" +"Le rpertoire racine FTP que vous avez indiqu (${homedir}) existe dj." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Souhaitez-vous crer un rpertoire pour les envois des utilisateurs?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Si vous choisissez cette option, un rpertoire nomm ${homedir}/pub/incoming " +"(/pub/incoming sur le site FTP) sera cr et configur pour servir " +"d'emplacement scuris pour l'envoi de fichiers vers le serveur." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Veuillez consulter /etc/wu-ftpd/ftpaccess et sa page de manuel pour plus " +"d'informations sur la faon de rendre /pub/incoming plus sr." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "Fichier libnss_files.so installer manuellement" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Comme la bibliothque libnss_files.so n'a pas t installe, les " +"utilisateurs anonymes du serveur FTP ne verront que les identifiants " +"numriques pour les utilisateurs et les groupes, au lieu des noms." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Cette bibliothque n'est pas installe par dfaut car il n'existe aucune " +"mthode simple pour dterminer la version qu'il faut installer." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Si vous souhaitez l'installer vous-mme, elle devrait tre place dans " +"${homedir}/lib, dont le propritaire est le superutilisateur, et les " +"permissions positionnes 444 (r--r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Voulez-vous supprimer les entres anonymes de ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Le fichier ${ftpusers} contient des entres pour ftp et/ou anonymous, " +"les noms d'utilisateurs FTP anonymes." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "Pour activer l'accs FTP anonyme, ces entres doivent tre supprimes." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "Souhaitez-vous crer le rpertoire ${homedir}?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Un compte FTP anonyme existe dj mais le rpertoire racine FTP ${homedir} " +"n'existe pas." + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, autonome" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "Mthode de lancement de wu-ftpd:" + +#~ msgid "Do you want them updated now?" +#~ msgstr "" +#~ "Veuillez indiquer si vous souhaitez qu'ils soient mis jour maintenant." + +#~ msgid "/home/ftp" +#~ msgstr "/home/ftp" --- wu-ftpd-2.6.2.orig/debian/po/es.po +++ wu-ftpd-2.6.2/debian/po/es.po @@ -0,0 +1,288 @@ +# wu-ftpd translation to spanish +# Copyright (C) 2004 Software in the Public Interest +# This file is distributed under the same license as the wu-ftpd package. +# +# Changes: +# - Initial translation +# Carlos Galisteo de Cabo , 2007 +# +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentacin de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traduccin al espaol, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traduccin de Debian al espaol +# http://www.debian.org/intl/spanish/coordinacion +# especialmente las notas de traduccin en +# http://www.debian.org/intl/spanish/notas +# +# - La gua de traduccin de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd_2.6.2-25\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2007-07-24 13:26+0200\n" +"Last-Translator: Carlos Galisteo \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "autnomo" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Modo de ejecucin de wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"Ahora wu-ftpd puede ejecutarse como un servicio autnomo en lugar de " +"invocarlo desde inetd. sto significa que wu-ftpd puede responder " +"ligeramente ms rpido a una conexin nueva, especialmente cuando est " +"sometido a mucha carga." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Copiando ${target} para hacer ${ftpusers} un fichero regular." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Su archivo ${ftpusers} ahora mismo es un enlace simblico. sto ya no est " +"permitido debido a nuevas restricciones en el paquete PAM." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Desea actualizar binarios obsoletos en ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Sus binarios y bibliotecas en ${ftphome} estn obsoletos. sto puede " +"interrumpir sus servicios de FTP annimo." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Quiere permitir el acceso annimo por ftp?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"El acceso annimo por FTP permite a los usuarios ingresar en el sistema " +"usando el nombre de usuario anonymous y su direccin de correo electrnico " +"como contrasea. sto se usa normalmente para permitir el acceso a ficheros " +"pblicos." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Si acepta aqu, se crear un usuario llamado ftp, junto con un directorio " +"base (que ser la raz del rea de FTP annima). Se copiarn al directorio " +"base los binarios, bibliotecas, y ficheros de configuracin necesarios para " +"que funcione el FTP annimo." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Ubicacin del directorio raz de FTP:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"ste es el directorio donde se crear el rea FTP annima, y el directorio " +"base para el usuario ftp. Debe ser una ruta absoluta (debe empezar con /)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "El directorio raz especificado no es una ruta absoluta" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"El directorio base debe ser una ruta absoluta. En otras palabras, debe " +"empezar con '/', ej. /home/ftp." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir}, ya existe, quiere usarlo?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "El directorio raz que ha especificado (${homedir}) ya existe. " + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "" +"Quiere crear un directorio al que los usuarios puedan enviar ficheros?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Si acepta aqu, se crear un directorio llamado ${homedir}/pub/incoming (/" +"pub/incoming en el sitio FTP) y se configurar para que sea un lugar seguro " +"al que subir ficheros." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Por favor, consulte /etc/wu-ftpd/ftpaccess y su pgina de manual para ms " +"informacin sobre cmo hacer /pub/incoming ms seguro." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so necesita instalacin manual" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Los usuarios annimos de FTP vern nicamente nmeros de UID y GID, en lugar " +"de nombres de usuario, dado que la biblioteca libnss_files.so no est " +"instalada." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"No se instala por omisin, ya que no hay una forma sencilla de averiguar qu " +"versin se necesita instalar." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Si quiere instalarlo manualmente debera estar ubicado en ${homedir}/lib, " +"pertenecer a root y tener permisos 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Eliminar entradas annimas de ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Su fichero ${ftpusers} contiene entradas para ftp y/o anonymous, los " +"usuarios ftp annimos." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Para habilitar el acceso al ftp annimo se deben eliminar esas entradas." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} no existe, quiere crearlo?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Ya tiene una cuenta de FTP annimo, pero el directorio base de FTP " +"[${homedir}] no existe!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, autnomo" --- wu-ftpd-2.6.2.orig/debian/po/pl.po +++ wu-ftpd-2.6.2/debian/po/pl.po @@ -0,0 +1,295 @@ +# +# 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: debconf wu-ftpd \n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2004-04-11 10:07+0200\n" +"Last-Translator: Emil Nowak \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "samodzielny" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "" + +#. Type: select +#. Description +#: ../templates:1002 +#, fuzzy +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd moe by uruchamiane jako samodzielny demon zamiast by wywoywanym " +"przez inetd. Takie ustawienie powoduje e wu-ftpd bdzie mg odpowiedzie " +"szybciej na nowe poczenia przychodzce zwaszcza podczas duego obcienia." + +#. Type: text +#. Description +#: ../templates:2001 +#, fuzzy +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Kopiowanie ${target}, aby uczyni ${ftpusers} normalnym plikiem." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Dostpny w systemie plik ${ftpusers} jest teraz dowizaniem symbolicznym. Ze " +"wzgldu na nowe ograniczenia w pakiecie PAM, takie rozwizanie nie jest " +"dozwolone." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Aktualizowa przedawnione pliki binarne w ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Pliki binarne i biblioteki dostpne w ${ftphome} s przedawnione. " +"Pozostawienie ich w tym stanie moe spowodowa uszkodzenie anonimowego " +"dostpu do serwera FTP." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Wczy anonimowe ftp?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonimowe FTP umoliwia logowanie si do serwera za pomoc nazwy uytkownika " +"\"anonymous\" i adresu e-mail jako hasa. Ta opcja jest czsto " +"wykorzystywana, do udostpniania publicznych plikw." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Jeeli zaakceptujesz t opcj zostanie utworzony uytkownik o nazwie \"ftp\" " +"wraz ze swoim katalogiem domowym. Katalog ten bdzie gwnym dla anonimowego " +"FTP. Zostan tam rwnie skopiowane pliki binarne, biblioteki i konfiguracja " +"niezbdne do prawidowego dziaania anonimowego FTP." + +#. Type: string +#. Description +#: ../templates:5001 +#, fuzzy +msgid "Location of the FTP home directory:" +msgstr "Pooenie katalogu domowego dla FTP" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Jest to katalog, w ktrym zostanie utworzona przestrze dla anonimowego FTP, " +"oraz dla uytkownika \"ftp\". Naley poda ciek bezwzgldn (zaczynajc " +"si od /)." + +#. Type: note +#. Description +#: ../templates:6001 +#, fuzzy +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Podane pooenie katalogu domowego FTP nie jest ciek bezwzgldn." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"Katalog domowy FTP musi by okrelony za pomoc bezwzgldnej cieki " +"dostpu. Czyli musi si zaczyna od znaku '/', jak np. \"/home/ftp\"." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} ju istnieje, chcesz go uy?" + +#. Type: boolean +#. Description +#: ../templates:7001 +#, fuzzy +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "" +"Podany katalog domowy dla FTP (${homedir}) ju istnieje. Chcesz uy " +"istniejcego katalogu?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "" +"Czy chcesz utworzy katalog do ktrego uytkownicy bd mogli przysya nowe " +"pliki?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Jeeli zaakceptujesz t opcj, to zostanie utworzony katalog ${homedir}/pub/" +"incoming (/pub/incoming od strony serwera FTP) i skonfigurowany jako " +"bezpieczne miejsce dla przysyanych plikw." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Prosimy zapozna si z zawartoci /etc/wu-ftpd/ftpaccess i stron " +"podrcznika systemowego, aby uzyska szczegowe informacje o " +"zabezpieczeniach /pub/incoming." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so wymaga samodzielnej instalacji" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Uytkownicy anonimowego FTP bd widzieli jedynie identyfikatory numeryczne " +"uytkownikw (UID) i grup (GID). Wywietlanie nazw nie bdzie dziaao " +"poniewa biblioteka libnss_files.so nie zostaa zainstalowana." + +#. Type: text +#. Description +#: ../templates:9001 +#, fuzzy +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Nie moe by zainstalowana domylnie, poniewa trudno jest okreli jaka " +"konkretnie wersja jest potrzebna." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Jeeli chcesz wykona samodzieln instalacj, to plik naley umieci w " +"${homedir}/lib, waciciel pliku - uytkownik root i uprawnienia 444 (r--r--" +"r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Usun z ${ftpusers} pozycje dotyczce anonimowego dostpu?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Twj plik ${ftpusers} zawiera pozycje 'ftp' i/lub 'anonymous', dotyczce " +"uytkownikw majcych dostp do anonimowego ftp." + +#. Type: boolean +#. Description +#: ../templates:10001 +#, fuzzy +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "" +"Aby umoliwi dostp do anonimowego ftp, te pozycje musz by usunite. Czy " +"chcesz, aby zostao to zarobione teraz?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} nie istnieje, czy chcesz go utworzy?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Posiadasz ju konto anonimowego dostpu do FTP, ale katalog domowy dla FTP " +"[${homedir}] nie istnieje!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, samodzielny" + +#~ msgid "Do you want to run wu-ftpd as a standalone daemon or from inetd?" +#~ msgstr "" +#~ "Czy wu-ftpd ma by uruchomiony jako samodzielny demon czy za pomoc inetd?" + +#~ msgid "Do you want them updated now?" +#~ msgstr "Czy chesz je zaktualizowa teraz?" --- wu-ftpd-2.6.2.orig/debian/po/fi.po +++ wu-ftpd-2.6.2/debian/po/fi.po @@ -0,0 +1,259 @@ +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2008-05-16 17:59+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "itsenäinen" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Tapa, jolla wu-ftpd:tä ajetaan:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd voidaan ajaa itsenäisenä taustaohjelmana sen sijaan, että sitä " +"kutsuttaisiin inetdistä. Tämä tarkoittaa, että wu-ftpd voi vastata hieman " +"nopeammin uusiin yhteyksiin, erityisesti kuormitetulla palvelimella." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "" +"Tiedostosta ${ftpusers} tehdään tavallinen tiedosto kopioimalla ${target}." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Tiedosto ${ftpusers} on nykyään symbolinen linkki. Tämä ei ole nykyään enää " +"sallittua johtuen paketin pam uusista rajoituksista." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Päivitetäänkö hakemiston ${ftphome} vanhentuneet binääritiedostot?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Hakemistossa ${ftphome} olevat binääri- ja kirjastotiedostot ovat " +"vanhentuneet. Tämä saattaa rikkoa anonyymit FTP-palvelut." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Tulisiko anonyymit FTP-yhteydet sallia?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonyymi FTP sallii käyttäjien kirjautua palvelimelle tunnuksella " +"”anonymous” antamalla sähköpostiosoitteensa salasanana. Tätä käytetään " +"yleensä julkisten tiedostojen jakamiseen." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Jos tämä valitaan, luodaan käyttäjä ”ftp”, jolle luodaan kotihakemisto (jota " +"käytetään anonyymin FTP-alueen juurena). Kotihakemistoon siirretään " +"anonyymin FTP:n tarvitsemat binääri-, kirjasto- ja asetustiedostot." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "FTP-kotihakemiston sijainti:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Tämä hakemisto on käyttäjän ”ftp” kotihakemisto ja sinne luodaan anonyymi " +"FTP-alue. Tämä tulee olla absoluuttinen polku (eli sen tulee alkaa merkillä " +"”/”)." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "Annettu FTP-kotihakemisto ei ole absoluuttinen polku" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"FTP-kotihakemiston tulee olla absoluuttinen polku. Toisin sanoen, sen tulee " +"alkaa merkillä ”/”. Esimerkiksi ”/home/ftp”." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "Hakemisto ${homedir} on jo olemassa, käytetäänkö sitä?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "Annettu FTP-kotihakemisto (${homedir}) on jo olemassa." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Luodaanko hakemisto käyttäjien palvelimelle kopioimille tiedostoille?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Jos tämä valitaan, luodaan hakemisto ${homedir}/pub/incoming (FTP-sivustolla " +"hakemisto /pub/incoming), johon käyttäjät voivat turvallisesti kopioida " +"tiedostoja." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Lisätietoja hakemiston /pub/incoming tekemisestä vielä turvallisemmaksi " +"löytyy tiedostosta /etc/wu-ftpd/ftpaccess ja sen man-ohjesivulta." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so täytyy asentaa käsin" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonyymin FTP:n käyttäjät näkevät vain UID- ja GID-numerot nimien sijaan, " +"koska kirjastoa libnss_files.so ei ole asennettu." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Sitä ei asenneta oletuksena, koska ei ole helppoa tapaa selvittää mikä " +"versio tulisi asentaa." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Jos se halutaan asentaa käsin, se tulisi laittaa hakemistoon ${homedir}/" +"lib/, asettaa sen omistajaksi root ja oikeuksiksi 444 (r--r--r--)." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Poistetaanko anonyymit tietueet tiedostosta ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Tiedostossa ${ftpusers} on anonyymien ftp-käyttäjätunnusten ”ftp” ja " +"”anonymous” tietueita." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "Nämä tietueet tulisi poistaa anonyymin FTP:n käyttöönottamiseksi." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "Hakemistoa ${homedir} ei ole. Luodaanko se?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Anonyymi FTP-tunnus on jo olemassa, mutta FTP-kotihakemistoa (${homedir}) ei " +"ole olemassa!" + +#~ msgid "inetd, standalone" +#~ msgstr "inetd, itsenäinen" --- wu-ftpd-2.6.2.orig/debian/po/da.po +++ wu-ftpd-2.6.2/debian/po/da.po @@ -0,0 +1,259 @@ +# Danish translation wu-ftpd. +# Copyright (C) 2010 wu-ftpd & nedenstående oversættere. +# This file is distributed under the same license as the wu-ftpd package. +# Joe Hansen , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: wu-ftpd\n" +"Report-Msgid-Bugs-To: wu-ftpd@packages.debian.org\n" +"POT-Creation-Date: 2010-02-05 00:52+0000\n" +"PO-Revision-Date: 2010-09-05 23:51+0200\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "inetd" +msgstr "inetd" + +#. Type: select +#. Choices +#: ../templates:1001 +msgid "standalone" +msgstr "selvstændig" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "Mode of running wu-ftpd:" +msgstr "Tilstand på kørende wu-ftpd:" + +#. Type: select +#. Description +#: ../templates:1002 +msgid "" +"wu-ftpd can now be run as a standalone daemon instead of being called from " +"inetd. This means wu-ftpd can respond slightly faster to a new connection, " +"especially under high load." +msgstr "" +"wu-ftpd kan nu køres som en selvstændig dæmon i steden for at blive kaldt " +"fra inetd. Dette betyder at wu-ftpd kan svare lidt hurtigere på en ny " +"forbindelse, specielt under høj belastning." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "Copying ${target} to make ${ftpusers} a regular file." +msgstr "Kopierer ${target} for at gøre ${ftpusers} til en regulær fil." + +#. Type: text +#. Description +#: ../templates:2001 +msgid "" +"Your ${ftpusers} file is currently a symbolic link. Due to new restrictions " +"in the PAM package, this is no longer allowed." +msgstr "" +"Din fil ${ftpusers} er aktuelt en symbolsk henvisning. På grund af nye " +"begrænsninger i PAM-pakken, er dette ikke længere tilladt." + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "Update out-of-date binaries in ${ftphome}?" +msgstr "Opdater udløbne binære filer i ${ftphome}?" + +#. Type: boolean +#. Description +#: ../templates:3001 +msgid "" +"Your binaries and libraries in ${ftphome} are out-of-date. This could break " +"your anonymous FTP services." +msgstr "" +"Dine binære filer og biblioteker i ${ftphome} er udløbet. Dette kan nedbryde " +"dine anonyme FTP-tjenester." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "Do you want to allow anonymous ftp access?" +msgstr "Ønsker du at tillade anonym ftp-adgang?" + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"Anonymous FTP allows users to log in to the server using the username " +"\"anonymous\" and their e-mail address as a password. This is usually used " +"to give people access to public files." +msgstr "" +"Anonym FTP tillader brugere at logge ind til serveren med brug af " +"brugernavnet »anonym« og deres e-post-adresse som en adgangskode. Dette " +"bruges normalt til at give folk adgang til offentlige filer." + +#. Type: boolean +#. Description +#: ../templates:4001 +msgid "" +"If you accept here, a user called 'ftp' will be created, along with a home " +"directory (which will be the root of the anonymous FTP area). The home " +"directory will be populated with the binaries, libraries and configuration " +"files necessary for anonymous FTP to work." +msgstr "" +"Hvis du accepterer her, vil en bruger kaldet 'ftp' bliver oprettet, sammen " +"med en hjemmemappe (som vil være roden på det anonyme FTP-område). " +"Hjemmemappen vil indeholde de binære filer, biblioteker og " +"konfigurationsfiler, som er nødvendige for at anonym FTP virker." + +#. Type: string +#. Description +#: ../templates:5001 +msgid "Location of the FTP home directory:" +msgstr "Placering af FTP-hjemmemappen:" + +#. Type: string +#. Description +#: ../templates:5001 +msgid "" +"This is the directory where the anonymous FTP area will be created, and the " +"home directory for the \"ftp\" user. It must be an absolute path (ie: it " +"must begin with a '/')." +msgstr "" +"Dette er mappen hvor det anonyme FTP-område vil blive oprettet, og " +"hjemmemappen for brugeren »ftp«. Det skal være en absolut sti (det vil sige: " +"Den skal begynde med et '/')." + +#. Type: note +#. Description +#: ../templates:6001 +msgid "The FTP home directory you specified is not an absolute path" +msgstr "FTP-hjemmemappen, du angav, er ikke en absolut sti" + +#. Type: note +#. Description +#: ../templates:6001 +msgid "" +"The FTP home directory must be an absolute path. In other words, it must " +"start with a '/', eg: \"/home/ftp\"." +msgstr "" +"FTP-hjemmemappen skal være en absolut sti. Med andre ord, den skal starte " +"med et '/', f.eks.: »/home/ftp«." + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "${homedir} already exists, use it?" +msgstr "${homedir} findes allerede, brug den?" + +#. Type: boolean +#. Description +#: ../templates:7001 +msgid "The FTP home directory you specified (${homedir}) already exists." +msgstr "FTP-hjemmemappen du angav (${homedir}) findes allerede." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "Do you want to create a directory for user uploads?" +msgstr "Ønsker du at oprette en mappe for brugeroverførsler?" + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"If you accept here, a directory called ${homedir}/pub/incoming (/pub/" +"incoming on the FTP site) will be created and set up to be a secure place " +"for uploading files." +msgstr "" +"Hvis du accepterer her, vil en mappe kaldet ${homedir}/pub/incoming (/pub/" +"incoming på FTP-stedet) blive oprettet og opsætte et sikker sted at overføre " +"filer." + +#. Type: boolean +#. Description +#: ../templates:8001 +msgid "" +"Please look at /etc/wu-ftpd/ftpaccess and its manual page for more " +"information on making /pub/incoming more secure." +msgstr "" +"Kig venligst på /etc/wu-ftpd/ftpaccess og dens manualside for yderligere " +"information om hvordan /pub/incoming gøres mere sikker." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "libnss_files.so needs manual installation" +msgstr "libnss_files.so kræver manuel installation" + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"Anonymous FTP users will only see UID and GID numbers, instead of names, " +"because the libnss_files.so library hasn't been installed." +msgstr "" +"Anonyme FTP-brugere vil kun se UID- og GID-numre, i steden for navne, da " +"biblioteket libnss_files.so ikke er blevet installeret." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"It is not installed by default, since there is no easy way to find out what " +"version needs to be installed." +msgstr "" +"Den installeres ikke som standard, da der ikke er en nem måde, at undersøge " +"for hvilken version som kræves at være installeret." + +#. Type: text +#. Description +#: ../templates:9001 +msgid "" +"If you want to install it manually, it should be placed in ${homedir}/lib " +"owned by root, and with permissions of 444 (r--r--r--)" +msgstr "" +"Hvis du ønsker at installere den manuelt, skal den placeres i ${homedir}/lib " +"ejet af rod (root), og med rettigheder som 444 (r--r--r--)" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "Remove anonymous entries from ${ftpusers}?" +msgstr "Fjern anonyme poster fra ${ftpusers}?" + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "" +"Your ${ftpusers} file contains entries for 'ftp' and/or 'anonymous', the " +"anonymous ftp usernames." +msgstr "" +"Din fil ${ftpusers} indeholder poster for 'ftp' og/eller 'anonymous', de " +"anonyme ftp-brugernavne." + +#. Type: boolean +#. Description +#: ../templates:10001 +msgid "To enable access to anonymous ftp, these entries must be removed." +msgstr "For at aktivere adgang for anonym ftp, skal disse poster fjernes." + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "${homedir} doesn't exist, create it?" +msgstr "${homedir} findes ikke, opret den?" + +#. Type: boolean +#. Description +#: ../templates:11001 +msgid "" +"You already have an anonymous FTP account, but the FTP home directory " +"[${homedir}] does not exist!" +msgstr "" +"Du har allerede en anonym FTP-konto, men FTP-hjemmemappen [${homedir}] " +"Findes ikke!"