[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: