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 bb2b5c65 2022-01-10 op When building from a release tarball:
10 8d1b399b 2021-07-22 op
11 bb2b5c65 2022-01-10 op $ ./configure
12 9941dc2e 2022-01-04 op $ make
13 bb2b5c65 2022-01-10 op # make install # eventually
14 8d1b399b 2021-07-22 op
15 bb2b5c65 2022-01-10 op to build from a git checkout:
16 8d1b399b 2021-07-22 op
17 bb2b5c65 2022-01-10 op $ ./autogen.sh
18 bb2b5c65 2022-01-10 op $ ./configure
19 bb2b5c65 2022-01-10 op $ make
20 8d1b399b 2021-07-22 op
21 bb2b5c65 2022-01-10 op
22 d06671b5 2021-07-22 op ## Usage
23 d06671b5 2021-07-22 op
24 3b1814ed 2022-01-09 op In order to run, the `_kamid` user must exists, with `/var/empty` as
25 3b1814ed 2022-01-09 op home directory. A valid configuration file `/etc/kamid.conf` is also
26 3b1814ed 2022-01-09 op needed. kamid must be started with root privileges.
27 d06671b5 2021-07-22 op
28 647db0bb 2021-07-22 op A sample configuration file:
29 d06671b5 2021-07-22 op
30 647db0bb 2021-07-22 op ```
31 3b1814ed 2022-01-09 op # /etc/kamid.conf
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 ab513264 2022-06-11 op ## Contributing
42 ab513264 2022-06-11 op
43 ab513264 2022-06-11 op Every form of contribution is well accepted! Just send an email or
44 ab513264 2022-06-11 op open a pull request (either on Codeberg or GitHub.)
45 ab513264 2022-06-11 op
46 ab513264 2022-06-11 op Don't know where to start? Take a look at the [TODO](./TODO) file!
47 ab513264 2022-06-11 op
48 ab513264 2022-06-11 op
49 ab513264 2022-06-11 op ## Porting
50 ab513264 2022-06-11 op
51 ab513264 2022-06-11 op kamid is developed primarly on OpenBSD, but it's known to work on
52 ab513264 2022-06-11 op Debian, Devuan and NixOS.
53 ab513264 2022-06-11 op
54 ab513264 2022-06-11 op Have you ported / compiled kamid on other systems? Cool, I'd be happy
55 ab513264 2022-06-11 op to hear about it! I'm particularly interested in the difficulties in
56 ab513264 2022-06-11 op doing so to ease the portability.
57 ab513264 2022-06-11 op
58 ab513264 2022-06-11 op
59 6ddbfa0c 2021-08-04 op ## Testing
60 6ddbfa0c 2021-08-04 op
61 bb2b5c65 2022-01-10 op The regression suite uses sudo (or doas) because it needs root
62 bb2b5c65 2022-01-10 op privileges for certain operations. To run the test suite:
63 6ddbfa0c 2021-08-04 op
64 bb2b5c65 2022-01-10 op $ make test
65 6ddbfa0c 2021-08-04 op
66 bb2b5c65 2022-01-10 op The regression are written using a custom DSL, ninepscript.
67 a98552e5 2021-08-07 op `contrib/9ps-mode.el` is the major mode for Emacs.
68 a98552e5 2021-08-07 op
69 d74b9ff1 2021-12-21 op There's another regression suite written in common lisp in
70 bb2b5c65 2022-01-10 op `regress/lisp/9p-test`; it depends on other lisp libraries available
71 bb2b5c65 2022-01-10 op through quicklisp. Make sure to have sbcl and the relevant lisp
72 bb2b5c65 2022-01-10 op dependencies installed, then run
73 a98552e5 2021-08-07 op
74 bb2b5c65 2022-01-10 op $ make HAVE_LISP=yes test
75 4aa7ed03 2021-12-18 op
76 4aa7ed03 2021-12-18 op
77 8d1b399b 2021-07-22 op ## License
78 8d1b399b 2021-07-22 op
79 8d1b399b 2021-07-22 op kamid is released under a BSD-like license. The bulk of the code is
80 8d1b399b 2021-07-22 op under the ISC license, but some file are BSD2 or BSD3.
81 a2c73237 2021-12-18 op
82 a2c73237 2021-12-18 op `regress/lisp/9p-test/` (the common lisp regression suite) is released
83 a2c73237 2021-12-18 op under the GNU GPLv3+.