{"thread":{"id":"33786","subject":"[PATCH v2 1/3] Makefile: fix default regex settings on Darwin","startedAt":"2013-05-11T08:22:26Z","lastAt":"2013-05-13T01:22:41Z","messageCount":8,"participants":["David Aguilar","Eric Sunshine","Junio C Hamano"],"isPatch":true,"patchVersion":2,"patchTotal":3},"messages":[{"id":"216973","messageId":"1368260548-52612-1-git-send-email-davvid@gmail.com","threadId":"33786","inReplyTo":null,"subject":"[PATCH v2 1/3] Makefile: fix default regex settings on Darwin","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-05-11T08:22:26Z","receivedAt":"2013-05-11T08:22:26Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"t0070-fundamental.sh fails on Mac OS X 10.8:\n\n\t$ uname -a\n\tDarwin lustrous 12.2.0 Darwin Kernel Version 12.2.0:\n\tSat Aug 25 00:48:52 PDT 2012;\n\troot:xnu-2050.18.24~1/RELEASE_X86_64 x86_64\n\n\t$ ./t0070-fundamental.sh -v\n\tfatal: regex bug confirmed: re-build git with NO_REGEX=1\n\nFix it by using Git's regex library.\n\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: David Aguilar <davvid@gmail.com>\n---\nAdded uname output and Jonathan's review tag.\n\n Makefile | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/Makefile b/Makefile\nindex 0f931a2..f698c1a 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1054,6 +1054,7 @@ ifeq ($(uname_S),Darwin)\n \t\t\tBASIC_LDFLAGS += -L/opt/local/lib\n \t\tendif\n \tendif\n+\tNO_REGEX = YesPlease\n \tPTHREAD_LIBS =\n endif\n \n-- \n1.8.3.rc1.47.g41936fa\n"},{"id":"216975","messageId":"1368260548-52612-2-git-send-email-davvid@gmail.com","threadId":"33786","inReplyTo":"1368260548-52612-1-git-send-email-davvid@gmail.com","subject":"[PATCH v2 2/3] imap-send: eliminate HMAC warnings on OS X 10.8","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-05-11T08:22:27Z","receivedAt":"2013-05-11T08:22:27Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"Mac OS X Mountain Lion warns that HMAC_Init() and friends are\ndeprecated.  Use CommonCrypto's HMAC to eliminate the warnings.\n\nReviewed-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: David Aguilar <davvid@gmail.com>\n---\nRebased to 2/3.\n\n Makefile    |  5 +++++\n imap-send.c | 10 ++++++++++\n 2 files changed, 15 insertions(+)\n\ndiff --git a/Makefile b/Makefile\nindex f698c1a..25282b4 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1054,6 +1054,7 @@ ifeq ($(uname_S),Darwin)\n \t\t\tBASIC_LDFLAGS += -L/opt/local/lib\n \t\tendif\n \tendif\n+\tCOMMON_DIGEST_HMAC = YesPlease\n \tNO_REGEX = YesPlease\n \tPTHREAD_LIBS =\n endif\n@@ -1393,6 +1394,10 @@ else\n \tEXTLIBS += $(LIB_4_CRYPTO)\n endif\n endif\n+\n+ifdef COMMON_DIGEST_HMAC\n+\tBASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1\n+endif\n ifdef NO_PERL_MAKEMAKER\n \texport NO_PERL_MAKEMAKER\n endif\ndiff --git a/imap-send.c b/imap-send.c\nindex d9bcfb4..1b2e69c 100644\n--- a/imap-send.c\n+++ b/imap-send.c\n@@ -29,8 +29,18 @@\n #ifdef NO_OPENSSL\n typedef void *SSL;\n #else\n+#ifdef COMMON_DIGEST_FOR_HMAC\n+#include <CommonCrypto/CommonHMAC.h>\n+#define HMAC_CTX CCHmacContext\n+#define HMAC_Init(hmac, key, len, algo) CCHmacInit(hmac, algo, key, len)\n+#define HMAC_Update CCHmacUpdate\n+#define HMAC_Final(hmac, hash, ptr) CCHmacFinal(hmac, hash)\n+#define HMAC_CTX_cleanup\n+#define EVP_md5() kCCHmacAlgMD5\n+#else\n #include <openssl/evp.h>\n #include <openssl/hmac.h>\n+#endif\n #include <openssl/x509v3.h>\n #endif\n \n-- \n1.8.3.rc1.47.g41936fa\n"},{"id":"216974","messageId":"1368260548-52612-3-git-send-email-davvid@gmail.com","threadId":"33786","inReplyTo":"1368260548-52612-2-git-send-email-davvid@gmail.com","subject":"[PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-05-11T08:22:28Z","receivedAt":"2013-05-11T08:22:28Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"Mac OS X Mountain Lion prints warnings when building git:\n\n\twarning: 'SHA1_Init' is deprecated\n\t(declared at /usr/include/openssl/sha.h:121)\n\nSilence the warnings by using the Common Digest SHA-1\nfunctions for SHA1_Init(), SHA1_Update(), and SHA1_Final().\n\nAdd a COMMON_DIGEST_SHA1 knob to the Makefile to allow\nchoosing this implementation and define it by default on Darwin.\n\nSigned-off-by: David Aguilar <davvid@gmail.com>\n---\nUnchanged since last time; rebased to 3/3.\n\n Makefile | 7 +++++++\n cache.h  | 7 +++++++\n 2 files changed, 14 insertions(+)\n\ndiff --git a/Makefile b/Makefile\nindex 25282b4..8b2f9cc 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1055,6 +1055,7 @@ ifeq ($(uname_S),Darwin)\n \t\tendif\n \tendif\n \tCOMMON_DIGEST_HMAC = YesPlease\n+\tCOMMON_DIGEST_SHA1 = YesPlease\n \tNO_REGEX = YesPlease\n \tPTHREAD_LIBS =\n endif\n@@ -1390,10 +1391,16 @@ ifdef PPC_SHA1\n \tLIB_OBJS += ppc/sha1.o ppc/sha1ppc.o\n \tLIB_H += ppc/sha1.h\n else\n+ifdef COMMON_DIGEST_SHA1\n+\tBASIC_CFLAGS += -DCOMMON_DIGEST_FOR_SHA1=1\n+\tSHA1_HEADER = <CommonCrypto/CommonDigest.h>\n+\tEXTLIBS += $(LIB_4_CRYPTO)\n+else\n \tSHA1_HEADER = <openssl/sha.h>\n \tEXTLIBS += $(LIB_4_CRYPTO)\n endif\n endif\n+endif\n \n ifdef COMMON_DIGEST_HMAC\n \tBASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1\ndiff --git a/cache.h b/cache.h\nindex 94ca1ac..e2b24c6 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -10,11 +10,18 @@\n \n #include SHA1_HEADER\n #ifndef git_SHA_CTX\n+#ifdef COMMON_DIGEST_FOR_SHA1\n+#define git_SHA_CTX\tCC_SHA1_CTX\n+#define git_SHA1_Init\tCC_SHA1_Init\n+#define git_SHA1_Update\tCC_SHA1_Update\n+#define git_SHA1_Final\tCC_SHA1_Final\n+#else\n #define git_SHA_CTX\tSHA_CTX\n #define git_SHA1_Init\tSHA1_Init\n #define git_SHA1_Update\tSHA1_Update\n #define git_SHA1_Final\tSHA1_Final\n #endif\n+#endif\n \n #include <zlib.h>\n typedef struct git_zstream {\n-- \n1.8.3.rc1.47.g41936fa\n"},{"id":"217091","messageId":"CAPig+cSw5-S7MDhG+5WdnLd+7PDUrSJcZJ-caXGM8JmYU6YWHw@mail.gmail.com","threadId":"33786","inReplyTo":"1368260548-52612-3-git-send-email-davvid@gmail.com","subject":"Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2013-05-12T18:37:28Z","receivedAt":"2013-05-12T18:37:28Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Sat, May 11, 2013 at 4:22 AM, David Aguilar <davvid@gmail.com> wrote:\n> Mac OS X Mountain Lion prints warnings when building git:\n>\n>         warning: 'SHA1_Init' is deprecated\n>         (declared at /usr/include/openssl/sha.h:121)\n>\n> Silence the warnings by using the Common Digest SHA-1\n> functions for SHA1_Init(), SHA1_Update(), and SHA1_Final().\n>\n> Add a COMMON_DIGEST_SHA1 knob to the Makefile to allow\n> choosing this implementation and define it by default on Darwin.\n>\n> Signed-off-by: David Aguilar <davvid@gmail.com>\n> ---\n> Unchanged since last time; rebased to 3/3.\n\nIgnore my earlier response. I had not seen your revised patches. With\nthis patch series, the SHA1_Foo() warnings are indeed resolved,\nhowever, there are still a bunch of remaining deprecation warnings\nregarding ERR_error_string, SSL_get_error, X509_get_ext_d2i, and so\nforth.\n"},{"id":"217092","messageId":"CAJDDKr5QbrY6dFLbdZc2P5fTdLx+MPrSE+r1AAJMU4g=nrV9BA@mail.gmail.com","threadId":"33786","inReplyTo":"CAPig+cSw5-S7MDhG+5WdnLd+7PDUrSJcZJ-caXGM8JmYU6YWHw@mail.gmail.com","subject":"Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-05-12T20:57:45Z","receivedAt":"2013-05-12T20:57:45Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Sun, May 12, 2013 at 11:37 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:\n> On Sat, May 11, 2013 at 4:22 AM, David Aguilar <davvid@gmail.com> wrote:\n>> Mac OS X Mountain Lion prints warnings when building git:\n>>\n>>         warning: 'SHA1_Init' is deprecated\n>>         (declared at /usr/include/openssl/sha.h:121)\n>>\n>> Silence the warnings by using the Common Digest SHA-1\n>> functions for SHA1_Init(), SHA1_Update(), and SHA1_Final().\n>>\n>> Add a COMMON_DIGEST_SHA1 knob to the Makefile to allow\n>> choosing this implementation and define it by default on Darwin.\n>>\n>> Signed-off-by: David Aguilar <davvid@gmail.com>\n>> ---\n>> Unchanged since last time; rebased to 3/3.\n>\n> Ignore my earlier response. I had not seen your revised patches. With\n> this patch series, the SHA1_Foo() warnings are indeed resolved,\n> however, there are still a bunch of remaining deprecation warnings\n> regarding ERR_error_string, SSL_get_error, X509_get_ext_d2i, and so\n> forth.\n\nYup, warnings still remain, but only in imap-send.c.  All the SHA1\nones are gone.  Those were particularly bothersome since they affected\nseveral files.\n\nI haven't dug to deeply into how to fix these.  In case anyone has any\npointers, the warnings look like this:\n\nimap-send.c: In function ‘ssl_socket_perror’:\nimap-send.c:185: warning: ‘ERR_error_string’ is deprecated (declared\nat /usr/include/openssl/err.h:279)\nimap-send.c:185: warning: ‘ERR_get_error’ is deprecated (declared at\n/usr/include/openssl/err.h:266)\nimap-send.c: In function ‘socket_perror’:\nimap-send.c:193: warning: ‘SSL_get_error’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1501)\nimap-send.c: In function ‘verify_hostname’:\nimap-send.c:245: warning: ‘X509_get_ext_d2i’ is deprecated (declared\nat /usr/include/openssl/x509.h:1151)\nimap-send.c:246: warning: ‘sk_num’ is deprecated (declared at\n/usr/include/openssl/stack.h:81)\nimap-send.c:248: warning: ‘sk_value’ is deprecated (declared at\n/usr/include/openssl/stack.h:82)\nimap-send.c:254: warning: ‘sk_pop_free’ is deprecated (declared at\n/usr/include/openssl/stack.h:89)\nimap-send.c:260: warning: ‘X509_get_subject_name’ is deprecated\n(declared at /usr/include/openssl/x509.h:1013)\nimap-send.c:262: warning: ‘X509_NAME_get_text_by_NID’ is deprecated\n(declared at /usr/include/openssl/x509.h:1099)\nimap-send.c: In function ‘ssl_socket_connect’:\nimap-send.c:281: warning: ‘SSL_library_init’ is deprecated (declared\nat /usr/include/openssl/ssl.h:1553)\nimap-send.c:282: warning: ‘SSL_load_error_strings’ is deprecated\n(declared at /usr/include/openssl/ssl.h:1416)\nimap-send.c:285: warning: ‘TLSv1_method’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1519)\nimap-send.c:287: warning: ‘SSLv23_method’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1515)\nimap-send.c:294: warning: ‘SSL_CTX_new’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1346)\nimap-send.c:297: warning: ‘SSL_CTX_set_verify’ is deprecated (declared\nat /usr/include/openssl/ssl.h:1459)\nimap-send.c:299: warning: ‘SSL_CTX_set_default_verify_paths’ is\ndeprecated (declared at /usr/include/openssl/ssl.h:1570)\nimap-send.c:303: warning: ‘SSL_new’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1481)\nimap-send.c:308: warning: ‘SSL_set_rfd’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1371)\nimap-send.c:312: warning: ‘SSL_set_wfd’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1372)\nimap-send.c:323: warning: ‘SSL_ctrl’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1496)\nimap-send.c:328: warning: ‘SSL_connect’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1492)\nimap-send.c:336: warning: ‘SSL_get_peer_certificate’ is deprecated\n(declared at /usr/include/openssl/ssl.h:1450)\nimap-send.c: In function ‘socket_read’:\nimap-send.c:352: warning: ‘SSL_read’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1493)\nimap-send.c: In function ‘socket_write’:\nimap-send.c:370: warning: ‘SSL_write’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1495)\nimap-send.c: In function ‘socket_shutdown’:\nimap-send.c:387: warning: ‘SSL_shutdown’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1532)\nimap-send.c:388: warning: ‘SSL_free’ is deprecated (declared at\n/usr/include/openssl/ssl.h:1490)\nimap-send.c: In function ‘cram’:\nimap-send.c:906: warning: ‘EVP_DecodeBlock’ is deprecated (declared at\n/usr/include/openssl/evp.h:634)\nimap-send.c:913: warning: statement with no effect\nimap-send.c:927: warning: ‘EVP_EncodeBlock’ is deprecated (declared at\n/usr/include/openssl/evp.h:627)\n\nCheers,\n--\nDavid\n"},{"id":"217094","messageId":"7vk3n3vqku.fsf@alter.siamese.dyndns.org","threadId":"33786","inReplyTo":"CAJDDKr5QbrY6dFLbdZc2P5fTdLx+MPrSE+r1AAJMU4g=nrV9BA@mail.gmail.com","subject":"Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-05-12T21:25:05Z","receivedAt":"2013-05-12T21:25:05Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n> Yup, warnings still remain, but only in imap-send.c.  All the SHA1\n> ones are gone.  Those were particularly bothersome since they affected\n> several files.\n>\n> I haven't dug to deeply into how to fix these.  In case anyone has any\n> pointers, the warnings look like this:\n>\n> imap-send.c: In function ‘ssl_socket_perror’:\n> imap-send.c:185: warning: ‘ERR_error_string’ is deprecated (declared\n> at /usr/include/openssl/err.h:279)\n\nHmph.\n\nI thought your separate imap-send patch switched to CommonCrypto.\nWhy are you still including from /usr/include/openssl/?\n\nBy the way, is CommonCrypo anything \"common\"?  I am geting an\nimpression that it is an Apple-only thing, and if that is the case\nthe naming feels somewhat funny.\n"},{"id":"217095","messageId":"CAJDDKr6hzJjd4E0oTubBNi6RZFriqHUGZp27MoW+WYyMPCObiQ@mail.gmail.com","threadId":"33786","inReplyTo":"7vk3n3vqku.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-05-12T21:47:51Z","receivedAt":"2013-05-12T21:47:51Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Sun, May 12, 2013 at 2:25 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> David Aguilar <davvid@gmail.com> writes:\n>\n>> Yup, warnings still remain, but only in imap-send.c.  All the SHA1\n>> ones are gone.  Those were particularly bothersome since they affected\n>> several files.\n>>\n>> I haven't dug to deeply into how to fix these.  In case anyone has any\n>> pointers, the warnings look like this:\n>>\n>> imap-send.c: In function ‘ssl_socket_perror’:\n>> imap-send.c:185: warning: ‘ERR_error_string’ is deprecated (declared\n>> at /usr/include/openssl/err.h:279)\n>\n> Hmph.\n>\n> I thought your separate imap-send patch switched to CommonCrypto.\n> Why are you still including from /usr/include/openssl/?\n>\n> By the way, is CommonCrypo anything \"common\"?  I am geting an\n> impression that it is an Apple-only thing, and if that is the case\n> the naming feels somewhat funny.\n\nFar from common -- it's an Apple-ism.\n\nThe imap-send patch switches the HMAC parts to CommonCrypto and do\neliminate the HMAC warnings.  It still includes the x509 headers from\nSSL.  I haven't figured those out.\n--\nDavid\n"},{"id":"217103","messageId":"CAPig+cSvz+gb8_yAkeUH7P3uK14ynro54LvsiR4biNbTw4vkrg@mail.gmail.com","threadId":"33786","inReplyTo":"CAJDDKr5QbrY6dFLbdZc2P5fTdLx+MPrSE+r1AAJMU4g=nrV9BA@mail.gmail.com","subject":"Re: [PATCH v2 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2013-05-13T01:22:41Z","receivedAt":"2013-05-13T01:22:41Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Sat, May 11, 2013 at 4:22 AM, David Aguilar <davvid@gmail.com> wrote:\n> Mac OS X Mountain Lion prints warnings when building git:\n>\n>         warning: 'SHA1_Init' is deprecated\n>         (declared at /usr/include/openssl/sha.h:121)\n>\n> Silence the warnings by using the Common Digest SHA-1\n> functions for SHA1_Init(), SHA1_Update(), and SHA1_Final().\n>\n> Add a COMMON_DIGEST_SHA1 knob to the Makefile to allow\n> choosing this implementation and define it by default on Darwin.\n>\n> Signed-off-by: David Aguilar <davvid@gmail.com>\n> ---\n> Unchanged since last time; rebased to 3/3.\n>\n> diff --git a/cache.h b/cache.h\n> index 94ca1ac..e2b24c6 100644\n> --- a/cache.h\n> +++ b/cache.h\n>  @@ -10,11 +10,18 @@\n>\n>  #include SHA1_HEADER\n>  #ifndef git_SHA_CTX\n> +#ifdef COMMON_DIGEST_FOR_SHA1\n> +#define git_SHA_CTX CC_SHA1_CTX\n> +#define git_SHA1_Init CC_SHA1_Init\n> +#define git_SHA1_Update CC_SHA1_Update\n> +#define git_SHA1_Final CC_SHA1_Final\n> +#else\n>  #define git_SHA_CTX SHA_CTX\n>  #define git_SHA1_Init SHA1_Init\n>  #define git_SHA1_Update SHA1_Update\n>  #define git_SHA1_Final SHA1_Final\n>  #endif\n> +#endif\n\nReading [*1*], it appears that you can get these defines for free by\n#defining COMMON_DIGEST_FOR_OPENSSL before including\n<CommonCrypto/CommonDigest.h>, so this patch hunk can be eliminated,\nwhich is nice since you don't have to pollute cache.h with any\nApple-specific ugliness. Also, according to [*1*], you need only link\nagainst libSystem (or System.framework), so you can drop the\n$(LIB_4_CRYPTO) reference too. The entire patch therefore reduces to\n(excuse whitespace corruption):\n\n-->8--\ndiff --git a/Makefile b/Makefile\nindex 25282b4..a080d20 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1055,6 +1055,7 @@ ifeq ($(uname_S),Darwin)\n                endif\n        endif\n        COMMON_DIGEST_HMAC = YesPlease\n+       COMMON_DIGEST_SHA1 = YesPlease\n        NO_REGEX = YesPlease\n        PTHREAD_LIBS =\n endif\n@@ -1390,10 +1391,15 @@ ifdef PPC_SHA1\n        LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o\n        LIB_H += ppc/sha1.h\n else\n+ifdef COMMON_DIGEST_SHA1\n+       BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL\n+       SHA1_HEADER = <CommonCrypto/CommonDigest.h>\n+else\n        SHA1_HEADER = <openssl/sha.h>\n        EXTLIBS += $(LIB_4_CRYPTO)\n endif\n endif\n+endif\n\n ifdef COMMON_DIGEST_HMAC\n        BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1\n-->8--\n\n[*1*] /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/CommonCrypto/CommonDigest.h\n"}]}