diff --git a/jabberd/jabberd.patch b/jabberd/jabberd.patch index 18dad419a5..d996ba26fd 100644 --- a/jabberd/jabberd.patch +++ b/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 - #ifdef HAVE_SSL --#include -+#include - #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 -+#include - - 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 -+#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 + #include + #include ++#include ++#include + + #ifdef HAVE_NETINET_IN_H + # include +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 @@ + + + +- ++ + +- jabberd/c2s ++ + + +- local3 ++ + + +- + + + +@@ -78,7 +76,7 @@ + + + +- 0.0.0.0 ++ 127.0.0.1 + + +@@ -206,7 +204,7 @@ + + + +- mysql ++ db + + + +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 @@ + + + +- ++ + +- jabberd/resolver ++ + + +- local3 ++ + + +- + + + +- ++ + +- jabberd/router ++ + + +- local3 ++ + + +- + + + + + +- 0.0.0.0 ++ 127.0.0.1 + + + 5347 +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 @@ + + + +- ++ + +- jabberd/s2s ++ + + +- local3 ++ + + +- + + + + + +- 0.0.0.0 ++ 127.0.0.1 + 5269 + + +- ++ + +- jabberd/sm ++ + + +- local3 ++ + + +- + + + + + +- mysql ++ db + + diff --git a/jabberd/jabberd.spec b/jabberd/jabberd.spec index 5be5bae7ee..e4a97f0ebc 100644 --- a/jabberd/jabberd.spec +++ b/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 diff --git a/jabberd/rc.jabberd b/jabberd/rc.jabberd index a9dc5e284b..833a5fa519 100644 --- a/jabberd/rc.jabberd +++ b/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