From owner-svn-ports-head@FreeBSD.ORG Tue Feb 17 16:02:45 2015 Return-Path: Delivered-To: svn-ports-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A2EB3B50; Tue, 17 Feb 2015 16:02:45 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8C5AC975; Tue, 17 Feb 2015 16:02:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t1HG2jKG090949; Tue, 17 Feb 2015 16:02:45 GMT (envelope-from arved@FreeBSD.org) Received: (from arved@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t1HG2hag090942; Tue, 17 Feb 2015 16:02:43 GMT (envelope-from arved@FreeBSD.org) Message-Id: <201502171602.t1HG2hag090942@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: arved set sender to arved@FreeBSD.org using -f From: Tilman Keskinoz Date: Tue, 17 Feb 2015 16:02:43 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r379170 - in head/net-im: . libstrophe libstrophe/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Feb 2015 16:02:45 -0000 Author: arved Date: Tue Feb 17 16:02:43 2015 New Revision: 379170 URL: https://svnweb.freebsd.org/changeset/ports/379170 QAT: https://qat.redports.org/buildarchive/r379170/ Log: Add port for libstrophe, an XMPP library for C Parts of this port is based on work by fabianfreyer@github Added: head/net-im/libstrophe/ head/net-im/libstrophe/Makefile (contents, props changed) head/net-im/libstrophe/distinfo (contents, props changed) head/net-im/libstrophe/files/ head/net-im/libstrophe/files/patch-configure.ac (contents, props changed) head/net-im/libstrophe/files/patch-use-openssl-sha1 (contents, props changed) head/net-im/libstrophe/pkg-descr (contents, props changed) head/net-im/libstrophe/pkg-plist (contents, props changed) Modified: head/net-im/Makefile Modified: head/net-im/Makefile ============================================================================== --- head/net-im/Makefile Tue Feb 17 16:01:08 2015 (r379169) +++ head/net-im/Makefile Tue Feb 17 16:02:43 2015 (r379170) @@ -58,6 +58,7 @@ SUBDIR += libnice-gst010 SUBDIR += libnice-gst1 SUBDIR += libpurple + SUBDIR += libstrophe SUBDIR += libtelepathy SUBDIR += libyahoo2 SUBDIR += licq Added: head/net-im/libstrophe/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-im/libstrophe/Makefile Tue Feb 17 16:02:43 2015 (r379170) @@ -0,0 +1,30 @@ +# $FreeBSD$ + +PORTNAME= libstrophe +PORTVERSION= 0.8.7 +CATEGORIES= net-im + +MAINTAINER= arved@FreeBSD.org +COMMENT= Lightweight XMPP library + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/MIT-LICENSE.txt + +LIB_DEPENDS= libexpat.so:${PORTSDIR}/textproc/expat2 + +USE_GITHUB= yes +GH_ACCOUNT= strophe +GH_PROJECT= libstrophe +GH_COMMIT= 2093aac +GH_TAGNAME= ${GH_COMMIT} +USE_AUTOTOOLS= autoconf:env automake:env libtoolize:env +USES= libtool pkgconfig +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig +USE_OPENSSL= yes +USE_LDCONFIG= yes + +pre-configure: + cd ${WRKSRC}; ./bootstrap.sh + +.include Added: head/net-im/libstrophe/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-im/libstrophe/distinfo Tue Feb 17 16:02:43 2015 (r379170) @@ -0,0 +1,2 @@ +SHA256 (libstrophe-0.8.7.tar.gz) = 455ee68951a1460d71676ce1e4d50f21a0af07bdca3e3a1c44fd149e5a375bed +SIZE (libstrophe-0.8.7.tar.gz) = 125960 Added: head/net-im/libstrophe/files/patch-configure.ac ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-im/libstrophe/files/patch-configure.ac Tue Feb 17 16:02:43 2015 (r379170) @@ -0,0 +1,72 @@ +--- configure.ac.orig 2015-01-27 23:23:08 UTC ++++ configure.ac +@@ -12,11 +12,11 @@ AS_CASE([$host_os], + [freebsd*], [PLATFORM="freebsd"], + [PLATFORM="nix"]) + +-PKG_CHECK_MODULES([openssl], [openssl], [PC_REQUIRES+=(openssl)], ++PKG_CHECK_MODULES([openssl], [openssl], [PC_REQUIRES="openssl ${PC_REQUIRES}"], + [AC_CHECK_HEADER([openssl/ssl.h], + [ + openssl_LIBS="-lssl -lcrypto" +- PC_LIBS+=($openssl_LIBS) ++ PC_LIBS="${openssl_LIBS} ${PC_LIBS}" + ], + [AC_MSG_ERROR([openssl not found; openssl required])] + )]) +@@ -32,7 +32,7 @@ if test "x$with_libxml2" != xno; then + PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7], + [ + with_libxml2=yes +- PC_REQUIRES+=(libxml-2.0) ++ PC_REQUIRES="libxml-2.0 ${PC_REQUIRES}" + ], + [ + old_CFLAGS=$CFLAGS +@@ -42,19 +42,19 @@ if test "x$with_libxml2" != xno; then + with_libxml2=yes + libxml2_CFLAGS="-I${includedir}/libxml2" + libxml2_LIBS="-lxml2" +- PC_LIBS+=($libxml2_LIBS) +- PC_CFLAGS+=($libxml2_CFLAGS) ++ PC_LIBS="${libxml2_LIBS} ${PC_LIBS}" ++ PC_CFLAGS="${libxml2_CFLAGS} ${PC_CFLAGS}" + ], + [AC_MSG_ERROR([libxml2 not found.])]) + CFLAGS=$old_CFLAGS + ]) + else + PKG_CHECK_MODULES([expat], [expat >= 2.0.0], +- [PC_REQUIRES+=(expat)], ++ [PC_REQUIRES="expat ${PC_REQUIRES}"], + [AC_CHECK_HEADER([expat.h], + [ + expat_LIBS="-lexpat" +- PC_LIBS+=($expat_LIBS) ++ PC_LIBS="${expat_LIBS} ${PC_LIBS}" + ], + [AC_MSG_ERROR([expat not found; expat required.])] + ) +@@ -80,7 +80,7 @@ if test "x$PLATFORM" != xfreebsd; then + AC_CHECK_LIB([resolv], [res_query], [], + [AC_CHECK_LIB([resolv], [__res_query], [], + [AC_MSG_ERROR([libresolv not found; libresolv required.])])]) +- PC_LIBS+=(-lresolv) ++ PC_LIBS="-lresolv ${PC_LIBS}" + else + AC_MSG_NOTICE([skipping libresolv checks for freebsd]) + fi +@@ -97,9 +97,10 @@ m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLD + + AM_CONDITIONAL([PARSER_EXPAT], [test x$with_parser != xlibxml2]) + +-AC_SUBST([PC_REQUIRES], [${PC_REQUIRES[[@]]}]) +-AC_SUBST([PC_CFLAGS], [${PC_CFLAGS[[@]]}]) +-AC_SUBST([PC_LIBS], [${PC_LIBS[[@]]}]) ++AC_SUBST([PC_REQUIRES], [${PC_REQUIRES}]) ++AC_SUBST([PC_CFLAGS], [${PC_CFLAGS}]) ++AC_SUBST([PC_LIBS], [${PC_LIBS}]) ++AC_SUBST([LIB_VERSION], [0:0:0]) + + AC_SUBST(PARSER_NAME) + AC_SUBST(PARSER_CFLAGS) Added: head/net-im/libstrophe/files/patch-use-openssl-sha1 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-im/libstrophe/files/patch-use-openssl-sha1 Tue Feb 17 16:02:43 2015 (r379170) @@ -0,0 +1,241 @@ +diff --git a/Makefile.am b/Makefile.am +index dadce55..6c63974 100644 +--- Makefile.am ++++ Makefile.am +@@ -21,11 +21,11 @@ libstrophe_la_LDFLAGS = $(SSL_LIBS) $(PARSER_LIBS) + libstrophe_la_LDFLAGS += -export-symbols-regex '^xmpp_' + libstrophe_la_SOURCES = src/auth.c src/conn.c src/ctx.c \ + src/event.c src/handler.c src/hash.c \ +- src/jid.c src/md5.c src/sasl.c src/scram.c src/sha1.c \ ++ src/jid.c src/md5.c src/sasl.c src/scram.c \ + src/snprintf.c src/sock.c src/stanza.c src/thread.c \ + src/tls_openssl.c src/util.c \ + src/common.h src/hash.h src/md5.h src/ostypes.h src/parser.h \ +- src/sasl.h src/scram.h src/sha1.h src/sock.h src/thread.h src/tls.h \ ++ src/sasl.h src/scram.h src/sock.h src/thread.h src/tls.h \ + src/util.h + + if PARSER_EXPAT +diff --git a/src/sasl.c b/src/sasl.c +index 3d83fd0..9e1b40b 100644 +--- src/sasl.c ++++ src/sasl.c +@@ -21,7 +21,7 @@ + #include "ostypes.h" + #include "sasl.h" + #include "md5.h" +-#include "sha1.h" ++#include + #include "scram.h" + + #ifdef _WIN32 +@@ -355,8 +355,8 @@ char *sasl_scram_sha1(xmpp_ctx_t *ctx, const char *challenge, + const char *first_bare, const char *jid, + const char *password) + { +- uint8_t key[SHA1_DIGEST_SIZE]; +- uint8_t sign[SHA1_DIGEST_SIZE]; ++ uint8_t key[SHA_DIGEST_LENGTH]; ++ uint8_t sign[SHA_DIGEST_LENGTH]; + char *r = NULL; + char *s = NULL; + char *i = NULL; +@@ -422,7 +422,7 @@ char *sasl_scram_sha1(xmpp_ctx_t *ctx, const char *challenge, + SCRAM_SHA1_ClientKey((uint8_t *)password, strlen(password), + (uint8_t *)sval, sval_len, (uint32_t)ival, key); + SCRAM_SHA1_ClientSignature(key, (uint8_t *)auth, strlen(auth), sign); +- for (j = 0; j < SHA1_DIGEST_SIZE; j++) { ++ for (j = 0; j < SHA_DIGEST_LENGTH; j++) { + sign[j] ^= key[j]; + } + +diff --git a/src/scram.c b/src/scram.c +index 5cce168..688028f 100644 +--- src/scram.c ++++ src/scram.c +@@ -19,46 +19,46 @@ + #include + #include + +-#include "sha1.h" ++#include + #include "ostypes.h" + + #include "scram.h" + + /* block size for HMAC */ + #define BLOCK_SIZE 64 +-#if BLOCK_SIZE < SHA1_DIGEST_SIZE +-#error BLOCK_SIZE must not be less than SHA1_DIGEST_SIZE ++#if BLOCK_SIZE < SHA_DIGEST_LENGTH ++#error BLOCK_SIZE must not be less than SHA_DIGEST_LENGTH + #endif + + static const uint8_t ipad = 0x36; + static const uint8_t opad = 0x5C; + +-static void SHA1(const uint8_t* data, size_t len, +- uint8_t digest[SHA1_DIGEST_SIZE]) ++static void _SHA1(const uint8_t* data, size_t len, ++ uint8_t digest[SHA_DIGEST_LENGTH]) + { +- SHA1_CTX ctx; ++ SHA_CTX ctx; + SHA1_Init(&ctx); +- SHA1_Update(&ctx, data, len); +- SHA1_Final(&ctx, digest); ++ SHA1_Update(&ctx, (const void*) data, len); ++ SHA1_Final(digest, &ctx); + } + + static void HMAC_SHA1(const uint8_t *key, size_t key_len, + const uint8_t *text, size_t len, +- uint8_t digest[SHA1_DIGEST_SIZE]) ++ uint8_t digest[SHA_DIGEST_LENGTH]) + { + uint8_t key_pad[BLOCK_SIZE]; + uint8_t key_ipad[BLOCK_SIZE]; + uint8_t key_opad[BLOCK_SIZE]; +- uint8_t sha_digest[SHA1_DIGEST_SIZE]; ++ uint8_t sha_digest[SHA_DIGEST_LENGTH]; + int i; +- SHA1_CTX ctx; ++ SHA_CTX ctx; + + memset(key_pad, 0, sizeof(key_pad)); + if (key_len <= BLOCK_SIZE) { + memcpy(key_pad, key, key_len); + } else { + /* according to RFC2104 */ +- SHA1(key, key_len, key_pad); ++ _SHA1(key, key_len, key_pad); + } + + for (i = 0; i < BLOCK_SIZE; i++) { +@@ -67,19 +67,19 @@ static void HMAC_SHA1(const uint8_t *key, size_t key_len, + } + + SHA1_Init(&ctx); +- SHA1_Update(&ctx, key_ipad, BLOCK_SIZE); +- SHA1_Update(&ctx, text, len); +- SHA1_Final(&ctx, sha_digest); ++ SHA1_Update(&ctx, (const void*) key_ipad, BLOCK_SIZE); ++ SHA1_Update(&ctx, (const void*) text, len); ++ SHA1_Final(sha_digest, &ctx); + + SHA1_Init(&ctx); +- SHA1_Update(&ctx, key_opad, BLOCK_SIZE); +- SHA1_Update(&ctx, sha_digest, SHA1_DIGEST_SIZE); +- SHA1_Final(&ctx, digest); ++ SHA1_Update(&ctx, (const void*) key_opad, BLOCK_SIZE); ++ SHA1_Update(&ctx, (const void*) sha_digest, SHA_DIGEST_LENGTH); ++ SHA1_Final(digest, &ctx); + } + + static void SCRAM_SHA1_Hi(const uint8_t *text, size_t len, + const uint8_t *salt, size_t salt_len, uint32_t i, +- uint8_t digest[SHA1_DIGEST_SIZE]) ++ uint8_t digest[SHA_DIGEST_LENGTH]) + { + int j, k; + uint8_t tmp[128]; +@@ -89,7 +89,7 @@ static void SCRAM_SHA1_Hi(const uint8_t *text, size_t len, + /* assume salt + INT(1) isn't longer than sizeof(tmp) */ + assert(salt_len <= sizeof(tmp) - sizeof(int1)); + +- memset(digest, 0, SHA1_DIGEST_SIZE); ++ memset(digest, 0, SHA_DIGEST_LENGTH); + if (i == 0) { + return; + } +@@ -99,11 +99,11 @@ static void SCRAM_SHA1_Hi(const uint8_t *text, size_t len, + + /* 'text' for Hi is a 'key' for HMAC */ + HMAC_SHA1(text, len, tmp, salt_len + sizeof(int1), digest); +- memcpy(tmp, digest, SHA1_DIGEST_SIZE); ++ memcpy(tmp, digest, SHA_DIGEST_LENGTH); + + for (j = 1; j < i; j++) { +- HMAC_SHA1(text, len, tmp, SHA1_DIGEST_SIZE, tmp); +- for (k = 0; k < SHA1_DIGEST_SIZE; k++) { ++ HMAC_SHA1(text, len, tmp, SHA_DIGEST_LENGTH, tmp); ++ for (k = 0; k < SHA_DIGEST_LENGTH; k++) { + digest[k] ^= tmp[k]; + } + } +@@ -111,33 +111,33 @@ static void SCRAM_SHA1_Hi(const uint8_t *text, size_t len, + + void SCRAM_SHA1_ClientKey(const uint8_t *password, size_t len, + const uint8_t *salt, size_t salt_len, uint32_t i, +- uint8_t key[SHA1_DIGEST_SIZE]) ++ uint8_t key[SHA_DIGEST_LENGTH]) + { +- uint8_t salted[SHA1_DIGEST_SIZE]; ++ uint8_t salted[SHA_DIGEST_LENGTH]; + + /* XXX: Normalize(password) is omitted */ + + SCRAM_SHA1_Hi(password, len, salt, salt_len, i, salted); +- HMAC_SHA1(salted, SHA1_DIGEST_SIZE, (uint8_t *)"Client Key", ++ HMAC_SHA1(salted, SHA_DIGEST_LENGTH, (uint8_t *)"Client Key", + strlen("Client Key"), key); + } + +-void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA1_DIGEST_SIZE], ++void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA_DIGEST_LENGTH], + const uint8_t *AuthMessage, size_t len, +- uint8_t sign[SHA1_DIGEST_SIZE]) ++ uint8_t sign[SHA_DIGEST_LENGTH]) + { +- uint8_t stored[SHA1_DIGEST_SIZE]; ++ uint8_t stored[SHA_DIGEST_LENGTH]; + +- SHA1(ClientKey, SHA1_DIGEST_SIZE, stored); +- HMAC_SHA1(stored, SHA1_DIGEST_SIZE, AuthMessage, len, sign); ++ SHA1(ClientKey, SHA_DIGEST_LENGTH, stored); ++ HMAC_SHA1(stored, SHA_DIGEST_LENGTH, AuthMessage, len, sign); + } + +-void SCRAM_SHA1_ClientProof(const uint8_t ClientKey[SHA1_DIGEST_SIZE], +- const uint8_t ClientSignature[SHA1_DIGEST_SIZE], +- uint8_t proof[SHA1_DIGEST_SIZE]) ++void SCRAM_SHA1_ClientProof(const uint8_t ClientKey[SHA_DIGEST_LENGTH], ++ const uint8_t ClientSignature[SHA_DIGEST_LENGTH], ++ uint8_t proof[SHA_DIGEST_LENGTH]) + { + int i; +- for (i = 0; i < SHA1_DIGEST_SIZE; i++) { ++ for (i = 0; i < SHA_DIGEST_LENGTH; i++) { + proof[i] = ClientKey[i] ^ ClientSignature[i]; + } + } +diff --git a/src/scram.h b/src/scram.h +index a0b996b..f81a5b6 100644 +--- src/scram.h ++++ src/scram.h +@@ -19,18 +19,18 @@ + /* make sure the stdint.h types are available */ + #include "ostypes.h" + +-#include "sha1.h" ++#include + + void SCRAM_SHA1_ClientKey(const uint8_t *password, size_t len, + const uint8_t *salt, size_t salt_len, uint32_t i, +- uint8_t key[SHA1_DIGEST_SIZE]); ++ uint8_t key[SHA_DIGEST_LENGTH]); + +-void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA1_DIGEST_SIZE], ++void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA_DIGEST_LENGTH], + const uint8_t *AuthMessage, size_t len, +- uint8_t sign[SHA1_DIGEST_SIZE]); ++ uint8_t sign[SHA_DIGEST_LENGTH]); + +-void SCRAM_SHA1_ClientProof(const uint8_t ClientKey[SHA1_DIGEST_SIZE], +- const uint8_t ClientSignature[SHA1_DIGEST_SIZE], +- uint8_t proof[SHA1_DIGEST_SIZE]); ++void SCRAM_SHA1_ClientProof(const uint8_t ClientKey[SHA_DIGEST_LENGTH], ++ const uint8_t ClientSignature[SHA_DIGEST_LENGTH], ++ uint8_t proof[SHA_DIGEST_LENGTH]); + + #endif /* __LIBSTROPHE_SCRAM_H__ */ Added: head/net-im/libstrophe/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-im/libstrophe/pkg-descr Tue Feb 17 16:02:43 2015 (r379170) @@ -0,0 +1,4 @@ +libstrophe is a minimal XMPP library written in C. It has almost no external +dependencies, only an XML parsing library (expat or libxml are both supported). + +WWW: http://strophe.im/libstrophe/ Added: head/net-im/libstrophe/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-im/libstrophe/pkg-plist Tue Feb 17 16:02:43 2015 (r379170) @@ -0,0 +1,6 @@ +include/strophe.h +lib/libstrophe.so.0.0.0 +lib/libstrophe.so.0 +lib/libstrophe.so +lib/libstrophe.a +libdata/pkgconfig/libstrophe.pc