parent
cf0bc19356
commit
bdd1161a51
@ -0,0 +1,130 @@
|
|||||||
|
From 119f3fb4bda07634aad9b6c6c3790cfb8253ebb0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Quigley <simon@tsimonq2.net>
|
||||||
|
Date: Fri, 22 Nov 2024 16:36:22 -0600
|
||||||
|
Subject: [PATCH 1/3] [dracut] Add an options setting for additional Dracut
|
||||||
|
parameters
|
||||||
|
|
||||||
|
---
|
||||||
|
src/modules/dracut/dracut.conf | 5 +++++
|
||||||
|
src/modules/dracut/dracut.schema.yaml | 1 +
|
||||||
|
src/modules/dracut/main.py | 23 +++++++++++++++--------
|
||||||
|
3 files changed, 21 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/modules/dracut/dracut.conf b/src/modules/dracut/dracut.conf
|
||||||
|
index ba1a7b08cb..c3f0c2469c 100644
|
||||||
|
--- a/src/modules/dracut/dracut.conf
|
||||||
|
+++ b/src/modules/dracut/dracut.conf
|
||||||
|
@@ -8,3 +8,8 @@
|
||||||
|
# set a custom name, including the path
|
||||||
|
#
|
||||||
|
initramfsName: /boot/initramfs-freebsd.img
|
||||||
|
+
|
||||||
|
+# Optional: define a list of strings to be passed as arguments to Dracut
|
||||||
|
+# By default, -f is always included
|
||||||
|
+options:
|
||||||
|
+ - "-f"
|
||||||
|
diff --git a/src/modules/dracut/dracut.schema.yaml b/src/modules/dracut/dracut.schema.yaml
|
||||||
|
index d6008e1bf5..de1114ccc9 100644
|
||||||
|
--- a/src/modules/dracut/dracut.schema.yaml
|
||||||
|
+++ b/src/modules/dracut/dracut.schema.yaml
|
||||||
|
@@ -7,3 +7,4 @@ additionalProperties: false
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
initramfsName: { type: string }
|
||||||
|
+ options: { type: array, items: { type: string } }
|
||||||
|
diff --git a/src/modules/dracut/main.py b/src/modules/dracut/main.py
|
||||||
|
index 85e6f3e7ff..e987373879 100644
|
||||||
|
--- a/src/modules/dracut/main.py
|
||||||
|
+++ b/src/modules/dracut/main.py
|
||||||
|
@@ -35,15 +35,22 @@ def run_dracut():
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
+ # Fetch the job configuration
|
||||||
|
+ cli_options = ["-f"]
|
||||||
|
+ initramfs_name = libcalamares.job.configuration.get('initramfsName', None)
|
||||||
|
+ dracut_options = libcalamares.job.configuration.get('options', [])
|
||||||
|
+
|
||||||
|
+ # Parse the custom options if there are any
|
||||||
|
+ for option in dracut_options:
|
||||||
|
+ # Deduplication check
|
||||||
|
+ if option not in cli_options:
|
||||||
|
+ cli_options.append(option)
|
||||||
|
+
|
||||||
|
+ if initramfs_name:
|
||||||
|
+ cli_options.append(initramfs_name)
|
||||||
|
+
|
||||||
|
try:
|
||||||
|
- initramfs_name = libcalamares.job.configuration['initramfsName']
|
||||||
|
- target_env_process_output(['dracut', '-f', initramfs_name])
|
||||||
|
- except KeyError:
|
||||||
|
- try:
|
||||||
|
- target_env_process_output(['dracut', '-f'])
|
||||||
|
- except subprocess.CalledProcessError as cpe:
|
||||||
|
- libcalamares.utils.warning(f"Dracut failed with output: {cpe.output}")
|
||||||
|
- return cpe.returncode
|
||||||
|
+ target_env_process_output(['dracut'] + cli_options)
|
||||||
|
except subprocess.CalledProcessError as cpe:
|
||||||
|
libcalamares.utils.warning(f"Dracut failed with output: {cpe.output}")
|
||||||
|
return cpe.returncode
|
||||||
|
|
||||||
|
From 8ea29c271f38a80290a0981b8f51eb5d9f2d25a8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Quigley <simon@tsimonq2.net>
|
||||||
|
Date: Fri, 22 Nov 2024 19:46:32 -0600
|
||||||
|
Subject: [PATCH 2/3] [dracut] Ensure the user can remove -f but it stays as
|
||||||
|
the default
|
||||||
|
|
||||||
|
---
|
||||||
|
src/modules/dracut/main.py | 13 +++----------
|
||||||
|
1 file changed, 3 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/modules/dracut/main.py b/src/modules/dracut/main.py
|
||||||
|
index e987373879..9e2bc318f5 100644
|
||||||
|
--- a/src/modules/dracut/main.py
|
||||||
|
+++ b/src/modules/dracut/main.py
|
||||||
|
@@ -36,21 +36,14 @@ def run_dracut():
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
# Fetch the job configuration
|
||||||
|
- cli_options = ["-f"]
|
||||||
|
initramfs_name = libcalamares.job.configuration.get('initramfsName', None)
|
||||||
|
- dracut_options = libcalamares.job.configuration.get('options', [])
|
||||||
|
-
|
||||||
|
- # Parse the custom options if there are any
|
||||||
|
- for option in dracut_options:
|
||||||
|
- # Deduplication check
|
||||||
|
- if option not in cli_options:
|
||||||
|
- cli_options.append(option)
|
||||||
|
+ dracut_options = libcalamares.job.configuration.get('options', ['-f'])
|
||||||
|
|
||||||
|
if initramfs_name:
|
||||||
|
- cli_options.append(initramfs_name)
|
||||||
|
+ dracut_options.append(initramfs_name)
|
||||||
|
|
||||||
|
try:
|
||||||
|
- target_env_process_output(['dracut'] + cli_options)
|
||||||
|
+ target_env_process_output(['dracut'] + dracut_options)
|
||||||
|
except subprocess.CalledProcessError as cpe:
|
||||||
|
libcalamares.utils.warning(f"Dracut failed with output: {cpe.output}")
|
||||||
|
return cpe.returncode
|
||||||
|
|
||||||
|
From 3151eb7c8244020adc594635154c5bb714027dbb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Quigley <simon@tsimonq2.net>
|
||||||
|
Date: Fri, 22 Nov 2024 19:47:15 -0600
|
||||||
|
Subject: [PATCH 3/3] [dracut] Stylistic update for conf file list
|
||||||
|
|
||||||
|
---
|
||||||
|
src/modules/dracut/dracut.conf | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/modules/dracut/dracut.conf b/src/modules/dracut/dracut.conf
|
||||||
|
index c3f0c2469c..190933bcdd 100644
|
||||||
|
--- a/src/modules/dracut/dracut.conf
|
||||||
|
+++ b/src/modules/dracut/dracut.conf
|
||||||
|
@@ -11,5 +11,4 @@ initramfsName: /boot/initramfs-freebsd.img
|
||||||
|
|
||||||
|
# Optional: define a list of strings to be passed as arguments to Dracut
|
||||||
|
# By default, -f is always included
|
||||||
|
-options:
|
||||||
|
- - "-f"
|
||||||
|
+options: [ "-f" ]
|
Loading…
Reference in new issue