On Thu, 2012-08-23 at 17:55 -0700, Jesse Keating wrote:
This recovers some logic from yuminstall.py, only use
/run/install/repo
if there is metadata there.
This is related to bug 851274 , but only fixes part of it. It gets
booting from boot.iso working again, but leaves booting from DVD broken.
---
pyanaconda/packaging/yumpayload.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index 28f728d..c62e926 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -553,10 +553,11 @@ reposdir=%s
# Did dracut leave the DVD mounted for us?
device = get_mount_device("/run/install/repo")
if device:
- self.install_device = storage.devicetree.getDeviceByPath(device)
- url = "file:///run/install/repo"
- if not method.method:
- method.method = "cdrom"
+ if os.path.isdir("/run/install/repo/os/repodata"):
+ self.install_device = storage.devicetree.getDeviceByPath(device)
+ url = "file:///run/install/repo"
+ if not method.method:
+ method.method = "cdrom"
else:
# cdrom or no method specified -- check for media
device = opticalInstallMedia(storage.devicetree)
I'm pretty sure there's a more direct solution to the problem. Right
below this code we'll attempt to set up a yum repo using the method
we've set up. If that fails (it will if there's no repodata/), we'll
fall back to using the mirrorlists, so that check you're adding is
extraneous. The thing that might need changing is that we don't unset
self.install_device if adding the repo based on the method fails, which
could lead to us trying to either mount or unmount it later on.