]> git.pld-linux.org Git - packages/roundcubemail.git/blob - roundcubemail.spec
- typo fixed in apache.conf, thx arekm
[packages/roundcubemail.git] / roundcubemail.spec
1 # TODO:
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
11 #
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.
15
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
21 Name:           roundcubemail
22 Version:        0.5
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:  66111e52784221c56c477adb60cc7f5c
28 Source1:        apache.conf
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
33 Source5:        find-lang.sh
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}
46 Requires:       php-date
47 Requires:       php-dom
48 Requires:       php-iconv
49 Requires:       php-imap
50 Requires:       php-pcre
51 Requires:       php-pear-DB
52 Requires:       php-pear-Mail_Mime
53 Requires:       php-pear-Net_IDNA2 >= 0.1.1
54 Requires:       php-pear-Net_SMTP
55 Requires:       php-session
56 Requires:       php-simplexml
57 Requires:       php-sockets
58 Requires:       php-spl
59 Requires:       php-xml
60 Requires:       rpm-whiteout >= 1.22
61 Requires:       webapps
62 Requires:       webserver(alias)
63 Requires:       webserver(indexfile)
64 Requires:       webserver(php)
65 Suggests:       php(fileinfo)
66 Suggests:       php-gd
67 Suggests:       php-json
68 Suggests:       php-mbstring
69 Suggests:       php-mcrypt
70 Suggests:       php-openssl
71 Suggests:       php-pear-Auth_SASL
72 Suggests:       php-pear-Net_LDAP2
73 Suggests:       php-pear-Net_Sieve
74 Suggests:       php-pear-Net_Socket
75 Suggests:       php-xml
76 Conflicts:      logrotate < 3.7-4
77 BuildArch:      noarch
78 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
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
87
88 %define         find_lang       sh %{SOURCE5} %{buildroot}
89
90 # bad depsolver
91 %define         _noautopear     pear
92
93 # exclude optional php dependencies
94 %define         _noautophp      php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
95
96 # put it together for rpmbuild
97 %define         _noautoreq      %{?_noautophp} %{?_noautopear}
98
99 %description
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.
106
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
114 XHTML-a i CSS 2.
115
116 %package setup
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}
121
122 %description setup
123 This package provides installer script for RoundCube Webmail.
124
125 %description setup -l pl.UTF-8
126 Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
127
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
134
135 %description skin-default
136 Default skin for RoundCube Webmail.
137
138 %description skin-default -l pl.UTF-8
139 Domyślna skórka dla RoundCube Webmaila.
140
141 %prep
142 %setup -q %{?with_postfixadmin:-a 4}
143 %patch0 -p1
144 %if %{with spamfilter}
145 %patch1 -p1
146 %endif
147 %if %{with postfixadmin}
148 #patch2 -p1
149 %endif
150 #%patch3 -p1
151 %if %{with password_anon_ldap_bind}
152 %patch4 -p1
153 %endif
154 %patch5 -p1
155
156 find -name .svn | xargs -r rm -rf
157
158 # undos the source
159 %undos -f php,inc,js,css
160
161 # kill extensions and fill proper shebang
162 %{__sed} -i -e '1s,^#!.*php,#!%{__php},' bin/*.sh
163 for a in bin/*.sh; do
164         mv $a ${a%.sh}
165 done
166
167 # unpacked js sources
168 find -name '*.src' | xargs rm -v
169
170 # rm utf8.class and deps, we use iconv extension
171 rm program/lib/utf8.class.php
172 rm -r program/lib/encoding
173
174 # php-pear-PEAR-core 1.9.0 (used indirectly)
175 rm program/lib/PEAR.php
176 rm program/lib/PEAR5.php
177
178 # php-pear-Net_Socket 1.0.9 (used by password, managesieve plugins)
179 rm program/lib/Net/Socket.php
180
181 # php-pear-Net_SMTP 1.4.2 (nothing seem to use it)
182 rm program/lib/Net/SMTP.php
183
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
187
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
191
192 # php-pear-Net_Sieve 1.3.0
193 rm plugins/managesieve/lib/Net/Sieve.php
194
195 # 0.1.1 snapshot (at least r301175)
196 rm program/lib/Net/IDNA2.php
197 rm -r program/lib/Net/IDNA2
198
199 # now empty dirs
200 rmdir program/lib/Auth
201 rmdir program/lib/Mail
202 rmdir program/lib/Net
203 rmdir plugins/managesieve/lib/Net
204
205 # unknown MDB2 version (newer than released 2.5.0b2, or modified by rc)
206 #rm program/lib/MDB2.php
207
208 # pear package junk
209 rm -v plugins/*/package.xml
210
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
215 cd 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
223
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
234 %endif
235
236 %install
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}
240
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}
245
246 # Skins installation
247 cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins
248
249 # Installer part
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}
254
255 # Plugins
256 cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
257
258 ## Configuration:
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
263
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}
268
269 # find locales
270 %find_lang %{name}.lang
271 # sed -ne 's/%lang(\([^)]\+\).*/\1/p' %{name}.lang | sort -u | grep _
272
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}"
277         for p in $p/*; do
278                 d=${p##*/}
279                 p=${p#$RPM_BUILD_ROOT}
280                 case "$d" in
281                 localization)
282                         continue
283                         ;;
284                 README | Changelog | config.inc.php.dist)
285                         echo "%doc $p"
286                         ;;
287                 *)
288                         echo "$p"
289                         ;;
290                 esac
291         done
292 done > plugins.lang
293 cat plugins.lang >> %{name}.lang
294
295 %clean
296 rm -rf $RPM_BUILD_ROOT
297
298 %pretrans
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
308                 fi
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
312                 fi
313         fi
314 fi
315
316 # Note this on version upgrade
317 %triggerpostun -- %{name} < %{version}-0
318 # don't do anything on --downgrade
319 if [ $1 -le 1 ]; then
320         exit 0
321 fi
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)
325
326 See %{_docdir}/%{name}-%{version}/UPGRADING* for more information.
327 EOF
328
329 %triggerin -- apache1 < 1.3.37-3, apache1-base
330 %webapp_register apache %{_webapp}
331
332 %triggerun -- apache1 < 1.3.37-3, apache1-base
333 %webapp_unregister apache %{_webapp}
334
335 %triggerin -- apache < 2.2.0, apache-base
336 %webapp_register httpd %{_webapp}
337
338 %triggerun -- apache < 2.2.0, apache-base
339 %webapp_unregister httpd %{_webapp}
340
341 %triggerin -- lighttpd
342 %webapp_register lighttpd %{_webapp}
343
344 %triggerun -- lighttpd
345 %webapp_unregister lighttpd %{_webapp}
346
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}
356 %dir %{_appdir}
357 %{_appdir}/*.php
358 %dir %{_appdir}/bin
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
369
370 %dir %{_appdir}/plugins
371
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}
376
377 # TODO: %ghost logfile(s)
378
379 %files setup
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
388 %{_appdir}/SQL
389
390 %files skin-default
391 %defattr(644,root,root,755)
392 %{_appdir}/skins/default
This page took 0.119572 seconds and 4 git commands to generate.