2 # - move bin/* to -setup which are related to upgrading/setup
3 # - use system js/tiny_mce
4 # - use system js/jquery
5 # - use system magic db: program/lib/magic
6 # - script to %lang all "localization" dirs
7 # - package: http://blog.ilohamail.org/ and remove boundled classess from it
8 # - Some php-database backend. Suggests?
9 # - test/finish and then enable by default password-anon-ldap-bind patch
11 %bcond_with spamfilter # Build with spamfilter patch
12 %bcond_with postfixadmin # Build with postfixadmin support patch
13 %bcond_with password_anon_ldap_bind # apply with password-anon-ldap-bind patch.
15 %define rcpfa_ver 1.0.5
16 %define php_min_version 5.2.3
18 %include /usr/lib/rpm/macros.php
19 Summary: RoundCube Webmail
20 Summary(pl.UTF-8): RoundCube Webmail - poczta przez WWW
25 Group: Applications/Mail
26 Source0: http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}.tar.gz
27 # Source0-md5: 6e5d2313087ce1e1209eb0f4fd71beab
28 Source1: %{name}.config
29 Source2: %{name}.logrotate
30 Source3: %{name}-lighttpd.conf
31 Source4: http://nejc.skoberne.net/wp-content/uploads/2008/11/rcpfa-105.tgz
32 # Source4-md5: dc23bcd894f693db74fce53b09ab58d6
33 Patch0: %{name}-config.patch
34 Patch1: %{name}-spam.patch
35 Patch2: %{name}-postfixadmin-pl_locales.patch
36 Patch3: %{name}-faq-page.patch
37 Patch4: %{name}-password-anon-ldap-bind.patch
38 Patch5: use-iconv.patch
39 URL: http://www.roundcube.net/
40 BuildRequires: rpm-php-pearprov >= 4.4.2-11
41 BuildRequires: rpmbuild(macros) >= 1.553
42 BuildRequires: sed >= 4.0
43 Requires: %{name}-skin
44 Requires: php-common >= 4:%{php_min_version}
52 Requires: php-simplexml
56 Requires: rpm-whiteout >= 1.22
58 Requires: webserver(alias)
59 Requires: webserver(indexfile)
60 Requires: webserver(php)
61 Suggests: php(fileinfo)
64 Suggests: php-mbstring
67 Suggests: php-pear-Auth_SASL
68 Suggests: php-pear-Net_LDAP2
69 Suggests: php-pear-Net_Sieve
70 Suggests: php-pear-Net_Socket
72 Conflicts: logrotate < 3.7-4
74 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76 %define _webapps /etc/webapps
77 %define _webapp roundcube
78 %define _sysconfdir %{_webapps}/%{_webapp}
79 %define _appdir %{_datadir}/%{_webapp}
80 %define _appdatadir /var/lib/roundcube
81 %define _applogdir /var/log/roundcube
82 %define _archivelogdir /var/log/archive/roundcube
85 %define _noautopear pear
87 # exclude optional php dependencies
88 %define _noautophp php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
90 # put it together for rpmbuild
91 %define _noautoreq %{?_noautophp} %{?_noautopear}
94 RoundCube Webmail is a browser-based multilingual IMAP client with an
95 application-like user interface. It provides full functionality you
96 expect from an e-mail client, including MIME support, address book,
97 folder manipulation and message filters. RoundCube Webmail is written
98 in PHP and requires the MySQL database. The user interface is fully
99 skinnable using XHTML and CSS 2.
101 %description -l pl.UTF-8
102 RoundCube Webmail to oparty na przeglądarce wielojęzyczny klient PHP z
103 interfejsem użytkownika podobnym do aplikacji. Udostępnia pełną
104 funkcjonalność jakiej można oczekiwać od klienta pocztowego, w tym
105 obsługę MIME, książkę adresową, operacje na folderach i filtry
106 wiadomości. RoundCube Webmail jest napisany w PHP i wymaga bazy danych
107 MySQL. Interfejs użytkownika można w pełni obudować skórką przy użyciu
111 Summary: Installer script for RoundCube Webmail
112 Summary(pl.UTF-8): Skrypt instalacyjny RoundCube Webmaila
113 Group: Applications/WWW
114 Requires: %{name} = %{version}-%{release}
117 This package provides installer script for RoundCube Webmail.
119 %description setup -l pl.UTF-8
120 Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
122 %package skin-default
123 Summary: Default skin for RoundCube Webmail
124 Summary(pl.UTF-8): Domyślna skórka dla RoundCube Webmaila
125 Group: Applications/WWW
126 Requires: %{name} = %{version}-%{release}
127 Provides: %{name}-skin
129 %description skin-default
130 Default skin for RoundCube Webmail.
132 %description skin-default -l pl.UTF-8
133 Domyślna skórka dla RoundCube Webmaila.
136 %setup -q %{?with_postfixadmin:-a 4}
138 %if %{with spamfilter}
141 %if %{with postfixadmin}
145 %if %{with password_anon_ldap_bind}
150 find -name .svn | xargs -r rm -rf
153 %undos -f php,inc,js,css
155 # kill extensions and fill proper shebang
156 %{__sed} -i -e '1s,^#!.*php,#!%{__php},' bin/*.sh
157 for a in bin/*.sh; do
161 # unpacked js sources
162 find -name '*.src' | xargs rm -v
164 # rm utf8.class and deps, we use iconv extension
165 rm program/lib/utf8.class.php
166 rm -r program/lib/encoding
168 # php-pear-PEAR-core 1.9.0 (used indirectly)
169 rm program/lib/PEAR.php
170 rm program/lib/PEAR5.php
172 # php-pear-Net_Socket 1.0.9 (used by password, managesieve plugins)
173 rm program/lib/Net/Socket.php
175 # php-pear-Net_SMTP 1.4.2 (nothing seem to use it)
176 rm program/lib/Net/SMTP.php
178 # php-pear-Auth_SASL 1.0.4 (used by managesieve)
179 rm program/lib/Auth/SASL.php
180 rm -r program/lib/Auth/SASL
182 # php-pear-Mail_Mime 1.8.0 (nothing seems to use it)
183 rm program/lib/Mail/mime.php
184 rm program/lib/Mail/mimePart.php
186 # php-pear-Net_Sieve 1.3.0
187 rm plugins/managesieve/lib/Net/Sieve.php
190 rmdir program/lib/Auth
191 rmdir program/lib/Mail
192 rmdir program/lib/Net
193 rmdir plugins/managesieve/lib/Net
195 # unknown MDB2 version (newer than released 2.5.0b2, or modified by rc)
196 #rm program/lib/MDB2.php
198 mv config/db.inc.php.dist config/db.inc.php
199 mv config/main.inc.php.dist config/main.inc.php
200 %if %{with postfixadmin}
201 mv rcpfa-%{rcpfa_ver} rcpfa
203 cp code/forwarding.html ../skins/default/templates
204 cp code/password.html ../skins/default/templates
205 cp code/vacation.html ../skins/default/templates
206 cp code/pfa_forwarding.inc ../program/steps/settings
207 cp code/pfa_password.inc ../program/steps/settings
208 cp code/pfa_vacation.inc ../program/steps/settings
209 cp code/pfa.php ../program/include
211 patch -d .. -p1 < diffs/app.js.diff
212 patch -d .. -p1 < diffs/db.inc.php.diff
213 patch -d .. -p1 < diffs/func.inc.diff
214 patch -d .. -p1 < diffs/index.php.diff
215 patch -d .. -p1 < diffs/labels.inc.diff
216 patch -d .. -p1 < diffs/main.inc.diff
217 patch -d .. -p1 < diffs/main.inc.php.diff
218 patch -d .. -p1 < diffs/messages.inc.diff
219 patch -d .. -p1 < diffs/rcube_user.php.diff
220 patch -d .. -p1 < diffs/settingstabs.html.diff
224 rm -rf $RPM_BUILD_ROOT
225 install -d $RPM_BUILD_ROOT{%{_appdatadir},%{_applogdir},%{_archivelogdir},%{_sysconfdir}} \
226 $RPM_BUILD_ROOT{%{_appdir}/{bin,config,installer,program,skins},/etc/logrotate.d}
228 # Main application part:
229 cp -a program/* $RPM_BUILD_ROOT%{_appdir}/program
230 cp -a bin/* $RPM_BUILD_ROOT%{_appdir}/bin
231 cp -a index.php $RPM_BUILD_ROOT%{_appdir}
234 cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins
237 cp -a installer/* $RPM_BUILD_ROOT%{_appdir}/installer
238 cp -a config/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php.dist
239 cp -a config/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php.dist
240 cp -a SQL $RPM_BUILD_ROOT%{_appdir}
243 cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
246 cp -a config/db.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/db.inc.php
247 cp -a config/main.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/main.inc.php
248 ln -sf %{_sysconfdir}/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php
249 ln -sf %{_sysconfdir}/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php
251 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
252 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
253 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
254 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
257 rm -rf $RPM_BUILD_ROOT
260 if [ ! -f %{_sysconfdir}/db.inc.php -o ! -f %{_sysconfdir}/main.inc.php ]; then
261 # import configs from previously manually installed site
262 d=/home/services/httpd/html/config
263 if [ -f $d/db.inc.php -o -f $d/main.inc.php ]; then
264 echo >&2 "Importing site configs from $d"
265 mkdir -p %{_sysconfdir}
266 if [ -f $d/db.inc.php ]; then
267 [ -f %{_sysconfdir}/db.inc.php ] && mv -f %{_sysconfdir}/db.inc.php{,.rpmorig}
268 cp -af $d/db.inc.php %{_sysconfdir}/db.inc.php
270 if [ -f $d/main.inc.php ]; then
271 [ -f %{_sysconfdir}/main.inc.php ] && mv -f %{_sysconfdir}/main.inc.php{,.rpmorig}
272 cp -af $d/main.inc.php %{_sysconfdir}/main.inc.php
277 # Note this on version upgrade
278 %triggerpostun -- %{name} < %{version}
279 %banner -e %{name} <<-EOF
280 Run %{_appdir}/bin/update to update to version %{version}.
281 (Be sure to have %{name}-setup installed when you run it)
283 See %{_docdir}/%{name}-%{version}/UPGRADING* for more information.
286 %triggerin -- apache1 < 1.3.37-3, apache1-base
287 %webapp_register apache %{_webapp}
289 %triggerun -- apache1 < 1.3.37-3, apache1-base
290 %webapp_unregister apache %{_webapp}
292 %triggerin -- apache < 2.2.0, apache-base
293 %webapp_register httpd %{_webapp}
295 %triggerun -- apache < 2.2.0, apache-base
296 %webapp_unregister httpd %{_webapp}
298 %triggerin -- lighttpd
299 %webapp_register lighttpd %{_webapp}
301 %triggerun -- lighttpd
302 %webapp_unregister lighttpd %{_webapp}
305 %defattr(644,root,root,755)
306 %doc CHANGELOG INSTALL README UPGRADING
307 %dir %attr(750,root,http) %{_sysconfdir}
308 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
309 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
310 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
311 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.php
312 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
316 %attr(755,root,root) %{_appdir}/bin/*
317 %dir %{_appdir}/config
318 %{_appdir}/config/*.php
319 %dir %{_appdir}/program
320 %{_appdir}/program/*.gif
321 %{_appdir}/program/include
322 %{_appdir}/program/js
323 %{_appdir}/program/lib
324 %{_appdir}/program/steps
325 %dir %{_appdir}/program/localization
326 %{_appdir}/program/localization/index.inc
329 %lang(ar_SA) %{_appdir}/program/localization/ar_SA
330 %lang(ast) %{_appdir}/program/localization/ast
331 %lang(az) %{_appdir}/program/localization/az_AZ
332 %lang(bg) %{_appdir}/program/localization/bg_BG
333 %lang(bn_BD) %{_appdir}/program/localization/bn_BD
334 %lang(br) %{_appdir}/program/localization/br
335 %lang(bs) %{_appdir}/program/localization/bs_BA
336 %lang(ca) %{_appdir}/program/localization/ca_ES
337 %lang(cs) %{_appdir}/program/localization/cs_CZ
338 %lang(cy) %{_appdir}/program/localization/cy_GB
339 %lang(da) %{_appdir}/program/localization/da_DK
340 %lang(de) %{_appdir}/program/localization/de_DE
341 %lang(de_CH) %{_appdir}/program/localization/de_CH
342 %lang(el) %{_appdir}/program/localization/el_GR
343 %lang(en_GB) %{_appdir}/program/localization/en_GB
344 %lang(en_US) %{_appdir}/program/localization/en_US
345 %lang(eo) %{_appdir}/program/localization/eo
346 %lang(es) %{_appdir}/program/localization/es_ES
347 %lang(es_AR) %{_appdir}/program/localization/es_AR
348 %lang(et) %{_appdir}/program/localization/et_EE
349 %lang(eu) %{_appdir}/program/localization/eu_ES
350 %lang(fa) %{_appdir}/program/localization/fa
351 %lang(fa_AF) %{_appdir}/program/localization/fa_AF
352 %lang(fi) %{_appdir}/program/localization/fi_FI
353 %lang(fr) %{_appdir}/program/localization/fr_FR
354 %lang(ga) %{_appdir}/program/localization/ga_IE
355 %lang(gl) %{_appdir}/program/localization/gl_ES
356 %lang(he) %{_appdir}/program/localization/he_IL
357 %lang(hi) %{_appdir}/program/localization/hi_IN
358 %lang(hr) %{_appdir}/program/localization/hr_HR
359 %lang(hu) %{_appdir}/program/localization/hu_HU
360 %lang(hy) %{_appdir}/program/localization/hy_AM
361 %lang(id) %{_appdir}/program/localization/id_ID
362 %lang(is) %{_appdir}/program/localization/is_IS
363 %lang(it) %{_appdir}/program/localization/it_IT
364 %lang(ja) %{_appdir}/program/localization/ja_JP
365 %lang(ka) %{_appdir}/program/localization/ka_GE
366 %lang(ko) %{_appdir}/program/localization/ko_KR
367 %lang(ku) %{_appdir}/program/localization/ku
368 %lang(lt) %{_appdir}/program/localization/lt_LT
369 %lang(lv) %{_appdir}/program/localization/lv_LV
370 %lang(mk) %{_appdir}/program/localization/mk_MK
371 %lang(mr) %{_appdir}/program/localization/mr_IN
372 %lang(ms) %{_appdir}/program/localization/ms_MY
373 %lang(nb) %{_appdir}/program/localization/nb_NO
374 %lang(ne) %{_appdir}/program/localization/ne_NP
375 %lang(nl) %{_appdir}/program/localization/nl_NL
376 %lang(nl_BE) %{_appdir}/program/localization/nl_BE
377 %lang(nn) %{_appdir}/program/localization/nn_NO
378 %lang(pl) %{_appdir}/program/localization/pl_PL
379 %lang(ps) %{_appdir}/program/localization/ps
380 %lang(pt) %{_appdir}/program/localization/pt_PT
381 %lang(pt_BR) %{_appdir}/program/localization/pt_BR
382 %lang(ro) %{_appdir}/program/localization/ro_RO
383 %lang(ru) %{_appdir}/program/localization/ru_RU
384 %lang(si) %{_appdir}/program/localization/si_LK
385 %lang(sk) %{_appdir}/program/localization/sk_SK
386 %lang(sl) %{_appdir}/program/localization/sl_SI
387 %lang(sq) %{_appdir}/program/localization/sq_AL
388 %lang(sr) %{_appdir}/program/localization/sr_CS
389 %lang(sv) %{_appdir}/program/localization/sv_SE
390 %lang(ta_IN) %{_appdir}/program/localization/ta_IN
391 %lang(th) %{_appdir}/program/localization/th_TH
392 %lang(tr) %{_appdir}/program/localization/tr_TR
393 %lang(uk) %{_appdir}/program/localization/uk_UA
394 %lang(vn) %{_appdir}/program/localization/vi_VN
395 %lang(zh_CN) %{_appdir}/program/localization/zh_CN
396 %lang(zh_TW) %{_appdir}/program/localization/zh_TW
398 %dir %{_appdir}/skins
399 %dir %attr(770,root,http) %{_applogdir}
400 %dir %attr(751,root,logs) %{_archivelogdir}
401 %dir %attr(770,root,http) %{_appdatadir}
403 # TODO: %ghost logfile(s)
406 %defattr(644,root,root,755)
407 %dir %{_appdir}/installer
408 %{_appdir}/installer/*.php
409 %{_appdir}/installer/client.js
410 %{_appdir}/installer/styles.css
411 %{_appdir}/installer/welcome.html
412 %{_appdir}/installer/images
413 %{_appdir}/config/*.php.dist
417 %defattr(644,root,root,755)
418 %{_appdir}/skins/default