On 8 November 2014 05:40, Ciaran McCreesh
<ciaran.mccre...@googlemail.com> wrote:
> On Fri, 07 Nov 2014 20:57:41 +0100
> Jauhien Piatlicki <jauh...@gentoo.org> wrote:
>> What;s wrong with input? PMS itself or how do maintainers write
>> ebuilds? Could you explain?
>
> A mixture of both. Gentoo developers like writing eclasses that write
> unnecessarily clever, highly messy and technically incorrect dependency
> strings (see how Perl and Ruby are done, for prime examples). Doing
> this kind of thing well requires support from PMS, so developers can
> express what they want to say directly rather than via some convoluted
> mess of nested ||s, []s, slot abuse and faked range dependencies.
> However, it's currently culturally more acceptable to try to make
> yourself look clever by writing the new "world's most convoluted family
> of eclasses", so developers aren't asking for the features they need.
>
> In a way, this brings us back to SAT and CNF. Although you *can* encode
> this kind of thing in SAT (or rather, in QSAT...), the encoding is
> utterly opaque and doesn't lend itself to a good algorithm. The
> dependencies some developers are writing are nearly as bad.

So would it make sense then to move to a more declarative ebuild
model? Or just a "better" model?

Both Portage and Paludis at some point figure out what they think is
needed to install an ebuild. At that point, they could emit an ebuild
in a "new and improved" model? I have no doubt that this scheme would
fail utterly for many of the more complex/convoluted ebuilds but if it
worked for, say, 80% then the work to improve the tree would be
drastically reduced.

(I only write the simplest of ebuilds so I'm undoubtedly
oversimplifying but I thought I would throw this idea out there.)

Reply via email to