All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] procps-ng: remove the remaining busybox symlinks
Date: Tue, 12 Jan 2016 21:12:20 +0100	[thread overview]
Message-ID: <20160112211220.2b7c24bb@free-electrons.com> (raw)
In-Reply-To: <1452608581-9742-1-git-send-email-Vincent.Riera@imgtec.com>

Vicente,

On Tue, 12 Jan 2016 14:23:01 +0000, Vicente Olivert Riera wrote:
> procps-ng is installed after busybox to ensure that its tools overwrite
> the ones installed by busybox. However, some busybox symlinks for tools
> which are now provided by procps-ng remain in /bin and /sbin pointing to
> the busybox binary.
> 
> This shouldn't be a problem since the /usr/bin directory is listed
> before /bin in the $PATH variable. However there could be some scripts
> out there hardcoding the path of those tools calling them by "/bin/ps"
> for instance.
> 
> So in order to avoid potential problems we just remove all busybox
> symlinks for the tools which are now provided by procps-ng.
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
>  package/procps-ng/procps-ng.mk | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/package/procps-ng/procps-ng.mk b/package/procps-ng/procps-ng.mk
> index 07e98b9..784977d 100644
> --- a/package/procps-ng/procps-ng.mk
> +++ b/package/procps-ng/procps-ng.mk
> @@ -17,8 +17,23 @@ PROCPS_NG_GETTEXTIZE = YES
>  
>  # If both procps-ng and busybox are selected, make certain procps-ng
>  # wins the fight over who gets to have their utils actually installed.
> +# Also remove the remaining busybox symlinks for tools which are now
> +# provided by procps-ng.
>  ifeq ($(BR2_PACKAGE_BUSYBOX),y)
>  PROCPS_NG_DEPENDENCIES += busybox
> +
> +define PROCPS_NG_REMOVE_BUSYBOX_COUNTERPARTS
> +	for i in free kill pgrep pidof pkill pmap ps pwdx slabtop tload top uptime vmstat w watch; do \
> +		if [ "$$(readlink $(TARGET_DIR)/bin/$$i)" == "busybox" ]; then \
> +			rm $(TARGET_DIR)/bin/$$i; \
> +		fi; \
> +	done
> +
> +	if [ "$$(readlink $(TARGET_DIR)/sbin/sysctl)" == "../bin/busybox" ]; then \
> +		rm $(TARGET_DIR)/sbin/sysctl; \
> +	fi
> +endef
> +PROCPS_NG_POST_INSTALL_TARGET_HOOKS += PROCPS_NG_REMOVE_BUSYBOX_COUNTERPARTS
>  endif

I don't think we're doing it this way for any other package. In
general, we either:

 * Arrange for the package to install its tools at the same location as
   Busybox installs them.

 * Or add a post-install hook to move the binaries installed by the
   package to where Busybox installs them.

Peter, Yann ?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2016-01-12 20:12 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-12 14:23 [Buildroot] [PATCH] procps-ng: remove the remaining busybox symlinks Vicente Olivert Riera
2016-01-12 20:12 ` Thomas Petazzoni [this message]
2016-01-12 20:20   ` Yann E. MORIN
2016-01-12 20:42     ` Peter Korsgaard
2016-01-13 15:26       ` Vicente Olivert Riera
2016-01-13 15:33         ` Thomas Petazzoni
2016-01-13 15:42           ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160112211220.2b7c24bb@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.