From Fedora Project Wiki
(initial page creation) |
mNo edit summary |
||
Line 12: | Line 12: | ||
** yum-metadata-parser (compiled OK) | ** yum-metadata-parser (compiled OK) | ||
** pycurl (compiled OK) | ** pycurl (compiled OK) | ||
* I hacked out a call to os.statvfs from yum/yumRepo.py:_getFile (line 795) | * I hacked out a call to <code>os.statvfs</code> from yum/yumRepo.py:_getFile (line 795) | ||
** TODO: implement it for PyPy | ** TODO: implement it for PyPy | ||
Revision as of 16:16, 13 July 2012
I've been experimenting with running yum under PyPy.
This is with pypy-1.9 rpms on an x86_64 Fedora 17 guest
What I had to do
- build extension modules:
- bug in distutils/sysconfig_pypy.py with more than one option in CFLAGS (need to split on spaces)
- TODO: add patch to our rpms
- TODO: send patch upstream
- rpm: I used rawhide (=f18)'s rpm.rpm, recompiling with pypy as per my python3 patch in https://bugzilla.redhat.com/show_bug.cgi?id=531543
- needed
PyInt_AsUnsignedLongLongMask
; merged upstream as https://bugs.pypy.org/issue1211, and in my pypy rpms from 1.9-3 onwards
- needed
- yum-metadata-parser (compiled OK)
- pycurl (compiled OK)
- bug in distutils/sysconfig_pypy.py with more than one option in CFLAGS (need to split on spaces)
- I hacked out a call to
os.statvfs
from yum/yumRepo.py:_getFile (line 795)- TODO: implement it for PyPy
Running it
sudo pypy /usr/bin/yum YUM-ARGUMENTS
with suitable PYTHONPATH= and LD_LIBRARY_PATH= hacks to deal with my hacked up installation of extension modules
What I've tested so far:
- yum history (looks sane)
- yum --assume-no update PACKAGE (looks sane)
- yum --assume-no remove glibc (looks sane; same output as with CPython, apart from this:
--- yum-remove-glibc-cpython.out 2012-07-11 11:09:24.641179900 -0400 +++ yum-remove-glibc-pypy.out 2012-07-11 11:08:37.211797078 -0400 @@ -1,4 +1,5 @@ -Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit +Plugin "refresh-packagekit" can't be imported +Loaded plugins: auto-update-debuginfo, langpacks, presto Setting up Remove Process Resolving Dependencies --> Running transaction check
Other Notes
- Yum Benchmarks: http://yum.baseurl.org/wiki/YumBenchmarks