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