live-bootstrap/steps/manifest
Gábor Stefanik 11d3605b08 Upgrade Linux kernel to 4.14.336
This is the last LTS version buildable using GCC 4.0.x. The next one,
version 4.19, requires at least GCC 4.6.

Fortunately, this is also the first version of the Linux kernel
without firmware blobs being included in /firmware, so the FSFLA
deblob scripts aren't needed anymore to ensure a fully auditable
kernel - the 3 remaining drivers that do include blobs masquerading
as source code are removed via a patch, avoiding all the other side
effects of the deblob scripts.
This doesn't compromise the trustworthiness of the bootstrapped
environment, since all the other drivers deblob would remove use
the firmware loader mechanism, which does nothing when the actual
firmware blobs aren't installed on the system separately. Features
dependent on firmware still won't work, but many drivers that load
firmware do so only optionally. This includes r8169, the driver for
the Realtek gigabit NICs found on many x86 motherboards.

This kernel is considerably larger than 4.9.10, and we build more
of it (including drivers that would previously get stripped away by
the deblob script, such as r8169), so to accommodate that, Fiwix
initrd size is increased by 64MiB, while lowering kexec space by
the same amount to ensure enough userspace memory available in Fiwix.
Fiwix's maximum open file count is also bumped from 1.5K to 2.5K.

The Documentation folder is deleted before build, to further save
space in the ramdisk.
2024-02-17 15:37:33 +01:00

211 lines
5.8 KiB
Text

# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file follows a very simple, human readable and machine parseable syntax.
# Each line is in the format:
# <directive>: <arguments> <predicate>
#
# The supported directives and arguments are:
# - build; simply builds a particular package.
# eg, build: make-3.82
# - improve; runs a script that makes a distinct and logical improvement to the system.
# eg, improve: use_fhs
# - define: define a variable based upon other variables
# eg, define: BUILD_FIWIX = KERNEL_BOOTSTRAP == True || BUILD_KERNELS == True
# - jump: jump (usually) to a new kernel, executes a script with that name
# eg, jump: fiwix
# - uninstall; removes a package or filenames
# eg, uninstall: perl-5.6.2
# eg, uninstall: /usr/bin/lex /usr/bin/flex
#
# The following directives have special significance:
# - build directives beginning with "bash" (as well as jumps) trigger the generation of
# a new script
# - the first improve directive containing "network" is used by generator.py to deduce
# what source files need to be downloaded in advance (files referenced after that will
# be downloaded during bootstrap, unless --external-sources is given)
#
# Other features:
# - predicate; based on variables set in bootstrap.cfg, require for something to execute
# must be enclosed in brackets with spaces padded
# eg, build: fiwix-1.5.0-lb1 ( BUILD_FIWIX == True )
build: checksum-transcriber-1.0
build: simple-patch-1.0
build: mes-0.25
build: tcc-0.9.26
build: tcc-0.9.27
define: BUILD_FIWIX = ( KERNEL_BOOTSTRAP == True || BUILD_KERNELS == True )
build: fiwix-1.5.0-lb1 ( BUILD_FIWIX == True )
build: lwext4-1.0.0-lb1 ( BUILD_FIWIX == True )
build: kexec-fiwix-1.0 ( BUILD_FIWIX == True )
jump: fiwix ( KERNEL_BOOTSTRAP == True )
define: JOBS = 1 ( KERNEL_BOOTSTRAP == True )
build: make-3.82
build: patch-2.5.9
build: gzip-1.2.4
build: tar-1.12
build: sed-4.0.9
build: bzip2-1.0.8
build: coreutils-5.0
build: heirloom-devtools-070527
build: bash-2.05b
improve: setup_repo
improve: update_env
improve: merged_usr
improve: populate_device_nodes
define: CONSOLES = ( INTERACTIVE == True && CHROOT == False )
improve: open_console ( CONSOLES == True )
build: flex-2.5.11
build: tcc-0.9.27
improve: musl_libdir
build: musl-1.1.24
build: tcc-0.9.27
build: musl-1.1.24
build: tcc-0.9.27
build: sed-4.0.9
build: bzip2-1.0.8
build: m4-1.4.7
build: flex-2.6.4
uninstall: /usr/bin/yacc
build: bison-3.4.1
build: bison-3.4.1
build: bison-3.4.1
build: grep-2.4
build: diffutils-2.7
build: coreutils-5.0
build: coreutils-6.10
build: gawk-3.0.4
build: perl-5.000
build: perl-5.003
build: perl5.004-05
build: perl5.005-03
build: perl-5.6.2
uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03
build: autoconf-2.52
build: automake-1.6.3
build: automake-1.6.3
build: autoconf-2.53
build: automake-1.7
build: autoconf-2.54
build: autoconf-2.55
build: automake-1.7.8
build: autoconf-2.57
build: autoconf-2.59
build: automake-1.8.5
build: help2man-1.36.4
build: autoconf-2.61
build: automake-1.9.6
build: automake-1.10.3
build: autoconf-2.64
build: automake-1.11.2
build: autoconf-2.69
build: libtool-2.2.4
build: automake-1.15.1
build: binutils-2.30
build: musl-1.1.24
build: tcc-0.9.27
improve: populate_device_nodes
build: gcc-4.0.4
build: findutils-4.2.33
build: musl-1.2.4
build: linux-headers-4.14.336
build: gcc-4.0.4
build: util-linux-2.19.1
build: e2fsprogs-1.45.7
build: dhcpcd-10.0.1
build: kbd-1.15
build: make-3.82
build: ed-1.4
build: bc-1.07.1
define: BUILD_LINUX = ( CHROOT == False || BUILD_KERNELS == True )
build: kexec-linux-1.0.0 ( BUILD_LINUX == True )
build: kexec-tools-2.0.22 ( BUILD_LINUX == True )
improve: clean_sources
improve: clean_artifacts
build: linux-4.14.336 ( BUILD_LINUX == True )
jump: break ( INTERNAL_CI == pass1 )
improve: populate_device_nodes
jump: linux ( CHROOT == False )
jump: move_disk ( KERNEL_BOOTSTRAP == True )
improve: finalize_job_count
improve: finalize_fhs
improve: open_console ( CONSOLES == True )
improve: swap ( SWAP_SIZE != 0 )
build: musl-1.2.4
build: curl-8.5.0
improve: get_network ( CHROOT == False )
build: bash-5.2.15
improve: open_console ( CONSOLES == True )
build: xz-5.4.1
build: file-5.44
build: libtool-2.4.7
build: tar-1.34
build: coreutils-9.4
build: pkg-config-0.29.2
build: make-4.2.1
build: gmp-6.2.1
build: autoconf-archive-2021.02.19
build: mpfr-4.1.0
build: mpc-1.2.1
build: flex-2.5.33
build: bison-2.3
build: bison-3.4.2
build: perl-5.10.1
build: dist-3.5-236
build: perl-5.32.1
uninstall: perl-5.6.2 perl-5.10.1
build: libarchive-3.5.2
build: openssl-1.1.1l
build: ca-certificates-3.95
build: curl-8.5.0
build: zlib-1.2.13
build: automake-1.16.3
build: autoconf-2.71
build: patch-2.7.6
build: gettext-0.21
build: texinfo-6.7
build: gcc-4.7.4
build: binutils-2.41
build: gperf-3.1
build: libunistring-0.9.10
build: libffi-3.3
build: libatomic_ops-7.6.10
build: gc-8.0.4
build: guile-3.0.9
build: which-2.21
build: grep-3.7
build: sed-4.8
build: autogen-5.18.16
build: musl-1.2.4
build: python-2.0.1
build: python-2.0.1
build: python-2.3.7
build: python-2.3.7
build: python-2.5.6
build: python-3.1.5
build: python-3.1.5
build: python-3.3.7
build: python-3.4.10
build: python-3.8.16
build: python-3.11.1
uninstall: python-2.0.1 python-2.3.7 python-3.1.5 python-3.3.7 python-3.4.10 python-3.8.16
jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1
build: gcc-10.4.0
build: binutils-2.41
build: gcc-13.1.0
build: grub-2.06 ( BUILD_LINUX == True )
improve: make_bootable ( CHROOT == False )
build: libmd-1.1.0
build: libbsd-0.11.8
build: shadow-4.14.3
build: opendoas-6.8.2
build: gzip-1.13
build: diffutils-3.10
build: gawk-5.3.0
build: m4-1.4.19
improve: cleanup_filesystem
improve: null_time ( FORCE_TIMESTAMPS == True )
improve: update_checksums ( UPDATE_CHECKSUMS == True )
improve: after