* [PATCH v2 1/3] Makefile: fix default regex settings on Darwin @ 2013-05-11 8:22 David Aguilar 2013-05-11 8:22 ` [PATCH v2 2/3] imap-send: eliminate HMAC warnings on OS X 10.8 David Aguilar 0 siblings, 1 reply; 8+ messages in thread From: David Aguilar @ 2013-05-11 8:22 UTC (permalink / raw) To: Junio C Hamano; +Cc: git, Jonathan Nieder t0070-fundamental.sh fails on Mac OS X 10.8: $ uname -a Darwin lustrous 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64 $ ./t0070-fundamental.sh -v fatal: regex bug confirmed: re-build git with NO_REGEX=1 Fix it by using Git's regex library. Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: David Aguilar <davvid@gmail.com> --- Added uname output and Jonathan's review tag. Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 0f931a2..f698c1a 100644 --- a/Makefile +++ b/Makefile @@ -1054,6 +1054,7 @@ ifeq ($(uname_S),Darwin) BASIC_LDFLAGS += -L/opt/local/lib endif endif + NO_REGEX = YesPlease PTHREAD_LIBS = endif -- 1.8.3.rc1.47.g41936fa ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/3] imap-send: eliminate HMAC warnings on OS X 10.8 2013-05-11 8:22 [PATCH v2 1/3] Makefile: fix default regex settings on Darwin David Aguilar @ 2013-05-11 8:22 ` David Aguilar 2013-05-11 8:22 ` [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation " David Aguilar 0 siblings, 1 reply; 8+ messages in thread From: David Aguilar @ 2013-05-11 8:22 UTC (permalink / raw) To: Junio C Hamano; +Cc: git, Jonathan Nieder Mac OS X Mountain Lion warns that HMAC_Init() and friends are deprecated. Use CommonCrypto's HMAC to eliminate the warnings. Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: David Aguilar <davvid@gmail.com> --- Rebased to 2/3. Makefile | 5 +++++ imap-send.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/Makefile b/Makefile index f698c1a..25282b4 100644 --- a/Makefile +++ b/Makefile @@ -1054,6 +1054,7 @@ ifeq ($(uname_S),Darwin) BASIC_LDFLAGS += -L/opt/local/lib endif endif + COMMON_DIGEST_HMAC = YesPlease NO_REGEX = YesPlease PTHREAD_LIBS = endif @@ -1393,6 +1394,10 @@ else EXTLIBS += $(LIB_4_CRYPTO) endif endif + +ifdef COMMON_DIGEST_HMAC + BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1 +endif ifdef NO_PERL_MAKEMAKER export NO_PERL_MAKEMAKER endif diff --git a/imap-send.c b/imap-send.c index d9bcfb4..1b2e69c 100644 --- a/imap-send.c +++ b/imap-send.c @@ -29,8 +29,18 @@ #ifdef NO_OPENSSL typedef void *SSL; #else +#ifdef COMMON_DIGEST_FOR_HMAC +#include <CommonCrypto/CommonHMAC.h> +#define HMAC_CTX CCHmacContext +#define HMAC_Init(hmac, key, len, algo) CCHmacInit(hmac, algo, key, len) +#define HMAC_Update CCHmacUpdate +#define HMAC_Final(hmac, hash, ptr) CCHmacFinal(hmac, hash) +#define HMAC_CTX_cleanup +#define EVP_md5() kCCHmacAlgMD5 +#else #include <openssl/evp.h> #include <openssl/hmac.h> +#endif #include <openssl/x509v3.h> #endif -- 1.8.3.rc1.47.g41936fa ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8 2013-05-11 8:22 ` [PATCH v2 2/3] imap-send: eliminate HMAC warnings on OS X 10.8 David Aguilar @ 2013-05-11 8:22 ` David Aguilar 2013-05-12 18:37 ` Eric Sunshine 0 siblings, 1 reply; 8+ messages in thread From: David Aguilar @ 2013-05-11 8:22 UTC (permalink / raw) To: Junio C Hamano; +Cc: git, Jonathan Nieder 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 knob to the Makefile to allow choosing this implementation and define it by default on Darwin. Signed-off-by: David Aguilar <davvid@gmail.com> --- Unchanged since last time; rebased to 3/3. Makefile | 7 +++++++ cache.h | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/Makefile b/Makefile index 25282b4..8b2f9cc 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,16 @@ 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> + EXTLIBS += $(LIB_4_CRYPTO) +else SHA1_HEADER = <openssl/sha.h> EXTLIBS += $(LIB_4_CRYPTO) endif endif +endif ifdef COMMON_DIGEST_HMAC BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1 diff --git a/cache.h b/cache.h index 94ca1ac..e2b24c6 100644 --- a/cache.h +++ b/cache.h @@ -10,11 +10,18 @@ #include SHA1_HEADER #ifndef git_SHA_CTX +#ifdef COMMON_DIGEST_FOR_SHA1 +#define git_SHA_CTX CC_SHA1_CTX +#define git_SHA1_Init CC_SHA1_Init +#define git_SHA1_Update CC_SHA1_Update +#define git_SHA1_Final CC_SHA1_Final +#else #define git_SHA_CTX SHA_CTX #define git_SHA1_Init SHA1_Init #define git_SHA1_Update SHA1_Update #define git_SHA1_Final SHA1_Final #endif +#endif #include <zlib.h> typedef struct git_zstream { -- 1.8.3.rc1.47.g41936fa ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8 2013-05-11 8:22 ` [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation " David Aguilar @ 2013-05-12 18:37 ` Eric Sunshine 2013-05-12 20:57 ` David Aguilar 0 siblings, 1 reply; 8+ messages in thread From: Eric Sunshine @ 2013-05-12 18:37 UTC (permalink / raw) To: David Aguilar; +Cc: Junio C Hamano, Git List, Jonathan Nieder On Sat, May 11, 2013 at 4:22 AM, David Aguilar <davvid@gmail.com> wrote: > 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 knob to the Makefile to allow > choosing this implementation and define it by default on Darwin. > > Signed-off-by: David Aguilar <davvid@gmail.com> > --- > Unchanged since last time; rebased to 3/3. Ignore my earlier response. I had not seen your revised patches. With this patch series, the SHA1_Foo() warnings are indeed resolved, however, there are still a bunch of remaining deprecation warnings regarding ERR_error_string, SSL_get_error, X509_get_ext_d2i, and so forth. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8 2013-05-12 18:37 ` Eric Sunshine @ 2013-05-12 20:57 ` David Aguilar 2013-05-12 21:25 ` Junio C Hamano 2013-05-13 1:22 ` Eric Sunshine 0 siblings, 2 replies; 8+ messages in thread From: David Aguilar @ 2013-05-12 20:57 UTC (permalink / raw) To: Eric Sunshine; +Cc: Junio C Hamano, Git List, Jonathan Nieder On Sun, May 12, 2013 at 11:37 AM, Eric Sunshine <sunshine@sunshineco.com> wrote: > On Sat, May 11, 2013 at 4:22 AM, David Aguilar <davvid@gmail.com> wrote: >> 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 knob to the Makefile to allow >> choosing this implementation and define it by default on Darwin. >> >> Signed-off-by: David Aguilar <davvid@gmail.com> >> --- >> Unchanged since last time; rebased to 3/3. > > Ignore my earlier response. I had not seen your revised patches. With > this patch series, the SHA1_Foo() warnings are indeed resolved, > however, there are still a bunch of remaining deprecation warnings > regarding ERR_error_string, SSL_get_error, X509_get_ext_d2i, and so > forth. Yup, warnings still remain, but only in imap-send.c. All the SHA1 ones are gone. Those were particularly bothersome since they affected several files. I haven't dug to deeply into how to fix these. In case anyone has any pointers, the warnings look like this: imap-send.c: In function ‘ssl_socket_perror’: imap-send.c:185: warning: ‘ERR_error_string’ is deprecated (declared at /usr/include/openssl/err.h:279) imap-send.c:185: warning: ‘ERR_get_error’ is deprecated (declared at /usr/include/openssl/err.h:266) imap-send.c: In function ‘socket_perror’: imap-send.c:193: warning: ‘SSL_get_error’ is deprecated (declared at /usr/include/openssl/ssl.h:1501) imap-send.c: In function ‘verify_hostname’: imap-send.c:245: warning: ‘X509_get_ext_d2i’ is deprecated (declared at /usr/include/openssl/x509.h:1151) imap-send.c:246: warning: ‘sk_num’ is deprecated (declared at /usr/include/openssl/stack.h:81) imap-send.c:248: warning: ‘sk_value’ is deprecated (declared at /usr/include/openssl/stack.h:82) imap-send.c:254: warning: ‘sk_pop_free’ is deprecated (declared at /usr/include/openssl/stack.h:89) imap-send.c:260: warning: ‘X509_get_subject_name’ is deprecated (declared at /usr/include/openssl/x509.h:1013) imap-send.c:262: warning: ‘X509_NAME_get_text_by_NID’ is deprecated (declared at /usr/include/openssl/x509.h:1099) imap-send.c: In function ‘ssl_socket_connect’: imap-send.c:281: warning: ‘SSL_library_init’ is deprecated (declared at /usr/include/openssl/ssl.h:1553) imap-send.c:282: warning: ‘SSL_load_error_strings’ is deprecated (declared at /usr/include/openssl/ssl.h:1416) imap-send.c:285: warning: ‘TLSv1_method’ is deprecated (declared at /usr/include/openssl/ssl.h:1519) imap-send.c:287: warning: ‘SSLv23_method’ is deprecated (declared at /usr/include/openssl/ssl.h:1515) imap-send.c:294: warning: ‘SSL_CTX_new’ is deprecated (declared at /usr/include/openssl/ssl.h:1346) imap-send.c:297: warning: ‘SSL_CTX_set_verify’ is deprecated (declared at /usr/include/openssl/ssl.h:1459) imap-send.c:299: warning: ‘SSL_CTX_set_default_verify_paths’ is deprecated (declared at /usr/include/openssl/ssl.h:1570) imap-send.c:303: warning: ‘SSL_new’ is deprecated (declared at /usr/include/openssl/ssl.h:1481) imap-send.c:308: warning: ‘SSL_set_rfd’ is deprecated (declared at /usr/include/openssl/ssl.h:1371) imap-send.c:312: warning: ‘SSL_set_wfd’ is deprecated (declared at /usr/include/openssl/ssl.h:1372) imap-send.c:323: warning: ‘SSL_ctrl’ is deprecated (declared at /usr/include/openssl/ssl.h:1496) imap-send.c:328: warning: ‘SSL_connect’ is deprecated (declared at /usr/include/openssl/ssl.h:1492) imap-send.c:336: warning: ‘SSL_get_peer_certificate’ is deprecated (declared at /usr/include/openssl/ssl.h:1450) imap-send.c: In function ‘socket_read’: imap-send.c:352: warning: ‘SSL_read’ is deprecated (declared at /usr/include/openssl/ssl.h:1493) imap-send.c: In function ‘socket_write’: imap-send.c:370: warning: ‘SSL_write’ is deprecated (declared at /usr/include/openssl/ssl.h:1495) imap-send.c: In function ‘socket_shutdown’: imap-send.c:387: warning: ‘SSL_shutdown’ is deprecated (declared at /usr/include/openssl/ssl.h:1532) imap-send.c:388: warning: ‘SSL_free’ is deprecated (declared at /usr/include/openssl/ssl.h:1490) imap-send.c: In function ‘cram’: imap-send.c:906: warning: ‘EVP_DecodeBlock’ is deprecated (declared at /usr/include/openssl/evp.h:634) imap-send.c:913: warning: statement with no effect imap-send.c:927: warning: ‘EVP_EncodeBlock’ is deprecated (declared at /usr/include/openssl/evp.h:627) Cheers, -- David ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8 2013-05-12 20:57 ` David Aguilar @ 2013-05-12 21:25 ` Junio C Hamano 2013-05-12 21:47 ` David Aguilar 2013-05-13 1:22 ` Eric Sunshine 1 sibling, 1 reply; 8+ messages in thread From: Junio C Hamano @ 2013-05-12 21:25 UTC (permalink / raw) To: David Aguilar; +Cc: Eric Sunshine, Git List, Jonathan Nieder David Aguilar <davvid@gmail.com> writes: > Yup, warnings still remain, but only in imap-send.c. All the SHA1 > ones are gone. Those were particularly bothersome since they affected > several files. > > I haven't dug to deeply into how to fix these. In case anyone has any > pointers, the warnings look like this: > > imap-send.c: In function ‘ssl_socket_perror’: > imap-send.c:185: warning: ‘ERR_error_string’ is deprecated (declared > at /usr/include/openssl/err.h:279) Hmph. I thought your separate imap-send patch switched to CommonCrypto. Why are you still including from /usr/include/openssl/? By the way, is CommonCrypo anything "common"? I am geting an impression that it is an Apple-only thing, and if that is the case the naming feels somewhat funny. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8 2013-05-12 21:25 ` Junio C Hamano @ 2013-05-12 21:47 ` David Aguilar 0 siblings, 0 replies; 8+ messages in thread From: David Aguilar @ 2013-05-12 21:47 UTC (permalink / raw) To: Junio C Hamano; +Cc: Eric Sunshine, Git List, Jonathan Nieder On Sun, May 12, 2013 at 2:25 PM, Junio C Hamano <gitster@pobox.com> wrote: > David Aguilar <davvid@gmail.com> writes: > >> Yup, warnings still remain, but only in imap-send.c. All the SHA1 >> ones are gone. Those were particularly bothersome since they affected >> several files. >> >> I haven't dug to deeply into how to fix these. In case anyone has any >> pointers, the warnings look like this: >> >> imap-send.c: In function ‘ssl_socket_perror’: >> imap-send.c:185: warning: ‘ERR_error_string’ is deprecated (declared >> at /usr/include/openssl/err.h:279) > > Hmph. > > I thought your separate imap-send patch switched to CommonCrypto. > Why are you still including from /usr/include/openssl/? > > By the way, is CommonCrypo anything "common"? I am geting an > impression that it is an Apple-only thing, and if that is the case > the naming feels somewhat funny. Far from common -- it's an Apple-ism. The imap-send patch switches the HMAC parts to CommonCrypto and do eliminate the HMAC warnings. It still includes the x509 headers from SSL. I haven't figured those out. -- David ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8 2013-05-12 20:57 ` David Aguilar 2013-05-12 21:25 ` Junio C Hamano @ 2013-05-13 1:22 ` Eric Sunshine 1 sibling, 0 replies; 8+ messages in thread From: Eric Sunshine @ 2013-05-13 1:22 UTC (permalink / raw) To: David Aguilar; +Cc: Junio C Hamano, Git List, Jonathan Nieder On Sat, May 11, 2013 at 4:22 AM, David Aguilar <davvid@gmail.com> wrote: > 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 knob to the Makefile to allow > choosing this implementation and define it by default on Darwin. > > Signed-off-by: David Aguilar <davvid@gmail.com> > --- > Unchanged since last time; rebased to 3/3. > > diff --git a/cache.h b/cache.h > index 94ca1ac..e2b24c6 100644 > --- a/cache.h > +++ b/cache.h > @@ -10,11 +10,18 @@ > > #include SHA1_HEADER > #ifndef git_SHA_CTX > +#ifdef COMMON_DIGEST_FOR_SHA1 > +#define git_SHA_CTX CC_SHA1_CTX > +#define git_SHA1_Init CC_SHA1_Init > +#define git_SHA1_Update CC_SHA1_Update > +#define git_SHA1_Final CC_SHA1_Final > +#else > #define git_SHA_CTX SHA_CTX > #define git_SHA1_Init SHA1_Init > #define git_SHA1_Update SHA1_Update > #define git_SHA1_Final SHA1_Final > #endif > +#endif Reading [*1*], it appears that you can get these defines for free by #defining COMMON_DIGEST_FOR_OPENSSL before including <CommonCrypto/CommonDigest.h>, so this patch hunk can be eliminated, which is nice since you don't have to pollute cache.h with any Apple-specific ugliness. Also, according to [*1*], you need only link against libSystem (or System.framework), so you can drop the $(LIB_4_CRYPTO) reference too. The entire patch therefore reduces to (excuse whitespace corruption): -->8-- diff --git a/Makefile b/Makefile index 25282b4..a080d20 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_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 -->8-- [*1*] /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/CommonCrypto/CommonDigest.h ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-05-13 1:22 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-05-11 8:22 [PATCH v2 1/3] Makefile: fix default regex settings on Darwin David Aguilar 2013-05-11 8:22 ` [PATCH v2 2/3] imap-send: eliminate HMAC warnings on OS X 10.8 David Aguilar 2013-05-11 8:22 ` [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation " David Aguilar 2013-05-12 18:37 ` Eric Sunshine 2013-05-12 20:57 ` David Aguilar 2013-05-12 21:25 ` Junio C Hamano 2013-05-12 21:47 ` David Aguilar 2013-05-13 1:22 ` Eric Sunshine
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).