Third Party Libraries

From Second Life Wiki
Revision as of 11:25, 10 August 2024 by Signal Linden (talk | contribs) (Major update and clean up --updated all links, purged unused libraries.)
Jump to navigation Jump to search

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.

'Creating a new third party package

List of third party libraries

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."
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.
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.
expat 3p-expat MIT License https://github.com/libexpat/libexpat XML parser.
freetype 3p-freetype Freetype License and Others http://www.freetype.org/ Font engine.
glh_linear 3p-glh_linear nVidia NVParse SDK: platform-independent C++ Apple OpenGL helper library
gstreamer 3p-gstreamer Open http://gstreamer.freedesktop.org
havok Commercial
jpeglib 3p-jpeglib Open http://www.ijg.org/ JPEG decoder library.
kdu 3p-kdu-privateLL Commercial http://www.kakadusoftware.com Kakadu (KDU) JPEG-2000 decoder library.
libpng 3p-libpng Open http://www.libpng.org/pub/png/libpng.html PNG image library.
libxml2 3p-libxml2 MIT License
ndofdev 3p-libndofdev BSD-styleB Provides joystick driver support (mac and win) for the 3DConnexion SpaceNavigator.
ogg_vorbis 3p-ogvorbis BSD-styleB http://xiph.org/ogg/ Audio codec and playback.
openal 3p-openal-soft GPL http://connect.creativelabs.com/openal/default.aspx 3D Spatial audio
openjpeg 3p-openjpeg BSD-styleB http://www.openjpeg.org/ An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release
openssl 3p-openssl Apache License http://www.openssl.org/ Provides encryption for sensitive actions such as user login
sdl 3p-sdl2 zlib License 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 BSD-styleB http://tut-framework.sourceforge.net/ Unit test framework based on the use of c++ meta template programming. Used to test LL libraries.
xmlrpc_epi 3p-xmlrpc-epi Epinions, Inc License http://xmlrpc-epi.sourceforge.net/ XML-RPC protocol utility
zlib-ng 3p-zlib-ng zlib License http://www.zlib.net/ zlib is a lossless data-compression library which is used for a variety of network i/o and file compression.

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

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