-
Notifications
You must be signed in to change notification settings - Fork 3
Install Instructions
Installation instructions for SklaffKOM v1.32, March 9 1996, February 22 2022, June 6 2025.
SklaffKOM is a computer-based conference system, much like KOM. It's a command-driven, simple groupware for interuser communication. For rules and stuff regarding distribution of the program, see file COPYING. This program is dedicated to the memory of Staffan Bergström, a BBS-user who died much too young.
SklaffKOM was never intended to be portable to every possible UN*X system around, but it seems to work nice with vanilla BSD and SysV systems. The program compiles ok with gcc and cc on SunOS, Interactive Unix, 386BSD, MT_XINU, DG/UX, LINUX, UNIXWARE and ULTRIX. I haven't tested it on any other systems, but I think it would be quite easy to get it up and running. Since I don't know very much about what differs between UNIX-systems, the various #defines are quite braindead. You probably have to change the #defines in some places for new systems.
Sklaffkom currently compiles without too much fuss on 32-bit FreeBSD 12 and 64-bit macOS 15.5 on ARM.
Please make sure you read all these instructions before attempting to put a Sklaffkom system online.
-
Create a user named "sklaff" on your system. This is the user that should own all files used by SklaffKOM and it's also the only person that is allowed to run the "sklaffadm" program for SklaffKOM administration. You should be able to login as sklaff and get a shell prompt.
-
Unpack this archive somewhere, for example in /usr/local/src. It is wise to do this when you are logged in as sklaff. Use for example the command line "uncompress < sklaff.tar.Z | tar xvof -".
-
Configure SklaffKOM. There are a few files you must edit. First edit the makefile in the sklaffkom-1.32 directory. If you're not using gcc, change CC to something else (cc) and modify "-O2" to "-O" in CFLAGS. Define where you want the sklaff database to reside (default /usr/local/sklaff, it you change this, you must change in sklaff.h also) and where you want the exectables to go (default /usr/local/bin). Also define LIBS as the extra libraries you need. You must almost certainly change this for untested systems.
The next file to edit is sklaffkom-1.32/sklaff.h. This file defines just about everything in SklaffKOM. Normally, you just have to change the following #defines:
Language desired, this is either ENGLISH or SWEDISH. The database supports multiple languages so you can compile the system once again after changing this define if you want two different executables, one for each language. Remember to save to old "sklaffkom"-executable under a different name first so it won't get overwritten.
MODEM_POOL - this variable contains the name of the terminal server (for BSD) or tty port (for SYSV) running as a modem pool. You only have to define this if you want to check if the people reaching SklaffKOM via the terminal server/tty have paid their fee. If you plan to setup SklaffKOM for free, define this as something silly (i.e. "silly").
MODEM_GROUP - Group id for people who must pay to access SklaffKOM from the MODEM_POOL host/tty. All other groups may access SklaffKOM for free except INET_GROUP.
INET_GROUP - Group id for people who only can access SklaffKOM from Internet and not from the MODEM_POOL host/tty. These people don't have to pay a fee.
If the environment variable TERM is not set or set equal to the #define NO_TERM the #define SKLAFF_TERM is used for clearing the screen when SklaffKOM starts up.
All other #defines may be left "as is", but you may want to browse through them to be sure everything looks ok. If you're planning to run SklaffKOM from another directory than /usr/local/sklaff, you have to change a lot of defines in this file, in the section "Files used by SklaffKOM".
Programs used by SklaffKOM. Check those and change them if any of your common programs reside somewhere else or needs options. "ls" MUST output the filenames in ONE column, this is "ls -1" for BSD and just "ls" for SYSV in LSOPTIONS. The *OPT #defines are quite akward, but I couldn't find any other way of solving the problem caused by the way execl works.
You can browse through the "Change nothing below this line..." section to make sure everything gets defined ok for your system and make necessary changes.
The rest of sklaff.h contains function prototypes for all functions in SklaffKOM, both for ANSI C and K&R C.
- Edit SklaffKOMs infofiles. These files reside in sklaffkom-1.32/etc and contains system-specific information. The files you should edit are.
inet - File displayed if you're trying to access SklaffKOM from the MODEM_POOL and belong to the INET_GROUP group.
pay - File displayed if you're trying to access SklaffKOM from the MODEM_POOL and belong to the MODEM_GROUP group and haven't paid your fee.
newacct - File displayed by the sklaffacct-program containing a short presentation of SklaffKOM and instructions for applying for an account.
news - Newsfile containing news about the system. Updated by "sklaff" and displayed everytime someone logs in.
info - File displayed with the sklaffkom "information" command. Contains information about the system in general, i.e. machine, OS, version and so on.
-
Edit the Makefile and define what operating system you want to run Sklaffkom on. If Linux. please remove the -Werror compiler flag. Linux support has been tested on Alma Linux 9 and Ubuntu Linux (some of the later versions when writing this).
-
Time to make it. Just type "make" in sklaffkom-1.32 and wait. You may have to patch the source files a little to get it through the compiler if you're running a system we haven't tested. After a few seconds, or minutes if you are running on old hardware, you should have three executables: "sklaffkom","sklaffacct" and "sklaffadm". DON'T try to run any of them yet, because it won't work.
NEVER STRIP SKLAFFKOM, IT NEEDS THE SYMBOL INFORMATION TO RUN.
-
Become root and install SklaffKOM with "make install". This copies all executables to where you defined them to go. Don't worry about error messages here if they are ignored. The compiler will complain about two files, mailtoss and newstoss, not existing. Just copy mtoss to mailtoss and ntoss to newstoss and try "make install" again.
-
Install the database files (still as root). THIS DELETES ANY PREVIOUS DATABASE FILES, SO BE CAREFUL HERE! Just type "make installdb". This creates the directories etc, user and db and installs relevant databases for both swedish and english executables.
-
Run "sklaffkom" to start the program (you can't run the program as root so login as something else). You should get a command prompt and should be able to end the program with "logout". If everything looks ok, you have probably made it.
-
Normally, users start the program by typing "sklaffkom". If you like to use captive accounts, set the login shell to "sklaffkom". To make this possible, add this line to /etc/shells (this is in FreeBSD 12 and later):
/usr/local/bin/sklaffkom
- If you're using captive accounts, you may want to add an account for new users. Do this by creating a user "account" or "konto" without a password and with "sklaffacct" as login shell. "sklaffacct" allows a person to choose login name and password, then sends the account application by mail to user "sklaff". All account applications are also logged in the file etc/acctlog.
To make this work, please add this to /etc/shells (this is in FreeBSD 12 and later):
/usr/local/bin/sklaffacct
See also instruction 15 in this list.
-
"sklaffadm" if fairly easy to use. Just type "sklaffadm" to get a list of possible commands. Use this to delete texts and snoop around in the database, as well as disable and enable users and change their paydate (for how long they have paid, in format YYMMDD).
-
The user documentation for the system is available with an online "help" command. Detailed system documentation doesn't exists yet, but see the file ADDING for information on adding your own commands to SklaffKOM.
14. SklaffKOM has a mailinglist called "sklaffkom-list@skom.se". If
you are interested in discussions about SklaffKOM, please join this
list by mailing "sklaffkom-list-request@skom.se". For questions and
bug-reports mail "sklaff@skom.se".
- Sklaffkom was written in a time where Telnet was still an acceptable way of logging in to remote computers. Today, we'd rather use ssh instead. Please edit/add this to /etc/ssh/sshd_config for the user konto (used for applying for a new user account in Sklaffkom. See also instruction 11 in this list):
Match user konto
Banner /etc/loginbanner_create_this_yourself
PasswordAuthentication yes
ForceCommand /usr/local/bin/sklaffacct
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Restart the sshd daemon to put these changes into effect.
- To secure regular usage of SSH, please enter these settings into /etc/ssh/sshd_config:
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Restart the sshd daemon to put these changes into effect.
- Important, please read this! The user accounts in Sklaffkom are, as you have probably guessed, regular user accounts in the operating system but with "sklaffkom" set as a login shell instead of sh or bash.
There is a caveat to that though: Sklaffkom requires a ~/.plan file for each user, i.e user "Joe" will have a /home/joe/.plan file in his home directory. This file is for storing a ".plan" which can be edited from within Sklaffkom.
Sklaffkom will however crash if this file is not created for each user, regardless if the user actually edits the .plan file or not.
The .plan file is not created automatically when you create a new user account, and Sklaffkom cannot create it itself. Therefore you must create this file for each user you create and give the file proper ownership (i.e to the user to which it belongs) and proper permissions (0777 should be enough). If you do not do this, Sklaffkom will crash and the user will be kicked out and, quite possibly, ejected back to the operating systems default shell, which is not good.
- For file transfers i FreeBSD 14 and later, please install the
lrzszpackage and make the following changes tosklaff.h:
#define UPLOADPRGM "/usr/local/bin/lrz"
#define DOWNLOADPRGM "/usr/local/bin/lsz"
- Install Nethack! Yes, you can run Nethack from within Sklaffkom. Please install Nethack on your system and edit
commands.cto set the correct path to Nethack:
char nethack_path[256] = "/usr/local/bin/nethack"; /* default path */
This documentation is provided as-is. It makes no claims beyond "it works for us and it may not work for you".
This documentation may also contain certain attempts at humor and may contain opinions you may or may not agree with. This is a "you" problem, not a "we" problem.
Please adhere to the old rule: read twice, type once. Do not copy commands and configuration data blindly, analyze what it actually means before you try it.
Thanks,
The management.