Closed rgmiller closed 10 months ago
This can be fixed with a change to just a few lines. Specifically, we can replace the call the MD5() with one to EVP_Digest(). The two functions have similar signatures and they produce identical output.
That said, I'm not sure this is the best option. EVP_Digest() is a wrapper around EVP_DigestInit_ex(), EVP_DigestUpdate() and EVP_DigestFinal_ex(). In particular, I'm pretty sure these operations involve allocating and freeing an EVP_MD_CTX struct. It's unclear at the moment if we can do the init and finalize operations once and just re-use the context struct, though.
FWIW: In Spack I'm dropping the upperbound on unifyfs, since a deprecation warning is only a warning, and we're dropping Werror anyways. Yesterday OpenSSL 1.1.1 got deprecated, so time to move forwards
System information
Describe the problem you're observing
When attempting to build UnifyFS on an Ubuntu 22.04 system, gcc prints a warning saying that the MD5 function has been deprecated. Since we compile with
-Werror
, this warning halts the build.The warning stems from the OpenSSL 3 library that is now standard on Unbuntu 22.04.
Describe how to reproduce the problem
Attempt to build on any system that's upgraded to OpenSSL 3.x. (Ubuntu 22.04 is a good example.)
Include any warning or errors or releveant debugging data
Replacing the call to MD5 (unifyfs_meta.c) with calls to OpenSSL EVP_Digest* functions should be pretty straight-forward. These functions exist at least as far back as the OpenSSL versions in RHEL7, so there shouldn't be any problem with builds on older systems.