One of the things I wanted to do for Kororaa was make Ubuntu’s Jockey device manager work. This would replace my current dodgy script and provide a mechanism for extending support for other devices over time (if needed). I’ve put my code on github if you want to check it out.
It wasn’t meant to be a joke, but on the 1st April this year I contacted Martin Pitt (the Jockey project lead) to pitch the idea. He helpfully replied saying that they’d written Jockey to be pretty vendor agnostic and that he had already discussed the idea of porting it to Fedora with Jon Masters. Indeed, he had did have the test suite working on Fedora 12 already (using PackageKit).
So I started out trying to understand the code and seeing what was possible. The core of the work is in oslib.py which implements the package management side of things (the default code uses PackageKit). Ubuntu has their own apt implementation, so I wanted to make a native Yum implementation.
There is some detection code (which shouldn’t need to be touched) and then there are the handlers for each device you want to manage (nvidia, etc).
A few weekends ago, Jason Nielsen and I got together to work on the code. In a few hours we had ported oslib.py to Yum, so I think the majority of the work there is done (thanks for your help, Jason!). It’s a much cleaner implementation than running PackageKit and parsing the results, because Yum is written in Python 🙂
That’s where it’s at now. Next I need to create some handlers and then begin some testing. I’m holding off on the next Kororaa release, because I want to get this working before I ship it. Longer-term this naturally won’t go into Fedora, but perhaps into RPMFusion.
Parsidora (another Fedora Remix) has also been working on Jockey, but using the PackageKit implementation (I’ve sent them a message to see if they are interested in the native Yum version). You can try their existing implementation for Fedora 15 if you’re interested.
Hopefully I’ll have everything ready for Kororaa in the next few weeks, before Fedora 16 comes out! 🙂