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