[entropy.client.interfaces.trigger] remove deprecated triggers
This commit is contained in:
@@ -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)"
|
||||
|
||||
Reference in New Issue
Block a user