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 |