summaryrefslogtreecommitdiff
path: root/apt
diff options
context:
space:
mode:
Diffstat (limited to 'apt')
-rw-r--r--apt/cache.py11
-rw-r--r--apt/package.py11
-rw-r--r--apt/progress/__init__.py4
3 files changed, 17 insertions, 9 deletions
diff --git a/apt/cache.py b/apt/cache.py
index bb944041..fa6c404c 100644
--- a/apt/cache.py
+++ b/apt/cache.py
@@ -270,7 +270,7 @@ class Cache(object):
providers.append(pkg)
return providers
- def update(self, fetchProgress=None, pulseInterval=0):
+ def update(self, fetchProgress=None, pulseInterval=0, raiseOnError=False):
" run the equivalent of apt-get update "
lockfile = apt_pkg.Config.FindDir("Dir::State::Lists") + "lock"
lock = apt_pkg.GetLock(lockfile)
@@ -280,7 +280,14 @@ class Cache(object):
try:
if fetchProgress is None:
fetchProgress = apt.progress.FetchProgress()
- return self._cache.Update(fetchProgress, self._list, pulseInterval)
+ res = self._cache.Update(fetchProgress, self._list, pulseInterval)
+
+ if res == 2 and raiseOnError:
+ raise FetchCancelledException()
+ elif res == 1 and raiseOnError:
+ raise FetchFailedException()
+ else:
+ return res
finally:
os.close(lock)
diff --git a/apt/package.py b/apt/package.py
index 27e0dc90..8d3be1b0 100644
--- a/apt/package.py
+++ b/apt/package.py
@@ -478,10 +478,11 @@ class Version(object):
acq = apt_pkg.GetAcquire(progress or apt.progress.TextFetchProgress())
dsc = None
- src.Lookup(self.package.name)
+ record = self._records
+ src.Lookup(record.SourcePkg)
try:
- while self.version != src.Version:
- src.Lookup(self.package.name)
+ while record.SourceVer != src.Version:
+ src.Lookup(record.SourcePkg)
except AttributeError:
raise ValueError("No source for %r" % self)
for md5, size, path, type in src.Files:
@@ -550,7 +551,7 @@ class VersionList(Sequence):
except TypeError:
# Dictionary interface item is a string.
for ver in self._versions:
- if ver.ver_str == item:
+ if ver.VerStr == item:
return Version(self._package, ver)
raise KeyError("Version: %r not found." % (item))
@@ -566,7 +567,7 @@ class VersionList(Sequence):
item = item.version
# Dictionary interface.
for ver in self._versions:
- if ver.ver_str == item:
+ if ver.VerStr == item:
return True
return False
diff --git a/apt/progress/__init__.py b/apt/progress/__init__.py
index c042ece7..8694de77 100644
--- a/apt/progress/__init__.py
+++ b/apt/progress/__init__.py
@@ -304,10 +304,10 @@ class InstallProgress(DumbInstallProgress):
if pid == self.child_pid:
break
except OSError, (errno_, errstr):
- if errno_ != errno.EINTR:
- raise
if errno_ == errno.ECHILD:
break
+ if errno_ != errno.EINTR:
+ raise
return res
def run(self, pm):