> I compiled some packages for the hurd, here are the results: Great! Thanks for the help! Are your packages available to get on the net?
> cnews_cr.g7-12: > --------------- > was including non-existent <sys/mount.h>. Also had to include > <sys/statfs.h>, so that "struct statfs" could be found during > compilation. I have made a diff, which I will send upstream if there are > no objections (I am new to porting anything, should I send this to the > debian maintainer of the packet, or the upstream maintainer ?). I could > not install it anyway, since it depends on cron. (see below) I think there are other systems that have <sys/statfs.h> and that do not have <sys/mount.h>. If cnews uses autoconf or something like it, perhaps it can check for those headers automatically. > Misses the definition of MAXPATHLEN in <sys/param.h>. I have installed > libc0.2-dev 2.1.1-12. Is there any packet I have missed to install or is > there no such definition ? After defining MAXPATHLEN myself just for > testing-purposes it compiled well... The best thing is for (upstream) packages to change to using the POSIX.1 interface for this. That, is use PATH_MAX if defined, else use sysconf(_SC_PATH_MAX), and if that returns -1, then handle having no determinable limit on file name sizes; that is what POSIX.1 requires an application to do. (On the Hurd, PATH_MAX is not defined and sysconf(_SC_PATH_MAX) does indeed return -1, because there is in fact no determinable limit.) If it is difficult to make those changes, or maintainers don't want to, then it is a reasonable hack to just pick some limit instead of actually coping with arbitrary-sized file names. (There are many packages out there that do this if neither PATH_MAX nor MAXPATHLEN is defined, rather than using sysconf and handling a -1 return from it as POSIX.1 specifies.) This is of course not ideal, since it makes that program have an arbitrary limit on the length of file names it can use, when there is no such limit in the rest of the system. On the other hand, since most (if not all) other systems do have an arbitrarily limit (most often 1024 bytes), this does not constrain using the program with any file names that you could use on Linux or other systems. Because <sys/param.h> exists for compatibility with old code, and old code had a reasonable expectation of <sys/param.h> defining MAXPATHLEN, it might make the most sense to have the Hurd's <sys/param.h> just define it with some arbitrary limit. POSIX-compliant programs will use PATH_MAX and/or sysconf instead anyway. We will have to think about this.

