Index: pym/portage/__init__.py =================================================================== --- pym/portage/__init__.py (revision 13375) +++ pym/portage/__init__.py (revision 13567) @@ -3927,6 +3970,7 @@ myfile_path = os.path.join(mysettings["DISTDIR"], myfile) has_space = True + has_space_superuser = False file_lock = None if listonly: writemsg_stdout("\n", noiselevel=-1) @@ -3944,8 +3988,29 @@ mysize = 0 if (size - mysize + vfs_stat.f_bsize) >= \ (vfs_stat.f_bsize * vfs_stat.f_bavail): - writemsg("!!! Insufficient space to store %s in %s\n" % (myfile, mysettings["DISTDIR"]), noiselevel=-1) - has_space = False + + if (size - mysize + vfs_stat.f_bsize) >= \ + (vfs_stat.f_bsize * vfs_stat.f_bfree): + has_space_superuser = True + + if not has_space_superuser: + has_space = False + elif secpass < 2: + has_space = False + elif userfetch: + has_space = False + + if not has_space: + writemsg("!!! Insufficient space to store %s in %s\n" % \ + (myfile, mysettings["DISTDIR"]), noiselevel=-1) + + if has_space_superuser: + writemsg("!!! Insufficient privileges to use " + \ + "remaining space.\n", noiselevel=-1) + if userfetch: + writemsg("!!! You may set FEATURES=\"-userfetch\"" + \ + " in /etc/make.conf in order to fetch with\n" + \ + "!!! superuser privileges.\n", noiselevel=-1) if distdir_writable and use_locks: