diff --git a/debian/changelog b/debian/changelog index 07209b648369639b0d45bfe8fc48622a4c7779f0..197dfe0d55c970694ead2a68aecccfa88aefbd27 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,11 @@ python-defaults (2.6.5-6) unstable; urgency=low - block python package transitions via ${python:Breaks} or ${python:Depends} (Breaks will be used if available) - recognize more requires.txt patterns in debpython.pydist + * pyversions.py: + - print error message if file cannot be opened (closes: + 521508, thanks to Carl Chenet for the original patch) + - print nice error message if computed set of supported versions is empty + (closes: 583392) [ Scott Kitterman ] * Merge changes back from Ubuntu package: diff --git a/debian/pyversions.py b/debian/pyversions.py index 1e841bc074eab989439e6a11b33ce8695a33a135..d84b9367737a3bbe90f906e5e4fef3e07077da9c 100644 --- a/debian/pyversions.py +++ b/debian/pyversions.py @@ -15,7 +15,11 @@ def read_default(name=None): if not _defaults: if os.path.exists('/usr/share/python/debian_defaults'): config = SafeConfigParser() - config.readfp(file('/usr/share/python/debian_defaults')) + try: + config.readfp(file('/usr/share/python/debian_defaults')) + except IOError, msg: + print msg + sys.exit(1) _defaults = config if _defaults and name: try: @@ -206,9 +210,9 @@ def requested_versions(vstring, version_only=False): if 'vexact' in vinfo: versions.update(vinfo['vexact']) else: - raise ValueError, 'No python versions in version string' + raise ValueError, 'No Python versions in version string' if not versions: - raise PyCentralEmptyValueError, 'empty set of versions' + raise ValueError('computed set of supported versions is empty') if version_only: return versions else: @@ -238,7 +242,12 @@ def extract_pyversion_attribute(fn, pkg): version = None sversion = None section = None - for line in file(fn): + try: + fp = file(fn, 'r') + except IOError, msg: + print "Cannot open %s: %s" % (fn, msg) + sys.exit(2) + for line in fp: line = line.strip() if line == '': if section == None: @@ -305,7 +314,11 @@ def requested_versions_bis(vstring, version_only=False): return versions def extract_pyversion_attribute_bis(fn): - vstring = file(fn).readline().rstrip('\n') + try: + vstring = file(fn).readline().rstrip('\n') + except IOError, msg: + print msg + sys.exit(3) return vstring def main(): @@ -366,6 +379,9 @@ def main(): sys.stderr.write("%s: missing debian/pyversions file, fall back to supported versions\n" \ % program) vs = supported_versions(opts.version_only) + except ValueError, e: + sys.stderr.write("%s: %s\n" % (program, e)) + sys.exit(4) else: vs = requested_versions(versions, opts.version_only) print ' '.join(vs)