Re: [PATCH v6 1/2] cache.h: eliminate SHA-1 deprecation warnings on Mac OS X
From: David Aguilar <hidden>
Date: 2016-06-15 22:57:16
On Wed, May 15, 2013 at 5:36 PM, Junio C Hamano [off-list ref] wrote:
David Aguilar [off-list ref] writes:quoted
Mac OS X 10.8 Mountain Lion prints warnings when building git: warning: 'SHA1_Init' is deprecated (declared at /usr/include/openssl/sha.h:121) Silence the warnings by using the CommonCrytpo SHA-1 functions for SHA1_Init(), SHA1_Update(), and SHA1_Final(). Add a NO_COMMON_DIGEST_FOR_OPENSSL option to the Makefile to allow users to opt out of using this library. When defined, Git will use OpenSSL instead. COMMON_DIGEST_FOR_OPENSSL is defined to enable the OpenSSL compatibility macros in CommonDigest.h.This symbol will also cover not just SHA but also HMAC, would it make more sense to call it COMMON_CRYPTO_FOR_OPENSSL? After all, that is what Apple calls this library, no?
They call it COMMON_DIGEST_FOR_OPENSSL. weirdos, but I guess they mean it's for the digest functions. Thanks for catching the commit message typo.
quoted
Helped-by: Eric Sunshine [off-list ref] Helped-by: Torsten Bögershausen [off-list ref] Signed-off-by: David Aguilar <redacted> --- Changes since last time: Name the Makefile variable after the #define for consistency. Makefile | 13 +++++++++++++ 1 file changed, 13 insertions(+)diff --git a/Makefile b/Makefile index f698c1a..b0eb949 100644 --- a/Makefile +++ b/Makefile@@ -137,6 +137,10 @@ all:: # specify your own (or DarwinPort's) include directories and # library directories by defining CFLAGS and LDFLAGS appropriately. # +# Define NO_COMMON_DIGEST_FOR_OPENSSL if you are building on Darwin/Mac OS X +# and do not want to use Apple's CommonCrypto library. This allows you to +# provide your own OpenSSL library, for example from MacPorts. +# # Define BLK_SHA1 environment variable to make use of the bundled # optimized C SHA1 routine. #@@ -1054,6 +1058,9 @@ ifeq ($(uname_S),Darwin) BASIC_LDFLAGS += -L/opt/local/lib endif endif + ifndef NO_COMMON_DIGEST_FOR_OPENSSL + COMMON_DIGEST_FOR_OPENSSL = YesPlease + endif NO_REGEX = YesPlease PTHREAD_LIBS = endif@@ -1389,10 +1396,16 @@ ifdef PPC_SHA1 LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o LIB_H += ppc/sha1.h else +ifdef COMMON_DIGEST_FOR_OPENSSL + BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL + SHA1_HEADER = <CommonCrypto/CommonDigest.h> +else SHA1_HEADER = <openssl/sha.h> EXTLIBS += $(LIB_4_CRYPTO) endif endif +endif + ifdef NO_PERL_MAKEMAKER export NO_PERL_MAKEMAKER endif
-- David