Re: [PATCH v6 1/2] cache.h: eliminate SHA-1 deprecation warnings on Mac OS X

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH v6 1/2] cache.h: eliminate SHA-1 deprecation warnings on Mac OS X

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:16

David Aguilar [off-list ref] writes:
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?

quoted hunk
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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help