diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | anaconda.spec | 8 | ||||
-rw-r--r-- | rescue.py | 48 |
3 files changed, 32 insertions, 28 deletions
@@ -1,3 +1,7 @@ +2006-06-27 Peter Jones <pjones@redhat.com> + + * rescue.py (runShell): backport new runShell code from HEAD (#193285) + 2006-06-05 Peter Jones <pjones@redhat.com> * isys/isys.py (acpicpus): diff --git a/anaconda.spec b/anaconda.spec index 63410e1fd..acc23886b 100644 --- a/anaconda.spec +++ b/anaconda.spec @@ -1,7 +1,7 @@ ExcludeArch: ppc64 Name: anaconda -Version: 10.1.1.44 -Release: 2 +Version: 10.1.1.45 +Release: 1 License: GPL Summary: Graphical system installer Group: Applications/System @@ -74,6 +74,10 @@ rm -rf $RPM_BUILD_ROOT /sbin/chkconfig --del reconfig >/dev/null 2>&1 || : %changelog +* Tue Jun 27 2006 Peter Jones <pjones@redhat.com> - 10.1.1.45-1 +- Revert bogus translation changes (#194153) +- Backport new runShell code from HEAD so rescue mode works (#193285) + * Mon Jun 5 2006 Peter Jones <pjones@redhat.com> - 10.1.1.44-2 - Don't traceback if /proc/lapics is missing (#192818) - Fix another weird cpu counting issue on i386 HT Xeons (#193816) @@ -162,14 +162,23 @@ def startNetworking(network, intf): f.close() -def runShell(): - shpid = os.fork() - if shpid == 0: - os.setsid() - fcntl.ioctl(0, termios.TIOCSCTTY) - os.execv("/bin/sh", ["-/bin/sh"]) +def runShell(screen, msg=""): + screen.suspend() + + print + if msg: + print (msg) + print _("When finished please exit from the shell and your " + "system will reboot.") + print + + if os.path.exists("/bin/sh"): + iutil.execWithRedirect("/bin/sh", ["-/bin/sh"]) else: - os.waitpid(shpid, 0) + print "Unable to find /bin/sh to execute! Not starting shell" + time.sleep(5) + + screen.finish() def runRescue(instPath, mountroot, id): @@ -249,11 +258,7 @@ def runRescue(instPath, mountroot, id): screen.finish() if (not mountroot): - print - print _("When finished please exit from the shell and your " - "system will reboot.") - print - runShell() + runShell(screen) sys.exit(0) # lets create some devices @@ -283,12 +288,8 @@ def runRescue(instPath, mountroot, id): [_("Continue"), _("Read-Only"), _("Skip")] ) if rc == string.lower(_("Skip")): - screen.finish() - print - print _("When finished please exit from the shell and your " - "system will reboot.") - print - runShell() + runShell(screen) + sys.exit(0) elif rc == string.lower(_("Read-Only")): readOnly = 1 else: @@ -433,20 +434,15 @@ def runRescue(instPath, mountroot, id): "automatically when you exit from the shell."), [ _("OK") ], width = 50) - screen.finish() + msgStr = "" - print if rootmounted and not readOnly: makeMtab(instPath, fs) try: makeResolvConf(instPath) except Exception, e: log("error making a resolv.conf: %s" %(e,)) - print _("Your system is mounted under the %s directory.") % (instPath,) - print + msgStr = _("Your system is mounted under the %s directory.") % (instPath,) - print _("When finished please exit from the shell and your " - "system will reboot.") - print - runShell() + runShell(screen, msgStr) sys.exit(0) |