Browse Source

upgrade to JabberD 2.0 (hopefully this isn't totally broken ;-)

master
parent
commit
55726b5820
  1. 214
      jabberd/jabberd.patch
  2. 142
      jabberd/jabberd.spec
  3. 69
      jabberd/rc.jabberd

214
jabberd/jabberd.patch

@ -1,37 +1,177 @@
Index: jabberd/jabberd.h
--- jabberd/jabberd.h.orig 2003-11-13 12:22:42.000000000 +0100
+++ jabberd/jabberd.h 2003-12-17 09:29:41.000000000 +0100
@@ -30,7 +30,7 @@
#include "lib/lib.h"
#include <pth.h>
#ifdef HAVE_SSL
-#include <ssl.h>
+#include <openssl/ssl.h>
#endif /* HAVE_SSL */
#define VERSION "1.4.3"
Index: jabberd/mio_ssl.c
--- jabberd/mio_ssl.c.orig 2003-11-08 01:09:50.000000000 +0100
+++ jabberd/mio_ssl.c 2003-12-17 09:29:28.000000000 +0100
@@ -1,6 +1,6 @@
#include "jabberd.h"
#ifdef HAVE_SSL
-#include <err.h>
+#include <openssl/err.h>
HASHTABLE ssl__ctxs;
extern int mio__errno;
Index: jsm/modules/mod_auth_crypt.c
--- jsm/modules/mod_auth_crypt.c.orig 2003-10-27 20:16:50.000000000 +0100
+++ jsm/modules/mod_auth_crypt.c 2003-12-17 09:28:50.000000000 +0100
@@ -28,7 +28,9 @@
*
* --------------------------------------------------------------------------*/
#include "jsm.h"
-#include "crypt.h"
+#ifndef __FreeBSD__
+#include <crypt.h>
+#endif
#define HASH_CRYPT 1
#define HASH_SHA1 2
Index: util/util.h
--- util/util.h.orig 2004-05-31 23:31:06 +0200
+++ util/util.h 2004-09-22 21:26:44 +0200
@@ -30,6 +30,8 @@
#include <time.h>
#include <errno.h>
#include <assert.h>
+#include <sys/types.h>
+#include <sys/socket.h>
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
Index: etc/c2s.xml.dist.in
--- etc/c2s.xml.dist.in.orig 2004-04-26 07:42:53 +0200
+++ etc/c2s.xml.dist.in 2004-09-22 21:48:33 +0200
@@ -46,18 +46,16 @@
</router>
<!-- Log configuration - type is "syslog", "file" or "stdout" -->
- <log type='syslog'>
+ <log type='file'>
<!-- If logging to syslog, this is the log ident -->
- <ident>jabberd/c2s</ident>
+ <!-- <ident>jabberd/c2s</ident> -->
<!-- If logging to syslog, this is the log facility
(local0 - local7) [default: local3] -->
- <facility>local3</facility>
+ <!-- <facility>local3</facility> -->
<!-- If logging to file, this is the filename of the logfile -->
- <!--
<file>@localstatedir@/jabberd/log/c2s.log</file>
- -->
</log>
<!-- Local network configuration -->
@@ -78,7 +76,7 @@
<!-- <id realm='company'>localhost</id> -->
<!-- IP address to bind to (default: 0.0.0.0) -->
- <ip>0.0.0.0</ip>
+ <ip>127.0.0.1</ip>
<!-- Port to bind to, or 0 to disable unencrypted access to the
server (default: 5222) -->
@@ -206,7 +204,7 @@
<!-- Authentication/registration database configuration -->
<authreg>
<!-- Backend module to use -->
- <module>mysql</module>
+ <module>db</module>
<!-- Registration configuration -->
<register>
Index: etc/resolver.xml.dist.in
--- etc/resolver.xml.dist.in.orig 2004-04-01 06:56:55 +0200
+++ etc/resolver.xml.dist.in 2004-09-22 21:48:58 +0200
@@ -46,18 +46,16 @@
</router>
<!-- Log configuration - type is "syslog", "file" or "stdout" -->
- <log type='syslog'>
+ <log type='file'>
<!-- If logging to syslog, this is the log ident -->
- <ident>jabberd/resolver</ident>
+ <!-- <ident>jabberd/resolver</ident> -->
<!-- If logging to syslog, this is the log facility
(local0 - local7) [default: local3] -->
- <facility>local3</facility>
+ <!-- <facility>local3</facility> -->
<!-- If logging to file, this is the filename of the logfile -->
- <!--
<file>@localstatedir@/jabberd/log/resolver.log</file>
- -->
</log>
<!-- SRV records will be resolved in the following order. The first
Index: etc/router.xml.dist.in
--- etc/router.xml.dist.in.orig 2004-04-01 06:56:55 +0200
+++ etc/router.xml.dist.in 2004-09-22 21:49:28 +0200
@@ -9,24 +9,22 @@
<pidfile>@localstatedir@/jabberd/pid/router.pid</pidfile>
<!-- Log configuration - type is "syslog", "file" or "stdout" -->
- <log type='syslog'>
+ <log type='file'>
<!-- If logging to syslog, this is the log ident -->
- <ident>jabberd/router</ident>
+ <!-- <ident>jabberd/router</ident> -->
<!-- If logging to syslog, this is the log facility
(local0 - local7) [default: local3] -->
- <facility>local3</facility>
+ <!-- <facility>local3</facility> -->
<!-- If logging to file, this is the filename of the logfile -->
- <!--
<file>@localstatedir@/jabberd/log/router.log</file>
- -->
</log>
<!-- Local network configuration -->
<local>
<!-- IP address to bind to (default: 0.0.0.0) -->
- <ip>0.0.0.0</ip>
+ <ip>127.0.0.1</ip>
<!-- Port to bind to (default: 5347) -->
<port>5347</port>
Index: etc/s2s.xml.dist.in
--- etc/s2s.xml.dist.in.orig 2004-04-21 15:29:27 +0200
+++ etc/s2s.xml.dist.in 2004-09-22 21:50:02 +0200
@@ -56,25 +56,23 @@
</router>
<!-- Log configuration - type is "syslog", "file" or "stdout" -->
- <log type='syslog'>
+ <log type='file'>
<!-- If logging to syslog, this is the log ident -->
- <ident>jabberd/s2s</ident>
+ <!-- <ident>jabberd/s2s</ident> -->
<!-- If logging to syslog, this is the log facility
(local0 - local7) [default: local3] -->
- <facility>local3</facility>
+ <!-- <facility>local3</facility> -->
<!-- if logging to file, this is the filename of the logfile -->
- <!--
<file>@localstatedir@/jabberd/log/s2s.log</file>
- -->
</log>
<!-- Local network configuration -->
<local>
<!-- IP and port to listen for incoming s2s connections on
(default: 0.0.0.0, 5269) -->
- <ip>0.0.0.0</ip>
+ <ip>127.0.0.1</ip>
<port>5269</port>
<!-- Helper DNS resolver component - if this component is not
Index: etc/sm.xml.dist.in
--- etc/sm.xml.dist.in.orig 2004-04-02 06:32:31 +0200
+++ etc/sm.xml.dist.in 2004-09-22 21:50:56 +0200
@@ -49,24 +49,22 @@
</router>
<!-- Log configuration - type is "syslog", "file" or "stdout" -->
- <log type='syslog'>
+ <log type='file'>
<!-- If logging to syslog, this is the log ident -->
- <ident>jabberd/sm</ident>
+ <!-- <ident>jabberd/sm</ident> -->
<!-- If logging to syslog, this is the log facility
(local0 - local7) [default: local3] -->
- <facility>local3</facility>
+ <!-- <facility>local3</facility> -->
<!-- If logging to file, this is the filename of the logfile -->
- <!--
<file>@localstatedir@/jabberd/log/sm.log</file>
- -->
</log>
<!-- Storage database configuration -->
<storage>
<!-- By default, we use the MySQL driver for all storage -->
- <driver>mysql</driver>
+ <driver>db</driver>
<!-- Its also possible to explicitly list alternate drivers for
specific data types. -->

142
jabberd/jabberd.spec

@ -24,24 +24,29 @@
##
# package version
%define V_major 1.4
%define V_minor 3
%define V_major 2.0
%define V_minor s3
# package information
Name: jabberd
Summary: Jabber Daemon
URL: http://jabberd.jabberstudio.org/
Summary: Jabber Instant Messaging Daemon
URL: http://jabberd.jabberstudio.org/2/
Vendor: Jabber Software Foundation
Packager: The OpenPKG Project
Distribution: OpenPKG
Class: EVAL
Group: Network
License: JOSL/GPL
Version: %{V_major}.%{V_minor}
Release: 20040730
Version: %{V_major}%{V_minor}
Release: 20041003
# package options
%option with_mysql no
%option with_pgsql no
%option with_pam no
# list of sources
Source0: http://jabberd.jabberstudio.org/%{V_major}/dist/jabberd-%{version}.tar.gz
Source0: http://www.jabberstudio.org/files/jabberd2/jabberd-%{version}.tar.gz
Source1: rc.jabberd
Patch0: jabberd.patch
@ -49,75 +54,118 @@ Patch0: jabberd.patch
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130, make
PreReq: OpenPKG, openpkg >= 20040130
BuildPreReq: pth, openssl
PreReq: pth, openssl
PreReq: OpenPKG, openpkg >= 20040130, perl
BuildPreReq: pth, openssl, libidn
PreReq: pth, openssl, libidn
BuildPreReq: db
PreReq: db
%if "%{with_mysql}" == "yes"
BuildPreReq: mysql
PreReq: mysql
%endif
%if "%{with_pgsql}" == "yes"
BuildPreReq: postgresql
PreReq: postgresql
%endif
%if "%{with_pam}" == "yes"
BuildPreReq: PAM
PreReq: PAM
%endif
AutoReq: no
AutoReqProv: no
%description
JabberD is the original server implementation for the Jabber instant
messaging platform.
messaging platform. JabberD 2 is the next generation of the JabberD
server. It has been rewritten from the ground up to be scalable,
architecturally sound, and to support the latest protocol extensions
coming out of the JSF.
%track
prog jabberd:jabber = {
prog jabberd = {
version = %{version}
url = http://jabberd.jabberstudio.org/1.4/
url = http://jabberd.jabberstudio.org/2/
regex = jabberd-(__VER__)\.tar\.gz
}
%prep
%setup -q
%setup -q -n jabberd-%{version}
%patch -p0
%{l_shtool} subst \
-e 's;^\(JHOME=`pwd`\);#\1;' \
-e 's;\(-I\$ssldir/include\)/openssl;\1;' \
configure
-e 's;exec perl;exec %{l_prefix}/bin/perl;' \
tools/jabberd.in
%build
CC="%{l_cc}" \
CFLAGS="%{l_cflags -O}" \
CPPFLAGS="%{l_cppflags pth}" \
LDFLAGS="%{l_ldflags pth}" \
prefix=%{l_prefix} \
JHOME=%{l_prefix}/var/jabberd \
# configure program
export CC="%{l_cc}"
export CFLAGS="%{l_cflags -O}"
export CPPFLAGS="%{l_cppflags pth libidn}"
export LDFLAGS="%{l_ldflags pth}"
export JHOME=%{l_prefix}/var/jabberd
%if "%{with_mysql}" == "yes"
CPPFLAGS="$CPPFLAGS %{l_cppflags mysql}"
LDFLAGS="$LDFLAGS %{l_ldflags mysql}"
%endif
%if "%{with_pgsql}" == "yes"
CPPFLAGS="$CPPFLAGS %{l_cppflags postgresql}"
%endif
./configure \
--enable-ssl
%{l_make} %{l_mflags -O}
--prefix=%{l_prefix} \
--enable-ssl \
--enable-idn \
--enable-fs \
--enable-db \
%if "%{with_mysql}" == "yes"
--enable-mysql \
%else
--disable-mysql \
%endif
%if "%{with_pgsql}" == "yes"
--enable-pgsql \
%else
--disable-pgsql \
%endif
%if "%{with_pam}" == "yes"
--enable-pam \
%else
--disable-pam \
%endif
--enable-static \
--disable-shared
# build program
%{l_make} %{l_mflags}
%install
# create installation filesystem structure
rm -rf $RPM_BUILD_ROOT
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/sbin \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
$RPM_BUILD_ROOT%{l_prefix}/etc/jabberd \
$RPM_BUILD_ROOT%{l_prefix}/lib/jabberd \
$RPM_BUILD_ROOT%{l_prefix}/var/jabberd
%{l_shtool} install -c -s -m 755 \
jabberd/jabberd \
$RPM_BUILD_ROOT%{l_prefix}/sbin/
%{l_shtool} install -c -m 644 \
-e 's;\./jsm/jsm\.so;%{l_prefix}/lib/jabberd/jsm.so;g' \
-e 's;\./xdb_file/xdb_file\.so;%{l_prefix}/lib/jabberd/xdb_file.so;g' \
-e 's;\./pthsock/pthsock_client\.so;%{l_prefix}/lib/jabberd/pthsock_client.so;g' \
-e 's;\./dnsrv/dnsrv\.so;%{l_prefix}/lib/jabberd/dnsrv.so;g' \
-e 's;\./dialback/dialback\.so;%{l_prefix}/lib/jabberd/dialback.so;g' \
-e 's;\./jabber\.pid;%{l_prefix}/var/jabberd/jabberd.pid;g' \
jabber.xml $RPM_BUILD_ROOT%{l_prefix}/etc/jabberd/
%{l_shtool} install -c -m 755 \
jsm/jsm.so \
xdb_file/xdb_file.so \
pthsock/pthsock_client.so \
dnsrv/dnsrv.so \
dialback/dialback.so \
$RPM_BUILD_ROOT%{l_prefix}/lib/jabberd/
$RPM_BUILD_ROOT%{l_prefix}/etc/jabberd/templates \
$RPM_BUILD_ROOT%{l_prefix}/var/jabberd \
$RPM_BUILD_ROOT%{l_prefix}/var/jabberd/db \
$RPM_BUILD_ROOT%{l_prefix}/var/jabberd/pid \
$RPM_BUILD_ROOT%{l_prefix}/var/jabberd/log
# install components
%{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
# remove unnecessary files
rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/jabberd/*dist
rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/jabberd/templates/*dist
# install run-command script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.jabberd} \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%config %{l_prefix}/etc/jabberd/*' \
'%dir %attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/jabberd'
'%dir %attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/jabberd' \
'%dir %attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/jabberd/*'
%files -f files

69
jabberd/rc.jabberd

@ -6,31 +6,29 @@
%config
jabberd_enable="$openpkg_rc_def"
jabberd_hostname=`hostname`
jabberd_error_prolog="true"
jabberd_error_epilog="true"
jabberd_error_numfiles="10"
jabberd_error_minsize="1M"
jabberd_error_complevel="9"
jabberd_error_file="@l_prefix@/var/jabberd/error.log"
jabberd_record_prolog="true"
jabberd_record_epilog="true"
jabberd_record_numfiles="10"
jabberd_record_minsize="1M"
jabberd_record_complevel="9"
jabberd_record_file="@l_prefix@/var/jabberd/record.log"
jabberd_daemons="c2s resolver router s2s sm"
jabberd_cfgfile="@l_prefix@/etc/jabberd/jabberd.cfg"
jabberd_log_prolog="true"
jabberd_log_epilog="true"
jabberd_log_numfiles="10"
jabberd_log_minsize="1M"
jabberd_log_complevel="9"
%common
jabberd_pidfile="@l_prefix@/var/jabberd/jabberd.pid"
jabberd_cfgfile="@l_prefix@/etc/jabberd/jabber.xml"
jabberd_signal () {
[ -f $jabberd_pidfile ] && kill -$1 `cat $jabberd_pidfile`
local retcode=0
local daemons=
for daemons in $jabberd_daemons; do
[ -f @l_prefix@/var/jabberd/pid/${daemons}.pid ] \
&& kill -$1 `cat @l_prefix@/var/jabberd/pid/${daemons}.pid`
retcode=$(($retcode+$?))
done
return $retcode
}
%status -u @l_nusr@ -o
jabberd_usable="no"
jabberd_usable="unknown"
jabberd_active="no"
rcService jabberd enable yes && \
jabberd_chroot && jabberd_usable="yes"
rcService jabberd enable yes && \
jabberd_signal 0 && jabberd_active="yes"
echo "jabberd_enable=\"$jabberd_enable\""
@ -40,13 +38,16 @@
%start -u @l_nusr@
rcService jabberd enable yes || exit 0
rcService jabberd active yes && exit 0
@l_prefix@/sbin/jabberd -B -h $jabberd_hostname -c $jabberd_cfgfile
@l_prefix@/bin/jabberd -c $jabberd_cfgfile &
%stop -u @l_nusr@
rcService jabberd enable yes || exit 0
rcService jabberd active no && exit 0
jabberd_signal TERM
rm -f $jabberd_pidfile 2>/dev/null || true
sleep 2
for daemons in $jabberd_daemons; do
rm -f @l_prefix@/var/jabberd/pid/${daemons}.pid
done
%restart -u @l_nusr@
rcService jabberd enable yes || exit 0
@ -57,24 +58,14 @@
%daily -u @l_susr@
rcService jabberd enable yes || exit 0
# rotate logfiles
rcTmp -i
hintfile=`rcTmp -f -n hint`
shtool rotate -f \
-n ${jabberd_error_numfiles} -s ${jabberd_error_minsize} -d \
-z ${jabberd_error_complevel} -o @l_nusr@ -g @l_ngrp@ -m 644 \
-P "${jabberd_error_prolog}" \
-E "${jabberd_error_epilog}; echo 1 >$hintfile" \
${jabberd_error_file}
logfiles=
for daemons in $jabberd_daemons; do
logfiles="$logfiles @l_prefix@/var/jabberd/log/$daemons.log"
done
shtool rotate -f \
-n ${jabberd_record_numfiles} -s ${jabberd_record_minsize} -d \
-z ${jabberd_record_complevel} -o @l_nusr@ -g @l_ngrp@ -m 644 \
-P "${jabberd_record_prolog}" \
-E "${jabberd_record_epilog}; echo 1 >$hintfile" \
${jabberd_record_file}
if [ -s $hintfile ]; then
rc jabberd restart
fi
rcTmp -k
-n ${jabberd_log_numfiles} -s ${jabberd_log_minsize} -d \
-z ${jabberd_log_complevel} -m 644 -o @l_susr@ -g @l_mgrp@ \
-P "${jabberd_log_prolog}" \
-E "${jabberd_log_epilog}; rc jabberd restart" \
$logfiles

Loading…
Cancel
Save