Gentoo Archives: gentoo-guis

From: "René 'Necoro' Neumann" <lists@××××××.eu>
To: gentoo-guis@l.g.o
Subject: [gentoo-guis] [Catapult] API Cleanup
Date: Wed, 14 Nov 2007 17:58:55
Message-Id: 473B3730.20102@necoro.eu
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Hi there,
5
6 yesterday jokey mentioned the whole bunch of find_*_packages and
7 find_all_*_packages functions that where existant in the current API.
8 The only difference has been, that the find_all_* functions take a regex
9 and the other ones get a package atom (like >=sys-apps/portage-2.13). He
10 proposed that they should be merged into only one set.
11
12 I also got reminded, that other package manglers provide certain
13 "package sets" - and I wanted to introduce them too.
14
15 The result: There is only one(!) function left out of them:
16
17 find_packages(key, pkg_set, masked, with_version).
18
19 What are the changes and the new requirements to implementations?
20 ==================================================================
21
22 1.) The key can now either be an atom or a regex. The implementation has
23 to deal with it on its own.
24
25 Note: With "regex" I mean _real_ regexps. So the following should be
26 supported as a key: .*/.*dict-[abc]?en
27 This is NOT a valid regexp: *port* -> while this is: .*port* -> and
28 .*port.* would do the intended thing ;).
29
30 2.) We need to define a list of package sets that should be supported by
31 _all_ providers. Currently I have:
32
33 - "all" (or "") => all packages
34 - "installed" => all installed packages
35 - "uninstalled" => all uninstalled packages
36 - "world" => all packages in world
37 - "system" => all system packages
38 - "tree" => all packages where there is an ebuild for in the current
39 tree (might be different to "all" as you might have installed something
40 which has been removed from tree in the meantime)
41
42 3.) We need to define a behavior of what exactly masked and with_version
43 should do. Currently masked means "include masked packages" and
44 with_version makes the function return CPVs instead of CPs.
45 BUT: Especially the combination "with_version = False and masked =
46 False" is critical. Currently masked is ignored then. But should it
47 perhaps be changed so that only these CPs are returned which have at
48 least one unmasked version?
49
50 TODO
51 ====
52
53 - - Change update_world into update_set("world").
54 - - What about the different system.get_*_option? Should they perhaps be
55 merged into one? - Do they make sense at all?
56 - - some more things I forgot :)
57
58 NOTES
59 ======
60
61 - - Please do not rely on the current portage provider implementation. The
62 API changes are not supported to 100% yet.
63 - - I'll try to update the wiki pages, but can't promise to finish it in
64 recent time.
65
66 Regards,
67 Necoro
68 -----BEGIN PGP SIGNATURE-----
69 Version: GnuPG v1.4.7 (GNU/Linux)
70 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
71
72 iD4DBQFHOzcw4UOg/zhYFuARAqHPAJj3gHH8ONPN6KDCIeO7ryYEIt6lAJ439q+u
73 nX+SRCiKhiDEPC86zQ+RGA==
74 =A7wl
75 -----END PGP SIGNATURE-----
76 --
77 gentoo-guis@g.o mailing list