In fetch(), avoid the "Adjusting permissions recursively" message in cases
authorZac Medico <zmedico@gentoo.org>
Mon, 27 Oct 2008 22:19:45 +0000 (22:19 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 27 Oct 2008 22:19:45 +0000 (22:19 -0000)
when the directory has just been created and therefore it must be empty.

svn path=/main/trunk/; revision=11727

pym/portage/__init__.py

index cb3ebed4573c24385922290db55196c75156d13c..18ea6e8382c4511b8c3a343e9d4c86848334461c 100644 (file)
@@ -3583,7 +3583,12 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",
                                write_test_file = os.path.join(
                                        mydir, ".__portage_test_write__")
 
-                               if os.path.isdir(mydir):
+                               try:
+                                       st = os.stat(mydir)
+                               except OSError:
+                                       st = None
+
+                               if st is not None and stat.S_ISDIR(st.st_mode):
                                        if not (userfetch or userpriv):
                                                continue
                                        if _userpriv_test_write_file(mysettings, write_test_file):
@@ -3591,6 +3596,10 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",
 
                                _userpriv_test_write_file_cache.pop(write_test_file, None)
                                if portage.util.ensure_dirs(mydir, gid=dir_gid, mode=dirmode, mask=modemask):
+                                       if st is None:
+                                               # The directory has just been created
+                                               # and therefore it must be empty.
+                                               continue
                                        writemsg("Adjusting permissions recursively: '%s'\n" % mydir,
                                                noiselevel=-1)
                                        def onerror(e):