diff --git a/libraries/entropy/client/interfaces/trigger.py b/libraries/entropy/client/interfaces/trigger.py index 98aa3d987..7d6520735 100644 --- a/libraries/entropy/client/interfaces/trigger.py +++ b/libraries/entropy/client/interfaces/trigger.py @@ -140,13 +140,6 @@ class Trigger: functions.remove("ebuild_postinstall") functions.append('kernelmod') - # FIXME: deprecated, will be removed - if x.startswith('/boot/kernel-'): - c_item = self._trigger_data.setdefault('addbootablekernel', set()) - c_item.add(x) - if "addbootablekernel" not in functions: - functions.append('addbootablekernel') - if "env_update" not in functions: if x.startswith('/etc/env.d/'): functions.append('env_update') @@ -190,13 +183,6 @@ class Trigger: for x in self.pkgdata['removecontent']: - # FIXME: deprecated - if x.startswith('/boot/kernel-'): - c_item = self._trigger_data.setdefault('removebootablekernel', set()) - c_item.add(x) - if "removebootablekernel" not in functions: - functions.append('removebootablekernel') - if x.startswith('/etc/init.d/'): c_item = self._trigger_data.setdefault('initdisable', set()) c_item.add(x) @@ -682,71 +668,6 @@ class Trigger: header = red(" ##") ) - # FIXME: deprecated - def trigger_addbootablekernel(self): - - boot_mount = False - if os.path.ismount("/boot"): - boot_mount = True - kernels = sorted(self._trigger_data['addbootablekernel']) - if boot_mount: - kernels = [x[len("/boot"):] for x in kernels] - - for kernel in kernels: - - mykernel = kernel.split('/kernel-')[1] - initramfs = "/boot/initramfs-"+mykernel - if initramfs not in self.pkgdata['content']: - initramfs = '' - elif boot_mount: - initramfs = initramfs[len("/boot"):] - - # configure GRUB - self.Entropy.clientLog.log( - ETP_LOGPRI_INFO, - ETP_LOGLEVEL_NORMAL, - "[POST] Configuring GRUB bootloader. Adding the new kernel..." - ) - mytxt = "%s. %s ..." % ( - _("Configuring GRUB bootloader"), - _("Adding the new kernel"), - ) - - self.Entropy.updateProgress( - brown(mytxt), - importance = 0, - header = red(" ## ") - ) - self.trigger_configure_boot_grub(kernel, initramfs) - - # FIXME: deprecated - def trigger_removebootablekernel(self): - - kernels = sorted(self._trigger_data['removebootablekernel']) - for kernel in kernels: - - initramfs = "/boot/initramfs-"+kernel[13:] - if initramfs not in self.pkgdata['content']: - initramfs = '' - - # configure GRUB - self.Entropy.clientLog.log( - ETP_LOGPRI_INFO, - ETP_LOGLEVEL_NORMAL, - "[POST] Configuring GRUB bootloader. Removing the selected kernel..." - ) - mytxt = "%s. %s ..." % ( - _("Configuring GRUB bootloader"), - _("Removing the selected kernel"), - ) - - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - self.trigger_remove_boot_grub(kernel,initramfs) - def trigger_run_ldconfig(self): if not etpConst['systemroot']: myroot = "/" @@ -1214,259 +1135,3 @@ class Trigger: myroot, name,), shell = True) return 0 - # FIXME: deprecated - def __get_entropy_kernel_grub_line(self, kernel): - sys_name = self.Entropy.SystemSettings['system']['name'] - return "title=%s (%s)\n" % (sys_name, os.path.basename(kernel),) - - # FIXME: deprecated - def trigger_configure_boot_grub(self, kernel, initramfs): - - if not os.path.isdir(etpConst['systemroot']+"/boot/grub"): - os.makedirs(etpConst['systemroot']+"/boot/grub") - - if os.path.isfile(etpConst['systemroot']+"/boot/grub/grub.conf"): - - # open in append - grub = open(etpConst['systemroot']+"/boot/grub/grub.conf","aw") - shutil.copy2(etpConst['systemroot']+"/boot/grub/grub.conf", - etpConst['systemroot']+"/boot/grub/grub.conf.old.add") - # get boot dev - boot_dev = self.trigger_get_grub_boot_dev() - # test if entry has been already added - grubtest = open(etpConst['systemroot']+"/boot/grub/grub.conf","r") - content = grubtest.readlines() - content = [unicode(x,'raw_unicode_escape') for x in content] - for line in content: - - if line.find(self.__get_entropy_kernel_grub_line(kernel)) != -1: - grubtest.close() - return - - # also check if we have the same kernel listed - if (line.find("kernel") != 1) and \ - (line.find(os.path.basename(kernel)) != -1) and not \ - line.strip().startswith("#"): - - grubtest.close() - return - else: - - # create - boot_dev = "(hd0,0)" - grub = open(etpConst['systemroot']+"/boot/grub/grub.conf","w") - # write header - guess (hd0,0)... since it is weird - # having a running system without a bootloader, at least, grub. - grub.write("default=0\ntimeout=10\n") - - cmdline = '' - if os.access("/proc/cmdline", os.R_OK): - cmdline_f = open("/proc/cmdline","r") - cmdline = " "+cmdline_f.readline().strip() - cmdline_f.close() - - grub.write(self.__get_entropy_kernel_grub_line(kernel)) - grub.write("\troot "+boot_dev+"\n") - grub.write("\tkernel "+kernel+cmdline+"\n") - if initramfs: - grub.write("\tinitrd "+initramfs+"\n") - grub.write("\tsavedefault\n") - grub.write("\n") - grub.flush() - grub.close() - - # FIXME: deprecated - def trigger_remove_boot_grub(self, kernel,initramfs): - - if os.path.isdir(etpConst['systemroot']+"/boot/grub") and \ - os.path.isfile(etpConst['systemroot']+"/boot/grub/grub.conf"): - - shutil.copy2(etpConst['systemroot']+"/boot/grub/grub.conf", - etpConst['systemroot']+"/boot/grub/grub.conf.old.remove") - f = open(etpConst['systemroot']+"/boot/grub/grub.conf","r") - grub_conf = f.readlines() - f.close() - - content = [unicode(x,'raw_unicode_escape') for x in grub_conf] - try: - kernel, initramfs = (unicode(kernel,'raw_unicode_escape'), - unicode(initramfs,'raw_unicode_escape'),) - except TypeError: - pass - - new_conf = [] - skip = False - for line in content: - - kernel_grub_line = self.__get_entropy_kernel_grub_line(kernel) - if (line.find(kernel_grub_line) != -1): - skip = True - continue - - if line.strip().startswith("title"): - skip = False - - if not skip or line.strip().startswith("#"): - new_conf.append(line) - - f = open(etpConst['systemroot']+"/boot/grub/grub.conf","w") - for line in new_conf: - try: - f.write(line) - except UnicodeEncodeError: - f.write(line.encode('utf-8')) - - f.flush() - f.close() - - # FIXME: deprecated - def trigger_get_grub_boot_dev(self): - - if etpConst['systemroot']: - return "(hd0,0)" - - import re - df_avail = subprocess.call("which df &> /dev/null", shell = True) - if df_avail != 0: - mytxt = "%s: %s! %s. %s (hd0,0)." % ( - bold(_("QA")), - brown(_("Cannot find df")), - brown(_("Cannot properly configure the kernel")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)" - grub_avail = subprocess.call("which grub &> /dev/null", shell = True) - if grub_avail != 0: - mytxt = "%s: %s! %s. %s (hd0,0)." % ( - bold(_("QA")), - brown(_("Cannot find grub")), - brown(_("Cannot properly configure the kernel")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)" - - from entropy.tools import getstatusoutput - gboot = getstatusoutput("df /boot")[1].split("\n")[-1].split()[0] - if gboot.startswith("/dev/"): - # it's ok - handle /dev/md - if gboot.startswith("/dev/md"): - md = os.path.basename(gboot) - if not md.startswith("md"): - md = "md"+md - f = open("/proc/mdstat","r") - mdstat = f.readlines() - mdstat = [x for x in mdstat if x.startswith(md)] - f.close() - if mdstat: - mdstat = mdstat[0].strip().split() - mddevs = [] - for x in mdstat: - if x.startswith("sd"): - mddevs.append(x[:-3]) - mddevs = sorted(mddevs) - if mddevs: - gboot = "/dev/"+mddevs[0] - else: - gboot = "/dev/sda1" - else: - gboot = "/dev/sda1" - # get disk - match = re.subn("[0-9]","",gboot) - gdisk = match[0] - if gdisk == '': - - mytxt = "%s: %s %s %s. %s! %s (hd0,0)." % ( - bold(_("QA")), - brown(_("cannot match device")), - brown(str(gboot)), - brown(_("with a grub one")), # 'cannot match device /dev/foo with a grub one' - brown(_("Cannot properly configure the kernel")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)" - match = re.subn("[a-z/]","",gboot) - try: - gpartnum = str(int(match[0])-1) - except ValueError: - mytxt = "%s: %s: %s. %s. %s (hd0,0)." % ( - bold(_("QA")), - brown(_("grub translation not supported for")), - brown(str(gboot)), - brown(_("Cannot properly configure grub.conf")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)" - # now match with grub - device_map = etpConst['packagestmpdir']+"/grub.map" - if os.path.isfile(device_map): - os.remove(device_map) - # generate device.map - subprocess.call('echo "quit" | grub --device-map="%s" --no-floppy --batch &> /dev/null' % (device_map,), shell = True) - if os.path.isfile(device_map): - f = open(device_map,"r") - device_map_file = f.readlines() - f.close() - grub_dev = [x for x in device_map_file if (x.find(gdisk) != -1)] - if grub_dev: - grub_disk = grub_dev[0].strip().split()[0] - grub_dev = grub_disk[:-1]+","+gpartnum+")" - return grub_dev - else: - mytxt = "%s: %s. %s! %s (hd0,0)." % ( - bold(_("QA")), - brown(_("cannot match grub device with a Linux one")), - brown(_("Cannot properly configure the kernel")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)" - else: - mytxt = "%s: %s. %s! %s (hd0,0)." % ( - bold(_("QA")), - brown(_("cannot find generated device.map")), - brown(_("Cannot properly configure the kernel")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)" - else: - mytxt = "%s: %s. %s! %s (hd0,0)." % ( - bold(_("QA")), - brown(_("cannot run df /boot")), - brown(_("Cannot properly configure the kernel")), - brown(_("Defaulting to")), - ) - self.Entropy.updateProgress( - mytxt, - importance = 0, - header = red(" ## ") - ) - return "(hd0,0)"