Bug#2350: genksyms is in the wrong place
Rob Leslie writes ("Bug#2350: genksyms is in the wrong place"):
...
> I reported this once too (Bug#2043) but the consensus seemed vague about
> whether this is really a bug. The 1.2.13 kernel Makefile explicitly calls
> /usr/bin/genksyms while the more recent 1.3.* kernels I've seen call
> /sbin/genksyms.
AFAICT there are few people who think that this is a bug in the Debian
package.
The filesystem standard is actually quite clear about this - if you
read it you find that you have to put genksyms in /usr/bin, because
(a) it isn't needed to recover, repair, mount &c the other filesystems
and because (b) non-root users may need it (you don't need to be root
to compile a kernel - perhaps someone asked you to compile a kernel
for them, or you're using someone else's bigger machine to compile a
kernel you'll take away).
> An argument could be made that the kernel Makefile should just call "genksyms"
> and let PATH find it, but:
Yes, this is what the kernel Makefile should do.
> - genksyms is not generally useful for anything but building kernels.
> - users do not typically build kernels, suggesting genksyms should
> reside in /sbin (or /usr/sbin). The man page is already in section 8.
There are plenty of section 8 programs in /usr/bin.
> - nothing forbids users from building kernels, and therefore the fact
> that the kernel Makefile calls genksyms with an explicit path can be
> considered a feature.
This doesn't appear to follow.
> This still leaves the 1.2.13/1.3.* kernel Makefile discrepancy, however.
>
> I see three possible solutions:
>
> 1. change the kernel Makefile and/or report this as a bug to the
> linux-kernel people. Resolve genksyms to either of /usr/bin or /sbin,
> moving its man page accordingly.
This is what should be done. genksyms belongs in /usr/bin.
> 2. create a symlink for genksyms to one or the other of /usr/bin and /sbin.
> This is what I have kludged on my system.
This might be plausible in the meantime, but in general we have come a
long way with making Linux good by refusing to perpetrate workarounds
for other subsystems' brain damage. We should get the brain damage
fixed.
> 3. move genksyms where newer kernels expect to find it (/sbin). If a
> stable kernel is released before Debian 1.1, there would be no reason
> to leave genksyms in /usr/bin.
See my paragraph above, about brain damage :-/.
Ian.
Reply to: