|
|
@ -53,6 +53,7 @@ |
|
|
|
#include <termios.h> |
|
|
|
#include <sys/ioctl.h> |
|
|
|
#include <sys/stat.h> |
|
|
|
#include <sys/statfs.h> |
|
|
|
#include <sys/statvfs.h> |
|
|
|
#include <signal.h> |
|
|
|
#include <unistd.h> |
|
|
@ -63,6 +64,8 @@ |
|
|
|
#include <sstream> |
|
|
|
/*}}}*/ |
|
|
|
|
|
|
|
#define RAMFS_MAGIC 0x858458f6 |
|
|
|
|
|
|
|
using namespace std; |
|
|
|
|
|
|
|
ostream c0out(0); |
|
|
@ -861,8 +864,13 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, |
|
|
|
return _error->Errno("statvfs",_("Couldn't determine free space in %s"), |
|
|
|
OutputDir.c_str()); |
|
|
|
if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize) |
|
|
|
return _error->Error(_("You don't have enough free space in %s."), |
|
|
|
OutputDir.c_str()); |
|
|
|
{ |
|
|
|
struct statfs Stat; |
|
|
|
if (statfs(OutputDir.c_str(),&Stat) != 0 || |
|
|
|
unsigned(Stat.f_type) != RAMFS_MAGIC) |
|
|
|
return _error->Error(_("You don't have enough free space in %s."), |
|
|
|
OutputDir.c_str()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Fail safe check
|
|
|
@ -2188,8 +2196,13 @@ bool DoSource(CommandLine &CmdL) |
|
|
|
return _error->Errno("statvfs",_("Couldn't determine free space in %s"), |
|
|
|
OutputDir.c_str()); |
|
|
|
if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize) |
|
|
|
return _error->Error(_("You don't have enough free space in %s"), |
|
|
|
OutputDir.c_str()); |
|
|
|
{ |
|
|
|
struct statfs Stat; |
|
|
|
if (statfs(OutputDir.c_str(),&Stat) != 0 || |
|
|
|
unsigned(Stat.f_type) != RAMFS_MAGIC) |
|
|
|
return _error->Error(_("You don't have enough free space in %s"), |
|
|
|
OutputDir.c_str()); |
|
|
|
} |
|
|
|
|
|
|
|
// Number of bytes
|
|
|
|
if (DebBytes != FetchBytes) |
|
|
|