Attached to this message is a tarball which contains a rather simple
program that uses debconf to present the user with a list of tasks
(sorted into groups). To try it, upgrade to debconf 0.9.53 (Incoming) [1],
unpack, and run "newtasksel/tasksel -t newtasksel/tasklist"
(or see [2] at the very end of this message). With that flag it will
output a list of the packages you selected, suitable for feeding into
dselect.
You will probably then want to examine newtasksel/tasklist, which
contains the definitions of tasks. The contents of this file are up for
debate, and would be maintained subject to consensus on -devel or -boot.
I just looked at all the existing task packages and took the ones that made
sense to show a new user, filled in a few obvious holes, etc.
Ok, that's the implementation, on the the proposal. I propose that we do
away with all task-* packages, removing them from debian before woody is
released. Maintainers who are attached to their task packages may want to
reimplement them as meta packages (w/o the task- prefix).
Task packages will not be used to define tasks, so we need something
else. A centrally maintained file of task information (in fledgling form
as the tasklist file I mention above) will be placed in debian cvs, and
maintained cooperatively by the project. The file will be packaged up,
presumably with a task selector tool such as my sample
implementation, and included in the base system, and base-config will
run this tool as it runs tasksel today.
After running the task selection tool, which will mark packages for
install with dpkg --set-selections, base-config will allow the user to
run dselect, capt/deity, or some other apt frontend. This will let them
override any packages a task pulled in which they do not need, select
additional packages, be informed of recommands and suggests relationships,
etc. Or, they can chose to not do this, and just let apt take care of
things for them.
(This step is provided in leu of a task selector tool that lets a
user pick a task and "drill down" then and there to select packages.
That would be nice, and an implementation is welcomed, but I didn't feel
up to it today..)
The tasklist file I have provided includes some guidelines about how it
may be modified, and what type of things should go into it. I will not
restate them here, but they are also part of my proposal.
One final note -- if you look at the gnome, kde, and X tasks at the end
of the file, you will see that they only pull in a metapackage or two.
I did this in these three cases where we have large bodies of software,
split amoung many packages, most of which should be pulled in by a task.
It makes sense in those situations, I think, to put the control over the
tasks' contents in the hands of whoever maintains that software.
Metapackages are a perfect way to accomplish this. On the other hand,
something like the games or web server task is better controlled by the
project as a whole.
I don't belive that policy need be modified at all for this to work, and
I am looking for a rough consensus, not seconds.
--
see shy jo
[1] Or don't use debconf's dialog frontend -- but the dialog frontend is
how people will see it, so I recommend you do use that frontend.
[2] Here is a sample run with debconf's text frontend[1].
joey@silk:~/tmp/newtasksel>./tasksel -t tasklist
Selecting software to install
-----------------------------
A Debian system can be used for many tasks, a few of which we present here.
Each item on the list represents a set of software that is useful for a
particular purpose. You may select as many, or as few of them as you wish.
d. Desktop: s. Server:
a. - Gnome desktop environment j. - dns server
b. - KDE desktop environment k. - file server
c. - X window system l. - mail server
m. Misc: n. - news server
e. - Debian Jr. (for kids) o. - print server
f. - dialup system p. - relational database server
g. - games q. - shell server
h. - laptop r. - web server
i. - programming and development
(Type in the letters of the items you want to select, separated by spaces.)
What do you want to use this computer for? c m r
x-window-system install
apache install
analog install
junior-toys install
junior-math install
junior-typing install
junior-arcade install
junior-writing install
junior-sound install
junior-doc install
anacron install
diald install
dialdcost install
fetchmail install
junkbuster install
lynx install
ppp install
pppconfig install
wget install
wvdial install
wwwoffle install
leafnode install
lftp install
isdnutils install
xtris install
bsdgames install
nethack install
xgalaga install
xscavenger install
koules install
gnome-gnomine install
gnome-card-games install
lincity-x install
apmd install
pcmcia-cs install
anacron install
toshutils install
noflushd install
gcc install
manpages-dev install
gdb install
ddd install
cvs install
c++-compiler install
make install
glibc-doc install
autoconf install
automake install
libtool install
flex install
bison install
indent install
patch install
strace install
gettext install
Attachment:
newtasksel.tar.gz
Description: Binary data