1 |
From: Andreas K. Hüttel <dilfridge@g.o> |
2 |
|
3 |
Signed-off-by: Andreas K. Hüttel <dilfridge@g.o> |
4 |
--- |
5 |
catalyst/base/stagebase.py | 44 +++++++++++++++++++++++++------------- |
6 |
1 file changed, 29 insertions(+), 15 deletions(-) |
7 |
|
8 |
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py |
9 |
index afeda722..0cf3495a 100644 |
10 |
--- a/catalyst/base/stagebase.py |
11 |
+++ b/catalyst/base/stagebase.py |
12 |
@@ -1061,21 +1061,28 @@ class StageBase(TargetBase, ClearBase, GenBase): |
13 |
|
14 |
shutil.copy('/etc/resolv.conf', self.settings['chroot_path'] + '/etc/') |
15 |
|
16 |
- # Copy over the binary interpreter (qemu), if applicable; note that it's given |
17 |
- # as full path and goes to the same place in the chroot |
18 |
+ # Copy over the binary interpreter(s) (qemu), if applicable; note that they are given |
19 |
+ # as space-separated list of full paths and go to the same place in the chroot |
20 |
if "interpreter" in self.settings: |
21 |
- if not os.path.exists(self.settings["interpreter"]): |
22 |
- raise CatalystError( |
23 |
- "Can't find interpreter " + self.settings["interpreter"], |
24 |
- print_traceback=True) |
25 |
|
26 |
- log.notice('Copying binary interpreter %s into chroot', self.settings['interpreter']) |
27 |
+ if isinstance(self.settings["interpreter"], str): |
28 |
+ myints = [self.settings["interpreter"]] |
29 |
+ else: |
30 |
+ myints = self.settings["interpreter"] |
31 |
+ |
32 |
+ for myi in myints: |
33 |
+ if not os.path.exists(myi): |
34 |
+ raise CatalystError( |
35 |
+ "Can't find interpreter " + myi, |
36 |
+ print_traceback=True) |
37 |
|
38 |
- if os.path.exists(self.settings['chroot_path'] + '/' + self.settings['interpreter']): |
39 |
- os.rename(self.settings['chroot_path'] + '/' + self.settings['interpreter'], self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst') |
40 |
+ log.notice('Copying binary interpreter %s into chroot', myi) |
41 |
|
42 |
- shutil.copy(self.settings['interpreter'], |
43 |
- self.settings['chroot_path'] + '/' + self.settings['interpreter']) |
44 |
+ if os.path.exists(self.settings['chroot_path'] + '/' + myi): |
45 |
+ os.rename(self.settings['chroot_path'] + '/' + myi, self.settings['chroot_path'] + '/' + myi + '.catalyst') |
46 |
+ |
47 |
+ shutil.copy(myi, |
48 |
+ self.settings['chroot_path'] + '/' + myi) |
49 |
|
50 |
# Copy over the envscript, if applicable |
51 |
if "envscript" in self.settings: |
52 |
@@ -1242,12 +1249,19 @@ class StageBase(TargetBase, ClearBase, GenBase): |
53 |
if os.path.exists(hosts_file + '.catalyst'): |
54 |
os.rename(hosts_file + '.catalyst', hosts_file) |
55 |
|
56 |
- # optionally clean up binary interpreter |
57 |
+ # optionally clean up binary interpreter(s) |
58 |
if "interpreter" in self.settings: |
59 |
- if os.path.exists(self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst'): |
60 |
- os.rename(self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst', self.settings['chroot_path'] + '/' + self.settings['interpreter']) |
61 |
+ |
62 |
+ if isinstance(self.settings["interpreter"], str): |
63 |
+ myints = [self.settings["interpreter"]] |
64 |
else: |
65 |
- os.remove(self.settings['chroot_path'] + '/' + self.settings['interpreter']) |
66 |
+ myints = self.settings["interpreter"] |
67 |
+ |
68 |
+ for myi in myints: |
69 |
+ if os.path.exists(self.settings['chroot_path'] + '/' + myi + '.catalyst'): |
70 |
+ os.rename(self.settings['chroot_path'] + '/' + myi + '.catalyst', self.settings['chroot_path'] + '/' + myi) |
71 |
+ else: |
72 |
+ os.remove(self.settings['chroot_path'] + '/' + myi) |
73 |
|
74 |
# optionally clean up portage configs |
75 |
if ("portage_prefix" in self.settings and |
76 |
-- |
77 |
2.26.2 |