threads / patch / 38187

patchgit-compat-util: suppress unavoidable Apple-specific deprecation warnings

Subject: [PATCH] git-compat-util: suppress unavoidable Apple-specific deprecation warnings

## tl;dr

3 messages between Dec 16, 2014 and Dec 18, 2014. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Eric Sunshine· Dec 16, 2014, 23:19 UTC · lore

With the release of Mac OS X 10.7 in July 2011, Apple deprecated all openssl.h functionality due to OpenSSL ABI (application binary interface) instability, resulting in an explosion of compilation warnings about deprecated SSL, SHA1, and X509 functions (among others).

61067954ce (cache.h: eliminate SHA-1 deprecation warnings on Mac OS X; 2013-05-19) and be4c828b76 (imap-send: eliminate HMAC deprecation warnings on Mac OS X; 2013-05-19) attempted to ameliorate the situation by taken advantage of drop-in replacement functionality provided by Apple's (ABI-stable) CommonCrypto facility, however CommonCrypto supplies only a subset of deprecated OpenSSL functionality, thus a host of warnings remain.

Despite this shortcoming, it was hoped that Apple would ultimately provide CommonCrypto replacements for all deprecated OpenSSL functionality, and that the effort started by 61067954ce and be4c828b76 would be continued and eventually eliminate all deprecation warnings. However, now 3.5 years later, and with Mac OS X at 10.10, the hoped-for CommonCrypto replacements have not yet materialized, nor is there any indication that they will be forthcoming.

These Apple-specific warnings are pure noise: they don't tell us anything useful and we have no control over them, nor is Apple likely to provide replacements any time soon. Such noise may obscure other legitimate warnings, therefore silence them.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
---

Related discussion: http://thread.gmane.org/gmane.comp.version-control.git/260463/

 git-compat-util.h | 4 ++++
 1 file changed, 4 insertions(+)
Show changes to git-compat-util.h +4 −0
diff --git a/git-compat-util.h b/git-compat-util.h
index 400e921..433b8f2 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -211,8 +211,12 @@ extern char *gitbasename(char *);
 #endif
 
 #ifndef NO_OPENSSL
+#define __AVAILABILITY_MACROS_USES_AVAILABILITY 0
+#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_6
 #include <openssl/ssl.h>
 #include <openssl/err.h>
+#undef MAC_OS_X_VERSION_MIN_REQUIRED
+#undef __AVAILABILITY_MACROS_USES_AVAILABILITY
 #endif
 
 /* On most systems <netdb.h> would have given us this, but
-- 
2.2.0.209.gd6426a0
Junio C Hamano· Dec 17, 2014, 22:33 UTC · re: Eric Sunshine · lore

Re: [PATCH] git-compat-util: suppress unavoidable Apple-specific deprecation warnings

Eric Sunshine <sunshine@sunshineco.com> writes:
> These Apple-specific warnings are pure noise: they don't tell us
> anything useful and we have no control over them, nor is Apple likely to
> provide replacements any time soon. Such noise may obscure other
> legitimate warnings, therefore silence them.
Sad but it appears to me that it is the best we could do...
Will queue.  Thanks.
Show 27 quoted lines
>
> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
> ---
>
> Related discussion:
> http://thread.gmane.org/gmane.comp.version-control.git/260463/
>
>  git-compat-util.h | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index 400e921..433b8f2 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -211,8 +211,12 @@ extern char *gitbasename(char *);
>  #endif
>  
>  #ifndef NO_OPENSSL
> +#define __AVAILABILITY_MACROS_USES_AVAILABILITY 0
> +#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_6
>  #include <openssl/ssl.h>
>  #include <openssl/err.h>
> +#undef MAC_OS_X_VERSION_MIN_REQUIRED
> +#undef __AVAILABILITY_MACROS_USES_AVAILABILITY
>  #endif
>  
>  /* On most systems <netdb.h> would have given us this, but
Eric Sunshine· Dec 18, 2014, 14:03 UTC · re: Eric Sunshine · lore

Re: [PATCH] git-compat-util: suppress unavoidable Apple-specific deprecation warnings

On Tue, Dec 16, 2014 at 6:19 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 9 quoted lines
> With the release of Mac OS X 10.7 in July 2011, Apple deprecated all
> openssl.h functionality due to OpenSSL ABI (application binary
> interface) instability, resulting in an explosion of compilation
> warnings about deprecated SSL, SHA1, and X509 functions (among others).
>
> 61067954ce (cache.h: eliminate SHA-1 deprecation warnings on Mac OS X;
> 2013-05-19) and be4c828b76 (imap-send: eliminate HMAC deprecation
> warnings on Mac OS X; 2013-05-19) attempted to ameliorate the situation
> by taken advantage of drop-in replacement functionality provided by
s/taken/taking/
(despite proof-reading multiple times)
Show 18 quoted lines
> Apple's (ABI-stable) CommonCrypto facility, however CommonCrypto
> supplies only a subset of deprecated OpenSSL functionality, thus a host
> of warnings remain.
>
> Despite this shortcoming, it was hoped that Apple would ultimately
> provide CommonCrypto replacements for all deprecated OpenSSL
> functionality, and that the effort started by 61067954ce and be4c828b76
> would be continued and eventually eliminate all deprecation warnings.
> However, now 3.5 years later, and with Mac OS X at 10.10, the hoped-for
> CommonCrypto replacements have not yet materialized, nor is there any
> indication that they will be forthcoming.
>
> These Apple-specific warnings are pure noise: they don't tell us
> anything useful and we have no control over them, nor is Apple likely to
> provide replacements any time soon. Such noise may obscure other
> legitimate warnings, therefore silence them.
>
> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>

← back to recent threads