We're running into an unfortunate side effect of this change.
boottool --update-kernel --args=X is buggy when used with lilo and the lilo.conf does not already have an append= section below that kernel's image= line.
What I'm doing as a hack to work around this is the following as the boottool perl code is pretty gross and much less easy to fix for this:
--- client/bin/kernel.py.before 2010-11-01 16:49:45.371159000 -0700
+++ client/bin/kernel.py 2010-11-01 17:25:30.786743000 -0700
<at> <at> -59,13 +59,17 <at> <at>
else:
arglist.append(arg)
- # add the kernel entry. it will keep all arguments from the default entry
- bootloader.add_kernel(image, tag, initrd=initrd, root=root)
+ # Add the kernel entry. it will keep all arguments from the default entry.
+ # args='_dummy_' is used to workaround a boottool limitation of not being
+ # able to add arguments to a kernel that does not already have any of its
+ # own by way of its own append= section below the image= line in lilo.conf.
+ bootloader.add_kernel(image, tag, initrd=initrd, root=root, args='_dummy_')
# Now, for each argument in arglist, try to add it to the kernel that was
# just added. In each step, if the arg already existed on the args string,
# that particular arg will be skipped
for a in arglist:
bootloader.add_args(kernel=tag, args=a)
+ bootloader.remove_args(kernel=tag, args='_dummy_')
class BootableKernel(object):
--- client/bin/kernel_unittest.py.before 2010-11-01 17:10:15.043835000 -0700
+++ client/bin/kernel_unittest.py 2010-11-01 17:25:54.656370000 -0700
<at> <at> -20,10 +20,11 <at> <at>
# record
bootloader.remove_kernel.expect_call(tag)
bootloader.add_kernel.expect_call(image, tag, initrd=initrd,
- root=bootloader_root)
+ args='_dummy_', root=bootloader_root)
for a in bootloader_args.split():
bootloader.add_args.expect_call(kernel=tag, args=a)
+ bootloader.remove_args.expect_call(kernel=tag, args='_dummy_')
# run and check
kernel._add_kernel_to_bootloader(