[kernel] r8234 - in dists/trunk/linux-2.6/debian: bin
lib/python/debian_linux
Bastian Blank
waldi at alioth.debian.org
Sat Jan 27 21:20:17 UTC 2007
Author: waldi
Date: Sat Jan 27 22:20:16 2007
New Revision: 8234
Modified:
dists/trunk/linux-2.6/debian/bin/gencontrol.py
dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py
Log:
debian/bin/gencontrol.py, debian/lib/python/debian_linux/debian.py:
Make changelog code object oriented.
Modified: dists/trunk/linux-2.6/debian/bin/gencontrol.py
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/gencontrol.py (original)
+++ dists/trunk/linux-2.6/debian/bin/gencontrol.py Sat Jan 27 22:20:16 2007
@@ -216,7 +216,7 @@
vars = {
'home': '/usr/src/kernel-patches/all/%s/debian' % self.version.linux_upstream,
- 'revisions': ' '.join([i['Version'].debian for i in self.changelog[::-1]]),
+ 'revisions': ' '.join([i.version.debian for i in self.changelog[::-1]]),
'source': "%(linux_upstream)s-%(debian)s" % self.version.__dict__,
'upstream': self.version.linux_upstream,
}
@@ -228,15 +228,15 @@
file('debian/bin/patch.unpatch', 'w').write(unpatch)
def process_changelog(self):
- in_changelog = read_changelog(version = VersionLinux)
- act_upstream = in_changelog[0]['Version'].linux_upstream
+ in_changelog = Changelog(version = VersionLinux)
+ act_upstream = in_changelog[0].version.linux_upstream
changelog = []
for i in in_changelog:
- if i['Version'].linux_upstream != act_upstream:
+ if i.version.linux_upstream != act_upstream:
break
changelog.append(i)
self.changelog = changelog
- self.version = self.changelog[0]['Version']
+ self.version = self.changelog[0].version
if self.version.linux_modifier is not None:
self.abiname = ''
else:
@@ -258,12 +258,12 @@
def process_real_tree(self, in_entry, vars):
entry = self.process_package(in_entry, vars)
- versions = [i['Version'] for i in self.changelog[::-1]]
+ versions = [i.version for i in self.changelog[::-1]]
for i in (('Depends', 'Provides')):
value = package_relation_list()
value.extend(entry.get(i, []))
if i == 'Depends':
- value.append("linux-patch-debian-%(linux_version)s (= %(complete)s)" % self.changelog[0]['Version'].__dict__)
+ value.append("linux-patch-debian-%(linux_version)s (= %(complete)s)" % self.changelog[0].version.__dict__)
value.append(' | '.join(["linux-source-%(linux_version)s (= %(complete)s)" % v.__dict__ for v in versions]))
elif i == 'Provides':
value.extend(["linux-tree-%s" % v.complete.replace('~', '-') for v in versions])
Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py (original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py Sat Jan 27 22:20:16 2007
@@ -1,51 +1,51 @@
import itertools, os.path, re, utils
-def read_changelog(dir = '', version = None):
- r = re.compile(r"""
+class Changelog(list):
+ _rules = r"""
^
-(
-(?P<header>
- (?P<header_source>
- \w[-+0-9a-z.]+
- )
- \
- \(
- (?P<header_version>
- [^\(\)\ \t]+
- )
- \)
- \s+
- (?P<header_distribution>
- [-0-9a-zA-Z]+
- )
- \;
+(?P<source>
+ \w[-+0-9a-z.]+
+)
+\
+\(
+(?P<version>
+ [^\(\)\ \t]+
)
+\)
+\s+
+(?P<distribution>
+ [-0-9a-zA-Z]+
)
-""", re.VERBOSE)
- if version is None:
- version = Version
- f = file(os.path.join(dir, "debian/changelog"))
- entries = []
- while True:
- line = f.readline()
- if not line:
- break
- line = line.strip('\n')
- match = r.match(line)
- if not match:
- continue
- if match.group('header'):
- e = {}
- e['Distribution'] = match.group('header_distribution')
- e['Source'] = match.group('header_source')
- try:
- e['Version'] = version(match.group('header_version'))
- except Exception:
- if not len(entries):
- raise
- e['Version'] = Version(match.group('header_version'))
- entries.append(e)
- return entries
+\;
+"""
+ _re = re.compile(_rules, re.X)
+
+ class Entry(object):
+ __slot__ = 'distribution', 'source', 'version'
+
+ def __init__(self, distribution, source, version):
+ self.distribution, self.source, self.version = distribution, source, version
+
+ def __init__(self, dir = '', version = None):
+ if version is None:
+ version = Version
+ f = file(os.path.join(dir, "debian/changelog"))
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ line = line.strip('\n')
+ match = self._re.match(line)
+ if not match:
+ continue
+ if match.group('version'):
+ try:
+ v = version(match.group('version'))
+ except Exception:
+ if not len(self):
+ raise
+ v = Version(match.group('version'))
+ self.append(self.Entry(match.group('distribution'), match.group('source'), v))
class Version(object):
_version_rules = ur"""
More information about the Kernel-svn-changes
mailing list