diff --git a/rootfs.py b/rootfs.py index 5a9e798..bce02ac 100755 --- a/rootfs.py +++ b/rootfs.py @@ -12,6 +12,7 @@ you can run bootstap inside chroot. # SPDX-FileCopyrightText: 2021 Bastian Bittorf # SPDX-FileCopyrightText: 2021 Melg Eight # SPDX-FileCopyrightText: 2021-23 fosslinux +# SPDX-FileCopyrightText: 2023-24 Gábor Stefanik import argparse import os @@ -31,6 +32,7 @@ def create_configuration_file(args): config.write(f"CHROOT={args.chroot or args.bwrap}\n") config.write(f"UPDATE_CHECKSUMS={args.update_checksums}\n") config.write(f"JOBS={args.cores}\n") + config.write(f"SWAP_SIZE={args.swap}\n") config.write(f"INTERNAL_CI={args.internal_ci or False}\n") config.write(f"BARE_METAL={args.bare_metal}\n") if (args.bare_metal or args.qemu) and not args.kernel: @@ -44,7 +46,7 @@ def create_configuration_file(args): config.write("KERNEL_BOOTSTRAP=False\n") config.write(f"BUILD_KERNELS={args.update_checksums or args.build_kernels}\n") -# pylint: disable=too-many-statements +# pylint: disable=too-many-statements,too-many-branches def main(): """ A few command line arguments to customize bootstrap. @@ -86,6 +88,8 @@ def main(): parser.add_argument("--early-preseed", help="Skip early stages of live-bootstrap.", nargs=None) parser.add_argument("--internal-ci", help="INTERNAL for github CI") + parser.add_argument("-s", "--swap", help="Swap space to allocate in Linux", + default=0) # QEMU arguments parser.add_argument("-q", "--qemu", help="Use QEMU", @@ -143,6 +147,13 @@ def main(): else: args.target_size = 0 + # Swap file size validation + if args.qemu or args.bare_metal: + args.swap = (int(str(args.swap).rstrip('gGmM')) * + (1024 if str(args.swap).lower().endswith('g') else 1)) + else: + args.swap = 0 + # bootstrap.cfg try: os.remove(os.path.join('steps', 'bootstrap.cfg')) diff --git a/steps/improve/swap.sh b/steps/improve/swap.sh new file mode 100644 index 0000000..6dea7a4 --- /dev/null +++ b/steps/improve/swap.sh @@ -0,0 +1,19 @@ + +#!/bin/sh +# +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +# Set up swap + +. /steps/bootstrap.cfg +. /steps/env + +if ! test -f /swapfile +then + echo "Making swap..." + dd if=/dev/zero of=/swapfile bs=1M count=${SWAP_SIZE} + mkswap /swapfile +fi +swapon /swapfile diff --git a/steps/manifest b/steps/manifest index 6dedaea..d692f86 100644 --- a/steps/manifest +++ b/steps/manifest @@ -119,6 +119,7 @@ build: linux-4.9.10 ( BUILD_LINUX == True ) jump: break ( INTERNAL_CI == pass1 ) jump: linux ( CHROOT == False ) improve: finalize_fhs +improve: swap ( SWAP_SIZE != 0 ) build: musl-1.2.4 build: curl-8.5.0 improve: populate_device_nodes