[kernel] r11178 - people/waldi/dkt/lib/dkt/hooks/modules
Bastian Blank
waldi at alioth.debian.org
Fri Apr 25 14:35:35 UTC 2008
Author: waldi
Date: Fri Apr 25 14:35:33 2008
New Revision: 11178
Log:
lib/dkt/hooks/modules/backward_kpkg_symlinks.py:
Add backward compatible bootloader code.
Modified:
people/waldi/dkt/lib/dkt/hooks/modules/backward_kpkg_symlinks.py
Modified: people/waldi/dkt/lib/dkt/hooks/modules/backward_kpkg_symlinks.py
==============================================================================
--- people/waldi/dkt/lib/dkt/hooks/modules/backward_kpkg_symlinks.py (original)
+++ people/waldi/dkt/lib/dkt/hooks/modules/backward_kpkg_symlinks.py Fri Apr 25 14:35:33 2008
@@ -7,6 +7,16 @@
from dkt.support.system import architecture
class Hook(object):
+ bootloaders = {
+ 'amd64': 'lilo',
+ 'i386': 'lilo',
+ 'powerpc': None,
+ 's390': 'zipl',
+ 'sparc': None,
+ }
+
+ safe_path = '/usr/sbin', '/sbin', '/usr/bin', '/bin'
+
def _check_active(self, systemconfig):
return systemconfig.get_parse_boolean('backward-compatibility', 'kpkg-do-symlinks', False)
@@ -178,7 +188,28 @@
os.symlink(target, file)
if systemconfig.get_parse_boolean('backward-compatibility', 'kpkg-do-bootloader', False):
- raise NotImplementedError()
+ try:
+ bootloader = self.bootloaders.get(architecture)
+ except KeyError:
+ raise NotImplementedError("Backward compatible bootloader setup not supported for arch %s" % architecture)
+
+ if bootloader is not None:
+ bootloader_filename = None
+
+ for i in self.safe_path:
+ f = os.path.join(i, hook)
+ if os.access(f, os.X_OK):
+ bootloader_filename = f
+ break
+
+ if bootloader_filename is None:
+ raise RuntimeError("Can't find bootloader: %s" % bootloader)
+
+ ret = subprocess.call([bootloader_filename], stdin = subprocess.PIPE, stdout = subprocess.PIPE)
+ if ret:
+ raise RuntimeError("Failed to run bootloader (%s): %d" % (bootloader, ret))
+
+ raise NotImplementedError()
return True
More information about the Kernel-svn-changes
mailing list