aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 9e8975733cf045889cdbe6176bada228794f3442 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# README #

## About ##

This is a fork of FICS(Free Internet Chess Server) version 1.6.2 made
by Richard Nash.
The fork is maintained by the
[RPBLC computing network](https://www.rpblc.net)
and in particular
[Markus Uhlin](mailto:maxxe@rpblc.net).
The main goal of the fork is to modernize the codebase, improve the
security and fix bugs. New features, for example, other chess variants
will be added in a later stage.

## SAST Tools ##

[PVS-Studio](https://pvs-studio.com/en/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) - static analyzer for C, C++, C#, and Java code.

## Installation ##

Begin the installation with creating a new user, dedicated for running
the FICS.

    # useradd -c "FICS user" -m -p "AccountPassword" chess

When the user has been created login to its account and clone the
[Git](https://git-scm.com)
repository:

    $ su -l chess
    $ mkdir git
    $ cd git
    $ git clone https://github.com/uhlin/fics.git
    $ cd fics

Edit `FICS/config.h` with a text editor and save the file.

    $ emacs FICS/config.h

From the top-level directory of the cloned Git repository begin the
building by running make.

    $ make

If the build was successful it's time to install the chess server by
running `make install`.

    $ make install

Done!

### Make variables ###

If you want you can customize the `FICS_HOME` and `PREFIX` make
variables found in `options.mk`. But it isn't needed if you've
followed the installation steps above.

### Manual pages ###

To install the manual pages, type:

    $ sudo make install-manpages

Replace `sudo` with `doas` if you are running OpenBSD.
The destination will always be prefixed to `/usr/local`, i.e. system wide,
therefore extra privileges are required.

Perhaps you don't want to add the dedicated chess user to the sudoers
list. In fact YOU SHOULDN'T if you care about security. Instead login
as root, change directory and install the manual pages.

## Running the server ##

As root, do the following (unless you aren't already logged in as
`chess`):

    # su -l chess
    $ screen fics

This assumes that
[GNU Screen](https://www.gnu.org/software/screen/)
is installed on your computer.

To detach the screen, type:

    $ (CTRL+a+d)

And to resume, use:

    $ screen -r

The same is achievable with the terminal multiplexer `tmux` in case
you prefer that over GNU Screen.

### Install GNU Screen ###

To install
[GNU Screen](https://www.gnu.org/software/screen/)
on
[OpenBSD](http://www.openbsd.org/), run:

    # pkg_add -i screen

### Run in the background ###

Starting from version `rpblc-1.4.3` you can run the server in the
background by typing:

    $ fics -d

### Run as a cron job ###

FICS comes with an autorun script (`fics_autorun.sh`) that is suitable
to be run as a cron job for the dedicated chess user.

Edit the crontab by typing:

    $ crontab -e

And add the following line:

    */5 * * * * /home/chess/bin/fics_autorun.sh

Save the file and exit.

To display the current crontab, type:

    $ crontab -l

## Creating registered players ##

As root, do the following:

    # su -l chess
    $ fics_addplayer UserName FullName EmailAddress

Log out:

    $ (CTRL+d)

The `fics_addplayer` program is located in `/home/chess/bin`,
along with `makerank`.
The dir `/home/chess/bin` should in general be automatically added to
the PATH for the chess user.

    $ man 1 fics_addplayer
    $ man 1 makerank

Happy gaming!