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 3b1814ed 2022-01-09 op NB: the -main branch targets only OpenBSD. To build on other
10 3b1814ed 2022-01-09 op platforms, use the -portable branch.
11 8d1b399b 2021-07-22 op
12 3b1814ed 2022-01-09 op $ majo obj
13 9941dc2e 2022-01-04 op $ make
14 3b1814ed 2022-01-09 op $ make install
15 8d1b399b 2021-07-22 op
16 3b1814ed 2022-01-09 op This will install the following commands:
17 8d1b399b 2021-07-22 op
18 3b1814ed 2022-01-09 op - kamid, the daemon
19 3b1814ed 2022-01-09 op - kamictl, an utility to control the daemon
20 3b1814ed 2022-01-09 op - kamiftp, an ftp(1)-like 9p client
21 3b1814ed 2022-01-09 op - kamirepl, a low-level 9p client
22 3b1814ed 2022-01-09 op - man pages (only installed if building sources from a kamid release
23 3b1814ed 2022-01-09 op tarball)
24 8d1b399b 2021-07-22 op
25 d06671b5 2021-07-22 op ## Usage
26 d06671b5 2021-07-22 op
27 3b1814ed 2022-01-09 op In order to run, the `_kamid` user must exists, with `/var/empty` as
28 3b1814ed 2022-01-09 op home directory. A valid configuration file `/etc/kamid.conf` is also
29 3b1814ed 2022-01-09 op needed. kamid must be started with root privileges.
30 d06671b5 2021-07-22 op
31 647db0bb 2021-07-22 op A sample configuration file:
32 d06671b5 2021-07-22 op
33 647db0bb 2021-07-22 op ```
34 3b1814ed 2022-01-09 op # /etc/kamid.conf
35 1ad6dc42 2021-12-15 op pki localhost cert "/etc/ssl/localhost.crt"
36 1ad6dc42 2021-12-15 op pki localhost key "/etc/ssl/private/localhost.key"
37 647db0bb 2021-07-22 op
38 647db0bb 2021-07-22 op table users { "SHA256:..." => "op" }
39 647db0bb 2021-07-22 op
40 afb31195 2021-08-04 op listen on localhost port 1337 tls pki localhost auth <users>
41 647db0bb 2021-07-22 op ```
42 647db0bb 2021-07-22 op
43 647db0bb 2021-07-22 op
44 6ddbfa0c 2021-08-04 op ## Testing
45 6ddbfa0c 2021-08-04 op
46 3b1814ed 2022-01-09 op The regression suite uses doas(1) because it needs root privileges for
47 3b1814ed 2022-01-09 op some operatinos. To run the test suite:
48 6ddbfa0c 2021-08-04 op
49 3b1814ed 2022-01-09 op $ make regress
50 6ddbfa0c 2021-08-04 op
51 3b1814ed 2022-01-09 op The regression are written with a custom DSL, called ninepscript.
52 a98552e5 2021-08-07 op `contrib/9ps-mode.el` is the major mode for Emacs.
53 a98552e5 2021-08-07 op
54 d74b9ff1 2021-12-21 op There's another regression suite written in common lisp in
55 d74b9ff1 2021-12-21 op `regress/lisp/9p-test`; it depends on other common lisp libraries
56 3b1814ed 2022-01-09 op available through quicklisp. Make sure to have sbcl installed and the
57 3b1814ed 2022-01-09 op relevant lisp dependencies installed, then run
58 a98552e5 2021-08-07 op
59 3b1814ed 2022-01-09 op $ make HAVE_LISP=yes regress
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+.