* debian/lib/python/debian_linux/patches.py: Split file listing in suboperations.

* debian/patches/debian/dfsg/files-1: Update.

svn path=/dists/trunk/linux-2.6/; revision=9517
This commit is contained in:
Bastian Blank 2007-09-15 17:50:59 +00:00
parent 338eb8b896
commit ba26896546
2 changed files with 91 additions and 47 deletions

View File

@ -1,8 +1,8 @@
import os, shutil
class Operation(object):
def __init__(self, name, fp, data):
self.name, self.fp, self.data = name, fp, data
def __init__(self, name, data):
self.name, self.data = name, data
def __call__(self, dir = '.', reverse = False):
try:
@ -29,6 +29,10 @@ class Operation(object):
raise NotImplementedError
class OperationPatch(Operation):
def __init__(self, name, fp, data):
super(OperationPatch, self).__init__(name, data)
self.fp = fp
def _call(self, dir, extraargs):
cmdline = "cd %s; patch -p1 -f -s -t --no-backup-if-mismatch %s" % (dir, extraargs)
f = os.popen(cmdline, 'wb')
@ -54,22 +58,62 @@ class OperationPatchPop(OperationPatch):
do = OperationPatch.patch_pop
do_reverse = OperationPatch.patch_push
class OperationRemoveFiles(Operation):
operation = 'X'
class SubOperation(Operation):
def _log(self, result):
if result:
s = "OK"
else:
s = "FAIL"
print """ %-10s %-4s %s""" % ('(%s)' % self.operation, s, self.name)
class SubOperationFilesRemove(SubOperation):
operation = "remove"
def do(self, dir):
for line in self.fp:
os.unlink(os.path.join(dir, self.name))
class SubOperationFilesUnifdef(SubOperation):
operation = "unifdef"
class OperationFiles(Operation):
operation = 'X'
suboperations = {
'remove': SubOperationFilesRemove,
'rm': SubOperationFilesRemove,
'unifdef': SubOperationFilesUnifdef,
}
def __init__(self, name, fp, data):
super(OperationFiles, self).__init__(name, data)
ops = []
for line in fp:
line = line.strip()
if not line or line[0] == '#':
continue
os.unlink(os.path.join(dir, line))
items = line.split()
operation, filename = items[:2]
data = items[2:]
if operation not in self.suboperations:
raise RuntimeError('Undefined operation "%s" in series %s' % (operation, name))
ops.append(self.suboperations[operation](filename, data))
self.ops = ops
def do(self, dir):
for i in self.ops:
i(dir = dir)
class PatchSeries(list):
operations = {
'+': OperationPatchPush,
'-': OperationPatchPop,
'X': OperationRemoveFiles,
'X': OperationFiles,
}
def __init__(self, name, root, fp):

View File

@ -1,48 +1,48 @@
Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt
rm Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt
drivers/media/video/dabfirmware.h
drivers/media/video/dabusb.c
drivers/media/video/dabusb.h
rm drivers/media/video/dabfirmware.h
rm drivers/media/video/dabusb.c
rm drivers/media/video/dabusb.h
drivers/net/dgrs.c
drivers/net/dgrs_es4h.h
drivers/net/dgrs.h
drivers/net/dgrs_ether.h
drivers/net/dgrs_firmware.c
drivers/net/dgrs_asstruct.h
drivers/net/dgrs_plx9060.h
drivers/net/dgrs_i82596.h
drivers/net/dgrs_bcomm.h
rm drivers/net/dgrs.c
rm drivers/net/dgrs_es4h.h
rm drivers/net/dgrs.h
rm drivers/net/dgrs_ether.h
rm drivers/net/dgrs_firmware.c
rm drivers/net/dgrs_asstruct.h
rm drivers/net/dgrs_plx9060.h
rm drivers/net/dgrs_i82596.h
rm drivers/net/dgrs_bcomm.h
drivers/usb/misc/emi62.c
drivers/usb/misc/emi62_fw_s.h
drivers/usb/misc/emi62_fw_m.h
rm drivers/usb/misc/emi62.c
rm drivers/usb/misc/emi62_fw_s.h
rm drivers/usb/misc/emi62_fw_m.h
drivers/usb/misc/emi26.c
drivers/usb/misc/emi26_fw.h
rm drivers/usb/misc/emi26.c
rm drivers/usb/misc/emi26_fw.h
drivers/net/tokenring/3c359_microcode.h
drivers/net/tokenring/3c359.h
drivers/net/tokenring/3c359.c
rm drivers/net/tokenring/3c359_microcode.h
rm drivers/net/tokenring/3c359.h
rm drivers/net/tokenring/3c359.c
drivers/net/tokenring/smctr.h
drivers/net/tokenring/smctr_firmware.h
drivers/net/tokenring/smctr.c
rm drivers/net/tokenring/smctr.h
rm drivers/net/tokenring/smctr_firmware.h
rm drivers/net/tokenring/smctr.c
drivers/net/appletalk/cops.h
drivers/net/appletalk/cops_ltdrv.h
drivers/net/appletalk/cops.c
drivers/net/appletalk/cops_ffdrv.h
rm drivers/net/appletalk/cops.h
rm drivers/net/appletalk/cops_ltdrv.h
rm drivers/net/appletalk/cops.c
rm drivers/net/appletalk/cops_ffdrv.h
drivers/usb/serial/keyspan_usa19_fw.h
drivers/usb/serial/keyspan_usa19qi_fw.h
drivers/usb/serial/keyspan_usa19qw_fw.h
drivers/usb/serial/keyspan_usa18x_fw.h
drivers/usb/serial/keyspan_usa19w_fw.h
drivers/usb/serial/keyspan_usa49wlc_fw.h
drivers/usb/serial/keyspan_usa28xb_fw.h
drivers/usb/serial/keyspan_usa28x_fw.h
drivers/usb/serial/keyspan_usa49w_fw.h
drivers/usb/serial/keyspan_usa28xa_fw.h
drivers/usb/serial/keyspan_usa28_fw.h
drivers/usb/serial/keyspan_mpr_fw.h
rm drivers/usb/serial/keyspan_usa19_fw.h
rm drivers/usb/serial/keyspan_usa19qi_fw.h
rm drivers/usb/serial/keyspan_usa19qw_fw.h
rm drivers/usb/serial/keyspan_usa18x_fw.h
rm drivers/usb/serial/keyspan_usa19w_fw.h
rm drivers/usb/serial/keyspan_usa49wlc_fw.h
rm drivers/usb/serial/keyspan_usa28xb_fw.h
rm drivers/usb/serial/keyspan_usa28x_fw.h
rm drivers/usb/serial/keyspan_usa49w_fw.h
rm drivers/usb/serial/keyspan_usa28xa_fw.h
rm drivers/usb/serial/keyspan_usa28_fw.h
rm drivers/usb/serial/keyspan_mpr_fw.h