diff options
| author | Tom Zanussi <tom.zanussi@linux.intel.com> | 2014-08-03 12:25:23 -0500 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-08-11 10:52:14 +0100 | 
| commit | 167cb99af427510bb6d72e89478c62a804db125c (patch) | |
| tree | 4345aa441683abeb139cfa627502bf4da7a6f41e /scripts/lib | |
| parent | d73230306b827972cdc99f21d247c54d5d7c0b6d (diff) | |
| download | openembedded-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')
| -rw-r--r-- | scripts/lib/mic/rt_util.py | 223 | 
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) | 
