This file lists license and version information of all code we did not
author, but ship together with the source so building Bazel requires
a minimal set of extra dependencies.


## [aether](http://eclipse.org/aether/)

* Version: 1.0.0 v20140518
* License: Eclipse Public License


## [android_common](http://mvnrepository.com/artifact/com.android.tools/sdk-common)

* Version: 22.8.4
* License: Apache License 2.0.


## [apache_commons_codec](http://commons.apache.org/proper/commons-codec/)

* Version: 1.9
* License: Apache License 2.0.


## [apache_commons_collections](http://commons.apache.org/proper/commons-collections/)

* Version: 3.2.1
* License: Apache License 2.0.


## [apache_commons_compress](http://commons.apache.org/proper/commons-compress/)

* Version: 1.9
* License: Apache License 2.0.


## [apache_commons_logging](http://commons.apache.org/proper/commons-logging/)

* Version: 1.1.1
* License: Apache License 2.0.

## [apache_commons_pool2](https://commons.apache.org/proper/commons-pool/)

* Version: 2.3
* License: Apache License 2.0.


## [apache_httpclient](http://hc.apache.org/httpclient-3.x/)

* Version: 4.2.5
* License: Apache License 2.0


## [apache_httpcore](https://hc.apache.org/httpcomponents-core-ga/)

* Version: 4.2.4
* License: Apache License 2.0


## [apache_velocity](http://velocity.apache.org/)

* Version: 1.7
* License: Apache License 2.0.


## [asm](https://asm.ow2.org)

* Version: 5.0.4
* License: 3-clause revised BSD


## [auto](https://github.com/google/auto)

* [auto_common](https://github.com/google/auto/tree/master/common) (version 0.3)
* [auto_service](https://github.com/google/auto/tree/master/service) (version 1.0-rc2)
* [auto_value](https://github.com/google/auto/tree/master/value) (version 1.0)
* License: Apache License 2.0


## [bytebuddy](https://github.com/raphw/byte-buddy)

* Version: 0.7-rc6
* License: Apache License 2.0


## [Error Prone](https://github.com/google/error-prone)

* Version: 2.0.6-20151001-884eec772c13541a7b1af249a68373cd9f30e488
* License: Apache License 2.0

## [jFormatString](https://code.google.com/p/j-format-string/)

* Version: 3.0.0
* License: GNU GPL v2

## [Checker Framework Dataflow](http://code.google.com/p/checker-framework/)

* Version: 1.8.10
* License: GPLv2, portions MIT

## [Buck (iOS support)](http://facebook.github.io/buck/)

* Version: commit id 2ff4f45a971776afcfbe88333d78c4ca6bf03df9
* License: Apache License 2.0


## [d3](http://d3js.org/)

* Version: 3.4.12
* License: BSD license


## [dd_plist](http://plist.googlecode.com/svn-history/r111/trunk/)

* Version: r111
* License: MIT license


## [protobuf-java](https://code.google.com/p/protobuf/)

* Version: 2.5.0
* License: New BSD License


## [gtest](https://code.google.com/p/googletest/)

* Version: 1.7.0
* License: New BSD License


## [gson](https://code.google.com/p/google-gson/)

* Version: 2.2.4
* License: Apache License 2.0


## [guava](https://code.google.com/p/guava-libraries/)

* Version: 18.0
* License: Apache License 2.0


## [javac](https://github.com/google/error-prone-javac)

* Version: 1.9.0-dev-r2973-2
* License: GNU GPL v2 with Classpath exception


## [jarjar](https://code.google.com/p/jarjar/)

* Version: 1.4
* License: Apache License 2.0


## [jgit](https://eclipse.org/jgit/)

* Version: 4.0.1.201506240215-r
* License: Eclipse Distribution License 1.0


## [joda_time](http://www.joda.org/joda-time/)

* Version: 2.3
* License: Apache License 2.0


## [jsr250](https://repository.apache.org/content/repositories/orgapachetomcat-002)

* Version: 8.0.5
* License: Apache License 2.0


## [jsch](http://www.jcraft.com/jsch/)

* Version: 0.1.51
* License: BSD-style license


## [jsr305](https://code.google.com/p/jsr-305/)

* Version: latest as of 2014-05-07
* License: New BSD License


## [jsr330_inject](https://code.google.com/p/atinject/)

* Version: 1
* License: Apache License 2.0


## [jquery](http://jquery.com)

* Version: v2_0_3
* License: MIT license


## [maven](http://mvnrepository.com/artifact/org.apache.maven)

* Version: 3.3.3
* License: Apache License 2.0


## [maven_model](http://maven.apache.org/ref/3.2.3/maven-model/)

* Version: 3.2.3
* License: Apache License 2.0


## [plexus_component_annotations](http://mvnrepository.com/artifact/org.codehaus.plexus/plexus-component-annotations)

* Version: 1.6
* License: Apache License 2.0

## [plexus_interpolation](http://mvnrepository.com/artifact/org.codehaus.plexus/plexus-interpolation)

* Version: 1.22
* License: Apache License 2.0


## [plexus_utils](http://mvnrepository.com/artifact/org.codehaus.plexus/plexus-utils)

* Version: 3.0.21
* License: Apache License 2.0


## [slf4j](http://www.slf4j.org/)

* Version: 1.7.7
* License: MIT license


# Testing

## [hamcrest](https://code.google.com/p/hamcrest/)

* Version: 1.3
* License: New BSD License


## [iossim](https://code.google.com/p/chromium/codesearch#chromium/src/testing/iossim/)

* Version: latest as of 2015-10-09
* License: 3-clause BSD


## [junit](http://junit.org/)

* Version: 4.11
* License: Eclipse Public License Version 1.0


## [truth](http://google.github.io/truth/)

* Version: 0.27
* License: Apache License 2.0
