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
This commit is contained in:
adam 2011-02-04 12:05:45 +00:00
parent 79fe86663a
commit c3b8a6bba4
10 changed files with 80 additions and 134 deletions

View file

@ -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.

View file

@ -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|\(<logdir>\)[^<]*|\1${JABBERD_LOGDIR}|g' \
-e 's|\(<pidfile>\).|\1${JABBERD_PIDDIR}|g' \
-e 's|\(<spool>\).|\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|\(<logdir>\)[^<]*|\1${JABBERD_LOGDIR}|g'
SUBST_SED.config+= -e 's|\(<pidfile>\).|\1${JABBERD_PIDDIR}|g'
SUBST_SED.config+= -e 's|\(<spool>\)./spool|\1${JABBERD_SPOOLDIR}|g'
SUBST_SED.config+= -e 's|\(<stylesheet>\)..|\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"

View file

@ -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

View file

@ -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

View file

@ -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 &"

View file

@ -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);

View file

@ -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, "</stream:stream>", 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"));

View file

@ -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

View file

@ -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 \

View file

@ -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