1 |
I've recently updated opengl-update to use the eselect framework. I |
2 |
think the team has done a great job as it was extremely easy to port the |
3 |
bash script to an eselect module. However, when I placed it in the |
4 |
portage tree, it sparked a little bit of a policy discussion between |
5 |
myself and the core eselect devs on how to best include modules in the |
6 |
tree, so I'd like to let other devs chime in as well. |
7 |
|
8 |
Firstly if you don't know what eselect is, check out: |
9 |
http://www.gentoo.org/proj/en/eselect/index.xml |
10 |
|
11 |
The eselect developers want to keep all eselect modules in their svn |
12 |
repository and distributed through a single package (app-admin/eselect). |
13 |
Their main reasons for this are better QA and less overhead for releases |
14 |
and merging. |
15 |
|
16 |
I have a problem with this policy because: |
17 |
1) Stability of the modules should not be tied to stability of the core |
18 |
package. Basically, I'd like to determine when my modules get pushed |
19 |
into stable without considering how it'll effect the eselect modules of |
20 |
other developers. Similarly, I don't want bugs in another module |
21 |
holding up my module from going into stable. |
22 |
|
23 |
2) Not all users will want all modules. The goal of the eselect project |
24 |
is to provide a framework to replace java-config, motif-config, |
25 |
gcc-config, binutils-config, opengl-update, etc, but not all users will |
26 |
need all modules. |
27 |
|
28 |
3) Some modules require extra files (opengl-update installs header |
29 |
files, gcc-config installs a wrapper, etc), and the app-admin/eselect |
30 |
package is not the correct place to provide these files. |
31 |
|
32 |
Also, what should the correct way to introduce these modules into |
33 |
portage? |
34 |
Should we keep them in the packages they're replacing |
35 |
(x11-base/opengl-update)? |
36 |
Should we place them in a new package in the same category as the script |
37 |
they're replacing (x11-base/eselect-opengl)? |
38 |
Should we place them in app-admin/eselect-<module name> or perhaps |
39 |
app-eselect/<module name>? |
40 |
|
41 |
Note that for backwards compatibility in all cases, |
42 |
x11-base/opengl-update will RDEPEND on this eselect module and install a |
43 |
backwards-compatible frontend to the eselect module until all packages |
44 |
in portage have been updated to use the eselect module instead. |