diff --git a/src/bootstrap/stage1/Containerfile b/src/bootstrap/stage1/Containerfile index c4777ca..eee8f5e 100644 --- a/src/bootstrap/stage1/Containerfile +++ b/src/bootstrap/stage1/Containerfile @@ -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 diff --git a/src/bootstrap/stage2/Containerfile b/src/bootstrap/stage2/Containerfile index d2b804e..3bb5575 100644 --- a/src/bootstrap/stage2/Containerfile +++ b/src/bootstrap/stage2/Containerfile @@ -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 $ " diff --git a/src/bootstrap/stage3/Containerfile b/src/bootstrap/stage3/Containerfile index 9fc3643..b0df328 100644 --- a/src/bootstrap/stage3/Containerfile +++ b/src/bootstrap/stage3/Containerfile @@ -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 $ "