FAQ: What are Funtoo Kits?

From Funtoo
Jump to navigation Jump to search

The best way to answer this question is visually. First, let's take a look at a traditional, monolithic Portage tree:

Kits-1.png


As you can see, it is all in one repository. Typically, users will utilize overlays with their Portage tree, either by adding them manually or using a tool like layman. We'll represent a Portage tree along with enabled overlays as follows:

Kits-2.png


In a Portage tree with overlays, the overlays may augment certain catpkgs (cat/pkg entries) by providing additional ebuilds. Thus, above, we may have sys-foo/bar-1.0 in the monolithic repository, and sys-foo/bar-1.1 and sys-foo/bar-1.2 in overlay 1 and 2 respectively. A user will see the full set of available ebuilds -- 1.0, 1.1 and 1.2.

Kits utilize the same overlay technology that is built into Portage, but rather than use them to create overlays that are designed to go 'on top' of each other, this technology is used to create logical collections of packages that are meant to exist 'side by side'. These groupings are called kits, and the visualization of kits might look something like this:

Kits-3.png


One important thing to note about kits is that each one is designed to work with the other. There will be no overlapping catpkg entries between kits, so a catpkg in a set of kits will only appear in one kit, not more than one.

You might be wondering -- can you use kits with traditional overlays? Yes, indeed you can. This might looks something like this:

Kits-4.png


There are two related questions related to kits that are often asked. First, do kits slow Portage down? No, in fact I created a patch for Portage so that kits do not slow Portage down at all compared to a monolithic Portage repository/tree. These patches have now been incorporated upstream in Gentoo Linux as well.

The other question commonly asked is simply "why kits?" Kits are our attempt to logically organize the very large and unwieldy Portage tree into logical groups. As we continue along in this effort, it starts to become possible to 'swap out' one version of a kit for another, so for example running a more recent xorg-server and GNOME that is in the main distribution, which may look something like this (with the "special" colored kits representing newer kit versions.)

Kits-5.png


As we continue our work with kits, we plan to make Portage more modular and flexible for users. We also tag each kit with a stability rating, indicating it suitability for production use.