aboutsummaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorTilman Keskinoz <arved@FreeBSD.org>2015-02-17 16:02:43 +0000
committerTilman Keskinoz <arved@FreeBSD.org>2015-02-17 16:02:43 +0000
commitdbdecc9f33e12a3b38fbcd3b01dddea4d88ba9c7 (patch)
tree7ccbaf0635077267af9f5dd31f88d03c38935da6 /net-im
parent422175aa359c1438fb89806de08cabd4cd4f7d8b (diff)
Notes
Diffstat (limited to 'net-im')
-rw-r--r--net-im/Makefile1
-rw-r--r--net-im/libstrophe/Makefile30
-rw-r--r--net-im/libstrophe/distinfo2
-rw-r--r--net-im/libstrophe/files/patch-configure.ac72
-rw-r--r--net-im/libstrophe/files/patch-use-openssl-sha1241
-rw-r--r--net-im/libstrophe/pkg-descr4
-rw-r--r--net-im/libstrophe/pkg-plist6
7 files changed, 356 insertions, 0 deletions
diff --git a/net-im/Makefile b/net-im/Makefile
index 58ea3d89e0b0..8f0c923de6f7 100644
--- a/net-im/Makefile
+++ b/net-im/Makefile
@@ -58,6 +58,7 @@
SUBDIR += libnice-gst010
SUBDIR += libnice-gst1
SUBDIR += libpurple
+ SUBDIR += libstrophe
SUBDIR += libtelepathy
SUBDIR += libyahoo2
SUBDIR += licq
diff --git a/net-im/libstrophe/Makefile b/net-im/libstrophe/Makefile
new file mode 100644
index 000000000000..7360599ba38d
--- /dev/null
+++ b/net-im/libstrophe/Makefile
@@ -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 <bsd.port.mk>
diff --git a/net-im/libstrophe/distinfo b/net-im/libstrophe/distinfo
new file mode 100644
index 000000000000..747644826987
--- /dev/null
+++ b/net-im/libstrophe/distinfo
@@ -0,0 +1,2 @@
+SHA256 (libstrophe-0.8.7.tar.gz) = 455ee68951a1460d71676ce1e4d50f21a0af07bdca3e3a1c44fd149e5a375bed
+SIZE (libstrophe-0.8.7.tar.gz) = 125960
diff --git a/net-im/libstrophe/files/patch-configure.ac b/net-im/libstrophe/files/patch-configure.ac
new file mode 100644
index 000000000000..7d675164f56a
--- /dev/null
+++ b/net-im/libstrophe/files/patch-configure.ac
@@ -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)
diff --git a/net-im/libstrophe/files/patch-use-openssl-sha1 b/net-im/libstrophe/files/patch-use-openssl-sha1
new file mode 100644
index 000000000000..2796725d81dc
--- /dev/null
+++ b/net-im/libstrophe/files/patch-use-openssl-sha1
@@ -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 <openssl/sha.h>
+ #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 <assert.h>
+ #include <string.h>
+
+-#include "sha1.h"
++#include <openssl/sha.h>
+ #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<openssl/sha.h>
+
+ 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__ */
diff --git a/net-im/libstrophe/pkg-descr b/net-im/libstrophe/pkg-descr
new file mode 100644
index 000000000000..0d4d4c8c077b
--- /dev/null
+++ b/net-im/libstrophe/pkg-descr
@@ -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/
diff --git a/net-im/libstrophe/pkg-plist b/net-im/libstrophe/pkg-plist
new file mode 100644
index 000000000000..823c8e66cedf
--- /dev/null
+++ b/net-im/libstrophe/pkg-plist
@@ -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