The Wayback Machine -
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider to delete MDBX_BUILD_TIMESTAMP #201

AskAlexSharov opened this issue Jun 1, 2021 · 2 comments

Consider to delete MDBX_BUILD_TIMESTAMP #201

AskAlexSharov opened this issue Jun 1, 2021 · 2 comments


Copy link

@AskAlexSharov AskAlexSharov commented Jun 1, 2021

There is no logic based on this constant.

But it breaks reproducibility of app builds: shasum -a256 mybinary is different from build to build only because of MDBX_BUILD_TIMESTAMP.
Reproducibility checksum useful for security reasons - to check that no malware code was embedded into app sources during "release binary artifacts" process.

@erthink erthink added the todo label Jun 2, 2021
Copy link

@erthink erthink commented Jun 2, 2021

It was assumed that the ability to predefine MDBX_BUILD_TIMESTAMP for builds reproducibility would be added.
Looks like it's time to do it.

@erthink erthink self-assigned this Jun 2, 2021
erthink added a commit that referenced this issue Jun 2, 2021
More for #201
@erthink erthink assigned AskAlexSharov and unassigned erthink Jun 3, 2021
@erthink erthink added enhancement and removed todo labels Jun 3, 2021
Copy link
Contributor Author

@AskAlexSharov AskAlexSharov commented Jun 3, 2021

It works:

MDBX_BUILD_TIMESTAMP=unknown make config.h
make mdbx-static.o

@erthink erthink closed this in f951f24 Jun 3, 2021
erthink added a commit that referenced this issue Jul 26, 2021
 - [Alex Sharov]( for reporting and testing.
 - [Andrea Lanfranchi]( for reporting bugs.
 - [Lionel Debroux]( for fuzzing tests and reporting bugs.
 - [Sergey Fedotov]( for [`node-mdbx` NodeJS bindings](
 - [Kris Zyp]( for [`lmdbx-store` NodeJS bindings](
 - [Noel Kuntze]( for [draft Python bindings](

New features, extensions and improvements:
 - [Allow to predefine/override `MDBX_BUILD_TIMESTAMP` for builds reproducibility](#201).
 - Added options support for `long-stochastic` script.
 - Avoided `MDBX_TXN_FULL` error for large transactions when possible.
 - The `MDBX_READERS_LIMIT` increased to `32767`.
 - Raise `MDBX_TOO_LARGE` under Valgrind/ASAN if being opened DB is 100 larger than RAM (to avoid hangs and OOM).
 - Minimized the size of poisoned/unpoisoned regions to avoid Valgrind/ASAN stuck.
 - Added more workarounds for QEMU for testing builds for 32-bit platforms, Alpha and Sparc architectures.
 - `mdbx_chk` now skips iteration & checking of DB' records if corresponding page-tree is corrupted (to avoid `SIGSEGV`, ASAN failures, etc).
 - Added more checks for [rare/fuzzing corruption cases](#217).

Backward compatibility break:
 - Use file `VERSION.txt` for version information instead of `VERSION` to avoid collision with `#include <version>`.
 - Rename `slice::from/to_FOO_bytes()` to `slice::envisage_from/to_FOO_length()'.
 - Rename `MDBX_TEST_EXTRA` make's variable to `MDBX_SMOKE_EXTRA`.
 - Some details of the C++ API have been changed for subsequent freezing.

 - Fixed excess meta-pages checks in case `mdbx_chk` is called to check the DB for a specific meta page and thus could prevent switching to the selected meta page, even if the check passed without errors.
 - Fixed [recursive use of SRW-lock on Windows cause by `MDBX_NOTLS` option](#203).
 - Fixed [log a warning during a new DB creation](#205).
 - Fixed [false-negative `mdbx_cursor_eof()` result](#207).
 - Fixed [`make install` with non-GNU `install` utility (OSX, BSD)](#208).
 - Fixed [installation by `CMake` in special cases by complete use `GNUInstallDirs`'s variables](#209).
 - Fixed [C++ Buffer issue with `std::string` and alignment](#191).
 - Fixed `safe64_reset()` for platforms without atomic 64-bit compare-and-swap.
 - Fixed hang/shutdown on big-endian platforms without `__cxa_thread_atexit()`.
 - Fixed [using bad meta-pages if DB was partially/recoverable corrupted](#217).
 - Fixed extra `noexcept` for `buffer::&assign_reference()`.
 - Fixed `bootid` generation on Windows for case of change system' time.
 - Fixed [test framework keygen-related issue](#127).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants