Gentoo Archives: gentoo-dev

From: "Steven J. Long" <slong@××××××××××××××××××.uk>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] pkgcore EAPI-6 (Was: OT: pkgcore bikeshed)
Date: Tue, 14 Jan 2014 07:30:14
Message-Id: 20140114074139.GA1841@rathaus.eclipse.co.uk
In Reply to: Re: [gentoo-dev] Re: [OT] pkgcore bikeshed by Alexander Berntsen
1 On Mon, Jan 13, 2014, Alexander Berntsen wrote:
2 > > Updating both in parallel isn't hard: once pkgcore is up to EAPI-5,
3 > > EAPI-6 isn't that much work (mostly bash afair.)
4 > If it is trivial: show us the code.
5
6 Ah that old canard. Tell you what: I hereby undertake to deliver
7 everything currently listed at [1] for pkgcore, once radhermit has
8 declared he's done on his round of work with pkgcore internals and
9 it's up to EAPI-5, as tested against ebuilds, ferringb has approved it,
10 and its portage formatter is good enough for update[2] to use it again,
11 on EAPI-5 ebuilds.
12
13 Sorry the latter is why I care, and I've always pushed for it, so
14 whether that annoys anyone else is not my problem. I will be involved
15 in testing that aspect, obviously, and may need to patch update for
16 other interactions with pmerge, so that will come first.
17
18 I will deliver that within a calendar month, or 30 days, of the above
19 happening, for QA and acceptance-testing, unless ferringb, radhermit
20 or dol-sen veto it, preferably in #pkgcore but see disclaimer at end.
21
22 To avoid confusion, in case more is added, I'll list them, so you can
23 hold me to my word later:
24
25 bash 4.2 #431340
26 nonfatal die #451938 -- truly lame to do this via a new func, imo
27 reads like working round the PMS, which /is/ insane. static libs in
28 /usr is nothing on that, when you think about it.
29 get_libdir #463586 Used in econf, but so far not available as
30 separate PM function
31 Doc install function (edocs) #459692
32 Allow DOCS="" #463736
33 Directory support for DOCS #481980
34 Query function for IUSE #449862
35 in addition, query IUSE_EFFECTIVE -- from [3] this is what should
36 be queried?
37 PATCHES support in default src_prepare #463692
38 Unpack .txz #458102
39 Case-fold extensions in unpack #476730
40 unpack() accept absolute paths #483244
41 epatch_user - a sane implementation as we discussed 2 years ago or so
42 Source eclasses only once #422533 -- amended at [4]
43 EJOBS #273101 - emake integration -- for other languages or build-
44 systems, the eclasses would have to handle it. They are not part
45 of the PM/ebuild.sh, so out of scope. (There is a qm as to whether
46 this is still desired 4 years later.)
47
48 non-bash, but i'll provide support script as and if req'd:
49 HDEPEND #317337 -- CHOST dependencies req at build-time (yaf way
50 of adding a borked LDEPEND if you ask me, but w/e.)
51
52 I won't do failglob (#463822) as it will make everyone's life a lot
53 harder in the long run, and turn off anyone who actually has real BASH
54 experience. AFAIC we want them in the same way as we want expert
55 pythonistas. I'll happily add Kent's idea though, at least for this
56 setting; he's a guy you should all listen to a lot more, imnsho.
57
58 I'd do it like this:
59 failglob will apply to the function it appears in, and any callee
60 functions, and must be paired with reglob (or w/e) to restore, which
61 will also restore a nullglob invocation. (reglob must be called
62 on all return paths before function return, if you're doing something
63 complex. Most functions won't be though, ime.)
64
65 If ferringb and radhermit are ok with it, I'll implement it. If not,
66 it'll be trivial to import the crappy version from portage.
67
68 > > At that point, put portage into feature-freeze, and only bugfix it.
69 > > Call a hiatus on new EAPIs for 6 months and put all effort into
70 > > making damn sure pkgcore is a drop-in replacement.
71 > I don't see this happening as it stands right now. Let's revisit this
72 > when pkgcore is more up to date.
73
74 Yes, "at that point".
75
76 Now you may think I'm talking before I can implement, what I accused
77 someone else of; feel free to. Those are mostly trivial to a BASH
78 scripter, and I write (and throw away) more complex things practically
79 every day.
80
81 See [2] if you need verification, though it's not a work-project any
82 more, and was never meant to be when I started it as a training
83 assignment. We do use it at work though, so I get to maintain it.
84
85 And there is no way we could have done the ABI /etc/warning stuff, if
86 we hadn't had pkgcore to test resolves with. portage was just too slow,
87 when we were paired and needed to flow, to implement quite major
88 stuff in hindsight; ferringb even mentioned a need for exactly that
89 sort of mechanism in Gentoo, on the list last feb/mar i think it was,
90 when I was on hiatus. I remember being annoyed I'd missed the
91 discussion when I got back to FLOSS stuff.
92
93 Porcelain and plumbing.
94
95 Feel free to step up and pitch in too. The more the merrier, and the
96 lighter the load. Note there are queries on some of the above, and
97 no clear definition of what EAPI 6 is yet. So once you've made your
98 minds up about that, then you can start asking for your users to
99 implement it, I'd think. After all, devs are users too, and we've
100 all got other things to do.
101
102 TTFN,
103 steveL.
104
105 Disclaimer: I don't speak for pkgcore, or any of the people mentioned,
106 nor have I discussed any of this with them, so it's their call, now or
107 when they get to that stage. I'm just answering the "put your code where
108 your mouth is" point.
109
110 I did that several years ago with ebuild.sh but it only ended in being
111 told that the rewrite I was asked to step up with, should be a series
112 of patches, for "policy" reasons, so I gave up in disgust (the whole
113 point of a rewrite is a clean codebase that does the same thing, which
114 is what tests are for.) Life's way too short, for contributing to a
115 project that's going to do that to my time. *shrug* you live and learn.
116
117 [1] http://wiki.gentoo.org/wiki/Future_EAPI/EAPI_6_tentative_features
118 [2] http://weaver.gentooexperimental.org/update.html
119 yes i know it should be split into more files; a) I wanted to see
120 when bash would blow up on my old 32-bit install, and b) I just
121 want it to work ;) and have other things to do.
122 [3] http://www.gossamer-threads.com/lists/gentoo/dev/260812#260812
123 [4] http://marc.info/?l=gentoo-dev&m=134493783816587&w=2
124 --
125 "Daddy, Mommy: what did you do in the Eco-Wars?"