Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Mar 2007 17:32:40 +0100 (CET)
From:      Martin Matuska <martin@matuska.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/110194: [PATCH] net-im/jabber-pyicq
Message-ID:  <20070311163240.D6A613F466@mail.vx.sk>
Resent-Message-ID: <200703111640.l2BGeFvF056294@freefall.freebsd.org>

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

>Number:         110194
>Category:       ports
>Synopsis:       [PATCH] net-im/jabber-pyicq
>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:   Sun Mar 11 16:40:15 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Martin Matuska
>Release:        FreeBSD 6.2-RELEASE
>Organization:
>Environment:
FreeBSD 6.2-RELEASE i386 and amd64
>Description:
This patch adds the following:
- support and documentation for use with jabberd-1.6.0 from net-im/jabber 
- support for other and external servers (if running the transport only)
- support for MySQL storage (includes db-setup.mysql in EXAMPLESDIR)
>How-To-Repeat:
>Fix:
diff -Nbur net-im/jabber-pyicq.orig/Makefile net-im/jabber-pyicq/Makefile
--- net-im/jabber-pyicq.orig/Makefile	Mon Jan 15 12:51:57 2007
+++ net-im/jabber-pyicq/Makefile	Sun Mar 11 17:31:02 2007
@@ -6,7 +6,7 @@
 
 PORTNAME=	pyicq
 PORTVERSION=	0.8
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	net-im
 MASTER_SITES=	http://www.blathersource.org/download.php/pyicq-t/
 PKGNAMEPREFIX=	jabber-
@@ -20,31 +20,60 @@
 RUN_DEPENDS=	${PYTHON_SITELIBDIR}/OpenSSL/__init__.py:${PORTSDIR}/security/py-openssl \
 		${PYTHON_SITELIBDIR}/PIL/__init__.py:${PORTSDIR}/graphics/py-imaging
 
-OPTIONS=	EJABBERD "Use transport with ejabberd" off \
-		TWISTED1 "Use old py-twisted 1.x" off
+OPTIONS=	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 \
+		TWISTED1 "Use old py-twisted 1.x" off \
+		MYSQL "Support MySQL storage" off
 
 NO_BUILD=	yes
 USE_PYTHON=	yes
 USE_RC_SUBR=	jabber-pyicq-transport.sh
 LOCAL_PYTHON=	${PYTHON_CMD}
 
-SUB_FILES=	pkg-message
+SUB_FILES=	pkg-message README.jabberd14 README.jabberd2 README.external
 SUB_LIST=	PYTHON_CMD=${LOCAL_PYTHON}
 
 INST_DIR=	${PREFIX}/lib/jabber/${PORTNAME}
 
-PORTDOCS=	COPYING README NEWS
+PORTDOCS=	COPYING README README.jabberd14 README.jabberd2 \
+		README.external NEWS
 
 .include <bsd.port.pre.mk>
 
-.if defined(WITH_EJABBERD)
+.if (defined(WITH_JABBERD) && (defined(WITH_JABBER) || defined(WITH_EJABBERD))) || \
+	defined(WITH_JABBER) && defined(WITH_EJABBERD)
+IGNORE=	options WITH_JABBER, WITH_JABBERD and WITH_EJABBERD are mutually exclusive
+.endif
+
+.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
-SUB_LIST+=	JABBER_REQUIRE=ejabberd
+JABBER_PIDDIR?=		/var/jabberd/pid
+JABBER_SPOOLDIR?=	/var/spool/jabber
+RUN_DEPENDS+=	ejabberd:${PORTSDIR}/net-im/ejabberd
 .else
-JABBER_USER?=	jabber
-SUB_LIST+=	JABBER_REQUIRE=jabberd
+JABBER_REQUIRE?=	DAEMON
+JABBER_USER?=		nobody
+JABBER_PIDDIR?=		/var/run/pyicq
+JABBER_SPOOLDIR?=	/var/spool/pyicq
 .endif
 
+SUB_LIST+=	JABBER_REQUIRE="${JABBER_REQUIRE}" JABBER_PIDDIR="${JABBER_PIDDIR}" \
+		JABBER_SPOOLDIR="${JABBER_SPOOLDIR}"
+
 .if defined(WITH_TWISTED1)
 RUN_DEPENDS+=	${PYTHON_SITELIBDIR}/twisted/__init__.py:${PORTSDIR}/devel/py-twisted
 .else
@@ -53,11 +82,15 @@
 		${PYTHON_SITELIBDIR}/twisted/words/__init__.py:${PORTSDIR}/net-im/py-twistedWords
 .endif
 
+.if defined(WITH_MYSQL)
+RUN_DEPENDS+=	${PYTHON_SITELIBDIR}/MySQLdb/__init__.py:${PORTSDIR}/databases/py-MySQLdb
+.endif
+
 SUB_LIST+=	JABBER_USER=${JABBER_USER}
 
 post-patch:
-	@${REINPLACE_CMD} -i "" -e '/spooldir/s|\.|/var/spool/jabber|' \
-		-e '/pid/s|PyICQt.pid|/var/jabberd/pid/PyICQt.pid|' \
+	@${REINPLACE_CMD} -i "" -e '/spooldir/s|\.|${JABBER_SPOOLDIR}|' \
+		-e '/pid/s|PyICQt.pid|${JABBER_PIDDIR}/PyICQt.pid|' \
 		${WRKSRC}/config_example.xml
 	@${REINPLACE_CMD} -i "" -e 's,"config.xml","${PREFIX}/etc/jabber-pyicq.xml",' \
 		${WRKSRC}/src/main.py
@@ -75,9 +108,13 @@
 	@${FIND} ${INST_DIR}/src/ -type f -exec ${CHMOD} 644 "{}" \;
 	@${MKDIR} ${EXAMPLESDIR}/etc
 	${INSTALL_DATA} ${WRKSRC}/config_example.xml ${EXAMPLESDIR}/etc/jabber-pyicq.xml
+	${INSTALL_DATA} ${WRKSRC}/tools/db-setup.mysql ${EXAMPLESDIR}
 	[ -f ${PREFIX}/etc/jabber-pyicq.xml ] || ${CP} ${EXAMPLESDIR}/etc/jabber-pyicq.xml ${PREFIX}/etc/jabber-pyicq.xml
 .if !defined(NOPORTDOCS)
 	${MKDIR} ${DOCSDIR}
+.for FILE in README.jabberd14 README.jabberd2 README.external
+	${CP} ${WRKDIR}/${FILE} ${WRKSRC}/${FILE}
+.endfor
 .for portdoc in ${PORTDOCS}
 	${INSTALL_DATA} ${WRKSRC}/${portdoc} ${DOCSDIR}/
 .endfor
diff -Nbur net-im/jabber-pyicq.orig/files/README.external.in net-im/jabber-pyicq/files/README.external.in
--- net-im/jabber-pyicq.orig/files/README.external.in	Thu Jan  1 01:00:00 1970
+++ net-im/jabber-pyicq/files/README.external.in	Sun Mar 11 17:19:37 2007
@@ -0,0 +1,14 @@
+# PyICQ-t and external jabber servers on FreeBSD
+# README by Martin Matuska <martin_at_matuska_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%%
\ No newline at end of file
diff -Nbur net-im/jabber-pyicq.orig/files/README.jabberd14.in net-im/jabber-pyicq/files/README.jabberd14.in
--- net-im/jabber-pyicq.orig/files/README.jabberd14.in	Thu Jan  1 01:00:00 1970
+++ net-im/jabber-pyicq/files/README.jabberd14.in	Sun Mar 11 16:58:17 2007
@@ -0,0 +1,39 @@
+# PyICQ-t and jabberd14 (net-im/jabber) on FreeBSD
+# README by Martin Matuska <martin_at_matuska_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 'icq.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 the ICQ transport 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="icq.localhost">
+    <accept>
+      <ip>127.0.0.1</ip>
+      <port>5347</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="gateway" type="icq" jid="icq.localhost" name="ICQ Transport">
+	  <ns>jabber:iq:gateway</ns>
+	  <ns>jabber:iq:register</ns>
+	</item>
+
+-------------------------------------------------------------------------------
+Be sure to restart your server after reconfiguring.
diff -Nbur net-im/jabber-pyicq.orig/files/README.jabberd2.in net-im/jabber-pyicq/files/README.jabberd2.in
--- net-im/jabber-pyicq.orig/files/README.jabberd2.in	Thu Jan  1 01:00:00 1970
+++ net-im/jabber-pyicq/files/README.jabberd2.in	Sun Mar 11 17:11:49 2007
@@ -0,0 +1,11 @@
+# PyICQ-t and jabberd2 (net-im/jabberd) on FreeBSD
+# README by Martin Matuska <martin_at_matuska_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 DNS of your Jabber server, and
+leave the 'port' setting alone. 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.
diff -Nbur net-im/jabber-pyicq.orig/files/jabber-pyicq-transport.sh.in net-im/jabber-pyicq/files/jabber-pyicq-transport.sh.in
--- net-im/jabber-pyicq.orig/files/jabber-pyicq-transport.sh.in	Wed Apr 26 13:52:33 2006
+++ net-im/jabber-pyicq/files/jabber-pyicq-transport.sh.in	Sun Mar 11 15:02:24 2007
@@ -21,7 +21,7 @@
 
 : ${jabber_pyicq_enable="NO"}
 : ${jabber_pyicq_dir="%%PREFIX%%/lib/jabber/pyicq"}
-: ${jabber_pyicq_piddir="/var/jabberd/pid"}
+: ${jabber_pyicq_piddir="%%JABBER_PIDDIR%%"}
 : ${jabber_pyicq_user="%%JABBER_USER%%"}
 
 pidfile="${jabber_pyicq_piddir}/PyICQt.pid"
diff -Nbur net-im/jabber-pyicq.orig/files/pkg-message.in net-im/jabber-pyicq/files/pkg-message.in
--- net-im/jabber-pyicq.orig/files/pkg-message.in	Tue Jun  7 17:18:15 2005
+++ net-im/jabber-pyicq/files/pkg-message.in	Sun Mar 11 17:17:22 2007
@@ -11,12 +11,14 @@
 * You can also turn on debugging options, and customise some of the text that
   is sent to the users in this file.
 
-If you are using Jabberd2 then you shouldn't have to do much configuration.
-Make sure the 'mainServer' setting is the IP or DNS of your Jabber server, and
-leave the 'port' setting alone. 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.
+Please read instructions for different jabber daemons you desire to use:
+- jabberd14 (net-im/jabber): %%DOCSDIR%%/README.jabberd14
+- jabberd2 (net-im/jabberd): %%DOCSDIR%%/README.jabberd2
 
-If you are using Jabberd1.4.x,  it's a bit more complicated. Follow the setup
-instructions at http://pyicq-t.blathersource.org/install.php
+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.external
+
+If you are using MySQL storage, sample database script can be found in:
+%%EXAMPLESDIR%%/db-setup.mysql
 ******************************************************************************
diff -Nbur net-im/jabber-pyicq.orig/pkg-plist net-im/jabber-pyicq/pkg-plist
--- net-im/jabber-pyicq.orig/pkg-plist	Sun Oct  1 13:56:59 2006
+++ net-im/jabber-pyicq/pkg-plist	Sun Mar 11 12:43:29 2007
@@ -1,5 +1,6 @@
 @comment $FreeBSD: ports/net-im/jabber-pyicq/pkg-plist,v 1.4 2006/10/01 11:56:59 garga Exp $
 @unexec if cmp -s %D/%%EXAMPLESDIR%%/etc/jabber-pyicq.xml %D/etc/jabber-pyicq.xml; then rm -f %D/etc/jabber-pyicq.xml; fi
+%%EXAMPLESDIR%%/db-setup.mysql
 %%EXAMPLESDIR%%/etc/jabber-pyicq.xml
 @exec [ -f %D/etc/jabber-pyicq.xml ] || cp %B/%f %D/etc/jabber-pyicq.xml
 lib/jabber/pyicq/PyICQt.py
>Release-Note:
>Audit-Trail:
>Unformatted:



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