# SPDX-FileCopyrightText: 2023 Samuel Tyler <samuel@samuelt.me>
#
# 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.27.1
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 )
build: payload-import-1.0 ( KERNEL_BOOTSTRAP == True )
jump: fiwix ( KERNEL_BOOTSTRAP == True )
improve: reconfigure ( CONFIGURATOR != 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: oyacc-6.6
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: tcc-0.9.27
improve: musl_target
build: musl-1.1.24
build: tcc-0.9.27
build: musl-1.1.24
build: tcc-0.9.27
build: grep-2.4
build: musl-1.1.24
build: sed-4.0.9
build: bzip2-1.0.8
build: m4-1.4.7
build: heirloom-devtools-070527
build: flex-2.5.11
build: flex-2.6.4
uninstall: heirloom-devtools-070527
build: bison-3.4.1
build: bison-3.4.1
build: bison-3.4.1
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.5
build: linux-headers-4.14.341-openela
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.08.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.341-openela ( BUILD_LINUX == True )
jump: break ( INTERNAL_CI == pass1 )
improve: populate_device_nodes
jump: linux ( CHROOT == False )
jump: move_disk ( KERNEL_BOOTSTRAP == True )
improve: import_payload ( KERNEL_BOOTSTRAP == True )
improve: finalize_job_count
improve: finalize_fhs
improve: open_console ( CONSOLES == True )
improve: swap ( SWAP_SIZE != 0 )
build: musl-1.2.5
build: curl-8.17.0
improve: get_network ( CHROOT == False )
build: bash-5.2.15
improve: open_console ( CONSOLES == True )
build: xz-5.6.4
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: zlib-1.3.1
build: dist-3.5
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.8.9
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.12.5
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.15.7
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.16.3
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.17.2
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.17.4
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.18.4
build: automake-1.16.3
build: autoconf-2.71
build: bison-3.6.4
build: bison-3.7.6
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.22.4
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.24.4
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.30.3
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.36.3
build: bison-3.8.2
build: perl-Devel-Tokenizer-C-0.11
build: perl-5.42.0
uninstall: perl-5.6.2 perl-5.8.9
build: openssl-3.6.0
build: ca-certificates-3.119.1
build: curl-8.17.0
build: patch-2.8
build: gcc-4.7.4
build: binutils-2.41
build: musl-1.2.5
build: python-2.0.1
build: python-2.0.1
build: python-2.3.7
build: python-2.3.7
build: gperf-3.3
build: gettext-0.26
build: perl-Text-CSV-2.06
build: texinfo-7.2
build: libffi-3.5.2
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
build: libunistring-1.4.1
build: gc-8.2.12
build: guile-3.0.11
build: which-2.21
build: grep-3.7
build: sed-4.8
build: autogen-5.18.16
jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1
build: gcc-10.5.0
build: binutils-2.41
build: gcc-15.2.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
build: libarchive-3.5.2
improve: cleanup_filesystem
improve: null_time ( FORCE_TIMESTAMPS == True )
improve: update_checksums ( UPDATE_CHECKSUMS == True )
improve: after
