2006-01-06 22:32:16 +00:00
|
|
|
import debian, re, textwrap
|
2006-01-04 19:33:32 +00:00
|
|
|
|
2006-02-17 15:50:39 +00:00
|
|
|
class sorted_dict(dict):
|
|
|
|
__slots__ = '_list',
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
def __init__(self, entries = None):
|
2006-02-17 15:50:39 +00:00
|
|
|
super(sorted_dict, self).__init__()
|
2006-01-04 19:33:32 +00:00
|
|
|
self._list = []
|
|
|
|
if entries is not None:
|
|
|
|
for key, value in entries:
|
|
|
|
self[key] = value
|
|
|
|
|
|
|
|
def __delitem__(self, key):
|
2006-02-17 15:50:39 +00:00
|
|
|
super(sorted_dict, self).__delitem__(key)
|
2006-01-04 19:33:32 +00:00
|
|
|
self._list.remove(key)
|
|
|
|
|
2006-02-17 15:50:39 +00:00
|
|
|
def __setitem__(self, key, value):
|
|
|
|
super(sorted_dict, self).__setitem__(key, value)
|
|
|
|
if key not in self._list:
|
|
|
|
self._list.append(key)
|
|
|
|
|
2006-01-04 19:33:32 +00:00
|
|
|
def iterkeys(self):
|
|
|
|
for i in iter(self._list):
|
|
|
|
yield i
|
|
|
|
|
|
|
|
def iteritems(self):
|
|
|
|
for i in iter(self._list):
|
|
|
|
yield (i, self[i])
|
|
|
|
|
|
|
|
def itervalues(self):
|
|
|
|
for i in iter(self._list):
|
|
|
|
yield self[i]
|
|
|
|
|
|
|
|
class field_list(list):
|
|
|
|
TYPE_WHITESPACE = object()
|
|
|
|
TYPE_COMMATA = object()
|
|
|
|
|
|
|
|
def __init__(self, value = None, type = TYPE_WHITESPACE):
|
|
|
|
self.type = type
|
|
|
|
if isinstance(value, field_list):
|
|
|
|
self.type = value.type
|
|
|
|
self.extend(value)
|
|
|
|
elif isinstance(value, (list, tuple)):
|
|
|
|
self.extend(value)
|
|
|
|
else:
|
|
|
|
self._extend(value)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
if self.type is self.TYPE_WHITESPACE:
|
|
|
|
type = ' '
|
|
|
|
elif self.type is self.TYPE_COMMATA:
|
|
|
|
type = ', '
|
|
|
|
return type.join(self)
|
|
|
|
|
|
|
|
def _extend(self, value):
|
|
|
|
if self.type is self.TYPE_WHITESPACE:
|
|
|
|
type = '\s'
|
|
|
|
elif self.type is self.TYPE_COMMATA:
|
|
|
|
type = ','
|
|
|
|
if value is not None:
|
|
|
|
self.extend([j.strip() for j in re.split(type, value.strip())])
|
|
|
|
|
|
|
|
def extend(self, value):
|
|
|
|
if isinstance(value, str):
|
|
|
|
self._extend(value)
|
|
|
|
else:
|
|
|
|
super(field_list, self).extend(value)
|
|
|
|
|
|
|
|
class field_list_commata(field_list):
|
|
|
|
def __init__(self, value = None):
|
|
|
|
super(field_list_commata, self).__init__(value, field_list.TYPE_COMMATA)
|
|
|
|
|
|
|
|
class field_string(str):
|
|
|
|
def __str__(self):
|
|
|
|
return '\n '.join(self.split('\n'))
|
|
|
|
|
|
|
|
class templates(dict):
|
|
|
|
def __init__(self, dir = None):
|
|
|
|
if dir is None:
|
|
|
|
self.dir = "debian/templates"
|
|
|
|
else:
|
|
|
|
self.dir = dir
|
|
|
|
|
|
|
|
def __getitem__(self, key):
|
|
|
|
try:
|
|
|
|
return dict.__getitem__(self, key)
|
|
|
|
except KeyError: pass
|
|
|
|
ret = self._read(key)
|
|
|
|
dict.__setitem__(self, key, ret)
|
|
|
|
return ret
|
|
|
|
|
|
|
|
def __setitem__(self, key, value):
|
|
|
|
raise NotImplemented()
|
|
|
|
|
|
|
|
def _read(self, filename):
|
|
|
|
entries = []
|
|
|
|
|
|
|
|
f = file("%s/%s.in" % (self.dir, filename))
|
|
|
|
|
|
|
|
while True:
|
2006-01-06 22:32:16 +00:00
|
|
|
e = debian.package()
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
debian/templates/control.headers.in,
debian/templates/control.headers.latest.in,
debian/templates/control.headers.subarch.in,
debian/templates/control.image.in,
debian/templates/control.image.latest.in:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
last = None
|
|
|
|
lines = []
|
2006-01-04 19:33:32 +00:00
|
|
|
while True:
|
|
|
|
line = f.readline()
|
|
|
|
if not line:
|
|
|
|
break
|
|
|
|
line = line.strip('\n')
|
|
|
|
if not line:
|
|
|
|
break
|
|
|
|
if line[0] in ' \t':
|
|
|
|
if not last:
|
|
|
|
raise ValueError('Continuation line seen before first header')
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
debian/templates/control.headers.in,
debian/templates/control.headers.latest.in,
debian/templates/control.headers.subarch.in,
debian/templates/control.image.in,
debian/templates/control.image.latest.in:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
lines.append(line.lstrip())
|
2006-01-04 19:33:32 +00:00
|
|
|
continue
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
debian/templates/control.headers.in,
debian/templates/control.headers.latest.in,
debian/templates/control.headers.subarch.in,
debian/templates/control.image.in,
debian/templates/control.image.latest.in:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
if last:
|
|
|
|
e[last] = '\n'.join(lines)
|
2006-01-04 19:33:32 +00:00
|
|
|
i = line.find(':')
|
|
|
|
if i < 0:
|
|
|
|
raise ValueError("Not a header, not a continuation: ``%s''" % line)
|
|
|
|
last = line[:i]
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
debian/templates/control.headers.in,
debian/templates/control.headers.latest.in,
debian/templates/control.headers.subarch.in,
debian/templates/control.image.in,
debian/templates/control.image.latest.in:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
lines = [line[i+1:].lstrip()]
|
|
|
|
if last:
|
|
|
|
e[last] = '\n'.join(lines)
|
2006-01-04 19:33:32 +00:00
|
|
|
if not e:
|
|
|
|
break
|
|
|
|
|
|
|
|
entries.append(e)
|
|
|
|
|
|
|
|
return entries
|
|
|
|
|
|
|
|
class wrap(textwrap.TextWrapper):
|
|
|
|
wordsep_re = re.compile(
|
|
|
|
r'(\s+|' # any whitespace
|
|
|
|
r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash
|
|
|
|
|