Bug 4802

Summary: Busybox on target upgrade fails if upgrading from 'one-binary' version to 'two-binary' version
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Chen Qi <Qi.Chen>
Component: coreAssignee: Chen Qi <Qi.Chen>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Undecided CC: liezhi.yang, mark.hatle, Martin.Jansa, meta.mr.watcher, meta.watcher, sgw, yi.zhao
Version: 1.4   
Target Milestone: 1.5 M2   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Chen Qi 2013-07-02 10:48:23 UTC
First of all, thanks Martin for pointing it out.

We've made busybox default to two binaries, busybox.nosuid and busybox.suid.
We also add a variable 'BUSYBOX_SPLIT_SUID‘ to control its behavior.
Now that we can have a busybox version with only one binary (/bin/busybox) or we can have a version with two binaries (/bin/busybox.nosuid and /bin/busybox.suid), the on-device upgrade issue starts to become a problem.

We have to support four upgrade paths:
A: busybox[split]
B: busybox[no split]

A --(upgrade)--> B
B --(upgrade)--> A
A --(upgrade)--> A
B --(upgrade)--> B

This problem can be more complex if we take into consideration the upgrade issue of other related packages, for example, busybox-syslog.

The goal here is to make any upgrade path above successful.

//Chen Qi
Comment 1 Chen Qi 2013-07-09 03:03:31 UTC
merged into poky/master: cb534214286cb59f1ac377b6f1643c923c1289b1

http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=4e571e97750f3ac6a62cd0d2d10c08be98230630