mdbx package code
Copyright (c) 2026 Pedro Baltazar
License: MIT

Covers everything outside src/vendor/: the R sources under R/, the binding
layer src/r_mdbx.cpp, src/r_mdbx.h, src/r_flags.cpp, src/r_mdbx_hooks.cpp and
src/r_mdbx_hooks.h, the cpp11-generated src/cpp11.cpp and R/cpp11.R, the build
glue src/Makevars and src/Makevars.win, and the contents of man/ and tests/.
The same applies to the maintainer scripts under tools/ in the source
repository, which are not part of the distributed package.

Vendored third-party code
=========================

Component: libmdbx (aka MDBX)
Location: src/vendor/libmdbx
Upstream: https://libmdbx.dqdkfa.ru
Copyright (c) 2015-2026 Leonid Yuriev <leo@yuriev.ru>
License: Apache-2.0

The vendored files are mdbx.c, mdbx.h and mdbx-internals.h -- the three files
that constitute the official libmdbx amalgamation -- together with the upstream
LICENSE, NOTICE and COPYRIGHT, which are retained verbatim in
src/vendor/libmdbx and apply to the files there. libmdbx's command-line tools,
C++ API, test suite and build system are not vendored.

The sources were taken from release tag v0.14.3 (tag object
cf3e13938bf974260872e629713f6ecf30e62030, commit
f7a3a9323cacacfa9dc6137ae7a7252a67744ff0) via upstream's GitHub mirror at
https://github.com/erthink/libmdbx. Per-file SHA-256 digests of the pristine
sources are recorded in .agents/vendoring.md in the package's source
repository.

Local modifications to the vendored sources, which constitute the notice
required by section 4(b) of the Apache License, are confined to
src/vendor/libmdbx/mdbx.c, src/vendor/libmdbx/mdbx.h and
src/vendor/libmdbx/mdbx-internals.h. They route libmdbx's panic path through a
package-owned guard that marks the owning handle unusable and raises an R
condition instead of calling the platform assert handler or abort(); send log
output through R's console instead of stderr; read NT_TIB::Self directly rather
than through __readgsqword(), which avoids a false-positive -Warray-bounds from
Rtools' MinGW headers; remove nine upstream diagnostic-suppression pragmas
(#pragma GCC/clang diagnostic ignored ...), which are unnecessary under R's
compilation flags and trip CRAN's pragma check; and restrict the compatibility
definitions of bool, true, false and nullptr to compilers older than C23, which
promoted all four to keywords. Together these ensure no compiled code writes to
stderr or terminates the R process. Each change is also recorded as a patch in
tools/patches/ in the package's source repository. LICENSE, NOTICE and COPYRIGHT
are unmodified.

Third-party code within libmdbx
===============================

libmdbx was derived from LMDB in 2015 and subsequently rewritten. The copyright
notices and licences of that ancestry are reproduced in full in
src/vendor/libmdbx/COPYRIGHT, and are in summary:

Component: LMDB
Copyright (c) 2011-2015 Howard Chu, Symas Corp. All rights reserved.
License: OpenLDAP Public License

Component: btree.c, from which LMDB derived code
Copyright (c) 2009, 2010 Martin Hedenfalk <martin@bzero.se>
License: ISC-style permissive licence
