summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-02-19 10:14:13 +0000
committerZac Medico <zmedico@gentoo.org>2009-02-19 10:14:13 +0000
commit698cfe955f2499d6f2ad0e32e32bb150cd4283ba (patch)
tree737535997d8d54511bebfb58585b1832bd445eb7 /pym/_emerge
parent61917cad53f2eaf9139d32b69c1a33a50cdf2a69 (diff)
downloadportage-698cfe955f2499d6f2ad0e32e32bb150cd4283ba.tar.gz
portage-698cfe955f2499d6f2ad0e32e32bb150cd4283ba.tar.bz2
portage-698cfe955f2499d6f2ad0e32e32bb150cd4283ba.zip
For compatibility with python-3.0, always open streams for pickles in binary
mode. svn path=/main/trunk/; revision=12641
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/__init__.py14
1 files changed, 3 insertions, 11 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 830a6d5b4..413792606 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -4043,9 +4043,8 @@ class BlockerCache(portage.cache.mappings.MutableMapping):
def _load(self):
try:
- f = open(self._cache_filename)
+ f = open(self._cache_filename, mode='rb')
mypickle = pickle.Unpickler(f)
- mypickle.find_global = None
self._cache_data = mypickle.load()
f.close()
del f
@@ -4129,7 +4128,7 @@ class BlockerCache(portage.cache.mappings.MutableMapping):
if len(self._modified) >= self._cache_threshold and \
secpass >= 2:
try:
- f = portage.util.atomic_ofstream(self._cache_filename)
+ f = portage.util.atomic_ofstream(self._cache_filename, mode='wb')
pickle.dump(self._cache_data, f, -1)
f.close()
portage.util.apply_secpass_permissions(
@@ -14423,14 +14422,7 @@ def action_build(settings, trees, mtimedb,
# a list type for options.
mtimedb["resume"]["myopts"] = myopts.copy()
- # Convert Atom instances to plain str since the mtimedb loader
- # sets unpickler.find_global = None which causes unpickler.load()
- # to raise the following exception:
- #
- # cPickle.UnpicklingError: Global and instance pickles are not supported.
- #
- # TODO: Maybe stop setting find_global = None, or find some other
- # way to avoid accidental triggering of the above UnpicklingError.
+ # Convert Atom instances to plain str.
mtimedb["resume"]["favorites"] = [str(x) for x in favorites]
if ("--digest" in myopts) and not ("--fetchonly" in myopts or "--fetch-all-uri" in myopts):