[PATCH v3 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8

Subsystems: kernel build + files below scripts/ (unless maintained elsewhere), the rest

DORMANTno replies

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

[PATCH v3 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8

From: David Aguilar <hidden>
Date: 2016-06-15 22:57:14

Mac OS X 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 Common Digest SHA-1
functions for SHA1_Init(), SHA1_Update(), and SHA1_Final().

Add a COMMON_DIGEST_SHA1 option to the Makefile to allow
choosing this implementation and define it by default on Darwin.

Define COMMON_DIGEST_FOR_SHA1 to enable the OpenSSL compatibility
macros in CommonDigest.h.

Helped-by: Eric Sunshine [off-list ref]
Signed-off-by: David Aguilar <redacted>
---
Here's a replacement patch for what's in pu.
This version uses the built-in #defines and can thus avoid
touching cache.h.

 Makefile | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/Makefile b/Makefile
index 25282b4..9d174b9 100644
--- a/Makefile
+++ b/Makefile
@@ -1055,6 +1055,7 @@ ifeq ($(uname_S),Darwin)
 		endif
 	endif
 	COMMON_DIGEST_HMAC = YesPlease
+	COMMON_DIGEST_SHA1 = YesPlease
 	NO_REGEX = YesPlease
 	PTHREAD_LIBS =
 endif
@@ -1390,10 +1391,15 @@ ifdef PPC_SHA1
 	LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
 	LIB_H += ppc/sha1.h
 else
+ifdef COMMON_DIGEST_SHA1
+	BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_SHA1=1
+	SHA1_HEADER = <CommonCrypto/CommonDigest.h>
+else
 	SHA1_HEADER = <openssl/sha.h>
 	EXTLIBS += $(LIB_4_CRYPTO)
 endif
 endif
+endif
 
 ifdef COMMON_DIGEST_HMAC
 	BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1
-- 
1.8.3.rc1.47.g1b7707e

Re: [PATCH v3 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8

From: Eric Sunshine <hidden>
Date: 2016-06-15 22:57:14

On Mon, May 13, 2013 at 3:20 AM, David Aguilar [off-list ref] wrote:
quoted hunk
Mac OS X 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 Common Digest SHA-1
functions for SHA1_Init(), SHA1_Update(), and SHA1_Final().

Add a COMMON_DIGEST_SHA1 option to the Makefile to allow
choosing this implementation and define it by default on Darwin.

Define COMMON_DIGEST_FOR_SHA1 to enable the OpenSSL compatibility
macros in CommonDigest.h.

Helped-by: Eric Sunshine [off-list ref]
Signed-off-by: David Aguilar <redacted>
---
Here's a replacement patch for what's in pu.
This version uses the built-in #defines and can thus avoid
touching cache.h.

 Makefile | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/Makefile b/Makefile
index 25282b4..9d174b9 100644
--- a/Makefile
+++ b/Makefile
@@ -1055,6 +1055,7 @@ ifeq ($(uname_S),Darwin)
                endif
        endif
        COMMON_DIGEST_HMAC = YesPlease
+       COMMON_DIGEST_SHA1 = YesPlease
        NO_REGEX = YesPlease
        PTHREAD_LIBS =
 endif
@@ -1390,10 +1391,15 @@ ifdef PPC_SHA1
        LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
        LIB_H += ppc/sha1.h
 else
+ifdef COMMON_DIGEST_SHA1
+       BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_SHA1=1
This is incorrect. As noted in my previous email, you need to define
COMMON_DIGEST_FOR_OPENSSL, not COMMON_DIGEST_FOR_SHA1, in order for
CommonDigest.h to provide the OpenSSL defines magically. Thus:

s/COMMON_DIGEST_FOR_SHA1=1/COMMON_DIGEST_FOR_OPENSSL/
+       SHA1_HEADER = <CommonCrypto/CommonDigest.h>
+else
        SHA1_HEADER = <openssl/sha.h>
        EXTLIBS += $(LIB_4_CRYPTO)
 endif
 endif
+endif

 ifdef COMMON_DIGEST_HMAC
        BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1
--
1.8.3.rc1.47.g1b7707e

Re: [PATCH v3 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8

From: David Aguilar <hidden>
Date: 2016-06-15 22:57:14

On Mon, May 13, 2013 at 12:55 AM, Eric Sunshine [off-list ref] wrote:
On Mon, May 13, 2013 at 3:20 AM, David Aguilar [off-list ref] wrote:
quoted
Mac OS X 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 Common Digest SHA-1
functions for SHA1_Init(), SHA1_Update(), and SHA1_Final().

Add a COMMON_DIGEST_SHA1 option to the Makefile to allow
choosing this implementation and define it by default on Darwin.

Define COMMON_DIGEST_FOR_SHA1 to enable the OpenSSL compatibility
macros in CommonDigest.h.

Helped-by: Eric Sunshine [off-list ref]
Signed-off-by: David Aguilar <redacted>
---
Here's a replacement patch for what's in pu.
This version uses the built-in #defines and can thus avoid
touching cache.h.

 Makefile | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/Makefile b/Makefile
index 25282b4..9d174b9 100644
--- a/Makefile
+++ b/Makefile
@@ -1055,6 +1055,7 @@ ifeq ($(uname_S),Darwin)
                endif
        endif
        COMMON_DIGEST_HMAC = YesPlease
+       COMMON_DIGEST_SHA1 = YesPlease
        NO_REGEX = YesPlease
        PTHREAD_LIBS =
 endif
@@ -1390,10 +1391,15 @@ ifdef PPC_SHA1
        LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
        LIB_H += ppc/sha1.h
 else
+ifdef COMMON_DIGEST_SHA1
+       BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_SHA1=1
This is incorrect. As noted in my previous email, you need to define
COMMON_DIGEST_FOR_OPENSSL, not COMMON_DIGEST_FOR_SHA1, in order for
CommonDigest.h to provide the OpenSSL defines magically. Thus:

s/COMMON_DIGEST_FOR_SHA1=1/COMMON_DIGEST_FOR_OPENSSL/
Yes, you're right.  Strangely, it compiled just fine either way which
is why I hadn't noticed.

I'll resend along w/ a replacement for 2/3 to drop the "=1" in the -D
definition.
--
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