try ejabberdctl fix
[ejabberd.git] / ejabberd.spec
1
2 %define name ejabberd
3 %define version 2.1.3
4 %define taglevel 1
5
6 Name:           %{name}
7 Version:        %{version}
8 Release:        %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
9 Summary:        A distributed, fault-tolerant Jabber/XMPP server
10
11 Group:          Applications/Internet
12 License:        GPLv2+
13 URL:            http://www.ejabberd.im/
14 Source0:        http://www.process-one.net/downloads/%{name}/%{version}/%{name}-%{version}.tar.gz
15 Source1:        ejabberd.init
16 Source2:        ejabberd.logrotate
17 Source3:        ejabberd.sysconfig
18
19 # PAM support
20 Source9:        ejabberdctl.pam
21 Source10:       ejabberdctl.apps
22 Source11:       ejabberd.pam
23
24 Patch1:         ejabberd-ejabberdctl_fix.diff
25
26 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
27
28 BuildRequires:  expat-devel
29 BuildRequires:  openssl-devel
30 BuildRequires:  pam-devel
31 BuildRequires:  erlang
32 BuildRequires:  hevea
33
34 Requires:       erlang
35 Requires:       usermode
36
37 Requires(pre): fedora-usermgmt
38 Requires(post): /sbin/chkconfig
39 Requires(post): /usr/bin/openssl
40 Requires(preun): /sbin/chkconfig
41 Requires(preun): /sbin/service
42 Requires(postun): /sbin/service
43
44 %description
45 ejabberd is a Free and Open Source distributed fault-tolerant
46 Jabber/XMPP server. It is mostly written in Erlang, and runs on many
47 platforms (tested on Linux, FreeBSD, NetBSD, Solaris, Mac OS X and
48 Windows NT/2000/XP).
49
50 %package doc
51 Summary: Documentation for ejabberd
52 Group: Documentation
53
54 %description doc
55 Documentation for ejabberd.
56
57 %pre
58 /usr/sbin/fedora-groupadd 27 -r ejabberd &>/dev/null || :
59 /usr/sbin/fedora-useradd  27 -r -s /sbin/nologin -d /var/lib/ejabberd -M \
60                              -c 'ejabberd' -g ejabberd ejabberd &>/dev/null || :
61
62 %post
63 /sbin/chkconfig --add ejabberd
64
65 (cd /etc/ejabberd
66 if [ ! -f ejabberd.pem ]
67 then
68     echo "Generating SSL certificate /etc/ejabberd/ejabberd.pem..."
69     HOSTNAME=$(hostname -s 2>/dev/null || echo "localhost")
70     DOMAINNAME=$(hostname -d 2>/dev/null || echo "localdomain")
71     openssl req -new -x509 -days 365 -nodes -out ejabberd.pem \
72                 -keyout ejabberd.pem > /dev/null 2>&1 <<+++
73 .
74 .
75 .
76 $DOMAINNAME
77 $HOSTNAME
78 ejabberd
79 root@$HOSTNAME.$DOMAINNAME
80 +++
81 chown ejabberd:ejabberd ejabberd.pem
82 chmod 600 ejabberd.pem
83 fi)
84
85 %preun
86 if [ $1 = 0 ]; then
87         /sbin/service ejabberd stop >/dev/null 2>&1
88         /sbin/chkconfig --del ejabberd
89 fi
90
91 %postun
92 if [ "$1" -ge "1" ]; then
93         /sbin/service ejabberd condrestart >/dev/null 2>&1
94 fi
95
96 %prep
97 %setup -q
98 %patch1 -p0 -b .fix_ctl
99
100
101 %build
102 pushd src
103 %configure --enable-odbc --enable-debug --enable-pam
104 # doesn't builds on SMP currently
105 make
106 popd
107
108 %install
109 rm -rf %{buildroot}
110
111 pushd src
112 make install DESTDIR=%{buildroot}
113 popd
114
115 chmod a+x %{buildroot}%{_libdir}/%{name}/priv/lib/*.so
116
117 %{__perl} -pi -e 's!./ssl.pem!/etc/ejabberd/ejabberd.pem!g' %{buildroot}/etc/ejabberd/ejabberd.cfg
118
119 mkdir -p %{buildroot}/var/log/ejabberd
120 mkdir -p %{buildroot}/var/lib/ejabberd/spool
121
122 mkdir -p %{buildroot}%{_bindir}
123 ln -s consolehelper %{buildroot}%{_bindir}/ejabberdctl
124 install -D -p -m 0644 %{S:9} %{buildroot}%{_sysconfdir}/pam.d/ejabberdctl
125 install -D -p -m 0644 %{S:10} %{buildroot}%{_sysconfdir}/security/console.apps/ejabberdctl
126 install -D -p -m 0644 %{S:11} %{buildroot}%{_sysconfdir}/pam.d/ejabberd
127
128 # install init-script
129 install -D -p -m 0755 %{S:1} %{buildroot}%{_initrddir}/ejabberd
130
131 # install config for logrotate
132 install -D -p -m 0644  %{S:2} %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd
133
134 # install sysconfig file
135 install -D -p -m 0644  %{S:3} %{buildroot}%{_sysconfdir}/sysconfig/ejabberd
136
137 %{__perl} -pi -e 's!\@libdir\@!%{_libdir}!g'  %{buildroot}%{_initrddir}/ejabberd %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd %{buildroot}%{_sbindir}/ejabberdctl
138 %{__perl} -pi -e 's!\@version\@!%{version}!g' %{buildroot}%{_initrddir}/ejabberd %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd %{buildroot}%{_sbindir}/ejabberdctl
139
140 # BZ# 439583
141 %{__perl} -pi -e 's!MAINDIR=!MAINDIR=%{_libdir}/ejabberd!g' %{buildroot}%{_sbindir}/ejabberdctl
142
143 %clean
144 rm -rf %{buildroot}
145
146 %files
147 %defattr(-,root,root,-)
148 %doc COPYING src/odbc/mysql.sql src/odbc/pg.sql tools/captcha.sh
149
150 %attr(750,ejabberd,ejabberd) %dir %{_sysconfdir}/ejabberd
151 %attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberd.cfg
152 %attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/ejabberdctl.cfg
153 %attr(640,ejabberd,ejabberd) %config(noreplace) %{_sysconfdir}/ejabberd/inetrc
154
155 %{_initrddir}/ejabberd
156 %config(noreplace) %{_sysconfdir}/logrotate.d/ejabberd
157 %config(noreplace) %{_sysconfdir}/sysconfig/ejabberd
158 %config(noreplace) %{_sysconfdir}/pam.d/ejabberd
159 %config(noreplace) %{_sysconfdir}/pam.d/ejabberdctl
160 %config(noreplace) %{_sysconfdir}/security/console.apps/ejabberdctl
161 %{_bindir}/ejabberdctl
162 %{_sbindir}/ejabberdctl
163
164 %dir %{_libdir}/%{name}
165 %dir %{_libdir}/%{name}/include
166 %dir %{_libdir}/%{name}/ebin
167 %dir %{_libdir}/%{name}/priv
168 %dir %{_libdir}/%{name}/priv/bin
169 %attr(4750,root,ejabberd)    %{_libdir}/%{name}/priv/bin/epam
170 %dir %{_libdir}/%{name}/priv/lib
171 %dir %{_libdir}/%{name}/priv/msgs
172
173 %{_libdir}/%{name}/include/*
174 %{_libdir}/%{name}/ebin/*.app
175 %{_libdir}/%{name}/ebin/*.beam
176 %{_libdir}/%{name}/priv/lib/*.so
177 %{_libdir}/%{name}/priv/msgs/*.msg
178 %{_libdir}/%{name}/priv/bin/captcha.sh
179
180 %attr(750,ejabberd,ejabberd) %dir /var/lib/ejabberd
181 %attr(750,ejabberd,ejabberd) %dir /var/lib/ejabberd/spool
182 %attr(750,ejabberd,ejabberd) %dir /var/log/ejabberd
183
184 %files doc
185 %defattr(-,root,root,-)
186 /usr/share/doc
187
188 %changelog
189 * Mon Mar 16 2010 Baris Metin <tmetin@sophia.inria.fr>
190 - first package from Fedora SRPM, for planetlab