ports/62585: New port: net/mu-conference (Multi-User Conferencing component for Jabber)
Denis Shaposhnikov
dsh at vlink.ru
Mon Feb 9 13:50:03 UTC 2004
>Number: 62585
>Category: ports
>Synopsis: New port: net/mu-conference (Multi-User Conferencing component for Jabber)
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Feb 09 05:50:01 PST 2004
>Closed-Date:
>Last-Modified:
>Originator: Denis Shaposhnikov
>Release: FreeBSD 4.9-STABLE i386
>Organization:
>Environment:
System: FreeBSD neva.vlink.ru 4.9-STABLE FreeBSD 4.9-STABLE #0: Thu Nov 27 10:39:57 MSK 2003 dsh at neva.vlink.ru:/var/FreeBSD/src/sys/compile/NEVA i386
>Description:
An implemention of the conference server using the protocol defined in
JEP-0045.
WWW: http://www.jabberstudio.org/projects/mu-conference
>How-To-Repeat:
>Fix:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# mu-conference/
# mu-conference/Makefile
# mu-conference/distinfo
# mu-conference/pkg-descr
# mu-conference/files
# mu-conference/files/patch-src-jcomp.mk
# mu-conference/files/patch-jcomp-jcr_elements.c
# mu-conference/files/patch-src-main.c
# mu-conference/pkg-plist
#
echo c - mu-conference/
mkdir -p mu-conference/ > /dev/null 2>&1
echo x - mu-conference/Makefile
sed 's/^X//' >mu-conference/Makefile << 'END-of-mu-conference/Makefile'
X# New ports collection makefile for: mu-conference
X# Date created: Mon Feb 9 15:34:59 MSK 2004
X# Whom: Denis Shaposhnikov <dsh at vlink.ru>
X#
X# $FreeBSD$
X
XPORTNAME= mu-conference
XPORTVERSION= 0.6.0
XCATEGORIES= net
XMASTER_SITES= http://www.jabberstudio.org/projects/${PORTNAME}/releases/download.php?file= \
X http://jabber.terrapin.com/JCR
XDISTFILES= ${DISTNAME}${EXTRACT_SUFX} jcr-${JCR_VER}.tar.gz
X
XMAINTAINER= dsh at vlink.ru
XCOMMENT= Multi-User Conferencing component for Jabber
X
XUSE_GNOME= glib20
XWRKSRC= ${WRKDIR}/jcr-${JCR_VER}
X
XJCR_VER?= 0.1.2
X
Xpost-extract:
X ${MV} ${WRKDIR}/${DISTNAME} ${WRKSRC}
X
Xpost-build:
X.for i in jcomp.mk main.c
X ${CP} ${WRKSRC}/src/${i} ${WRKSRC}/${DISTNAME}/src/
X.endfor
X (cd ${WRKSRC}/${DISTNAME}/src; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} jcomp.mk)
X
Xdo-install:
X ${INSTALL_PROGRAM} ${WRKSRC}/${DISTNAME}/src/mu-conference \
X ${PREFIX}/bin/
X ${INSTALL_DATA} ${WRKSRC}/${DISTNAME}/muc-jcr.xml \
X ${PREFIX}/etc/muc.xml-dist
X.if !defined(NOPORTDOCS)
X ${MKDIR} ${PREFIX}/share/doc/${PORTNAME}
X.for i in FAQ README
X ${INSTALL_DATA} ${WRKSRC}/${DISTNAME}/${i} \
X ${PREFIX}/share/doc/${PORTNAME}/
X.endfor
X.endif
X
X.include <bsd.port.mk>
END-of-mu-conference/Makefile
echo x - mu-conference/distinfo
sed 's/^X//' >mu-conference/distinfo << 'END-of-mu-conference/distinfo'
XMD5 (mu-conference-0.6.0.tar.gz) = e97433bf4a978329d639ce872bee3223
XSIZE (mu-conference-0.6.0.tar.gz) = 56272
XMD5 (jcr-0.1.2.tar.gz) = 622a1bf538d5adc92a516c7ef4bfbf57
XSIZE (jcr-0.1.2.tar.gz) = 147439
END-of-mu-conference/distinfo
echo x - mu-conference/pkg-descr
sed 's/^X//' >mu-conference/pkg-descr << 'END-of-mu-conference/pkg-descr'
XAn implemention of the conference server using the protocol defined in
XJEP-0045.
X
XWWW: http://www.jabberstudio.org/projects/mu-conference
END-of-mu-conference/pkg-descr
echo c - mu-conference/files
mkdir -p mu-conference/files > /dev/null 2>&1
echo x - mu-conference/files/patch-src-jcomp.mk
sed 's/^X//' >mu-conference/files/patch-src-jcomp.mk << 'END-of-mu-conference/files/patch-src-jcomp.mk'
X--- src/jcomp.mk.orig Sun Oct 26 15:35:19 2003
X+++ src/jcomp.mk Mon Feb 9 16:03:18 2004
X@@ -25,7 +25,7 @@
X #CFLAGS:=$(CFLAGS) -pipe -Os -I../../jabberd -I../include
X #LIBS:=$(LIBS) /usr/local/lib/ccmalloc-gcc.o -lccmalloc
X #LIBS:=$(LIBS) -lmemusage
X-LIBS:=$(LIBS) -ljcomp -lm `pkg-config --libs glib-2.0` `pkg-config --libs gthread-2.0`
X+LIBS:=-ljcomp -lm `pkg-config --libs glib-2.0` `pkg-config --libs gthread-2.0`
X LDFLAGS:=-L../../lib
X
X conference_OBJECTS=conference.o conference_room.o conference_user.o utils.o xdata.o admin.o roles.o xdb.o hash.o main.o
END-of-mu-conference/files/patch-src-jcomp.mk
echo x - mu-conference/files/patch-jcomp-jcr_elements.c
sed 's/^X//' >mu-conference/files/patch-jcomp-jcr_elements.c << 'END-of-mu-conference/files/patch-jcomp-jcr_elements.c'
X--- jcomp/jcr_elements.c.orig Wed Nov 5 06:42:42 2003
X+++ jcomp/jcr_elements.c Mon Feb 9 16:07:17 2004
X@@ -30,6 +30,8 @@
X
X case _STREAM_INIT_STATE:
X if (strncasecmp(name, "stream:stream", 13) == 0) {
X+ char hashbuf[41];
X+ xmlnode cur;
X char *pass = xmlnode_get_data(xmlnode_get_tag(jcr->config,"secret"));
X int i = 0;
X if (attrib == NULL) return;
X@@ -39,12 +41,11 @@
X i += 2;
X }
X p = pool_new();
X- char hashbuf[41];
X // log_debug(JDBG, "%s = '%s'", attrib[i], attrib[i+1]);
X shahash_r(spools(p, attrib[i + 1], pass, p), hashbuf);
X
X /* Build a handshake packet */
X- xmlnode cur = xmlnode_new_tag("handshake");
X+ cur = xmlnode_new_tag("handshake");
X xmlnode_insert_cdata(cur, hashbuf, -1);
X
X /* Transmit handshake */
X@@ -91,6 +92,7 @@
X if (jcr->current == NULL) {
X g_io_channel_close(jcr->gio);
X } else {
X+ xmlnode parent;
X if (strncasecmp(name, "stream:error", 12) == 0) {
X log_warn(JDBG, "%s", xmlnode2str(jcr->current));
X g_io_channel_write_chars(jcr->gio, "</stream:stream>", 15, &bytes, NULL);
X@@ -100,7 +102,7 @@
X break;
X }
X
X- xmlnode parent = xmlnode_get_parent(jcr->current);
X+ parent = xmlnode_get_parent(jcr->current);
X if (parent == NULL) {
X x = xmlnode_dup(jcr->current);
X to = jid_new(x->p, xmlnode_get_attrib(x, "to"));
END-of-mu-conference/files/patch-jcomp-jcr_elements.c
echo x - mu-conference/files/patch-src-main.c
sed 's/^X//' >mu-conference/files/patch-src-main.c << 'END-of-mu-conference/files/patch-src-main.c'
X--- src/main.c.orig Sun Nov 2 01:27:21 2003
X+++ src/main.c Mon Feb 9 14:45:16 2004
X@@ -34,11 +34,12 @@
X struct stat st;
X char *config_file = NULL;
X pool p;
X- jcr = (jcr_instance)malloc(sizeof(_jcr_instance));
X
X GThread *dthread; /* the packet delivery thread */
X GMainLoop *gmain; /* the receive packet event loop */
X
X+ jcr = (jcr_instance)malloc(sizeof(_jcr_instance));
X+
X
X fprintf(stderr, "%s -- %s\n%s\n\n", _JCOMP_NAME, _JCOMP_VERS, _JCOMP_COPY);
X
X@@ -119,6 +120,7 @@
X
X
X if (inBackground == 1) {
X+ int fdlimit, fd;
X if ((pid = fork()) == -1) {
X fprintf(stderr, "%s: Could not start in background\n", JDBG);
X exit(1);
X@@ -128,8 +130,8 @@
X
X /* in child process .... process and terminal housekeeping */
X setsid();
X- int fdlimit = sysconf(_SC_OPEN_MAX);
X- int fd = 0;
X+ fdlimit = sysconf(_SC_OPEN_MAX);
X+ fd = 0;
X while (fd < fdlimit)
X close(fd++);
X open("/dev/null",O_RDWR);
END-of-mu-conference/files/patch-src-main.c
echo x - mu-conference/pkg-plist
sed 's/^X//' >mu-conference/pkg-plist << 'END-of-mu-conference/pkg-plist'
Xbin/mu-conference
Xetc/muc.xml-dist
X%%PORTDOCS%%share/doc/mu-conference/FAQ
X%%PORTDOCS%%share/doc/mu-conference/README
X%%PORTDOCS%%@dirrm share/doc/mu-conference
END-of-mu-conference/pkg-plist
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list