Commit Briefs

Omar Polo

add TODO regarding Y2038 (main)

Omar Polo

sync imsg

Omar Polo 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.




.gitignorecommits | blame
LICENSEcommits | blame
Makefile.amcommits | blame
README.mdcommits | blame
TODOcommits | blame
art/*commits | blame
compat.hcommits | blame
configure.accommits | blame

# 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:

	$ ./
	$ ./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+.