[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems building, more docs?

On 05/08/13 18:42, Alex Polvi wrote:
> I tried to build 1.2.0, and had to change a few things. Since the tarball is not
> under revision control, essentially I had to change any Makefile that read:
>   ${CC} -o ${PROG} ${LDADD} ${SRCS:.c=.o} 
> to:
>   ${CC} -o ${PROG} ${SRCS:.c=.o} ${LDADD}

This is already fixed in SVN -- I haven't gotten around to rolling a release for
a while (mostly because AFAIK I'm the only person actually using this code...).

> I tried to checkout SVN to make a patch, but when I try to build that, I get:
>   polvi@ssd:~/kivaloo-read-only$ make
>   Makefile:11: *** missing separator.  Stop.
> gcc version:
>   gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) 
> Make version;
>   GNU Make 3.81

The code in SVN uses BSD make since that makes my life as a developer much
easier; I have a "make publish" target which creates POSIX Makefiles to go
into a tarball.

> And finally, I got everything to build using the 1.2.0 tarball, and editing by
> hand the Makefiles... now I'm wondering are there any docs on what each binary
> does? Or any example clients? Just an explanation of the different services
> would be awesome, but the usage is pretty terse.

kivaloo-lbs is a logging block store -- it takes "APPEND", "READ", and "FREE"
requests over a socket and writes/reads/deletes data from local disk.

kivaloo-kvlds is a key-value store -- it takes "SET" and "DELETE" requests, plus
several conditional variants, as well as "GET" and "RANGE" requests.  Again, it
accepts requests over a socket; but it doesn't do any disk I/O itself -- rather,
it connects to a kivaloo-lbs for that.

kivaloo-mux is a multiplexer; if you want multiple clients to be able to talk to
the same kivaloo-kvlds, tell kivaloo-mux to talk to kivaloo-kvlds, and tell your
clients to talk to kivaloo-mux.

Example clients -- look in the /tests/ directory in SVN.  The Makefiles in there
are written for BSD make, but each of them is just main.c + a bunch of C files
from /lib/ + a bunch of -I flags to allow header files from /lib/ to be found.

> Thank you for any pointers!

Are you just exploring, or do you have an application in mind for this code?

Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid