[Download]
[FAQ]
[Screenshots]
[Changelog]
[Contributors]
Fugu is a graphical client for the Gale
instant messaging system. Its features include: multiple screens for
different subscription lists; a detachable puff composer window; simple
threading facilities for jumping to the next and previous puff in a thread;
searching for the next puff by this author; clickable URLs; and thumbnail
pictures depicting puff senders.
Fugu is written in Python/Tk. It requires Python 2.1, Tcl/Tk 8.0, the
OpenSSL library, and Python
MegaWidgets. It's known to work on Linux and Windows 98/2000.
The Windows version is maintained by Peter Haight.
The current stable version is 1.2.3.
Fugu is a standalone Gale client and doesn't depend on an installation of
Dan Egnor's Gale distribution. It's built on top of PyGale, a
reimplementation of the client side Gale protocol in Python, which
implements the vast majority of the features available in the stock Gale
libraries. Documentation on PyGale can be found in the PyGale source
distribution.
Related Gale clients
vtFugu is a curses-based implementation of Fugu.
Toxin is a lightweight interface which pops
up a new window on every puff, similar to Zephyr or ICQ.
Toxin is the concentrated essence of Fugu.
Changelog
Version 1.2.3 (6/17/2003):
- Bugfixes to work with Debian unstable, and possibly RH9 and
others:
- Patched OpenSSL layer to work with newer openssl libraries
- Work around threaded-Python Tkinter interface change
Changes in 1.2.2:
- Minor bugfixes to vtFugu
- PyGale updated to work with GTK2
- PyGale updated to maintain puff callback across server reconnections
Changes in 1.2:
- Lots of minor bugfixes
- Converted to DistUtils for building/installation
- PyGale is now distributed separately
Changes in 1.1.8:
- URL detection regexp includes parentheses
- Fix bug in gsub causing busy loop after server restart
- A few tweaks to look better on Windows
- Statusbar disappears after 60 seconds
- Presence dropdown moved to buttonbar
- Bugfix for users with ampersands in their real names
- Enable module-specific debugging from command line (-Dmodule)
- Allow a user's key pair to be from a different domain than GALE_DOMAIN
- Important bugfixes in pygalesetup wizard
Changes in 1.1.6:
- Added gsend/gsub clients
- Updated pygale for synchronous operation
- Respond to presence queries for future gwatch implementation
Changes in 1.1.3:
- Updated README
- Threading on locations with regexp chars works now
- Fix bug whereby some locations are not found on startup
Changes in 1.1.2:
- Bugfixes
- Support X resource definitions of fonts used in screens; see
Fugu.ad
Changes in 1.1.0:
- First Dangermouse release
Changes in 1.0:
- Detect semicolons in URLs
- Configurable puff persist interval (how often Fugu pauses to write the
puff history to disk)
- Use Python 1.6's unicode function if it exists; Fugu proper should be
Unicode-aware, although the Tk text widget is not fully compliant
- Detect null ids in people list
- Fixed bugs in thumbnail code related to Python 2.0
- Better support for debugging; run "fugu -d" to enable configurable
debugging output
Changes in 0.9.9e:
- Fix for Python 1.6
- Fix to disable gzipped pickles on Python 1.5.1 (which is terribly
buggy, and should be upgraded to 1.5.2 everywhere)
- Fix to detect empty real name field in passwd file, and not set
message/sender field if this is blank
- Bugfix: wm_transient was called transient in Python 1.5.1 (which
should be upgraded to 1.5.2)
- Asynchronous thumbnail fetcher has been upgraded to HTTP/1.0 to
work with Squid proxy
- Support for user-specified thumbnails (see File|Preferences)
- Thumbnails will be automatically refetched every so often
- Alt-{up,down,pageup,pagedown} always scroll the puff cursor (even when
focus is in the text widget)
- Turn on keepalive for server connections
- Check for "/pub"
Changes in 0.9.9d:
- Keep an in-memory key cache (this needs work, to expire keys after a
time, and check for keys changing on disk)
- AKD should work again
- Save the puff history to disk every five minutes (in case your X
server crashes before you can quit Fugu); this may cause a slight slowdown
every five minutes, because persisting the history takes a little bit of
time
- Bug fix for Tcl/Tk 8.3 and wheel mice (scrolling was going in units of
a page plus several lines)
Changes in 0.9.9c:
- Bugfixes for symlink keys, AKD, and both in conjunction
- More consistent font specification on Unix
- Bugfixes to work with Python 1.5.1 (though not all features are
available)
- Closing Fugu using the Windows close box saves puff history
Changes in 0.9.9b:
- Subject area to type in a puff subject
- Extra space between thumbnail and sender name
- Partial support for the WQP (text beginning with "> " is italicized)
- Boolean config file variables use the "on" attribute rather than
having their presence or absence be significant
Changes in 0.9.9a (not released):
- Autocompletion of category strings
- Chain together new key requests occurring within seconds of each
other, to prevent authstorms
- Reply to a notice puff goes to the person sending the notice
- Fixed that bug where moving a screen up/down in the screen config
dialog resets the subscription back to the defaults
- Strip /bot condiment from reply category
- Reply to a private puff with multiple recipients replies to all
recipients and sender (except self); use reply-to-sender (C-S-R) to reply
only to sender
Changes in 0.9.9:
- Fixed a bug with the gzip module detection (importing it works the
second time even if fails the first time!) causing problems saving the puff
history when you don't have the zlib module
- Incorporated MKF's patches (click in the puff window moves focus to
public category box; cosmetic fixes)
- Trap errors in URLcommand argument substitution
- More fixes to the Heath detection code
- Trap errors when sending puffs while the send connection is not
connected
- Incorporated mshadow's Jihad patch to work with directed categories
- GUI setup wizard now the default on both Win32 and Unix
- Reply to a puff that you sent to someone else is directed to the
recipient, not to you
- Fixed bug that caused a spurious stacktrace when sending to symlink keys
- PyGale now constructs the server name automatically from GALE_DOMAIN,
rather than checking GALE_SERVER (which is now obsolete)
- PyGale only requests public keys via AKD once a minute; multiple
requests for the same key (within a 60-second time span) are chained to the
first
Changes in 0.9.8b:
- Fixed a bug in presence setting that causes a crash when you
reconnect to the server, then quit/restart
Changes in 0.9.8a:
- Fixed a bug in 0.9.8 in the Heath detection routine
Changes in 0.9.8:
- Support for version 3 Gale keys
- XML config file (~/.gale/fuguconfig.xml)
- Turn on/off sending return receipts on a per-screen basis
- Save state in a compressed file (if zlib module available)
Changes in 0.9.7i:
- Windows bugfix: when replacing an existing key, delete it first
- Trap window-close for the screen-configure popup
- Another fix to work with Pmw 0.8.3 (creating new screens)
- Got rid of tear-off menus
- CUA-standard keybindings (C-c copy, C-x cut, C-v paste)
- Send id/instance fragment in presence notification puffs
- Comboboxes with drop-down history in category fields
- Presence change dropdown widget added to menubar
Changes in 0.9.7h:
- Fix to work with Pmw 0.8.3
- Fugu-config works again
- Creating new screens works again
- Make sure that deleted screens close a connection to the galed
Changes in 0.9.7g:
- Hopefully starts up faster now
- Search by thread is insensitive to dots-or-slashes
- Strip trailing dots and commas from URLs
- Don't crash on startup when we don't have Python 1.5.2 and thumbnails
are turned on
- Strip /url, /q*, and /fwd* from categories during a reply-to
- Commas allowed as a separator for private recipients
Changes in 0.9.7f:
- Automatic reconnection to server when the link fails
- Better setup procedure for new users (reads gale/conf if it exists)
- Public subscriptions default to GALE_GSUB; private subscriptions
default to GALE_SUBS
Changes in 0.9.7e:
- Thumbnail cache clearing has more options now
- A text search feature
- Optionally save window width on exit
- Fixed bugs where newly created screens had the same subscription
Changes in 0.9.7d:
- No more exception spew on exit (hopefully)
- Support for having multiple servers in the GALE_SERVER list (it
chooses the one that completes the handshake first)
- Confirm crosspuffing to a pub category and a private recipient
- Got rid of flashing buttons (they're now merely highlighted)
- Added JTR's requested cc:self feature
- Send out user's public key on request (a la gsub); no more need to
have a gdomain running to serve user keys
- Cross-platform installation wizard (beta)
Changes in 0.9.7c:
- Updated configure setup to use a local copy of RSAREF, if available
- Fixed AKD bug: silly gsub expects AKD request puffs to contain a
question/key fragment
- Added JTR's jihad patch and his reply-to-sender patch
- RSAREF wrapper build might use CFLAGS and LDFLAGS correctly
- There's a bug that sometimes surfaces when sending notifications, but
I don't know where it is. I added code that might help track it down next
time it happens.
- Log an error if you try to display thumbnails using a Python/Tkinter
version that doesn't have image_create.
Changes in 0.9.7a and 0.9.7b:
- Fixed quote bug in ui.py
- Thumbnail fetching happens asynchronously in the background. Fugu
ought to start up more quickly.
- Various miscellaneous bugfixes that caused crashes and other
inappropriate behavior.
Changes in 0.9.7:
- Warning: the conf file format changed in this version. Be sure
to save your configuration before starting up the new Fugu.
- Easier to build than ever! Runs on top of PyGale, so doesn't require
libgale
- The puff buttonbar (Send/Options/Detach) can be unmapped to save
screen real estate
- Save and restore window height (oops---width coming soon) and proportions
- Asynchronous signature verification: signatures that cannot be
immediately verified are first displayed as *verifying* and then filled in
when the proper key has been received
- Thumbnail pictures for each puffer
- Support for installing Fugu into a system directory (make install)
Changes in 0.9.6:
- Kill by category (negates the selected puff's category and adds it to
the current screen's subscription list)
- Copy URL to clipboard (right-button menu)
- Colorization of puff sender names via ~/.gale/fugu-colors
- Fixed bug with button bindings not being updated when screen orderings
changed
- Added semi-automatic puff citation (right-button menu)
- Puffs can be detached to another window for viewing
- Send notification when presence is changed
- Added Peter's buttonbar widget (buttons now wrap to the next line)
Changes in 0.9.5a:
- Fixed to work with 0.19b (using gale_global instead of
gale_error_handler)
Changes in 0.9.5:
- Requires Pmw 0.8
- Warning: the default is now not to save puffs in between Fugu
sessions. To turn this back on, use the Screens/Configure menu and enable
it for each screen.
- Turn off puff persistence on a per-screen basis (for faster loading)
- Presence announcements
- Logging of outbound puffs
- C-z will iconify the window
- Fixed the off-by-one bug (I think)
- Fixed for Gale 0.19b (don't use null_text, use '-')
- Strip ['/q', '/url'] from categories on reply
- Receipts use 4 digits for the year
- Show the id/class for each puff
Changes in 0.9.4:
- Requires Gale 0.19
- Fixed replying to multiply-addressed puffs
- Ignore /pings
- Gwatch support
- Reconnect to server menu option
- Can be run from any directory
- Build static python by default
Changes in 0.9.3:
- Added -lsocket and -lnsl for Solaris (untested)
- Added wordwrapping to text widgets for the new linebreaking convention
Changes in 0.9.2:
- Autoconfiscated
- Uses Python's Makefile.pre.in to build shared libraries; should work
on most systems now
Tessa Lau | tlau-fugu at ofb.net