summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorEd Bartosh <ed.bartosh@linux.intel.com>2015-04-06 20:43:35 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-04-14 12:38:49 +0100
commitea07f0325cdbeb40884aa55707b8787b63554e3e (patch)
tree5d52b9ae29684e6d54c5340486a996216d1ecdc7 /scripts/lib
parentdf9069d958fc9348f0afe63a7d0e0a0454ebe9b4 (diff)
downloadpoky-ea07f0325cdbeb40884aa55707b8787b63554e3e.tar.gz
wic: use native parted
Used exec_native_cmd instead of find_binary_path to run parted. Got rid of find_binary_path as it's not used anywhere else. There are several tools wic is trying to find not only in sysroot, but also in host root. Parted is a special as on some distros it's installed in /usr/sbin, which is not in the user's PATH. This makes wic to fail with error "External command 'parted' not found, exiting." [YOCTO #7122] (From OE-Core rev: 76adf38c0d8e0faf04a5ecb3fcfbe831c85bb81f) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/wic/imager/direct.py2
-rw-r--r--scripts/lib/wic/utils/fs_related.py18
-rw-r--r--scripts/lib/wic/utils/partitionedfs.py11
3 files changed, 7 insertions, 24 deletions
diff --git a/scripts/lib/wic/imager/direct.py b/scripts/lib/wic/imager/direct.py
index c1e5f09eee..0e687bd70e 100644
--- a/scripts/lib/wic/imager/direct.py
+++ b/scripts/lib/wic/imager/direct.py
@@ -241,7 +241,7 @@ class DirectImageCreator(BaseImageCreator):
241 """ 241 """
242 parts = self._get_parts() 242 parts = self._get_parts()
243 243
244 self.__image = Image() 244 self.__image = Image(self.native_sysroot)
245 245
246 for p in parts: 246 for p in parts:
247 # as a convenience, set source to the boot partition source 247 # as a convenience, set source to the boot partition source
diff --git a/scripts/lib/wic/utils/fs_related.py b/scripts/lib/wic/utils/fs_related.py
index d0bc8ee6d3..fb9054d568 100644
--- a/scripts/lib/wic/utils/fs_related.py
+++ b/scripts/lib/wic/utils/fs_related.py
@@ -25,24 +25,6 @@ from wic.utils import runner
25from wic.utils.errors import * 25from wic.utils.errors import *
26from wic.utils.oe.misc import * 26from wic.utils.oe.misc import *
27 27
28def find_binary_path(binary):
29 if os.environ.has_key("PATH"):
30 paths = os.environ["PATH"].split(":")
31 else:
32 paths = []
33 if os.environ.has_key("HOME"):
34 paths += [os.environ["HOME"] + "/bin"]
35 paths += ["/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin"]
36
37 for path in paths:
38 bin_path = "%s/%s" % (path, binary)
39 if os.path.exists(bin_path):
40 return bin_path
41
42 print "External command '%s' not found, exiting." % binary
43 print " (Please install '%s' on your host system)" % binary
44 sys.exit(1)
45
46def makedirs(dirname): 28def makedirs(dirname):
47 """A version of os.makedirs() that doesn't throw an 29 """A version of os.makedirs() that doesn't throw an
48 exception if the leaf directory already exists. 30 exception if the leaf directory already exists.
diff --git a/scripts/lib/wic/utils/partitionedfs.py b/scripts/lib/wic/utils/partitionedfs.py
index b9fbc16e12..40d6e889b0 100644
--- a/scripts/lib/wic/utils/partitionedfs.py
+++ b/scripts/lib/wic/utils/partitionedfs.py
@@ -40,13 +40,13 @@ class Image:
40 An Image is a container for a set of DiskImages and associated 40 An Image is a container for a set of DiskImages and associated
41 partitions. 41 partitions.
42 """ 42 """
43 def __init__(self): 43 def __init__(self, native_sysroot=None):
44 self.disks = {} 44 self.disks = {}
45 self.partitions = [] 45 self.partitions = []
46 self.parted = find_binary_path("parted")
47 # Size of a sector used in calculations 46 # Size of a sector used in calculations
48 self.sector_size = SECTOR_SIZE 47 self.sector_size = SECTOR_SIZE
49 self._partitions_layed_out = False 48 self._partitions_layed_out = False
49 self.native_sysroot = native_sysroot
50 50
51 def __add_disk(self, disk_name): 51 def __add_disk(self, disk_name):
52 """ Add a disk 'disk_name' to the internal list of disks. Note, 52 """ Add a disk 'disk_name' to the internal list of disks. Note,
@@ -225,11 +225,12 @@ class Image:
225 def __run_parted(self, args): 225 def __run_parted(self, args):
226 """ Run parted with arguments specified in the 'args' list. """ 226 """ Run parted with arguments specified in the 'args' list. """
227 227
228 args.insert(0, self.parted) 228 args.insert(0, "parted")
229 args = ' '.join(args)
229 msger.debug(args) 230 msger.debug(args)
230 231
231 rc, out = runner.runtool(args, catch = 3) 232 rc, out = exec_native_cmd(args, self.native_sysroot)
232 out = out.strip() 233
233 if out: 234 if out:
234 msger.debug('"parted" output: %s' % out) 235 msger.debug('"parted" output: %s' % out)
235 236