Commit bb2db3fa authored by Per Cederqvist's avatar Per Cederqvist
Browse files

Initial revision

parent 59ccc23d
1) ANSI C compiler, preferably GNU CC.
LysKOM is written in ANSI C, with full prototypes. If your compiler
doesn't support prototypes you'd better get gcc (the GNU C compiler).
It is available freely via anonymous from many sites, e.g.
( or (
Our intention was to write LysKOM as portable as possible.
Unfortunately we have used some constructs that are extensions of gcc
in a few places. It shouldn't be too hard to rewrite those parts (but
since gcc is the only compiler that supports prototypes that we have we
cannot tell).
2) ld -L
If your ld doesn't support the -L flag (or if it is used for something
else than to tell ld where libraries are found) you will have to move
the libraries manually during the build process. Hint: GNU ld supports
3) Non-standard make
The Makefiles are written for GNU Make. If you don't want to get it
(and don't have a Sun - Suns' make can handle the extension) you could
edit the Makefiles manually. The only GNU extension we use is the
"include" directive. But since we use it a lot of times, and there are
about 18 Makefiles, you probably will have LysKOM up and running
faster if you fetch GNU Make.
In the following, $T stands for the directory in which this file
(INSTALL) resides.
1) Decide what computer system you are using. Currently, you can choose
one of the following:
sun3, sun4 - A Sun running sunos 4.1.1. Might work with other
os-versions as well. Set $H=sun4os4
balance - A Sequent Balance 8000 running Dynix 2.1.1 (yes,
that old version still lives at Lysator!) with
modified include files. Our include files now
declare most functions with full prototypes.
Set $H=balance
2) Edit $T/config/$H-defs.make.
We have used a lot of GNU programs to build the server. You could
just change "gawk" to "awk" if you don't have gawk. CC should be a C
compiler that supports prototypes. If your ranlib doesn't support
the -t flag, just omit it in the definition of TOUCHLIB. If your ld
doesn't support the -L flag take it out from LDFLAGS. See also step
6 below.
3) Edit $T/config/$H-config.h
The file $T/config/config-template.h lists all options. You
shouldn't need to change this file if you are compiling LysKOM on a
4) Edit $T/src/server/server-config.c.
The things that you might want to change are:
Set DEFAULT_DBASE_DIR to the directory in which you want to have
all LysKOM files. This directory will be populated with the
db/lyskomd-data # The database, sans all text.
db/lyskomd-backup # Copy of lyskomd-data.
db/lyskomd-texts # All written text.
etc/lyskomd-log # log file.
etc/pid # Process Id of the running server.
etc/memory-usage # Created each time the server quits.
etc/stdout.log # Should always be empty.
etc/stderr.log # Another log file.
bin/lyskomd # The server.
bin/dbck # Data base check program.
bin/updateLysKOM # Run by cron.
SYNC_INTERVAL tells how often the server will update the data base
on the disk.
DEFAULT_NICE tells how many days texts will exists before they are
expired. There is an expire limit for each conference that is
created. It can be set individually for each conference. This is
the default value.
5) Type
./Config $H
This takes some 1.5 minutes on a Sun 3/80.
6) If your ld supports -L, type
or, maybe, (from a bash shell)
./Build >build.log 2>&1 &
and wait... If your ld does not support -L do this (supposing your
ld searches for libraries in /usr/local/lib):
make depend
make libraries
pushd src/libraries
for i in libansi/libansi.a libcommon/liblyskom-server.a \
libisc/libisc.a libmisc/libmisc.a
cp $i /usr/local/lib/$i
make binaries
All binaries should now be built.
7) Ask root to create a user `lyskom' (or a name of your choice).
8) Create the directory that you specified as DEFAULT_DBASE_DIR in
step 4. Recursively copy the contents of $T/db-crypt into
DEFAULT_DBASE_DIR/db: (The remainder of this file assumes that
DEFAULT_DBASE_DIR is /usr/lyskom).
su lyskom
mkdir /usr/lyskom
cd /usr/lyskom
mkdir db
cp -r $T/db-crypt db
mkdir bin
cp $T/run-support/updateLysKOM bin/updateLysKOM
cp $T/src/server/lyskomd $T/src/server/dbck bin
chmod 700 db
mkdir cores
Since the texts are stored in the database file with no encryption
whatsoever it might be a good idea to make it read protected.
If lyskomd should dump a core for some reason the core file will be
written in the directory `cores'.
8) Fix updateLysKOM
Edit the script updateLysKOM and fix the path to lyskomd. When
finished, do
chmod 4711 bin/updateLysKOM
updateLysKOM is a setuid shellscript that is run by cron. See
doc/ADMINISTRATION. We know that not all Unixes supports setuid
shellscripts, and that it is a bad idea to have them. Note that
this script is setuid lyskom, not setuid root, so this is not a
threat to overall system security. updateLysKOM will be a real
program in the next release of LysKOM.
9) Arrange so that cron will run updateLysKOM regurlarly.
If you are running on a sun you can do like this:
echo '17,47 * * * * /usr/lyskom/bin/updateLysKOM' | crontab
Other systems might require that you "su root" and add the line
17,47 * * * * /usr/lyskom/bin/updateLysKOM
to /etc/crontab.
10) Fetch the most recent lyskom client from Since
currently the only working client is written in emacs lisp, you will
have to get the elisp program elisp-client and install it so that
your load-path in emacs finds it. Wait until cron starts lyskomd,
or start it manually by running updateLysKOM. Start the client in
an emacs:
M-x load-lib RET lyskom
M-x lyskom
Log in as "p 5" with password "gazonk". Change the password with
"a[ndra l|senord" (in the swedish client. There is currently only
a swedish client, but it should be fairly easy to translate it to
another language since all language-specific parts of the client
have been extracted to a single file. Volunteers are welcome!)
Change the names of all conferences (there are four of them) and
the administrator (person number 5) if you are not pleased with them.
Person 5 has all privilege bits set, so he is a very powerful user.
To be able to use his powers he must enable them (with "a\verg} i
Announce the new LysKOM server to the intended audience.
11) We would like to know about where LysKOM servers are running. If
you start a server, please mail "". We will tell
you when we make new releases, and warn you if we should find any
serious problems.
12) Read the file doc/ADMINISTRATION.
LysKOM needs your attention once in a while. Here at Lysator we
expunge old texts (with "dbck -g") approximately once every 2
months, and restarts the server after about 1000 connection
attempts (a little more than one week).
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment