Gentoo Archives: gentoo-dev

From: Allen Parker <allenp@×××.org>
To: 'Caleb Tennis' <caleb@g.o>, gentoo-dev@l.g.o
Cc: 'Ken Menken' <menken@×××××××.com>
Subject: RE: [gentoo-dev] creating ebuilds
Date: Tue, 06 Jan 2004 14:13:35
Message-Id: E1Adrxe-0006V9-Ei@smtp.gentoo.org
In Reply to: Re: [gentoo-dev] creating ebuilds by Caleb Tennis
1 > On Tuesday 06 January 2004 04:54 am, Kurt Lieber wrote:
2 > > I could see benefits to having a dedicated person, who was extremley
3 > > knowledgeable in the ins/outs of ebuild creation who did nothing else
4 > > except scan bugs.gentoo.org for new ebuilds and put them into the tree.
5 > > Whether there's a person out there with the right skill set willing to
6 > do
7 > > such a job is another question entirely. (not saying there isn't, btw)
8 >
9 > This is a bad idea, IMHO. I used to think more in favor of it, but if
10 > someone
11 > really wants an ebuild that isn't in portage they can very easily search
12 > bugzilla, download the ebuild, and put it in their overlay.
13 >
14 > What would be more beneficial is if there was a repository where
15 > unaccepted
16 > ebuilds go after a period of time
17 > (http://www.gentoo.org/proj/en/glep/glep-0017.html). That way, people who
18 > want to use those ebuilds can download them from there.
19
20 I think I should definitely re-state my *ideal* system for ebuild
21 submission, since it wasn't understood. Bugzilla is great, I agree, but it's
22 for *bugs* and as was said earlier, if a dev isn't interested in an ebuild,
23 it's not going into the tree. Here's the process that I suggest, and I think
24 it'll streamline things and reduce the workload on ebuild submission. Avenj,
25 this does NOT require people like me to have CVS access.
26
27 1. New submission is created, submitted to system
28 2. System sees new ebuild, notifies submitter, dev that has notified system
29 that they have free time, and possibly herd maintainer for ebuild's proposed
30 home (opt-in via web interface).
31 3. Dev checks in, sees ebuild, downloads ebuild, attempts build. Here,
32 things split:
33 ** Assuming everything is perfect
34 a. Ebuild works fine, no patches need to be applied/software is now known
35 stable.
36 b. User response is requested, users vote yay or nay on whether the package
37 compiles for them without error.
38 c. Dev ok's and ~ARCH's ebuild, system picks that up and spits it into
39 /usr/portage/ebuild-submits/ (which can be specifically defined as a
40 PORTDIR_OVERLAY, and is undefined as per default)
41 d. User is happy, dev doesn't have to spend too much time messing with
42 things, and when they get time to check the package out more thoroughly, it
43 can be "moved" to the main tree via the interface.
44 ** Possible "gotchas" for submitter:
45 A. System does a basic syntax check and rejects Ebuild due to syntax errors.
46 B. Ebuild is ok'd by system for syntax, but when ebuild is attempted in a
47 sandbox, by dev or "trusted" user, fails and is kicked into another area
48 where the submitter now has to figure out if it's the ebuild or the package.
49 (Possible chroot'd script for auto-testing via ebuild <package>.ebuild
50 digest with failures going to submitter, if no failures, ebuild -v
51 <package>.ebuild package, with errors going to submitter. (queued ebuilding
52 via a distcc cluster would probably be preferable on this)
53 C. Human review, information attached to the ebuild is incomplete, automatic
54 1 week suspension of submitter from system with 5 or more complaints from
55 their peers or 1 complaint from a dev. If package does not have a listed
56 "stable" release, ebuild is thrown out via the above conditions.
57 D. Ratings: The more successful ebuild submissions you've got, the better
58 chances you have for having your ebuild moved to the main tree quickly.
59 E. Existing packages are *NOT* acceptable for submission. New packages
60 only!! If the system finds that there is an existing ebuild for whatever it
61 is you're attempting to submit, the ebuild will automatically be dropped
62 (${PN} matching, maybe md5 distfile db scans or more?)
63
64 This is just a rough idea of a way to streamline things. If non-gentoo devs
65 work on this, it shouldn't take too long to see if it'll sink or swim. IMHO,
66 Bugzilla is a great thing, it just isn't suited very well or even designed
67 for this task. I think Bugzilla should be for bugs with existing software...
68 not ebuild submission. With the proper checks, it should be possible to use
69 a system for ebuilds only that can handle revision-bump requests, new ebuild
70 submissions, and possibly more, without overloading bugzilla OR the
71 Gentoo-devs.
72
73 At no point would ANY non-dev be allowed direct cvs access (1 week sandbox
74 before going into ebuild-submits overlay for last-minute checking by devs).
75 At no point would any non-dev have access to anything that could be
76 considered a security risk, in fact, with one of the ebuilds I was working
77 on developing, it would be possible to setup multiple "virtual" build
78 systems with immutable linking on every file that could be a hazard (which
79 via cron, the whole build environment could be cleared and reset every 24
80 hours without a problem) rm -rf /vservers/genbuild && cp -la
81 /vservers/genskel /vservers/genbuild would take care of it with anything
82 that could be possibly used to hurt someone else's work chattr +it (to keep
83 from being trojanned).
84
85 That's my 2/100ths of a monetary unit.
86 Allen Parker
87
88 PS. I hope I cleared some misconceptions up, I wasn't suggesting that
89 non-devs be allowed cvs access, only that a system would be put into place
90 that would automate things, because I know for a fact that the ebuild
91 submission process as it stands isn't really a process, it's an abomination.
92
93 (if you'd like an idea how I figured this out, I was thinking of making
94 vserver-sources, vserver and util-vserver ebuilds... months later, I have
95 nothing solid, and I don't have the time to chase people around to get an
96 ebuild in the tree... and it doesn't seem right.)
97
98
99
100
101 --
102 gentoo-dev@g.o mailing list