Blame


1 8d1b399b 2021-07-22 op # kamid -- 9p file server daemon
2 8d1b399b 2021-07-22 op
3 6ddbfa0c 2021-08-04 op kamid is a FREE, easy-to-use and portable implementation of a 9p file
4 6ddbfa0c 2021-08-04 op server daemon for UNIX-like systems.
5 8d1b399b 2021-07-22 op
6 8d1b399b 2021-07-22 op
7 8d1b399b 2021-07-22 op ## Building
8 8d1b399b 2021-07-22 op
9 8d1b399b 2021-07-22 op kamid depends on libtls, libevent and yacc/GNU bison. To build from a
10 8d1b399b 2021-07-22 op release tarball:
11 8d1b399b 2021-07-22 op
12 8d1b399b 2021-07-22 op ./configure
13 8d1b399b 2021-07-22 op make
14 8d1b399b 2021-07-22 op sudo make install # eventually
15 8d1b399b 2021-07-22 op
16 8d1b399b 2021-07-22 op to build from a git checkout:
17 8d1b399b 2021-07-22 op
18 8d1b399b 2021-07-22 op ./bootstrap
19 8d1b399b 2021-07-22 op ./configure
20 8d1b399b 2021-07-22 op make
21 8d1b399b 2021-07-22 op
22 8d1b399b 2021-07-22 op
23 d06671b5 2021-07-22 op ## Usage
24 d06671b5 2021-07-22 op
25 d06671b5 2021-07-22 op In order to run, a `_kamid` user must exists. The home directory of
26 d06671b5 2021-07-22 op `_kamid` should be `/var/empty` or similar. A configuration file is
27 d06671b5 2021-07-22 op also needed. kamid must be started with root privileges.
28 d06671b5 2021-07-22 op
29 647db0bb 2021-07-22 op A sample configuration file:
30 d06671b5 2021-07-22 op
31 647db0bb 2021-07-22 op ```
32 1ad6dc42 2021-12-15 op pki localhost cert "/etc/ssl/localhost.crt"
33 1ad6dc42 2021-12-15 op pki localhost key "/etc/ssl/private/localhost.key"
34 647db0bb 2021-07-22 op
35 647db0bb 2021-07-22 op table users { "SHA256:..." => "op" }
36 647db0bb 2021-07-22 op
37 afb31195 2021-08-04 op listen on localhost port 1337 tls pki localhost auth <users>
38 647db0bb 2021-07-22 op ```
39 647db0bb 2021-07-22 op
40 647db0bb 2021-07-22 op
41 6ddbfa0c 2021-08-04 op ## Testing
42 6ddbfa0c 2021-08-04 op
43 a98552e5 2021-08-07 op The regression suite needs to be run with root privileges, since it
44 a98552e5 2021-08-07 op has to spawn a subprocess that needs to `chroot(2)` itself. To run
45 a98552e5 2021-08-07 op the tests, issue
46 6ddbfa0c 2021-08-04 op
47 f3293567 2021-12-14 op $ make ninepscript && sudo ./run-tests.sh
48 6ddbfa0c 2021-08-04 op
49 a98552e5 2021-08-07 op The regression uses a custom DSL, `ninepscript`, to run the tests.
50 a98552e5 2021-08-07 op See `regress/sample.9ps` for an example of the grammar.
51 a98552e5 2021-08-07 op `contrib/9ps-mode.el` is the major mode for Emacs.
52 a98552e5 2021-08-07 op
53 d74b9ff1 2021-12-21 op There's another regression suite written in common lisp in
54 d74b9ff1 2021-12-21 op `regress/lisp/9p-test`; it depends on other common lisp libraries
55 d74b9ff1 2021-12-21 op available through quicklisp. To run it execute
56 a98552e5 2021-08-07 op
57 4aa7ed03 2021-12-18 op $ DOAS=sudo ./run-extra-tests.sh
58 4aa7ed03 2021-12-18 op
59 d74b9ff1 2021-12-21 op (leave `DOAS=sudo` out if you have doas installed and configured)
60 4aa7ed03 2021-12-18 op
61 4aa7ed03 2021-12-18 op
62 8d1b399b 2021-07-22 op ## License
63 8d1b399b 2021-07-22 op
64 8d1b399b 2021-07-22 op kamid is released under a BSD-like license. The bulk of the code is
65 8d1b399b 2021-07-22 op under the ISC license, but some file are BSD2 or BSD3.
66 a2c73237 2021-12-18 op
67 a2c73237 2021-12-18 op `regress/lisp/9p-test/` (the common lisp regression suite) is released
68 a2c73237 2021-12-18 op under the GNU GPLv3+.