On Wed, 25 Apr 2007 23:39:47 +0200 Rémi Cardona <[EMAIL PROTECTED]> wrote:
> Grant Goodyear a écrit : > > Fabian Groffen wrote: [Sat Apr 14 2007, 03:33:03AM CDT] > >> For people that like reading it in html or via the web: > >> http://dev.gentoo.org/~grobian/gleps/glep-keywords.html > >> http://dev.gentoo.org/~grobian/gleps/glep-keywords.txt > > > > So what would a version of Gentoo for amd64 based on FreeBSD but > > using glibc be called? (It's not an entirely academic question; > > Debian folks have worked on such a distribution for some time.) > > I can't really tell from the text in your proposed GLEP. > > I'm sure this GLEP can be extended later on should anyone feel like > doing a glibc-based freebsd port of gentoo (hurts my brains just > writing this :) ) I think it will be better if this scheme is specified in friendlier way for future expansions, hence I this it should be more flexible. I would propose this two modifications: (a) Instead of using n-tuples to describe a keyword, to use sets. Both ways can be made semantically equivalent if we add the restrictions that the sets of all the possible architecture, kernel, userland, libc, ... sub-keywords are disjoint. (i.e. If there is a userland sub-keyword bsd, then there can't be a kernel or libc sub-keyword named bsd, they have to be named in a slightly different way.) But on the other hand, the notation will be way more flexible as a keyword can only specify the relevant sub-keywords, while the rest can be considered to be a wildcard (to mean "all") (b) In case there are several keywords A and B: - if A is more specific that B, A takes precedence (ej. with "!uclibc arm:uclibc" the package can be installed on any system that does not uses uclibc as libc or on any system with arm hardware.) - if A is exactly as specific as B, the union of A and B is used (ej. "!uclibc arm" this is equivalent to the previous example.) So to give more examples, A package that can only be build on arm, sparc and x86 with linux and glibc or arm with uclibc can be specified as: "{arm,sparc,x86}:linux:glibc arm:uclibc" A package (lets say linux-headers) that makes sense on all systems that support linux and only them can be specified as: "linux" A package that is stable with gnu userland but still in testing with bsd userland: "{some,arches}:gnu ~{some,arches}:bsd" or just "gnu ~bsd" for all arches. Note that I propose to mark testing the whole set of sub-keywords, not just like I run stable x86 with unstable bsd as I think it does not make any sense as the resulting combination is still considered unstable/testing. There are two things I see against my proposal: - This is not fully backward compatible, as it is currently equivalent to normal arch keywords if the user runs linux with glibc/uclibc, while it has a completely different meaning for Gentoo/Alt users. But I don't see it as a big problem because, as far as I understand, this will be just one of many changes that need to be made to make Gentoo/Alt as integrated as GNU/Linux is now into portage. - For this to work, the keyword resolver will have to be way more complex than it is now, as it will have to compute the subset of all possible keywords some ebuild defines to see if user's accept keywords intersect it. Kindest regards, Yuri. -- [EMAIL PROTECTED] mailing list