diff options
Diffstat (limited to 'scripts/lib')
| -rw-r--r-- | scripts/lib/wic/plugins/source/rootfs.py | 22 |
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 | |||
| 16 | import shutil | 16 | import shutil |
| 17 | import sys | 17 | import sys |
| 18 | 18 | ||
| 19 | from oe.path import copyhardlinktree | 19 | from oe.path import copyhardlinktree, copytree |
| 20 | 20 | ||
| 21 | from wic import WicError | 21 | from wic import WicError |
| 22 | from wic.pluginbase import SourcePlugin | 22 | from wic.pluginbase import SourcePlugin |
| 23 | from wic.misc import get_bitbake_var | 23 | from wic.misc import get_bitbake_var, exec_native_cmd |
| 24 | 24 | ||
| 25 | logger = logging.getLogger('wic') | 25 | logger = 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 | ||
