refactored/working bootstrap set

This commit is contained in:
Lance Vick 2024-02-07 13:51:11 -08:00
parent 1a68841d13
commit 6c167b4544
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
3 changed files with 251 additions and 303 deletions

View File

@ -1,12 +1,13 @@
FROM scratch as base
ARG CORES=1
ARG VERSION=87c6fcc38d3d65a5b02ca0cc0ed5fd21b56be02e
ARG VERSION=fc6eeb6bd75ea0d0025a79ea9fe45614bd60ba14
ARG SRC_SITE=https://codeload.github.com/lrvick/live-bootstrap/legacy.tar.gz
ARG SRC_HASH=fbe6b0a919dcbecaa7cabacdcb2c5c88c8ce456371b571a5c170c7dd449b7ef6
ARG SRC_HASH=0c268b19cf9f4eefdaf45dab64ac393ccf8ee43de58f0721624cab358044bf78
ARG CORES=1
FROM base as fetch
WORKDIR distfiles
#Generate with: cat live-bootstrap/steps/*/sources | awk -F" " '{ printf("ADD --checksum=sha256:%s %s ./$3\n",$2,$1,$3) }'
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/${VERSION} live-bootstrap.tgz
# Generate with: cat live-bootstrap/steps/*/sources | awk -F" " '{ printf("ADD --checksum=sha256:%s %s ./%s\n",$2,$1,$3) }'
ADD --checksum=sha256:4681bcbb9c9298c506f6405a7deb62c54fc3b339d3239a8f36a5df83daaec94f https://mirrors.kernel.org/gnu/autoconf/autoconf-2.52.tar.bz2 ./
ADD --checksum=sha256:6b217a064c6d06603d50a3ad05129aef9435367810c10894210b8dad965d2306 https://mirrors.kernel.org/gnu/autoconf/autoconf-2.53.tar.bz2 ./
ADD --checksum=sha256:a74aea954f36c7beeb6cc47b96a408c3e04e7ad635f614e65250dbcd8ec0bd28 https://mirrors.kernel.org/gnu/autoconf/autoconf-2.54.tar.bz2 ./
@ -45,28 +46,11 @@ ADD --checksum=sha256:ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c
ADD --checksum=sha256:469888e41e8a780051ce00edcd914e8a6bd38da88a82cfb84898dd388635822a http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_95_RTM/src/nss-3.95.tar.gz ./
ADD --checksum=sha256:c25b36b8af6e0ad2a875daf4d6196bd0df28a62be7dd252e5f99a4d5d7288d95 https://mirrors.kernel.org/gnu/coreutils/coreutils-5.0.tar.bz2 ./
ADD --checksum=sha256:1d013547889f20576460249c4210632d5314531c8477378a2e046b13a8ebeb7e https://mirrors.kernel.org/gnu/coreutils/coreutils-6.10.tar.gz ./
ADD --checksum=sha256:8fb56810310253300b3d6f84e68dc97eb2d74e1f4f78e05776831d9d82e4f2d7 http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-9.4.tar.xz ./
ADD --checksum=sha256:b8aa1ac1b18c67f081486069e6a7a5564f20431c2313a94c20a46dcfb904be2a http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-bb5bb43.tar.gz ./
ADD --checksum=sha256:806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 http://ftp.unicode.org/Public/15.0.0/ucd/UnicodeData.txt ./UnicodeData-15.0.0.txt
ADD --checksum=sha256:e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd http://ftp.unicode.org/Public/15.0.0/ucd/PropList.txt ./PropList-15.0.0.txt
ADD --checksum=sha256:d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d http://ftp.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt ./DerivedCoreProperties-15.0.0.txt
ADD --checksum=sha256:29071dba22c72c27783a73016afb8ffaeb025866740791f9c2d0b55cc45a3470 http://ftp.unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt ./emoji-data-15.0.0.txt
ADD --checksum=sha256:eb840f36e0a7446293578c684a54c6d83d249abde7bdd4dfa89794af1d7fe9e9 http://ftp.unicode.org/Public/15.0.0/ucd/ArabicShaping.txt ./ArabicShaping-15.0.0.txt
ADD --checksum=sha256:cca85d830f46aece2e7c1459ef1249993dca8f2e46d51e869255be140d7ea4b0 http://ftp.unicode.org/Public/15.0.0/ucd/Scripts.txt ./Scripts-15.0.0.txt
ADD --checksum=sha256:529dc5d0f6386d52f2f56e004bbfab48ce2d587eea9d38ba546c4052491bd820 http://ftp.unicode.org/Public/15.0.0/ucd/Blocks.txt ./Blocks-15.0.0.txt
ADD --checksum=sha256:909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt ./
ADD --checksum=sha256:743e7bc435c04ab1a8459710b1c3cad56eedced5b806b4659b6e69b85d0adf2a http://ftp.unicode.org/Public/15.0.0/ucd/EastAsianWidth.txt ./EastAsianWidth-15.0.0.txt
ADD --checksum=sha256:012bca868e2c4e59a5a10a7546baf0c6fb1b2ef458c277f054915c8a49d292bf http://ftp.unicode.org/Public/15.0.0/ucd/LineBreak.txt ./LineBreak-15.0.0.txt
ADD --checksum=sha256:5188a56e91593467c2e912601ebc78750e6adc9b04541b8c5becb5441e388ce2 http://ftp.unicode.org/Public/15.0.0/ucd/auxiliary/WordBreakProperty.txt ./WordBreakProperty-15.0.0.txt
ADD --checksum=sha256:5a0f8748575432f8ff95e1dd5bfaa27bda1a844809e17d6939ee912bba6568a1 http://ftp.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt ./GraphemeBreakProperty-15.0.0.txt
ADD --checksum=sha256:3b019c0a33c3140cbc920c078f4f9af2680ba4f71869c8d4de5190667c70b6a3 http://ftp.unicode.org/Public/15.0.0/ucd/CompositionExclusions.txt ./CompositionExclusions-15.0.0.txt
ADD --checksum=sha256:78b29c64b5840d25c11a9f31b665ee551b8a499eca6c70d770fcad7dd710f494 http://ftp.unicode.org/Public/15.0.0/ucd/SpecialCasing.txt ./SpecialCasing-15.0.0.txt
ADD --checksum=sha256:cdd49e55eae3bbf1f0a3f6580c974a0263cb86a6a08daa10fbf705b4808a56f7 http://ftp.unicode.org/Public/15.0.0/ucd/CaseFolding.txt ./CaseFolding-15.0.0.txt
ADD --checksum=sha256:6f7cfc0ac6717afb6ba1f41b0da43a713ba0dd97dec1227e32effc12d79f08c1 http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-8.32.tar.gz ./
ADD --checksum=sha256:12cfa21abf618a274017d6b18e95fc6582519d7c08e2403e5c5772ccdd5b85f4 http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz ./
ADD --checksum=sha256:ce4b6a6655431147624aaf582632a36fe1ade262d5fab385c60f78942dd8d87b https://curl.se/download/curl-8.5.0.tar.bz2 ./
ADD --checksum=sha256:2bd3480bc93e6bff530872b8bc80cbcaa821449f7bf6aaf202fa12fb8c2e6f55 https://github.com/NetworkConfiguration/dhcpcd/archive/refs/tags/v10.0.1.tar.gz ./
ADD --checksum=sha256:d5f2489c4056a31528e3ada4adacc23d498532b0af1a980f2f76158162b139d6 https://mirrors.kernel.org/gnu/diffutils/diffutils-2.7.tar.gz ./
ADD --checksum=sha256:90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e https://mirrors.kernel.org/gnu/diffutils/diffutils-3.10.tar.xz ./
ADD --checksum=sha256:72e7bb2d1d75e63d1c46d33b8dd22e8eb60afdba4af3e7251151b5c2a6f00bfb http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5d2fe24.tar.gz ./
ADD --checksum=sha256:05fa4f6ea9f05adf8f577699cb3f5b88b20dfce86b0d0cebbfb072fe5933d38f http://deb.debian.org/debian/pool/main/d/dist/dist_3.5-236.orig.tar.gz ./
ADD --checksum=sha256:340e9de42a12d0c26dd7527e9ef055ac85586de5c61f6273ae19f88d04e55804 https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.45.7/e2fsprogs-1.45.7.tar.gz ./
ADD --checksum=sha256:64f117a4749dd4a1b6c54277f63f6cf1e0eb45d290cbedaf777fbe71b8880885 https://www.unicode.org/Public/11.0.0/ucd/CaseFolding.txt ./
@ -98,29 +82,11 @@ ADD --checksum=sha256:588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cd
ADD --checksum=sha256:a32032bab36208509466654df12f507600dfe0313feebbcd218c32a70bf72a16 https://mirrors.kernel.org/gnu/grep/grep-2.4.tar.gz ./
ADD --checksum=sha256:5c10da312460aec721984d5d83246d24520ec438dd48d7ab5a05dbc0d6d6823c https://mirrors.kernel.org/gnu/grep/grep-3.7.tar.xz ./
ADD --checksum=sha256:e207c0bb72093c3a72dde302fcfaa1dbda12a62172d47b73565883a92209ebab http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8f4538a5.tar.gz ./
ADD --checksum=sha256:b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1 https://mirrors.kernel.org/gnu/grub/grub-2.06.tar.xz ./
ADD --checksum=sha256:31d69d3d251e39135b5194ddc6f897910d344059f7494d96a739aecbf7ac2b66 https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d271f86.tar.gz ./
ADD --checksum=sha256:68dfc414d28257b9b5d6ddbb8b466c768c00ebdf6cbf7784364a9b6cad55ee8f http://ftp.unicode.org/Public/9.0.0/ucd/UnicodeData.txt ./UnicodeData-9.0.0.txt
ADD --checksum=sha256:f413ea8dbd3858de72f3148b47dd0586019761357d1481e3b65f3a025bc27f82 http://ftp.unicode.org/Public/9.0.0/ucd/PropList.txt ./PropList-9.0.0.txt
ADD --checksum=sha256:6662c7e30b572df5d948c092692f52bcc79ab36d49a063a73d6435042db6fb3b http://ftp.unicode.org/Public/9.0.0/ucd/DerivedCoreProperties.txt ./DerivedCoreProperties-9.0.0.txt
ADD --checksum=sha256:47cb62a53beea6d0263e2147331c7e751853c9327225d95bbe2d9e1dc3e1aa44 http://ftp.unicode.org/Public/9.0.0/ucd/ArabicShaping.txt ./ArabicShaping-9.0.0.txt
ADD --checksum=sha256:fba415952f5654145acad220dc2b878f815c673474d2bb4928934e3ba6ccca1d http://ftp.unicode.org/Public/9.0.0/ucd/Scripts.txt ./Scripts-9.0.0.txt
ADD --checksum=sha256:612127d4889032e55d82522e4a0c19793bda8aa8da14ecb3c696d17c83e6be13 http://ftp.unicode.org/Public/9.0.0/ucd/Blocks.txt ./Blocks-9.0.0.txt
ADD --checksum=sha256:909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt ./
ADD --checksum=sha256:3382cb4980e0021e9d4312f2d099315cfab6100ce0ff63a22d6937bfa720bcb7 http://ftp.unicode.org/Public/9.0.0/ucd/EastAsianWidth.txt ./EastAsianWidth-9.0.0.txt
ADD --checksum=sha256:e2698584982ccd96e0c688bbcd4d2c48a23805baa0a0084388ef2e50ebd30aad http://ftp.unicode.org/Public/9.0.0/ucd/LineBreak.txt ./LineBreak-9.0.0.txt
ADD --checksum=sha256:cb2db065c77287e0f1d35b8c9b473d848b7566a1670439f67c357ca393084043 http://ftp.unicode.org/Public/9.0.0/ucd/auxiliary/WordBreakProperty.txt ./WordBreakProperty-9.0.0.txt
ADD --checksum=sha256:4bb8931857e0a698fd2ec4a51a84c6de33e48a50d8b4bf0b57d960c41d77a191 http://ftp.unicode.org/Public/9.0.0/ucd/auxiliary/GraphemeBreakProperty.txt ./GraphemeBreakProperty-9.0.0.txt
ADD --checksum=sha256:5623df16856ad4007c60bdfff6f054e087521becd24cb4006be69c3a1d851aee http://ftp.unicode.org/Public/9.0.0/ucd/CompositionExclusions.txt ./CompositionExclusions-9.0.0.txt
ADD --checksum=sha256:dfc4f159c5c68328114ff17cd520451714a72ff48657287e5fe2f64344980695 http://ftp.unicode.org/Public/9.0.0/ucd/SpecialCasing.txt ./SpecialCasing-9.0.0.txt
ADD --checksum=sha256:37d40cf8c2c35637f4a04e746814e1fc4eb764c272bed9238a87ee96a4866857 http://ftp.unicode.org/Public/9.0.0/ucd/CaseFolding.txt ./CaseFolding-9.0.0.txt
ADD --checksum=sha256:f57d86c70620271bfceb7a9be0c81744a033f08adc7ceba832c9917ab3e691b7 https://mirrors.kernel.org/gnu/guile/guile-3.0.7.tar.xz ./
ADD --checksum=sha256:1a2625ac72b2366e95792f3fe758fd2df775b4044a90a4a9787326e66c0d750d https://mirrors.kernel.org/gnu/guile/guile-3.0.9.tar.xz ./
ADD --checksum=sha256:f9aad85de1f41d57c9368d304020ffbf354a5e56db1297f022c3d12181134e56 https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-901694b9.tar.gz ./
ADD --checksum=sha256:fc9973f1a9243fdc4b98d33d7704f3c71bfdc4c2ef96899b8f28cade7290a714 https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-356a414e.tar.gz ./
ADD --checksum=sha256:14cda9c416506dfadf60c14fc623ff01ef99b87564a78d0a29c5d17143c97609 https://github.com/schierlm/guile-psyntax-bootstrapping/archive/refs/tags/guile-3.0.7.tar.gz ./
ADD --checksum=sha256:7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057 https://mirrors.kernel.org/gnu/gzip/gzip-1.13.tar.xz ./
ADD --checksum=sha256:56f1221eb682c3502ee097f583f44673570753cb452346ad4806d94560c3fac9 http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5651802.tar.gz ./
ADD --checksum=sha256:1ca41818a23c9c59ef1d5e1d00c0d5eaa2285d931c0fb059637d7c0cc02ad967 https://mirrors.kernel.org/gnu/gzip/gzip-1.2.4.tar.gz ./
ADD --checksum=sha256:9f233d8b78e4351fe9dd2d50d83958a0e5af36f54e9818521458a08e058691ba http://downloads.sourceforge.net/project/heirloom/heirloom-devtools/070527/heirloom-devtools-070527.tar.bz2 ./
ADD --checksum=sha256:a4adadf76b496a6bc50795702253ecfcb6f0d159b68038f31a5362009340bca2 https://mirrors.kernel.org/gnu/help2man/help2man-1.36.4.tar.gz ./
@ -128,9 +94,7 @@ ADD --checksum=sha256:203c93e004ac7ad0e50423ff54d89e40fa99f45b207b2b892a4d70211f
ADD --checksum=sha256:af618de7848142f204b57811f703de3ae7aa3f5bc5d52226db35800fa8fc4dff https://github.com/horms/kexec-tools/archive/refs/tags/v2.0.22.tar.gz ./
ADD --checksum=sha256:f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0 http://libarchive.org/downloads/libarchive-3.5.2.tar.xz ./
ADD --checksum=sha256:587edf60817f56daf1e1ab38a4b3c729b8e846ff67b4f62a6157183708f099af https://github.com/ivmai/libatomic_ops/releases/download/v7.6.10/libatomic_ops-7.6.10.tar.gz ./
ADD --checksum=sha256:55fdfa2696fb4d55a592fa9ad14a9df897c7b0008ddb3b30c419914841f85f33 https://libbsd.freedesktop.org/releases/libbsd-0.11.8.tar.xz ./
ADD --checksum=sha256:72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056 https://github.com/libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz ./
ADD --checksum=sha256:1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332 https://archive.hadrons.org/software/libmd/libmd-1.1.0.tar.xz ./
ADD --checksum=sha256:c4e63399b12f5858d11c44cea8e92f21cd564f8548e488dadc84046b424c80fc https://mirrors.kernel.org/gnu/libtool/libtool-2.2.4.tar.bz2 ./
ADD --checksum=sha256:4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d http://mirrors.kernel.org/gnu/libtool/libtool-2.4.7.tar.xz ./
ADD --checksum=sha256:719b399fe09a8f6ca14ba8c4a9a60ce9f93f4892effb50961ef3d8cd1a33ff65 http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-a521820.tar.gz ./
@ -140,7 +104,7 @@ ADD --checksum=sha256:97ff15f9550c6e85c25173b3cf5c7e89a2d39fb923112f2c8bc2729cf6
ADD --checksum=sha256:af4214b851928a53ef470ed8729122b9db910a6c0769d5d46a5de0b3e96f74f3 https://linux-libre.fsfla.org/pub/linux-libre/releases/old/gen6/4.9.10-gnu/deblob-4.9 ./
ADD --checksum=sha256:97ff15f9550c6e85c25173b3cf5c7e89a2d39fb923112f2c8bc2729cf64bf6d8 https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.10.tar.gz ./
ADD --checksum=sha256:a90526665123d788fc23d14354468d22cc2e3e9e43a6c44ea452fbbec12b8451 https://github.com/rick-masters/lwext4/releases/download/v1.0.0-lb1/lwext4-1.0.0-lb1.tar.gz ./
ADD --checksum=sha256:197fcb73c346fa669f143c3f0ec3144271f133647df00b2258bff1fd485cabe0 https://mirrors.kernel.org/gnu/m4/m4-1.4.10.tar.gz ./
ADD --checksum=sha256:093c993767f563a11e41c1cf887f4e9065247129679d4c1e213d0544d16d8303 https://mirrors.kernel.org/gnu/m4/m4-1.4.7.tar.gz ./
ADD --checksum=sha256:e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966 https://mirrors.kernel.org/gnu/make/make-3.82.tar.bz2 ./
ADD --checksum=sha256:e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7 http://ftp.gnu.org/gnu/make/make-4.2.1.tar.gz ./
ADD --checksum=sha256:325250b3567ed9203ba70161c835af01079e73ebed97b4b5bb77ca500b828940 https://mirrors.kernel.org/gnu/mes/mes-0.25.tar.gz ./
@ -149,7 +113,6 @@ ADD --checksum=sha256:17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30
ADD --checksum=sha256:0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f http://mirrors.kernel.org/gnu/mpfr/mpfr-4.1.0.tar.xz ./
ADD --checksum=sha256:1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 https://musl.libc.org/releases/musl-1.1.24.tar.gz ./
ADD --checksum=sha256:7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039 https://musl.libc.org/releases/musl-1.2.4.tar.gz ./
ADD --checksum=sha256:4e98828056d6266bd8f2c93e6ecf12a63a71dbfd70a5ea99ccd4ab6d0745adf0 https://github.com/Duncaen/OpenDoas/releases/download/v6.8.2/opendoas-6.8.2.tar.xz ./
ADD --checksum=sha256:0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 http://mirror.math.princeton.edu/pub/openssl/source/old/1.1.1/openssl-1.1.1l.tar.gz ./
ADD --checksum=sha256:ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a https://mirrors.kernel.org/gnu/patch/patch-2.5.9.tar.gz ./
ADD --checksum=sha256:ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd https://mirrors.kernel.org/gnu/patch/patch-2.7.6.tar.xz ./
@ -281,7 +244,6 @@ ADD --checksum=sha256:eb722fa698fb7e8823b835d9fd263e4cdb8f1c7b0d234edf7f0e3bd2cc
ADD --checksum=sha256:c365874794187f8444e5d22998cd5888ffa47f36def4b77517a808dec27c0600 https://mirrors.kernel.org/gnu/sed/sed-4.0.9.tar.gz ./
ADD --checksum=sha256:f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633 https://mirrors.kernel.org/gnu/sed/sed-4.8.tar.xz ./
ADD --checksum=sha256:12cfa21abf618a274017d6b18e95fc6582519d7c08e2403e5c5772ccdd5b85f4 http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz ./
ADD --checksum=sha256:6969279236fe3152768573a38c9f83cb9ca109851a5a990aec1fc672ac2cfcd2 https://github.com/shadow-maint/shadow/releases/download/4.14.3/shadow-4.14.3.tar.xz ./
ADD --checksum=sha256:c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a https://mirrors.kernel.org/gnu/tar/tar-1.12.tar.gz ./
ADD --checksum=sha256:63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28 http://mirrors.kernel.org/gnu/tar/tar-1.34.tar.xz ./
ADD --checksum=sha256:df807e694deea2dcba0c43af318394f3e3fcd52658c3b71b61dad0ce0c0cfb77 http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-30820c.tar.gz ./
@ -293,7 +255,6 @@ ADD --checksum=sha256:f694bee56099b8d72c3843d97e27f2306aa9946741e34a27391f6f6f19
ADD --checksum=sha256:f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad https://carlowood.github.io/which/which-2.21.tar.gz ./
ADD --checksum=sha256:dd172acb53867a68012f94c17389401b2f274a1aa5ae8f84cbfb8b7e383ea8d3 http://ixpeering.dl.sourceforge.net/project/lzmautils/xz-5.4.1.tar.bz2 ./
ADD --checksum=sha256:b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30 https://zlib.net/fossils/zlib-1.2.13.tar.gz ./
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE}/${VERSION} live-bootstrap.tgz
#FROM base as extract
#COPY --from=stagex/stage0 . /
@ -313,15 +274,15 @@ FROM debian@sha256:bac353db4cc04bc672b14029964e686cd7bad56fe34b51f432c1a1304b992
COPY --from=fetch distfiles/live-bootstrap.tgz .
RUN <<-EOF
tar -xvf live-bootstrap.tgz
echo "" > lrvick-live-bootstrap-87c6fcc/steps/lwext4-1.0.0-lb1/files/fiwix-file-list.txt
echo "" > lrvick-live-bootstrap-fc6eeb6/steps/lwext4-1.0.0-lb1/files/fiwix-file-list.txt
EOF
FROM base as build
USER 0:0
COPY --from=stagex/stage0 . /
COPY --from=fetch distfiles external/distfiles
COPY --from=extract /lrvick-live-bootstrap-87c6fcc/seed/* .
COPY --from=extract /lrvick-live-bootstrap-87c6fcc/steps steps
COPY --from=extract /lrvick-live-bootstrap-fc6eeb6/seed/* .
COPY --from=extract /lrvick-live-bootstrap-fc6eeb6/steps steps
COPY <<-EOF steps/bootstrap.cfg
FORCE_TIMESTAMPS=False
CHROOT=True

View File

@ -1,196 +1,191 @@
FROM scratch as base
ENV ARCH=x86_64
ENV TARGET=${ARCH}-linux-musl
ENV HOME=/home/build
ENV SYSROOT_DIR ${HOME}/build-sysroot
ENV GCC_VERSION 13.1.0
ENV GCC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86
ENV GCC_FILE gcc-$GCC_VERSION.tar.xz
ENV GCC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_FILE}
ENV GCC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86
ENV GCC_DIR ${HOME}/build-gcc
ENV GCC_DEP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/
ENV GMP_FILE gmp-6.2.1.tar.bz2
ENV GMP_VERSION 6.2.1
ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
ENV MPFR_FILE mpfr-4.1.0.tar.bz2
ENV GMP_FILE gmp-${GMP_VERSION}.tar.bz2
ENV GMP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${GMP_FILE}
ENV MPFR_VERSION 4.1.0
ENV MPFR_HASH feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926
ENV MPC_FILE mpc-1.2.1.tar.gz
ENV MPFR_FILE mpfr-${MPFR_VERSION}.tar.bz2
ENV MPFR_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPFR_FILE}
ENV MPC_VERSION 1.2.1
ENV MPC_HASH 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
ENV ISL_FILE isl-0.24.tar.bz2
ENV MPC_FILE mpc-${MPC_VERSION}.tar.gz
ENV MPC_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPC_FILE}
ENV ISL_VERSION 0.24
ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0
ENV ISL_FILE isl-${ISL_VERSION}.tar.bz2
ENV ISL_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${ISL_FILE}
ENV MUSL_VERSION 1.2.4
ENV MUSL_FILE musl-${MUSL_VERSION}.tar.gz
ENV MUSL_SITE http://musl.libc.org/${MUSL_FILE}
ENV MUSL_SITE http://musl.libc.org/releases/${MUSL_FILE}
ENV MUSL_HASH 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039
ENV MUSL_DIR ${HOME}/build-musl
ENV LINUX_VERSION 6.6
ENV LINUX_HASH d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0
ENV LINUX_FILE linux-${LINUX_VERSION}.tar.xz
ENV LINUX_SITE https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${LINUX_FILE}
ENV LINUX_DIR ${HOME}/build-linux
ENV BINUTILS_VERSION 2.35
ENV BINUTILS_HASH 1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85
ENV BINUTILS_FILE binutils-${BINUTILS_VERSION}.tar.xz
ENV BINUTILS_SITE https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE}
ENV BINUTILS_HASH 1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85
ENV BINUTILS_DIR ${HOME}/build-binutils
WORKDIR ${HOME}
FROM base as fetch
ADD --checksum=sha256:${LINUX_HASH} ${LINUX_SITE} ${LINUX_FILE}
ADD --checksum=sha256:${MUSL_HASH} ${MUSL_SITE} ${MUSL_FILE}
ADD --checksum=sha256:${BINUTILS_HASH} ${BINUTILS_SITE} ${BINUTILS_FILE}
ADD --checksum=sha256:${GCC_HASH} ${GCC_SITE} ${GCC_FILE}
ADD --checksum=sha256:${GMP_HASH} ${GCC_DEP_SITE}${GMP_FILE} ${GMP_FILE}
ADD --checksum=sha256:${MPFR_HASH} ${GCC_DEP_SITE}${MPFR_FILE} ${MPFR_FILE}
ADD --checksum=sha256:${MPC_HASH} ${GCC_DEP_SITE}${MPC_FILE} ${MPC_FILE}
ADD --checksum=sha256:${ISL_HASH} ${GCC_DEP_SITE}${ISL_FILE} ${ISL_FILE}
FROM fetch as build
COPY --from=stagex/stage1 . /
RUN --network=none <<-EOF
set -eux
tar -xf ${LINUX_FILE}
tar -xzf ${MUSL_FILE}
tar -xf ${BINUTILS_FILE}
tar -xf ${GCC_FILE}
cd gcc-${GCC_VERSION}
mv ../*.tar.* .
./contrib/download_prerequisites
EOF
# Phase 1: Build cross binutils in build-binutils
WORKDIR ${BINUTILS_DIR}
RUN --network=none <<-EOF
set -eux
../binutils-${BINUTILS_VERSION}/configure \
--build=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
--target=${TARGET} \
--with-sysroot=/${TARGET} \
--prefix= \
--libdir=/lib \
--disable-nls \
--disable-multilib \
--disable-plugins \
--disable-gprofng \
--enable-64-bit-bfd \
--enable-ld=default \
--enable-install-libiberty \
--enable-deterministic-archives
make -j$(nproc) all
EOF
# Phase 2: Prepare build sysroot
WORKDIR ${SYSROOT_DIR}
RUN --network=none <<-EOF
set -eux
mkdir -p include
ln -sf . usr
ln -sf lib lib32
ln -sf lib lib64
EOF
# Phase 3: Build gcc (without libgcc) in build-gcc
WORKDIR ${GCC_DIR}
RUN --network=none <<-EOF
set -eux
../gcc-${GCC_VERSION}/configure \
--build=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
--target=${TARGET} \
--with-build-sysroot=${SYSROOT_DIR} \
--with-sysroot=/${TARGET} \
--prefix= \
--libdir=/lib \
--disable-multilib \
--disable-bootstrap \
--disable-assembly \
--disable-libmudflap \
--disable-libsanitizer \
--disable-gnu-indirect-function \
--disable-libmpx \
--disable-werror \
--enable-languages=c,c++ \
--enable-tls \
--enable-initfini-array \
--enable-libstdcxx-time=rt \
--enable-deterministic-archives \
AR_FOR_TARGET=${BINUTILS_DIR}/binutils/ar \
AS_FOR_TARGET=${BINUTILS_DIR}/gas/as-new \
LD_FOR_TARGET=${BINUTILS_DIR}/ld/ld-new \
NM_FOR_TARGET=${BINUTILS_DIR}/binutils/nm-new \
OBJCOPY_FOR_TARGET=${BINUTILS_DIR}/binutils/objcopy \
OBJDUMP_FOR_TARGET=${BINUTILS_DIR}/binutils/objdump \
RANLIB_FOR_TARGET=${BINUTILS_DIR}/binutils/ranlib \
READELF_FOR_TARGET=${BINUTILS_DIR}/binutils/readelf \
STRIP_FOR_TARGET=${BINUTILS_DIR}/binutils/strip-new
make -j$(nproc) all-gcc
EOF
# Phase 4: Install musl libc headers to build-sysroot for use by libgcc
WORKDIR ${MUSL_DIR}
RUN --network=none <<-EOF
set -eux
../musl-${MUSL_VERSION}/configure \
CC="${GCC_DIR}/gcc/xgcc -B ${GCC_DIR}/gcc" \
LIBCC="${GCC_DIR}/${TARGET}/libgcc/libgcc.a" \
--prefix= \
--host=${TARGET}
make DESTDIR=${SYSROOT_DIR} install-headers
EOF
# Phase 5: Compile libgcc
WORKDIR ${GCC_DIR}
RUN --network=none make MAKE="make enable_shared=no" all-target-libgcc
# Phase 5: Compile musl libc and install to sysroot
WORKDIR ${MUSL_DIR}
RUN --network=none <<-EOF
set -eux
make -j$(nproc) \
AR=${BINUTILS_DIR}/binutils/ar \
RANLIB=${BINUTILS_DIR}/binutils/ranlib
make DESTDIR=${SYSROOT_DIR} install
EOF
# Phase 6: Compile remaining gcc targets
WORKDIR ${GCC_DIR}
RUN --network=none make -j$(nproc) all
# Phase 7: Generate linux headers
WORKDIR ${HOME}/linux-${LINUX_VERSION}
RUN --network=none <<-EOF
set -eux
make ARCH=${ARCH} headers
find usr/include -name '.*' -delete
rm usr/include/Makefile
rm usr/include/headers_check.pl
cp -rv usr/include ${LINUX_DIR}
EOF
FROM build as install
COPY --from=stagex/stage1 . /rootfs/
WORKDIR ${HOME}
RUN --network=none <<-EOF
set -eux
rm /rootfs/lib
env -C build-musl make DESTDIR=/rootfs/${TARGET} install
env -C build-gcc make DESTDIR=/rootfs/ install
env -C build-binutils make DESTDIR=/rootfs/ install
cp -Rv ${LINUX_DIR}/* /rootfs/${TARGET}/include
ln -s /usr/lib/ld-musl-i386.so.1 /rootfs/lib/libc.so
ln -s /usr/lib/ld-musl-i386.so.1 /rootfs/lib/ld-musl-i386.so.1
ln -s /${TARGET}/lib/ld-musl-${ARCH}.so.1 /rootfs/lib/ld-musl-${ARCH}.so.1
EOF
FROM scratch as package
COPY --from=install /rootfs/ /
USER 1000:1000
ENTRYPOINT ["/bin/bash"]
ENV TARGET_ARCH=x86_64
ENV HOST_ARCH=i386
ENV BUILD=${HOST_ARCH}-unknown-linux-musl
ENV HOST=${HOST_ARCH}-unknown-linux-musl
ENV TARGET=${TARGET_ARCH}-linux-musl
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV USER=user
ENV HOME=/home/user
ENV HOME=/home/${USER}
ENV TZ=UTC
ENV LANG=C.UTF-8
ENV SOURCE_DATE_EPOCH=1
ENV KCONFIG_NOTIMESTAMP=1
ENV SYSROOT_DIR ${HOME}/build-sysroot
ENV GCC_DIR ${HOME}/build-gcc
ENV LINUX_DIR ${HOME}/build-linux
ENV BINUTILS_DIR ${HOME}/build-binutils
ENV MUSL_DIR=${HOME}/build-musl
FROM base as fetch
WORKDIR ${HOME}
ADD --checksum=sha256:${LINUX_HASH} ${LINUX_SITE} .
ADD --checksum=sha256:${MUSL_HASH} ${MUSL_SITE} .
ADD --checksum=sha256:${BINUTILS_HASH} ${BINUTILS_SITE} .
ADD --checksum=sha256:${GCC_HASH} ${GCC_SITE} .
ADD --checksum=sha256:${GMP_HASH} ${GMP_SITE} .
ADD --checksum=sha256:${MPFR_HASH} ${MPFR_SITE} .
ADD --checksum=sha256:${MPC_HASH} ${MPC_SITE} .
ADD --checksum=sha256:${ISL_HASH} ${ISL_SITE} .
FROM fetch as build
COPY --from=stagex/stage2 . /
RUN set -eux; \
tar -xf ${LINUX_FILE}; \
tar -xzf ${MUSL_FILE}; \
tar -xf ${BINUTILS_FILE}; \
tar -xf ${GCC_FILE}; \
cd gcc-${GCC_VERSION}; \
mv ../*.tar.* .; \
./contrib/download_prerequisites
# Phase 1: Build cross binutils in build-binutils
WORKDIR ${BINUTILS_DIR}
RUN set -eux; \
../binutils-${BINUTILS_VERSION}/configure \
--build=${BUILD} \
--host=${HOST} \
--target=${TARGET} \
--with-sysroot=/${TARGET} \
--prefix= \
--libdir=/lib \
--disable-nls \
--disable-multilib \
--disable-plugins \
--disable-gprofng \
--enable-64-bit-bfd \
--enable-ld=default \
--enable-install-libiberty \
--enable-deterministic-archives; \
make all
# Phase 2: Prepare build sysroot
WORKDIR ${SYSROOT_DIR}
RUN set -eux; \
mkdir -p include; \
ln -sf . usr; \
ln -sf lib lib32; \
ln -sf lib lib64
# Phase 3: Build gcc (without libgcc) in build-gcc
WORKDIR ${GCC_DIR}
RUN set -eux; \
../gcc-${GCC_VERSION}/configure \
--build=${BUILD} \
--host=${HOST} \
--target=${TARGET} \
--with-build-sysroot=${SYSROOT_DIR} \
--with-sysroot=/${TARGET} \
--prefix= \
--libdir=/lib \
--disable-multilib \
--disable-bootstrap \
--disable-assembly \
--disable-libmudflap \
--disable-libsanitizer \
--disable-gnu-indirect-function \
--disable-libmpx \
--disable-werror \
--enable-languages=c,c++ \
--enable-tls \
--enable-initfini-array \
--enable-libstdcxx-time=rt \
--enable-deterministic-archives \
AR_FOR_TARGET=${BINUTILS_DIR}/binutils/ar \
AS_FOR_TARGET=${BINUTILS_DIR}/gas/as-new \
LD_FOR_TARGET=${BINUTILS_DIR}/ld/ld-new \
NM_FOR_TARGET=${BINUTILS_DIR}/binutils/nm-new \
OBJCOPY_FOR_TARGET=${BINUTILS_DIR}/binutils/objcopy \
OBJDUMP_FOR_TARGET=${BINUTILS_DIR}/binutils/objdump \
RANLIB_FOR_TARGET=${BINUTILS_DIR}/binutils/ranlib \
READELF_FOR_TARGET=${BINUTILS_DIR}/binutils/readelf \
STRIP_FOR_TARGET=${BINUTILS_DIR}/binutils/strip-new; \
make all-gcc
# Phase 4: Install musl libc headers to build-sysroot for use by libgcc
WORKDIR ${MUSL_DIR}
RUN set -eux; \
../musl-${MUSL_VERSION}/configure \
CC="${GCC_DIR}/gcc/xgcc -B ${GCC_DIR}/gcc" \
LIBCC="${GCC_DIR}/${TARGET}/libgcc/libgcc.a" \
--prefix= \
--host=${TARGET}; \
make DESTDIR=${SYSROOT_DIR} install-headers
# Phase 5: Compile libgcc
WORKDIR ${GCC_DIR}
RUN make MAKE="make enable_shared=no" all-target-libgcc
# Phase 5: Compile musl libc and install to sysroot
WORKDIR ${MUSL_DIR}
RUN set -eux; \
make \
AR=${BINUTILS_DIR}/binutils/ar \
RANLIB=${BINUTILS_DIR}/binutils/ranlib; \
make DESTDIR=${SYSROOT_DIR} install
# Phase 6: Compile remaining gcc targets
WORKDIR ${GCC_DIR}
RUN make all
# Phase 7: Generate linux headers
WORKDIR ${HOME}/linux-${LINUX_VERSION}
RUN set -eux; \
make ARCH=${TARGET_ARCH} headers; \
find usr/include -name '.*' -delete; \
rm usr/include/Makefile; \
rm usr/include/headers_check.pl; \
cp -rv usr/include ${LINUX_DIR}
FROM build as install
WORKDIR ${HOME}
USER 0:0
COPY --from=stagex/stage1 . /rootfs/
RUN set -eux; \
rm /rootfs/lib; \
env -C build-musl make DESTDIR=/rootfs/${TARGET} install; \
env -C build-gcc make DESTDIR=/rootfs/ install; \
env -C build-binutils make DESTDIR=/rootfs/ install; \
cp -Rv ${LINUX_DIR}/* /rootfs/${TARGET}/include; \
ln -s /usr/lib/ld-musl-${HOST_ARCH}.so.1 /rootfs/lib/libc.so; \
ln -s /usr/lib/ld-musl-${HOST_ARCH}.so.1 /rootfs/lib/ld-musl-${HOST_ARCH}.so.1; \
ln -s /${TARGET}/lib/ld-musl-${TARGET_ARCH}.so.1 /rootfs/lib/ld-musl-${TARGET_ARCH}.so.1; \
find /rootfs -exec touch -hcd "@0" "{}" +
FROM base as package
COPY --from=install /rootfs/ /
USER 1000:1000
ENTRYPOINT ["/bin/bash"]
ENV PS1="stage2 $ "

View File

@ -1,61 +1,64 @@
FROM scratch as base
ENV ARCH=x86_64
ENV TARGET=${ARCH}-linux-musl
ENV BUILD=i386-unknown-linux-musl
ENV KCONFIG_NOTIMESTAMP=1
ENV MUSL_VERSION 1.2.4
ENV MUSL_FILE musl-${MUSL_VERSION}.tar.gz
ENV MUSL_SITE http://musl.libc.org/releases/${MUSL_FILE}
ENV MUSL_HASH 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039
ENV MUSL_DIR=${HOME}/build-musl
ENV BUSYBOX_VERSION=1.35.0
ENV BUSYBOX_HASH=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
ENV BUSYBOX_FILE=busybox-${BUSYBOX_VERSION}.tar.bz2
ENV BUSYBOX_SITE=https://busybox.net/downloads/${BUSYBOX_FILE}
ENV BUSYBOX_DIR ${HOME}/build-busybox
ENV BINUTILS_VERSION 2.35
ENV BINUTILS_HASH 1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85
ENV BINUTILS_FILE binutils-${BINUTILS_VERSION}.tar.xz
ENV BINUTILS_SITE https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE}
ENV BINUTILS_DIR ${HOME}/build-binutils
ENV MAKE_VERSION 4.4
ENV MAKE_HASH 581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18
ENV MAKE_FILE make-${MAKE_VERSION}.tar.gz
ENV MAKE_SITE https://ftp.gnu.org/gnu/make/${MAKE_FILE}
ENV MAKE_DIR ${HOME}/build-make
ENV GCC_VERSION 13.1.0
ENV GCC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86
ENV GCC_FILE gcc-$GCC_VERSION.tar.xz
ENV GCC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}/${GCC_FILE}
ENV GCC_DIR ${HOME}/build-gcc
ENV GMP_VERSION 6.2.1
ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
ENV GMP_FILE gmp-${GMP_VERSION}.tar.bz2
ENV GMP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${GMP_FILE}
ENV GMP_DIR ${HOME}/build-gmp
ENV MPFR_VERSION 4.1.0
ENV MPFR_HASH feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926
ENV MPFR_FILE mpfr-${MPFR_VERSION}.tar.bz2
ENV MPFR_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPFR_FILE}
ENV MPFR_DIR ${HOME}/build-mpfr
ENV MPC_VERSION 1.2.1
ENV MPC_HASH 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
ENV MPC_FILE mpc-${MPC_VERSION}.tar.gz
ENV MPC_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${MPC_FILE}
ENV MPC_DIR ${HOME}/build-mpc
ENV ISL_VERSION 0.24
ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0
ENV ISL_FILE isl-${ISL_VERSION}.tar.bz2
ENV ISL_SITE https://gcc.gnu.org/pub/gcc/infrastructure/${ISL_FILE}
ENV ISL_DIR ${HOME}/build-isl
ENV MUSL_VERSION 1.2.4
ENV MUSL_FILE musl-${MUSL_VERSION}.tar.gz
ENV MUSL_SITE http://musl.libc.org/releases/${MUSL_FILE}
ENV MUSL_HASH 7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039
ENV LINUX_VERSION 6.6
ENV LINUX_HASH d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0
ENV LINUX_FILE linux-${LINUX_VERSION}.tar.xz
ENV LINUX_SITE https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/${LINUX_FILE}
ENV BINUTILS_VERSION 2.35
ENV BINUTILS_HASH 1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85
ENV BINUTILS_FILE binutils-${BINUTILS_VERSION}.tar.xz
ENV BINUTILS_SITE https://ftp.gnu.org/gnu/binutils/${BINUTILS_FILE}
ENV BUSYBOX_VERSION=1.35.0
ENV BUSYBOX_HASH=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
ENV BUSYBOX_FILE=busybox-${BUSYBOX_VERSION}.tar.bz2
ENV BUSYBOX_SITE=https://busybox.net/downloads/${BUSYBOX_FILE}
ENV MAKE_VERSION 4.4
ENV MAKE_HASH 581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18
ENV MAKE_FILE make-${MAKE_VERSION}.tar.gz
ENV MAKE_SITE https://ftp.gnu.org/gnu/make/${MAKE_FILE}
ENV ARCH=x86_64
ENV BUILD=i386-unknown-linux-musl
ENV HOST=${TARGET}
ENV TARGET=${ARCH}-linux-musl
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV USER=user
ENV HOME=/home/${USER}
ENV TZ=UTC
ENV LANG=C.UTF-8
ENV SOURCE_DATE_EPOCH=1
ENV KCONFIG_NOTIMESTAMP=1
ENV MUSL_DIR=${HOME}/build-musl
ENV LINUX_DIR ${HOME}/build-linux
ENV BINUTILS_DIR ${HOME}/build-binutils
ENV BUSYBOX_DIR ${HOME}/build-busybox
ENV MAKE_DIR ${HOME}/build-make
ENV GCC_DIR ${HOME}/build-gcc
FROM base as fetch
WORKDIR /home/user
WORKDIR ${HOME}
ADD --checksum=sha256:${LINUX_HASH} ${LINUX_SITE} .
ADD --checksum=sha256:${MUSL_HASH} ${MUSL_SITE} .
ADD --checksum=sha256:${BUSYBOX_HASH} ${BUSYBOX_SITE} .
@ -150,46 +153,46 @@ RUN --network=none <<-EOF
EOF
WORKDIR ${BUSYBOX_DIR}
RUN --network=none <<-EOF
set -eux
setConfs=' \
CONFIG_LAST_SUPPORTED_WCHAR=0 \
CONFIG_STATIC=y \
'
unsetConfs=' \
CONFIG_FEATURE_SYNC_FANCY \
CONFIG_FEATURE_HAVE_RPC \
CONFIG_FEATURE_INETD_RPC \
CONFIG_FEATURE_UTMP \
CONFIG_FEATURE_WTMP \
'
make \
-f ../busybox-${BUSYBOX_VERSION}/Makefile \
KBUILD_SRC=../busybox-${BUSYBOX_VERSION} \
CROSS_COMPILE=${TARGET}- \
defconfig
for conf in $unsetConfs; do \
sed -i \
-e "s!^$conf=.*\$!# $conf is not set!" \
.config
done
for confV in $setConfs; do \
conf="${confV%=*}"
sed -i \
-e "s!^$conf=.*\$!$confV!" \
-e "s!^# $conf is not set\$!$confV!" \
.config
if ! grep -q "^$confV\$" .config; then \
echo "$confV" >> .config; \
fi
done
make oldconfig CROSS_COMPILE=${TARGET}-
for conf in $unsetConfs; do
! grep -q "^$conf=" .config
done
for confV in $setConfs; do
grep -q "^$confV\$" .config
done
make -j$(nproc) CROSS_COMPILE=${TARGET}-
set -eux
setConfs='
CONFIG_LAST_SUPPORTED_WCHAR=0
CONFIG_STATIC=y
'
unsetConfs='
CONFIG_FEATURE_SYNC_FANCY
CONFIG_FEATURE_HAVE_RPC
CONFIG_FEATURE_INETD_RPC
CONFIG_FEATURE_UTMP
CONFIG_FEATURE_WTMP
'
make \
-f ../busybox-${BUSYBOX_VERSION}/Makefile \
KBUILD_SRC=../busybox-${BUSYBOX_VERSION} \
CROSS_COMPILE=${TARGET}- \
defconfig
for conf in $unsetConfs; do
sed -i \
-e "s!^$conf=.*\$!# $conf is not set!" \
.config
done
for confV in $setConfs; do
conf="${confV%=*}"
sed -i \
-e "s!^$conf=.*\$!$confV!" \
-e "s!^# $conf is not set\$!$confV!" \
.config
if ! grep -q "^$confV\$" .config; then
echo "$confV" >> .config
fi
done
make oldconfig CROSS_COMPILE=${TARGET}-
for conf in $unsetConfs; do
! grep -q "^$conf=" .config
done
for confV in $setConfs; do
grep -q "^$confV\$" .config
done
make CROSS_COMPILE=${TARGET}-
EOF
WORKDIR ${HOME}/linux-${LINUX_VERSION}
RUN --network=none <<-EOF
@ -221,19 +224,8 @@ RUN --network=none <<-EOF
chown -R 1000:1000 tmp var/tmp home/user
EOF
FROM scratch as package
FROM base as package
COPY --from=install /rootfs /
USER 1000:1000
ENTRYPOINT ["/bin/sh"]
ENV ARCH=x86_64
ENV TARGET=${ARCH}-linux-musl
ENV HOST=${TARGET}
ENV BUILD=${TARGET}
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV USER=user
ENV HOME=/home/${USER}
ENV TZ=UTC
ENV LANG=C.UTF-8
ENV SOURCE_DATE_EPOCH=1
ENV KCONFIG_NOTIMESTAMP=1
ENV PS1="stage3 $ "