diff --git a/LICENSE b/LICENSE
index d645695..90b70c2 100644
--- a/LICENSE
+++ b/LICENSE
@@ -200,3 +200,132 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
+
+--------------------------------------------------
+SOFTWARE DISTRIBUTED WITH THRIFT:
+
+The Apache Thrift software includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+--------------------------------------------------
+The following files are licensed under the MIT License:
+  lib/erl/build/beamver
+  lib/erl/build/buildtargets.mk
+  lib/erl/build/colors.mk
+  lib/erl/build/docs.mk
+  lib/erl/build/mime.types
+  lib/erl/build/otp.mk
+  lib/erl/build/otp_subdir.mk
+  lib/erl/build/raw_test.mk
+  lib/erl/src/Makefile
+
+Please see doc/otp-base-license.txt for the full terms of this license.
+
+
+--------------------------------------------------
+The following files contain some portions of code contributed under
+the Thrift Software License (see doc/old-thrift-license.txt), and relicensed
+under the Apache 2.0 License:
+
+  compiler/cpp/Makefile.am
+  compiler/cpp/src/generate/t_cocoa_generator.cc
+  compiler/cpp/src/generate/t_cpp_generator.cc
+  compiler/cpp/src/generate/t_csharp_generator.cc
+  compiler/cpp/src/generate/t_erl_generator.cc
+  compiler/cpp/src/generate/t_hs_generator.cc
+  compiler/cpp/src/generate/t_java_generator.cc
+  compiler/cpp/src/generate/t_ocaml_generator.cc
+  compiler/cpp/src/generate/t_perl_generator.cc
+  compiler/cpp/src/generate/t_php_generator.cc
+  compiler/cpp/src/generate/t_py_generator.cc
+  compiler/cpp/src/generate/t_rb_generator.cc
+  compiler/cpp/src/generate/t_st_generator.cc
+  compiler/cpp/src/generate/t_xsd_generator.cc
+  compiler/cpp/src/main.cc
+  compiler/cpp/src/parse/t_field.h
+  compiler/cpp/src/parse/t_program.h
+  compiler/cpp/src/platform.h
+  compiler/cpp/src/thriftl.ll
+  compiler/cpp/src/thrifty.yy
+  lib/csharp/src/Protocol/TBinaryProtocol.cs
+  lib/csharp/src/Protocol/TField.cs
+  lib/csharp/src/Protocol/TList.cs
+  lib/csharp/src/Protocol/TMap.cs
+  lib/csharp/src/Protocol/TMessage.cs
+  lib/csharp/src/Protocol/TMessageType.cs
+  lib/csharp/src/Protocol/TProtocol.cs
+  lib/csharp/src/Protocol/TProtocolException.cs
+  lib/csharp/src/Protocol/TProtocolFactory.cs
+  lib/csharp/src/Protocol/TProtocolUtil.cs
+  lib/csharp/src/Protocol/TSet.cs
+  lib/csharp/src/Protocol/TStruct.cs
+  lib/csharp/src/Protocol/TType.cs
+  lib/csharp/src/Server/TServer.cs
+  lib/csharp/src/Server/TSimpleServer.cs
+  lib/csharp/src/Server/TThreadPoolServer.cs
+  lib/csharp/src/TApplicationException.cs
+  lib/csharp/src/Thrift.csproj
+  lib/csharp/src/Thrift.sln
+  lib/csharp/src/TProcessor.cs
+  lib/csharp/src/Transport/TServerSocket.cs
+  lib/csharp/src/Transport/TServerTransport.cs
+  lib/csharp/src/Transport/TSocket.cs
+  lib/csharp/src/Transport/TStreamTransport.cs
+  lib/csharp/src/Transport/TTransport.cs
+  lib/csharp/src/Transport/TTransportException.cs
+  lib/csharp/src/Transport/TTransportFactory.cs
+  lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs
+  lib/csharp/ThriftMSBuildTask/ThriftBuild.cs
+  lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj
+  lib/rb/lib/thrift.rb
+  lib/st/README
+  lib/st/thrift.st
+  test/OptionalRequiredTest.cpp
+  test/OptionalRequiredTest.thrift
+  test/ThriftTest.thrift
+
+--------------------------------------------------
+For the aclocal/ax_boost_base.m4 and contrib/fb303/aclocal/ax_boost_base.m4 components:
+
+#   Copyright (c) 2007 Thomas Porschberg <thomas@randspringer.de>
+#
+#   Copying and distribution of this file, with or without
+#   modification, are permitted in any medium without royalty provided
+#   the copyright notice and this notice are preserved.
+
+--------------------------------------------------
+For the compiler/cpp/src/md5.[ch] components:
+
+/*
+  Copyright (C) 1999, 2000, 2002 Aladdin Enterprises.  All rights reserved.
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+  L. Peter Deutsch
+  ghost@aladdin.com
+
+ */
+
+---------------------------------------------------
+For the lib/rb/setup.rb: Copyright (c) 2000-2005 Minero Aoki,
+lib/ocaml/OCamlMakefile and lib/ocaml/README-OCamlMakefile components:
+     Copyright (C) 1999 - 2007  Markus Mottl
+
+Licensed under the terms of the GNU Lesser General Public License 2.1
+(see doc/lgpl-2.1.txt for the full terms of this license)
