summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--anaconda.spec8
-rw-r--r--rescue.py48
3 files changed, 32 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 203c07b8f..6050e3e53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
diff --git a/rescue.py b/rescue.py
index e1a842657..9479842b7 100644
--- a/rescue.py
+++ b/rescue.py
@@ -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)