Description of problem: Unable to run yum due to missing Python module _sha256 after upgrade to FC9 from FC8 updated on 4 July 2008 Version-Release number of selected component (if applicable): yum-3.2.14-10.fc9.noarch How reproducible: 100% Steps to Reproduce: 1. yum <any argument included no argument> 2. 3. Actual results: # yum There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named _sha256 Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: 2.5.1 (r251:54863, Jun 15 2008, 23:59:20) [GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] If you cannot solve this problem yourself, please go to the yum faq at: http://wiki.linux.duke.edu/YumFaq Expected results: Additional info: I tried to execute yum from a terminal window (after su) when I did not receive expected alerts to update software and when I was unable to get "Software Updater" to start up. (It tried to start, but disappeared without putting a window on the display.) This problem sounds like it might be related to 240629. However, I am working FC9 downloaded on 15 May 2008. Hardware is an old Compaq 7EL series 7000T (Athlon) > 6 years old, 1 GB memory.
I was able to create a workaround from a posting in the Forums at http://forums.fedoraforum.org/showthread.php?t=193507 Downloaded python-2.5.1-26.fc9.i386.rpm python-devel-2.5.1-26.fc9.i386.rpm python-libs-2.5.1-26.fc9.i386.rpm yum-3.2.16-2.fc9.noarch.rpm and did rpm -Uvh *.rpm as su root It updated the packages now and yum works, Software Updater works. The Forum posting also said to update python-fedora*. However, that added dependencies for python-bugzilla, python-feedparser and several others, so I skipped that. I had to add python-devel because of dependency of pycairo. My problem appears to be solved. However, there probably is a problem in the .iso for FC9 if it's still the same one I downloaded on May 15.
We've had no other reports of problems from the isos. I think this is just a one off issue.
This looks like python was broken ... do you know what version of python you had when things weren't working? Also "rpm -V" might have shed some light on the problem. But if noone hits the problem again, who cares what happened :).
In the output included above, the version of python that yum said it was using was: 2.5.1 (r251:54863, Jun 15 2008, 23:59:20) [GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] Unfortunately, I do not know the full rpm name for the python that was installed. I do know that I ran Software Updater on FC8 less than 24 hours before starting the upgrade to FC9. So, whatever python I had on FC8 was considered to be current on July 4th. Is it possible that the FC8 version was at or above the version on the ISO for FC9 and that python (and its related components) were not completely upgraded? BTW, the FC8 was a clean install from around May 20 with updates applied three or four times since that date.
""" Is it possible that the FC8 version was at or above the version on the ISO for FC9 and that python (and its related components) were not completely upgraded?""" It's true that if you did an Fed-8 update after Thursday you'd have had a newer python than is on the Fed-9 ISO. But it's only a point release difference, so AFAIK that shouldn't cause a problem. I'll try and test this soon, to make sure there isn't a generic problem.
Ok, the problem is this: . python-2.5.1-26.fc8.x86_64 hashlib links against openssl-0.9.8b-17.fc8.x86_64 . Fedora-9/anaconda/yum upgrades to openssl-0:0.9.8g-6.fc9.x86_64 . Fedora-9/anaconda/yum doesn't downgrade to python-2.5.1-25.fc9 (as it's older) . Thus python -c "import _hashlib" fails post install. . Thus python -c "import _sha256" fails post install. ...I fixed it by copying libssl.so.6 and libcrypto.so.6 from a Fed-8 box into /lib64 ... but that's obviously not a good solutiuon going forward. Suggestions?
Upgrades suck, especially if you've gotten to the point where your packages on disk are n-v-r higher than the ones you're trying to upgrade to. There really isn't a solution to this except for maybe preupgrade, but I'm not sure preupgrade would allow use of the F9 updates repo during upgrades.
Well there are two "obvious" solutions I see: 1. New python in Fed-8 which is nevra smaller than the python the on Fedora-9 ISO, everyone who's already upgraded is still screwed ... but it works for everyone else. 2. New python in Fed-8 which is still nevra smaller than the latest Fed-9 update, but still higher than what is in Fed-8 now (and thus. on the Fed-9 ISO) ... and contains some kind of workaround for the libssl ... just dump copies of libssl.so.6 / libcrypto.so.6 somewhere than _haslib.so can find it? ...Jeremy mentioned doing #1 too, and I assume everyone will hate #2 (although it's the only auto. fix for people who have already upgraded). So I can do that, unless someone has another idea?
Ok, looking at the code there is a third possibility: hashlib does "import _hashlib" and if that fails then tries to "import _sha"; "import _md5"; "import _sha256" and "import _sha512" ... however only the last two fail because from setup.py we have: if (openssl_ver < 0x00908000): # OpenSSL doesn't do these until 0.9.8 so we'll bring our own hash exts.append( Extension('_sha256', ['sha256module.c']) ) exts.append( Extension('_sha512', ['sha512module.c']) ) ...so we can just remove the above test.
Anyone have suggestions on a way to test to make sure that is all that's needed?
Ok, I tested it by force downgrading to: python-2.5.1-26.fc8.x86_64.rpm python-libs-2.5.1-26.fc8.x86_64.rpm tkinter-2.5.1-26.fc8.x86_64.rpm ...which gives: error: Failed dependencies: libcrypto.so.6()(64bit) is needed by python-2.5.1-26.fc8.x86_64 libssl.so.6()(64bit) is needed by python-2.5.1-26.fc8.x86_64 libTix8.4.so()(64bit) is needed by tkinter-2.5.1-26.fc8.x86_64 libtcl8.4.so()(64bit) is needed by tkinter-2.5.1-26.fc8.x86_64 libtk8.4.so()(64bit) is needed by tkinter-2.5.1-26.fc8.x86_64 ...but --nodeps to the rescue there, that gives the above errors about importing _sha256, then I tried: python-2.5.1-26.fc8.2.x86_64.rpm python-libs-2.5.1-26.fc8.2.x86_64.rpm tkinter-2.5.1-26.fc8.2.x86_64.rpm ...which is the same thing but with the above setup.py change, "yum lsu" now fails due to: File "/usr/lib/python2.5/site-packages/urlgrabber/keepalive.py", line 331, in <module> class HTTPSHandler(KeepAliveHandler, urllib2.HTTPSHandler): AttributeError: 'module' object has no attribute 'HTTPSHandler' ...because openssl still isn't available, however patching urlgrabber with a simple try/except pass around that lets "yum lsu" work, and indeed I could then "yum up -y" to get a fully working system again (obviously it would fail for people who have a repo on an HTTPS URL ... but that's a much smaller number). So what does everyone think, do a Fed-8 python and * python-urlgrabber update with those two changes?
Folks, I have to apologize for an error in reporting this problem: It was discovered on i386, not i686. In reading some of the appends emailed today, I the references to 64bit finally registered in my consciousness. I went back to bugzilla to investigate and found that apparently I selected the wrong hardware in reporting the problem. I regret any confusion that has caused. However, it appears that the problem occurs in at least two versions.
python-urlgrabber-3.0.0-9.fc8 has been submitted as an update for Fedora 8
FYI, I was just hit by this too, on i386/i686 architecture. I also worked around it using the URL in comment #1 here, the 4th comment at that URL (although I didn't need to manually update the python-fedora RPM). Re: Comment #3, I don't know which Python version I had before the upgrade, although I had just updated to the latest released F8 updates immediately before. Re: Comment #7: > "Upgrades suck, especially if you've gotten to the point where your > packages on disk are n-v-r higher than the ones you're trying to > upgrade to." Surely this should *never* happen; any F9 RPM should always be NVR higher than any F8 RPM; this is assured by incrementing F8 versions e.g. 1.fc8, 2.fc8 (F9 branches here) 2.fc8.1 (instead of 3.fc8). Isn't this enforced by Koji/Bodhi? I'm sure the Wiki tells packagers to do this. Finally, and this may/may-not be related, after I upgraded to F9, I noticed that the grub configuration wasn't updated to include the new F9 kernel. I don't know if this could be related to the same/similar issue with yum/Python? The installer didn't give me any error messages (although I didn't check the text consoles). Feel free to ignore this if it's not relevant to this bug particular report.
I thought that grub said it was booting an fc8 kernel when I rebooted after the upgrade, but got caught up in the update problem before investigating it. It was corrected by updates applied after correcting the python problems.
These are not 100% tested yet, but installing these before the update should fix everything: https://admin.fedoraproject.org/updates/F8/pending/python-2.5.1-26.fc8.2 https://admin.fedoraproject.org/updates/F8/pending/python-urlgrabber-3.0.0-9.fc8
python-urlgrabber-3.0.0-9.fc8 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update python-urlgrabber'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F8/FEDORA-2008-6382
I tested updating to both of the above pacakges and upgrfading from Fed-8 to Fed-9 ... everything worked (well on the yum side, xorg* on the other hand :). So I think I'm going to push the urlgrabber to stable today, and push the python one later this week.
python-urlgrabber-3.0.0-9.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.
I have done a preupgrade today (2008-07-21) with an up to date fedora8 to fedora 9 and I have the same problem.
Yes, the last part needed is in updates-testing and has been requested to go into updates (for Fed-8) but hasn't got there yet. https://admin.fedoraproject.org/updates/F8/FEDORA-2008-6385 ...so this should be fixed in the next couple of days, when that moves.
This message is a reminder that Fedora 9 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 9. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '9'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 9's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 9 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Fedora 9 changed to end-of-life (EOL) status on 2009-07-10. Fedora 9 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed.