Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Jul 2007 17:08:03 +0200 (CEST)
From:      Martin Matuska <mm@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/114901: [UPDATE] net-im/mu-conference from 0.6.0 to 0.7
Message-ID:  <20070725150803.D5DB843B78@mail.vx.sk>
Resent-Message-ID: <200707251510.l6PFA1CM099233@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         114901
>Category:       ports
>Synopsis:       [UPDATE] net-im/mu-conference from 0.6.0 to 0.7
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jul 25 15:10:00 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Martin Matuska
>Release:        FreeBSD 6.2-STABLE
>Organization:
>Environment:
FreeBSD 6.2-STABLE i386/amd64
>Description:
Update of net-im/mu-conference from 0.6.0 to 0.7, added features:

* Added installation help and pre-configuration for use with:
  - net-im/jabber
  - net-im/jabberd
  - net-im/ejabberd
  (in a way like in net-im/jabber-pyicq, net-im/jabber-pymsn etc.)

* Added MySQL support.
* Updated startup file (correct variables, pidfile location)
* Recrafted port documentation
* Default configuration file gets installed (muc.xml)
* Honours CFLAGS

I would like to ask the maintainer to pass maintainership for this
port to me (mm@FreeBSD.org).

Thank you very much!

>How-To-Repeat:
>Fix:
Index: ports/net-im/mu-conference/Makefile
===================================================================
RCS file: /home/pcvs/ports/net-im/mu-conference/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- ports/net-im/mu-conference/Makefile	16 May 2006 14:45:21 -0000	1.5
+++ ports/net-im/mu-conference/Makefile	25 Jul 2007 14:51:07 -0000
@@ -5,41 +5,117 @@
 # $FreeBSD: ports/net-im/mu-conference/Makefile,v 1.5 2006/05/16 14:45:21 itetcu Exp $
 
 PORTNAME=	mu-conference
-PORTVERSION=	0.6.0
-PORTREVISION=	3
+PORTVERSION=	0.7
 CATEGORIES=	net-im
-MASTER_SITES=	${MASTER_SITE_GENTOO} \
-		http://jabber.terrapin.com/JCR/:jcr
-MASTER_SITE_SUBDIR=	distfiles
-DISTFILES=	${DISTNAME}${EXTRACT_SUFX} jcr-${JCR_VER}.tar.gz:jcr
+MASTER_SITES=	http://download.gna.org/mu-conference/
+DISTNAME=	${PORTNAME}_${PORTVERSION}
 
-MAINTAINER=	dsh@vlink.ru
+MAINTAINER=	mm@FreeBSD.org
 COMMENT=	Multi-User Conferencing component for Jabber
 
-USE_GNOME=	glib20
-USE_RC_SUBR=	${PORTNAME}.sh
+LIB_DEPENDS=	expat.6:${PORTSDIR}/textproc/expat2 \
+		idn.16:${PORTSDIR}/dns/libidn
 
-WRKSRC=		${WRKDIR}/jcr-${JCR_VER}
+USE_GNOME=	glib20 pkgconfig
+USE_RC_SUBR=	${PORTNAME}
 
-JCR_VER?=	0.2.4
+OPTIONS=	MYSQL "Enable MySQL support" off \
+		JABBER "Use with jabberd14 (net-im/jabber)" off \
+		JABBERD "Use with jabberd 2.x (net-im/jabberd)" off \
+		EJABBERD "Use with ejabberd (net-im/ejabberd)" off
 
-post-extract:
-	${MV} ${WRKDIR}/${DISTNAME} ${WRKSRC}
+SUB_FILES+=	pkg-message README.FreeBSD.jabberd14 \
+		README.FreeBSD.jabberd2 README.FreeBSD.external
 
-post-build:
-.for i in jcomp.mk main.c
-	${CP} ${WRKSRC}/src/${i} ${WRKSRC}/${DISTNAME}/src/
-.endfor
-	(cd ${WRKSRC}/${DISTNAME}/src; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} jcomp.mk)
+CFLAGS+=	-I${LOCALBASE}/include
+
+DOCFILES=	AUTHORS COPYING ChangeLog FAQ LICENSE README TODO \
+		XEP0045_SUPPORT muc-default.xml style.css
+
+PORTDOCS=	*
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_MYSQL)
+USE_MYSQL=	yes
+CFLAGS+=	-DHAVE_MYSQL
+DOCFILES+=	README.sql mu-conference.sql
+.endif
+
+MUC_LOGDIR?=	/var/log/mu-conference
+
+.if defined(WITH_JABBER)
+JABBER_REQUIRE?=        jabber
+JABBER_USER?=           jabber
+JABBER_PIDDIR?=         /var/run/jabberd
+JABBER_SPOOLDIR?=       /var/spool/jabberd
+RUN_DEPENDS+=           jabberd14:${PORTSDIR}/net-im/jabber
+.elif defined(WITH_JABBERD)
+JABBER_REQUIRE?=        jabberd
+JABBER_USER?=           jabber
+JABBER_PIDDIR?=         /var/jabberd/pid
+JABBER_SPOOLDIR?=       /var/spool/jabber
+RUN_DEPENDS+=           jabberd:${PORTSDIR}/net-im/jabberd
+.elif defined(WITH_EJABBERD)
+JABBER_REQUIRE?=        ejabberd
+JABBER_USER?=           ejabberd
+JABBER_PIDDIR?=         /var/jabberd/pid
+JABBER_SPOOLDIR?=       /var/spool/jabber
+RUN_DEPENDS+=           ejabberd:${PORTSDIR}/net-im/ejabberd
+.else
+JABBER_REQUIRE?=        DAEMON
+JABBER_USER?=           nobody
+JABBER_PIDDIR?=         /var/run/mu-conference
+JABBER_SPOOLDIR?=       /var/spool/mu-conference
+.endif
+
+SUB_LIST+=	JABBER_REQUIRE="${JABBER_REQUIRE}" \
+		JABBER_PIDDIR="${JABBER_PIDDIR}" \
+		JABBER_SPOOLDIR="${JABBER_SPOOLDIR}" \
+		JABBER_USER=${JABBER_USER} \
+		MUC_LOGDIR=${MUC_LOGDIR}
+
+post-patch:
+	@${REINPLACE_CMD} -e 's#=$$(CFLAGS)#=#g' \
+		-e 's#CFLAGS[:]*=#CFLAGS+=#g' \
+		-e 's#`pkg-config#`${LOCALBASE}/bin/pkg-config#g' \
+		${WRKSRC}/Makefile ${WRKSRC}/*/Makefile \
+		${WRKSRC}/*/*/Makefile
+	@${REINPLACE_CMD} -e 's#<spool>\./spool/chat.localhost#<spool>${JABBER_SPOOLDIR}/conference.localhost#g' \
+		-e 's#<logdir>\./syslogs#<logdir>${LOGDIR}#g' \
+		-e 's#<logdir>\./logs#<logdir>${JABBER_SPOOLDIR}/conference.localhost/logs#g' \
+		-e 's#<pidfile>\.#<pidfile>${JABBER_PIDDIR}#g' \
+		${WRKSRC}/muc-default.xml
+.if defined(WITH_MYSQL)
+	@${REINPLACE_CMD} \
+		-e 's#`mysql_config#`${LOCALBASE}/bin/mysql_config#g' \
+		${WRKSRC}/src/Makefile
+.else
+	@${REINPLACE_CMD} -e 's#`mysql_config --libs`##g' \
+		${WRKSRC}/src/Makefile
+.endif
 
 do-install:
-	${INSTALL_PROGRAM} ${WRKSRC}/${DISTNAME}/src/mu-conference ${PREFIX}/bin
-	${INSTALL_DATA} ${WRKSRC}/${DISTNAME}/muc-jcr.xml ${PREFIX}/etc/muc.xml-dist
+	${INSTALL_PROGRAM} ${WRKSRC}/src/mu-conference ${PREFIX}/bin
+	${INSTALL_DATA} ${WRKSRC}/muc-default.xml ${PREFIX}/etc/muc.xml.sample
+	@if ! [ -f ${PREFIX}/etc/muc.xml ]; then \
+		${INSTALL_DATA} ${WRKSRC}/muc-default.xml ${PREFIX}/etc/muc.xml; \
+	fi
 .if !defined(NOPORTDOCS)
-	${MKDIR} ${DOCSDIR}
-.for i in FAQ README
-	${INSTALL_DATA} ${WRKSRC}/${DISTNAME}/${i} ${DOCSDIR}
+	@${MKDIR} ${DOCSDIR}/scripts
+.for FILE in README.FreeBSD.jabberd14 README.FreeBSD.jabberd2 README.FreeBSD.external
+	@${INSTALL_DATA} ${WRKDIR}/${FILE} ${DOCSDIR}
+.endfor
+.for FILE in ${DOCFILES}
+	@${INSTALL_DATA} ${WRKSRC}/${FILE} ${DOCSDIR}
+.endfor
+	${INSTALL_DATA} ${WRKSRC}/scripts/README ${DOCSDIR}/scripts
+.for FILE in roommaker.pl roomname.pl
+	${INSTALL_SCRIPT} ${WRKSRC}/scripts/${FILE} ${DOCSDIR}/scripts
 .endfor
 .endif
 
-.include <bsd.port.mk>
+post-install:
+	@${CAT} ${PKGMESSAGE}
+
+.include <bsd.port.post.mk>
Index: ports/net-im/mu-conference/distinfo
===================================================================
RCS file: /home/pcvs/ports/net-im/mu-conference/distinfo,v
retrieving revision 1.2
diff -u -r1.2 distinfo
--- ports/net-im/mu-conference/distinfo	1 Feb 2006 01:02:01 -0000	1.2
+++ ports/net-im/mu-conference/distinfo	25 Jul 2007 14:51:07 -0000
@@ -1,6 +1,3 @@
-MD5 (mu-conference-0.6.0.tar.gz) = e97433bf4a978329d639ce872bee3223
-SHA256 (mu-conference-0.6.0.tar.gz) = 9cc4d95f9dd8f658f174a156b768c64e0b2f30646acdd1915e97e3d1ac8c1466
-SIZE (mu-conference-0.6.0.tar.gz) = 56272
-MD5 (jcr-0.2.4.tar.gz) = f88bcc4a8347fd1dd8ca50dff50341f3
-SHA256 (jcr-0.2.4.tar.gz) = 0899920f511495a9ada6b15bd6ad4aeaa8dcc680d6f46e0f07ab718dc5689f75
-SIZE (jcr-0.2.4.tar.gz) = 128939
+MD5 (mu-conference_0.7.tar.gz) = 019e75d80a51da63ba7567341483b2e9
+SHA256 (mu-conference_0.7.tar.gz) = 914d7e5cf45c50e3eaae77d03d895211d332f85469f4a70adaf7209917d27a35
+SIZE (mu-conference_0.7.tar.gz) = 112381
Index: ports/net-im/mu-conference/pkg-descr
===================================================================
RCS file: /home/pcvs/ports/net-im/mu-conference/pkg-descr,v
retrieving revision 1.1
diff -u -r1.1 pkg-descr
--- ports/net-im/mu-conference/pkg-descr	18 Feb 2005 14:42:49 -0000	1.1
+++ ports/net-im/mu-conference/pkg-descr	25 Jul 2007 14:51:07 -0000
@@ -1,4 +1,4 @@
-An implemention of the conference server using the protocol defined in
-JEP-0045.
+MU-Conference is a Jabber/XMPP server component. It provides an implementation
+of Multi-User Chat (XEP-0045) - Jabber chatrooms.
 
-WWW: http://www.jabberstudio.org/projects/mu-conference
+WWW: https://gna.org/projects/mu-conference/
Index: ports/net-im/mu-conference/pkg-plist
===================================================================
RCS file: /home/pcvs/ports/net-im/mu-conference/pkg-plist,v
retrieving revision 1.1
diff -u -r1.1 pkg-plist
--- ports/net-im/mu-conference/pkg-plist	18 Feb 2005 14:42:49 -0000	1.1
+++ ports/net-im/mu-conference/pkg-plist	25 Jul 2007 14:51:07 -0000
@@ -1,5 +1,7 @@
+@unexec if cmp -s %D/etc/muc.xml.sample %D/etc/muc.xml; then rm -f %D/etc/muc.xml; fi
 bin/mu-conference
-etc/muc.xml-dist
-%%PORTDOCS%%%%DOCSDIR%%/FAQ
-%%PORTDOCS%%%%DOCSDIR%%/README
-%%PORTDOCS%%@dirrm %%DOCSDIR%%
+etc/muc.xml.sample
+%%PORTDOCS%%%%DOCSDIR%%/scripts/README
+%%PORTDOCS%%%%DOCSDIR%%/scripts/roomname.pl
+%%PORTDOCS%%%%DOCSDIR%%/scripts/roommaker.pl
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/scripts
Index: ports/net-im/mu-conference/files/README.FreeBSD.external.in
===================================================================
RCS file: ports/net-im/mu-conference/files/README.FreeBSD.external.in
diff -N ports/net-im/mu-conference/files/README.FreeBSD.external.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ports/net-im/mu-conference/files/README.FreeBSD.external.in	25 Jul 2007 14:51:07 -0000
@@ -0,0 +1,14 @@
+# MU-Conference and external jabber servers on FreeBSD
+# README by Martin Matuska <mm_at_FreeBSD_dot_org>
+
+If you did not select WITH_JABBER, WITH_JABBERD or WITH_EJABBERD, you may want
+to use another or external jabber server. To run the transport locally, you may
+need to create the pid and spool directories manually.
+
+Default pahts of the current installation are:
+%%JABBER_PIDDIR%%
+%%JABBER_SPOOLDIR%%
+
+You should make these paths writable for the service user.
+Default service user for this installation:
+%%JABBER_USER%%
Index: ports/net-im/mu-conference/files/README.FreeBSD.jabberd14.in
===================================================================
RCS file: ports/net-im/mu-conference/files/README.FreeBSD.jabberd14.in
diff -N ports/net-im/mu-conference/files/README.FreeBSD.jabberd14.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ports/net-im/mu-conference/files/README.FreeBSD.jabberd14.in	25 Jul 2007 14:51:07 -0000
@@ -0,0 +1,38 @@
+# MU-Conference and jabberd14 (net-im/jabber) on FreeBSD
+# README by Martin Matuska <mm_at_FreeBSD_dot_org>
+
+The sample configuration file for jabberd14 may be located in:
+%%TARGETDIR%%/etc/jabber.xml.sample
+
+Please make all necessary changes to your configuration file which may be:
+%%TARGETDIR%%/etc/jabber.xml
+
+NOTE: if you want this service to be accessible from other servers,
+ change any 'conference.localhost' listed below to a fully qualified 
+ domain name! Please make sure that your directives are _NOT_ in an XML 
+ comment: there are many multi-line comments. 
+
+To activate MU-Conference for your Jabber server, 
+add the following to your configuration file and adjust to your settings
+(around line 921 in the sample configuration file):
+-------------------------------------------------------------------------------
+
+  <service id="conference.localhost">
+    <accept>
+      <ip>127.0.0.1</ip>
+      <port>7009</port>
+      <secret>password</secret>
+    </accept>
+  </service>
+
+-------------------------------------------------------------------------------
+Add this section to the browse area of the jsm to advertise it to
+your users (around line 382 of the sample config):
+-------------------------------------------------------------------------------
+
+	<item category="conference" type="public" jid="conference.localhost" name="Public Conferencing">
+	  <ns>jabber:iq:conference</ns>
+	</item>
+
+-------------------------------------------------------------------------------
+Be sure to restart your server after reconfiguring.
Index: ports/net-im/mu-conference/files/README.FreeBSD.jabberd2.in
===================================================================
RCS file: ports/net-im/mu-conference/files/README.FreeBSD.jabberd2.in
diff -N ports/net-im/mu-conference/files/README.FreeBSD.jabberd2.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ports/net-im/mu-conference/files/README.FreeBSD.jabberd2.in	25 Jul 2007 14:51:07 -0000
@@ -0,0 +1,11 @@
+# MU-Conference and jabberd2 (net-im/jabberd) on FreeBSD
+# README by Martin Matuska <mm_at_FreeBSD_dot_org>
+
+The configuration for jabberd2 is located in:
+%%TARGETDIR%%/etc/jabberd
+
+If you are using Jabberd2 then you shouldn't have to do much configuration.
+Make sure the 'mainServer' setting is the IP or hostname of your Jabber server,
+and set 'port' to 5347. Double-check that the secret for legacy components 
+in router.xml (for Jabberd2) is the same as the secret setting in config.py. 
+That should be all. You don't even need to restart Jabberd2.
Index: ports/net-im/mu-conference/files/mu-conference.in
===================================================================
RCS file: ports/net-im/mu-conference/files/mu-conference.in
diff -N ports/net-im/mu-conference/files/mu-conference.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ports/net-im/mu-conference/files/mu-conference.in	25 Jul 2007 14:51:07 -0000
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# $FreeBSD$
+
+# PROVIDE: mu_conference
+# REQUIRE: %%JABBER_REQUIRE%%
+# KEYWORD: shutdown
+
+# Define these mu_conference_* variables in one of these files:
+#       /etc/rc.conf
+#       /etc/rc.conf.local
+#
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
+#
+# mu_conference_config : path
+#   Path to the configuration file ("%%PREFIX%%/etc/muc.xml", the default).
+#
+# mu_conference_enable : bool
+#   Enable ("YES") or disable ("NO", the default) this startup script.
+#
+
+. %%RC_SUBR%%
+
+name="mu_conference"
+rcvar=`set_rcvar`
+
+command="%%PREFIX%%/bin/mu-conference"
+pidfile=${mu_conference_pidfile:-"%%JABBER_PIDDIR%%/mu-conference.pid"}
+
+stop_postcmd="mu_conference_stop_post"
+
+mu_conference_stop_post () {
+        rm -f ${pidfile}
+}
+
+load_rc_config $name
+
+: ${mu_conference_config="%%PREFIX%%/etc/muc.xml"}
+: ${mu_conference_enable="NO"}
+: ${mu_conference_user="%%JABBER_USER%%"}
+
+command_args="-c ${mu_conference_config} -B >/dev/null 2>&1"
+
+run_rc_command "$1"
Index: ports/net-im/mu-conference/files/mu-conference.sh.in
===================================================================
RCS file: ports/net-im/mu-conference/files/mu-conference.sh.in
diff -N ports/net-im/mu-conference/files/mu-conference.sh.in
--- ports/net-im/mu-conference/files/mu-conference.sh.in	10 Jul 2006 18:32:32 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-# Start or stop jabber's mu-conference
-# $FreeBSD: ports/net-im/mu-conference/files/mu-conference.sh.in,v 1.2 2006/07/10 18:32:32 dougb Exp $
-
-# PROVIDE: mu_conference
-# REQUIRE: DAEMON jabberd
-# KEYWORD: shutdown
-#
-# Define these mu_conference_* variables in one of these files:
-#       /etc/rc.conf
-#       /etc/rc.conf.local
-#       /etc/rc.conf.d/mu_conference
-#
-# DO NOT CHANGE THESE DEFAULT VALUES HERE
-#
-# mu_conference_config : path
-#   Path to the configuration file ("%%PREFIX%%/etc/muc.xml", the default).
-#
-# mu_conference_enable : bool
-#   Enable ("YES") or disable ("NO", the default) this startup script.
-#
-
-. %%RC_SUBR%%
-
-name="mu_conference"
-rcvar=`set_rcvar`
-
-command="%%PREFIX%%/bin/mu-conference"
-pidfile="/var/jabberd/pid/mu-conference.pid"
-
-stop_postcmd="mu_conference_stop_post"
-
-mu_conference_stop_post () {
-        rm -f ${pidfile}
-}
-
-load_rc_config $name
-
-: ${mu_conference_config="%%PREFIX%%/etc/muc.xml"}
-: ${mu_conference_enable="NO"}
-: ${mu_conference_user="jabber"}
-
-command_args="-c $mu_conference_config -B"
-
-run_rc_command "$1"
-
Index: ports/net-im/mu-conference/files/patch-src-jcomp.mk
===================================================================
RCS file: ports/net-im/mu-conference/files/patch-src-jcomp.mk
diff -N ports/net-im/mu-conference/files/patch-src-jcomp.mk
--- ports/net-im/mu-conference/files/patch-src-jcomp.mk	18 Feb 2005 14:42:49 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- src/jcomp.mk.orig	Sun Oct 26 15:35:19 2003
-+++ src/jcomp.mk	Mon Feb  9 16:03:18 2004
-@@ -25,7 +25,7 @@
- #CFLAGS:=$(CFLAGS) -pipe -Os -I../../jabberd -I../include 
- #LIBS:=$(LIBS) /usr/local/lib/ccmalloc-gcc.o -lccmalloc 
- #LIBS:=$(LIBS) -lmemusage
--LIBS:=$(LIBS) -ljcomp -lm `pkg-config --libs glib-2.0` `pkg-config --libs gthread-2.0`
-+LIBS:=-ljcomp -lm `pkg-config --libs glib-2.0` `pkg-config --libs gthread-2.0`
- LDFLAGS:=-L../../lib 
- 
- conference_OBJECTS=conference.o conference_room.o conference_user.o utils.o xdata.o admin.o roles.o xdb.o hash.o main.o
Index: ports/net-im/mu-conference/files/pkg-message.in
===================================================================
RCS file: ports/net-im/mu-conference/files/pkg-message.in
diff -N ports/net-im/mu-conference/files/pkg-message.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ports/net-im/mu-conference/files/pkg-message.in	25 Jul 2007 14:51:07 -0000
@@ -0,0 +1,21 @@
+******************************************************************************
+Remember to edit %%PREFIX%%/etc/muc.xml to suit your needs.
+
+If necessary, please create directories owned by user "%%JABBER_USER%%":
+%%JABBER_SPOOLDIR%%/conference.localhost
+%%JABBER_SPOOLDIR%%/conference.localhost/logs
+%%MUC_LOGDIR%%
+
+Please read instructions for different jabber daemons you desire to use:
+- jabberd14 (net-im/jabber): 
+	%%DOCSDIR%%/README.FreeBSD.jabberd14
+- jabberd2 (net-im/jabberd): 
+	%%DOCSDIR%%/README.FreeBSD.jabberd2
+
+If you did not select WITH_JABBER, WITH_JABBERD or WITH_EJABBERD, you may want
+to use another or an external jabber server. Please read instructions from:
+%%DOCSDIR%%/README.FreeBSD.external
+
+If you are using MySQL, sample database script can be found in:
+%%DOCSDIR%%/mu-conference.sql
+******************************************************************************
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070725150803.D5DB843B78>