diff options
Diffstat (limited to 'thirdparty/README.md')
-rw-r--r-- | thirdparty/README.md | 245 |
1 files changed, 173 insertions, 72 deletions
diff --git a/thirdparty/README.md b/thirdparty/README.md index 27cfe41238..5b24d2b96d 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -1,34 +1,50 @@ # Third party libraries +Please keep categories (`##` level) listed alphabetically and matching their +respective folder names. Use two empty lines to separate categories for +readability. +Subcategories (`###` level) where needed are separated by a single empty line. + ## assimp - Upstream: http://github.com/assimp/assimp -- Version: git (308db73d0b3c2d1870cd3e465eaa283692a4cf23) +- Version: git (308db73d0b3c2d1870cd3e465eaa283692a4cf23, 2019) - License: BSD-3-Clause +Files extracted from upstream source: -## b2d_convexdecomp +- Run `cmake .` in root folder to generate files +- `code/{CApi,Common,FBX,Material,PostProcessing}/` +- `contrib/utf8cpp/source/` +- `include/` +- `revision.h` +- `CREDITS` and `LICENSE` files +- `rm -f code/Common/ZipArchiveIOSystem.cpp include/assimp/ZipArchiveIOSystem.h + include/assimp/irrXMLWrapper.h` -- Upstream: https://github.com/erincatto/Box2D/tree/master/Contributions/Utilities/ConvexDecomposition -- Version: git (25615e0, 2015) with modifications -- License: zlib -The files were adapted to Godot by removing the dependency on b2Math (replacing -it by b2Glue.h) and commenting out some verbose printf calls. -Upstream code has not changed in 10 years, no need to keep track of changes. +## basis_universal -Important: Some files have Godot-made changes. -They are marked with `// -- GODOT start --` and `// -- GODOT end --` -comments. +- Upstream: https://github.com/BinomialLLC/basis_universal +- Version: git (895ee8ee7e04f22267f8d16d46de04d5a01d63ac, 2020) +- License: Apache 2.0 + +Files extracted from upstream source: + +- `.cpp` and `.h` files in root folder except for `basisu_tool.cpp` (contains `main` and can cause link error) +- `.cpp`, `.h` and `.inc` files in `transcoder/`, keeping folder structure +- `LICENSE` ## bullet - Upstream: https://github.com/bulletphysics/bullet3 -- Version: git (5ec8339, 2019) +- Version: git pre-2.90 (cd8cf7521cbb8b7808126a6adebd47bb83ea166a, 2020) - License: zlib +Important: Synced with a pre-release version of bullet 2.90 from the master branch. + Files extracted from upstream source: - src/* apart from CMakeLists.txt and premake4.lua files @@ -38,7 +54,7 @@ Files extracted from upstream source: ## certs - Upstream: Mozilla, via https://apps.fedoraproject.org/packages/ca-certificates -- Version: 2018.2.26 +- Version: 2018.2.26 (2018) - License: MPL 2.0 File extracted from a recent Fedora install: @@ -50,7 +66,7 @@ as it's generated on the user's system.) ## cvtt - Upstream: https://github.com/elasota/cvtt -- Version: 1.0.0-beta4 +- Version: 1.0.0-beta4 (2018) - License: MIT Files extracted from upstream source: @@ -61,7 +77,7 @@ Files extracted from upstream source: ## enet - Upstream: http://enet.bespin.org -- Version: 1.3.13 +- Version: 1.3.15 (224f31101fc60939c02f6bbe8e8fc810a7db306b, 2020) - License: MIT Files extracted from upstream source: @@ -71,19 +87,21 @@ Files extracted from upstream source: - LICENSE file Important: enet.h, host.c, protocol.c have been slightly modified -to be usable by godot socket implementation and allow IPv6. +to be usable by godot socket implementation and allow IPv6 and DTLS. +Apply the patches in the `patches/` folder when syncing on newer upstream +commits. + Two files (godot.cpp and enet/godot.h) have been added to provide enet socket implementation using Godot classes. + It is still possible to build against a system wide ENet but doing so -will limit it's functionality to IPv4 only. -Check the diff of enet.h, protocol.c, and host.c with the 1.3.13 -tarball before the next update. +will limit its functionality to IPv4 only. ## etc2comp - Upstream: https://github.com/google/etc2comp -- Version: git (9cd0f9c, 2017) +- Version: git (9cd0f9cae0f32338943699bb418107db61bb66f2, 2017) - License: Apache 2.0 Files extracted from upstream source: @@ -101,7 +119,7 @@ comments. ### Noto Sans - Upstream: https://github.com/googlei18n/noto-fonts -- Version: 1.06 +- Version: 1.06 (2017) - License: OFL-1.1 Use UI font variant if available, because it has tight vertical metrics and good for UI. @@ -109,7 +127,7 @@ Use UI font variant if available, because it has tight vertical metrics and good ### Hack Regular - Upstream: https://github.com/source-foundry/Hack -- Version: 3.003 +- Version: 3.003 (2018) - License: MIT + Bitstream Vera License ### DroidSans*.ttf @@ -122,7 +140,7 @@ Use UI font variant if available, because it has tight vertical metrics and good ## freetype - Upstream: https://www.freetype.org -- Version: 2.10.1 +- Version: 2.10.2 (2020) - License: FreeType License (BSD-like) Files extracted from upstream source: @@ -135,7 +153,7 @@ Files extracted from upstream source: ## glad - Upstream: https://github.com/Dav1dde/glad -- Version: 0.1.33 +- Version: 0.1.33 (2019) - License: MIT The files we package are automatically generated. @@ -143,21 +161,41 @@ See the header of glad.c for instructions on how to generate them for the GLES version Godot targets. +## glslang + +- Upstream: https://github.com/KhronosGroup/glslang +- Version: git (4fc7a33910fb8e40b970d160e1b38ab3f67fe0f3, 2020) +- License: glslang + +Version should be kept in sync with the one of the used Vulkan SDK (see `vulkan` +section). Check Vulkan-ValidationLayers at the matching SDK tag for the known +good glslang commit: https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json + +Files extracted from upstream source: + +- `glslang`, `OGLCompilersDLL`, `SPIRV` +- `LICENSE.txt` +- Unnecessary files like `CMakeLists.txt`, `revision.template` and + `updateGrammar` removed. + +Patches in the `patches` directory should be re-applied after updates. + + ## jpeg-compressor - Upstream: https://github.com/richgel999/jpeg-compressor -- Version: 1.04 +- Version: 2.00 (aeb7d3b463aa8228b87a28013c15ee50a7e6fcf3, 2020) - License: Public domain Files extracted from upstream source: -- `jpgd.{c,h}` +- `jpgd*.{c,h}` ## libogg - Upstream: https://www.xiph.org/ogg -- Version: git (c8fca6b, 2019) +- Version: git (c8fca6b4a02d695b1ceea39b330d4406001c03ed, 2019) - License: BSD-3-Clause Files extracted from upstream source: @@ -170,7 +208,7 @@ Files extracted from upstream source: ## libpng - Upstream: http://libpng.org/pub/png/libpng.html -- Version: 1.6.37 +- Version: 1.6.37 (2019) - License: libpng/zlib Files extracted from upstream source: @@ -185,7 +223,7 @@ Files extracted from upstream source: ## libsimplewebm - Upstream: https://github.com/zaps166/libsimplewebm -- Version: git (fe57fd3, 2019) +- Version: git (fe57fd3cfe6c0af4c6af110b1f84a90cf191d943, 2019) - License: MIT (main), BSD-3-Clause (libwebm) This contains libwebm, but the version in use is updated from the one used by libsimplewebm, @@ -204,7 +242,7 @@ comments. ## libtheora - Upstream: https://www.theora.org -- Version: 1.1.1 +- Version: 1.1.1 (2010) - License: BSD-3-Clause Files extracted from upstream source: @@ -220,7 +258,7 @@ on top of the 1.1.1 source (not included in any stable release yet). ## libvorbis - Upstream: https://www.xiph.org/vorbis -- Version: 1.3.6 +- Version: 1.3.6 (2018) - License: BSD-3-Clause Files extracted from upstream source: @@ -233,7 +271,7 @@ Files extracted from upstream source: ## libvpx - Upstream: https://chromium.googlesource.com/webm/libvpx/ -- Version: 1.6.0 +- Version: 1.6.0 (2016) - License: BSD-3-Clause Files extracted from upstream source: @@ -250,7 +288,7 @@ from the Android NDK r18. ## libwebp - Upstream: https://chromium.googlesource.com/webm/libwebp/ -- Version: 1.0.3 +- Version: 1.1.0 (2020) - License: BSD-3-Clause Files extracted from upstream source: @@ -266,18 +304,19 @@ changes are marked with `// -- GODOT --` comments. ## mbedtls - Upstream: https://tls.mbed.org/ -- Version: 2.16.3 +- Version: 2.16.6 (2020) - License: Apache 2.0 File extracted from upstream release tarball (`-apache.tgz` variant): + - All `*.h` from `include/mbedtls/` to `thirdparty/mbedtls/include/mbedtls/` - All `*.c` from `library/` to `thirdparty/mbedtls/library/` - LICENSE and apache-2.0.txt files - Applied the patch in `thirdparty/mbedtls/patches/1453.diff` (PR 1453). Soon to be merged upstream. Check it out at next update. -- Applied the patch in `thirdparty/mbedtls/patches/padlock.diff`. This disables VIA - padlock support which defines a symbol `unsupported` which clashes with - a symbol in libwebsockets. +- Applied the patch in `thirdparty/mbedtls/patches/padlock.diff`. This disables + VIA padlock support which defines a symbol `unsupported` which clashes with + a pre-defined symbol. - Added 2 files `godot_core_mbedtls_platform.{c,h}` providing configuration for light bundling with core. @@ -285,7 +324,7 @@ File extracted from upstream release tarball (`-apache.tgz` variant): ## miniupnpc - Upstream: https://github.com/miniupnp/miniupnp/tree/master/miniupnpc -- Version: git (0ab1d67, 2019) +- Version: git (44366328661826603982d1e0d7ebb4062c5f2bfc, 2020) - License: BSD-3-Clause Files extracted from upstream source: @@ -293,6 +332,7 @@ Files extracted from upstream source: - All `*.c` and `*.h` files from `miniupnpc` to `thirdparty/miniupnpc/miniupnpc` - Remove `test*`, `minihttptestserver.c` and `wingenminiupnpcstrings.c` +The patch `windows_fix.diff` is applied to `minissdpc.c` to fix an upstream issue. The only modified file is miniupnpcstrings.h, which was created for Godot (it is usually autogenerated by cmake). @@ -300,7 +340,7 @@ The only modified file is miniupnpcstrings.h, which was created for Godot ## minizip - Upstream: http://www.zlib.net -- Version: 1.2.11 (zlib contrib) +- Version: 1.2.11 (zlib contrib, 2017) - License: zlib Files extracted from the upstream source: @@ -320,11 +360,15 @@ Collection of single-file libraries used in Godot components. - `clipper.{cpp,hpp}` * Upstream: https://sourceforge.net/projects/polyclipping - * Version: 6.4.2 + Godot changes (added optional exceptions handling) + * Version: 6.4.2 (2017) + Godot changes (added optional exceptions handling) * License: BSL-1.0 +- `cubemap_coeffs.h` + * Upstream: https://research.activision.com/publications/archives/fast-filtering-of-reflection-probes + File coeffs_const_8.txt (retrieved April 2020) + * License: MIT - `fastlz.{c,h}` * Upstream: https://github.com/ariya/FastLZ - * Version: git (f121734, 2007) + * Version: 0.5.0 (4f20f54d46f5a6dd4fae4def134933369b7602d2, 2020) * License: MIT - `hq2x.{cpp,h}` * Upstream: https://github.com/brunexgeek/hqx @@ -332,17 +376,25 @@ Collection of single-file libraries used in Godot components. * License: Apache 2.0 - `open-simplex-noise.{c,h}` * Upstream: https://github.com/smcameron/open-simplex-noise-in-c - * Version: git (0d555e7, 2015) + * Version: git (0d555e7f40527d0870906fe9469a3b1bb4020b7f, 2015) + custom changes * License: Unlicense - `pcg.{cpp,h}` * Upstream: http://www.pcg-random.org * Version: minimal C implementation, http://www.pcg-random.org/download.html * License: Apache 2.0 +- `r128.h` + * Upstream: https://github.com/fahickman/r128 + * Version: git (423f693617faafd01de21e92818add4208eb8bd1, 2020) + * License: Public Domain - `smaz.{c,h}` * Upstream: https://github.com/antirez/smaz - * Version: git (150e125, 2009) + * Version: git (150e125cbae2e8fd20dd332432776ce13395d4d4, 2009) * License: BSD-3-Clause * Modifications: use `const char*` instead of `char*` for input string +- `stb_rect_pack.h` + * Upstream: https://github.com/nothings/stb + * Version: 1.00 (2019) + * License: Public Domain (Unlicense) or MIT - `triangulator.{cpp,h}` * Upstream: https://github.com/ivanfratric/polypartition (`src/polypartition.cpp`) * Version: TBD, class was renamed @@ -350,10 +402,6 @@ Collection of single-file libraries used in Godot components. ### modules -- `curl_hostcheck.{c,h}` - * Upstream: https://curl.haxx.se/ - * Version: ? (2013) - * License: MIT - `yuv2rgb.h` * Upstream: http://wss.co.uk/pinknoise/yuv2rgb/ (to check) * Version: ? @@ -363,29 +411,30 @@ Collection of single-file libraries used in Godot components. - `ifaddrs-android.{cc,h}` * Upstream: https://chromium.googlesource.com/external/webrtc/stable/talk/+/master/base/ifaddrs-android.h - * Version: git (5976650, 2013) + * Version: git (5976650443d68ccfadf1dea24999ee459dd2819d, 2013) * License: BSD-3-Clause ### scene - `easing_equations.cpp` * Upstream: http://robertpenner.com/easing/ via https://github.com/jesusgollonet/ofpennereasing (modified to fit Godot types) - * Version: git (af72c14, 2008) + Godot types and style changes + * Version: git (af72c147c3a74e7e872aa28c7e2abfcced04fdce, 2008) + Godot types and style changes * License: BSD-3-Clause - `mikktspace.{c,h}` - * Upstream: https://wiki.blender.org/index.php/Dev:Shading/Tangent_Space_Normal_Maps - * Version: 1.0 + * Upstream: https://archive.blender.org/wiki/index.php/Dev:Shading/Tangent_Space_Normal_Maps/ + * Version: 1.0 (2011) * License: zlib - `stb_vorbis.c` * Upstream: https://github.com/nothings/stb - * Version: 1.17 + * Version: 1.19 * License: Public Domain (Unlicense) or MIT + * Modifications: `f->temp_offset += (sz+3)&~3;` changed to `f->temp_offset += (sz+7)&~7;` (needed until fixed upstream) ## nanosvg - Upstream: https://github.com/memononen/nanosvg -- Version: git (25241c5, 2019) +- Version: git (25241c5a8f8451d41ab1b02ab2d865b01600d949, 2019) - License: zlib Files extracted from the upstream source: @@ -394,36 +443,44 @@ Files extracted from the upstream source: - LICENSE.txt +## oidn + +- Upstream: https://github.com/OpenImageDenoise/oidn +- Version: TBD +- License: Apache 2.0 + +Files extracted from upstream source: + +- TBD + + ## opus - Upstream: https://opus-codec.org -- Version: 1.3.1 (opus) and 0.11 (opusfile) +- Version: 1.1.5 (opus) and 0.8 (opusfile) (2017) - License: BSD-3-Clause Files extracted from upstream source: -- Run `opus/configure` and copy/sync changes to `config.h` - (note that this file may have Godot-specific options enabled) - all .c and .h files in src/ (both opus and opusfile) - all .h files in include/ (both opus and opusfile) as opus/ - remove unused `opus_demo.c`, - remove `http.c`, `wincerts.c` and `winerrno.h` (part of unused libopusurl) -- celt/ and silk/ subfolders (minus tests folders) +- celt/ and silk/ subfolders - COPYING ## pcre2 - Upstream: http://www.pcre.org -- Version: 10.33 +- Version: 10.34 (2019) - License: BSD-3-Clause Files extracted from upstream source: - Files listed in the file NON-AUTOTOOLS-BUILD steps 1-4 - All .h files in src/ apart from pcre2posix.h -- src/pcre2_jit_compile.c - src/pcre2_jit_match.c - src/pcre2_jit_misc.c - src/sljit/* @@ -433,7 +490,7 @@ Files extracted from upstream source: ## pvrtccompressor - Upstream: https://bitbucket.org/jthlim/pvrtccompressor -- Version: hg (cf71777, 2015) +- Version: hg (cf7177748ee0dcdccfe89716dc11a47d2dc81af5, 2015) - License: BSD-3-Clause Files extracted from upstream source: @@ -445,19 +502,35 @@ Files extracted from upstream source: ## recastnavigation - Upstream: https://github.com/recastnavigation/recastnavigation -- version: git (ef3ea40f, 2017) +- Version: git (57610fa6ef31b39020231906f8c5d40eaa8294ae, 2019) - License: zlib Files extracted from upstream source: -- `Recast/` folder +- `Recast/` folder without `CMakeLists.txt` - License.txt +## rvo2 + +- Upstream: http://gamma.cs.unc.edu/RVO2/ +- Version: 3D - 1.0.1 (2016) +- License: Apache 2.0 + +Files extracted from upstream source: + +- All .cpp and .h files in the `src/` folder except for RVO.h, RVOSimulator.cpp and RVOSimulator.h +- LICENSE + +Important: Some files have Godot-made changes; so to enrich the features +originally proposed by this library and better integrate this library with +Godot. Please check the file to know what's new. + + ## squish - Upstream: https://sourceforge.net/projects/libsquish -- Version: 1.15 +- Version: 1.15 (2017) - License: MIT Files extracted from upstream source: @@ -472,7 +545,7 @@ comments and a patch is provided in the squish/ folder. ## tinyexr - Upstream: https://github.com/syoyo/tinyexr -- Version: git (656bb61, 2019) +- Version: git (4dbd05a22f51a2d7462311569b8b0cba0bbe2ac5, 2020) - License: BSD-3-Clause Files extracted from upstream source: @@ -483,7 +556,7 @@ Files extracted from upstream source: ## vhacd - Upstream: https://github.com/kmammou/v-hacd -- Version: git (b07958e, 2019) +- Version: git (b07958e18e01d504e3af80eeaeb9f033226533d7, 2019) - License: BSD-3-Clause Files extracted from upstream source: @@ -497,10 +570,40 @@ They can be reapplied using the patches included in the `vhacd` folder. +## vulkan + +- Upstream: https://github.com/KhronosGroup/Vulkan-Loader +- Version: sdk-1.2.131.2 (2020) +- License: Apache 2.0 + +Unless there is a specific reason to package a more recent version, please stick +to Vulkan SDK releases (prefixed by `sdk-`) for all components. + +NOTE: Use `scripts/update_deps.py --ref <version>` in the Loader git repository +to retrieve the `Vulkan-Headers` repository matching the loader version. + +Files extracted from upstream source: + +- `Vulkan-Headers/include/` as `include/` +- All `.c` and `.h` files in `loader/` and `loader/generated/`, put in a common + `loader/` folder +- `LICENSE.txt` + +`vk_enum_string_helper.h` is taken from the matching `Vulkan-ValidationLayers` +SDK release: https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/layers/generated/vk_enum_string_helper.h +Includes custom change to disable MSVC pragma, might be upstreamed via: +https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/1666 + +`vk_mem_alloc.h` is taken from https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator +Version: 2.3.0 (2019) + +Patches in the `patches` directory should be re-applied after updates. + + ## wslay - Upstream: https://github.com/tatsuhiro-t/wslay -- Version: 1.1.0 +- Version: 1.1.0 (2018) - License: MIT File extracted from upstream release tarball: @@ -513,21 +616,19 @@ File extracted from upstream release tarball: ## xatlas - Upstream: https://github.com/jpcy/xatlas -- Version: git (b4b5426, 2019) +- Version: git (e12ea82, 2019) - License: MIT Files extracted from upstream source: - `xatlas.{cpp,h}` - -Note: License is marked as Public Domain in the files, but it was -later clarified upstream to MIT license. +- `LICENSE` ## zlib - Upstream: http://www.zlib.net -- Version: 1.2.11 +- Version: 1.2.11 (2017) - License: zlib Files extracted from upstream source: @@ -538,7 +639,7 @@ Files extracted from upstream source: ## zstd - Upstream: https://github.com/facebook/zstd -- Version: 1.4.4 +- Version: 1.4.4 (2019) - License: BSD-3-Clause Files extracted from upstream source: |