| OLD | NEW |
| 1 # Copyright 1998-2011 Gentoo Foundation | 1 # Copyright 1998-2011 Gentoo Foundation |
| 2 # Distributed under the terms of the GNU General Public License v2 | 2 # Distributed under the terms of the GNU General Public License v2 |
| 3 | 3 |
| 4 __all__ = [ | 4 __all__ = [ |
| 5 "vardbapi", "vartree", "dblink"] + \ | 5 "vardbapi", "vartree", "dblink"] + \ |
| 6 ["write_contents", "tar_contents"] | 6 ["write_contents", "tar_contents"] |
| 7 | 7 |
| 8 import portage | 8 import portage |
| 9 portage.proxy.lazyimport.lazyimport(globals(), | 9 portage.proxy.lazyimport.lazyimport(globals(), |
| 10 'portage.checksum:_perform_md5_merge@perform_md5', | 10 'portage.checksum:_perform_md5_merge@perform_md5', |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 from portage import _selinux_merge | 51 from portage import _selinux_merge |
| 52 from portage import _unicode_decode | 52 from portage import _unicode_decode |
| 53 from portage import _unicode_encode | 53 from portage import _unicode_encode |
| 54 | 54 |
| 55 from _emerge.AsynchronousLock import AsynchronousLock | 55 from _emerge.AsynchronousLock import AsynchronousLock |
| 56 from _emerge.EbuildBuildDir import EbuildBuildDir | 56 from _emerge.EbuildBuildDir import EbuildBuildDir |
| 57 from _emerge.PollScheduler import PollScheduler | 57 from _emerge.PollScheduler import PollScheduler |
| 58 from _emerge.MiscFunctionsProcess import MiscFunctionsProcess | 58 from _emerge.MiscFunctionsProcess import MiscFunctionsProcess |
| 59 | 59 |
| 60 import codecs | 60 import codecs |
| 61 import fileinput |
| 61 import gc | 62 import gc |
| 62 import re, shutil, stat, errno, subprocess | 63 import re, shutil, stat, errno, subprocess |
| 63 import logging | 64 import logging |
| 64 import os as _os | 65 import os as _os |
| 65 import stat | 66 import stat |
| 66 import sys | 67 import sys |
| 67 import tempfile | 68 import tempfile |
| 68 import time | 69 import time |
| 69 import warnings | 70 import warnings |
| 70 | 71 |
| (...skipping 1623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1694 if log_path is not None and os.path.exists(log_path): | 1695 if log_path is not None and os.path.exists(log_path): |
| 1695 # Restore this since it gets lost somewhere above and it | 1696 # Restore this since it gets lost somewhere above and it |
| 1696 # needs to be set for _display_merge() to be able to log
. | 1697 # needs to be set for _display_merge() to be able to log
. |
| 1697 # Note that the log isn't necessarily supposed to exist | 1698 # Note that the log isn't necessarily supposed to exist |
| 1698 # since if PORT_LOGDIR is unset then it's a temp file | 1699 # since if PORT_LOGDIR is unset then it's a temp file |
| 1699 # so it gets cleaned above. | 1700 # so it gets cleaned above. |
| 1700 self.settings["PORTAGE_LOG_FILE"] = log_path | 1701 self.settings["PORTAGE_LOG_FILE"] = log_path |
| 1701 else: | 1702 else: |
| 1702 self.settings.pop("PORTAGE_LOG_FILE", None) | 1703 self.settings.pop("PORTAGE_LOG_FILE", None) |
| 1703 | 1704 |
| 1704 » » env_update(target_root=self.settings['ROOT'], | 1705 » » if 'no-env-update' not in self.settings.features: |
| 1705 » » » prev_mtimes=ldpath_mtimes, | 1706 » » » env_update(target_root=self.settings['ROOT'], |
| 1706 » » » contents=contents, env=self.settings.environ(), | 1707 » » » » prev_mtimes=ldpath_mtimes, |
| 1707 » » » writemsg_level=self._display_merge) | 1708 » » » » contents=contents, env=self.settings.environ(), |
| 1709 » » » » writemsg_level=self._display_merge) |
| 1708 return os.EX_OK | 1710 return os.EX_OK |
| 1709 | 1711 |
| 1710 def _display_merge(self, msg, level=0, noiselevel=0): | 1712 def _display_merge(self, msg, level=0, noiselevel=0): |
| 1711 if not self._verbose and noiselevel >= 0 and level < logging.WAR
N: | 1713 if not self._verbose and noiselevel >= 0 and level < logging.WAR
N: |
| 1712 return | 1714 return |
| 1713 if self._scheduler is not None: | 1715 if self._scheduler is not None: |
| 1714 self._scheduler.dblinkDisplayMerge(self, msg, | 1716 self._scheduler.dblinkDisplayMerge(self, msg, |
| 1715 level=level, noiselevel=noiselevel) | 1717 level=level, noiselevel=noiselevel) |
| 1716 return | 1718 return |
| 1717 writemsg_level(msg, level=level, noiselevel=noiselevel) | 1719 writemsg_level(msg, level=level, noiselevel=noiselevel) |
| (...skipping 1652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3370 self, mydbapi, myebuild, "postinst") | 3372 self, mydbapi, myebuild, "postinst") |
| 3371 finally: | 3373 finally: |
| 3372 self.settings.pop("PORTAGE_UPDATE_ENV", None) | 3374 self.settings.pop("PORTAGE_UPDATE_ENV", None) |
| 3373 | 3375 |
| 3374 if a != os.EX_OK: | 3376 if a != os.EX_OK: |
| 3375 # It's stupid to bail out here, so keep going regardless
of | 3377 # It's stupid to bail out here, so keep going regardless
of |
| 3376 # phase return code. | 3378 # phase return code. |
| 3377 showMessage(_("!!! FAILED postinst: ")+str(a)+"\n", | 3379 showMessage(_("!!! FAILED postinst: ")+str(a)+"\n", |
| 3378 level=logging.ERROR, noiselevel=-1) | 3380 level=logging.ERROR, noiselevel=-1) |
| 3379 | 3381 |
| 3380 » » downgrade = False | 3382 » » if 'no-env-update' not in self.settings.features: |
| 3381 » » for v in otherversions: | 3383 » » » downgrade = False |
| 3382 » » » if pkgcmp(catpkgsplit(self.pkg)[1:], catpkgsplit(v)[1:])
< 0: | 3384 » » » for v in otherversions: |
| 3383 » » » » downgrade = True | 3385 » » » » if pkgcmp(catpkgsplit(self.pkg)[1:], catpkgsplit
(v)[1:]) < 0: |
| 3386 » » » » » downgrade = True |
| 3384 | 3387 |
| 3385 » » #update environment settings, library paths. DO NOT change symli
nks. | 3388 » » » #update environment settings, library paths. DO NOT chan
ge symlinks. |
| 3386 » » env_update(makelinks=(not downgrade), | 3389 » » » env_update(makelinks=(not downgrade), |
| 3387 » » » target_root=self.settings['ROOT'], prev_mtimes=prev_mtim
es, | 3390 » » » » target_root=self.settings['ROOT'], prev_mtimes=p
rev_mtimes, |
| 3388 » » » contents=contents, env=self.settings.environ(), | 3391 » » » » contents=contents, env=self.settings.environ(), |
| 3389 » » » writemsg_level=self._display_merge) | 3392 » » » » writemsg_level=self._display_merge) |
| 3393 |
| 3394 » » # Fix *.{la,pc} files to point to libs in target_root, if they |
| 3395 » » # don't do so already. |
| 3396 » » re_root = self.settings["ROOT"].strip("/") |
| 3397 » » if re_root: |
| 3398 » » » fix_files = [] |
| 3399 » » » for path in contents: |
| 3400 » » » » if path.endswith(".la") or path.endswith(".pc"): |
| 3401 » » » » » if os.path.exists(path): fix_files.appen
d(path) |
| 3402 » » » if fix_files: |
| 3403 » » » » pat = re.compile(r"([' =](?:-[IL])?/)(usr|lib|op
t)") |
| 3404 » » » » for line in fileinput.input(fix_files, inplace=1
): |
| 3405 » » » » » sys.stdout.write(pat.sub(r"\1%s/\2" % re
_root, line)) |
| 3390 | 3406 |
| 3391 # For gcc upgrades, preserved libs have to be removed after the | 3407 # For gcc upgrades, preserved libs have to be removed after the |
| 3392 # the library path has been updated. | 3408 # the library path has been updated. |
| 3393 self._linkmap_rebuild() | 3409 self._linkmap_rebuild() |
| 3394 cpv_lib_map = self._find_unused_preserved_libs() | 3410 cpv_lib_map = self._find_unused_preserved_libs() |
| 3395 if cpv_lib_map: | 3411 if cpv_lib_map: |
| 3396 self._remove_preserved_libs(cpv_lib_map) | 3412 self._remove_preserved_libs(cpv_lib_map) |
| 3397 for cpv, removed in cpv_lib_map.items(): | 3413 for cpv, removed in cpv_lib_map.items(): |
| 3398 if not self.vartree.dbapi.cpv_exists(cpv): | 3414 if not self.vartree.dbapi.cpv_exists(cpv): |
| 3399 continue | 3415 continue |
| (...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4143 encoding=object.__getattribute__(os, '_e
ncoding'), | 4159 encoding=object.__getattribute__(os, '_e
ncoding'), |
| 4144 errors='strict'), 'rb') | 4160 errors='strict'), 'rb') |
| 4145 try: | 4161 try: |
| 4146 tar.addfile(tarinfo, f) | 4162 tar.addfile(tarinfo, f) |
| 4147 finally: | 4163 finally: |
| 4148 f.close() | 4164 f.close() |
| 4149 else: | 4165 else: |
| 4150 tar.addfile(tarinfo) | 4166 tar.addfile(tarinfo) |
| 4151 if onProgress: | 4167 if onProgress: |
| 4152 onProgress(maxval, curval) | 4168 onProgress(maxval, curval) |
| OLD | NEW |