Apache Whirr
------------
Whirr is a set of libraries for running cloud services.

Release notes are in src/site/xdoc/release-notes.xml.

Website: http://whirr.apache.org/
Quick start: http://whirr.apache.org/docs/latest/quick-start-guide.html

Cryptographic Software Notice
-----------------------------
This distribution includes cryptographic software.  The country in 
which you currently reside may have restrictions on the import, 
possession, use, and/or re-export to another country, of 
encryption software.  BEFORE using any encryption software, please 
check your country's laws, regulations and policies concerning the
import, possession, or use, and re-export of encryption software, to 
see if this is permitted.  See <http://www.wassenaar.org/> for more
information.

The U.S. Government Department of Commerce, Bureau of Industry and
Security (BIS), has classified this software as Export Commodity 
Control Number (ECCN) 5D002.C.1, which includes information security
software using or performing cryptographic functions with asymmetric
algorithms.  The form and manner of this Apache Software Foundation
distribution makes it eligible for export under the License Exception
ENC Technology Software Unrestricted (TSU) exception (see the BIS 
Export Administration Regulations, Section 740.13) for both object 
code and source code.

The following provides more details on the included cryptographic
software:

  Whirr requires the JSch library for SSH support:
    http://www.jcraft.com/jsch/index.html

  Whirr requires Not-Yet-Commons-SSL for SSH keypair checking:
    http://juliusdavies.ca/commons-ssl/

  The jclouds enterprise module requires the BouncyCastle Java cryptography APIs:
    http://www.bouncycastle.org/java.html
  
  Export classifications and source links can be found
  at http://www.apache.org/licenses/exports/.

