Difference between revisions of "Third Party Libraries"
(→Kakadu) |
|||
Line 1: | Line 1: | ||
The following table lists libraries and other third party dependencies used in constructing the Second Life Viewer. | |||
Most of these (all the open source ones) should be available as prebuilds packaged by and for use with [[Autobuild]]. | |||
Anywhere that the following disagrees with the autobuild.xml file in the viewer source, that file is correct. | |||
:''The license information here is incomplete... I am still verifying and updating the license information.'' | |||
: ''--- [[User:Oz Linden|Oz Linden]]'' | |||
| | |||
{| border="1" cellpadding="3" | |||
|- | |- style="background:#ffdead;" | ||
! | !Library | ||
!Repository | |||
!License | |||
!Upstream Home | |||
!Description | |||
|- | |||
|- | |apr_suite | ||
|[https://bitbucket.org/lindenlab/3p-apr 3p-apr] | |||
|[https://bitbucket.org/lindenlab/3p-apr/src/tip/apr/LICENSE Apache License] | |||
|http://apr.apache.org/ | |||
|"A set of C functions which provide a portable and consistent interface into operating system - or simply widely useful - functionality. We primarily use it for threading and socket i/o. This is actually three packages, apr, apr-util and apr-iconv." | |||
|- | |||
|ares | |||
|[https://bitbucket.org/lindenlab/3p-ares 3p-ares] | |||
|[https://bitbucket.org/lindenlab/3p-ares/src/tip/c-ares-license.txt MIT License] | |||
| http://daniel.haxx.se/projects/c-ares/ | |||
|Performs DNS requests and name resolves asynchronously. Used with libcurl to keep all HTTP operations async. | |||
|- | |||
|boost | |||
|[https://bitbucket.org/lindenlab/3p-boost 3p-boost] | |||
|[https://bitbucket.org/lindenlab/3p-boost/src/tip/boost_1_45_0/LICENSE_1_0.txt Boost License] | |||
|http://www.boost.org/ | |||
|A set of portable C++ libraries which provide a wide set of functionality. Used primarily for tokenization. | |||
|- | |||
|db | |||
|[https://bitbucket.org/lindenlab/3p-dbus-glib 3p-dbus-glib] | |||
|[https://bitbucket.org/lindenlab/3p-dbus-glib/src/tip/dbus-glib-0.76/COPYING Academic Free License version 2.1]<sup>[[#MultiLicense|M]]</sup> | |||
|http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html | |||
|Berkeley DB library linked to linux viewer. | |||
|- | |||
|curl | |||
|[https://bitbucket.org/lindenlab/3p-curl 3p-curl] | |||
|''[https://bitbucket.org/lindenlab/3p-curl/src/tip/curl-7.21.1/COPYING BSD-style]''<sup>[[#BSDstyle|B]]</sup> | |||
| http://curl.haxx.se/libcurl/ | |||
|Handles moving data across the net in many different protocols. Used to GET/POST/PUT/DELETE web resources. | |||
|- | |||
|dbusglib | |||
|[https://bitbucket.org/lindenlab/3p-dbus-glib 3p-dbus-glib] | |||
| | |||
| | |||
|linux only dbus-glib headers | |||
|- | |||
|elfio (cruft) | |||
|[https://bitbucket.org/lindenlab/3p-elfio 3p-elfio] | |||
|Open | |||
|http://sourceforge.net/projects/elfio/ | |||
|Enhanced stacktrace information on the Linux client. | |Enhanced stacktrace information on the Linux client. | ||
|| | |- | ||
|expat | |||
|[https://bitbucket.org/lindenlab/3p-expat 3p-expat] | |||
| | |Open | ||
|http://expat.sourceforge.net/ | |||
|XML parser. | |XML parser. | ||
|| | |- | ||
|fmod | |||
|[https://hg.lindenlab.com/lindenlab/3p-fmod-private 3p-fmod-private]<sup>[[#PrivateRepo|LL]]</sup> | |||
| | |Commercial | ||
|http://www.fmod.org | |||
|Audio engine and mp3 stream decoder | |Audio engine and mp3 stream decoder | ||
|| | |- | ||
|| | |fontconfig | ||
|[https://bitbucket.org/lindenlab/3p-fontconfig 3p-fontconfig] | |||
|Open | |||
| | | | ||
| | |||
|- | |||
|freeglut | |||
|[https://bitbucket.org/lindenlab/3p-freeglut 3p-freeglut] | |||
|Open | |||
| | |||
| | |||
|- | |||
|freetype | |||
|[https://bitbucket.org/lindenlab/3p-freetype 3p-freetype] | |||
|Open | |||
|http://www.freetype.org/ | |||
|Font engine. | |Font engine. | ||
|| | |- | ||
|gl | |||
|[https://bitbucket.org/lindenlab/3p-gl 3p-gl] | |||
|- | | | ||
| | |||
| | | | ||
|| | |- | ||
|glh_linear | |||
|[https://bitbucket.org/lindenlab/3p-glh_linear 3p-glh_linear] | |||
| | |||
|- | | | ||
|nVidia NVParse SDK: platform-independent C++ Apple OpenGL helper library | |||
| | |- | ||
|| | |glib | ||
|[https://bitbucket.org/lindenlab/3p-glib 3p-glib] | |||
|- | |Open | ||
|http://www.gtk.org/ | |||
| | | | ||
|| | |- | ||
|glui | |||
|[https://bitbucket.org/lindenlab/3p-glui 3p-glui] | |||
| | | | ||
| | |||
| | | | ||
|| | |- | ||
|google_breakpad | |||
|[https://bitbucket.org/lindenlab/3p-google-breakpad 3p-google-breakpad] | |||
| | |Open | ||
| | |||
| | |||
|- | |||
|google_mock | |||
|[https://bitbucket.org/lindenlab/3p-google-mock 3p-google-mock] | |||
|Open | |||
| | |||
|Google C++ Mocking Framework (or Google Mock for short) is a library for writing and using C++ mock classes. | |||
|- | |||
|google_perftools | |||
|[https://bitbucket.org/lindenlab/3p-google-perftools 3p-google-perftools] | |||
|Open | |||
| | |||
|"Heap performance and validity checking tools from google. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler." | |||
|- | |||
|gstreamer | |||
|[https://bitbucket.org/lindenlab/3p-gstreamer 3p-gstreamer] | |||
|Open | |||
|http://gstreamer.freedesktop.org | |||
| | |||
|- | |||
|gtk_atk_pango_glib | |||
|[https://bitbucket.org/lindenlab/3p-gtk-atk-pango-glib 3p-gtk-atk-pango-glib] | |||
|Open | |||
| | |||
|Libraries associated with GTK for gui features. atk: interfaces for accessibility; glib: low-level core functionality for using GTK+ and GNOME; pango: layout/rendering of text w/ emphasis on internationalization. | |||
|- | |||
|havok | |||
| | |||
|Commercial | |||
| | |||
| | |||
|- | |||
|jpeglib | |||
|[https://bitbucket.org/lindenlab/3p-jpeglib 3p-jpeglib] | |||
|Open | |||
|http://www.ijg.org/ | |||
|JPEG decoder library. | |JPEG decoder library. | ||
|| | |- | ||
|jsoncpp | |||
|[https://bitbucket.org/lindenlab/3p-jsoncpp 3p-jsoncpp] | |||
| | |Open | ||
| | |||
|an implementation of a JSON (http://json.org) reader and writer in C++. | |||
|- | |||
|kdu | |||
|[https://hg.lindenlab.com/lindenlab/3p-kdu-private 3p-kdu-private]<sup>[[#PrivateRepo|LL]]</sup> | |||
|Commercial | |||
|http://www.kakadusoftware.com | |||
|Kakadu (KDU) JPEG-2000 decoder library. | |Kakadu (KDU) JPEG-2000 decoder library. | ||
| | |- | ||
|libmono | |||
|[https://bitbucket.org/lindenlab/3p-libmono 3p-libmono] | |||
| | |Open | ||
|talk to kelly | |||
| | |An open source implementation of the ECMA/ISO ECMA-334 Common Language Infrstructure (CLI) international standard | ||
|| | |- | ||
|libpng | |||
|[https://bitbucket.org/lindenlab/3p-libpng 3p-libpng] | |||
| | |Open | ||
| http://www.libpng.org/pub/png/libpng.html | |||
|PNG image library. | |PNG image library. | ||
|| [ | |- | ||
|libuuid | |||
|[https://bitbucket.org/lindenlab/3p-libuuid 3p-libuuid] | |||
| | |Open | ||
|http://e2fsprogs.sourceforge.net/ | |||
|Generates UUIDs under Linux. Originally a part of the ext2fs filesystem. Also see lluuid.cpp for all platforms. | |Generates UUIDs under Linux. Originally a part of the ext2fs filesystem. Also see lluuid.cpp for all platforms. | ||
|| | |- | ||
|libxml | |||
|[https://bitbucket.org/lindenlab/3p-libxml 3p-libxml] | |||
| | | | ||
| | |||
|llMozLib handles rendering HTML in the viewer via an embedded Gecko ( | | | ||
|| | |- | ||
|llmozlib | |||
|n/a | |||
| | |Open | ||
|http://ubrowser.com/llmozlib.php | |||
|llMozLib handles rendering HTML in the viewer via an embedded Gecko (http://www.mozilla.org/developer/ Mozilla) engine. | |||
|- | |||
|llqtwebkit | |||
|[https://bitbucket.org/lindenlab/3p-qt (llqtwebkit named branch) 3p-qt (llqtwebkit named branch)] | |||
|Open | |||
| | |||
| | |||
|- | |||
|mesa | |||
|[https://bitbucket.org/lindenlab/3p-mesa 3p-mesa] | |||
|? | |||
|http://www.mesa3d.org/ | |||
|Provides the required OpenGL headers under Linux. | |Provides the required OpenGL headers under Linux. | ||
|| | |- | ||
|mysql | |||
|[https://bitbucket.org/lindenlab/3p-mysql 3p-mysql] | |||
|Open | |||
| | |||
| | |||
|- | |||
|mysqlclient | |||
|[https://bitbucket.org/lindenlab/3p-mysqlclient 3p-mysqlclient] | |||
|Open | |||
| | |||
| | |||
|- | |||
|ndofdev | |||
|[https://bitbucket.org/lindenlab/3p-libndofdev 3p-libndofdev] | |||
|Open | |||
| | |||
|Provides joystick driver support (mac and win) for the 3DConnexion SpaceNavigator. | |||
This is not http://3dconnexion.com/service/software-developer.html , but probably should be. | |||
| | |- | ||
|ogg_vorbis | |||
|[https://bitbucket.org/lindenlab/3p-ogvorbis 3p-ogvorbis] | |||
|Open | |||
|http://xiph.org/ogg/ | |||
|Audio control. | |Audio control. | ||
| | |- | ||
|openal | |||
|[https://bitbucket.org/lindenlab/3p-openal 3p-openal] | |||
| | |Open | ||
|http://connect.creativelabs.com/openal/default.aspx | |||
| | | | ||
|| | |- | ||
|openjpeg | |||
|[https://bitbucket.org/lindenlab/3p-openjpeg 3p-openjpeg] | |||
| | |Open | ||
|http://www.openjpeg.org/ | |||
|An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release | |An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release | ||
|| | |- | ||
|openssl | |||
|[https://bitbucket.org/lindenlab/3p-openssl 3p-openssl] | |||
| | |Open | ||
|http://www.openssl.org/ | |||
|Provides encryption for sensitive actions such as user login | |Provides encryption for sensitive actions such as user login | ||
|| | |- | ||
|| | |pth | ||
|[https://bitbucket.org/lindenlab/3p-pth 3p-pth] | |||
| | |||
| | |http://www.gnu.org/software/pth/ | ||
|Provides 10.4 support for the boost::coroutine library | |||
|Used to play in-world video clips on a prim. See | |- | ||
|| | |quicktime | ||
| | |[https://bitbucket.org/lindenlab/3p-quicktime 3p-quicktime] | ||
| | |||
|http://developer.apple.com/quicktime/ | |||
| | |Used to play in-world video clips on a prim. See Movie_System | ||
|- | |||
|sdl | |||
|https://bitbucket.ort/lindenlab/3p-sdl | |||
| | |||
|http://www.libsdl.org/index.php | |||
|The Simple DirectMedia Layer libraries are used for handling input and basic window/GL setup on the Linux client. | |The Simple DirectMedia Layer libraries are used for handling input and basic window/GL setup on the Linux client. | ||
| | |- | ||
|slvoice | |||
| | |||
| | |Commercial | ||
| | |||
| | |This is the Vivox provided executable (renamed SLVoice) | ||
| | |- | ||
|| | |tut | ||
|[https://bitbucket.org/lindenlab/3p-tut 3p-tut] | |||
|Open | |||
| | |http://tut-framework.sourceforge.net/ | ||
|Unit test framework based on the use of c++ meta template programming. Used to test LL libraries. | |Unit test framework based on the use of c++ meta template programming. Used to test LL libraries. | ||
| | |- | ||
|unistd | |||
|[https://bitbucket.org/lindenlab/3p-unistd 3p-unistd] | |||
| | | | ||
| | |||
| | | | ||
|| | |- | ||
|xmlrpc_epi | |||
|[https://bitbucket.org/lindenlab/3p-xmlrpc-epi 3p-xmlrpc-epi] | |||
| | |Open | ||
|http://xmlrpc-epi.sourceforge.net/ | |||
|Controls the XML-RPC protocol. | |Controls the XML-RPC protocol. | ||
|| | |- | ||
|zlib | |||
|[https://bitbucket.org/lindenlab/3p-zlib 3p-zlib] | |||
| | |Open | ||
|http://www.zlib.net/ | |||
|zlib is a lossless data-compression library which is used for a variety of network i/o and file compression. | |zlib is a lossless data-compression library which is used for a variety of network i/o and file compression. | ||
|} | |} | ||
;<span id="PrivateRepo">LL</span> | |||
:This repository is internal to Linden Lab. | |||
;<span id="MultiLicense">M</span> | |||
:This library is available under multiple licenses; the license shown is the one under which the Second Life Viewer Project is using it. See sources for details of alternatives. | |||
;<span id="BSDstyle">B</span> | |||
:This library is available under a license substantially similar to the traditional BSD license. See sources for details. | |||
= Redistribution = | = Redistribution = |
Revision as of 10:28, 28 March 2011
The following table lists libraries and other third party dependencies used in constructing the Second Life Viewer.
Most of these (all the open source ones) should be available as prebuilds packaged by and for use with Autobuild.
Anywhere that the following disagrees with the autobuild.xml file in the viewer source, that file is correct.
- The license information here is incomplete... I am still verifying and updating the license information.
- --- Oz Linden
Library | Repository | License | Upstream Home | Description |
---|---|---|---|---|
apr_suite | 3p-apr | Apache License | http://apr.apache.org/ | "A set of C functions which provide a portable and consistent interface into operating system - or simply widely useful - functionality. We primarily use it for threading and socket i/o. This is actually three packages, apr, apr-util and apr-iconv." |
ares | 3p-ares | MIT License | http://daniel.haxx.se/projects/c-ares/ | Performs DNS requests and name resolves asynchronously. Used with libcurl to keep all HTTP operations async. |
boost | 3p-boost | Boost License | http://www.boost.org/ | A set of portable C++ libraries which provide a wide set of functionality. Used primarily for tokenization. |
db | 3p-dbus-glib | Academic Free License version 2.1M | http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html | Berkeley DB library linked to linux viewer. |
curl | 3p-curl | BSD-styleB | http://curl.haxx.se/libcurl/ | Handles moving data across the net in many different protocols. Used to GET/POST/PUT/DELETE web resources. |
dbusglib | 3p-dbus-glib | linux only dbus-glib headers | ||
elfio (cruft) | 3p-elfio | Open | http://sourceforge.net/projects/elfio/ | Enhanced stacktrace information on the Linux client. |
expat | 3p-expat | Open | http://expat.sourceforge.net/ | XML parser. |
fmod | 3p-fmod-privateLL | Commercial | http://www.fmod.org | Audio engine and mp3 stream decoder |
fontconfig | 3p-fontconfig | Open | ||
freeglut | 3p-freeglut | Open | ||
freetype | 3p-freetype | Open | http://www.freetype.org/ | Font engine. |
gl | 3p-gl | |||
glh_linear | 3p-glh_linear | nVidia NVParse SDK: platform-independent C++ Apple OpenGL helper library | ||
glib | 3p-glib | Open | http://www.gtk.org/ | |
glui | 3p-glui | |||
google_breakpad | 3p-google-breakpad | Open | ||
google_mock | 3p-google-mock | Open | Google C++ Mocking Framework (or Google Mock for short) is a library for writing and using C++ mock classes. | |
google_perftools | 3p-google-perftools | Open | "Heap performance and validity checking tools from google. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler." | |
gstreamer | 3p-gstreamer | Open | http://gstreamer.freedesktop.org | |
gtk_atk_pango_glib | 3p-gtk-atk-pango-glib | Open | Libraries associated with GTK for gui features. atk: interfaces for accessibility; glib: low-level core functionality for using GTK+ and GNOME; pango: layout/rendering of text w/ emphasis on internationalization. | |
havok | Commercial | |||
jpeglib | 3p-jpeglib | Open | http://www.ijg.org/ | JPEG decoder library. |
jsoncpp | 3p-jsoncpp | Open | an implementation of a JSON (http://json.org) reader and writer in C++. | |
kdu | 3p-kdu-privateLL | Commercial | http://www.kakadusoftware.com | Kakadu (KDU) JPEG-2000 decoder library. |
libmono | 3p-libmono | Open | talk to kelly | An open source implementation of the ECMA/ISO ECMA-334 Common Language Infrstructure (CLI) international standard |
libpng | 3p-libpng | Open | http://www.libpng.org/pub/png/libpng.html | PNG image library. |
libuuid | 3p-libuuid | Open | http://e2fsprogs.sourceforge.net/ | Generates UUIDs under Linux. Originally a part of the ext2fs filesystem. Also see lluuid.cpp for all platforms. |
libxml | 3p-libxml | |||
llmozlib | n/a | Open | http://ubrowser.com/llmozlib.php | llMozLib handles rendering HTML in the viewer via an embedded Gecko (http://www.mozilla.org/developer/ Mozilla) engine. |
llqtwebkit | (llqtwebkit named branch) 3p-qt (llqtwebkit named branch) | Open | ||
mesa | 3p-mesa | ? | http://www.mesa3d.org/ | Provides the required OpenGL headers under Linux. |
mysql | 3p-mysql | Open | ||
mysqlclient | 3p-mysqlclient | Open | ||
ndofdev | 3p-libndofdev | Open | Provides joystick driver support (mac and win) for the 3DConnexion SpaceNavigator.
This is not http://3dconnexion.com/service/software-developer.html , but probably should be. | |
ogg_vorbis | 3p-ogvorbis | Open | http://xiph.org/ogg/ | Audio control. |
openal | 3p-openal | Open | http://connect.creativelabs.com/openal/default.aspx | |
openjpeg | 3p-openjpeg | Open | http://www.openjpeg.org/ | An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release |
openssl | 3p-openssl | Open | http://www.openssl.org/ | Provides encryption for sensitive actions such as user login |
pth | 3p-pth | http://www.gnu.org/software/pth/ | Provides 10.4 support for the boost::coroutine library | |
quicktime | 3p-quicktime | http://developer.apple.com/quicktime/ | Used to play in-world video clips on a prim. See Movie_System | |
sdl | https://bitbucket.ort/lindenlab/3p-sdl | http://www.libsdl.org/index.php | The Simple DirectMedia Layer libraries are used for handling input and basic window/GL setup on the Linux client. | |
slvoice | Commercial | This is the Vivox provided executable (renamed SLVoice) | ||
tut | 3p-tut | Open | http://tut-framework.sourceforge.net/ | Unit test framework based on the use of c++ meta template programming. Used to test LL libraries. |
unistd | 3p-unistd | |||
xmlrpc_epi | 3p-xmlrpc-epi | Open | http://xmlrpc-epi.sourceforge.net/ | Controls the XML-RPC protocol. |
zlib | 3p-zlib | Open | http://www.zlib.net/ | zlib is a lossless data-compression library which is used for a variety of network i/o and file compression. |
- LL
- This repository is internal to Linden Lab.
- M
- This library is available under multiple licenses; the license shown is the one under which the Second Life Viewer Project is using it. See sources for details of alternatives.
- B
- This library is available under a license substantially similar to the traditional BSD license. See sources for details.
Redistribution
Some files in the SL installation can't be freely redistributed. This means it's not possible to simply package and offer for download a modified viewer: some files must not be redistributed.
This page documents the licenses and redistribution requirements of various files used by the viewer.
Windows
These are the files that need to be shipped with the Windows version
Runtime
Microsoft components. It's not yet known whether they're redistributable.
- dbghelp.dll: Redistributable
- msvcp71.dll: C++ Runtime Library, redistributable -viewer now using msvcp80.dll when compiled with VC2005
- msvcr71.dll: C Runtime Library, Redistributable -viewer now using msvcr80.dll when compiled with VC2005
FONTS
Meta font software files
From the Readme.txt
The Meta font software files contained in this folder are the copyrighted property of FSI FontShop International ("FSI") and are licensed by FSI solely for use by Linden Research, Inc. and by residents or users of Second Life in the Second Life environment, subject to the Second Life Terms of Service. These Meta font software files may not be copied by residents or developers of Second Life or used by them for any other purpose whatsoever.
- MtBkLfRg.ttf
- MtBdLfRg.ttf
NOTE: These files must be replaced for an true opensource build
FMOD
FMOD sound library. Free for non-commercial projects. A commercial license will be needed for a commercial viewer.
From the README in the package:
The fmod.dll file may be redistributed without the authors prior permission, and must remain unmodified. The use of dll 'static linking' tools that aim to hide the fmod library are forbidden.
Mozilla
The Gecko engine is MPL/GPL/LGPL licensed, which makes it redistributable.
- app_settings/mozilla
- freebl3.dll
- gksvggdiplus.dll
- js3250.dll
- nspr4.dll
- nss3.dll
- nssckbi.dll
- plc4.dll,
- plds4.dll
- smime3.dll
- softokn3.dll
- ssl3.dll
- xpcom.dll
- xul.dll
Kakadu
JPEG2000 library. Not redistributable. OpenJPEG is an alternative library that is redistributable
- llkdu.dll
Starting with Viewer 2.5, llkdu.dll has been phased out. The libkdu.a and kdu.lib are still not redistributable but can be built from the toolkit provided by Kakadu under a license. How to build a viewer with such a library is documented in KDU Implementation.
OpenSSL
SSL library. Redistributable.
- libeay32.dll
- ssleay32.dll
Vivox
Vivox is the component that provides the voice functionality.
- SLVoice.exe: Voice daemon. Not redistributable
- SLVoiceAgent: Exact purpose unknown. Not redistributable
- alut.dll: OpenAL, by Creative Labs. Redistributable.
- ortp.dll: oRTP project, LGPL. Redistributable.
- srtp.dll: Secure RTP?
- vivoxsdk.dll: Vivox Communications API. Not redistributable
- wrap_oal.dll: OpenAL32 by Creative Labs. Redistributable.
Unknown Libraries
The purpose and licensing of these files is not known:
- tntk.dll: Probably Vivox related -see Voice/Technical for other info on ViVox files