For 7 years I've used cbb (formerly on SourceForge) for tracking expenses. It was written by Curt Olson starting in 1994, and since then Curt has been heavily involved with FlightGear; there's even an old version on the FlightGear web server.

The last released version was 0.9.5, in 2004, which not many people seem to have adopted, and which seems to have been abandoned after the first upload. The last commonly used version was 0.8.1, released around 2000, (including Y2K fixes) which was once packaged in Debian but eventually removed around 2005. Since then I've been using a package that I rebuilt on Debian and Ubuntu from the old source. (As have others.)

Since I've moved to Mac OS X (10.6) for my desktop environment I also wanted to move CBB over to use in my new desktop. It is written in Tcl/Tk, with some addons written in Perl. MacPorts includes TCL 8.5.7 and Tk 8.5.7 (and appears to use TCL for portfiles), and Perl is both in the base OS X and in Macports so the basic dependencies are covered. (I had previously had problems with TCL 8.4, but it appears that whatever caused those issues it isn't a problem with TCL 8.5 on OS X.) However CBB wasn't packaged.

To get up and going quickly I took the CBB 0.8.1 original source from the Debian package I've been using, and applied the Debian diff I'd been using -- removing the bits that were Debian specific from it. After fixing cbb.in to allow substituting in the path for wish (the Tcl/Tk front end) and a bit of testing which highlighted a font problem and an error with tkEntrySetCursor (debian bug #249610 which suggests another fix), I arrived at the following build process for a local, unpackaged, install (links to cached copies of source and diff):

It can then be run as /usr/local/package/cbb/bin/cbb. (A long path, but I've run CBB through a shell script wrapper for years so the exact path to the binary isn't a problem.)

The diff makes "European" dates the default (rather than the mid-endian USA dates), and changes the default fixed-width font to be "Terminal 10" (using the new Tcl/Tk font matcing; font tutorial, and reference documentation). (Without a fixed width font the main account display is very poorly laid out, and for some reason the CBB default of "8x13" was no longer matching anything and hence defaulting to a large font. I found "Terminal 10" by using the example in the reference manual, a Tcl/Tk font chooser example program, and a bit of experimentation -- "Terminal" itself was rather too large, but "Terminal 10" is approximately 10 point and works fairly well for the account information.) Both the date format and fonts can be overridden in ~/.cbbrc.tcl, and the date format can be changed in the preferences menu. It also adds a definition of tkEntrySetCursor created by Marcus A P Capral so that tab completion works without errors. (It appears tkEntrySetCursor was an internal Tk function made private several years ago.)

Other than that issue, all the functionality that I've been using previously appears to still work, including various reports. My plan is to change my wrapper scripts to use git as a simple means of keeping backups of the files, just in case there are any software issues. But it looks promising at this point.

ETA: git setup:

cd $CBBDATADIR
git init-db
git add *.cbb alltxns.log categories
(echo "#Ignore all CBB backup files"; echo "*.cbb") >.gitignore
git commit -m 'CBB data for ACCOUNTS copied from SOURCE'

and wrapper script

#! /bin/sh
# Run cbb (cheque book balancer)
# 
# Changes are committed to the git database in the same directory if 
# something other than the generic transaction log is modified (ie,
# if there was an actual transaction change)
#
PATH="/usr/local/package/cbb/bin/:$PATH"
cd $CBBDATADIR && (
  cbb cash.cbb
  if git status 2>&1 | grep modified | grep -qv alltxns.log; then
    git commit -a -q \
      -m "Updated with transactions entered `date '+%Y-%m-%d %H:%M:%S'`"
  fi
)

The wrapper script will auto-commit to the GIT backup if there are any substantial changes, but not if the only changes is the log saying that we opened CBB.

ETA 2: Unfortunately with the newer Tk and/or running on OS X 10.6, remotely displaying on OS X 10.5 (through ssh X11 tunnelling) didn't work with the config used above, because none of the fonts were found. After some experimentation, I used the Tk Standard Fonts which are (now) guaranteed to exist on all platforms, changing the fonts to be:

# Based on Tk standardised fonts, described here:
# http://www.tkdocs.com/tutorial/fonts.html
set cbb(msg_text_font) "TkIconFont"
set cbb(button_font) "TkCaptionFont"
set cbb(fixed_header_font) "TkFixedFont"
set cbb(fixed_font) "TkFixedFont"
set cbb(status_line_font) "TkMenuFont"
set cbb(menu_font) "TkMenuFont"
set cbb(dialog_font) "TkTextFont"
set cbb(default_font) "TkDefaultFont"

This displays quite well both on the local display (10.6) and on the remote display (10.5). For now I've just manually put these in ~/.cbbrc.tcl but it would be fairly easy to change the build to make these the application defaults. Given a recent enough Tk (8.4 or 8.5 I think) it should then work on any platform.