; $Id: TODO,v 1.11 1995/04/05 13:16:30 jkh Exp $

** To skip this preamble, search forward for the pattern `**'.

This file contains a list of ideas that people have come up for "good
things to do" in FreeBSD.  These aren't necessarily things on the
fast-track, and in fact consist mostly of things that the core team is
never going to find the time to do so, if most things here are going
to happen at all, they'll happen when someone reading this list steps
forward and volunteers!

That said, a lot of these ideas would be very nice to have and would
add substantially to the perceived value of FreeBSD.  Some items on
this list would add a LOT of value, for that matter, and are by no
means trivial.  Take and fix an item with a (*) next to it and WC will
even send you a free CD for your troubles!  It's the least they
can do for all notable contributors.

This is a also good place to look if you're keen for a little
assignment, whole project or just something random to do.  Many folks
often feel intimidated by the sheer size of FreeBSD and think "I'd
like to pitch in somehow, but god, what can _I_ do?  I can't possibly
do any of the things the core team are doing - aiiggh!  They'll laugh
at my code, I know it!  I can't do it!"
Trust us, don't worry!  Take a dedicated stab at something on this
list and most of us will applaud - even if you don't finish, you may
stir someone else into picking it up where you left off.  Above all,
pick something you'll have fun doing!

There are small things and large things in this list, and we may
periodically reshuffle it to mark things done, outdated or more
important.  Tasks are tagged with a unique ID number (YYMMDDNNN) for
later tracking and are also easily machine-parsable by those seeking
to browse them with some home-rolled search program.  Some indication
of relative difficulty level is also given for each task, though it
should be kept in mind that one persons "easy" is anothers
"impossible", so take the ratings with a grain of salt! :)

If you start working on something from this list, we also suggest that
you contact the email-address listed for more information and to
provide some central coordination for your effort.  If the email
address given is simply <foo> then the email address can be presumed
to be <foo@FreeBSD.ORG>.  If no email address is listed, then
simply send to <freebsd-hackers@FreeBSD.org>.

Thanks!

					The FreeBSD core team.

** --- cut here ---

TASKID:	940820002
TASK:	Add Linux/Crynwr compatible plip mode to lpt.c
DETAIL: { Look at the crynwr packet-driver plip.asm (ftp::ftp.ftp.com)
and the linux driver for reference. }
EMAIL:	<phk>
CATS:	kernel networking
GRADE:	ADVANCED
STATUS: OPEN (*)

TASKID:	940820003
TASK:	Add laptop-feature to wd.c
DETAIL:	{ If disk just spun up, do sync when we have it running.  Need
to detect that disk was turned off, e.g. had a long delay in becomming
ready again. }
EMAIL:	<phk>
CATS:	kernel laptop
GRADE:	INTERMEDIATE
STATUS:	OPEN

TASKID:	940820004
TASK:	Add hot-swap PCMICIA bus and driver support.
DETAIL:	{ Several teams in Linux and one in NetBSD are working on providing
hot insertion/removal and autoconfiguration of PCMCIA cards.  This task
also requires some modification of existing drivers to support being used
by PCMCIA cards.  This task is both really hard and comparatively easy;
hard because it's a big job, easy because others have already gone much of
the way and you have their work for reference. }
EMAIL:	<phk>
CATS:	kernel laptop
GRADE:	ADVANCED
STATUS:	IN PROGRESS

TASKID:	940820006
TASK:	Add bootp/DHCP to the generic ethernet code.
DETAIL:	{ Implement an ioctl(), which will send a bootp on a particular
interface and return the data in a usable format. OR make a program which uses
existing ioctls to do it.  See RFC153[34] for information on DHCP. }
EMAIL:	<phk>
CATS:	kernel networking
GRADE:	ADVANCED
STATUS:	OPEN (*)

TASKID:	940820007
TASK:	Add bootp/DHCP capability to slip driver.
DETAIL: { Cisco's products implement this.  Both master and slave side would be
desirable. }
EMAIL:	<phk>
CATS:	kernel networking
GRADE:	ADVANCED
STATUS:	OPEN (*)

TASKID:	940820010
TASK:	Make iostat find the disks
DETAIL:	{ This is actually mostly a change to the device-drivers to collect 
the information in the first place. }
EMAIL:	<phk>
CATS:	kernel
GRADE:	INTERMEDIATE
STATUS:	OPEN

TASKID:	940820011
TASK:	Silence "cc -Wall"
DETAIL:	{ Lots of warnings if you try this.  You will find this a challenge
actually, and it is good training in the C language.}
EMAIL:	<phk>
CATS:	kernel user
GRADE:	INTERMEDIATE
STATUS:	OPEN (*)

TASKID: 940821001
TASK:	Add XPG-style message catalogs.
DETAIL:	{ NetBSD has apparently already done the necessary work, so this
pretty much comes down to either evaluating their stuff and making any changes
necessary, or simply starting from scratch.  Not having seen the code in
question, I leave it up to the best judgement of the implementor as to how to
best accomplish the task. }
EMAIL:	<jkh>
CATS:	user
GRADE:	INTERMEDIATE
STATUS:	CLOSED - PENDING DOC

TASKID: 940911001
TASK:	Make PAS16 a controller.
DETAIL:	{ Make the ProAudioSpectrum a controller like wdc1 and attach 
sound and cdrom drivers to it. }
EMAIL:	<phk>
CATS:	kernel
GRADE:	INTERMEDIATE
STATUS:	OPEN

TASKID:	950222001
TASK:	Make find smarter about -fstype local
DETAIL:	{ Currently when doing a find blah -fstype local the find traverses
through all nfs mounted file systems looking for locally mounted filesystems,
this could be short circuited by using getmntinfo/statfs.  Note that you
can not do this when following symlinks. }
EMAIL:	<rgrimes, phk>
CATS:	user
GRADE:	INTERMEDIATE
STATUS:	OPEN

TASKID: 95031701
TASK:	Implement a file system debugger (fsdb)
DETAIL:	{ Traditionally, there has been a fsdb(8) program in Unix.
This program is not part of 4.4BSD, but the current system lacks
some utility to low-level step through the file system and repair
(or damage:) something in case fsck tells about problems, but the
administrator is unlucky with the suggested actions of fsck.
The original fsdb had a terrible syntax, something more rationale
should be built instead. }
EMAIL:	<joerg>
CATS:	user
GRADE:	ADVANCED
STATUS:	OPEN

