[PATCH] jabberd14-1.4.4
Michal Kochanowicz
michal w michal.waw.pl
Nie, 25 Gru 2005, 21:58:47 CET
Hej
Zrobiłem upgrade do 1.4.4, u mnie jak narazie działa. Tutaj jest
napisane czemu zrobiłem (w skrócie 1.4.3 po błędzie zestawiania s2s nie
próbuje ponownie, ponoć 1.4.4 ma pomóc):
http://forum.jabberpl.org/index.php?showtopic=3596
W załączniku patch na speca i zmodyfikowane łaty. Mam kilka
nierozwiązanych wątpliwości:
1. W 1.4.4 pojawił się mod_stat. Nie jestem pewien czy zastępuje on
mod_stats, który do tej pory był dostarczany jako łata. Może Jacek
Konieczny się wypowie, bo to jego dzieło.
2. W 1.4.3 moduły znajdowały się w plikach *.so w /usr/lib/jabberd14.
Teraz powstają pliki *.so.0.0.0 w /usr/lib. W związku z tym po
upgrade trzeba ręcznie poprawić jabberd14.xml. Dodatkowo w %install
użyłem sed'a żeby umieścić w dystrybucyjnej konfiguracji poprawne
nazwy bibliotek. Zastanawiam się czy nie lepiej byłoby w %install
przenieść te pliki do /usr/lib/jabberd14 i nazwać je tak jak nazywały
się wcześniej. sed w %install zostanie, ale nie będzie trzeba grzebać
w XML przy upgrade.
3. Nie włączałem supportu dla mysql i postrgresql. Mogę to zrobić, ale
ja tego nie zamierzam używać, a potrzebowałem szybko zrobić ten
update.
Co do łatek, to jest tak:
1. FHS.patch - do skasowania
2. cfg_name.patch - nowy, zastępuje FHS.
3. mod_stats.patch - patrz wyżej
4. register-deny_new.patch - uaktualniony (w załączniku), dobrze żeby
ktoś na niego spojrzał - nie wiem czemu tylko dwa moduły były
patchowane, prz czym jednego z nich (mod_auth_0k) w 1.4.4 nie ma.
5. browse.patch - uaktualniony (załącznik).
6. opt.patch - chyba obsolete.
7. 1.4.3.1.patch - obsolete.
--
--= Michal Kochanowicz =--==--==BOFH==--==--= michal w michal.waw.pl =--
--= finger me for PGP public key or visit http://michal.waw.pl/PGP =--
--==--==--==--==--==-- Vodka. Connecting people.--==--==--==--==--==--
A chodzenie po górach SSIE!!!
-------------- następna część ---------
Index: jabberd14.spec
===================================================================
RCS file: /cvsroot/SPECS/jabberd14.spec,v
retrieving revision 1.40
diff -u -r1.40 jabberd14.spec
--- jabberd14.spec 11 Aug 2005 09:46:18 -0000 1.40
+++ jabberd14.spec 25 Dec 2005 20:54:03 -0000
@@ -6,26 +6,27 @@
Summary: Old "jabber.org" Jabber server daemon
Summary(pl): Stary serwer Jabbera "z jabber.org"
Name: jabberd14
-Version: 1.4.3.1
-Release: 2
+Version: 1.4.4
+Release: 0.2
License: distributable
Group: Applications/Communications
-Source0: http://jabberd.jabberstudio.org/1.4/dist/jabberd-1.4.3.tar.gz
-# Source0-md5: a3e964d6fa07b5d850302ae0512f94c6
+Source0: http://download.jabberd.org/jabberd14/jabberd-%{version}.tar.gz
+# Source0-md5: 395f814a6627436ba7bd235509adcbc7
Source1: %{name}.init
Source2: %{name}.sysconfig
-Patch0: %{name}-FHS.patch
-Patch1: %{name}-mod_stats.patch
+Patch0: %{name}-cfg_name.patch
+# Obsolete?
+#Patch1: %{name}-mod_stats.patch
Patch2: %{name}-register-deny_new.patch
Patch3: %{name}-browse.patch
Patch4: %{name}-detach_from_terminal.patch
-Patch5: %{name}-opt.patch
-# Patch6: http://devel.amessage.info/jabberd14/jabberd-1.4.3.1.diff.bz2
-Patch6: jabberd14-1.4.3.1.patch
+# Obsolete?
+#Patch5: %{name}-opt.patch
URL: http://jabberd.jabberstudio.org/1.4/
BuildRequires: expat-devel
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: pth-devel
+BuildRequires: libidn-devel
PreReq: jabber-common
PreReq: rc-scripts
Requires(post,preun): /sbin/chkconfig
@@ -81,20 +82,21 @@
jabberd-1.4.x.
%prep
-%setup -qn jabberd-1.4.3
+%setup -qn jabberd-1.4.4
%patch0 -p1
-%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
-%patch6 -p1
%build
JHOME="%{_localstatedir}/lib/%{name}"; export JHOME
%configure \
+ --sysconfdir=%{_sysconfdir}/jabber \
+ --includedir=%{_includedir}/%{name}/lib \
--enable-ssl \
- --%{?with_ipv6:enable}%{?!with_ipv6:disable}-ipv6
+ --%{?with_ipv6:enable}%{?!with_ipv6:disable}-ipv6 \
+ --without-mysql \
+ --without-postgresql
%{__make} \
CC="%{__cc}" \
@@ -102,24 +104,22 @@
%install
rm -rf $RPM_BUILD_ROOT
+
+%{__make} install DESTDIR=$RPM_BUILD_ROOT
+
install -d $RPM_BUILD_ROOT{%{_sysconfdir}/jabber,%{_sbindir},/etc/{rc.d/init.d,sysconfig}} \
$RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/spool \
- $RPM_BUILD_ROOT{/var/log/%{name},%{_libdir}/%{name}} \
+ $RPM_BUILD_ROOT/var/log/%{name} \
$RPM_BUILD_ROOT%{_includedir}/%{name}/lib
-
-install jabberd/jabberd $RPM_BUILD_ROOT%{_sbindir}/%{name}
-sed -e 's, w libdir@,%{_libdir},g' jabber.xml > $RPM_BUILD_ROOT%{_sysconfdir}/jabber/jabberd14.xml
-install xdb_file/xdb_file.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install pthsock/pthsock_client.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install jsm/jsm.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install dialback/dialback.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install dnsrv/dnsrv.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install jabberd/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
-install jabberd/lib/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/lib
-install platform-settings $RPM_BUILD_ROOT%{_libdir}/%{name}/
+sed -e 's/\.so<\//.so.0.0.0<\//' \
+ < $RPM_BUILD_ROOT%{_sysconfdir}/jabber/jabber.xml \
+ > $RPM_BUILD_ROOT%{_sysconfdir}/jabber/jabberd14.xml
+rm $RPM_BUILD_ROOT%{_sysconfdir}/jabber/jabber.xml
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+mv $RPM_BUILD_ROOT{%{_bindir}/jabberd,%{_sbindir}/jabberd14}
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -146,11 +146,12 @@
%files
%defattr(644,root,root,755)
%doc README UPGRADE pthsock/README*
+%attr(755,root,root) %{_bindir}/*
%attr(755,root,root) %{_sbindir}/*
-%dir %{_libdir}/%{name}
-%attr(755,root,root) %{_libdir}/%{name}/*.so
+%attr(755,root,root) %{_libdir}/*.so.*.*
%attr(771,root,jabber) %{_localstatedir}/lib/%{name}
%attr(770,root,jabber) /var/log/%{name}
+%{_mandir}/*/*
%files server
%defattr(644,root,root,755)
@@ -161,7 +162,6 @@
%files devel
%defattr(644,root,root,755)
%{_includedir}/*
-%{_libdir}/%{name}/platform-settings
%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
%changelog
-------------- następna część ---------
diff -ur jabberd-1.4.4.orig/jabberd/config.c jabberd-1.4.4/jabberd/config.c
--- jabberd-1.4.4.orig/jabberd/config.c 2005-04-16 00:07:23.000000000 +0200
+++ jabberd-1.4.4/jabberd/config.c 2005-12-25 20:56:16.324405464 +0100
@@ -211,7 +211,7 @@
int configurate(char *file, xht cmd_line)
{
- char def[] = CONFIG_DIR"/jabber.xml";
+ char def[] = CONFIG_DIR"/jabberd14.xml";
char *realfile = (char *)def;
xmlnode incl;
char *c;
-------------- następna część ---------
diff -durN -x '*~' -x '*.orig' -x '*.rej' jabberd-1.4.3.orig/jabber.xml jabberd-1.4.3/jabber.xml
--- jabberd-1.4.3.orig/jabber.xml.dist.in 2004-01-03 12:19:35.927263605 +0100
+++ jabberd-1.4.3/jabber.xml.dist.in 2004-01-03 12:22:42.962257513 +0100
@@ -218,14 +218,14 @@
<!--
This is the default agent for the master Jabber User
Directory, a.k.a. "JUD", which is located at jabber.org.
- You can add separate <service/> sections for additional
+ You can add separate <item/> sections for additional
directories, e.g., one for a company intranet.
-->
- <service type="jud" jid="users.jabber.org" name="Jabber User Directory">
+ <item category="service" type="jud" jid="users.jabber.org" name="Jabber User Directory">
<ns>jabber:iq:search</ns>
<ns>jabber:iq:register</ns>
- </service>
+ </item>
<!--
The following services are examples only, you will need to
@@ -236,17 +236,17 @@
<!-- we're commenting these out, of course :)
- <service type="aim" jid="aim.localhost" name="AIM Transport">
+ <item category="service" type="aim" jid="aim.localhost" name="AIM Transport">
<ns>jabber:iq:gateway</ns>
<ns>jabber:iq:register</ns>
</service>
- <service type="yahoo" jid="yahoo.localhost" name="Yahoo! Transport">
+ <item category="service" type="yahoo" jid="yahoo.localhost" name="Yahoo! Transport">
<ns>jabber:iq:gateway</ns>
<ns>jabber:iq:register</ns>
</service>
- end of <service/> examples -->
+ end of service examples -->
</browse>
diff -durN -x '*~' -x '*.orig' -x '*.rej' jabberd-1.4.3.orig/jsm/modules/mod_browse.c jabberd-1.4.3/jsm/modules/mod_browse.c
--- jabberd-1.4.3.orig/jsm/modules/mod_browse.c 2003-11-08 00:54:25.000000000 +0100
+++ jabberd-1.4.3/jsm/modules/mod_browse.c 2004-01-03 12:21:15.220930031 +0100
@@ -52,7 +52,8 @@
{ /* no browse is set up yet, we must create one for this user! */
if(id->resource == NULL)
{ /* a user is only the user w host */
- browse = xmlnode_new_tag("user");
+ browse = xmlnode_new_tag("item");
+ xmlnode_put_attrib(browse,"category","user");
/* get the friendly name for this user from somewhere */
if((x = xdb_get(m->si->xc, m->user->id, NS_VCARD)) != NULL)
xmlnode_put_attrib(browse,"name",xmlnode_get_tag_data(x,"FN"));
@@ -178,7 +179,8 @@
{
/* if(s->priority < 0) continue; *** include all resources I guess */
if(xmlnode_get_tag(browse,spools(m->packet->p,"?jid=",jid_full(s->id),m->packet->p)) != NULL) continue; /* already in the browse result */
- cur = xmlnode_insert_tag(browse,"user");
+ cur = xmlnode_insert_tag(browse,"item");
+ xmlnode_put_attrib(cur,"category", "user");
xmlnode_put_attrib(cur,"type", "client");
xmlnode_put_attrib(cur,"jid", jid_full(s->id));
}
@@ -208,8 +210,9 @@
log_debug("mod_browse","handling browse query");
/* build the result IQ */
- query = xmlnode_insert_tag(jutil_iqresult(m->packet->x),"service");
+ query = xmlnode_insert_tag(jutil_iqresult(m->packet->x),"item");
xmlnode_put_attrib(query,"xmlns",NS_BROWSE);
+ xmlnode_put_attrib(query,"category","service");
xmlnode_put_attrib(query,"type","jabber");
xmlnode_put_attrib(query,"jid",m->packet->to->server);
xmlnode_put_attrib(query,"name",xmlnode_get_data(js_config(m->si,"vCard/FN"))); /* pull name from the server vCard */
-------------- następna część ---------
diff -ur jabberd-1.4.4.orig/jabber.xml.dist.in jabberd-1.4.4/jabber.xml.dist.in
--- jabberd-1.4.4.orig/jabber.xml.dist.in 2005-12-25 20:45:24.000000000 +0100
+++ jabberd-1.4.4/jabber.xml.dist.in 2005-12-25 20:47:59.984860544 +0100
@@ -73,8 +73,11 @@
notify attribute will send the server administrator(s)
a message after each valid registration if the notify
attribute is present.
+ A deny_new attribute will disable registration for new users, but
+ password change and unregistration will still be enabled.
-->
+ <!-- <register deny_new="yes"> -->
<register notify="yes">
<instructions>Choose a username and password to register with this server.</instructions>
<name/>
diff -ur jabberd-1.4.4.orig/jsm/modules/mod_auth_plain.c jabberd-1.4.4/jsm/modules/mod_auth_plain.c
--- jabberd-1.4.4.orig/jsm/modules/mod_auth_plain.c 2005-04-16 00:07:15.000000000 +0200
+++ jabberd-1.4.4/jsm/modules/mod_auth_plain.c 2005-12-25 20:47:11.541225096 +0100
@@ -181,6 +181,15 @@
return M_PASS;
}
+mreturn mod_auth_plain_reg_new(mapi m, void *arg)
+{
+ xmlnode reg;
+
+ if((reg = js_config(m->si, "register")) == NULL) return M_PASS;
+ if(xmlnode_get_attrib(reg,"deny_new") != NULL) return M_PASS;
+ return mod_auth_plain_reg(m,arg);
+}
+
/**
* handle password change requests from a session
*
@@ -226,5 +235,5 @@
js_mapi_register(si, e_AUTH, mod_auth_plain_jane, NULL);
js_mapi_register(si, e_SERVER, mod_auth_plain_server, NULL);
- if (js_config(si,"register") != NULL) js_mapi_register(si, e_REGISTER, mod_auth_plain_reg, "registered account");
+ js_mapi_register(si, e_REGISTER, mod_auth_plain_reg_new, NULL);
}
diff -ur jabberd-1.4.4.orig/jsm/modules/mod_register.c jabberd-1.4.4/jsm/modules/mod_register.c
--- jabberd-1.4.4.orig/jsm/modules/mod_register.c 2005-04-16 00:07:15.000000000 +0200
+++ jabberd-1.4.4/jsm/modules/mod_register.c 2005-12-25 20:49:28.243443200 +0100
@@ -67,6 +67,7 @@
xmlnode reg, x;
if((reg = js_config(m->si, "register")) == NULL) return M_PASS;
+ if(xmlnode_get_attrib(reg,"deny_new") != NULL) return M_PASS;
log_debug2(ZONE, LOGT_AUTH, "checking");
Więcej informacji o liście dyskusyjnej pld-devel-pl