2 # - use system js/tiny_mce
3 # - use system js/jquery
4 # - package: http://blog.ilohamail.org/ and remove boundled classess from it
5 # - test/finish and then enable by default password-anon-ldap-bind patch
6 # - bconds does not work for a long time
8 %bcond_with spamfilter # Build with spamfilter patch
9 %bcond_with postfixadmin # Build with postfixadmin support patch
10 %bcond_with password_anon_ldap_bind # apply with password-anon-ldap-bind patch.
12 %define rcpfa_ver 1.0.5
13 %define php_min_version 5.2.3
14 %include /usr/lib/rpm/macros.php
15 Summary: RoundCube Webmail
16 Summary(pl.UTF-8): RoundCube Webmail - poczta przez WWW
21 Group: Applications/Mail
22 Source0: http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}-dep.tar.gz
23 # Source0-md5: 9465b80be1c13534646a04b0b5562d56
25 Source2: %{name}.logrotate
26 Source3: lighttpd.conf
27 Source4: http://nejc.skoberne.net/wp-content/uploads/2008/11/rcpfa-105.tgz
28 # Source4-md5: dc23bcd894f693db74fce53b09ab58d6
31 Patch0: %{name}-config.patch
32 Patch1: %{name}-spam.patch
33 Patch2: %{name}-postfixadmin-pl_locales.patch
34 Patch3: %{name}-faq-page.patch
35 Patch4: %{name}-password-anon-ldap-bind.patch
36 URL: http://www.roundcube.net/
37 BuildRequires: rpm-php-pearprov >= 4.4.2-11
38 BuildRequires: rpm-pythonprov
39 BuildRequires: rpmbuild(macros) >= 1.654
40 BuildRequires: sed >= 4.0
41 Requires: %{name}-skin
42 Requires: php(core) >= %{php_min_version}
48 Requires: php(session)
49 Requires: php(simplexml)
50 Requires: php(sockets)
54 Requires: php-pear-Mail_Mime >= 1.8.0
55 Requires: php-pear-Net_IDNA2 >= 0.1.1
56 Requires: php-pear-Net_SMTP
57 Requires: rpm-whiteout >= 1.22
59 Requires: webserver(alias)
60 Requires: webserver(indexfile)
61 Requires: webserver(php)
62 Requires(post): openssl-tools
64 Suggests: php(fileinfo)
68 Suggests: php(mbstring)
70 Suggests: php(openssl)
72 Suggests: php-pear-Auth_SASL
73 # at least one MDB2 db driver needed
74 Suggests: php-pear-MDB2_Driver_mysql
75 Suggests: php-pear-MDB2_Driver_pgsql
76 Suggests: php-pear-MDB2_Driver_sqlite
77 Suggests: php-pear-Net_LDAP2
78 Suggests: php-pear-Net_Sieve
79 Suggests: php-pear-Net_Socket
80 Obsoletes: roundcube-plugin-jqueryui
81 Obsoletes: roundcubemail-skin-default
82 Conflicts: apache-base < 2.4.0-1
83 Conflicts: logrotate < 3.8.0
85 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
87 %define _webapps /etc/webapps
88 %define _webapp roundcube
89 %define _sysconfdir %{_webapps}/%{_webapp}
90 %define _appdir %{_datadir}/%{_webapp}
91 %define _appdatadir /var/lib/roundcube
92 %define _applogdir /var/log/roundcube
93 %define _archivelogdir /var/log/archive/roundcube
95 %define find_lang sh %{SOURCE5} %{buildroot}
97 %define _noautoreq_pear .*
99 # exclude optional php dependencies
100 %define _noautophp php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
102 # put it together for rpmbuild
103 %define _noautoreq %{?_noautophp}
106 RoundCube Webmail is a browser-based multilingual IMAP client with an
107 application-like user interface. It provides full functionality you
108 expect from an e-mail client, including MIME support, address book,
109 folder manipulation and message filters. RoundCube Webmail is written
110 in PHP and requires the MySQL database. The user interface is fully
111 skinnable using XHTML and CSS 2.
113 %description -l pl.UTF-8
114 RoundCube Webmail to oparty na przeglądarce wielojęzyczny klient PHP z
115 interfejsem użytkownika podobnym do aplikacji. Udostępnia pełną
116 funkcjonalność jakiej można oczekiwać od klienta pocztowego, w tym
117 obsługę MIME, książkę adresową, operacje na folderach i filtry
118 wiadomości. RoundCube Webmail jest napisany w PHP i wymaga bazy danych
119 MySQL. Interfejs użytkownika można w pełni obudować skórką przy użyciu
123 Summary: Installer script for RoundCube Webmail
124 Summary(pl.UTF-8): Skrypt instalacyjny RoundCube Webmaila
125 Group: Applications/WWW
126 Requires: %{name} = %{version}-%{release}
129 This package provides installer script for RoundCube Webmail.
131 %description setup -l pl.UTF-8
132 Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
134 %package skin-classic
135 Summary: Classic skin for RoundCube Webmail
136 Summary(pl.UTF-8): Klasyczna skórka dla RoundCube Webmaila
137 Group: Applications/WWW
138 Requires: %{name} = %{version}-%{release}
139 Provides: %{name}-skin
141 %description skin-classic
142 Classic skin for RoundCube Webmail.
144 %description skin-classic -l pl.UTF-8
145 Klasyczna skórka dla RoundCube Webmaila.
148 Summary: Larry skin for RoundCube Webmail
149 Summary(pl.UTF-8): Skórka Larry dla RoundCube Webmaila
150 Group: Applications/WWW
151 Requires: %{name} = %{version}-%{release}
152 Provides: %{name}-skin
154 %description skin-larry
155 Larry skin for RoundCube Webmail.
157 %description skin-larry -l pl.UTF-8
158 Skórka Larry dla RoundCube Webmaila.
161 %setup -q -n %{name}-%{version}-dep %{?with_postfixadmin:-a 4}
163 %if %{with spamfilter}
166 %if %{with postfixadmin}
170 %if %{with password_anon_ldap_bind}
174 find -name .svn | xargs -r rm -rf
177 %undos -f php,inc,js,css
179 # fill proper shebang
180 %{__sed} -i -e '1s,^#!.*php,#!/usr/bin/php,' bin/*.sh
181 # these are php scripts really
182 for a in $(grep -l '<?php' bin/*.sh); do
185 %{__sed} -i s/indexcontacts.sh/indexcontacts/g bin/update
186 %{__sed} -i s/updatedb.sh/updatedb/g bin/update
193 rm -v plugins/*/package.xml
195 mv config/config.inc.php{.sample,}
197 %if %{with postfixadmin}
198 mv rcpfa-%{rcpfa_ver} rcpfa
200 cp -p code/forwarding.html ../skins/default/templates
201 cp -p code/password.html ../skins/default/templates
202 cp -p code/vacation.html ../skins/default/templates
203 cp -p code/pfa_forwarding.inc ../program/steps/settings
204 cp -p code/pfa_password.inc ../program/steps/settings
205 cp -p code/pfa_vacation.inc ../program/steps/settings
206 cp -p code/pfa.php ../program/include
208 %{__patch} -d .. -p1 < diffs/app.js.diff
209 %{__patch} -d .. -p1 < diffs/db.inc.php.diff
210 %{__patch} -d .. -p1 < diffs/func.inc.diff
211 %{__patch} -d .. -p1 < diffs/index.php.diff
212 %{__patch} -d .. -p1 < diffs/labels.inc.diff
213 %{__patch} -d .. -p1 < diffs/main.inc.diff
214 %{__patch} -d .. -p1 < diffs/config.inc.php.diff
215 %{__patch} -d .. -p1 < diffs/messages.inc.diff
216 %{__patch} -d .. -p1 < diffs/rcube_user.php.diff
217 %{__patch} -d .. -p1 < diffs/settingstabs.html.diff
220 # cleanup backups after patching
221 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
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 SQL $RPM_BUILD_ROOT%{_appdir}
241 cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
244 for a in config/*.php; do
245 cp -p $a $RPM_BUILD_ROOT%{_sysconfdir}
246 ln -s %{_sysconfdir}/$(basename $a) $RPM_BUILD_ROOT%{_appdir}/config
248 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
249 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
250 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
251 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
254 %find_lang %{name}.lang
255 # sed -ne 's/%lang(\([^)]\+\).*/\1/p' %{name}.lang | sort -u | grep _
257 # now package plugins using filelist as well, as due lang tagging the files
258 # section will go unmanageable
259 for p in $RPM_BUILD_ROOT%{_appdir}/plugins/*; do
260 echo "%dir ${p#$RPM_BUILD_ROOT}"
263 p=${p#$RPM_BUILD_ROOT}
268 README | Changelog | composer.json | config.inc.php.dist)
277 cat plugins.lang >> %{name}.lang
280 rm -rf $RPM_BUILD_ROOT
283 # replace default des string in config file for better security
288 if grep -q '24ByteDESkey' %{_sysconfdir}/config.inc.php; then
290 # precaution if random str generation failed
291 if [ c$(echo -n "$des" | wc -c) = c24 ]; then
292 %{__sed} -i -e "s/rcmail-\!24ByteDESkey\*Str/$des/" %{_sysconfdir}/config.inc.php
296 # Note this on version upgrade
297 %triggerpostun -- %{name} < %{version}-0
298 # don't do anything on --downgrade
299 if [ $1 -le 1 ]; then
302 %banner -e %{name}-upgrade <<-EOF
303 Run %{_appdir}/bin/update to update to version %{version}.
304 (Be sure to have %{name}-setup installed when you run it)
306 See %{_docdir}/%{name}-%{version}/UPGRADING* for more information.
309 %triggerin -- apache1 < 1.3.37-3, apache1-base
310 %webapp_register apache %{_webapp}
312 %triggerun -- apache1 < 1.3.37-3, apache1-base
313 %webapp_unregister apache %{_webapp}
315 %triggerin -- apache-base
316 %webapp_register httpd %{_webapp}
318 %triggerun -- apache-base
319 %webapp_unregister httpd %{_webapp}
321 %triggerin -- lighttpd
322 %webapp_register lighttpd %{_webapp}
324 %triggerun -- lighttpd
325 %webapp_unregister lighttpd %{_webapp}
327 %files -f %{name}.lang
328 %defattr(644,root,root,755)
329 %doc CHANGELOG INSTALL README.md UPGRADING
330 %dir %attr(750,root,http) %{_sysconfdir}
331 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
332 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
333 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
334 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.inc.php
335 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/defaults.inc.php
336 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mimetypes.php
337 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
341 %dir %{_appdir}/program
342 %{_appdir}/program/include
343 %{_appdir}/program/js
344 %{_appdir}/program/lib
345 %{_appdir}/program/resources
346 %{_appdir}/program/steps
347 %{_appdir}/program/localization/index.inc
349 %dir %{_appdir}/plugins
351 %dir %{_appdir}/skins
352 %dir %attr(770,root,http) %{_applogdir}
353 %dir %attr(751,root,logs) %{_archivelogdir}
354 %dir %attr(770,root,http) %{_appdatadir}
356 # TODO: %ghost logfile(s)
359 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_appdir}/bin/*
362 %dir %{_appdir}/installer
363 %{_appdir}/installer/*.php
364 %{_appdir}/installer/client.js
365 %{_appdir}/installer/styles.css
366 %{_appdir}/installer/images
370 %defattr(644,root,root,755)
371 %{_appdir}/skins/classic
374 %defattr(644,root,root,755)
375 %{_appdir}/skins/larry