Gentoo Archives: gentoo-dev

From: Rich Freeman <rich0@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] Google Code shutdown requires 524 ebuilds to be fixed before end of 2016
Date: Sat, 05 Nov 2016 01:20:30
Message-Id: CAGfcS_=CqX+tU5Sud8YTO-yi+XABzQ=vj2eTD==YyOqeWRmx3w@mail.gmail.com
In Reply to: Re: [gentoo-dev] Google Code shutdown requires 524 ebuilds to be fixed before end of 2016 by "M. J. Everitt"
1 On Fri, Nov 4, 2016 at 8:30 PM, M. J. Everitt <m.j.everitt@×××.org> wrote:
2 > Apologies, getting ahead of myself here .. there must be a portage
3 > utility, but I've forgotten which one interrogates metadata .. I'll
4 > defer to a more authoritative source ...
5 >
6
7 There might be a command line utility if you're doing things the shell way.
8
9 But, from that python script I linked the relevant part is:
10
11 from portage.xml.metadata import MetaDataXML
12
13 metxml = path+"/"+category+"/"+pkgname+"/metadata.xml"
14 maints=[]
15 try:
16 pkg_md = MetaDataXML(metxml,"/usr/portage/metadata/herds.xml")
17 for maint in pkg_md.maintainers():
18 maints.append(maint.email)
19 except IOError: pass
20
21 Just feed that api call with a metadata.xml. Hopefuly it works with
22 the projects.xml syntax as herds.xml is of course defunct. I'd
23 check the portage API docs as there might be some improvements there.
24
25 The portage api is actually fairly powerful and far superior to a lot
26 of stuff that gets done with grep. It just needs a bit of time
27 getting used to it since there aren't a lot of docs/examples/etc
28 floating around. The script that came out of was designed to find
29 packages that depend on packages that expose subslots but which don't
30 define slot operator deps. Granted, not everything in that list
31 should be using them, and by now I imagine it is almost entirely false
32 positives, but it shows the sort of thing you can do with a couple of
33 lines of python that would be an incredible pain to do any other way.
34 I believe paludis also exposes some APIs that probably could also be
35 used.
36
37 --
38 Rich

Replies