]> git.pld-linux.org Git - packages/roundcubemail.git/blob - roundcubemail.spec
- use iconv ext, instead of pure php code
[packages/roundcubemail.git] / roundcubemail.spec
1 # TODO:
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
10 #
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.
14
15 %define         rcpfa_ver       1.0.5
16 %define         php_min_version 5.2.3
17
18 %include        /usr/lib/rpm/macros.php
19 Summary:        RoundCube Webmail
20 Summary(pl.UTF-8):      RoundCube Webmail - poczta przez WWW
21 Name:           roundcubemail
22 Version:        0.4
23 Release:        3
24 License:        GPL v2
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}
45 Requires:       php-date
46 Requires:       php-dom
47 Requires:       php-iconv
48 Requires:       php-imap
49 Requires:       php-pcre
50 Requires:       php-pear-DB
51 Requires:       php-session
52 Requires:       php-simplexml
53 Requires:       php-sockets
54 Requires:       php-spl
55 Requires:       php-xml
56 Requires:       rpm-whiteout >= 1.22
57 Requires:       webapps
58 Requires:       webserver(alias)
59 Requires:       webserver(indexfile)
60 Requires:       webserver(php)
61 Suggests:       php(fileinfo)
62 Suggests:       php-gd
63 Suggests:       php-json
64 Suggests:       php-mbstring
65 Suggests:       php-mcrypt
66 Suggests:       php-openssl
67 Suggests:       php-pear-Auth_SASL
68 Suggests:       php-pear-Net_LDAP2
69 Suggests:       php-pear-Net_Sieve
70 Suggests:       php-pear-Net_Socket
71 Suggests:       php-xml
72 Conflicts:      logrotate < 3.7-4
73 BuildArch:      noarch
74 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75
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
83
84 # bad depsolver
85 %define         _noautopear     pear
86
87 # exclude optional php dependencies
88 %define         _noautophp      php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
89
90 # put it together for rpmbuild
91 %define         _noautoreq      %{?_noautophp} %{?_noautopear}
92
93 %description
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.
100
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
108 XHTML-a i CSS 2.
109
110 %package setup
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}
115
116 %description setup
117 This package provides installer script for RoundCube Webmail.
118
119 %description setup -l pl.UTF-8
120 Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
121
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
128
129 %description skin-default
130 Default skin for RoundCube Webmail.
131
132 %description skin-default -l pl.UTF-8
133 Domyślna skórka dla RoundCube Webmaila.
134
135 %prep
136 %setup -q %{?with_postfixadmin:-a 4}
137 %patch0 -p1
138 %if %{with spamfilter}
139 %patch1 -p1
140 %endif
141 %if %{with postfixadmin}
142 #patch2 -p1
143 %endif
144 %patch3 -p1
145 %if %{with password_anon_ldap_bind}
146 %patch4 -p1
147 %endif
148 %patch5 -p1
149
150 find -name .svn | xargs -r rm -rf
151
152 # undos the source
153 %undos -f php,inc,js,css
154
155 # kill extensions and fill proper shebang
156 %{__sed} -i -e '1s,^#!.*php,#!%{__php},' bin/*.sh
157 for a in bin/*.sh; do
158         mv $a ${a%.sh}
159 done
160
161 # unpacked js sources
162 find -name '*.src' | xargs rm -v
163
164 # rm utf8.class and deps, we use iconv extension
165 rm program/lib/utf8.class.php
166 rm -r program/lib/encoding
167
168 # php-pear-PEAR-core 1.9.0 (used indirectly)
169 rm program/lib/PEAR.php
170 rm program/lib/PEAR5.php
171
172 # php-pear-Net_Socket 1.0.9 (used by password, managesieve plugins)
173 rm program/lib/Net/Socket.php
174
175 # php-pear-Net_SMTP 1.4.2 (nothing seem to use it)
176 rm program/lib/Net/SMTP.php
177
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
181
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
185
186 # php-pear-Net_Sieve 1.3.0
187 rm plugins/managesieve/lib/Net/Sieve.php
188
189 # now empty dirs
190 rmdir program/lib/Auth
191 rmdir program/lib/Mail
192 rmdir program/lib/Net
193 rmdir plugins/managesieve/lib/Net
194
195 # unknown MDB2 version (newer than released 2.5.0b2, or modified by rc)
196 #rm program/lib/MDB2.php
197
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
202 cd 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
210
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
221 %endif
222
223 %install
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}
227
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}
232
233 # Skins installation
234 cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins
235
236 # Installer part
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}
241
242 # Plugins
243 cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
244
245 ## Configuration:
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
250
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}
255
256 %clean
257 rm -rf $RPM_BUILD_ROOT
258
259 %pretrans
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
269                 fi
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
273                 fi
274         fi
275 fi
276
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)
282
283 See %{_docdir}/%{name}-%{version}/UPGRADING* for more information.
284 EOF
285
286 %triggerin -- apache1 < 1.3.37-3, apache1-base
287 %webapp_register apache %{_webapp}
288
289 %triggerun -- apache1 < 1.3.37-3, apache1-base
290 %webapp_unregister apache %{_webapp}
291
292 %triggerin -- apache < 2.2.0, apache-base
293 %webapp_register httpd %{_webapp}
294
295 %triggerun -- apache < 2.2.0, apache-base
296 %webapp_unregister httpd %{_webapp}
297
298 %triggerin -- lighttpd
299 %webapp_register lighttpd %{_webapp}
300
301 %triggerun -- lighttpd
302 %webapp_unregister lighttpd %{_webapp}
303
304 %files
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}
313 %dir %{_appdir}
314 %{_appdir}/*.php
315 %dir %{_appdir}/bin
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
327 %{_appdir}/plugins
328
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
397
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}
402
403 # TODO: %ghost logfile(s)
404
405 %files setup
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
414 %{_appdir}/SQL
415
416 %files skin-default
417 %defattr(644,root,root,755)
418 %{_appdir}/skins/default
This page took 0.109675 seconds and 4 git commands to generate.