2 # - use gpl-dependant tarball, instead of full tarball and removing all bundled libs again?
3 # see: http://www.roundcubeforum.net/3-news-announcements/32-news-announcements/6601-roundcube-news-new-version-0-4-beta-released.html
4 # - move bin/* to -setup which are related to upgrading/setup
5 # - use system js/tiny_mce
6 # - use system js/jquery
7 # - use system magic db: program/lib/magic
8 # - package: http://blog.ilohamail.org/ and remove boundled classess from it
9 # - Some php-database backend. Suggests?
10 # - test/finish and then enable by default password-anon-ldap-bind patch
12 %bcond_with spamfilter # Build with spamfilter patch
13 %bcond_with postfixadmin # Build with postfixadmin support patch
14 %bcond_with password_anon_ldap_bind # apply with password-anon-ldap-bind patch.
16 %define rcpfa_ver 1.0.5
17 %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: 66111e52784221c56c477adb60cc7f5c
29 Source2: %{name}.logrotate
30 Source3: lighttpd.conf
31 Source4: http://nejc.skoberne.net/wp-content/uploads/2008/11/rcpfa-105.tgz
32 # Source4-md5: dc23bcd894f693db74fce53b09ab58d6
34 Patch0: %{name}-config.patch
35 Patch1: %{name}-spam.patch
36 Patch2: %{name}-postfixadmin-pl_locales.patch
37 Patch3: %{name}-faq-page.patch
38 Patch4: %{name}-password-anon-ldap-bind.patch
39 Patch5: use-iconv.patch
40 URL: http://www.roundcube.net/
41 BuildRequires: rpm-php-pearprov >= 4.4.2-11
42 BuildRequires: rpmbuild(macros) >= 1.566
43 BuildRequires: sed >= 4.0
44 Requires: %{name}-skin
45 Requires: php-common >= 4:%{php_min_version}
52 Requires: php-pear-Mail_Mime
53 Requires: php-pear-Net_IDNA2 >= 0.1.1
54 Requires: php-pear-Net_SMTP
56 Requires: php-simplexml
60 Requires: rpm-whiteout >= 1.22
62 Requires: webserver(alias)
63 Requires: webserver(indexfile)
64 Requires: webserver(php)
65 Suggests: php(fileinfo)
68 Suggests: php-mbstring
71 Suggests: php-pear-Auth_SASL
72 Suggests: php-pear-Net_LDAP2
73 Suggests: php-pear-Net_Sieve
74 Suggests: php-pear-Net_Socket
76 Conflicts: logrotate < 3.7-4
78 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
80 %define _webapps /etc/webapps
81 %define _webapp roundcube
82 %define _sysconfdir %{_webapps}/%{_webapp}
83 %define _appdir %{_datadir}/%{_webapp}
84 %define _appdatadir /var/lib/roundcube
85 %define _applogdir /var/log/roundcube
86 %define _archivelogdir /var/log/archive/roundcube
88 %define find_lang sh %{SOURCE5} %{buildroot}
91 %define _noautopear pear
93 # exclude optional php dependencies
94 %define _noautophp php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
96 # put it together for rpmbuild
97 %define _noautoreq %{?_noautophp} %{?_noautopear}
100 RoundCube Webmail is a browser-based multilingual IMAP client with an
101 application-like user interface. It provides full functionality you
102 expect from an e-mail client, including MIME support, address book,
103 folder manipulation and message filters. RoundCube Webmail is written
104 in PHP and requires the MySQL database. The user interface is fully
105 skinnable using XHTML and CSS 2.
107 %description -l pl.UTF-8
108 RoundCube Webmail to oparty na przeglądarce wielojęzyczny klient PHP z
109 interfejsem użytkownika podobnym do aplikacji. Udostępnia pełną
110 funkcjonalność jakiej można oczekiwać od klienta pocztowego, w tym
111 obsługę MIME, książkę adresową, operacje na folderach i filtry
112 wiadomości. RoundCube Webmail jest napisany w PHP i wymaga bazy danych
113 MySQL. Interfejs użytkownika można w pełni obudować skórką przy użyciu
117 Summary: Installer script for RoundCube Webmail
118 Summary(pl.UTF-8): Skrypt instalacyjny RoundCube Webmaila
119 Group: Applications/WWW
120 Requires: %{name} = %{version}-%{release}
123 This package provides installer script for RoundCube Webmail.
125 %description setup -l pl.UTF-8
126 Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
128 %package skin-default
129 Summary: Default skin for RoundCube Webmail
130 Summary(pl.UTF-8): Domyślna skórka dla RoundCube Webmaila
131 Group: Applications/WWW
132 Requires: %{name} = %{version}-%{release}
133 Provides: %{name}-skin
135 %description skin-default
136 Default skin for RoundCube Webmail.
138 %description skin-default -l pl.UTF-8
139 Domyślna skórka dla RoundCube Webmaila.
142 %setup -q %{?with_postfixadmin:-a 4}
144 %if %{with spamfilter}
147 %if %{with postfixadmin}
151 %if %{with password_anon_ldap_bind}
156 find -name .svn | xargs -r rm -rf
159 %undos -f php,inc,js,css
161 # kill extensions and fill proper shebang
162 %{__sed} -i -e '1s,^#!.*php,#!%{__php},' bin/*.sh
163 for a in bin/*.sh; do
167 # unpacked js sources
168 find -name '*.src' | xargs rm -v
170 # rm utf8.class and deps, we use iconv extension
171 rm program/lib/utf8.class.php
172 rm -r program/lib/encoding
174 # php-pear-PEAR-core 1.9.0 (used indirectly)
175 rm program/lib/PEAR.php
176 rm program/lib/PEAR5.php
178 # php-pear-Net_Socket 1.0.9 (used by password, managesieve plugins)
179 rm program/lib/Net/Socket.php
181 # php-pear-Net_SMTP 1.4.2 (nothing seem to use it)
182 rm program/lib/Net/SMTP.php
184 # php-pear-Auth_SASL 1.0.4 (used by managesieve)
185 rm program/lib/Auth/SASL.php
186 rm -r program/lib/Auth/SASL
188 # php-pear-Mail_Mime 1.8.0 (nothing seems to use it)
189 rm program/lib/Mail/mime.php
190 rm program/lib/Mail/mimePart.php
192 # php-pear-Net_Sieve 1.3.0
193 rm plugins/managesieve/lib/Net/Sieve.php
195 # 0.1.1 snapshot (at least r301175)
196 rm program/lib/Net/IDNA2.php
197 rm -r program/lib/Net/IDNA2
200 rmdir program/lib/Auth
201 rmdir program/lib/Mail
202 rmdir program/lib/Net
203 rmdir plugins/managesieve/lib/Net
205 # unknown MDB2 version (newer than released 2.5.0b2, or modified by rc)
206 #rm program/lib/MDB2.php
209 rm -v plugins/*/package.xml
211 mv config/db.inc.php.dist config/db.inc.php
212 mv config/main.inc.php.dist config/main.inc.php
213 %if %{with postfixadmin}
214 mv rcpfa-%{rcpfa_ver} rcpfa
216 cp code/forwarding.html ../skins/default/templates
217 cp code/password.html ../skins/default/templates
218 cp code/vacation.html ../skins/default/templates
219 cp code/pfa_forwarding.inc ../program/steps/settings
220 cp code/pfa_password.inc ../program/steps/settings
221 cp code/pfa_vacation.inc ../program/steps/settings
222 cp code/pfa.php ../program/include
224 patch -d .. -p1 < diffs/app.js.diff
225 patch -d .. -p1 < diffs/db.inc.php.diff
226 patch -d .. -p1 < diffs/func.inc.diff
227 patch -d .. -p1 < diffs/index.php.diff
228 patch -d .. -p1 < diffs/labels.inc.diff
229 patch -d .. -p1 < diffs/main.inc.diff
230 patch -d .. -p1 < diffs/main.inc.php.diff
231 patch -d .. -p1 < diffs/messages.inc.diff
232 patch -d .. -p1 < diffs/rcube_user.php.diff
233 patch -d .. -p1 < diffs/settingstabs.html.diff
237 rm -rf $RPM_BUILD_ROOT
238 install -d $RPM_BUILD_ROOT{%{_appdatadir},%{_applogdir},%{_archivelogdir},%{_sysconfdir}} \
239 $RPM_BUILD_ROOT{%{_appdir}/{bin,config,installer,program,skins},/etc/logrotate.d}
241 # Main application part:
242 cp -a program/* $RPM_BUILD_ROOT%{_appdir}/program
243 cp -a bin/* $RPM_BUILD_ROOT%{_appdir}/bin
244 cp -a index.php $RPM_BUILD_ROOT%{_appdir}
247 cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins
250 cp -a installer/* $RPM_BUILD_ROOT%{_appdir}/installer
251 cp -a config/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php.dist
252 cp -a config/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php.dist
253 cp -a SQL $RPM_BUILD_ROOT%{_appdir}
256 cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
259 cp -a config/db.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/db.inc.php
260 cp -a config/main.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/main.inc.php
261 ln -sf %{_sysconfdir}/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php
262 ln -sf %{_sysconfdir}/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php
264 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
265 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
266 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
267 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
270 %find_lang %{name}.lang
271 # sed -ne 's/%lang(\([^)]\+\).*/\1/p' %{name}.lang | sort -u | grep _
273 # now package plugins using filelist as well, as due lang tagging the files
274 # section will go unmanageable
275 for p in $RPM_BUILD_ROOT%{_appdir}/plugins/*; do
276 echo "%dir ${p#$RPM_BUILD_ROOT}"
279 p=${p#$RPM_BUILD_ROOT}
284 README | Changelog | config.inc.php.dist)
293 cat plugins.lang >> %{name}.lang
296 rm -rf $RPM_BUILD_ROOT
299 if [ ! -f %{_sysconfdir}/db.inc.php -o ! -f %{_sysconfdir}/main.inc.php ]; then
300 # import configs from previously manually installed site
301 d=/home/services/httpd/html/config
302 if [ -f $d/db.inc.php -o -f $d/main.inc.php ]; then
303 echo >&2 "Importing site configs from $d"
304 mkdir -p %{_sysconfdir}
305 if [ -f $d/db.inc.php ]; then
306 [ -f %{_sysconfdir}/db.inc.php ] && mv -f %{_sysconfdir}/db.inc.php{,.rpmorig}
307 cp -af $d/db.inc.php %{_sysconfdir}/db.inc.php
309 if [ -f $d/main.inc.php ]; then
310 [ -f %{_sysconfdir}/main.inc.php ] && mv -f %{_sysconfdir}/main.inc.php{,.rpmorig}
311 cp -af $d/main.inc.php %{_sysconfdir}/main.inc.php
316 # Note this on version upgrade
317 %triggerpostun -- %{name} < %{version}-0
318 # don't do anything on --downgrade
319 if [ $1 -le 1 ]; then
322 %banner -e %{name}-upgrade <<-EOF
323 Run %{_appdir}/bin/update to update to version %{version}.
324 (Be sure to have %{name}-setup installed when you run it)
326 See %{_docdir}/%{name}-%{version}/UPGRADING* for more information.
329 %triggerin -- apache1 < 1.3.37-3, apache1-base
330 %webapp_register apache %{_webapp}
332 %triggerun -- apache1 < 1.3.37-3, apache1-base
333 %webapp_unregister apache %{_webapp}
335 %triggerin -- apache < 2.2.0, apache-base
336 %webapp_register httpd %{_webapp}
338 %triggerun -- apache < 2.2.0, apache-base
339 %webapp_unregister httpd %{_webapp}
341 %triggerin -- lighttpd
342 %webapp_register lighttpd %{_webapp}
344 %triggerun -- lighttpd
345 %webapp_unregister lighttpd %{_webapp}
347 %files -f %{name}.lang
348 %defattr(644,root,root,755)
349 %doc CHANGELOG INSTALL README UPGRADING
350 %dir %attr(750,root,http) %{_sysconfdir}
351 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
352 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
353 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
354 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.php
355 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
359 %attr(755,root,root) %{_appdir}/bin/*
360 %dir %{_appdir}/config
361 %{_appdir}/config/*.php
362 %dir %{_appdir}/program
363 %{_appdir}/program/*.gif
364 %{_appdir}/program/include
365 %{_appdir}/program/js
366 %{_appdir}/program/lib
367 %{_appdir}/program/steps
368 %{_appdir}/program/localization/index.inc
370 %dir %{_appdir}/plugins
372 %dir %{_appdir}/skins
373 %dir %attr(770,root,http) %{_applogdir}
374 %dir %attr(751,root,logs) %{_archivelogdir}
375 %dir %attr(770,root,http) %{_appdatadir}
377 # TODO: %ghost logfile(s)
380 %defattr(644,root,root,755)
381 %dir %{_appdir}/installer
382 %{_appdir}/installer/*.php
383 %{_appdir}/installer/client.js
384 %{_appdir}/installer/styles.css
385 %{_appdir}/installer/welcome.html
386 %{_appdir}/installer/images
387 %{_appdir}/config/*.php.dist
391 %defattr(644,root,root,755)
392 %{_appdir}/skins/default