Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: EAPI-2
Date: Sun, 14 Sep 2008 15:04:35
Message-Id: pan.2008.09.14.15.04.12@cox.net
In Reply to: Re: [gentoo-dev] EAPI-2 by Carsten Lohrke
1 Carsten Lohrke <carlo@g.o> posted
2 200809141621.11069.carlo@g.o, excerpted below, on Sun, 14 Sep 2008
3 16:21:03 +0200:
4
5 > What I do strongly oppose is changing the meaning of the '!' symbol, as
6 > blockers, which should remain real blockers will not be adjusted by us,
7 > when changing an ebuild to EAPI 2++ in every case, since we're humans
8 > after all. So, if you implement this, keep '!' as is and find another
9 > symbol for these "soft" blockers.
10
11 I had wondered about that, but since no devs were bringing it up, I
12 thought it must not be as big a deal as I had thought. Now one has.
13
14 >> ~ * A new src_prepare phase function is called after src_unpack.
15 >>
16 >> ~ * The old src_compile phase function is split into separate ~
17 >> src_configure and src_compile fuctions.
18 >
19 > All I do see is more complexity, but no real benefit.
20
21 This is from a user's perspective, but there's a significant benefit to
22 people with poor hardware.
23
24 I began my Gentoo journey with memory that only marginally supported the
25 bandwidth it was rated for and had to live with the related crashes,
26 reboots, and restart-the-emerges. As such, I quickly learned the
27 benefits of ccache and ebuid's step-by-step process. I sure could have
28 used a separate configure step at that point!
29
30 With configure separate, it wouldn't have had to be redone each time I
31 crashed and had to restart. I could and often did re-issue the half
32 completed make commands by hand, letting the package's own build system
33 pick up where it left off, but that didn't fill in the blanks in
34 portage's package data, and I had to reissue the ebuild compile command
35 to do so. Only compile meant reconfigure too, which of course touched
36 the various makefiles, forcing a recompile of the whole thing again --
37 and another chance at a crash while doing so. If configure had been a
38 separate stage, all those makefiles wouldn't have been touched and the
39 package's build system would have seen that everything was built already,
40 which would have saved me an AWFUL lot of trouble.
41
42 The unpack/prepare split wouldn't have been quite as useful as that was
43 generally fast and crash resistant enough I didn't have problems with it,
44 but it won't hurt, and would make user modification of existing ebuilds
45 slightly easier.
46
47 As for the dev perspective, based on my ebuild hacking to date, I can see
48 a significant benefit for the two spits there as well. That the new
49 phases match natural steps in most upstream package build processes where
50 Gentoo formerly merged steps makes it that much simpler to trace down
51 bugs when something goes wrong.
52
53 --
54 Duncan - List replies preferred. No HTML msgs.
55 "Every nonfree program has a lord, a master --
56 and if you use the program, he is your master." Richard Stallman