[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

tasks: counterproposal (and implimentation)



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


Reply to: