bumps version to 2013.10.4
[tine20] / scripts / packaging / fedora / SPECS / tine20.spec
1 # TODO: strip out OpenLayers and require openlayers
2 # TODO: add postxxx sections calling the setup.php as command line tool
3 # FIXME: change selinux context to httpd_log_t for /var/log/tine20/tine20.log
4 # FIXME: SELinux is preventing /usr/sbin/httpd from create access on the None zend_cache--a.
5
6 # This package contains some bundled libraries, here is what has to be done with those:
7 # Ajam/         - not found in Fedora
8 # ExtJS/        - not found in Fedora
9 # GeoExt/       - not found in Fedora
10 # Hash/         - not found in Fedora
11 # HTMLPurifier/ - found php-channel-htmlpurifier, but that one doesn't seem to
12 #                 be enough requirable, will rest with the one delivered with
13 #                 Tine 2.0
14 # idnaconvert/  - Fedora has php-IDNA_Convert-0.6.3-4.fc15.noarch
15 #                 Tine 2.0 has 0.8.0. Either the Fedora package should be
16 #                 updated, or we stay at the Tine 2.0 version
17 # jsb2tk/       - not found in Fedora
18 # OpenDocument/ - not found in Fedora
19 # OpenLayers/   - found openlayers-2.9.1-4.fc15.noarch, will be stripped out
20 # PHPExcel/     - not found in Fedora
21 # qCal/         - not found in Fedora
22 # Sabre/        - not found in Fedora
23 # StreamFilter/ - not found in Fedora
24 # vcardphp/     - not found in Fedora
25 # Wbxml/        - not found in Fedora
26 # Zend/         - there is php-ZendFramework, strip it out
27
28 %global vyear 2013
29 %global vmonth 10
30 %global vmin 4
31 # comment out release suffix when not an unstable release
32 # %global rsuffix rc2
33
34 Name:           tine20
35 Summary:        Open Source Groupware and CRM
36 Version:        %{vyear}.%{vmonth}.%{vmin}
37
38 %if %{?rsuffix}
39 Release:        0.%{rsuffix}.1
40 %global         source_suffix ~%{rsuffix}
41 %else
42 Release:        1
43 %endif
44
45 License:        AGPLv3, GPLv3, BSD, LGPLv2.1+, LGPLv2.1
46 URL:            http://www.tine20.org/
47 Source0:        http://www.tine20.org/downloads/%{version}%{?source_suffix}/%{name}-allinone_%{version}%{?source_suffix}.tar.bz2
48 Source1:        %{name}-httpd.conf
49 Source2:        %{name}-php.ini
50 Source3:        %{name}-config.inc.php
51 Source4:        %{name}-logrotate.conf
52 Source5:        %{name}-README.fedora
53 Source6:        %{name}-cron
54 Source7:        http://www.tine20.org/downloads/%{version}%{?source_suffix}/%{name}-humanresources_%{version}%{?source_suffix}.tar.bz2
55
56 Requires:       %{name}-webstack = %{version}
57 Requires:       mysql-server
58
59 BuildArch:      noarch
60
61 %description
62 Tine 2.0 is an open source project which combines groupware and CRM in one
63 consistent interface. Tine 2.0 is web-based and optimises collaboration and
64 organisation of groups in a lasting manner. Tine 2.0 unites all the
65 advantages of open source software with an extraordinarily high level of
66 usability and an equally high standard of professional software development.
67 This is what makes the difference between Tine 2.0 and many other existing
68 groupware solutions.
69
70 Tine 2.0 includes address book, calendar, email, tasks, time tracking and
71 CRM. Intelligent functions and links make collaboration in Tine 2.0 a true
72 pleasure and include:
73
74  * Synchronising mobile telephones
75  * VoiP integration
76  * Flexible assigning of authorisation rights
77  * Dynamic lists
78  * Search functions
79  * History
80  * PDF export
81
82 %package webstack
83 Summary:        Tine 2.0 webserver integration package
84 Requires:       httpd
85 Requires:       php >= 5.3.0
86 Requires:       php-gd php-mysqli php-mcrypt php-pecl-apc
87 %if 0%{?fedora} >= 19
88 Requires:       php-opcache
89 %else
90 Requires:       php-pecl-apc
91 %endif
92 #Requires:       php-ZendFramework php-ZendFramework-Ldap
93 Requires:       %{name}-tinebase %{name}-activesync %{name}-calendar %{name}-crm %{name}-felamimail %{name}-filemanager %{name}-projects %{name}-sales %{name}-tasks %{name}-timetracker
94
95 %description webstack
96 This package integrates Tine 2.0 with the webserver, by installing all needed
97 dependencies to make Tine 2.0 available via HTTP(S).
98
99 %package tinebase
100 Summary:        Tine 2.0 base package
101 Requires:       %{name}-libraries = %{version}
102
103 %description tinebase
104 This package contains the base which at least is necessary to run Tine 2.0.
105
106 %package libraries
107 Summary:        Additional libraries required by Tine 2.0
108
109 %description libraries
110 Libraries bundled with upstream Tine 2.0 source package, but developed by other developers.
111
112 %package activesync
113 Summary:        Tine 2.0 activesync module
114 Requires:       %{name}-tinebase = %{version}
115
116 %description activesync
117 This package contains the activesync module for Tine 2.0.
118
119 %package calendar
120 Summary:        Tine 2.0 calendar module
121 Requires:       %{name}-tinebase = %{version}
122
123 %description calendar
124 This package contains the calendar module for Tine 2.0.
125
126
127 %package crm
128 Summary:        Tine 2.0 CRM module
129 Requires:       %{name}-tinebase = %{version}
130 Requires:       %{name}-sales = %{version}
131 Requires:       %{name}-tasks = %{version}
132
133 %description crm
134 This package contains the CRM module for Tine 2.0.
135
136
137 %package felamimail
138 Summary:        Tine 2.0 mail client module
139 Requires:       %{name}-tinebase = %{version}
140
141 %description felamimail
142 This package contains the mail client module for Tine 2.0 called "Felamimail".
143
144
145 %package filemanager
146 Summary:        Tine 2.0 file manager module
147 Requires:       %{name}-tinebase = %{version}
148
149 %description filemanager
150 This package contains the file manager module for Tine 2.0.
151
152
153 %package projects
154 Summary:        Tine 2.0 project module
155 Requires:       %{name}-tinebase = %{version}
156
157 %description projects
158 This package contains the projects module for Tine 2.0.
159
160 %package sales
161 Summary:        Tine 2.0 sales module
162 Requires:       %{name}-tinebase = %{version}
163
164 %description sales
165 This package contains the sales module for Tine 2.0.
166
167
168 %package tasks
169 Summary:        Tine 2.0 tasks module
170 Requires:       %{name}-tinebase = %{version}
171
172 %description tasks
173 This package contains the tasks module for Tine 2.0.
174
175
176 %package timetracker
177 Summary:        Tine 2.0 time tracker module
178 Requires:       %{name}-tinebase = %{version}
179
180 %description timetracker
181 This package contains the time tracker module for Tine 2.0.
182
183
184 %package worker
185 Summary:        Tine 2.0 asynchronous worker
186 Requires:       %{name}-worker = %{version}
187
188 %description worker
189 This package contains the files neede to process asynchronous jobs for Tine 2.0.
190
191
192 %prep
193 %setup -q -c -n %{name}-%{version}
194 %{__cp} -a %{SOURCE5} README.fedora
195
196
197 %build
198 # nothing to do here so far..
199
200
201 %install
202 %{__rm} -rf $RPM_BUILD_ROOT
203
204 # installation of code to /usr/share/tine20
205 %{__install} -d $RPM_BUILD_ROOT%{_datadir}/%{name}/
206 %{__cp} -ad * $RPM_BUILD_ROOT%{_datadir}/%{name}/
207
208 # session and other stuff
209 %{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}/{tmp,sessions,files,cache}
210
211 # httpd configuration
212 # tine20-httpd.conf which will be installed as /etc/httpd/conf.d/tine20.conf
213 %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/
214 %{__install} -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/%{name}.conf
215
216 # php.ini needed if FastCGI is used
217 %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d/
218 %{__install} -pm 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/%{name}.ini
219
220 # Tine 2.0 configuration
221 %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/
222 %{__install} -pm 660 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/config.inc.php
223
224 # logging
225 %{__install} -d $RPM_BUILD_ROOT%{_localstatedir}/log/%{name}
226 %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/
227 %{__install} -pm 644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}
228
229 # cron
230 %{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/
231 %{__install} -pm 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
232
233 # cleanup
234 %{__rm} -f $RPM_BUILD_ROOT%{_datadir}/%{name}/{[R]*,config.inc.php.dist}
235 %{__rm} -f $RPM_BUILD_ROOT%{_datadir}/%{name}/docs/htaccess
236
237
238 %post
239 if [ "$1" -eq "1" ]; then
240     # database password
241     export NEWPASS=$( dd if=/dev/urandom bs=20 count=1 2>/dev/null \
242         | sha1sum | awk '{print $1}' )
243     sed -i "s/DATABASE PASSWORD/$NEWPASS/" %{_sysconfdir}/%{name}/config.inc.php
244     
245     # setup password
246     export NEWPASS=$( dd if=/dev/urandom bs=20 count=1 2>/dev/null \
247         | sha1sum | awk '{print $1}' )
248     sed -i "s/SETUP PASSWORD/$NEWPASS/" %{_sysconfdir}/%{name}/config.inc.php
249 fi
250
251 %files
252
253
254 %files tinebase
255 %doc LICENSE PRIVACY README RELEASENOTES config.inc.php.dist README.fedora docs/htaccess
256 %dir %{_datadir}/%{name}/
257 %{_datadir}/%{name}/Addressbook/
258 %{_datadir}/%{name}/Admin/
259 %{_datadir}/%{name}/Setup/
260 %{_datadir}/%{name}/Tinebase/
261 %{_datadir}/%{name}/Zend/
262 %{_datadir}/%{name}/CREDITS
263 %{_datadir}/%{name}/LICENSE
264 %{_datadir}/%{name}/PRIVACY
265 %{_datadir}/%{name}/bootstrap.php
266 %{_datadir}/%{name}/images/
267 %{_datadir}/%{name}/fonts/
268 %{_datadir}/%{name}/index.php
269 %{_datadir}/%{name}/langHelper.php
270 %{_datadir}/%{name}/setup.php
271 %{_datadir}/%{name}/status.php
272 %{_datadir}/%{name}/%{name}.php
273 %{_datadir}/%{name}/themes
274
275 %dir %{_sysconfdir}/%{name}/
276 %config(noreplace) %attr(0660,root,apache) %{_sysconfdir}/%{name}/config.inc.php
277 %config(noreplace) %{_sysconfdir}/php.d/tine20.ini
278 %config            %{_sysconfdir}/cron.d/tine20
279
280 %dir %{_sharedstatedir}/%{name}/
281 %dir %attr(0750,apache,apache) %{_sharedstatedir}/%{name}/tmp
282 %dir %attr(0750,apache,apache) %{_sharedstatedir}/%{name}/sessions
283 %dir %attr(0750,apache,apache) %{_sharedstatedir}/%{name}/files
284 %dir %attr(0750,apache,apache) %{_sharedstatedir}/%{name}/cache
285
286 %dir %attr(0750,apache,apache) %{_localstatedir}/log/%{name}/
287 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
288
289
290 %files libraries
291 %{_datadir}/%{name}/library/
292 %{_datadir}/%{name}/vendor/
293
294
295 %files activesync
296 %{_datadir}/%{name}/ActiveSync/
297
298
299 %files calendar
300 %{_datadir}/%{name}/Calendar/
301
302
303 %files crm
304 %{_datadir}/%{name}/Crm/
305
306
307 %files felamimail
308 %{_datadir}/%{name}/Felamimail/
309
310
311 %files filemanager
312 %{_datadir}/%{name}/Filemanager/
313
314
315 %files projects
316 %{_datadir}/%{name}/Projects/
317
318
319 %files sales
320 %{_datadir}/%{name}/Sales/
321
322
323 %files tasks
324 %{_datadir}/%{name}/Tasks/
325
326
327 %files timetracker
328 %{_datadir}/%{name}/Timetracker/
329
330
331 %files webstack
332 %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf
333
334
335 %files worker
336 %{_datadir}/%{name}/worker.php
337
338
339 %changelog
340 * Thu Jan 16 2014 Philipp Schüle <p.schuele@metaways.de> - 2013.10.4-0
341 - New upstream release Collin Service Release 3
342
343 * Thu Dec 19 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.10.3-0
344 - New upstream release Collin Service Release 2
345
346 * Thu Nov 21 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.10.2-0
347 - New upstream release Collin Service Release 1
348
349 * Thu Oct 24 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.10.1-0
350 - New upstream release Collin
351
352 * Thu Oct 17 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.10.1-0.rc2.1
353 - New upstream release Collin Release Candidate 2
354
355 * Thu Sep 19 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.03.8-1
356 - New upstream release Kristina Service Release 7
357
358 * Thu Aug 15 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.03.7-1
359 - New upstream release Kristina Service Release 6
360
361 * Thu Jul 18 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.03.6-1
362 - New upstream release Kristina Service Release 5
363
364 * Thu May 23 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.03.4-1
365 - New upstream release Kristina Service Release 3
366
367 * Thu Apr 25 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.03.3-1
368 - New upstream release Kristina Service Release 2
369
370 * Thu Feb 07 2013 Philipp Schüle <p.schuele@metaways.de> - 2013.03.1~alpha1-1
371 - New upstream release Kristina Alpha 1
372
373 * Fri Jan 04 2013 Lars Kneschke <l.kneschke@metaways.de> - 2012.10.3-1
374 - New upstream release Joey SR 3 (2012.10.3)
375
376 * Wed Jan 02 2013 Lars Kneschke <l.kneschke@metaways.de> - 2012.10.2-1
377 - new upstream release 2012.10.2
378
379 * Mon Nov 05 2012 Dominic Hopf <dmaphy@fedoraproject.org> - 2012.10.1-1
380 - new upstream release 2012.10.1
381
382 * Thu Aug 02 2012 Dominic Hopf <dmaphy@fedoraproject.org> - 2012.03.5-2
383 - re-enable the Tine 2.0 delivered Zend Framework
384   
385 * Fri Jun 29 2012 Dominic Hopf <dmaphy@fedoraproject.org> - 2012.03.5-1
386 - Update to new upstream release 2012.03.05
387
388 * Tue Mar 13 2012 Dominic Hopf <dmaphy@fedoraproject.org> - 2012.03.1-1
389 - Update to new upstream release 2012.03.01
390
391 * Sat Feb 04 2012 Dominic Hopf <dmaphy@fedoraproject.org> - 2011.05.6-1
392 - Update to new service release 2011.05.06
393 - comment out the Filemanager subpackage, the module disappeared in 2011-05-06
394 - fix the sed-command for setting the setup password
395
396 * Tue Dec 27 2011 Dominic Hopf <dmaphy@fedoraproject.org> - 2011.05.5-1
397 - Update to new service release 2011.05.05
398 - link to php-ZendFramework shipped with Fedora
399 - don't remove files LICENSE and PRIVACY, they are reference from setup.php
400
401 * Sun Nov 13 2011 Dominic Hopf <dmaphy@fedoraproject.org> - 2011.05.4-1
402 - initial Fedora package of Tine 2.0