On Mon, May 25, 2015 at 07:44:40AM -0400, James Valleroy wrote: > linux-image-486 isn't available in sid. It appears to have been replaced > with linux-image-586. > > The attached patch will change the kernel_arch to 586 for i386 builds. > After this change, i386 image builds are successful.
This solves the problem if you're targeting unstable (or anything after jessie), but breaks it for wheezy. As I need to support wheezy for my own stuff, I offer the attached patch, which also adds a --kernel-package option to override frail logic in the future. Neil, also available as liw/kernel-package-name in git. -- sic transit disci mundi, ergo obnam
diff --git a/vmdebootstrap b/vmdebootstrap index 49c21c8..31fb7ec 100755 --- a/vmdebootstrap +++ b/vmdebootstrap @@ -120,6 +120,10 @@ class VmDebootstrap(cliapp.Application): # pylint: disable=too-many-public-meth self.settings.boolean( ['no-kernel'], 'do not install a linux package') + self.settings.string( + ['kernel-package'], + 'install PACKAGE instead of the default kernel package', + metavar='PACKAGE') self.settings.boolean( ['enable-dhcp'], 'enable DHCP on eth0') @@ -423,13 +427,29 @@ class VmDebootstrap(cliapp.Application): # pylint: disable=too-many-public-meth include.append('grub-pc') if not self.settings['no-kernel']: - if self.settings['arch'] == 'i386': - kernel_arch = '486' - elif self.settings['arch'] == 'armhf': - kernel_arch = 'armmp' + if self.settings['kernel-package']: + kernel_image = self.settings['kernel-package'] else: - kernel_arch = self.settings['arch'] - kernel_image = 'linux-image-%s' % kernel_arch + if self.settings['arch'] == 'i386': + # Wheezy has linux-image-486. Jessie and later + # have linux-image-586. When stretch gets released, + # this code needs to change the detection logic. + # FIXME: This is too fugly and needs a better logic, + # but I can't find a better way. + dist = self.settings['distribution'] + jessie_or_later = dist in [ + 'stable', 'jessie', + 'testing', 'stretch', + 'unstable', 'sid'] + if jessie_or_later: + kernel_arch = '586' + else: + kernel_arch = '486' + elif self.settings['arch'] == 'armhf': + kernel_arch = 'armmp' + else: + kernel_arch = self.settings['arch'] + kernel_image = 'linux-image-%s' % kernel_arch include.append(kernel_image) if self.settings['sudo'] and 'sudo' not in include: