Bug #267104 - If the statvfs f_bavail field shows insufficient free space and
authorZac Medico <zmedico@gentoo.org>
Thu, 30 Apr 2009 07:29:25 +0000 (07:29 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 30 Apr 2009 07:29:25 +0000 (07:29 -0000)
userfetch is not enabled, recalculate using the f_bfree field. (trunk r13406)

svn path=/main/branches/2.1.6/; revision=13546

pym/portage/__init__.py

index 6ed19bb78bfb9ff7f5984f63c5e75241a9f1588b..632ed71cb04687e0403c3ad602d4254e07fa18ad 100644 (file)
@@ -3937,8 +3937,15 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",
                                        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 'userfetch' in features:
+                                               has_space = False
+                                       elif (size - mysize + vfs_stat.f_bfree) >= \
+                                               (vfs_stat.f_bfree * vfs_stat.f_bavail):
+                                               has_space = False
+
+                       if not has_space:
+                               writemsg("!!! Insufficient space to store %s in %s\n" % \
+                                       (myfile, mysettings["DISTDIR"]), noiselevel=-1)
 
                        if distdir_writable and use_locks: