diff options
author | Gary Oberbrunner <garyo@oberbrunner.com> | 2009-05-12 11:41:34 (GMT) |
---|---|---|
committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2009-05-12 11:41:34 (GMT) |
commit | 261e9d7df97374d3e43543e7313f8327f542a1fe (patch) | |
tree | 558fed9b5faf20e9111ddf4b6475acc876877c1f | |
parent | 866e405b3f17ade520ab8a13e5a09c342cb26015 (diff) | |
download | SCons-261e9d7df97374d3e43543e7313f8327f542a1fe.zip SCons-261e9d7df97374d3e43543e7313f8327f542a1fe.tar.gz SCons-261e9d7df97374d3e43543e7313f8327f542a1fe.tar.bz2 |
Fix issue 2421 by not trying to use os.chown on Windows.
-rw-r--r-- | src/engine/SCons/dblite.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/SCons/dblite.py b/src/engine/SCons/dblite.py index e993219..bcb2aa0 100644 --- a/src/engine/SCons/dblite.py +++ b/src/engine/SCons/dblite.py @@ -45,7 +45,10 @@ class dblite: _open = __builtin__.open _cPickle_dump = cPickle.dump _os_chmod = os.chmod - _os_chown = os.chown + try: + _os_chown = os.chown + except AttributeError: + _os_chown = None _os_rename = os.rename _os_unlink = os.unlink _shutil_copyfile = shutil.copyfile @@ -66,7 +69,7 @@ class dblite: self._mode = mode self._dict = {} self._needs_sync = 00000 - if os.geteuid()==0 or os.getuid()==0: + if self._os_chown is not None and (os.geteuid()==0 or os.getuid()==0): # running as root; chown back to current owner/group when done try: statinfo = os.stat(self._file_name) @@ -118,7 +121,7 @@ class dblite: except OSError: pass self._os_unlink(self._file_name) self._os_rename(self._tmp_name, self._file_name) - if self._chown_to > 0: # don't chown to root or -1 + if self._os_chown is not None and self._chown_to > 0: # don't chown to root or -1 try: self._os_chown(self._file_name, self._chown_to, self._chgrp_to) except OSError: |