Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 331091 - python-ruledispatch makes anaconda fail
Summary: python-ruledispatch makes anaconda fail
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Chris Lumens
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: K12LTSP F9Blocker
TreeView+ depends on / blocked
 
Reported: 2007-10-14 01:19 UTC by Warren Togami
Modified: 2008-01-22 18:32 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-01-22 18:32:17 UTC


Attachments (Terms of Use)
Patch to place /usr/lib/anaconda after RHUpdate paths in sys.path (deleted)
2008-01-16 15:23 UTC, Toshio Ernie Kuratomi
no flags Details | Diff

Description Warren Togami 2007-10-14 01:19:18 UTC
Probing for video card:   Intel Corporation Mobile 945GM/GMS, 943/940GML Express
Integrated Graphics Controller
Starting graphical installation...
Traceback (most recent call last):
  File "/usr/sbin/anaconda", line 904, in <module>
    anaconda.setDispatch()
  File "/usr/sbin/anaconda", line 484, in setDispatch
    self.dispatch = dispatch.Dispatcher(self)
AttributeError: 'module' object has no attribute 'Dispatcher'

While attempting to use anaconda to build a chroot, it fails with this error
while python-ruledispatch is installed.  This is because the dispatch module
provided by ruledispatch has a higher precedence than anaconda's dispatch in
sys.path.

Comment 1 Warren Togami 2007-11-20 18:34:51 UTC
--- anaconda.orig       2007-11-20 13:16:39.000000000 -0500
+++ anaconda    2007-11-20 13:20:49.000000000 -0500
@@ -301,7 +301,7 @@
         sys.path.append('textw')
         sys.path.append('iw')
     else:
-        sys.path.append('/usr/lib/anaconda')
+        sys.path.insert(0,'/usr/lib/anaconda')
         sys.path.append('/usr/lib/anaconda/textw')
         sys.path.append('/usr/lib/anaconda/iw')
 

This makes it work, although it is messy in the others append other private
paths and anaconda needs to be thoroughly tested to be sure this doesn't break
anything.


Comment 2 Chris Lumens 2007-11-20 19:26:01 UTC
This breaks the RHupdates mechanism.  What needs to happen is that the
/usr/lib/anaconda paths be inserted into sys.path after all the updates paths.

Comment 3 Toshio Ernie Kuratomi 2008-01-16 15:22:40 UTC
I'm not sure what the "updates paths" consist of, but the code in the following
patch might be sufficient if I've guessed right.  It seems a bit hacky, though.

A cleaner way to do this would be to make an anaconda module (either in
python_sitearch or as a subdirectory of %{_libdir}/anaconda) and put all the
code in there.  Then the code will be properly namespaced and you'll be able to
write unambiguous import statements like::
  from anaconda import dispatch

Comment 4 Toshio Ernie Kuratomi 2008-01-16 15:23:39 UTC
Created attachment 291858 [details]
Patch to place /usr/lib/anaconda after RHUpdate paths in sys.path

Comment 5 Chris Lumens 2008-01-22 18:32:17 UTC
Committed, with some slight modifications.  Thanks for the patch.


Note You need to log in before you can comment on or make changes to this bug.