I've recently updated opengl-update to use the eselect framework.  I
think the team has done a great job as it was extremely easy to port the
bash script to an eselect module.  However, when I placed it in the
portage tree, it sparked a little bit of a policy discussion between
myself and the core eselect devs on how to best include modules in the
tree, so I'd like to let other devs chime in as well.

Firstly if you don't know what eselect is, check out:
http://www.gentoo.org/proj/en/eselect/index.xml 

The eselect developers want to keep all eselect modules in their svn
repository and distributed through a single package (app-admin/eselect).
Their main reasons for this are better QA and less overhead for releases
and merging.

I have a problem with this policy because:
1) Stability of the modules should not be tied to stability of the core
package.  Basically, I'd like to determine when my modules get pushed
into stable without considering how it'll effect the eselect modules of
other developers.  Similarly, I don't want bugs in another module
holding up my module from going into stable.

2) Not all users will want all modules.  The goal of the eselect project
is to provide a framework to replace java-config, motif-config,
gcc-config, binutils-config, opengl-update, etc, but not all users will
need all modules.

3) Some modules require extra files (opengl-update installs header
files, gcc-config installs a wrapper, etc), and the app-admin/eselect
package is not the correct place to provide these files.

Also, what should the correct way to introduce these modules into
portage?
Should we keep them in the packages they're replacing
(x11-base/opengl-update)?
Should we place them in a new package in the same category as the script
they're replacing (x11-base/eselect-opengl)?
Should we place them in app-admin/eselect-<module name> or perhaps
app-eselect/<module name>?

Note that for backwards compatibility in all cases,
x11-base/opengl-update will RDEPEND on this eselect module and install a
backwards-compatible frontend to the eselect module until all packages
in portage have been updated to use the eselect module instead.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to