diff options
author | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2009-07-02 23:08:45 (GMT) |
---|---|---|
committer | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2009-07-02 23:08:45 (GMT) |
commit | 321e533c4c4cfc32ec6f1fb2c592f8c0e875d6c7 (patch) | |
tree | ce9cf588dc428434f1fc0bc53e49a73d077fb3ac | |
parent | bceae0c1af7fd73ef3f71e0fbe2075b964accf55 (diff) | |
download | cpython-321e533c4c4cfc32ec6f1fb2c592f8c0e875d6c7.zip cpython-321e533c4c4cfc32ec6f1fb2c592f8c0e875d6c7.tar.gz cpython-321e533c4c4cfc32ec6f1fb2c592f8c0e875d6c7.tar.bz2 |
#4601: 'make install' did not set the permissions on library directories,
only root could start IDLE for example.
Beware that os.path.walk does not translate as is to os.walk!
the former uses a callback to call on each dir, the latter is a generator...
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | setup.py | 11 |
2 files changed, 8 insertions, 6 deletions
@@ -41,6 +41,9 @@ Library Build ----- +- Issue 4601: 'make install' did not set the appropriate permissions on + directories. + - Issue 5390: Add uninstall icon independent of whether file extensions are installed. @@ -1605,12 +1605,11 @@ class PyBuildInstallLib(install_lib): def set_dir_modes(self, dirname, mode): if not self.is_chmod_supported(): return - os.walk(dirname, self.set_dir_modes_visitor, mode) - - def set_dir_modes_visitor(self, mode, dirname, names): - if os.path.islink(dirname): return - log.info("changing mode of %s to %o", dirname, mode) - if not self.dry_run: os.chmod(dirname, mode) + for dirpath, dirnames, fnames in os.walk(dirname): + if os.path.islink(dirpath): + continue + log.info("changing mode of %s to %o", dirpath, mode) + if not self.dry_run: os.chmod(dirpath, mode) def is_chmod_supported(self): return hasattr(os, 'chmod') |