Mon Aug 27 15:57:18 2007

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

* kdelibs 3.5

* kdelibs 4.0

* Portage API

* Python/C Interface

Classes of Kuroo

* Classdescription of all kuroo-classes

Attachments