diff options
-rw-r--r-- | data/defaults.json | 1 | ||||
-rw-r--r-- | data/generic-arm64.json | 6 | ||||
-rwxr-xr-x | scripts/build-config | 18 | ||||
-rwxr-xr-x | scripts/live-build-config | 2 |
4 files changed, 24 insertions, 3 deletions
diff --git a/data/defaults.json b/data/defaults.json index 6e2f36fd..84e425ed 100644 --- a/data/defaults.json +++ b/data/defaults.json @@ -8,6 +8,7 @@ "kernel_version": "5.10.76", "kernel_flavor": "amd64-vyos", "release_train": "sagitta", + "bootloaders": "syslinux,grub-efi", "additional_repositories": [ "deb [arch=amd64] https://repo.saltproject.io/py3/debian/10/amd64/3003 buster main", "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-rec-45 main" diff --git a/data/generic-arm64.json b/data/generic-arm64.json new file mode 100644 index 00000000..41fb86fa --- /dev/null +++ b/data/generic-arm64.json @@ -0,0 +1,6 @@ +{ + "inherit_from": "data/defaults.json", + "architecture": "arm64", + "kernel_flavor": "v8-arm64-vyos", + "bootloaders": "grub-efi" +} diff --git a/scripts/build-config b/scripts/build-config index fa0b3512..4f4a8c08 100755 --- a/scripts/build-config +++ b/scripts/build-config @@ -48,14 +48,27 @@ def get_validator(optdict, name): except KeyError: return None +def load_config(filename): + with open(filename, 'r') as f: + print(f'Loading {filename}') + this_config = json.load(f) + + if not 'inherit_from' in this_config: + print(f'No inheritance detected') + return this_config + + inherited_config = load_config(this_config['inherit_from']) + del this_config['inherit_from'] + inherited_config.update(this_config) + return inherited_config + # Load the build flavor file build_flavor = os.getenv('VYOS_BUILD_FLAVOR') if build_flavor is None: build_flavor = defaults.DEFAULT_BUILD_FLAVOR try: - with open(build_flavor, 'r') as f: - build_defaults = json.load(f) + build_defaults = load_config(build_flavor) except Exception as e: print("Failed to open the build flavor file {0}: {1}".format(build_flavor, e)) sys.exit(1) @@ -143,6 +156,7 @@ if env_check_retval > 0: args['kernel_version'] = build_defaults['kernel_version'] args['kernel_flavor'] = build_defaults['kernel_flavor'] +args['bootloaders'] = build_defaults['bootloaders'] # Save to file diff --git a/scripts/live-build-config b/scripts/live-build-config index c9d6ee1d..1813e608 100755 --- a/scripts/live-build-config +++ b/scripts/live-build-config @@ -39,7 +39,7 @@ lb config noauto \ --bootappend-live-failsafe "live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \ --linux-flavours {{kernel_flavor}} \ --linux-packages linux-image-{{kernel_version}} \ - --bootloader syslinux,grub-efi \ + --bootloader {{bootloaders}} \ --binary-images iso-hybrid \ --checksums 'sha256 md5' \ --debian-installer none \ |