This package was debianized by Eric Evans <eevans@apache.org> on
Sun, 26 Jul 2009 15:12:10 +0000

Upstream Author: Cassandra Developers <dev@cassandra.apache.org>

Copyright (c) 2009, The Apache Software Foundation.

This software is licensed under the Apache License 2.0. On Debian 
GNU/Linux systems you can find the complete text of the Apache-2.0
license in `/usr/share/common-licenses/Apache-2.0'.
