From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] busybox installation with --noclobber
Date: Thu, 03 Apr 2014 18:45:49 +0200 [thread overview]
Message-ID: <533D903D.6080906@mind.be> (raw)
In-Reply-To: <CANxTyt4JBk+nF2fWxxGvZOfGzYCuUAUaP7Y71fqXN+U89h4HZA@mail.gmail.com>
On 03/04/14 03:08, Danomi Manchego wrote:
> All,
>
> A tangential work flow issue came up while helping some co-workers
> recently. Basically, they have a busybox configuration that must be
> duplicating the "real" version of apps installed by other packages.
> When they rebuild and re-install busybox (say, after a "make
> busybox-menuconfig"), their rootfs becomes unusable, presumably
> because the re-installation of the busybox symlinks must be wiping out
> something important. To recover functionality, they have to either
> delete all of the .stamp_target_installed files to re-install
> everything, or else rebuild from scratch.
>
> As it turns out, the busybox install script has a --noclobber option,
> where symlinks will not be installed if something already exists at
> the destination (be it file or symlink). This makes the busybox
> re-install work for my peers without subsequent head ache. I provided
> a patch to them to force this option on. So I'm now considering if
> such a change should be considered applicable more generally.
>
> I was originally inclined against such a patch, to encourage the
> active trimming down of busybox to eliminate the redundancy (by not
> dulling the pain). But the reality is that identifying the duplicates
> sometimes is not so easy for my co-workers, so I fear that the project
> maintainers simply won't bother.
>
> There is also an argument that the --noclobber can be beneficial to
> the effort to trim down busybox. For example:
> 1. Build project from a clean state
> 2. Delete busybox from that target directory:
> rm -vf $(TARGET_DIR)/bin/busybox
> 3. Delete broken symlinks from target directory's bin, sbin, usr/bin, usr/sbin:
> find -L $(TARGET_DIR)/bin $(TARGET_DIR)/sbin
> $(TARGET_DIR)/usr/bin $(TARGET_DIR)/usr/sbin -type l -print -delete
> 4. Re-install busybox:
> make busybox-rebuild
> 5. During install, take note of which symlinks are reported as
> "blahblah already exists"
> 6. Remove the noted items from busybox configuration if appropriate
>
> Opinions? Would there be interest in such a patch?
It would be a good idea, I think. Currently, packages that provide the
same functionality as busybox have to depend on it to make sure that
busybox is built first, and this indeed makes busybox-rebuild impossible.
It would be much simpler to use the noclobber option.
Regards,
Arnout
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
prev parent reply other threads:[~2014-04-03 16:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-03 1:08 [Buildroot] busybox installation with --noclobber Danomi Manchego
2014-04-03 16:45 ` Arnout Vandecappelle [this message]
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=533D903D.6080906@mind.be \
--to=arnout@mind.be \
--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.