Bug 11816

Summary: Only selected coreutils binaries are installed
Product: buildroot Reporter: Pete Morici <pmorici>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: normal CC: buildroot
Priority: P5    
Version: 2019.02.2   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:

Description Pete Morici 2019-05-02 02:21:38 UTC
Selecting the coreutils package doesn't install all the core utils and there is no way to select which ones to install.

It looks like only the binaries listed in the variable, COREUTILS_BIN_PROGS are installed into the target.

This came up because I need the coreutils version of base64 since the busybox version doesn't have the -w flag and there doesn't appear to be any elegant way of including that w/o editing the coreutils .mk file.
Comment 1 Peter Korsgaard 2019-05-02 07:18:20 UTC
Can you be more specific? It works here for me:

make coreutils && ls -lah target/usr/bin/base64 
..
lrwxrwxrwx 1 peko peko 9 May  2 09:16 target/usr/bin/base64 -> coreutils

find target -name base64                                                                target/usr/bin/base64
Comment 2 Pete Morici 2019-05-03 07:55:52 UTC
Upon closer inspection it seems what is happening is that when both busybox base64 and coreutils are selected they get installed to different paths.  /bin is ahead of /usr/bin in PATH and so the busybox version takes precedent.  Adding base64 to COREUTILS_BIN_PROGS causes the coreutils version to be installed in /bin instead of /usr/bin.

output/target/usr/bin/base64 -> coreutils
output/target/bin/base64 -> busybox
Comment 3 Peter Korsgaard 2019-05-06 10:11:03 UTC
Ahh yes. In general, your best bet is to enable BR2_ROOTFS_MERGED_USR to get rid of this class of issues.

With that said, I have pushed a commit adding base64 to _BIN_PROGS. I will also cherry pick it for the next 2019.02.x update.