]>
Commit | Line | Data |
---|---|---|
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 | |
6 | # - script to %lang all "localization" dirs | |
32abe254 | 7 | # - package: http://blog.ilohamail.org/ and remove boundled classess from it |
a0651488 | 8 | # - Some php-database backend. Suggests? |
7859ddcb | 9 | # - test/finish and then enable by default password-anon-ldap-bind patch |
5d53966e SP |
10 | # |
11 | %bcond_with spamfilter # Build with spamfilter patch | |
b9aeba97 | 12 | %bcond_with postfixadmin # Build with postfixadmin support patch |
51610214 | 13 | %bcond_with password_anon_ldap_bind # apply with password-anon-ldap-bind patch. |
5d53966e | 14 | |
2c65974f | 15 | %define rcpfa_ver 1.0.5 |
e2c7ca4f ER |
16 | %define php_min_version 5.2.3 |
17 | ||
18 | %include /usr/lib/rpm/macros.php | |
600b6f8b | 19 | Summary: RoundCube Webmail |
07c0744d | 20 | Summary(pl.UTF-8): RoundCube Webmail - poczta przez WWW |
600b6f8b | 21 | Name: roundcubemail |
a27276b1 | 22 | Version: 0.4.2 |
e1206cba | 23 | Release: 2 |
600b6f8b | 24 | License: GPL v2 |
d3874ddf | 25 | Group: Applications/Mail |
22e93b97 | 26 | Source0: http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}.tar.gz |
a27276b1 | 27 | # Source0-md5: d28417f0f16ff2a251a964be153c967a |
32abe254 | 28 | Source1: %{name}.config |
94ca3383 | 29 | Source2: %{name}.logrotate |
beb3779c | 30 | Source3: %{name}-lighttpd.conf |
2c65974f PG |
31 | Source4: http://nejc.skoberne.net/wp-content/uploads/2008/11/rcpfa-105.tgz |
32 | # Source4-md5: dc23bcd894f693db74fce53b09ab58d6 | |
6a5cb541 | 33 | Source5: find-lang.sh |
600b6f8b | 34 | Patch0: %{name}-config.patch |
6511b436 ER |
35 | Patch1: %{name}-spam.patch |
36 | Patch2: %{name}-postfixadmin-pl_locales.patch | |
37 | Patch3: %{name}-faq-page.patch | |
7859ddcb | 38 | Patch4: %{name}-password-anon-ldap-bind.patch |
e0fe6c29 | 39 | Patch5: use-iconv.patch |
e1206cba | 40 | # Disabled. Because of this patch roundcube does not show folders other than INBOX. |
41 | # Patch6: shared-folders.patch | |
600b6f8b | 42 | URL: http://www.roundcube.net/ |
e2c7ca4f | 43 | BuildRequires: rpm-php-pearprov >= 4.4.2-11 |
e7167a32 | 44 | BuildRequires: rpmbuild(macros) >= 1.553 |
a87cdb0e | 45 | BuildRequires: sed >= 4.0 |
3727377d | 46 | Requires: %{name}-skin |
e2c7ca4f ER |
47 | Requires: php-common >= 4:%{php_min_version} |
48 | Requires: php-date | |
49 | Requires: php-dom | |
e0fe6c29 | 50 | Requires: php-iconv |
e2c7ca4f | 51 | Requires: php-imap |
e2c7ca4f | 52 | Requires: php-pcre |
b8598ece | 53 | Requires: php-pear-DB |
b3ac8b6a SP |
54 | Requires: php-pear-Mail_Mime |
55 | Requires: php-pear-Net_SMTP | |
e2c7ca4f ER |
56 | Requires: php-session |
57 | Requires: php-simplexml | |
58 | Requires: php-sockets | |
59 | Requires: php-spl | |
60 | Requires: php-xml | |
22e93b97 | 61 | Requires: rpm-whiteout >= 1.22 |
600b6f8b | 62 | Requires: webapps |
22e93b97 | 63 | Requires: webserver(alias) |
114a69ab | 64 | Requires: webserver(indexfile) |
22e93b97 | 65 | Requires: webserver(php) |
83f90f35 | 66 | Suggests: php(fileinfo) |
e2c7ca4f | 67 | Suggests: php-gd |
83f90f35 | 68 | Suggests: php-json |
e2c7ca4f ER |
69 | Suggests: php-mbstring |
70 | Suggests: php-mcrypt | |
71 | Suggests: php-openssl | |
83f90f35 | 72 | Suggests: php-pear-Auth_SASL |
ddd8e01c | 73 | Suggests: php-pear-Net_LDAP2 |
83f90f35 ER |
74 | Suggests: php-pear-Net_Sieve |
75 | Suggests: php-pear-Net_Socket | |
76 | Suggests: php-xml | |
7e68a9e0 | 77 | Conflicts: logrotate < 3.7-4 |
600b6f8b PG |
78 | BuildArch: noarch |
79 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
80 | ||
81 | %define _webapps /etc/webapps | |
5737afb2 | 82 | %define _webapp roundcube |
600b6f8b PG |
83 | %define _sysconfdir %{_webapps}/%{_webapp} |
84 | %define _appdir %{_datadir}/%{_webapp} | |
85 | %define _appdatadir /var/lib/roundcube | |
8f3a4fab | 86 | %define _applogdir /var/log/roundcube |
e324f8fc | 87 | %define _archivelogdir /var/log/archive/roundcube |
600b6f8b | 88 | |
6a5cb541 ER |
89 | %define find_lang sh %{SOURCE5} %{buildroot} |
90 | ||
e2c7ca4f ER |
91 | # bad depsolver |
92 | %define _noautopear pear | |
93 | ||
94 | # exclude optional php dependencies | |
83f90f35 | 95 | %define _noautophp php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml |
e2c7ca4f ER |
96 | |
97 | # put it together for rpmbuild | |
98 | %define _noautoreq %{?_noautophp} %{?_noautopear} | |
99 | ||
600b6f8b PG |
100 | %description |
101 | RoundCube Webmail is a browser-based multilingual IMAP client with an | |
102 | application-like user interface. It provides full functionality you | |
103 | expect from an e-mail client, including MIME support, address book, | |
104 | folder manipulation and message filters. RoundCube Webmail is written | |
105 | in PHP and requires the MySQL database. The user interface is fully | |
106 | skinnable using XHTML and CSS 2. | |
107 | ||
d9bffeff JR |
108 | %description -l pl.UTF-8 |
109 | RoundCube Webmail to oparty na przeglądarce wielojęzyczny klient PHP z | |
110 | interfejsem użytkownika podobnym do aplikacji. Udostępnia pełną | |
111 | funkcjonalność jakiej można oczekiwać od klienta pocztowego, w tym | |
112 | obsługę MIME, książkę adresową, operacje na folderach i filtry | |
113 | wiadomości. RoundCube Webmail jest napisany w PHP i wymaga bazy danych | |
114 | MySQL. Interfejs użytkownika można w pełni obudować skórką przy użyciu | |
5d23c484 JB |
115 | XHTML-a i CSS 2. |
116 | ||
a10cd471 | 117 | %package setup |
00ff8410 | 118 | Summary: Installer script for RoundCube Webmail |
a210006f | 119 | Summary(pl.UTF-8): Skrypt instalacyjny RoundCube Webmaila |
00ff8410 | 120 | Group: Applications/WWW |
8b170957 | 121 | Requires: %{name} = %{version}-%{release} |
00ff8410 | 122 | |
a10cd471 | 123 | %description setup |
a210006f JB |
124 | This package provides installer script for RoundCube Webmail. |
125 | ||
126 | %description setup -l pl.UTF-8 | |
127 | Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila. | |
00ff8410 | 128 | |
3727377d ER |
129 | %package skin-default |
130 | Summary: Default skin for RoundCube Webmail | |
205b27a0 | 131 | Summary(pl.UTF-8): Domyślna skórka dla RoundCube Webmaila |
3727377d | 132 | Group: Applications/WWW |
220183ec | 133 | Requires: %{name} = %{version}-%{release} |
3727377d ER |
134 | Provides: %{name}-skin |
135 | ||
136 | %description skin-default | |
137 | Default skin for RoundCube Webmail. | |
138 | ||
205b27a0 JB |
139 | %description skin-default -l pl.UTF-8 |
140 | Domyślna skórka dla RoundCube Webmaila. | |
141 | ||
600b6f8b | 142 | %prep |
6511b436 | 143 | %setup -q %{?with_postfixadmin:-a 4} |
600b6f8b | 144 | %patch0 -p1 |
5d53966e | 145 | %if %{with spamfilter} |
6511b436 | 146 | %patch1 -p1 |
5d53966e | 147 | %endif |
1e701d3b | 148 | %if %{with postfixadmin} |
2c65974f | 149 | #patch2 -p1 |
1e701d3b | 150 | %endif |
220183ec | 151 | %patch3 -p1 |
51610214 | 152 | %if %{with password_anon_ldap_bind} |
7859ddcb | 153 | %patch4 -p1 |
154 | %endif | |
e0fe6c29 | 155 | %patch5 -p1 |
e1206cba | 156 | |
157 | # Disabled. Because of this patch roundcube does not show folders other than INBOX. | |
158 | #%%patch6 -p1 | |
600b6f8b | 159 | |
5737afb2 ER |
160 | find -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 | |
167 | for a in bin/*.sh; do | |
168 | mv $a ${a%.sh} | |
169 | done | |
a87cdb0e | 170 | |
a517b18b ER |
171 | # unpacked js sources |
172 | find -name '*.src' | xargs rm -v | |
173 | ||
e0fe6c29 ER |
174 | # rm utf8.class and deps, we use iconv extension |
175 | rm program/lib/utf8.class.php | |
176 | rm -r program/lib/encoding | |
177 | ||
83f90f35 ER |
178 | # php-pear-PEAR-core 1.9.0 (used indirectly) |
179 | rm program/lib/PEAR.php | |
180 | rm program/lib/PEAR5.php | |
181 | ||
182 | # php-pear-Net_Socket 1.0.9 (used by password, managesieve plugins) | |
183 | rm program/lib/Net/Socket.php | |
184 | ||
185 | # php-pear-Net_SMTP 1.4.2 (nothing seem to use it) | |
186 | rm program/lib/Net/SMTP.php | |
187 | ||
188 | # php-pear-Auth_SASL 1.0.4 (used by managesieve) | |
189 | rm program/lib/Auth/SASL.php | |
190 | rm -r program/lib/Auth/SASL | |
191 | ||
192 | # php-pear-Mail_Mime 1.8.0 (nothing seems to use it) | |
193 | rm program/lib/Mail/mime.php | |
194 | rm program/lib/Mail/mimePart.php | |
195 | ||
196 | # php-pear-Net_Sieve 1.3.0 | |
197 | rm plugins/managesieve/lib/Net/Sieve.php | |
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 | ||
6a5cb541 ER |
208 | # pear package junk |
209 | rm -v plugins/*/package.xml | |
210 | ||
b9aeba97 | 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} | |
fb493b0a | 214 | mv rcpfa-%{rcpfa_ver} rcpfa |
2c65974f PG |
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 | |
b9aeba97 | 234 | %endif |
6f843021 | 235 | |
600b6f8b PG |
236 | %install |
237 | rm -rf $RPM_BUILD_ROOT | |
e324f8fc | 238 | install -d $RPM_BUILD_ROOT{%{_appdatadir},%{_applogdir},%{_archivelogdir},%{_sysconfdir}} \ |
98cf2bae | 239 | $RPM_BUILD_ROOT{%{_appdir}/{bin,config,installer,program,skins},/etc/logrotate.d} |
600b6f8b PG |
240 | |
241 | # Main application part: | |
59b0d169 | 242 | cp -a program/* $RPM_BUILD_ROOT%{_appdir}/program |
e7167a32 | 243 | cp -a bin/* $RPM_BUILD_ROOT%{_appdir}/bin |
59b0d169 | 244 | cp -a index.php $RPM_BUILD_ROOT%{_appdir} |
600b6f8b | 245 | |
3727377d | 246 | # Skins installation |
59b0d169 | 247 | cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins |
600b6f8b | 248 | |
98cf2bae SP |
249 | # Installer part |
250 | cp -a installer/* $RPM_BUILD_ROOT%{_appdir}/installer | |
a0651488 ER |
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} | |
98cf2bae | 254 | |
2a88dca9 | 255 | # Plugins |
256 | cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins | |
257 | ||
600b6f8b | 258 | ## Configuration: |
a0651488 ER |
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 | |
600b6f8b PG |
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 | ||
e2c7ca4f ER |
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} | |
32abe254 | 268 | |
6a5cb541 ER |
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 | ||
5d23c484 JB |
295 | %clean |
296 | rm -rf $RPM_BUILD_ROOT | |
297 | ||
a87cdb0e ER |
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 | |
4e2ae79b ER |
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 | |
a87cdb0e ER |
313 | fi |
314 | fi | |
315 | ||
5e4530ac ER |
316 | # Note this on version upgrade |
317 | %triggerpostun -- %{name} < %{version} | |
318 | %banner -e %{name} <<-EOF | |
319 | Run %{_appdir}/bin/update to update to version %{version}. | |
83f90f35 ER |
320 | (Be sure to have %{name}-setup installed when you run it) |
321 | ||
5e4530ac ER |
322 | See %{_docdir}/%{name}-%{version}/UPGRADING* for more information. |
323 | EOF | |
324 | ||
4fddc0f8 | 325 | %triggerin -- apache1 < 1.3.37-3, apache1-base |
600b6f8b PG |
326 | %webapp_register apache %{_webapp} |
327 | ||
4fddc0f8 | 328 | %triggerun -- apache1 < 1.3.37-3, apache1-base |
600b6f8b PG |
329 | %webapp_unregister apache %{_webapp} |
330 | ||
331 | %triggerin -- apache < 2.2.0, apache-base | |
332 | %webapp_register httpd %{_webapp} | |
333 | ||
334 | %triggerun -- apache < 2.2.0, apache-base | |
335 | %webapp_unregister httpd %{_webapp} | |
336 | ||
beb3779c PG |
337 | %triggerin -- lighttpd |
338 | %webapp_register lighttpd %{_webapp} | |
339 | ||
340 | %triggerun -- lighttpd | |
341 | %webapp_unregister lighttpd %{_webapp} | |
342 | ||
6a5cb541 | 343 | %files -f %{name}.lang |
600b6f8b | 344 | %defattr(644,root,root,755) |
a0651488 | 345 | %doc CHANGELOG INSTALL README UPGRADING |
600b6f8b | 346 | %dir %attr(750,root,http) %{_sysconfdir} |
32abe254 PG |
347 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf |
348 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf | |
beb3779c | 349 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf |
600b6f8b | 350 | %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.php |
496e37a6 | 351 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name} |
600b6f8b | 352 | %dir %{_appdir} |
7e88f091 | 353 | %{_appdir}/*.php |
6af22bc8 | 354 | %dir %{_appdir}/bin |
e7167a32 | 355 | %attr(755,root,root) %{_appdir}/bin/* |
600b6f8b PG |
356 | %dir %{_appdir}/config |
357 | %{_appdir}/config/*.php | |
358 | %dir %{_appdir}/program | |
59b0d169 ER |
359 | %{_appdir}/program/*.gif |
360 | %{_appdir}/program/include | |
361 | %{_appdir}/program/js | |
362 | %{_appdir}/program/lib | |
363 | %{_appdir}/program/steps | |
59b0d169 | 364 | %{_appdir}/program/localization/index.inc |
6a5cb541 ER |
365 | |
366 | %dir %{_appdir}/plugins | |
59b0d169 | 367 | |
290a707d | 368 | %dir %{_appdir}/skins |
8f3a4fab | 369 | %dir %attr(770,root,http) %{_applogdir} |
e324f8fc | 370 | %dir %attr(751,root,logs) %{_archivelogdir} |
600b6f8b | 371 | %dir %attr(770,root,http) %{_appdatadir} |
6511b436 ER |
372 | |
373 | # TODO: %ghost logfile(s) | |
3727377d | 374 | |
a10cd471 | 375 | %files setup |
00ff8410 SP |
376 | %defattr(644,root,root,755) |
377 | %dir %{_appdir}/installer | |
378 | %{_appdir}/installer/*.php | |
379 | %{_appdir}/installer/client.js | |
380 | %{_appdir}/installer/styles.css | |
381 | %{_appdir}/installer/welcome.html | |
382 | %{_appdir}/installer/images | |
a0651488 ER |
383 | %{_appdir}/config/*.php.dist |
384 | %{_appdir}/SQL | |
00ff8410 | 385 | |
3727377d ER |
386 | %files skin-default |
387 | %defattr(644,root,root,755) | |
388 | %{_appdir}/skins/default |