[kernel] r11101 - in dists/trunk/linux-2.6/debian: bin templates
Bastian Blank
waldi at alioth.debian.org
Sat Apr 19 11:23:52 UTC 2008
Author: waldi
Date: Sat Apr 19 11:23:51 2008
New Revision: 11101
Log:
* debian/bin/gencontrol.py: Update patch tool generation.
* debian/templates/patch.apply.in
- Remove current override.
- Make version handling easier.
- Check for correct package upstream version.
Modified:
dists/trunk/linux-2.6/debian/bin/gencontrol.py
dists/trunk/linux-2.6/debian/templates/patch.apply.in
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 Apr 19 11:23:51 2008
@@ -250,10 +250,9 @@
unpatch = self.templates['patch.unpatch']
vars = {
- 'home': '/usr/src/kernel-patches/all/%s/debian' % self.version.linux_upstream,
- 'revisions': ' '.join([i.debian for i in self.versions[::-1]]),
- 'source': "%(linux_upstream)s-%(debian)s" % self.version.__dict__,
- 'upstream': self.version.linux_upstream,
+ 'revisions': 'orig ' + ' '.join([i.debian for i in self.versions[::-1]]),
+ 'upstream': self.version.upstream,
+ 'linux_upstream': self.version.linux_upstream,
'abiname': self.abiname,
}
Modified: dists/trunk/linux-2.6/debian/templates/patch.apply.in
==============================================================================
--- dists/trunk/linux-2.6/debian/templates/patch.apply.in (original)
+++ dists/trunk/linux-2.6/debian/templates/patch.apply.in Sat Apr 19 11:23:51 2008
@@ -3,14 +3,13 @@
import os, os.path, re, sys
from warnings import warn
-sys.path.append("/usr/src/linux-support- at upstream@@abiname@/lib/python")
+sys.path.append("/usr/src/linux-support- at linux_upstream@@abiname@/lib/python")
-from debian_linux.debian import VersionLinux
from debian_linux.patches import PatchSeries, PatchSeriesList
-_default_home = "@home@"
-_default_revisions = "@revisions@"
-_default_source = "@source@"
+_default_home = "/usr/src/kernel-patches/all/@linux_upstream@/debian"
+revisions = "@revisions@".split()
+upstream = "@upstream@"
class MatchExtra(object):
def __init__(self, arch, featureset):
@@ -72,34 +71,33 @@
extra = None
in_progress = False
- def __init__(self, ver = None, overwrite = False):
- if overwrite:
- self._read(ver)
- elif os.path.exists(self._file):
+ def __init__(self, upstream = None):
+ if os.path.exists(self._file):
s = file(self._file).readline().strip()
self._read(s)
- elif ver:
- warn('No %s file, assuming pristine Linux %s' % (self._file, ver.upstream))
- self.version = VersionLinux(ver.upstream + '-0')
+ elif upstream:
+ warn('No %s file, assuming Debian Linux %s' % (self._file, upstream))
+ self.upstream = upstream
+ self.revision = 'orig'
else:
raise RuntimeError, "Not possible to determine version"
def __str__(self):
if self.in_progress:
return "unstable"
+ ret = [self.upstream, self.revision]
if self.extra is not None:
- return ' '.join([str(self.version)] + self.extra.info())
- return str(self.version)
+ ret.extend(self.extra.info())
+ return ' '.join(ret)
def _read(self, s):
+ if s == 'unstable':
+ raise RuntimeError("Tree is in an unstable condition. Can't continue!")
list = s.split()
- try:
- self.version = VersionLinux(list[0])
- except ValueError:
- raise RuntimeError, 'Can\'t read version in %s: "%s"' % (self._file, list[0])
+ self.upstream, self.revision = list[0:2]
arch = featureset = None
- for i in list[1:]:
+ for i in list[2:]:
if i.startswith("arch="):
arch = i[5:]
elif i.startswith("featureset="):
@@ -117,9 +115,9 @@
self.in_progress = True
self._write()
- def commit(self, version, extra = _marker):
+ def commit(self, revision, extra = _marker):
self.in_progress = False
- self.version = version
+ self.revision = revision
if extra is not _marker:
self.extra = extra
self._write()
@@ -132,63 +130,59 @@
return
home = options.home
- revisions = ['0'] + options.revisions.split()
- source = VersionLinux(options.source)
- if len(args) == 1:
- target = VersionLinux(args[0])
- else:
- target = source
- if options.current is not None:
- vfile = version_file(options.current, True)
- else:
- vfile = version_file(source)
- current = vfile.version
+ vfile = version_file(upstream)
+ current_revision = vfile.revision
current_extra = vfile.extra
+ if len(args) == 1:
+ target_revision = args[0]
+ else:
+ target_revision = revisions[-1]
target_extra = MatchExtra(options.arch, options.featureset)
- if current.debian not in revisions:
+ if vfile.upstream != upstream:
+ raise RuntimeError("Upstream version differs between tree (%s) and package (%s)" % (vfile.upstream, upstream))
+ if current_revision not in revisions:
raise RuntimeError, "Current revision is not in our list of revisions"
- if target.debian not in revisions:
+ if target_revision not in revisions:
raise RuntimeError, "Target revision is not in our list of revisions"
- if current.debian == target.debian and current_extra == target_extra:
+ if current_revision == target_revision and current_extra == target_extra:
print "Nothing to do"
return
- current_index = revisions.index(current.debian)
- source_index = revisions.index(source.debian)
- target_index = revisions.index(target.debian)
+ current_index = revisions.index(current_revision)
+ target_index = revisions.index(target_revision)
if current_extra:
- if current_index != source_index:
+ if current_revision != revisions[-1]:
raise RuntimeError, "Can't patch from %s with options %s" % (current, ' '.join(current_extra))
consider = ['%s-extra' % i for i in revisions[1:current_index + 1]]
s = PatchSeriesList.read(home, consider)
vfile.begin()
s(cond = current_extra, reverse = True)
- vfile.commit(current, None)
+ vfile.commit(current_revision, None)
if current_index < target_index:
consider = revisions[current_index + 1:target_index + 1]
s = PatchSeriesList.read(home, consider)
vfile.begin()
s()
- vfile.commit(target)
+ vfile.commit(target_revision)
elif current_index > target_index:
consider = revisions[target_index + 1:current_index + 1]
s = PatchSeriesList.read(home, consider)
vfile.begin()
s(reverse = True)
- vfile.commit(target)
+ vfile.commit(target_revision)
if target_extra:
consider = ['%s-extra' % i for i in revisions[1:target_index + 1]]
s = PatchSeriesList.read(home, consider)
vfile.begin()
s(cond = target_extra)
- vfile.commit(target, target_extra)
+ vfile.commit(target_revision, target_extra)
def parse_options():
from optparse import OptionParser
@@ -206,25 +200,10 @@
help = "featureset",
)
parser.add_option(
- '-C', '--overwrite-current',
- dest = 'current',
- help = "overwrite current",
- )
- parser.add_option(
'-H', '--overwrite-home',
default = _default_home, dest = 'home',
help = "overwrite home [default: %default]",
)
- parser.add_option(
- '-R', '--overwrite-revisions',
- default = _default_revisions, dest = 'revisions',
- help = "overwrite revisions [default: %default]",
- )
- parser.add_option(
- '-S', '--overwrite-source',
- default = _default_source, dest = 'source',
- help = "overwrite source [default: %default]",
- )
options, args = parser.parse_args()
More information about the Kernel-svn-changes
mailing list