SkillAgentSearch skills...

Limestone

Advanced WebDAV server backed by a Postgres database. Supports ACL, Search, BIND, Redirect, and partial DeltaV.

Install / Use

/learn @tolsen/Limestone
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

README for Limestone server

Dependencies

  • PostgreSQL >= 8.4
  • PostgreSQL JDBC driver (libpg-java package in debian)
  • shared-mime-info library
  • See RubyDAV README for more dependencies
  • Ruby/DBI with Postgres driver (libdbi-ruby and libdbd-pg-ruby1.8 packages)

Checkout

LimeStone depends on a variety of other software that we keep in git. All of the git repositories must be checked out into the same directory.

You have probably already checked out LimeStone:

git clone git://github.com/tolsen/limestone

Now checkout the all the dependencies:

git clone git://github.com/tolsen/limestone-httpd apache git clone git://github.com/tolsen/limestone-apr apr git clone git://github.com/tolsen/limestone-apr-util apr-util git clone git://github.com/tolsen/httpauth better_httpauth git clone git://github.com/tolsen/env-engine git clone git://github.com/tolsen/inspector git clone git://github.com/tolsen/liquibase git clone git://github.com/tolsen/litmus git clone git://github.com/tolsen/Prestan git clone git://github.com/tolsen/rubydav

Simple file description (Somewhat out of date)

  • mod_dav_repos - apache module hooker
  • repos.c - repository interface
  • props.c - properties interface
  • liveprops.c - implements live property hooks of mod_dav
  • version.c - implements the versioning hooks of mod_dav
  • search.c - search(DASL) interface
  • util.c - utility functions
  • dbms.[ch] - Data Access Layer
  • dbms_api.h - API for performing database queries
  • dbms_dbd.[ch]- Implements the API using mod_dbd

Postgres setup

Set up a pgsql database with its own user and password.

Ensure that the user can add/drop schemas to the database - GRANT ALL ON DATABASE $LIMESTONE_DB TO $LIMESTONE_USER;

Environment Variables

Set the following environment variables:

LIMESTONE_HOST_DOMAIN : server hostname LIMESTONE_PGSQL_VHOST_PORT : server port to listen on LIMESTONE_PGSQL_DB_HOST : database hostname LIMESTONE_PGSQL_DB_PORT : database port LIMESTONE_PGSQL_DB_USER : database username LIMESTONE_PGSQL_DB_PASS : database password LIMESTONE_PGSQL_DB_NAME : database name

If you prefer not to set environment variables, you can create a .lime-config file with lines consisting of "ENV_VAR : value"

Build

a. autoconf
b. ./configure --with-pgsql[=PATH]
    Ubuntu defaults for PATH: /usr/include

c. make

This builds apache and limestone

Tests

type "make tests"

How to start Apache

make apache-start

Create a user

./limestone/adduser -p test1 test1

How to connect to WebDAV server running at localhost

  • Open the home directory ( localhost/limespot is not accessible to user directly )

    open http://localhost:8080/home/test1

  • Provide authentication details

    Login: test1 Password: test1

How to DEBUG apache

cd aproot/bin/ % gdb httpd ... ... (gdb) b xxx_yyy_zzz (gdb) run -X -d .. [ if you are in apache/bin or give full path ] (gdb) "Enjoy!!"

Developer mailing list

TBA

THE FOLLOWING MAY NO LONGER WORK

  • For a static build of limestone, type "make static"

  • To build limestone for profiling with gprof, type "make gprof"

  • To run Prestan benchmarks, type "make benchmarks"

  • To quickly rebuild changes made only in limestone & mod_dav modules, type "make reinstall"

Related Skills

View on GitHub
GitHub Stars9
CategoryData
Updated8mo ago
Forks1

Languages

C

Security Score

62/100

Audited on Jul 14, 2025

No findings