SmIRC - an X11R6/Motif 2.0 IRC client for Linux

Current version is 0.70

Copyright 1997-1999, Double Precision, Inc.

This program is distributed under the terms of the GNU General Public License. See COPYING for additional information.

SmIRC is an X11R6 IRC client, based on the Motif widget set. This release has most of the functionality expected from an IRC client. Only DCC is missing. Everything else usually expected from an IRC client is included. The interface is designed to be simple, short, and sweet. SmIRC's look and feel is highly customizable, via its resource file. All output can be customized with your favorite fonts and colors.

Runtime help pages are provided in an HTML format. You will need an HTML browser (lynx is fine) to read them.

You will need Motif 2.0 or Motif 2.1 to compile the source code. If you do not have Motif 2.0 libraries, you can try running the provided ELF binary which is statically-linked with the Xm and Xpm libraries. I do not know if SmIRC compiles with Lesstif.

In addition to the above, SmIRC needs at least 27MB of disk space, and a machine with plenty of RAM in order to compile the source code. Some modules take as much as 22-23MB of RAM to compile. Your machine should have at least 16MB of physical RAM, and 16MB of swap in order to be able to compile the source code.

New features in version 0.70

Miscellaneous note: I would like to add DCC SEND and CHAT support next, but I am unable to locate suitable specifications for DCC anywhere. The short memo dating back to August 1994 from Troy Rollo and Ben Mesander is very scant on details, and is not sufficient to code from. I prefer not to attempt to reverse-engineer DCC from some other IRC client. If anyone has a reference to RFC-level DCC specifications, please forward me a pointer to it. Thanks.

Upgrading from a previous version

Make sure to read the change log below, to find out what's changed!!

To upgrade, just follow installation instructions. Before doing the upgrade, you may wish to make a backup copy of your current /usr/lib/smirc/config or the /usr/local/lib/smirc/config file, if you have made any additions/deletions there that you want to keep. Also, if you heavily customized the resource file, you may also wish to back up /usr/lib/X11/app-defaults/Smirc. The installation procedure will overwrite these files. Please note that the configuration directory location has changed, see "New features", above.

NOTE: Some resource settings have been changed, be careful.


The latest version of SmIRC is available from the following archives:
Undernet IRC archive (
Metalab (
North Shore Technologies FTP archive (
The distribution files are as follows:
smirc-0.70.tar.gz - source code. 
smirc-0.70.bin.static.tgz - i386 ELF glibc binary, statically linked with Motif. 
smirc-0.70.lsm - LSM file. 
smirc-0.70-1.src.rpm - Source RPM for Red Hat 6.0 
- Binary RPMs for Intel i386 glibc. Install smirc-common first, then install EITHER smirc or smirc-static. Install smirc, if you have Motif 2.1. Install smirc-static if you do not have Motif 2.1. See below for more information. 
All RPMs are signed by my PGP key. (PGPKEY.txt).

SmIRC web page - SmIRC web page.

Automatic installation using RPM.

For rpm-based Linux systems, rebuilding from the source RPM is recommended. Please note that Motif 2.0 or 2.1 development libraries must be installed, whether or not you are using the source RPM or compiling from the original tarball.
    rpm --rebuild smirc-0.70-1.src.rpm
This will create the following packages in your default binary RPM directory, which will usually be /usr/src/redhat/RPMS/i386. To install them from that directory, type:
rpm -i smirc-common-0.70-1.i386.rpm - This package contains configuration files which are common to the dynamic and static packages. smirc-common must be installed BEFORE either the dynamic or the static RPM is installed. 
rpm -i smirc-0.70-1.i386.rpm - This package contains the SmIRC binary dynamically linked with Motif libraries. Install this package afterinstalling smirc-common.
rpm -i smirc-static-0.70-1.i386.rpm - This package contains the SmIRC binary statically linked with libXm. After rebuilding the source RPM on a machine with Motif libraries, you may install smirc-common and smirc-static packages on other machines that do not have libraries. There is no need to install both the dynamic, and the static packages. 

Upgrade note

If you upgrade from 0.62b using either the prebuilt RPMs, or by rebuilding the RPMs yourself, please note that the configuration directories have changed from /usr/lib/smirc and /usr/local/lib/smirc to /usr/local/share/smirc and /usr/local/etc/smirc. If you have made custom changes to your config file, you will need to reapply the changes to the new config file that will be installed in /usr/local/share/smirc. You may also need to copy any bots you installed in /usr/lib/smirc. Please back up the old directory before upgrading, and remove it after the upgrade.

Installation on other Linux distributions.

Extract smirc-0.70.tar.gz.

Here are a typical set of commands to configure, compile, and install SmIRC:

    ./configure [options]
    make install-smirc-strip

configure is a script that is used to set various options at compile time. The next make command compiles SmIRC. The last make command strips debug data from the SmIRC executable, and installs it. If your make has problems with the Makefile, try using the gmake command instead.

configure recognizes the following options:

NOTE: Previous versions of SmIRC installed in /usr/X11/bin, and used /usr/lib/smirc and /usr/local/lib/smirc. You will need to manually remove any files installed by the previous version of SmIRC.

make install-smirc or make install-smirc-strip installs the following files in /usr/local/bin:

Do NOT run make install, as it installs additional files from the libsndfile package which are NOT needed.


Garbled window

If when starting SmIRC all you get is a gray, or a garbled window, it means that its resource file was not installed properly. Check to make sure that the resource file, /usr/lib/X11/app-defaults/Smirc has been installed and has the correct permissions.

Windows or fonts are too big, or too small

Again, this is a resource issue. Your X11 server may have non-standard font metrics. If fonts look too large, or too small, you'll have to go in and edit the resource file. Since window sizes are based, somewhat, on font metrics, this may also be a reason if a window is unreasonably large, or small.

If all else fails, use the --with-fixedwidth option to install a resource files that uses a bland, generic, fixed width font. It'll look ugly, but usable, and you can add back the fonts, one at a time.

Change log

7/23/99 - V0.70: replace Imake with automake. Change default configuration directories according to GNU's guidelines. Added /CLEAR, /WINDOW commands. Reply to CTCP VERSION can now be set from the resource file. Automatically open connect dialog window after starting. Updated list of default IRC servers. Allow definition of multiple port ranges. Larger nicknames. Static smirc binary now includes libXm only. libXpm is no longer statically linked. /PLAY and /AUTOPLAY commands, Open Sound System support. Enlightenment Sound Daemon support.

7/26/98 - V0.62b: Bug fix - smirc dumps core if the channel topic is blank in channel info window.

7/21/98 - V0.62a: Bug fix - nicknames not removed from list of channel members when kicked.

7/8/98 - V0.62: SmIRC has been ported to Red Hat 5.1/Motif 2.1. Adopted GPL. Adopted GNU autoconfig. Experimental source RPM for Red Hat 5.1. Miscellaneous bug fixes. Somehow managed to get the code to compile with the -O2 flag without neither g++ nor egcs barfing all over the place (a very impressive achievement, I might add). Added the "Channel Info" dialog. This new dialog box, accessed from the Channel menu, allows a very easy way to change channel topic, modes, and bans. Added /RUN command. Added /FLOOD command.

V0.60: added bot support. See online documentation for information. Changed the way that some messages are dispatched to windows, in order to make life easier for bots. Highly doubtfull that anyone would notice. Amongst the changes: the output of a /names command is now shown in the channel window, if it is for a channel you're on (in addition to still being displayed in the server window). This means some additional junk on the screen every time you join the channel, oh well... (At least you can suppress these message now, see below).

Also the following replies are now shown in every channel window: 305, 306.

Changed some menu titles, to make them consistent with corresponding commands.

/LOGOPEN & /LOGCLOSE commands, correspond to equivalent menu options.

Added -u and -v command line options.

Well, to handle the additional clutter, I added the /MESSAGE command which will suppress certain messages from being shown. The initial list of suppressed messages can be defined using the stringTable.SUPPRESSCHANNEL or .SUPPRESSSERVER resource.

08/25/97 - V0.51: bug fix in nick change code. Enhancement: when someone on the same channel with you changes nicknames, and you have a private message window open to that user, the private message window will be updated with the new nick being used by the person. Before, you'd have to manually send a /msg to the new nick, or wait for a private message from the new nick to arrive, which would open a new private message window. NOTE: the IRC server will not send you a nick change notification unless both of you are on the same channel. If you have a private message window open, and the other person changes his/her nickname, and you have not joined any channels in common, no nick change message will be sent, so you will not be aware of the nick change.

07/06/97 - V0.50 - released.