What I've done:
- Defined a DBUS API
- A system daemon that manages asynchronous jobs, and sends out notifications of job status changed
- A dummy backend doing all the actions but just time-wasting (acts as a nice self-test)
- A yum backend that can do async searching (nothing else yet)
- An APT backend that can do async searching (nothing else yet)
- A client gobject library for easy integration for GNOME stuff
- A command line client that can work async or sync.
What's left to do:
- Full API for yum and apt
- A better apt backend that can do percentage completion signals (requires using libapt-pkg and C++…)
- Other backends (portage, smart, urpmi etc)
- Better documentation
- Update applet proof-of-concept (should be easy using the gobject library)
- Simple application installer proof-of-concept
So basically the idea works. Or at least I've not come up against any insurmountable problems so far. Expect the code to hit fd.o in the next week or so when I've polished up the hacks and got rid of a few FIXME's.
I'm away from an Internet connection for the next few days, so if you send me mail it will take me a few days to reply.