]> git.pld-linux.org Git - packages/roundcubemail.git/blame - roundcubemail.spec
- suggest db drivers
[packages/roundcubemail.git] / roundcubemail.spec
CommitLineData
600b6f8b 1# TODO:
83f90f35 2# - move bin/* to -setup which are related to upgrading/setup
a87cdb0e 3# - use system js/tiny_mce
e0fe6c29
ER
4# - use system js/jquery
5# - use system magic db: program/lib/magic
32abe254 6# - package: http://blog.ilohamail.org/ and remove boundled classess from it
7859ddcb 7# - test/finish and then enable by default password-anon-ldap-bind patch
33db8acb 8# - bconds does not work for a long time
5d53966e 9#
3f52c0ee 10%bcond_with spamfilter # Build with spamfilter patch
11%bcond_with postfixadmin # Build with postfixadmin support patch
12%bcond_with password_anon_ldap_bind # apply with password-anon-ldap-bind patch.
5d53966e 13
2c65974f 14%define rcpfa_ver 1.0.5
e2c7ca4f 15%define php_min_version 5.2.3
e2c7ca4f 16%include /usr/lib/rpm/macros.php
600b6f8b 17Summary: RoundCube Webmail
07c0744d 18Summary(pl.UTF-8): RoundCube Webmail - poczta przez WWW
600b6f8b 19Name: roundcubemail
eb5b13a3 20Version: 0.7.2
21Release: 1
102af7f7 22License: GPL v3+
d3874ddf 23Group: Applications/Mail
a4b2ddbf
ER
24#Source0: http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}.tar.gz
25Source0: http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}-dep.tar.gz
26# Source0-md5: 2b77fe823de00a7ebd85b8919e40d78d
62103fec 27Source1: apache.conf
94ca3383 28Source2: %{name}.logrotate
62103fec 29Source3: lighttpd.conf
2c65974f
PG
30Source4: http://nejc.skoberne.net/wp-content/uploads/2008/11/rcpfa-105.tgz
31# Source4-md5: dc23bcd894f693db74fce53b09ab58d6
6a5cb541 32Source5: find-lang.sh
600b6f8b 33Patch0: %{name}-config.patch
6511b436
ER
34Patch1: %{name}-spam.patch
35Patch2: %{name}-postfixadmin-pl_locales.patch
36Patch3: %{name}-faq-page.patch
7859ddcb 37Patch4: %{name}-password-anon-ldap-bind.patch
600b6f8b 38URL: http://www.roundcube.net/
e2c7ca4f 39BuildRequires: rpm-php-pearprov >= 4.4.2-11
0bbcc424 40BuildRequires: rpm-pythonprov
1353aee8 41BuildRequires: rpmbuild(macros) >= 1.566
a87cdb0e 42BuildRequires: sed >= 4.0
3727377d 43Requires: %{name}-skin
e2c7ca4f
ER
44Requires: php-common >= 4:%{php_min_version}
45Requires: php-date
46Requires: php-dom
e0fe6c29 47Requires: php-iconv
e2c7ca4f 48Requires: php-imap
e2c7ca4f 49Requires: php-pcre
b8598ece 50Requires: php-pear-DB
47920129 51Requires: php-pear-Mail_Mime >= 1.8.0
1353aee8 52Requires: php-pear-Net_IDNA2 >= 0.1.1
b3ac8b6a 53Requires: php-pear-Net_SMTP
e2c7ca4f
ER
54Requires: php-session
55Requires: php-simplexml
56Requires: php-sockets
57Requires: php-spl
58Requires: php-xml
22e93b97 59Requires: rpm-whiteout >= 1.22
600b6f8b 60Requires: webapps
22e93b97 61Requires: webserver(alias)
114a69ab 62Requires: webserver(indexfile)
22e93b97 63Requires: webserver(php)
83f90f35 64Suggests: php(fileinfo)
e2c7ca4f 65Suggests: php-gd
a3177d5b 66Suggests: php-intl
83f90f35 67Suggests: php-json
e2c7ca4f
ER
68Suggests: php-mbstring
69Suggests: php-mcrypt
70Suggests: php-openssl
83f90f35 71Suggests: php-pear-Auth_SASL
307f7882
ER
72# at least one MDB2 db driver needed
73Suggests: php-pear-MDB2_Driver_mysql
74Suggests: php-pear-MDB2_Driver_pgsql
75Suggests: php-pear-MDB2_Driver_sqlite
ddd8e01c 76Suggests: php-pear-Net_LDAP2
83f90f35
ER
77Suggests: php-pear-Net_Sieve
78Suggests: php-pear-Net_Socket
79Suggests: php-xml
426cfe3d 80Obsoletes: roundcube-plugin-jqueryui
a329403c 81Conflicts: logrotate < 3.8.0
600b6f8b
PG
82BuildArch: noarch
83BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
84
85%define _webapps /etc/webapps
5737afb2 86%define _webapp roundcube
600b6f8b
PG
87%define _sysconfdir %{_webapps}/%{_webapp}
88%define _appdir %{_datadir}/%{_webapp}
89%define _appdatadir /var/lib/roundcube
8f3a4fab 90%define _applogdir /var/log/roundcube
e324f8fc 91%define _archivelogdir /var/log/archive/roundcube
600b6f8b 92
6a5cb541
ER
93%define find_lang sh %{SOURCE5} %{buildroot}
94
e2c7ca4f
ER
95# bad depsolver
96%define _noautopear pear
97
98# exclude optional php dependencies
83f90f35 99%define _noautophp php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
e2c7ca4f
ER
100
101# put it together for rpmbuild
102%define _noautoreq %{?_noautophp} %{?_noautopear}
103
600b6f8b
PG
104%description
105RoundCube Webmail is a browser-based multilingual IMAP client with an
106application-like user interface. It provides full functionality you
107expect from an e-mail client, including MIME support, address book,
108folder manipulation and message filters. RoundCube Webmail is written
109in PHP and requires the MySQL database. The user interface is fully
110skinnable using XHTML and CSS 2.
111
d9bffeff
JR
112%description -l pl.UTF-8
113RoundCube Webmail to oparty na przeglądarce wielojęzyczny klient PHP z
114interfejsem użytkownika podobnym do aplikacji. Udostępnia pełną
115funkcjonalność jakiej można oczekiwać od klienta pocztowego, w tym
116obsługę MIME, książkę adresową, operacje na folderach i filtry
117wiadomości. RoundCube Webmail jest napisany w PHP i wymaga bazy danych
118MySQL. Interfejs użytkownika można w pełni obudować skórką przy użyciu
5d23c484
JB
119XHTML-a i CSS 2.
120
a10cd471 121%package setup
00ff8410 122Summary: Installer script for RoundCube Webmail
a210006f 123Summary(pl.UTF-8): Skrypt instalacyjny RoundCube Webmaila
00ff8410 124Group: Applications/WWW
8b170957 125Requires: %{name} = %{version}-%{release}
00ff8410 126
a10cd471 127%description setup
a210006f
JB
128This package provides installer script for RoundCube Webmail.
129
130%description setup -l pl.UTF-8
131Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
00ff8410 132
3727377d
ER
133%package skin-default
134Summary: Default skin for RoundCube Webmail
205b27a0 135Summary(pl.UTF-8): Domyślna skórka dla RoundCube Webmaila
3727377d 136Group: Applications/WWW
220183ec 137Requires: %{name} = %{version}-%{release}
3727377d
ER
138Provides: %{name}-skin
139
140%description skin-default
141Default skin for RoundCube Webmail.
142
205b27a0
JB
143%description skin-default -l pl.UTF-8
144Domyślna skórka dla RoundCube Webmaila.
145
600b6f8b 146%prep
a4b2ddbf 147%setup -q -n %{name}-%{version}-dep %{?with_postfixadmin:-a 4}
600b6f8b 148%patch0 -p1
5d53966e 149%if %{with spamfilter}
6511b436 150%patch1 -p1
5d53966e 151%endif
1e701d3b 152%if %{with postfixadmin}
2c65974f 153#patch2 -p1
1e701d3b 154%endif
1353aee8 155#%patch3 -p1
51610214 156%if %{with password_anon_ldap_bind}
7859ddcb 157%patch4 -p1
158%endif
e1206cba 159
5737afb2
ER
160find -name .svn | xargs -r rm -rf
161
a87cdb0e 162# undos the source
e7167a32
ER
163%undos -f php,inc,js,css
164
165# kill extensions and fill proper shebang
166%{__sed} -i -e '1s,^#!.*php,#!%{__php},' bin/*.sh
167for a in bin/*.sh; do
168 mv $a ${a%.sh}
169done
a87cdb0e 170
4dc5a7cb
SP
171%{__sed} -i s/indexcontacts.sh/indexcontacts/g bin/update
172
a517b18b
ER
173# unpacked js sources
174find -name '*.src' | xargs rm -v
971afbf3
ER
175# tools to pack js
176rm -f bin/{jsshrink,jsunshrink}
a517b18b 177
83f90f35
ER
178# php-pear-Net_Sieve 1.3.0
179rm plugins/managesieve/lib/Net/Sieve.php
180
181# now empty dirs
83f90f35
ER
182rmdir plugins/managesieve/lib/Net
183
6a5cb541
ER
184# pear package junk
185rm -v plugins/*/package.xml
186
b9aeba97 187mv config/db.inc.php.dist config/db.inc.php
188mv config/main.inc.php.dist config/main.inc.php
189%if %{with postfixadmin}
fb493b0a 190mv rcpfa-%{rcpfa_ver} rcpfa
2c65974f 191cd rcpfa
a4b2ddbf
ER
192cp -p code/forwarding.html ../skins/default/templates
193cp -p code/password.html ../skins/default/templates
194cp -p code/vacation.html ../skins/default/templates
195cp -p code/pfa_forwarding.inc ../program/steps/settings
196cp -p code/pfa_password.inc ../program/steps/settings
197cp -p code/pfa_vacation.inc ../program/steps/settings
198cp -p code/pfa.php ../program/include
199
200%{__patch} -d .. -p1 < diffs/app.js.diff
201%{__patch} -d .. -p1 < diffs/db.inc.php.diff
202%{__patch} -d .. -p1 < diffs/func.inc.diff
203%{__patch} -d .. -p1 < diffs/index.php.diff
204%{__patch} -d .. -p1 < diffs/labels.inc.diff
205%{__patch} -d .. -p1 < diffs/main.inc.diff
206%{__patch} -d .. -p1 < diffs/main.inc.php.diff
207%{__patch} -d .. -p1 < diffs/messages.inc.diff
208%{__patch} -d .. -p1 < diffs/rcube_user.php.diff
209%{__patch} -d .. -p1 < diffs/settingstabs.html.diff
b9aeba97 210%endif
6f843021 211
600b6f8b
PG
212%install
213rm -rf $RPM_BUILD_ROOT
e324f8fc 214install -d $RPM_BUILD_ROOT{%{_appdatadir},%{_applogdir},%{_archivelogdir},%{_sysconfdir}} \
98cf2bae 215 $RPM_BUILD_ROOT{%{_appdir}/{bin,config,installer,program,skins},/etc/logrotate.d}
600b6f8b
PG
216
217# Main application part:
59b0d169 218cp -a program/* $RPM_BUILD_ROOT%{_appdir}/program
e7167a32 219cp -a bin/* $RPM_BUILD_ROOT%{_appdir}/bin
59b0d169 220cp -a index.php $RPM_BUILD_ROOT%{_appdir}
600b6f8b 221
3727377d 222# Skins installation
59b0d169 223cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins
600b6f8b 224
98cf2bae
SP
225# Installer part
226cp -a installer/* $RPM_BUILD_ROOT%{_appdir}/installer
a0651488
ER
227cp -a config/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php.dist
228cp -a config/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php.dist
229cp -a SQL $RPM_BUILD_ROOT%{_appdir}
98cf2bae 230
2a88dca9 231# Plugins
232cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
233
600b6f8b 234## Configuration:
a0651488
ER
235cp -a config/db.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/db.inc.php
236cp -a config/main.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/main.inc.php
600b6f8b
PG
237ln -sf %{_sysconfdir}/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php
238ln -sf %{_sysconfdir}/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php
239
a4b2ddbf
ER
240cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
241cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
242cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
243cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
32abe254 244
6a5cb541
ER
245# find locales
246%find_lang %{name}.lang
247# sed -ne 's/%lang(\([^)]\+\).*/\1/p' %{name}.lang | sort -u | grep _
248
249# now package plugins using filelist as well, as due lang tagging the files
250# section will go unmanageable
251for p in $RPM_BUILD_ROOT%{_appdir}/plugins/*; do
252 echo "%dir ${p#$RPM_BUILD_ROOT}"
253 for p in $p/*; do
254 d=${p##*/}
255 p=${p#$RPM_BUILD_ROOT}
256 case "$d" in
257 localization)
258 continue
259 ;;
260 README | Changelog | config.inc.php.dist)
261 echo "%doc $p"
262 ;;
263 *)
264 echo "$p"
265 ;;
266 esac
267 done
268done > plugins.lang
269cat plugins.lang >> %{name}.lang
270
5d23c484
JB
271%clean
272rm -rf $RPM_BUILD_ROOT
273
83b7476e
ER
274%post
275# replace default des string in config file for better security
36122e51 276makedesstr() {
83b7476e 277 openssl rand -hex 12
36122e51 278}
83b7476e
ER
279
280if grep -q '24ByteDESkey' %{_sysconfdir}/main.inc.php; then
449f964a
ER
281 des=$(makedesstr)
282 # precaution if random str generation failed
283 if [ c$(echo -n "$des" | wc -c) = c24 ]; then
284 %{__sed} -i -e "s/rcmail-\!24ByteDESkey\*Str/$des/" %{_sysconfdir}/main.inc.php
285 fi
83b7476e
ER
286fi
287
a87cdb0e
ER
288%pretrans
289if [ ! -f %{_sysconfdir}/db.inc.php -o ! -f %{_sysconfdir}/main.inc.php ]; then
290 # import configs from previously manually installed site
291 d=/home/services/httpd/html/config
4e2ae79b
ER
292 if [ -f $d/db.inc.php -o -f $d/main.inc.php ]; then
293 echo >&2 "Importing site configs from $d"
294 mkdir -p %{_sysconfdir}
295 if [ -f $d/db.inc.php ]; then
296 [ -f %{_sysconfdir}/db.inc.php ] && mv -f %{_sysconfdir}/db.inc.php{,.rpmorig}
297 cp -af $d/db.inc.php %{_sysconfdir}/db.inc.php
298 fi
299 if [ -f $d/main.inc.php ]; then
300 [ -f %{_sysconfdir}/main.inc.php ] && mv -f %{_sysconfdir}/main.inc.php{,.rpmorig}
301 cp -af $d/main.inc.php %{_sysconfdir}/main.inc.php
302 fi
a87cdb0e
ER
303 fi
304fi
305
5e4530ac 306# Note this on version upgrade
1353aee8
ER
307%triggerpostun -- %{name} < %{version}-0
308# don't do anything on --downgrade
309if [ $1 -le 1 ]; then
310 exit 0
311fi
312%banner -e %{name}-upgrade <<-EOF
5e4530ac 313Run %{_appdir}/bin/update to update to version %{version}.
83f90f35
ER
314(Be sure to have %{name}-setup installed when you run it)
315
5e4530ac
ER
316See %{_docdir}/%{name}-%{version}/UPGRADING* for more information.
317EOF
318
4fddc0f8 319%triggerin -- apache1 < 1.3.37-3, apache1-base
600b6f8b
PG
320%webapp_register apache %{_webapp}
321
4fddc0f8 322%triggerun -- apache1 < 1.3.37-3, apache1-base
600b6f8b
PG
323%webapp_unregister apache %{_webapp}
324
325%triggerin -- apache < 2.2.0, apache-base
326%webapp_register httpd %{_webapp}
327
328%triggerun -- apache < 2.2.0, apache-base
329%webapp_unregister httpd %{_webapp}
330
beb3779c
PG
331%triggerin -- lighttpd
332%webapp_register lighttpd %{_webapp}
333
334%triggerun -- lighttpd
335%webapp_unregister lighttpd %{_webapp}
336
6a5cb541 337%files -f %{name}.lang
600b6f8b 338%defattr(644,root,root,755)
a0651488 339%doc CHANGELOG INSTALL README UPGRADING
600b6f8b 340%dir %attr(750,root,http) %{_sysconfdir}
32abe254
PG
341%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
342%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
beb3779c 343%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
600b6f8b 344%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.php
496e37a6 345%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
600b6f8b 346%dir %{_appdir}
7e88f091 347%{_appdir}/*.php
6af22bc8 348%dir %{_appdir}/bin
e7167a32 349%attr(755,root,root) %{_appdir}/bin/*
600b6f8b
PG
350%dir %{_appdir}/config
351%{_appdir}/config/*.php
352%dir %{_appdir}/program
59b0d169
ER
353%{_appdir}/program/*.gif
354%{_appdir}/program/include
355%{_appdir}/program/js
356%{_appdir}/program/lib
357%{_appdir}/program/steps
59b0d169 358%{_appdir}/program/localization/index.inc
6a5cb541
ER
359
360%dir %{_appdir}/plugins
59b0d169 361
290a707d 362%dir %{_appdir}/skins
8f3a4fab 363%dir %attr(770,root,http) %{_applogdir}
e324f8fc 364%dir %attr(751,root,logs) %{_archivelogdir}
600b6f8b 365%dir %attr(770,root,http) %{_appdatadir}
6511b436
ER
366
367# TODO: %ghost logfile(s)
3727377d 368
a10cd471 369%files setup
00ff8410
SP
370%defattr(644,root,root,755)
371%dir %{_appdir}/installer
372%{_appdir}/installer/*.php
373%{_appdir}/installer/client.js
374%{_appdir}/installer/styles.css
375%{_appdir}/installer/welcome.html
376%{_appdir}/installer/images
a0651488
ER
377%{_appdir}/config/*.php.dist
378%{_appdir}/SQL
00ff8410 379
3727377d
ER
380%files skin-default
381%defattr(644,root,root,755)
382%{_appdir}/skins/default
This page took 0.159992 seconds and 4 git commands to generate.