Skip to content

Third-Party Licenses#

pyramids-gis itself is licensed under the GNU General Public License v3 or later — see LICENSE.md.

The platform wheels published on PyPI bundle GDAL and its native dependencies so that pip install pyramids-gis yields a self-contained install with no out-of-band compiler or system GDAL. Each bundled library has its own copyright and license, listed below. The full license text for every entry is shipped inside the wheel under pyramids/_licenses/<package>/ci/install-and-vendor-osgeo.py mirrors each conda-forge package's info/licenses/ directory there at build time. Source-distribution (sdist) users build their own GDAL out-of-band, so the sdist does not bundle third-party binaries and the licenses below do not apply to it.

If you redistribute a pyramids-gis platform wheel — directly or as a component of a larger product — the MIT, BSD, LGPL, and Apache notices below must travel with it. The most practical way to satisfy this is to leave the pyramids/_licenses/ directory untouched inside the wheel.

Bundled libraries#

Component Role License (SPDX)
GDAL core C/C++ engine + osgeo / osgeo_utils SWIG bindings MIT
PROJ cartographic projections + coordinate transforms MIT
GEOS computational geometry (intersections, unions, buffers) LGPL-2.1-or-later
libtiff TIFF read/write (underlies GeoTIFF) libtiff (BSD-style)
libgeotiff GeoTIFF tags on top of libtiff libgeotiff (BSD-style)
NetCDF-C NetCDF-4 / classic reader + writer NetCDF-C (BSD, UCAR/Unidata)
HDF5 Hierarchical Data Format v5 (NetCDF-4 storage layer) BSD (HDF Group / NCSA)
HDF4 Hierarchical Data Format v4 (HDF-EOS, MODIS, …) HDF4 (BSD, HDF Group / NCSA)
libcurl HTTP / S3 / GS / Azure I/O for VSI cloud paths curl (MIT-like)
OpenSSL TLS for libcurl Apache-2.0 (OpenSSL 3.x+)
libxml2 XML parser used by GDAL + PROJ MIT
libexpat XML pull parser used by some GDAL drivers MIT
libpng PNG read/write libpng (zlib-like)
libjpeg-turbo JPEG read/write IJG (BSD-style) + zlib
libwebp WebP read/write BSD-3-Clause (Google)
zlib generic DEFLATE compression zlib
libdeflate faster DEFLATE variant MIT
zstd Zstandard compression (drivers + COG) BSD-3-Clause + GPL-2.0 (dual)
lz4 LZ4 compression (some GDAL drivers) BSD-2-Clause + GPL-2.0 (dual)
bzip2 bzip2 compression bzip2-1.0.6 (BSD-like)
liblzma / xz LZMA / XZ compression 0BSD / public domain
libiconv charset conversion used by libxml2 / PROJ LGPL-2.1-or-later
libstdc++ GCC 13 C++ runtime (Linux wheels) GPL-3.0-or-later WITH GCC-exception-3.1
GDAL_DATA CRS / prime-meridian / datum tables shipped with libgdal MIT (with GDAL)
PROJ_DATA datum-transformation grids, ellipsoid definitions MIT (with PROJ)

Upstream project pages: GDAL, PROJ, GEOS, libtiff, libgeotiff, NetCDF-C, HDF5, HDF4, libcurl, OpenSSL, libxml2, libexpat, libpng, libjpeg-turbo, libwebp, zlib, libdeflate, zstd, lz4, bzip2, liblzma, libiconv, libstdc++.

The exact set of libraries in a given wheel depends on the platform (Linux ships libstdcxx-ng; Windows ships extra DLLs from the conda-forge Library/bin/ layout; macOS ships .dylib equivalents). The single source of truth for what shipped in any specific wheel is the pyramids/_licenses/ directory inside that wheel.

How license texts are gathered#

ci/install-and-vendor-osgeo.py runs in cibuildwheel's CIBW_BEFORE_BUILD hook, after ci/setup-gdal-from-pixi.{sh,ps1} materialises the wheel-build pixi environment. The script walks every ${PIXI_ENV}/conda-meta/*.json, reads each package's extracted_package_dir, and copies the contents of <extracted>/info/licenses/ into src/pyramids/_licenses/<package-name>/. setuptools then packages everything under src/pyramids/_licenses/ into the wheel via the "_licenses/**/*" glob in [tool.setuptools.package-data].

This guarantees that whichever conda-forge build of GDAL we link against in a given release also contributes its current upstream LICENSE files into the wheel — no hand-maintained list of license texts to keep in sync.

License compatibility with GPLv3#

All licenses listed above are compatible with the GNU General Public License v3 (the license under which pyramids-gis itself is distributed):

  • MIT / BSD-2-Clause / BSD-3-Clause / zlib / Boost — explicitly GPL-compatible permissive licenses.
  • LGPL-2.1-or-later (GEOS, libiconv) — explicitly GPL-compatible.
  • Apache-2.0 (OpenSSL 3.x+) — compatible with GPLv3 (not with GPLv2-only).
  • libtiff, libpng, IJG, HDF4, HDF5, bzip2, NetCDF-C licenses — all BSD-style permissive, GPL-compatible.
  • libstdc++ — GPL-3.0-or-later with the GCC Runtime Library Exception, which explicitly permits use in non-GPL programs and is GPLv3-compatible by construction.

If you redistribute a combined work containing pyramids-gis and any of these libraries, the combined work as a whole is governed by GPLv3 (because pyramids-gis is GPLv3 and absorbs the permissive licenses on combination), and the original notices and license texts of the bundled libraries must travel with the combined work.

Citing GDAL#

If you use pyramids-gis in academic or publication contexts, please also cite GDAL per https://gdal.org/cite_gdal.html. Pyramids stands on GDAL's shoulders; none of this would work without that project's two decades of work.

Reporting issues#

If you find a missing attribution, an incorrect license entry, or a bundled binary whose license text isn't in pyramids/_licenses/, please open an issue at https://github.com/serapeum-org/pyramids/issues — we want to get this right.