conflicting version numbers
There are conflicting version numbers in DTrace. For example,
libdtrace/dt_open.c const dt_version_t _dtrace_versions[] = { [...] DT_VERS_1_6_3, /* D API 1.6.3 / DT_VERS_1_6_4, / D API 1.6.4 / DT_VERS_2_0, / D API 2.0 */ 0 };
libdtrace/dt_version.h * You must update DT_VERS_LATEST and DT_VERS_STRING when adding a new version, * and then add the new version to the _dtrace_versions[] array declared in * dt_open.c.. [...]
#define DT_VERS_1_6_4 DT_VERSION_NUMBER(1, 6, 4)
#define DT_VERS_2_0 DT_VERSION_NUMBER(2, 0, 0)
#define DT_VERS_2_0_1 DT_VERSION_NUMBER(2, 0, 1)
#define DT_VERS_LATEST DT_VERS_2_0_1
#define DT_VERS_STRING "Oracle D 2.0"
dtrace.spec
Version: 2.0.2
GNUmakefile
VERSION := 2.0.1
One issue is that there is a sense of "API" version in the code base, but that is then also immediately ignored and handled as a DTrace version instead. That probably resulted from having no other real libdtrace consumer other than dtrace itself, so having a well specified (and versioned) API has not been of much interest.
Patches have been posted for review: https://oss.oracle.com/pipermail/dtrace-devel/2025-February/005850.html https://oss.oracle.com/pipermail/dtrace-devel/2025-February/005851.html https://oss.oracle.com/pipermail/dtrace-devel/2025-February/005852.html https://oss.oracle.com/pipermail/dtrace-devel/2025-February/005853.html
Fixed with the following commits:
a48a7647 version: fix DTrace version string de80c1ff Refactor the versioning handling system (consolidate data) 7c4dca15 Refactor the versioning handling system (code movement)