Author: obrien
Date: Thu May  5 01:16:06 2011
New Revision: 221472
URL: http://svn.freebsd.org/changeset/base/221472

Log:
  libarchive is mixing libmd and libcrypto -- correct to use one or the other.
  [mixing the two can be quite bad -- they define the same context structures,
   but with differing structure members (and sizes)]
  
  Update the hash function support comments, and update config_freebsd.h
  to match.
  
  Approved by:  kientzle

Modified:
  head/lib/libarchive/Makefile
  head/lib/libarchive/archive_hash.h
  head/lib/libarchive/config_freebsd.h

Modified: head/lib/libarchive/Makefile
==============================================================================
--- head/lib/libarchive/Makefile        Thu May  5 01:09:42 2011        
(r221471)
+++ head/lib/libarchive/Makefile        Thu May  5 01:16:06 2011        
(r221472)
@@ -2,8 +2,8 @@
 .include <bsd.own.mk>
 
 LIB=   archive
-DPADD= ${LIBZ} ${LIBMD}
-LDADD= -lz -lmd
+DPADD= ${LIBZ}
+LDADD= -lz
 
 DPADD+= ${LIBBZ2}
 LDADD+= -lbz2
@@ -24,6 +24,9 @@ CFLAGS+=      -I${.OBJDIR}
 CFLAGS+=       -DWITH_OPENSSL
 DPADD+=        ${LIBCRYPTO}
 LDADD+=        -lcrypto
+.else
+DPADD+=        ${LIBMD}
+LDADD+=        -lmd
 .endif
 
 # Headers to be installed in /usr/include

Modified: head/lib/libarchive/archive_hash.h
==============================================================================
--- head/lib/libarchive/archive_hash.h  Thu May  5 01:09:42 2011        
(r221471)
+++ head/lib/libarchive/archive_hash.h  Thu May  5 01:16:06 2011        
(r221472)
@@ -41,11 +41,11 @@
  * - OpenBSD 4.4 and earlier have SHA2 in libc with _ after algorithm name
  *
  * DragonFly and FreeBSD (XXX not used yet):
- * - MD5 and SHA1 in libmd: without _ after algorithm name
- * - SHA256: with _ after algorithm name
+ * - MD5 in libmd: without _ after algorithm name
+ * - SHA{1,256,512} in libmd: with _ after algorithm name (conflicts 
w/OpenSSL!)
  *
  * OpenSSL:
- * - MD5, SHA1 and SHA2 in libcrypto: with _ after algorithm name
+ * - MD5, SHA1, SHA2, SHA{256,384,512} in libcrypto: with _ after algorithm 
name
  */
 
 #if defined(HAVE_MD5_H) && defined(HAVE_MD5INIT)

Modified: head/lib/libarchive/config_freebsd.h
==============================================================================
--- head/lib/libarchive/config_freebsd.h        Thu May  5 01:09:42 2011        
(r221471)
+++ head/lib/libarchive/config_freebsd.h        Thu May  5 01:16:06 2011        
(r221472)
@@ -47,8 +47,24 @@
 #define        HAVE_OPENSSL_MD5_H 1
 #define        HAVE_OPENSSL_RIPEMD_H 1
 #define        HAVE_OPENSSL_SHA_H 1
+#define        HAVE_OPENSSL_SHA256_INIT 1
+#define        HAVE_OPENSSL_SHA384_INIT 1
+#define        HAVE_OPENSSL_SHA512_INIT 1
+#define        HAVE_SHA256 1
 #define        HAVE_SHA384 1
 #define        HAVE_SHA512 1
+#else
+#define        HAVE_MD5_H 1
+#define        HAVE_MD5INIT 1
+#define        HAVE_SHA_H 1
+#define        HAVE_SHA1 1
+#define        HAVE_SHA1_INIT 1
+#define        HAVE_SHA256 1
+#define        HAVE_SHA256_H 1
+#define        HAVE_SHA256_INIT 1
+#define        HAVE_SHA512 1
+#define        HAVE_SHA512_H 1
+#define        HAVE_SHA512_INIT 1
 #endif
 
 #define        HAVE_BSDXML_H 1
@@ -88,7 +104,6 @@
 #define        HAVE_LUTIMES 1
 #define        HAVE_MALLOC 1
 #define        HAVE_MD5 1
-#define        HAVE_MD5_H 1
 #define        HAVE_MEMMOVE 1
 #define        HAVE_MKDIR 1
 #define        HAVE_MKFIFO 1
@@ -101,10 +116,6 @@
 #define        HAVE_RMD160 1
 #define        HAVE_SELECT 1
 #define        HAVE_SETENV 1
-#define        HAVE_SHA_H 1
-#define        HAVE_SHA1 1
-#define        HAVE_SHA256 1
-#define        HAVE_SHA256_H 1
 #define        HAVE_SIGNAL_H 1
 #define        HAVE_STDINT_H 1
 #define        HAVE_STDLIB_H 1
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to