Since the switch from "build" to "configure", the ftpwho patch for the "ps" command no longer works for all Red Hat versions, but only for pre-6.0 versions: Red Hat 5.2: # strings /usr/bin/ftpwho |fgrep /ps /bin/ps -f -p %d Red Hat 6.x: # strings /usr/bin/ftpwho |fgrep /ps /bin/ps %d It would appear that SVR4 is not defined by "configure" for 6.x systems, so the change made by wu-ftpd-2.6.0-ftpwho.patch has no effect. The patch should be revised to include the same change in the else clause. Furthermore, in the switch to "configure", the "--enable-ls" option was used. According to Lundberg et al, on the wu-ftpd.edu list, the internal ls support is still very buggy, and should not be used.
Created attachment 803 [details] proposed ftpwho patch that won't break
I take back what I said about ftpwho working for pre-6.0 versions. The "/bin/ps -f -p" command doesn't work in pre-6.0 versions, as was previously pointed out in bug #4718. That's why the Red Hat ftpwho patch defined that funny macro, which would sometimes get ignored on updates (as appears to have happened again). Hence, I propose the alternative patch, which I attached above. It uses a consistent set of "ps" options, which seem to work and give reasonable output, for all supported Red Hat Linux releases.
This has been fixed in mainstream wu-ftpd 2.6.1 (Checked pinstripe 2.6.1-5).
No it hasn't. The "mainstream" wu-ftpd 2.6.1 incorporated the faulty ftpwho patch into the code, but as I've already pointed out above, this doesn't work correctly anymore. Furthermore, its reliance on the bogus LINUX_BUT_NOT_REDHAT_6_0 macro is very problematic, (also) as pointed out above. What's more, the new 2.6.1-5 package in the pinstripe beta still uses the "configure" command to build, and uses the "--enable-ls" option on it, both of which are being actively discouraged by the wu-ftpd developers. (See also bug # 13492.) So, as far as I can tell, NOTHING out of what I described above has been fixed.
Actually I'm one of the maintainers of wu-ftpd. ./configure is the preferred way of building it on linux and FreeBSD, it's being discouraged as experimental for other platforms only, primarily because we don't have access to machines running other OSes, so we can't see for sure what needs to be checked for and even if we have come up with a check, we can't verify whether or not it works. On Linux, ./configure is the way to go because it can detect the differences between different versions of glibc. Using ./build lnx on glibc 2.1 or 2.2 is stupid because it leads to duplicated code (stuff from support/ being built despite the fact that the new glibc versions have the functionality). The internal ls implementation works well here, but you're probably right about the fact that we shouldn't use an experimental feature; I've disabled it in 2.6.1-6. ftpwho works for me... [root@ftp root]# ftpwho Service class all: 32560 ? SN 0:00 ftpd: localhost.localdomain: bero: IDLE - 1 users (no maximum)