To make sure Bitcoin Core can be built with BusyBox, see #16927 (comment)
ci: Use busybox utils for one build #17011
pull MarcoFalke wants to merge 1 commits into bitcoin:master from MarcoFalke:1909-ciBusyBox changing 3 files +18 −4-
MarcoFalke commented at 11:21 AM on October 1, 2019: member
- fanquake added the label Tests on Oct 1, 2019
-
laanwj commented at 11:41 AM on October 1, 2019: member
Concept ACK
- MarcoFalke force-pushed on Oct 1, 2019
-
practicalswift commented at 11:56 AM on October 1, 2019: contributor
Concept ACK
- MarcoFalke force-pushed on Oct 1, 2019
-
dongcarl commented at 3:12 PM on October 1, 2019: member
@MarcoFalke I'm guessing there's a reason why we don't wanna add another build?
-
MarcoFalke commented at 3:49 PM on October 1, 2019: member
Yeah, another build means the ci is taking longer. I think using BusyBox on one build that bootstraps from
./depends(with gui and wallet) is sufficient. -
in ci/test/04_install.sh:55 in fa1ae26623 outdated
53 | 54 | +if [ "$USE_BUSY_BOX" = "true" ]; then 55 | + echo "Setup to use BusyBox utils" 56 | + DOCKER_EXEC mkdir -p $BASE_SCRATCH_DIR/bins/ 57 | + # tar excluded for now because it requires passing in the exact archive type in ./depends (fixed in later BusyBox version) 58 | + # find excluded for now because it does not recognize the -delete option in ./depends (fixed in later BusyBox version)
fanquake commented at 5:55 AM on October 2, 2019:Support for
-deletewas added tofindin BusyBox1.6.0(2007). The following inside an Alpine container (BusyBox v1.30.1) seems to work ok:touch something.pyo something.pyc find -name "*.pyc" -delete && find -name "*.pyo" -deleteWhat error were you seeing?
laanwj commented at 12:12 PM on October 2, 2019:2007 oh my, please don't tell me anything that old is being used :fearful:
MarcoFalke commented at 2:04 PM on October 2, 2019:I have no idea what bionic is doing, but #17011 (comment)
in ci/test/04_install.sh:60 in fa1ae26623 outdated
57 | + # tar excluded for now because it requires passing in the exact archive type in ./depends (fixed in later BusyBox version) 58 | + # find excluded for now because it does not recognize the -delete option in ./depends (fixed in later BusyBox version) 59 | + # ar excluded for now because it does not recognize the -q option in ./depends (unknown if fixed) 60 | + # shellcheck disable=SC1010 61 | + DOCKER_EXEC for util in \$\(busybox --list \| grep -v "^ar$" \| grep -v "^tar$" \| grep -v "^find$"\)\; do ln -s \$\(command -v busybox\) $BASE_SCRATCH_DIR/bins/\$util\; done 62 | + DOCKER_EXEC patch --help
fanquake commented at 5:55 AM on October 2, 2019:Assume we are doing this to get the BusyBox version printed? I see
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2)
MarcoFalke commented at 2:02 PM on October 2, 2019:Yes, added comment in commit ddddd
fanquake commented at 5:56 AM on October 2, 2019: memberConcept ACK - am testing locally.
MarcoFalke force-pushed on Oct 2, 2019ci: Use busybox utils for one build ddddd8961bMarcoFalke force-pushed on Oct 2, 2019MarcoFalke commented at 2:04 PM on October 2, 2019: memberSee here: https://travis-ci.org/MarcoFalke/bitcoin-core/jobs/592530914#L4480
And:
busybox find --help BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) multi-call binary. Usage: find [-HL] [PATH]... [OPTIONS] [ACTIONS] Search for files and perform actions on them. First failed action stops processing of current file. Defaults: PATH is current directory, action is '-print' -L,-follow Follow symlinks -H ...on command line only -xdev Don't descend directories on other filesystems -maxdepth N Descend at most N levels. -maxdepth 0 applies actions to command line arguments only -mindepth N Don't act on first N levels -depth Act on directory *after* traversing it Actions: ( ACTIONS ) Group actions for -o / -a ! ACT Invert ACT's success/failure ACT1 [-a] ACT2 If ACT1 fails, stop, else do ACT2 ACT1 -o ACT2 If ACT1 succeeds, stop, else do ACT2 Note: -a has higher priority than -o -name PATTERN Match file name (w/o directory name) to PATTERN -iname PATTERN Case insensitive -name -path PATTERN Match path to PATTERN -ipath PATTERN Case insensitive -path -regex PATTERN Match path to regex PATTERN -type X File type is X (one of: f,d,l,b,c,...) -perm MASK At least one mask bit (+MASK), all bits (-MASK), or exactly MASK bits are set in file's mode -mtime DAYS mtime is greater than (+N), less than (-N), or exactly N days in the past -mmin MINS mtime is greater than (+N), less than (-N), or exactly N minutes in the past -newer FILE mtime is more recent than FILE's -inum N File has inode number N -user NAME/ID File is owned by given user -group NAME/ID File is owned by given group -size N[bck] File size is N (c:bytes,k:kbytes,b:512 bytes(def.)) +/-N: file size is bigger/smaller than N -links N Number of links is greater than (+N), less than (-N), or exactly N -prune If current file is directory, don't descend into it If none of the following actions is specified, -print is assumed -print Print file name -print0 Print file name, NUL terminated -exec CMD ARG ; Run CMD with all instances of {} replaced by file name. Fails if CMD exits with nonzero -exec CMD ARG + Run CMD with {} replaced by list of file namesMarcoFalke commented at 2:24 PM on October 2, 2019: memberre run ci
MarcoFalke closed this on Oct 2, 2019MarcoFalke reopened this on Oct 2, 2019emilengler commented at 10:55 PM on October 2, 2019: contributorConcep ACK, in general it is better to rely on BusyBox rather GNU because GNU has features which other unix systems might not have.
DrahtBot commented at 8:38 PM on October 3, 2019: member<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #17041 (ci: Run tests on arm by MarcoFalke)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
laanwj commented at 9:29 AM on October 8, 2019: memberConcep ACK, in general it is better to rely on BusyBox rather GNU because GNU has features which other unix systems might not have.
I guess it also reduces the number of packages that need to be built (are you using busybox utils in GUIX @dongcarl?).
Still, we want to run some builds with GNU utilities too, to make sure compatibility is not broken there.
ACK ddddd8961b6209cba1bcabad73916051a99f2025
laanwj referenced this in commit 34919e0033 on Oct 8, 2019laanwj merged this on Oct 8, 2019laanwj closed this on Oct 8, 2019MarcoFalke deleted the branch on Oct 8, 2019sidhujag referenced this in commit 9f8d364b59 on Oct 8, 2019emilengler commented at 3:30 PM on October 9, 2019: contributor@laanwj Sure thing but everything which works under busybox will work under GNU but not necessarily vice versa.
MarcoFalke commented at 4:06 PM on October 9, 2019: member@emilengler Is this documented somewhere?
emilengler commented at 2:34 PM on October 10, 2019: contributorkittywhiskers referenced this in commit 53fa402fe8 on Dec 13, 2021kittywhiskers referenced this in commit ad132d81c2 on Dec 13, 2021DrahtBot locked this on Dec 16, 2021
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 06:14 UTC
More mirrored repositories can be found on mirror.b10c.me