summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/defaults.json1
-rw-r--r--data/generic-arm64.json6
-rwxr-xr-xscripts/build-config18
-rwxr-xr-xscripts/live-build-config2
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 \