Re: [PATCH 2/2] make: install/uninstall tools symlinks to kmod

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

 



Hey Lucas,

On Fri, 2 Feb 2024 at 18:53, Lucas De Marchi <lucas.demarchi@xxxxxxxxx> wrote:
>
> On Fri, Jan 26, 2024 at 02:43:51PM +0000, Emil Velikov via B4 Relay wrote:
> >From: Emil Velikov <emil.velikov@xxxxxxxxxxxxx>
> >
> >Currently we create symlinks like modprobe (pointing to kmod), during
> >the normal `make` build. Although those were never installed.
> >
> >Add a few lines in the install-exec-hook, to ensure they're present at
> >`make install` time. Thus one can actually use those without additional
> >changes. As an added bonus, distributions can drop the similar hunk from
> >their packaging.
> >
> >Signed-off-by: Emil Velikov <emil.velikov@xxxxxxxxxxxxx>
> >---
> >Out of curiosity: are there any plans about releasing v32? I'm
> >interested in the recent /usr/lib/modules (module_directory) patches.
> >
> >Thanks o/
> >---
> > Makefile.am | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> >diff --git a/Makefile.am b/Makefile.am
> >index 4062d81..a22d1b1 100644
> >--- a/Makefile.am
> >+++ b/Makefile.am
> >@@ -111,9 +111,19 @@ install-exec-hook:
> >               ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libkmod.so && \
> >               mv $(DESTDIR)$(libdir)/libkmod.so.* $(DESTDIR)$(rootlibdir); \
> >       fi
> >+if BUILD_TOOLS
> >+      for tool in insmod lsmod rmmod depmod modprobe modinfo; do \
> >+              $(LN_S) $(bindir)/kmod $(DESTDIR)$(bindir)/$$tool; \
>
> I was about to apply this, but then noticed a problem: I think we should
> use a relative symlink here.
>
> $ DESTDIR=/tmp/inst make install
> $ ls -l /tmp/inst/usr/bin
> total 700
> lrwxrwxrwx 1 ldmartin ldmartin     13 Feb  2 12:44 depmod -> /usr/bin/kmod
> lrwxrwxrwx 1 ldmartin ldmartin     13 Feb  2 12:44 insmod -> /usr/bin/kmod
> -rwxr-xr-x 1 ldmartin ldmartin 715432 Feb  2 12:44 kmod
> lrwxrwxrwx 1 ldmartin ldmartin     13 Feb  2 12:44 lsmod -> /usr/bin/kmod
> lrwxrwxrwx 1 ldmartin ldmartin     13 Feb  2 12:44 modinfo -> /usr/bin/kmod
> lrwxrwxrwx 1 ldmartin ldmartin     13 Feb  2 12:44 modprobe -> /usr/bin/kmod
> lrwxrwxrwx 1 ldmartin ldmartin     13 Feb  2 12:44 rmmod -> /usr/bin/kmod
>
> should had been e.g. depmod -> ./kmod
>
> Simplest fix without resorting to calculating the shortest symlink is to
> assume: the symlinks should be in the same dir as kmod, just like if
> they were not symlinks.
>

I'm not sure I follow, can you elaborate what is the issue?

Are you trying to use/run files installed in DESTDIR directly? If so,
that won't work for a few reasons:
 - kmod does not link to the in-DESTDIR libkmod.so, admittedly one can
workaround it with LD_PRELOAD/LD_LIBRARY_PATH
 - kmod tries to open the depmod config files in the normal
non-DESTDIR locations

> diff --git a/Makefile.am b/Makefile.am
> index 39a46f4..6df2f60 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -113,7 +113,7 @@ install-exec-hook:
>          fi
>   if BUILD_TOOLS
>          for tool in insmod lsmod rmmod depmod modprobe modinfo; do \
> -               $(LN_S) $(bindir)/kmod $(DESTDIR)$(bindir)/$$tool; \
> +               $(LN_S) ./kmod $(DESTDIR)$(bindir)/$$tool; \
>          done
>   endif
>
> does that seem ok squashed on your patch?
>

I'm not a huge fan of using relative symlinks, especially if the tool
is run as root. In my experience that makes things harder to audit and
prevent accidental breakages.

As an example, my Arch box has the following:

 - /usr/bin/init -> ../lib/systemd/systemd
 - /usr/bin/ld.so -> ../lib/ld-linux-x86-64.so.2
Hmm should probably see if we can change these and how many things will break

 - /usr/bin/lirc-setup -> ../lib/python3.11/site-packages/lirc-setup/lirc-setup
Modern practises are to have a shim in /usr/bin/

 - /usr/bin/slapacl -> ../lib/slapd
 - /usr/bin/slapadd -> ../lib/slapd
 - moar slapd
Hmm what is openldap doing on this system again


In other words - I'd love it if we don't use relative symlinks if
there are other options.

Thanks,
Emil




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux