1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
#
# upgrade_bootloader_text.py: text bootloader dialog for upgrades
#
# Jeremy Katz <katzj@redhat.com>
#
# Copyright, 2002 Red Hat, Inc.
#
#
# This software may be freely redistributed under the terms of the GNU
# library public license.
#
# You should have received a copy of the GNU Library Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
from snack import *
from constants_text import *
from rhpl.translate import _
from flags import flags
import string
import iutil
import checkbootloader
class UpgradeBootloaderWindow:
def __call__(self, screen, dispatch, bl):
self.dispatch = dispatch
self.bl = bl
(self.type, self.bootDev) = \
checkbootloader.getBootloaderTypeAndBoot(dispatch.instPath)
blradio = RadioGroup()
(update, newbl, nobl) = (0, 0, 0)
if not dispatch.stepInSkipList("bootloader"):
newbl = 1
elif dispatch.stepInSkipList("instbootloader"):
nobl = 1
else:
if self.type is not None and self.bootDev is not None:
update = 1
else:
nobl = 0
if self.type is not None and self.bootDev is not None:
t = TextboxReflowed(53,
_("The installer has detected the %s boot "
"loader currently installed on %s.")
% (self.type, self.bootDev))
self.update_radio = blradio.add(_("Update boot loader configuration"),
"update", update)
else:
t = TextboxReflowed(53,
_("The installer is unable to detect the boot loader "
"currently in use on your system."))
self.update_radio = blradio.add(_("Update boot loader configuration"),
"update", update)
self.update_radio.w.checkboxSetFlags(FLAG_DISABLED, FLAGS_SET)
self.nobl_radio = blradio.add(_("Skip boot loader updating"),
"nobl", nobl)
self.newbl_radio = blradio.add(_("Create new boot loader "
"configuration"),
"newbl", newbl)
buttons = ButtonBar(screen, [TEXT_OK_BUTTON, TEXT_BACK_BUTTON])
grid = GridFormHelp(screen, _("Upgrade Boot Loader Configuration"),
"bl-upgrade", 1, 5)
grid.add(t, 0, 0, (0,0,0,1))
grid.add(self.update_radio, 0, 1, (0,0,0,0))
grid.add(self.nobl_radio, 0, 2, (0,0,0,0))
grid.add(self.newbl_radio, 0, 3, (0,0,0,1))
grid.add(buttons, 0, 4, growx = 1)
while 1:
result = grid.run()
button = buttons.buttonPressed(result)
if button == TEXT_BACK_CHECK:
screen.popWindow()
return INSTALL_BACK
if blradio.getSelection() == "nobl":
self.dispatch.skipStep("bootloadersetup", skip = 1)
self.dispatch.skipStep("bootloader", skip = 1)
self.dispatch.skipStep("bootloaderadvanced", skip = 1)
self.dispatch.skipStep("instbootloader", skip = 1)
elif blradio.getSelection() == "newbl":
self.dispatch.skipStep("bootloadersetup", skip = 0)
self.dispatch.skipStep("bootloader", skip = 0)
self.dispatch.skipStep("bootloaderadvanced", skip = 0)
self.dispatch.skipStep("instbootloader", skip = 0)
self.bl.doUpgradeOnly = 0
else:
self.dispatch.skipStep("bootloadersetup", skip = 0)
self.dispatch.skipStep("bootloader", skip = 1)
self.dispatch.skipStep("bootloaderadvanced", skip = 1)
self.dispatch.skipStep("instbootloader", skip = 0)
self.bl.doUpgradeOnly = 1
if self.type == "GRUB":
self.bl.useGrubVal = 1
else:
self.bl.useGrubVal = 0
self.bl.setDevice(self.bootDev)
screen.popWindow()
return INSTALL_OK
|