summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2026-05-01 22:00:19 +0100
committerGitHub <noreply@github.com>2026-05-01 22:00:19 +0100
commitf8a364a85b57e25bab12715980e541b9064acdd0 (patch)
treed532008fd992bf1cbd4c520740e2be50bc663aa4 /scripts
parent81c74e964433f6bec3d459b6dc02acd318be800e (diff)
parent033929ee38b284cb2dd8a5c98dc4cc2329744741 (diff)
downloadvyos-build-f8a364a85b57e25bab12715980e541b9064acdd0.tar.gz
vyos-build-f8a364a85b57e25bab12715980e541b9064acdd0.zip
Merge pull request #1156 from jestabro/extend-activation-system
T8445: add support for extension of activation system
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/image-build/build-vyos-image19
-rw-r--r--scripts/image-build/utils.py2
2 files changed, 21 insertions, 0 deletions
diff --git a/scripts/image-build/build-vyos-image b/scripts/image-build/build-vyos-image
index 11537de0..fb91cfc6 100755
--- a/scripts/image-build/build-vyos-image
+++ b/scripts/image-build/build-vyos-image
@@ -141,6 +141,8 @@ def build():
from utils import cmd, rc_cmd
from utils import directories
+ from utils import activation_hint
+ from utils import activation_init
## Check if there are missing build dependencies
deps = {
@@ -491,6 +493,13 @@ DOCUMENTATION_URL="{build_config['documentation_url']}"
with open(os.path.join(binary_includes_dir, 'version.json'), 'w') as f:
json.dump(version_data, f)
+ # For initialization of activation scripts, we need to know if we
+ # are building with create_raw_image
+ if build_config["image_format"] != ["iso"]:
+ raw_build_hint = os.path.join(vyos_data_dir, os.path.basename(activation_hint))
+ with open(raw_build_hint, 'w') as f:
+ pass
+
# For backwards compatibility with 'add system image' script from older versions
# we need a file in the old format so that script can find out the version of the image
# for upgrade
@@ -629,6 +638,16 @@ DOCUMENTATION_URL="{build_config['documentation_url']}"
with open(file_path, 'w') as f:
f.write(build_config["default_config"])
+ ## Allow override of which activation scripts are enabled at boot
+ if has_nonempty_key(build_config, "activation_init"):
+ file_path = os.path.join(
+ chroot_includes_dir,
+ activation_init.lstrip(os.sep)
+ )
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
+ with open(file_path, 'w') as f:
+ f.write(build_config["activation_init"])
+
## Configure live-build
lb_config_tmpl = jinja2.Template("""
lb config noauto \
diff --git a/scripts/image-build/utils.py b/scripts/image-build/utils.py
index 9e6dc634..5f557333 100644
--- a/scripts/image-build/utils.py
+++ b/scripts/image-build/utils.py
@@ -26,6 +26,8 @@ import defaults
import vyos
from vyos.defaults import directories
+from vyos.defaults import activation_hint
+from vyos.defaults import activation_init
def check_build_config():