Skip to content

Commit f1a9707

Browse files
authored
Merge pull request #89 from threefoldtech/development-zos-v4-new-bootstrap
v4: use latest version expected from spec and latest ubuntu as base image
2 parents 7d2de62 + c955f4b commit f1a9707

18 files changed

Lines changed: 185 additions & 45 deletions

.github/workflows/kernel.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ name: Kernel
22
on:
33
push:
44
branches:
5-
- "*"
5+
- "*-v4"
6+
- "*-v4-*"
67
tags-ignore:
78
- v*
89
paths-ignore:
@@ -28,9 +29,9 @@ env:
2829

2930
jobs:
3031
kernel:
31-
name: "Zero-OS Kernel Image"
32+
name: "Zero-OS Kernel Image (v4)"
3233
runs-on: ubuntu-latest
33-
container: ubuntu:20.04
34+
container: ubuntu:24.04
3435
steps:
3536
- name: Checkout code
3637
uses: actions/checkout@v1
@@ -47,7 +48,7 @@ jobs:
4748
- name: "Install: go"
4849
uses: actions/setup-go@v1
4950
with:
50-
go-version: 1.21
51+
go-version: 1.23.4
5152
id: go
5253

5354
- name: "Install: requirements"

autobuild/tf-build-deps-clean.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,7 @@ deps+=(musl musl-tools)
5151
# bmon dependencies
5252
deps+=(libconfuse-dev ncurses-bin)
5353

54+
# xfsprogs dependencies
55+
deps+=(libinih-dev liburcu-dev)
56+
5457
apt-get install -y ${deps[@]}

autobuild/tf-build-deps.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,13 @@ deps+=(musl musl-tools)
5050
# bmon dependencies
5151
deps+=(libconfuse-dev ncurses-bin)
5252

53+
# xfsprogs dependencies
54+
deps+=(libinih-dev liburcu-dev)
55+
5356
apt-get install -y ${deps[@]}
5457

5558
# install go
56-
GOVER="1.21.0"
59+
GOVER="1.23.4"
5760
curl -L https://dl.google.com/go/go${GOVER}.linux-amd64.tar.gz > /tmp/go${GOVER}.linux-amd64.tar.gz
5861
tar -C /usr/local -xzf /tmp/go${GOVER}.linux-amd64.tar.gz
5962
mkdir -p /gopath

autobuild/tf-build-upload.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ echo "[+] branch: ${linkname}"
1313

1414
cp vmlinuz.efi "${kernel}"
1515

16-
curl -b "token=${BOOTSTRAP_TOKEN}" -X POST -F "kernel=@${kernel}" "https://bootstrap.grid.tf/api/kernel"
17-
curl -b "token=${BOOTSTRAP_TOKEN}" "https://bootstrap.grid.tf/api/symlink/${linkname}/${kernel}"
16+
curl -b "token=${BOOTSTRAP_TOKEN}" -X POST -F "kernel=@${kernel}" "https://v4.bootstrap.grid.tf/api/kernel"
17+
curl -b "token=${BOOTSTRAP_TOKEN}" "https://v4.bootstrap.grid.tf/api/symlink/${linkname}/${kernel}"

config/build/busybox-config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#
22
# Automatically generated make config: don't edit
33
# Busybox version: 1.36.1
4-
# Mon Aug 26 15:24:30 2024
4+
# Thu Jan 30 06:59:04 2025
55
#
66
CONFIG_HAVE_DOT_CONFIG=y
77

@@ -968,8 +968,8 @@ CONFIG_PSCAN=y
968968
CONFIG_ROUTE=y
969969
CONFIG_SLATTACH=y
970970
# CONFIG_SSL_CLIENT is not set
971-
CONFIG_TC=y
972-
CONFIG_FEATURE_TC_INGRESS=y
971+
# CONFIG_TC is not set
972+
# CONFIG_FEATURE_TC_INGRESS is not set
973973
CONFIG_TCPSVD=y
974974
CONFIG_UDPSVD=y
975975
CONFIG_TELNET=y

config/build/kernel-config-generic

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
#
22
# Automatically generated file; DO NOT EDIT.
3-
# Linux/x86 6.6.51 Kernel Configuration
3+
# Linux/x86 6.6.74 Kernel Configuration
44
#
5-
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
5+
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
66
CONFIG_CC_IS_GCC=y
7-
CONFIG_GCC_VERSION=90400
7+
CONFIG_GCC_VERSION=130300
88
CONFIG_CLANG_VERSION=0
99
CONFIG_AS_IS_GNU=y
10-
CONFIG_AS_VERSION=23400
10+
CONFIG_AS_VERSION=24200
1111
CONFIG_LD_IS_BFD=y
12-
CONFIG_LD_VERSION=23400
12+
CONFIG_LD_VERSION=24200
1313
CONFIG_LLD_VERSION=0
1414
CONFIG_CC_CAN_LINK=y
1515
CONFIG_CC_CAN_LINK_STATIC=y
16+
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
17+
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
18+
CONFIG_TOOLS_SUPPORT_RELR=y
1619
CONFIG_CC_HAS_ASM_INLINE=y
1720
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
1821
CONFIG_PAHOLE_VERSION=0
@@ -180,6 +183,7 @@ CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
180183
CONFIG_CC_HAS_INT128=y
181184
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
182185
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
186+
CONFIG_CC_NO_ARRAY_BOUNDS=y
183187
CONFIG_ARCH_SUPPORTS_INT128=y
184188
CONFIG_NUMA_BALANCING=y
185189
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
@@ -502,7 +506,6 @@ CONFIG_PHYSICAL_ALIGN=0x1000000
502506
CONFIG_DYNAMIC_MEMORY_LAYOUT=y
503507
CONFIG_RANDOMIZE_MEMORY=y
504508
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa
505-
# CONFIG_ADDRESS_MASKING is not set
506509
CONFIG_HOTPLUG_CPU=y
507510
# CONFIG_COMPAT_VDSO is not set
508511
CONFIG_LEGACY_VSYSCALL_XONLY=y
@@ -516,6 +519,7 @@ CONFIG_HAVE_LIVEPATCH=y
516519
# CONFIG_LIVEPATCH is not set
517520
# end of Processor type and features
518521

522+
CONFIG_CC_HAS_SLS=y
519523
CONFIG_CC_HAS_RETURN_THUNK=y
520524
CONFIG_CC_HAS_ENTRY_PADDING=y
521525
CONFIG_FUNCTION_PADDING_CFI=11
@@ -534,6 +538,7 @@ CONFIG_CALL_DEPTH_TRACKING=y
534538
CONFIG_CPU_IBPB_ENTRY=y
535539
CONFIG_CPU_IBRS_ENTRY=y
536540
CONFIG_CPU_SRSO=y
541+
# CONFIG_SLS is not set
537542
# CONFIG_GDS_FORCE_MITIGATION is not set
538543
CONFIG_MITIGATION_RFDS=y
539544
CONFIG_MITIGATION_SPECTRE_BHI=y
@@ -1041,11 +1046,11 @@ CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
10411046
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
10421047
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
10431048
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
1044-
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
1049+
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED is not set
10451050
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
10461051
CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
10471052
CONFIG_ZBUD=y
1048-
CONFIG_Z3FOLD=y
1053+
# CONFIG_Z3FOLD_DEPRECATED is not set
10491054
CONFIG_ZSMALLOC=y
10501055
# CONFIG_ZSMALLOC_STAT is not set
10511056
CONFIG_ZSMALLOC_CHAIN_SIZE=8
@@ -2316,6 +2321,7 @@ CONFIG_ZRAM_DEF_COMP_LZORLE=y
23162321
# CONFIG_ZRAM_DEF_COMP_842 is not set
23172322
CONFIG_ZRAM_DEF_COMP="lzo-rle"
23182323
CONFIG_ZRAM_WRITEBACK=y
2324+
# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
23192325
# CONFIG_ZRAM_MEMORY_TRACKING is not set
23202326
# CONFIG_ZRAM_MULTI_COMP is not set
23212327
CONFIG_BLK_DEV_LOOP=m
@@ -5058,6 +5064,7 @@ CONFIG_HID_GENERIC=m
50585064
CONFIG_HID_SENSOR_HUB=m
50595065
# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
50605066
# CONFIG_HID_ALPS is not set
5067+
# CONFIG_HID_MCP2200 is not set
50615068
# CONFIG_HID_MCP2221 is not set
50625069
# end of Special HID drivers
50635070

@@ -7014,9 +7021,9 @@ CONFIG_TMPFS_XATTR=y
70147021
# CONFIG_TMPFS_INODE64 is not set
70157022
# CONFIG_TMPFS_QUOTA is not set
70167023
CONFIG_HUGETLBFS=y
7024+
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
70177025
CONFIG_HUGETLB_PAGE=y
70187026
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
7019-
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
70207027
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
70217028
CONFIG_CONFIGFS_FS=y
70227029
CONFIG_EFIVAR_FS=y
@@ -7240,6 +7247,9 @@ CONFIG_ENCRYPTED_KEYS=m
72407247
# CONFIG_USER_DECRYPTED_DATA is not set
72417248
CONFIG_KEY_DH_OPERATIONS=y
72427249
# CONFIG_SECURITY_DMESG_RESTRICT is not set
7250+
CONFIG_PROC_MEM_ALWAYS_FORCE=y
7251+
# CONFIG_PROC_MEM_FORCE_PTRACE is not set
7252+
# CONFIG_PROC_MEM_NO_FORCE is not set
72437253
CONFIG_SECURITY=y
72447254
CONFIG_SECURITYFS=y
72457255
# CONFIG_SECURITY_NETWORK is not set
@@ -7272,9 +7282,16 @@ CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity"
72727282
#
72737283
# Memory initialization
72747284
#
7285+
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
7286+
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
7287+
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
72757288
CONFIG_INIT_STACK_NONE=y
7289+
# CONFIG_INIT_STACK_ALL_PATTERN is not set
7290+
# CONFIG_INIT_STACK_ALL_ZERO is not set
72767291
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
72777292
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
7293+
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
7294+
# CONFIG_ZERO_CALL_USED_REGS is not set
72787295
# end of Memory initialization
72797296

72807297
#
@@ -7779,6 +7796,8 @@ CONFIG_HAVE_ARCH_KGDB=y
77797796
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
77807797
# CONFIG_UBSAN is not set
77817798
CONFIG_HAVE_ARCH_KCSAN=y
7799+
CONFIG_HAVE_KCSAN_COMPILER=y
7800+
# CONFIG_KCSAN is not set
77827801
# end of Generic Kernel Debugging Instruments
77837802

77847803
#

initramfs.sh

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ fi
4141
#
4242
# Flags
4343
#
44-
OPTS=$(getopt -o adbtckMelmnzrh --long all,download,busybox,tools,cores,kernel,modules,extensions,clean,mrproper,nomirror,compact,release,help -n 'parse-options' -- "$@")
44+
OPTS=$(getopt -o adbtfckMelmnzrh --long all,download,busybox,tools,firmwares,cores,kernel,modules,extensions,clean,mrproper,nomirror,compact,release,help -n 'parse-options' -- "$@")
4545
if [ $? != 0 ]; then
4646
echo "Failed parsing options." >&2
4747
exit 1
@@ -56,6 +56,7 @@ if [ "$OPTS" != " --" ] && [ "$OPTS" != " --release --" ]; then
5656
DO_DOWNLOAD=0
5757
DO_BUSYBOX=0
5858
DO_TOOLS=0
59+
DO_FIRMWARES=0
5960
DO_CORES=0
6061
DO_KERNEL=0
6162
DO_KMODULES=0
@@ -73,6 +74,7 @@ while true; do
7374
-d | --download) DO_DOWNLOAD=1; shift ;;
7475
-b | --busybox) DO_BUSYBOX=1; shift ;;
7576
-t | --tools) DO_TOOLS=1; shift ;;
77+
-f | --firmwares) DO_FIRMWARES=1; shift ;;
7678
-c | --cores) DO_CORES=1; shift ;;
7779
-k | --kernel) DO_KERNEL=1; shift ;;
7880
-M | --modules) DO_KMODULES=1; shift ;;
@@ -88,6 +90,7 @@ while true; do
8890
echo " -d --download only download and extract archives"
8991
echo " -b --busybox only (re)build busybox"
9092
echo " -t --tools only (re)build tools (ssl, fuse, ...)"
93+
echo " -f --firmwares only (re)build linux-firmwares"
9194
echo " -c --cores only (re)build core0 and coreX"
9295
echo " -k --kernel only (re)build kernel (vmlinuz, produce final image)"
9396
echo " -M --modules only (re)build kernel modules"
@@ -496,12 +499,28 @@ optimize_size() {
496499

497500
echo "[+] optimizing binaries size"
498501

499-
for file in $(find ./bin ./sbin ./libexec ./usr/bin ./usr/sbin ./usr/libexec ./usr/lib -type f); do
502+
excludes=("./usr/lib/libc.so.6" "./usr/lib/libz.so.1.2.11" "./usr/lib/libzstd.so.1")
503+
504+
for file in $(find ./bin ./sbin ./usr/bin ./usr/sbin ./usr/libexec ./usr/lib -type f); do
505+
skipfile=0
506+
507+
for ex in "${excludes[@]}"; do
508+
if [ "${file}" == "${ex}" ]; then
509+
echo "[+] strip: skipping ${file}"
510+
skipfile=1
511+
fi
512+
done
513+
514+
if [ $skipfile -eq 1 ]; then
515+
continue
516+
fi
517+
500518
# dumping 4 first bytes
501519
header=$(dd if=$file bs=1 count=4 2> /dev/null | hexdump -e '/1 "%02X"')
502520

503521
# checking if it's a ELF file
504522
if [ "$header" == "7F454C46" ]; then
523+
# echo "[+] strip: ${file}"
505524
strip --strip-debug $file || true
506525
fi
507526
done
@@ -580,7 +599,8 @@ zero_os_root() {
580599
cp -a "${CONFDIR}"/debugfs/ssh-add-github-key "${ROOTDIR}"/usr/sbin/
581600

582601
# Ensure ncurses terminfo are available (needed for bmon)
583-
cp -ar /lib/terminfo ${ROOTDIR}/lib/
602+
cp -ar /usr/share/terminfo ${ROOTDIR}/lib/
603+
cp -ar /usr/share/terminfo ${ROOTDIR}/usr/share/
584604

585605
# Copy debugging helpers
586606
if [ "${BUILDMODE}" = "debug" ]; then
@@ -720,7 +740,6 @@ main() {
720740
build_netcat
721741
build_redis
722742
build_ethtool
723-
build_rtinfo
724743
build_seektime
725744
build_curl
726745
build_zflist
@@ -730,7 +749,6 @@ main() {
730749
build_bcache
731750
build_tcpdump
732751
build_rscoreutils
733-
build_firmware
734752
build_xfsprogs
735753
build_bmon
736754

@@ -745,6 +763,11 @@ main() {
745763
## disabled build
746764
# build_qemu
747765
# build_restic
766+
# build_rtinfo
767+
fi
768+
769+
if [[ $DO_ALL == 1 ]] || [[ $DO_FIRMWARES == 1 ]]; then
770+
build_firmware
748771
fi
749772

750773
if [[ $DO_ALL == 1 ]] || [[ $DO_CORES == 1 ]]; then

packages/curl.sh

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
1-
CURL_VERSION="7_65_1"
2-
CURL_CHECKSUM="651706b87c501317030ec317dd84f3ef"
3-
CURL_LINK="https://github.com/curl/curl/archive/curl-${CURL_VERSION}.tar.gz"
1+
CURL_VERSION="8.11.1"
2+
CURL_CHECKSUM="25e65a5156ca4928060b61cb051813db"
3+
CURL_LINK="https://curl.se/download/curl-${CURL_VERSION}.tar.xz"
44

55
download_curl() {
66
download_file $CURL_LINK $CURL_CHECKSUM
77
}
88

99
extract_curl() {
10-
# curl-curl is not a script mistake
11-
if [ ! -d "curl-curl-${CURL_VERSION}" ]; then
10+
if [ ! -d "curl-${CURL_VERSION}" ]; then
1211
echo "[+] extracting: curl-${CURL_VERSION}"
13-
tar -xf ${DISTFILES}/curl-${CURL_VERSION}.tar.gz -C .
12+
tar -xf ${DISTFILES}/curl-${CURL_VERSION}.tar.xz -C .
1413
fi
1514
}
1615

1716
prepare_curl() {
1817
echo "[+] configuring curl"
18+
1919
autoreconf -f -i -s
20-
./configure --disable-debug --enable-optimize --disable-curldebug --disable-symbol-hiding --disable-rt \
20+
./configure --prefix=${ROOTDIR}/usr \
21+
--disable-debug --enable-optimize --disable-curldebug --disable-symbol-hiding --disable-rt \
2122
--disable-ftp --disable-ldap --disable-ldaps --disable-rtsp --disable-proxy --disable-dict \
2223
--disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smb --disable-smtp --disable-gopher \
23-
--disable-manual --disable-libcurl-option --disable-sspi --disable-ntlm-wb --without-brotli --without-librtmp --without-winidn \
24-
--disable-threaded-resolver \
24+
--disable-manual --disable-libcurl-option --disable-sspi --without-brotli --without-librtmp --without-winidn \
25+
--disable-threaded-resolver --without-libpsl --without-zstd \
2526
--with-openssl
2627
}
2728

@@ -34,8 +35,7 @@ install_curl() {
3435
}
3536

3637
build_curl() {
37-
# curl-curl is not a script mistake
38-
pushd "${WORKDIR}/curl-curl-${CURL_VERSION}"
38+
pushd "${WORKDIR}/curl-${CURL_VERSION}"
3939

4040
prepare_curl
4141
compile_curl

packages/iproute2.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
IPROUTE2_VERSION="5.4.0"
2-
IPROUTE2_CHECKSUM="54d86cadb4cd1d19fd7114b4e53adf51"
1+
IPROUTE2_VERSION="6.13.0"
2+
IPROUTE2_CHECKSUM="1603d25120d03feeaba9b360d03ffaec"
33
IPROUTE2_LINK="https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-${IPROUTE2_VERSION}.tar.xz"
44

55
download_iproute2() {

packages/libfuse.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
FUSE_VERSION="2.9.7"
2-
FUSE_CHECKSUM="91c97e5ae0a40312115dfecc4887bd9d"
1+
FUSE_VERSION="2.9.9"
2+
FUSE_CHECKSUM="23009734faca2f62d337e3a59be4c280"
33
FUSE_LINK="https://github.com/libfuse/libfuse/archive/fuse-${FUSE_VERSION}.tar.gz"
44

55
download_fuse() {
@@ -16,6 +16,12 @@ extract_fuse() {
1616
prepare_fuse() {
1717
echo "[+] preparing fuse"
1818

19+
if [ ! -f .patched_fuse-2.9.9-closefrom-glibc-2-34.patch ]; then
20+
echo "[+] applying patch"
21+
patch -p1 < ${PATCHESDIR}/fuse-2.9.9-closefrom-glibc-2-34.patch
22+
touch .patched_fuse-2.9.9-closefrom-glibc-2-34.patch
23+
fi
24+
1925
./makeconf.sh
2026
./configure --prefix /usr
2127
}

0 commit comments

Comments
 (0)