if os.path.isdir(iso_mount + '/boot/release'):
prefix = release_path + '/'
- kernel = search_file(prefix + 'linux26', iso_mount)
+ kernel = search_file(prefix + 'vmlinuz', iso_mount)
+ initrd = search_file(prefix + 'initrd.img', iso_mount)
if kernel is None:
- logging.critical("Fatal kernel not found")
- raise CriticalException("error locating kernel file")
- else:
- exec_rsync(kernel, release_target + '/linux26')
+ # compat for releases < 2011.12
+ kernel = search_file(prefix + 'linux26', iso_mount)
+ initrd = search_file(prefix + 'initrd.gz', iso_mount)
- initrd = search_file(prefix + 'initrd.gz', iso_mount)
- if initrd is None:
- logging.critical("Fatal: initrd not found")
- raise CriticalException("error locating initrd file")
- else:
- exec_rsync(initrd, release_target + '/initrd.gz')
+ if kernel is None or initrd is None:
+ logging.critical("Fatal: kernel or initrd not found")
+ raise CriticalException("error locating kernel or initrd file")
+
+ exec_rsync(kernel, release_target + '/')
+ exec_rsync(initrd, release_target + '/')
def update_grml_versions(iso_mount, target):
for regex in options.removeoption:
regexe.append(re.compile(r'%s' % regex))
- option_re = re.compile(r'(.*/boot/release/.*linux26.*)')
+ option_re = re.compile(r'(.*/boot/release/.*(linux26|vmlinuz).*)')
for line in fileinput.input(filename, inplace=1):
if regexe and option_re.search(line):
global GRML_DEFAULT
# install main configuration only *once*, no matter how many ISOs we have:
- grub_flavour_is_default = False
+ install_main_config = True
if os.path.isfile(grub2_cfg):
string = open(grub2_cfg).readline()
main_identifier = re.compile(".*main config generated at: %s.*" % re.escape(str(DATESTAMP)))
- if not re.match(main_identifier, string):
- grub2_config_file = open(grub2_cfg, 'w')
- GRML_DEFAULT = grml_flavour
- grub_flavour_is_default = True
- grub2_config_file.write(generate_main_grub2_config(grml_flavour, bootopt))
- grub2_config_file.close()
- else:
+ if re.match(main_identifier, string):
+ install_main_config = False
+ if install_main_config:
grub2_config_file = open(grub2_cfg, 'w')
GRML_DEFAULT = grml_flavour
- grub_flavour_is_default = True
grub2_config_file.write(generate_main_grub2_config(grml_flavour, bootopt))
grub2_config_file.close()
if grub_flavour_config:
grub2_config_file = open(grub2_cfg, 'a')
# display only if the grml flavour isn't the default
- if not grub_flavour_is_default:
+ if GRML_DEFAULT != grml_flavour:
GRML_FLAVOURS.add(grml_flavour)
grub2_config_file.write(generate_flavour_specific_grub2_config(grml_flavour, bootopt))
grub2_config_file.close()
regexe = []
option_re = None
if options.removeoption:
- option_re = re.compile(r'/boot/release/.*/initrd.gz')
+ option_re = re.compile(r'/boot/release/.*/(initrd.gz|initrd.img)')
for regex in options.removeoption:
regexe.append(re.compile(r'%s' % regex))
data.close()
def modify_filenames(grml_flavour, target, filenames):
- """Replace the standarf filenames with the new ones
+ """Replace the standard filenames with the new ones
@grml_flavour: grml-flavour strin
@target: directory where the files are located
entry = 'include %s\n' % new_default
defaults_file = '%s/defaults.cfg' % syslinux_target
new_default_with_path = "%s/%s" % (syslinux_target, new_default)
- new_grml_cfg = "%s/%s_grml.cfg" % ( syslinux_target, flavour_filename)
+ new_grml_cfg = "%s/%s_grml.cfg" % (syslinux_target, flavour_filename)
if os.path.isfile(defaults_file):