Commit Briefs

Omar Polo

add TODO regarding Y2038 (main)


Omar Polo

sync imsg



Omar Polo

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

Tags

Tree

.gitignorecommits | blame
LICENSEcommits | blame
Makefile.amcommits | blame
README.mdcommits | blame
TODOcommits | blame
art/
autogen.sh*commits | blame
compat/
compat.hcommits | blame
configure.accommits | blame
contrib/
kamictl/
kamid/
kamiftp/
kamiproxy/
kamirepl/
lib/
ninepscript/
regress/
site/

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