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

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

pym/portage/__init__.py

index ea04d5e87c07239a7cef1347304dfbfd107f1b35..5a0f86da20b9bb7d97b76ffba69be6a35cd21a6a 100644 (file)
@@ -3947,8 +3947,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: