summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/lib/wic/plugins/source/rootfs.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/scripts/lib/wic/plugins/source/rootfs.py b/scripts/lib/wic/plugins/source/rootfs.py
index 705aeb5563..40419a64b3 100644
--- a/scripts/lib/wic/plugins/source/rootfs.py
+++ b/scripts/lib/wic/plugins/source/rootfs.py
@@ -16,11 +16,11 @@ import os
16import shutil 16import shutil
17import sys 17import sys
18 18
19from oe.path import copyhardlinktree 19from oe.path import copyhardlinktree, copytree
20 20
21from wic import WicError 21from wic import WicError
22from wic.pluginbase import SourcePlugin 22from wic.pluginbase import SourcePlugin
23from wic.misc import get_bitbake_var 23from wic.misc import get_bitbake_var, exec_native_cmd
24 24
25logger = logging.getLogger('wic') 25logger = logging.getLogger('wic')
26 26
@@ -44,6 +44,15 @@ class RootfsPlugin(SourcePlugin):
44 44
45 return os.path.realpath(image_rootfs_dir) 45 return os.path.realpath(image_rootfs_dir)
46 46
47 @staticmethod
48 def __get_pseudo(native_sysroot, rootfs):
49 pseudo = "export PSEUDO_PREFIX=%s/usr;" % native_sysroot
50 pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % os.path.join(rootfs, "../pseudo")
51 pseudo += "export PSEUDO_PASSWD=%s;" % rootfs
52 pseudo += "export PSEUDO_NOSYMLINKEXP=1;"
53 pseudo += "%s " % get_bitbake_var("FAKEROOTCMD")
54 return pseudo
55
47 @classmethod 56 @classmethod
48 def do_prepare_partition(cls, part, source_params, cr, cr_workdir, 57 def do_prepare_partition(cls, part, source_params, cr, cr_workdir,
49 oe_builddir, bootimg_dir, kernel_dir, 58 oe_builddir, bootimg_dir, kernel_dir,
@@ -78,9 +87,16 @@ class RootfsPlugin(SourcePlugin):
78 87
79 if os.path.lexists(new_rootfs): 88 if os.path.lexists(new_rootfs):
80 shutil.rmtree(os.path.join(new_rootfs)) 89 shutil.rmtree(os.path.join(new_rootfs))
81
82 copyhardlinktree(part.rootfs_dir, new_rootfs) 90 copyhardlinktree(part.rootfs_dir, new_rootfs)
83 91
92 if os.path.lexists(os.path.join(new_rootfs, "../pseudo")):
93 shutil.rmtree(os.path.join(new_rootfs, "../pseudo"))
94 copytree(os.path.join(part.rootfs_dir, "../pseudo"),
95 os.path.join(new_rootfs, "../pseudo"))
96 pseudo_cmd = "%s -B -m %s -M %s" % (cls.__get_pseudo(native_sysroot,new_rootfs),
97 part.rootfs_dir, new_rootfs)
98 exec_native_cmd(pseudo_cmd, native_sysroot)
99
84 for path in part.include_path or []: 100 for path in part.include_path or []:
85 copyhardlinktree(path, new_rootfs) 101 copyhardlinktree(path, new_rootfs)
86 102