Recent Changes - Search:

Software

Wiki Docs

Todo

This page is read-only because I use it as a primitive bug tracker. Please report bugs to me via email rather than try to add them to this page.

Kernel

  • double check all the non-wscons stuff we had to remove from generic, maybe some can be ifdef'd out and still work
  • pccons
    • do pc bell
    • q_to_b in pccons to ndqb
  • i386/disksubr.c, does some funky bios CHS stuff that i don't think we need
  • can we remove all the bios crap passed by /boot to the kernel in machdep.c? and bios.* sysctl
  • remove vm_daddr vm_dsize, etc
    • Also, remove i386 W^X hacks, as we don't do it in userland anymore
  • remove unused fields in disklabel/partition
    • change magic
    • remove or reset version field?
    • do any macros in disklabel.h refer to fields that are gone?
  • vnd_secsize? isn't it always DEV_BSIZE
  • double check ccd.c patches
    • get rid of ccd_geom totally (just secsize now)
  • sc_type in fd.c? used to populate disklabel geometry, used for anything else?
  • option PCI_CONF_MODE 1 in GENERIC on i386 (99.99% of machines are, and we don't get the right answer from the bios with the unified x86/amd64 bootloader
  • remove the dkcsum nonsense (i don't even totally understand what it does)
  • remove multiple emulations support from exec_elf, remove the whole compat subtree from git
    • Remove multiple binary types alltogether? (a.out, what else?)
  • remove chr2blk sysctl and associated cruft all the way down (chrtoblk/blktochr functions chrtoblktbl in all the machdep code)
    • Ideally unify major device numbers across archs...
  • VM_PSSTRINGS sysctl can go (always constant)
  • stack smash callback in kernel can go (int $5 now)
  • scroll lock stuff (ifdef soon) in pccons
  • pcconskbd? is it even used? remove it
  • remove ufs2 and ext2fs totally, no need for magic checking in sys/ufs
  • KERN_MSGBUF* can go, size is constant, always read through /dev/kmsg
  • pccons - pcinit() call doesn't need to be in sput
    • BUT something needs to call pcinit very early
  • get rid of the "ooo... look at me, I'm storing the kernel log buf in some obscure place in memory so i can read it after a warm boot" nonsense
  • ditch sys/ioctl_compat.h
  • i386/machdep.c, can we decode the cpu model in userspace?
    • Where do we actually need it?
  • swdevt nonsense - only 1 field in the first entry is ever used
  • parsedisk annd lots of nam2blk stuff can go
  • /usr/src/sys/arch/i386/i386/dkcsum.c can go
  • are {I,L}{UCLC,LCUC}, XCASE termios flags part of the standard? - if not remove them
  • decide what gettimeofday should do with its second arg (ignore, EINVAL?)
  • cleandir target in src/bsd
  • pass a random in an extra register to userland, use it to set __guard (in all arch's crts, and ld.so)
  • Can the kernel not "know" the working directory? we need the *at funcs for posix, so we could have a special filehandle (3? ehh) containing the cwd, inherited though exec, etc
  • remove _getlogin syscall and associated cruft
  • proc0 - can it exit? does it need to exist?
    • Reboot when init exits? (using the exit status to decide to reboot or shutdown)?
  • init "wait for everything else to start" sleep stuff - go?
  • int cold - can it go? when does it get unset?
  • nfsboot needs to depend on nfsclient
  • hw_vendor stuff in bios.c (static now, but unneeded)
  • add line disciplins back in, but conditionalize on nmea | ppp | etc
    • put ioctls back too, and have them return constants for non-disc case
    • remove "fixes" in userland
  • PID_MAX only limited for backwards compat i think

Bootstrap

  • libsa __RocBSD__ disklabel changes, little shaky...
  • unify boot(8)? can pxeboot, cdboot, and boot all live in the same binary?
  • cdbr should load cdboot at the correct address (0x40000) right away, no need

for 0x7c00 then have cdboot move itself

  • merge amd64 and i386 bootloaders (start with amd64, it is more minimalist and cuts out legacy cray)
  • find out what the + and * next to hard disk name means in boot are they wrong? do they matter?
  • also hd/sd confusion (why is scsi special?)

Installer

  • get rid (or simplify) some of the serial console stuff in installer?
  • use mfs for /tmp by default no, mfs is not what you think it is
  • need a story for setting timezone

Build Process

  • make sure BSD_AUTH, YP, KERBEROSE, SKEY etc still have some chance of working when enabled
    • Add CLFAGS+=-DXXX where in app/library makefiles, add SRCS/MAN+= xxx.c (even if xxx.c isn't in tree)
    • perlapi.pod (i think) looks for some t/lib files (specificed in the manifest) that we don't currently bundle
  • machine includes installed under /usr/include/${MACHINE}
    • /usr/include/machine contains:
      foo.h:
      #ifdef __i386__
      #include <i386/foo.h>
      #elif
      ..
      #endif
      
  • make kernel build with bsd.prog.mk like a normal program
    • set CFLAGS/LDFLAGS as appropriate
    • config generates a SRCS line
    • config generates a defs.h which we -include defs.h in CFLAGS
    • Maybe don't even install config (or libexec it?)
  • make cleandir again
  • beforedepend stuff for generated files is stupid... can we do better? guess not
  • usr.bin/install is funky (name overlaps with install target)
  • makewhatis needs to be run initially (either by make install or rc.firsttime)
  • much of share/man should be moved to where it belongs
  • librpcsvc doesn't build after cleandir (INCS dependencies wrong)
  • add an uninstall target
  • Add a *single* ${ARCH} variable (maybe don't even predefine it in make(1)?; use $(arch -s)?), i386, amd64, powerpc. We'll have to do some magic for the macppc dir, but there shouldn't be any outside the kernel. Poison ${MACHINE} and ${MACHINE_ARCH}. Maybe it should be called MACHINE though? Either way, start with ARCH, so we catch all the places it is used.
  • Maybe remove arch(1) and machine(1), they're getting rather useless. Where are they used?
  • install fenv.h and tgmath.h
  • Look at cvs history for libm, some libm functions were stupidly moved to libc, move 'em back

Etc

  • tset nonsense in etc/{skel,root}/dot*
  • actually could get rid of a lot of those dot.* files
  • where does /etc/motd show now that login is gone?
    • should .profile show it?
    • if it still shows it should be autogenerated (welcome to ${OSNAME})
  • something needs to make lastlog and wtmp
  • /etc/rc shouldn't generate ssh keys (does it?)
  • should librpcsvc install .x files in /usr/include?
  • parse /etc/myns like sysctl -f parser (strsep, comments, etc)
  • Merge new stuff from /etc/rc (baddynamic, host.random, ssh keys, etc)

Lib

  • Hide underscore symbols in shared libraries no
  • tcgetsid is not implemented
  • move setsockopt to libxnet (anything else?)
  • pthread
    • Remove pthread_switch_add_np and associated cruft
    • Try to remove _thread_init or make it called as a constructor
  • need wcswidth and getws man page
  • get rid of librpcsvc?
  • move sysv ipc to libipc
    • implement in userspace?
  • maybe wide characters should always use utf8? should we even bother with latin1?

Bin

  • can we conditionalize atrun?
  • warning: templates not found /usr/share/git-core/templates
  • -D_LIBKVM in sysctl?
  • roll cpp(1) into cc(1)
  • remove extended registers, and source vtables in dc(1)
  • disklabel "auto layout" need tweeking (no x11 at least)
  • passwd policy is too strict
  • warning: templates not found /usr/share/git-core/templates on git-clone
  • check ifconfig man page for options that can be disabled (group by interface type)
  • sys_auth_passwd in ssh's auth-passwd.c empty password stuff... not sure how that interacts with ssh's empty password config options
  • remove hostname.if files? do it the freebsd way?
  • Way too many superblock backups in newfs(8) by default
  • Our usr.bin/csh/exp.c exp2 workaround is no longer needed, fixed upstream

Share

  • remove some share/misc stuff?
  • _PATH_BOOTDIR should go (and all of /usr/mdec, do something better)
  • is mandoc stuff here still used?
  • remove some bsd.*.mk files (xconf xorg, port, etc)

Headers

  • remove getrrsetbyname from netdb.h
  • make sure all _PATH_* defines are still valid
  • Lots of machine/profile.h is unused, maybe it should go away (kernel profiling is likely broken now)

PowerPC

  • powerpc doesn't define __powerpc__
  • do we need svr4.h in powerpc?
  • longcall stuff in powerpc? Can we assume binaries are always < 32mb, and always use shortcalls?
  • .sdata/.sbss in powerpc, ditch it?

Global

  • conditionalize INET6 across the world

Distribution

  • simplify /dev, only minimum, maybe bump down some counts for sd*, etc
    • no wd* by default
    • installer should make sure root devices exist
  • remove resolv.conf (now, simpler, myns) from installer, dhcp too probably
  • osrelease stuff in installer gets it wrong (I think it pulls the, now removed, sysctl)
  • reboot(8) in miniroot needs getopt, maybe just ditch reboot and use kill -1 init
  • /root doesn't exist
  • set lists suck... can we do something different?

Perl

  • Lots of pods aren't being built
    • But do we want all of them (readme's of langs/archs we don't support?)
  • Verify against "real" perl build again
  • We can ditch DynaLoader, and replace XSLoader with a stupid stub (since all XS modules are statically linked)
  • We can ditch ExtUtils-* (even -Constants, since they're included in the distribution now)
  • bsd.perl.mk still could use cleanup
    • I think we can (somehow) use implied rules for pods
    • The "find which directory the file is really in" nonsense is stupid
      • Either do the NetBSD ${.ALLSRC}/.MADE hack, or add a "resolve though path" modifier to make(1)
    • Really should .include Makefile.inc, to get the right bindir, although the default is correct

New Features

  • libgmon is wrong - mcount.c doesn't match up with gcc
  • gdb in tree
  • add s/key support throughout
  • whatis database

Verification

  • double check fetch/ftp changes

Documentation

  • in NOKVM cases, remove command line options from usage() and man pages
  • gcc-local manpage? can we steal a c99 manpage from opengroup?
  • ensure all changes are documented in man pages
  • stpcpy man pages are wrong (linked to strcpy)
  • dprintf man page

Later

  • http://fedoraproject.org/wiki/Security/Features
  • come up with a story for nfs umount, need to do a MOUNTPROC3_UMNT call
  • double check security of newgrp (from netbsd)
  • remove all non-c99(1) options from cc? Add a -Wc, option to pass gcc specific flags?
  • Initialization (stdio and arc4random to name two) in libc and friends should use gcc constructors
    • Maybe use a weak reference to arc4_stir to reseed on fork(), so we don't getpid() on every call
  • getaddrinfo locking
  • see if everything builds *without* objdir? should...
  • simplify perl's XSLoader (no need for Dynloader)
  • Can we make rsync use the system libmd and libz? Might have to tweak them a bit
  • Implement man -k and man -f
    • -f is stupidly easy, use exitsing how() function to find NAME, and symlink whatis to man (plus add manpage)
    • -k is a little harder... but POSIX is very lenient
Edit - History - Print - Recent Changes - Search
Page last modified on August 10, 2011, at 12:20 PM EDT