Introduction
Kuroo is just a frontend to emerge/portage, accessing portage by running emerge-commands internally and parsing the output. Fex "emerge --sync", "emerge -pv xx-yy" och "emerge -upv world" ... (From kuroo>=0.90 this will change a bit, stay informed in Latest Development Information. Of course when portage-devs change syntax kuroo will miss that.
The second big feature is the portage browser in Mac-style kolumns with instant-search. This is done by importing all packages found in your system into a sqlite database. The kuroo queries the internal db, which is way faster than any python scripts. Kuroo scans all folders you have specified, be it /usr/portage, /usr/local/portage or /usr/overlay/portage
The third big feature is the package stability calculation eg. stable/testing/masked which is done on-the-fly for selected package based on the files /etc/portage/... When we designed kuroo we focused in ease-of-use and responsiveness. Thanks to holehan and Alcapond we had a lot of interation to get the design right.
To achieve a responsive system kuroo is threaded, almost all commands are launched as threads. In someways kuroo is similar to amarok. Both have a scanned database and must present the content nicely and allow for browsing/searching.
As you see any syntax changes in emerge or changes in portage can affect kuroo. Some research into the possibility to talk directly to portage api is done. That way skipping error-prone parsing of emerge commands and use portage-api-functions directly much the same way Porthole works. Karye was able to run commands once, then kuroo crashes.
And the big one: KDE4 is around the corner, so kuroo must adapted to the new kdelibs.
Related Tutorials and References
Classes of Kuroo
Attachments
- Core.png (44.4 kB) -
Core Classdiagram of kuroo 0.81
, added by tralalo on 08/25/07 00:39:30. - GUI.png (17.6 kB) -
GUI class diagram of kuroo 0.81
, added by tralalo on 08/25/07 00:40:22. - datastrutcs.png (46.8 kB) -
UML for templated data structs for data storage and retrieval
, added by stormbyte on 08/27/07 16:15:37.
