[Buildroot] [PATCH 1/2] package/iputils: move binaries to the location also used by Busybox

Thomas Petazzoni thomas.petazzoni at bootlin.com
Tue Jun 18 06:46:57 UTC 2019


Hello Petr,

Thanks for the feedback.

On Mon, 17 Jun 2019 22:24:03 +0200
Petr Vorel <petr.vorel at gmail.com> wrote:

> > iputils installs several programs that are also implemented as applets
> > in Busybox. Two of these (arping and tftpd) are installed by iputils
> > in /bin, while Busybox installs them in /usr/sbin, causing both to be  
>      ^
> I guess you mean /usr/bin

Gah, indeed. Unfortunately, the v2 of my patch has already been applied
by Arnout, and it has the same issue.

> Although I'm not keen on changing binary default location,
> this is simple straightforward solution. Alternative would be to disable busybox
> config CONFIG_ARPING (with support/kconfig/merge_config.sh), but that'd be too
> complicated. Thus ack

Adjusting the Busybox configuration is not the choice we have made to
solve this problem. Instead, the way we have chosen to solve the
conflict between Busybox applets and the "full-blown" variant of the
same tools is by:

 - Making "busybox" depend on all packages that provide the full-blown
   variants, so that those full-blown variants are built/installed
   before Busybox.

 - Ensure the Busybox installation process does not overwrite the
   full-blown variants when they are already installed.

This ensures that at the end of the build, if a full-blown variant is
installed, it takes precedence over the Busybox applet.

The drawback is while the Busybox symlink is not installed, the actual
code is present in the Busybox binary.

> Just small research about iputils install directories.
> busybox keeps mixed dirs /usr/{s,}bin and /{s,}bin (locations which were before
> usrmerge concept), ping is indeed in /bin [1].
> Debian chose also mixing /usr/{s,}bin and /{s,}bin [2]
> 
> But I'm concern about /{usr/,}/bin vs. /{usr/,}/sbin.
> iputils before starting to use  meson didn't have any default location.
> There was iputils.spec file [3] (now deleted), which suggested some locations,
> but was marked as for testing purposes only. It had different paths than busybox
> and Debian use. I guess I have to accept that there was no consensus and
> therefore are differences in paths across both upstreams and distros.

Due to the way we handle the Busybox applet vs. full-blown variant
conflict (detailed above), we really need the full-blown variant to be
installed at the same location as the corresponding Busybox applet.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list