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