summaryrefslogtreecommitdiff
path: root/scripts/lib/mic
diff options
context:
space:
mode:
authorTom Zanussi <tom.zanussi@linux.intel.com>2014-08-03 12:25:23 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-11 10:52:14 +0100
commit167cb99af427510bb6d72e89478c62a804db125c (patch)
tree4345aa441683abeb139cfa627502bf4da7a6f41e /scripts/lib/mic
parentd73230306b827972cdc99f21d247c54d5d7c0b6d (diff)
downloadopenembedded-core-167cb99af427510bb6d72e89478c62a804db125c.tar.gz
openembedded-core-167cb99af427510bb6d72e89478c62a804db125c.tar.bz2
openembedded-core-167cb99af427510bb6d72e89478c62a804db125c.zip
wic: Remove rt_util
More package-related stuff we don't need. Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Diffstat (limited to 'scripts/lib/mic')
-rw-r--r--scripts/lib/mic/rt_util.py223
1 files changed, 0 insertions, 223 deletions
diff --git a/scripts/lib/mic/rt_util.py b/scripts/lib/mic/rt_util.py
deleted file mode 100644
index 2a31f4a218..0000000000
--- a/scripts/lib/mic/rt_util.py
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/python -tt
-#
-# Copyright (c) 2009, 2010, 2011 Intel, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; version 2 of the License
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from __future__ import with_statement
-import os
-import sys
-import glob
-import re
-import shutil
-import subprocess
-
-from mic import bootstrap, msger
-from mic.conf import configmgr
-from mic.utils import errors, proxy
-from mic.utils.fs_related import find_binary_path, makedirs
-from mic.chroot import setup_chrootenv, cleanup_chrootenv
-
-expath = lambda p: os.path.abspath(os.path.expanduser(p))
-
-def bootstrap_mic(argv=None):
-
-
- def mychroot():
- os.chroot(rootdir)
- os.chdir(cwd)
-
- # by default, sys.argv is used to run mic in bootstrap
- if not argv:
- argv = sys.argv
- if argv[0] not in ('/usr/bin/mic', 'mic'):
- argv[0] = '/usr/bin/mic'
-
- cropts = configmgr.create
- bsopts = configmgr.bootstrap
- distro = bsopts['distro_name'].lower()
-
- rootdir = bsopts['rootdir']
- pkglist = bsopts['packages']
- cwd = os.getcwd()
-
- # create bootstrap and run mic in bootstrap
- bsenv = bootstrap.Bootstrap(rootdir, distro, cropts['arch'])
- bsenv.logfile = cropts['logfile']
- # rootdir is regenerated as a temp dir
- rootdir = bsenv.rootdir
-
- if 'optional' in bsopts:
- optlist = bsopts['optional']
- else:
- optlist = []
-
- try:
- msger.info("Creating %s bootstrap ..." % distro)
- bsenv.create(cropts['repomd'], pkglist, optlist)
-
- # bootstrap is relocated under "bootstrap"
- if os.path.exists(os.path.join(rootdir, "bootstrap")):
- rootdir = os.path.join(rootdir, "bootstrap")
-
- bsenv.dirsetup(rootdir)
- sync_mic(rootdir)
-
- #FIXME: sync the ks file to bootstrap
- if "/" == os.path.dirname(os.path.abspath(configmgr._ksconf)):
- safecopy(configmgr._ksconf, rootdir)
-
- msger.info("Start mic in bootstrap: %s\n" % rootdir)
- bindmounts = get_bindmounts(cropts)
- ret = bsenv.run(argv, cwd, rootdir, bindmounts)
-
- except errors.BootstrapError, err:
- msger.warning('\n%s' % err)
- if msger.ask("Switch to native mode and continue?"):
- return
- raise
- except RuntimeError, err:
- #change exception type but keep the trace back
- value, tb = sys.exc_info()[1:]
- raise errors.BootstrapError, value, tb
- else:
- sys.exit(ret)
- finally:
- bsenv.cleanup()
-
-def get_bindmounts(cropts):
- binddirs = [
- os.getcwd(),
- cropts['tmpdir'],
- cropts['cachedir'],
- cropts['outdir'],
- cropts['local_pkgs_path'],
- ]
- bindfiles = [
- cropts['logfile'],
- configmgr._ksconf,
- ]
-
- for lrepo in cropts['localrepos']:
- binddirs.append(lrepo)
-
- bindlist = map(expath, filter(None, binddirs))
- bindlist += map(os.path.dirname, map(expath, filter(None, bindfiles)))
- bindlist = sorted(set(bindlist))
- bindmounts = ';'.join(bindlist)
- return bindmounts
-
-
-def get_mic_binpath():
- fp = None
- try:
- import pkg_resources # depends on 'setuptools'
- except ImportError:
- pass
- else:
- dist = pkg_resources.get_distribution('mic')
- # the real script is under EGG_INFO/scripts
- if dist.has_metadata('scripts/mic'):
- fp = os.path.join(dist.egg_info, "scripts/mic")
-
- if fp:
- return fp
-
- # not found script if 'flat' egg installed
- try:
- return find_binary_path('mic')
- except errors.CreatorError:
- raise errors.BootstrapError("Can't find mic binary in host OS")
-
-
-def get_mic_modpath():
- try:
- import mic
- except ImportError:
- raise errors.BootstrapError("Can't find mic module in host OS")
- path = os.path.abspath(mic.__file__)
- return os.path.dirname(path)
-
-def get_mic_libpath():
- # TBD: so far mic lib path is hard coded
- return "/usr/lib/mic"
-
-# the hard code path is prepared for bootstrap
-def sync_mic(bootstrap, binpth = '/usr/bin/mic',
- libpth='/usr/lib',
- pylib = '/usr/lib/python2.7/site-packages',
- conf = '/etc/mic/mic.conf'):
- _path = lambda p: os.path.join(bootstrap, p.lstrip('/'))
-
- micpaths = {
- 'binpth': get_mic_binpath(),
- 'libpth': get_mic_libpath(),
- 'pylib': get_mic_modpath(),
- 'conf': '/etc/mic/mic.conf',
- }
-
- if not os.path.exists(_path(pylib)):
- pyptn = '/usr/lib/python?.?/site-packages'
- pylibs = glob.glob(_path(pyptn))
- if pylibs:
- pylib = pylibs[0].replace(bootstrap, '')
- else:
- raise errors.BootstrapError("Can't find python site dir in: %s" %
- bootstrap)
-
- for key, value in micpaths.items():
- try:
- safecopy(value, _path(eval(key)), False, ["*.pyc", "*.pyo"])
- except (OSError, IOError), err:
- raise errors.BootstrapError(err)
-
- # auto select backend
- conf_str = file(_path(conf)).read()
- conf_str = re.sub("pkgmgr\s*=\s*.*", "pkgmgr=auto", conf_str)
- with open(_path(conf), 'w') as wf:
- wf.write(conf_str)
-
- # chmod +x /usr/bin/mic
- os.chmod(_path(binpth), 0777)
-
- # correct python interpreter
- mic_cont = file(_path(binpth)).read()
- mic_cont = "#!/usr/bin/python\n" + mic_cont
- with open(_path(binpth), 'w') as wf:
- wf.write(mic_cont)
-
-
-def safecopy(src, dst, symlinks=False, ignore_ptns=()):
- if os.path.isdir(src):
- if os.path.isdir(dst):
- dst = os.path.join(dst, os.path.basename(src))
- if os.path.exists(dst):
- shutil.rmtree(dst, ignore_errors=True)
-
- src = src.rstrip('/')
- # check common prefix to ignore copying itself
- if dst.startswith(src + '/'):
- ignore_ptns = list(ignore_ptns) + [ os.path.basename(src) ]
-
- ignores = shutil.ignore_patterns(*ignore_ptns)
- try:
- shutil.copytree(src, dst, symlinks, ignores)
- except (OSError, IOError):
- shutil.rmtree(dst, ignore_errors=True)
- raise
- else:
- if not os.path.isdir(dst):
- makedirs(os.path.dirname(dst))
-
- shutil.copy2(src, dst)