Bug 74877
| Summary: | Autorun on 8.0 installation cd crashes | ||
|---|---|---|---|
| Product: | [Retired] Red Hat Linux | Reporter: | David Hawkins <dh-rhbug> |
| Component: | redhat-config-packages | Assignee: | Jeremy Katz <katzj> |
| Status: | CLOSED ERRATA | QA Contact: | Brock Organ <borgan> |
| Severity: | high | Docs Contact: | |
| Priority: | medium | ||
| Version: | 8.0 | CC: | danboy5, dmadance, don, gaxzero, jack, llu, meneguzzi |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | i686 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2006-04-22 04:16:52 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
This is a problem with redhat-config-packages and not the comps file itself. Changing the component so it's assigned to the correct person. Tim I haven't seen that on any of my machines -- if you add a patch like the
following, what package is it failing on?
Index: comps.py
===================================================================
RCS file: /usr/local/CVS/redhat-config-packages/src/comps.py,v
retrieving revision 1.30
diff -u -u -r1.30 comps.py
--- comps.py 30 Aug 2002 21:48:09 -0000 1.30
+++ comps.py 2 Oct 2002 18:30:54 -0000
@@ -417,6 +417,7 @@
or pkg.startswith("kernel-") or pkg == "qt2-Xt"):
continue
+ print h[rpm.RPMTAG_NAME]
for prov in h[rpm.RPMTAG_PROVIDES]:
self.instProvs[prov] = pkg
else:
@@ -428,6 +429,7 @@
or pkg.startswith("kernel-") or pkg == "qt2-Xt"):
continue
+ print h[rpm.RPMTAG_NAME]
for prov in self.packages[pkg][rpm.RPMTAG_PROVIDES]:
self.providesDict[prov] = self.packages[pkg]
It fails on kernel as displayed below. The patch you offerred didn't quite
work. I had to change the second print to read:
print self.packages[pkg][rpm.RPMTAG_NAME]
instead of:
print h[rpm.RPMTAG_NAME]
kernel
Traceback (most recent call last):
File "/usr/share/redhat-config-packages/InstallDruid.py", line 529, in ?
druid.run ()
File "/usr/share/redhat-config-packages/InstallDruid.py", line 464, in run
self.do_system_info_state ()
File "/usr/share/redhat-config-packages/InstallDruid.py", line 350, in
do_system_info_state
self.comps = self.method.readCompsViaMethod(hdlist, self.simple_progress.update)
File "/usr/share/redhat-config-packages/method.py", line 488, in
readCompsViaMethod
update_method = update_method)
File "/usr/share/redhat-config-packages/comps.py", line 387, in __init__
self.readCompsFile(file, self.packages)
File "/usr/share/redhat-config-packages/comps.py", line 472, in readCompsFile
self.setupStateDicts(packages)
File "/usr/share/redhat-config-packages/comps.py", line 420, in setupStateDicts
for prov in h[rpm.RPMTAG_PROVIDES]:
TypeError: iteration over non-sequence
Oops, cut-and-pasto.
So what is the output of
`rpm -q kernel --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\t[%{PROVIDENAME}
]\n"` since you somehow seem to have a kernel package without any provides.
(I've also committed some code to CVS to handle this a little bit better, but I'm still curious as to what kernel package doesn't have any provides) rpm -q kernel --qf "\"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\t[%{PROVIDENAME}]\"\n"
"kernel-2.4.18-14.i386 "
I added the quotes so the boundries were clear.
--David
Okay, fixed in CVS -- I'll hopefully be putting up a new version of redhat-config-packages later tonight at http://people.redhat.com/~katzj/redhat-config-packages/ *** Bug 77343 has been marked as a duplicate of this bug. *** *** Bug 77904 has been marked as a duplicate of this bug. *** *** Bug 81017 has been marked as a duplicate of this bug. *** *** Bug 84303 has been marked as a duplicate of this bug. *** *** Bug 84375 has been marked as a duplicate of this bug. *** *** Bug 85051 has been marked as a duplicate of this bug. *** *** Bug 86030 has been marked as a duplicate of this bug. *** *** Bug 86329 has been marked as a duplicate of this bug. *** RH 8 is unsupported. Also, s-c-p has been replaced by pirut. Long fixed. Closing. |
From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830 Description of problem: Autorun on the RH8.0 installation cd crashes. When run from the terminal it yields the following results. Traceback (most recent call last): File "/usr/share/redhat-config-packages/InstallDruid.py", line 529, in ? druid.run () File "/usr/share/redhat-config-packages/InstallDruid.py", line 464, in run self.do_system_info_state () File "/usr/share/redhat-config-packages/InstallDruid.py", line 350, in do_system_info_state self.comps = self.method.readCompsViaMethod(hdlist, self.simple_progress.update) File "/usr/share/redhat-config-packages/method.py", line 488, in readCompsViaMethod update_method = update_method) File "/usr/share/redhat-config-packages/comps.py", line 387, in __init__ self.readCompsFile(file, self.packages) File "/usr/share/redhat-config-packages/comps.py", line 471, in readCompsFile self.setupStateDicts(packages) File "/usr/share/redhat-config-packages/comps.py", line 420, in setupStateDicts for prov in h[rpm.RPMTAG_PROVIDES]: TypeError: iteration over non-sequence It appears that it is trying to iterate over the RPM providers when some are not actually arrays. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. cd /mnt/cdrom 2. ./autorun 3. Actual Results: Traceback (most recent call last): File "/usr/share/redhat-config-packages/InstallDruid.py", line 529, in ? druid.run () File "/usr/share/redhat-config-packages/InstallDruid.py", line 464, in run self.do_system_info_state () File "/usr/share/redhat-config-packages/InstallDruid.py", line 350, in do_system_info_state self.comps = self.method.readCompsViaMethod(hdlist, self.simple_progress.update) File "/usr/share/redhat-config-packages/method.py", line 488, in readCompsViaMethod update_method = update_method) File "/usr/share/redhat-config-packages/comps.py", line 387, in __init__ self.readCompsFile(file, self.packages) File "/usr/share/redhat-config-packages/comps.py", line 471, in readCompsFile self.setupStateDicts(packages) File "/usr/share/redhat-config-packages/comps.py", line 420, in setupStateDicts for prov in h[rpm.RPMTAG_PROVIDES]: TypeError: iteration over non-sequence Additional info: The error is in /usr/share/redhat-config-packages/comps.py and I have created a patch for the error. If this paste doesn't come out well I can provide a better patch via email. --- comps.py 2002-10-02 09:21:21.000000000 -0500 +++ dhawkins.comps.py 2002-10-02 08:59:19.000000000 -0500 @@ -416,9 +416,14 @@ if (pkg == "glibc-debug" or pkg == "kde2-compat" or pkg.startswith("kernel-") or pkg == "qt2-Xt"): continue - - for prov in h[rpm.RPMTAG_PROVIDES]: - self.instProvs[prov] = pkg + + try: + for prov in h[rpm.RPMTAG_PROVIDES]: + self.instProvs[prov] = pkg + except TypeError: + for prov in (h[rpm.RPMTAG_PROVIDES],): + self.instProvs[prov] = pkg + else: # FIXME: these packages provide things that are needed # in some of the other packages. they're kind of weird @@ -428,8 +433,14 @@ or pkg.startswith("kernel-") or pkg == "qt2-Xt"): continue - for prov in self.packages[pkg][rpm.RPMTAG_PROVIDES]: - self.providesDict[prov] = self.packages[pkg] + try: + for prov in self.packages[pkg][rpm.RPMTAG_PROVIDES]: + self.providesDict[prov] = self.packages[pkg] + except TypeError: + for prov in (self.packages[pkg][rpm.RPMTAG_PROVIDES],): + self.providesDict[prov] = self.packages[pkg] + + # now let's generate the requires dict so that we can try to # be intelligent on removals... again, this doesn't really