A post I made on the Gentoo development list last night deserves your attention because it illustrates a key aspect of Gentoo. I want to make sure it’s preserved instead of lost in mailing-list archives. This is in reply to a proposal to move a significant portion into a series of variables instead of being written as scripted functions:
I think the idea of ebuilds as scripts showing directly how to build software is a core part of the Gentoo build-system philosophy. This proposal pushes ebuilds toward a formatted file that is not a script. Instead, it is more like an Ant XML file that more abstractly describes a build. I think this is the wrong direction for ebuilds because they should directly resemble how software is built by hand.
One of the key reasons people use Gentoo is that ebuilds are so easy to “get” for anyone who has ever built software by hand. I will continue to vehemently defend anything that I think retains this key advantage of Gentoo over other distributions.
Gentoo is a distribution for advanced Linux users, or those who want to become advanced. Having packaging scripts that are easy to learn lowers the barrier to entry to editing them, which vastly increases our number of potential developers. It additionally comprises a key part of Gentoo’s ease of customization by allowing people to easily write their own packages or modify existing ones for their purposes. When users do this, it creates a natural pathway from building software by hand to editing ebuilds to becoming a Gentoo developer. The more difficult it is to learn how to write packaging scripts, the more of your potential developer base you repel.