- Description:
- 9p file server daemon for UNIX
- Last Change:
- Clone URL:
ssh://anon@git.omarpolo.com/kamid.git https://git.omarpolo.com/kamid.git
Commit Briefs
add TODO regarding Y2038 (main)
configure.ac: expand the check for sys/tree.h
do not just see if it's there, make sure it is usable. Currently, alpine sys/tree.h generates code that doesn't work with both gcc and clang (for different reasons!) so make sure we can actually use it, or fall back on the bundled version.
Branches
Tree
README.md
# kamid -- 9p file server daemon kamid is a FREE, easy-to-use and portable implementation of a 9p file server daemon for UNIX-like systems. It includes the kamid(8) daemon, a control utility kamictl(8), the kamiftp(1) 9P CLI client and the TLS proxy kamiproxy(1). ## Building When building from a release tarball: $ ./configure $ make # make install # eventually to build from a git checkout: $ ./autogen.sh $ ./configure $ make ## Usage In order to run, the `_kamid` user must exists, with `/var/empty` as home directory. A valid configuration file `/etc/kamid.conf` is also needed. kamid must be started with root privileges. A sample configuration file: ``` # /etc/kamid.conf pki localhost cert "/etc/ssl/localhost.crt" pki localhost key "/etc/ssl/private/localhost.key" table users { "SHA256:..." => "op" } listen on localhost port 1337 tls pki localhost auth <users> ``` ## Contributing Every form of contribution is well accepted! Just send an email or open a pull request (either on Codeberg or GitHub.) Don't know where to start? Take a look at the [TODO](./TODO) file! ## Porting kamid is developed primarly on OpenBSD, but it's known to work on Debian, Devuan and NixOS. Have you ported / compiled kamid on other systems? Cool! I'd be happy to hear about it! I'm particularly interested in the difficulties in doing so to ease the portability. ## Testing The regression suite uses sudo (or doas) because it needs root privileges for certain operations. To run the test suite: $ make test The regression are written using a custom DSL, ninepscript. `contrib/9ps-mode.el` is the major mode for Emacs. There's another regression suite written in common lisp in `regress/lisp/9p-test`; it depends on other lisp libraries available through quicklisp. Make sure to have sbcl and the relevant lisp dependencies installed, then run $ make HAVE_LISP=yes test ## License kamid is released under a BSD-like license. The bulk of the code is under the ISC license, but some file are BSD2 or BSD3. `regress/lisp/9p-test/` (the common lisp regression suite) is released under the GNU GPLv3+.