From 2ebd8fd46d09c7606391f98fc5033fc20da35086 Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 4 Feb 2011 12:05:45 +0000 Subject: Changes 0.8: * Optimization: A bunch of patches by M. Doliner (see svn log for more details) * Feature: Allow the service admin to see the occupants of every rooms * Feature: Allow the service admin to enter a room with nicknames locked even if his nickname isn't the one needed * Feature: option to disable room logging on the whole component * Feature: option to save room log files in subdirectories according to date * Feature: Patch by Smoku to hide empty rooms from disco/browse lists * Bugfix: Two vulnerabilities in mysql module * Bugfix: send code=110 when needed according to XEP-0045 * Bugfix: Fix crash when changing roles * Bugfix: Fixed a bug when entering/leaving a room, it was considered as a nick change * Bugfix: Corrected the errors sent by mu-conference * Bugfix: Better error code when choosing a nick not conform with the room policy * Bugfix: Fixed a segfault in the decline messages handler * Bugfix: Avoid a segfault when asking unique room name with a too big user jid * Bugfix: going in an infinite loop if the user invite the jid "" * Bugfix: Changed error handling - Don't kick a user if the message error is not delivery-related, otherwise user could be kicked when refusing a file transfer for example - If the user is not kicked, don't discard the error, send it to the other user/chatroom * Bugfix: Hide XEP-0203 delay nodes when sending back presences stanzas --- chat/mu-conference/DESCR | 5 +- chat/mu-conference/Makefile | 66 ++++++++++------------ chat/mu-conference/PLIST | 6 +- chat/mu-conference/distinfo | 16 +++--- chat/mu-conference/files/muc.sh | 4 +- chat/mu-conference/patches/patch-aa | 37 ------------ chat/mu-conference/patches/patch-ab | 44 --------------- chat/mu-conference/patches/patch-src_Makefile | 16 ++++++ .../patches/patch-src_jabberd_Makefile | 12 ++++ .../mu-conference/patches/patch-src_jcomp_Makefile | 8 +++ 10 files changed, 80 insertions(+), 134 deletions(-) delete mode 100644 chat/mu-conference/patches/patch-aa delete mode 100644 chat/mu-conference/patches/patch-ab create mode 100644 chat/mu-conference/patches/patch-src_Makefile create mode 100644 chat/mu-conference/patches/patch-src_jabberd_Makefile create mode 100644 chat/mu-conference/patches/patch-src_jcomp_Makefile (limited to 'chat') diff --git a/chat/mu-conference/DESCR b/chat/mu-conference/DESCR index 1cf466f7cf8..dc559da93dd 100644 --- a/chat/mu-conference/DESCR +++ b/chat/mu-conference/DESCR @@ -1,3 +1,2 @@ -Implementation of the Multi-User Chat protocol, as defined in JEP-0045 - -Will work against jabberd or jabberd2 +Implementation of the Multi-User Chat protocol, as defined in XEP-0045. +Will work against jabberd or jabberd2. diff --git a/chat/mu-conference/Makefile b/chat/mu-conference/Makefile index d4c66a5961c..d78fe3d5168 100644 --- a/chat/mu-conference/Makefile +++ b/chat/mu-conference/Makefile @@ -1,25 +1,20 @@ -# $NetBSD: Makefile,v 1.21 2009/01/05 12:19:58 abs Exp $ -# +# $NetBSD: Makefile,v 1.22 2011/02/04 12:05:45 adam Exp $ -DISTNAME= mu-conference-0.6.0 -PKGREVISION= 6 -CATEGORIES= chat -MASTER_SITES= http://jabber.terrapin.com/JCR/ http://www.jabberstudio.org/projects/mu-conference/releases/download.php?file= -DISTFILES= ${DISTNAME}.tar.gz jcr-0.1.2.tar.gz +DISTNAME= mu-conference_0.8 +PKGNAME= ${DISTNAME:S/_/-/} +CATEGORIES= chat +MASTER_SITES= http://download.gna.org/mu-conference/ -MAINTAINER= pkgsrc-users@NetBSD.org -HOMEPAGE= http://jabber.terrapin.com/JCR/ -COMMENT= Implementation of the JEP-0045 Multi-User Chat protocol - -DEPENDS+= jabberd-[0-9]*:../../chat/jabberd2 +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://jabber.terrapin.com/JCR/ +COMMENT= Implementation of the XEP-0045 Multi-User Chat protocol +LICENSE= gnu-gpl-v2 PKG_DESTDIR_SUPPORT= user-destdir -WRKSRC= ${WRKDIR}/jcr-0.1.2 -SUBWRKSRC= ${WRKSRC}/${DISTNAME}/src -XMLCONFIG= ${WRKDIR}/${DISTNAME}/muc-jcr.xml - -USE_TOOLS+= gmake pax pkg-config +USE_TOOLS+= gmake pkg-config +LDFLAGS+= -L${BUILDLINK_PREFIX.expat}/lib +LDFLAGS+= -L${BUILDLINK_PREFIX.libidn}/lib PKG_SYSCONFSUBDIR= jabberd RCD_SCRIPTS= muc @@ -30,33 +25,30 @@ BUILD_DEFS+= JABBERD_LOGDIR JABBERD_PIDDIR JABBERD_USER?= jabberd PKG_USERS_VARS+= JABBERD_USER -FILES_SUBST+= JABBERD_PIDDIR=${JABBERD_PIDDIR:Q} -FILES_SUBST+= JABBERD_USER=${JABBERD_USER:Q} +FILES_SUBST+= JABBERD_PIDDIR=${JABBERD_PIDDIR} +FILES_SUBST+= JABBERD_USER=${JABBERD_USER} EGDIR= ${PREFIX}/share/examples/jabberd -CONF_FILES+= ${EGDIR}/muc-jcr.xml ${PKG_SYSCONFDIR:Q}/muc-jcr.xml +CONF_FILES+= ${EGDIR}/muc.xml ${PKG_SYSCONFDIR}/muc.xml INSTALLATION_DIRS= bin share/examples/jabberd -post-extract: - ${MV} ${XMLCONFIG:Q} ${XMLCONFIG:Q}.in - -pre-configure: - ${SED} -e 's|\(\)[^<]*|\1${JABBERD_LOGDIR}|g' \ - -e 's|\(\).|\1${JABBERD_PIDDIR}|g' \ - -e 's|\(\).|\1${JABBERD_SPOOLDIR}|g' \ - ${XMLCONFIG:Q}.in > ${XMLCONFIG:Q} - -pre-build: - cd ${WRKDIR:Q} && pax -rw -pe ${DISTNAME:Q} ${WRKSRC:Q} - -post-build: - ${CP} ${WRKSRC:Q}/src/main.c ${WRKSRC:Q}/src/jcomp.mk ${SUBWRKSRC:Q} - cd ${SUBWRKSRC:Q} && ${SETENV} ${MAKE_ENV} ${GMAKE} -f jcomp.mk +SUBST_CLASSES+= config +SUBST_STAGE.config= pre-configure +SUBST_MESSAGE.config= Fixing configuration file. +SUBST_FILES.config= muc-default.xml +SUBST_SED.config= -e 's|\(\)[^<]*|\1${JABBERD_LOGDIR}|g' +SUBST_SED.config+= -e 's|\(\).|\1${JABBERD_PIDDIR}|g' +SUBST_SED.config+= -e 's|\(\)./spool|\1${JABBERD_SPOOLDIR}|g' +SUBST_SED.config+= -e 's|\(\)..|\1${EGDIR}|g' do-install: - ${INSTALL_PROGRAM} ${SUBWRKSRC:Q}/mu-conference ${DESTDIR}${PREFIX}/bin - ${INSTALL_DATA} ${WRKSRC:Q}/${DISTNAME:Q}/muc-jcr.xml ${DESTDIR}${EGDIR} + ${INSTALL_PROGRAM} ${WRKSRC}/src/mu-conference ${DESTDIR}${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/mu-conference.sql ${DESTDIR}${EGDIR}/ + ${INSTALL_DATA} ${WRKSRC}/muc-default.xml ${DESTDIR}${EGDIR}/muc.xml + ${INSTALL_DATA} ${WRKSRC}/style.css ${DESTDIR}${EGDIR}/ .include "../../devel/glib2/buildlink3.mk" +.include "../../devel/libidn/buildlink3.mk" +.include "../../textproc/expat/buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/chat/mu-conference/PLIST b/chat/mu-conference/PLIST index 7ff0cac73b4..72d39a6741c 100644 --- a/chat/mu-conference/PLIST +++ b/chat/mu-conference/PLIST @@ -1,4 +1,6 @@ -@comment $NetBSD: PLIST,v 1.2 2005/05/02 20:33:58 reed Exp $ +@comment $NetBSD: PLIST,v 1.3 2011/02/04 12:05:45 adam Exp $ bin/mu-conference -share/examples/jabberd/muc-jcr.xml +share/examples/jabberd/mu-conference.sql +share/examples/jabberd/muc.xml +share/examples/jabberd/style.css share/examples/rc.d/muc diff --git a/chat/mu-conference/distinfo b/chat/mu-conference/distinfo index 102dd4f6c4f..db965263754 100644 --- a/chat/mu-conference/distinfo +++ b/chat/mu-conference/distinfo @@ -1,10 +1,8 @@ -$NetBSD: distinfo,v 1.3 2005/02/23 15:59:12 agc Exp $ +$NetBSD: distinfo,v 1.4 2011/02/04 12:05:45 adam Exp $ -SHA1 (mu-conference-0.6.0.tar.gz) = cc81619378a86c6c449c4122586c353102d4876e -RMD160 (mu-conference-0.6.0.tar.gz) = 58b9bf9354a67dda3b8f5569dfb15f47d9509f14 -Size (mu-conference-0.6.0.tar.gz) = 56272 bytes -SHA1 (jcr-0.1.2.tar.gz) = 057c4e2fb13148a105c8631cea211bdb9c28115b -RMD160 (jcr-0.1.2.tar.gz) = 0436aa4aae26d4e87641133e409af3fb10116ec5 -Size (jcr-0.1.2.tar.gz) = 147439 bytes -SHA1 (patch-aa) = 51cafdb9f8f8696788b82e506c297a0d8545f8eb -SHA1 (patch-ab) = 9cd1511636302e71106199fc08497a300b03bc28 +SHA1 (mu-conference_0.8.tar.gz) = 99b9c68a6415eea3b0c8e840b4ec91e9cc48f2cb +RMD160 (mu-conference_0.8.tar.gz) = a60f8a367b791306c595f63694de1624a52e7b46 +Size (mu-conference_0.8.tar.gz) = 110356 bytes +SHA1 (patch-src_Makefile) = afd3f211c7a9d53c482531303ad8e2125d77a395 +SHA1 (patch-src_jabberd_Makefile) = 4ee5ee36e5fe63af88bfb7f7c92dd5deb8ab594d +SHA1 (patch-src_jcomp_Makefile) = 7d99e2a682dcbfc68976761646b834593184131e diff --git a/chat/mu-conference/files/muc.sh b/chat/mu-conference/files/muc.sh index 323ee581658..81095abcdd1 100644 --- a/chat/mu-conference/files/muc.sh +++ b/chat/mu-conference/files/muc.sh @@ -1,6 +1,6 @@ #!@RCD_SCRIPTS_SHELL@ # -# $NetBSD: muc.sh,v 1.3 2007/08/21 15:30:32 abs Exp $ +# $NetBSD: muc.sh,v 1.4 2011/02/04 12:05:45 adam Exp $ # # PROVIDE: muc # REQUIRE: DAEMON @@ -12,7 +12,7 @@ fi name="muc" rcvar=$name command="@PREFIX@/bin/mu-conference" -required_files="@PKG_SYSCONFDIR@/${name}-jcr.xml" +required_files="@PKG_SYSCONFDIR@/${name}.xml" extra_commands="reload" muc_user="@JABBERD_USER@" command_args="-c ${required_files} > /dev/null 2>&1 &" diff --git a/chat/mu-conference/patches/patch-aa b/chat/mu-conference/patches/patch-aa deleted file mode 100644 index 782e5763496..00000000000 --- a/chat/mu-conference/patches/patch-aa +++ /dev/null @@ -1,37 +0,0 @@ -$NetBSD: patch-aa,v 1.1 2004/07/22 18:02:10 kristerw Exp $ - ---- src/main.c.orig Thu Jul 22 19:54:54 2004 -+++ src/main.c Thu Jul 22 19:55:36 2004 -@@ -34,12 +34,12 @@ - struct stat st; - char *config_file = NULL; - pool p; -- jcr = (jcr_instance)malloc(sizeof(_jcr_instance)); - - GThread *dthread; /* the packet delivery thread */ - GMainLoop *gmain; /* the receive packet event loop */ - - -+ jcr = (jcr_instance)malloc(sizeof(_jcr_instance)); - fprintf(stderr, "%s -- %s\n%s\n\n", _JCOMP_NAME, _JCOMP_VERS, _JCOMP_COPY); - - while ((c = getopt(argc, argv, "Bsd:c:")) != EOF) -@@ -119,6 +119,7 @@ - - - if (inBackground == 1) { -+ int fdlimit, fd; - if ((pid = fork()) == -1) { - fprintf(stderr, "%s: Could not start in background\n", JDBG); - exit(1); -@@ -128,8 +129,8 @@ - - /* in child process .... process and terminal housekeeping */ - setsid(); -- int fdlimit = sysconf(_SC_OPEN_MAX); -- int fd = 0; -+ fdlimit = sysconf(_SC_OPEN_MAX); -+ fd = 0; - while (fd < fdlimit) - close(fd++); - open("/dev/null",O_RDWR); diff --git a/chat/mu-conference/patches/patch-ab b/chat/mu-conference/patches/patch-ab deleted file mode 100644 index 17e1de2c385..00000000000 --- a/chat/mu-conference/patches/patch-ab +++ /dev/null @@ -1,44 +0,0 @@ -$NetBSD: patch-ab,v 1.1 2004/07/22 18:02:10 kristerw Exp $ - ---- jcomp/jcr_elements.c.orig Thu Jul 22 19:49:51 2004 -+++ jcomp/jcr_elements.c Thu Jul 22 19:51:32 2004 -@@ -32,6 +32,8 @@ - if (strncasecmp(name, "stream:stream", 13) == 0) { - char *pass = xmlnode_get_data(xmlnode_get_tag(jcr->config,"secret")); - int i = 0; -+ char hashbuf[41]; -+ xmlnode cur; - if (attrib == NULL) return; - while (attrib[i] != '\0') { - if (strncasecmp(attrib[i], "id", 2) == 0) -@@ -39,12 +41,11 @@ - i += 2; - } - p = pool_new(); -- char hashbuf[41]; - // log_debug(JDBG, "%s = '%s'", attrib[i], attrib[i+1]); - shahash_r(spools(p, attrib[i + 1], pass, p), hashbuf); - - /* Build a handshake packet */ -- xmlnode cur = xmlnode_new_tag("handshake"); -+ cur = xmlnode_new_tag("handshake"); - xmlnode_insert_cdata(cur, hashbuf, -1); - - /* Transmit handshake */ -@@ -91,6 +92,7 @@ - if (jcr->current == NULL) { - g_io_channel_close(jcr->gio); - } else { -+ xmlnode parent; - if (strncasecmp(name, "stream:error", 12) == 0) { - log_warn(JDBG, "%s", xmlnode2str(jcr->current)); - g_io_channel_write_chars(jcr->gio, "", 15, &bytes, NULL); -@@ -100,7 +102,7 @@ - break; - } - -- xmlnode parent = xmlnode_get_parent(jcr->current); -+ parent = xmlnode_get_parent(jcr->current); - if (parent == NULL) { - x = xmlnode_dup(jcr->current); - to = jid_new(x->p, xmlnode_get_attrib(x, "to")); diff --git a/chat/mu-conference/patches/patch-src_Makefile b/chat/mu-conference/patches/patch-src_Makefile new file mode 100644 index 00000000000..dd0e246c4a6 --- /dev/null +++ b/chat/mu-conference/patches/patch-src_Makefile @@ -0,0 +1,16 @@ +$NetBSD: patch-src_Makefile,v 1.1 2011/02/04 12:05:45 adam Exp $ + +--- src/Makefile.orig 2011-02-04 09:37:28.000000000 +0000 ++++ src/Makefile +@@ -1,9 +1,8 @@ +-CC:=gcc +-CFLAGS:=$(CFLAGS) -O2 -Wall -I../../lib -I../include `pkg-config --cflags glib-2.0` -D_JCOMP -D_REENTRANT -DLIBIDN ++CFLAGS:=$(CFLAGS) -Wall -I../../lib -I../include `pkg-config --cflags glib-2.0` -D_JCOMP -D_REENTRANT -DLIBIDN + #CFLAGS:=$(CFLAGS) -O2 -Wall -I../../lib -I../include `pkg-config --cflags glib-2.0` -D_JCOMP -D_REENTRANT -DLIBIDN -DHAVE_MYSQL + LIBS:=$(LIBS) -ljcomp -lm `pkg-config --libs glib-2.0` `pkg-config --libs gthread-2.0` -lexpat -lidn + #LIBS:=$(LIBS) -ljcomp -lm `pkg-config --libs glib-2.0` `pkg-config --libs gthread-2.0` -lexpat -lidn `mysql_config --libs` +-LDFLAGS:=-L. ++LDFLAGS:=-L. $(LDFLAGS) + + # Debug/Experimental + #CFLAGS:=$(CFLAGS) -pipe -Os -I../../jabberd -I../include diff --git a/chat/mu-conference/patches/patch-src_jabberd_Makefile b/chat/mu-conference/patches/patch-src_jabberd_Makefile new file mode 100644 index 00000000000..b56fbceab73 --- /dev/null +++ b/chat/mu-conference/patches/patch-src_jabberd_Makefile @@ -0,0 +1,12 @@ +$NetBSD: patch-src_jabberd_Makefile,v 1.1 2011/02/04 12:05:45 adam Exp $ + +--- src/jabberd/Makefile.orig 2011-02-04 09:39:00.000000000 +0000 ++++ src/jabberd/Makefile +@@ -1,6 +1,5 @@ + +-CC=gcc +-CFLAGS:=$(CFLAGS) -O2 -Wall -I. -I../../include `pkg-config --cflags glib-2.0` -D_REENTRANT -DLIBIDN ++CFLAGS:=$(CFLAGS) -Wall -I. -I../../include `pkg-config --cflags glib-2.0` -D_REENTRANT -DLIBIDN + LIBS= + + JCOMP_LIB_OBJECTS=expat.o \ diff --git a/chat/mu-conference/patches/patch-src_jcomp_Makefile b/chat/mu-conference/patches/patch-src_jcomp_Makefile new file mode 100644 index 00000000000..121fceb8f05 --- /dev/null +++ b/chat/mu-conference/patches/patch-src_jcomp_Makefile @@ -0,0 +1,8 @@ +$NetBSD: patch-src_jcomp_Makefile,v 1.1 2011/02/04 12:05:45 adam Exp $ + +--- src/jcomp/Makefile.orig 2011-02-04 09:44:51.000000000 +0000 ++++ src/jcomp/Makefile 2011-02-04 09:45:02.000000000 +0000 +@@ -3,2 +3 @@ +-CC=gcc +-CFLAGS:=$(CFLAGS) -O2 -Wall -I../../include -I. `pkg-config --cflags glib-2.0` -D_REENTRANT ++CFLAGS:=$(CFLAGS) -Wall -I../../include -I. `pkg-config --cflags glib-2.0` -D_REENTRANT -- cgit v1.2.3