Hello, I'm a developer with the MacPorts package management system.
When built with scons 2.3, the libserf dynamic library on macOS has current_version and compatibility_version information recorded in it, as it should: $ otool -L opt/local/lib/libserf-1.dylib | head -n 2 opt/local/lib/libserf-1.dylib: /opt/local/lib/libserf-1.dylib (compatibility version 1.3.4, current version 1.3.4) When built with scons 2.4.1 or later, it does not: $ otool -L opt/local/lib/libserf-1.dylib | head -n 2 opt/local/lib/libserf-1.dylib: /opt/local/lib/libserf-1.dylib (compatibility version 0.0.0, current version 0.0.0) We were quite surprised to discover this had occurred, after we rebuilt libserf due to an openssl upgrade, coincidentally after scons had been updated. Everything else that used libserf then broke, complaining that it was trying to load an older version of the library than it had been built with. It is mentioned in the scons change log that InstallVersionedLib, which serf uses, doesn't honor SHLIBVERSION anymore: https://github.com/SConsProject/scons/blob/rel_2.4.1/src/CHANGES.txt#L39 I have a fiery passionate hatred for scons (and refer you to the "Please consider dropping scons" and "I now officially declare myself completely beaten by scons" threads, and also invite you to ponder the notion that the developers of scons thought it acceptable to break backward compatibility in this manner in a bugfix release) and don't wish to try to figure out how to fix this. Do you have any ideas? Here is the MacPorts bug report: https://trac.macports.org/ticket/50854