]> git.pld-linux.org Git - packages/eventum.git/blob - eventum.spec
- small cli error check
[packages/eventum.git] / eventum.spec
1 # TODO
2 # - discard bundled packages (from INSTALL):
3 #  - JpGraph 1.5.3 (last GPL version)
4 #  - dTree 2.0.5 (http://www.destroydrop.com/javascript/tree/)
5 #  - dynCalendar.js (http://www.phpguru.org/dyncalendar.html)
6 #  - overLIB 3.5.1 (http://www.bosrup.com/web/overlib/)
7 #  - A few other small javascript libraries
8 # - 64bit platforms beware? http://bugs.php.net/bug.php?id=30215 (it's actually Smarty related problem)
9 #
10 # Conditional build:
11 %bcond_with     qmail   # build the router-qmail subpackage
12 %bcond_with     order_patch     # with custom issue order patch
13
14 #define _snap   20060330
15 #define _rc             RC3
16 %define _rel    1.8
17
18 %include        /usr/lib/rpm/macros.php
19 Summary:        Eventum Issue / Bug tracking system
20 Summary(pl):    Eventum - system ¶ledzenia spraw/b³êdów
21 Name:           eventum
22 Version:        1.7.1
23 Release:        %{?_snap:0.%{_snap}.}%{?_rc:%{_rc}.}%{_rel}
24 License:        GPL
25 Group:          Applications/WWW
26 #Source0:       http://downloads.mysql.com/snapshots/eventum/%{name}-nightly-%{_snap}.tar.gz
27 Source0:        http://mysql.dataphone.se/Downloads/eventum/%{name}-%{version}.tar.gz
28 # Source0-md5:  e1845de39b4d9bd30ddec9c26031a7d5
29 Source1:        %{name}-apache.conf
30 Source2:        %{name}-mail-queue.cron
31 Source3:        %{name}-mail-download.cron
32 Source4:        %{name}-reminder.cron
33 Source5:        %{name}-monitor.cron
34 Source6:        %{name}-cvs.php
35 Source7:        %{name}-irc.php
36 Source8:        %{name}-irc.init
37 Source9:        %{name}-irc.sysconfig
38 Source10:       %{name}-config.php
39 Source11:       %{name}-router-qmail.sh
40 Source12:       %{name}-config-setup.php
41 Source13:       %{name}-upgrade.sh
42 Source14:       %{name}-router-postfix.sh
43 Patch0:         %{name}-lf.patch
44 Patch1:         %{name}-perms.patch
45 Patch2:         %{name}-cli-wr-separated.patch
46 Patch3:         %{name}-scm-parse-response.patch
47 Patch4:         %{name}-double-decode.patch
48 Patch5:         %{name}-route-mem.patch
49 Patch6:         %{name}-scm-pluscharisbad.patch
50 Patch7:         %{name}-scm-updates.patch
51 Patch8:         %{name}-close-signature.patch
52 Patch9:         %{name}-list-sorting.patch
53 Patch10:        %{name}-workflow-handlenewnote-note_id.patch
54 Patch11:        %{name}-order4b.patch
55 Patch12:        %{name}-cli-errorcheck.patch
56 Patch100:       %{name}-paths.patch
57 Patch101:       %{name}-cvs-config.patch
58 Patch102:       %{name}-irc-mem.patch
59 Patch103:       %{name}-irc-config.patch
60 Patch104:       %{name}-PEAR.patch
61 Patch105:       %{name}-httpclient-clientside.patch
62 Patch106:       %{name}-bot-reconnect.patch
63 Patch107:       %{name}-private-key.patch
64 URL:            http://dev.mysql.com/downloads/other/eventum/
65 BuildRequires:  rpm-php-pearprov >= 4.0.2-98
66 BuildRequires:  rpmbuild(macros) >= 1.268
67 BuildRequires:  sed >= 4.0
68 Requires(triggerpostun):        /usr/bin/php
69 Requires(triggerpostun):        sed >= 4.0
70 Requires:       %{name}-base = %{version}-%{release}
71 Requires:       Smarty >= 2.6.10-4
72 Requires:       apache(mod_dir)
73 Requires:       php >= 3:4.2.0
74 Requires:       php-gd
75 Requires:       php-imap
76 Requires:       php-mysql
77 Requires:       php-pcre
78 Requires:       php-pear-Benchmark
79 Requires:       php-pear-DB
80 Requires:       php-pear-Date
81 Requires:       php-pear-HTTP_Request
82 Requires:       php-pear-Mail
83 Requires:       php-pear-Mail_Mime
84 Requires:       php-pear-Math_Stats
85 Requires:       php-pear-Net_DIME
86 Requires:       php-pear-Net_SMTP
87 Requires:       php-pear-Net_Socket
88 Requires:       php-pear-Net_URL
89 Requires:       php-pear-Net_UserAgent_Detect
90 Requires:       php-pear-PEAR-core
91 Requires:       php-pear-Text_Diff
92 Requires:       php-pear-XML_RPC
93 Requires:       php-session
94 Requires:       webapps
95 BuildArch:      noarch
96 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
97
98 %define         _noautoreq      'pear(/etc/webapps/.*)' 'pear(jpgraph_dir.php)' 'pear(.*Smarty.class.php)'
99
100 %define         _libdir         %{_prefix}/lib/%{name}
101 %define         _appdir         %{_datadir}/%{name}
102 %define         _smartyplugindir        %{_appdir}/include/smarty
103 %define         _smartydir      /usr/share/php/Smarty
104 %define         _webapps        /etc/webapps
105 %define         _webapp         %{name}
106 %define         _webappdir      %{_webapps}/%{_webapp}
107 %define         _sysconfdir     /etc/%{name}
108
109 %description
110 Eventum is a user-friendly and flexible issue tracking system that can
111 be used by a support department to track incoming technical support
112 requests, or by a software development team to quickly organize tasks
113 and bugs. Eventum is used by the MySQL AB Technical Support team, and
114 has allowed us to dramatically improve our response times.
115
116 %description -l pl
117 Eventum to przyjazny dla u¿ytkownika system ¶ledzenia spraw, który
118 mo¿e byæ u¿ywany przez dzia³ obs³ugi do ¶ledzenia przychodz±cych ¿±dañ
119 obs³ugi technicznej albo przez zespó³ tworz±cy oprogramowanie do
120 szybkiej organizacji zadañ i b³êdów. Eventum jest u¿ywany przez zespó³
121 Technical Support MySQL AB i umo¿liwi³ im znacz±co poprawiæ czasy
122 reakcji.
123
124 %package base
125 Summary:        Eventum base package
126 Summary(pl):    Podstawowy pakiet Eventum
127 Group:          Applications/WWW
128 Requires(postun):       /usr/sbin/groupdel
129 Requires(postun):       /usr/sbin/userdel
130 Requires(pre):  /bin/id
131 Requires(pre):  /usr/bin/getgid
132 Requires(pre):  /usr/sbin/groupadd
133 Requires(pre):  /usr/sbin/useradd
134 Provides:       group(eventum)
135 Provides:       user(eventum)
136
137 %description base
138 This package contains base directory structure for Eventum.
139
140 %description base -l pl
141 Ten pakiet zawiera podstawow± strukturê katalogów dla Eventum.
142
143 %package setup
144 Summary:        Eventum setup package
145 Summary(pl):    Pakiet do wstêpnej konfiguracji Eventum
146 Group:          Applications/WWW
147 Requires:       %{name} = %{version}-%{release}
148
149 %description setup
150 Install this package to configure initial Eventum installation. You
151 should uninstall this package when you're done, as it considered
152 insecure to keep the setup files in place.
153
154 %description setup -l pl
155 Ten pakiet nale¿y zainstalowaæ w celu wstêpnej konfiguracji Eventum po
156 pierwszej instalacji. Potem nale¿y go odinstalowaæ, jako ¿e
157 pozostawienie plików instalacyjnych mog³oby byæ niebezpieczne.
158
159 %package mail-queue
160 Summary:        Eventum mail queue process
161 Summary(pl):    Przetwarzanie kolejki poczty Eventum
162 Group:          Applications/WWW
163 Requires:       %{name} = %{version}-%{release}
164 Requires:       crondaemon
165
166 %description mail-queue
167 Beginning with the first release of Eventum, emails are not directly
168 sent out from the various scripts, but rather added to a mail queue
169 table that is processed by a cron job. If an email cannot be sent, it
170 will be marked as such in the mail queue log, and the cron job script
171 will re-try to send it again the next time it runs.
172
173 This package contains the cron job.
174
175 %description mail-queue -l pl
176 Od pierwszego wydania Eventum poczta nie jest wysy³ana bezpo¶rednio z
177 ró¿nych skryptów, lecz dodawana do kolejki przetwarzanej z crona.
178 Je¶li poczta nie mo¿e byæ wys³ana, bêdzie odpowiednio oznaczona w logu
179 kolejki poczty, a skrypt z crona bêdzie próbowa³ wys³aæ j± ponownie
180 nastêpnym razem.
181
182 Ten pakiet zawiera zadanie dla crona.
183
184 %package mail-download
185 Summary:        Eventum email download
186 Summary(pl):    ¦ci±ganie poczty Eventum
187 Group:          Applications/WWW
188 Requires:       %{name} = %{version}-%{release}
189 Requires:       crondaemon
190
191 %description mail-download
192 In order for Eventum's email integration feature to work, you need to
193 setup a cron job to run the script every so often.
194
195 This package contains the cron job.
196
197 %description mail-download -l pl
198 Aby integracja poczty elektronicznej w Eventum dzia³a³a, trzeba
199 ustawiæ zadanie crona, aby uruchamia³ odpowiedni skrypt wystarczaj±co
200 czêsto.
201
202 Ten pakiet zawiera zadanie dla crona.
203
204 %package reminder
205 Summary:        Eventum Reminder System
206 Summary(pl):    System przypominania dla Eventum
207 Group:          Applications/WWW
208 Requires:       %{name} = %{version}-%{release}
209 Requires:       crondaemon
210
211 %description reminder
212 The reminder system was designed with the objective as serving as a
213 safe net for issues that need attention. Depending on what
214 configuration you create, you may have several reminders (or alerts)
215 be sent out whenever an issue needs attention, for whatever parameter
216 you may deem necessary.
217
218 This package contains the cron job.
219
220 %description reminder -l pl
221 System przypominania zosta³ zaprojektowany tak, aby s³u¿y³ jako
222 bezpieczna sieæ dla spraw wymagaj±cych uwagi. W zale¿no¶ci od
223 konfiguracji mo¿na ustawiæ ró¿ne przypominajki (lub alarmy) wysy³ane
224 przy ka¿dej sprawie wymagaj±cej uwagi lub przy parametrze, który mo¿na
225 uwa¿aæ za potrzebny.
226
227 Ten pakiet zawiera zadanie dla crona.
228
229 %package monitor
230 Summary:        Eventum Heartbeat Monitor
231 Summary(pl):    Monitor ¿ycia dla Eventum
232 Group:          Applications/WWW
233 Requires:       %{name} = %{version}-%{release}
234 Requires:       crondaemon
235 Requires:       php-posix
236
237 %description monitor
238 The heartbeat monitor is a feature designed for the administrator that
239 wants to be alerted whenever a common problem in Eventum is detected,
240 like the database server not being available anymore, or maybe when
241 the recommended permissions for certain configuration files are
242 changed.
243
244 Please note that before running the heartbeat monitor, you may need to
245 customize some of the checks to be appropriate for your own system,
246 particularly the permission and file checks on
247 Monitor::checkConfiguration().
248
249 This package contains the cron job.
250
251 %description monitor -l pl
252 Monitor ¿ycia to funkcjonalno¶æ zaprojektowana dla administratora
253 chc±cego byæ alarmowanym przy ka¿dym wykryciu popularnego problemu z
254 Eventum, jak nie dzia³anie serwera bazy danych albo zmiana uprawnieñ
255 do plików konfiguracyjnych.
256
257 Nale¿y zauwa¿yæ, ¿e przed uruchomieniem tego monitora mo¿e byæ
258 konieczne dostosowanie niektórych testów do systemu, w szczególno¶ci
259 testów uprawnieñ i plików w Monitor::checkConfiguration().
260
261 Ten pakiet zawiera zadanie dla crona.
262
263 %package route-drafts
264 Summary:        Eventum Draft Routing
265 Summary(pl):    Przekazywanie szkiców dla Eventum
266 Group:          Applications/WWW
267 Requires:       %{name} = %{version}-%{release}
268 Requires:       eventum(router)
269
270 %description route-drafts
271 The draft routing feature is used to automatically associate a thread
272 of drafts into an Eventum issue. By setting up qmail (or even Postfix)
273 to deliver emails sent to a specific address (usually
274 draft-<number>@<domain>) to the above script, users are able to send
275 drafts written in their mail client to be stored in Eventum. These
276 drafts will NOT broadcasted to the notification list.
277
278 %description route-drafts -l pl
279 Przekazywanie szkiców s³u¿y do automatycznego wi±zania w±tku szkiców z
280 problemem w Eventum. Ustawiaj±c qmaila (czy nawet Postfiksa), aby
281 dostarcza³ pocztê wys³an± na podany adres (zwykle
282 draft-<liczba>@<domena>) do tego skryptu umo¿liwia siê u¿ytkownikom
283 wysy³anie szkiców napisanych w ich kliencie pocztowym do zapisania w
284 Eventum. Szkice te NIE bêd± wysy³ane na listê powiadomieñ.
285
286 %package route-emails
287 Summary:        Eventum Email Routing
288 Summary(pl):    Przekazywanie poczty dla Eventum
289 Group:          Applications/WWW
290 Requires:       %{name} = %{version}-%{release}
291 Requires:       eventum(router)
292
293 %description route-emails
294 The email routing feature is used to automatically associate a thread
295 of emails into an Eventum issue. By setting up qmail (or even postfix)
296 to deliver emails sent to a specific address (usually
297 issue-<number>@<domain>) to the above script, users are able to use
298 their email clients to reply to emails coming from Eventum, and those
299 replies will be automatically associated with the issue and
300 broadcasted to the entire notification list.
301
302 %description route-emails -l pl
303 Funkcjonalno¶æ przekazywania poczty s³u¿y do automatycznego wi±zania
304 w±tku listów ze spraw± w Eventum. Po ustawieniu qmaila (czy nawet
305 postfiksa), aby dostarcza³ listy wysy³ane na pewien adres (zwykle
306 issue-<numer>@<domena>) na powy¿szy skrypt, u¿ytkownicy bêd± mogli
307 u¿ywaæ klientów pocztowych do odpowiadania na listy przychodz±ce z
308 Eventum, a odpowiedzi te bêd± automatycznie wi±zane ze spraw± i
309 rozprowadzane do ca³ej listy og³oszeniowej.
310
311 %package route-notes
312 Summary:        Eventum Note Routing
313 Summary(pl):    Przekazywanie notatek dla Eventum
314 Group:          Applications/WWW
315 Requires:       %{name} = %{version}-%{release}
316 Requires:       eventum(router)
317
318 %description route-notes
319 The note routing feature is used to automatically associate a thread
320 of notes into an Eventum issue. By setting up qmail (or even postfix)
321 to deliver emails sent to a specific address (usually
322 note-<number>@<domain>) to the above script, users are able to use
323 their email clients to reply to internal notes coming from Eventum,
324 and those replies will be automatically associated with the issue and
325 broadcasted to the notification list staff members.
326
327 %description route-notes -l pl
328 Funkcjonalno¶æ przekazywania notatek s³u¿y do automatycznego wi±zania
329 w±tku notatek ze spraw± w Eventum. Po ustawieniu qmaila (czy nawet
330 postfiksa), aby dostarcza³ listy wysy³ane na pewien adres (zwykle
331 note-<numer>@<domena>) na powy¿szy skrypt, u¿ytkownicy bêd± mogli
332 u¿ywaæ klientów pocztowych do odpowiadania na wewnêtrzne notatki
333 pochodz±ce od Eventu, a odpowiedzi te bêd± automatycznie wi±zane ze
334 spraw± i rozprowadzane do cz³onków personelu listy og³oszeniowej.
335
336 %package router-qmail
337 Summary:        Eventum Mail Routing - qmail
338 Summary(pl):    Przekazywanie poczty Eventum - qmail
339 Group:          Applications/Mail
340 # loose dep is intentional. qmail subpackage isn't built on PLD
341 # builders and there really nothing changes.
342 Requires:       %{name} >= %{version}-%{release}
343 Requires:       qmail >= 1.03
344 Provides:       eventum(router)
345 Obsoletes:      eventum(router)
346
347 %description router-qmail
348 This package provides way of routing notes and emails back to Eventum
349 via qmail.
350
351 %description router-qmail -l pl
352 Ten pakiet udostêpnia metodê przekazywania notatek i listów do Eventum
353 przez qmaila.
354
355 %package router-postfix
356 Summary:        Eventum Mail Routing - Postfix
357 Summary(pl):    Przekazywanie poczty Eventum - Postfix
358 Group:          Applications/Mail
359 Requires:       %{name} = %{version}-%{release}
360 Requires:       postfix
361 Provides:       eventum(router)
362 Obsoletes:      eventum(router)
363
364 %description router-postfix
365 This package provides way of routing notes and emails back to Eventum
366 via Postfix.
367
368 The Postfix configuration instructions you can find from
369 <http://eventum.mysql.org/wiki/index.php/Setting_up_email_routing_with_postfix>.
370
371 %description router-postfix -l pl
372 Ten pakiet udostêpnia metodê przekazywania notatek i listów do Eventum
373 przez Postfiksa.
374
375 Opis konfiguracji Postfiksa mo¿na znale¼æ pod adresem
376 <http://eventum.mysql.org/wiki/index.php/Setting_up_email_routing_with_postfix>.
377
378 %package irc
379 Summary:        Eventum IRC Notification Bot
380 Summary(pl):    IRC-owy bot powiadamiaj±cy dla Eventum
381 Group:          Applications/WWW
382 Requires(triggerpostun):        sed >= 4.0
383 Requires:       %{name} = %{version}-%{release}
384 Requires:       php-pear-Net_SmartIRC
385 Requires:       php-sockets
386 Requires:       rc-scripts >= 0.4.0.18
387
388 %description irc
389 The IRC notification bot is a nice feature for remote teams that want
390 to handle issues and want to have a quick and easy way to get simple
391 notifications. Right now the bot notifies of the following actions:
392 - New Issues
393 - Blocked emails
394 - Issues that got their assignment list changed
395
396 NOTE: You will need to manually edit the bot.php script to set your
397 appropriate preferences, like IRC server and channel that the bot
398 should join.
399
400 %description irc -l pl
401 IRC-owy bot powiadamiaj±cy to mi³a funkcjonalno¶æ dla zdalnych
402 zespo³ów chc±cych obs³ugiwaæ sprawy i mieæ szybki i ³atwy sposób na
403 uzyskiwanie prostych powiadomieñ. Aktualnie bot powiadamia o
404 nastêpuj±cych zdarzeniach:
405 - nowych sprawach
406 - zablokowanych listach
407 - sprawach, dla których zmieni³a siê lista powi±zañ
408
409 UWAGA: w celu wprowadzenia w³asnych ustawieñ, takich jak serwer IRC i
410 kana³ u¿ywany przez bota, trzeba rêcznie zmodyfikowaæ skrypt bot.php .
411
412 %package cli
413 Summary:        Eventum command-line interface
414 Summary(pl):    Interfejs linii poleceñ dla Eventum
415 Group:          Applications/WWW
416 Requires:       %{name}-base = %{version}-%{release}
417 Requires:       php-cli
418 Requires:       php-common >= 3:4.1.0
419 Requires:       php-pear-XML_RPC
420
421 %description cli
422 The Eventum command-line interface allows you to access most of the
423 features of the web interface straight from your command shell.
424
425 %description cli -l pl
426 Interfejs linii poleceñ Eventum pozwala na dostêp do wiêkszo¶ci
427 funkcji interfejsu WWW prosto z linii poleceñ pow³oki.
428
429 %package scm
430 Summary:        Eventum SCM integration
431 Summary(pl):    Integracja SCM dla Eventum
432 Group:          Applications/WWW
433 Requires:       %{name}-base = %{version}-%{release}
434 Requires:       php-cli
435 Requires:       php-common >= 3:4.1.0
436 Requires:       php-pcre
437
438 %description scm
439 This feature allows your software development teams to integrate your
440 Source Control Management system with your Issue Tracking System.
441
442 The integration is implemented in such a way that it will be forward
443 compatible with pretty much any SCM system, such as CVS.
444
445 For installation see
446 </eventum/help.php?topic=scm_integration_installation>.
447
448 %description scm -l pl
449 Ten pakiet pozwala zespo³om programistów na integracjê systemu
450 zarz±dzania ¼ród³ami (SCM - Source Control Management) z systemem
451 ¶ledzenia spraw.
452
453 Integracja jest zaimplementowana tak, aby byæ kompatybilna w przód z
454 prawie ka¿dym systemem SCM, jak np. CVS.
455
456 Szczegó³y na temat instalacji mo¿na przeczytaæ pod
457 </eventum/help.php?topic=scm_integration_installation>.
458
459 %prep
460 %setup -q %{?_snap:-n %{name}-%{_snap}}
461 # undos the source
462 find . -type f -print0 | xargs -0 sed -i -e 's,\r$,,'
463
464 rm -f setup.conf.php # not to be installed by *.php glob
465 rm -rf misc/upgrade/*v1.[123]* # too old to support in PLD Linux
466 rm -f misc/upgrade/flush_compiled_templates.php
467 rm -rf misc/upgrade/*/upgrade_config.php # not needed in PLD Linux
468
469 # sample, not used in eventum
470 rm -f rpc/xmlrpc_client.php
471
472 # bug fixes.
473 %patch0 -p1
474 %patch1 -p1
475 %patch2 -p1
476 %patch3 -p1
477 %patch4 -p1
478 %patch5 -p1
479 %patch6 -p1
480 %patch7 -p1
481 %patch8 -p1
482 %patch9 -p1
483 %patch10 -p1
484 %{?with_order_patch:%patch11 -p1}
485 %patch12 -p1
486
487 # packaging
488 %patch100 -p1
489 %patch101 -p1
490 %patch102 -p1
491 %patch103 -p1
492 %patch104 -p1
493 %patch105 -p1
494 %patch106 -p1
495 %patch107 -p1
496
497 sed -e '1s,#!.*/bin/php -q,#!%{_bindir}/php,' misc/cli/eventum > %{name}-cli
498 sed -e '1i#!%{_bindir}/php' misc/scm/process_cvs_commits.php > %{name}-scm
499 sed -e '1i#!%{_bindir}/php' misc/irc/bot.php > %{name}-bot
500 mv misc/cli/eventumrc_example eventumrc
501 sed -i -e '1i#!%{_bindir}/php' misc/*.php
502 chmod +x misc/*.php
503 mv include/private_key.php private_key.php.in
504
505 # replace in remaining scripts config.inc.php to system one
506 grep -rl 'include_once(".*config.inc.php")' . | xargs sed -i -e '
507         s,include_once(".*config.inc.php"),include_once("%{_webappdir}/core.php"),
508 '
509
510 grep -rl 'APP_INC_PATH..*"private_key.php"' . | xargs sed -i -e '
511         s,include_once(APP_INC_PATH.*"private_key.php"),include_once("%{_webappdir}/private_key.php"),
512 '
513
514 # remove backups from patching as we use globs to package files to buildroot
515 find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v
516
517 %install
518 rm -rf $RPM_BUILD_ROOT
519 install -d \
520         $RPM_BUILD_ROOT{%{_webappdir},%{_sysconfdir},%{_bindir},%{_sbindir},%{_libdir}} \
521         $RPM_BUILD_ROOT/etc/{rc.d/init.d,cron.d,sysconfig} \
522         $RPM_BUILD_ROOT/var/{run,log,cache,lib}/%{name} \
523         $RPM_BUILD_ROOT/var/lib/%{name}/routed_{emails,drafts,notes} \
524         $RPM_BUILD_ROOT%{_appdir}/{include,htdocs/misc,upgrade} \
525
526 cp -a *.php css customer images js manage reports rpc setup $RPM_BUILD_ROOT%{_appdir}/htdocs
527 cp -a misc/*.html $RPM_BUILD_ROOT%{_appdir}/htdocs/misc
528 cp -a misc/*.php $RPM_BUILD_ROOT%{_appdir}
529 cp -a templates $RPM_BUILD_ROOT%{_appdir}
530 cp -a include/{customer,custom_field,jpgraph,workflow} $RPM_BUILD_ROOT%{_appdir}/include
531 cp -a include/*.php $RPM_BUILD_ROOT%{_appdir}/include
532 cp -a logs/* $RPM_BUILD_ROOT/var/log/%{name}
533 cp -a misc/upgrade $RPM_BUILD_ROOT%{_appdir}
534
535 cp -a favicon.ico $RPM_BUILD_ROOT%{_appdir}/htdocs/favicon.ico
536 install %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/htdocs/setup/config.inc.php
537 install %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/upgrade/upgrade.sh
538
539 # cli
540 install -d $RPM_BUILD_ROOT%{_appdir}/cli
541 cp -a misc/cli/include/class.{misc,command_line}.php $RPM_BUILD_ROOT%{_appdir}/cli
542 cp -a misc/cli/config.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/cli.php
543 install %{name}-cli $RPM_BUILD_ROOT%{_bindir}/%{name}
544 install %{name}-bot $RPM_BUILD_ROOT%{_sbindir}
545
546 # scm
547 install %{name}-scm $RPM_BUILD_ROOT%{_libdir}/scm
548 install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/cvs.php
549
550 # private key
551 cp -a private_key.php.in $RPM_BUILD_ROOT%{_webappdir}/private_key.php
552
553 install %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/apache.conf
554 install %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/httpd.conf
555 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-queue
556 install %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-download
557 install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/%{name}-reminder
558 install %{SOURCE5} $RPM_BUILD_ROOT/etc/cron.d/%{name}-monitor
559 install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/irc.php
560 install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/eventum-irc
561 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc
562
563 sed -e '
564 s,%%{APP_VERSION}%%,%{version}%{?_snap:-%{_snap}}%{?_rc:-%{_rc}},
565 s,%%{PHP_PEAR_DIR}%%,%{php_pear_dir},
566 s,%%{APP_PATH}%%,%{_appdir},
567 s,%%{SMARTY_DIR}%%,%{_smartydir},
568 s,%%{SYSCONFDIR}%%,%{_webappdir},
569 ' %{SOURCE10} > $RPM_BUILD_ROOT%{_webappdir}/core.php
570
571 # config
572 > $RPM_BUILD_ROOT%{_webappdir}/setup.php
573 mv $RPM_BUILD_ROOT{%{_appdir}/htdocs/config.inc,%{_webappdir}/config}.php
574
575 install -d $RPM_BUILD_ROOT%{_smartyplugindir}
576 # These plugins are not in Smarty package (Smarty-2.6.2-3)
577 cp -a \
578         include/Smarty/plugins/function.{calendar,get_{display_style,innerhtml,textarea_size}}.php \
579         include/Smarty/plugins/modifier.highlight_quoted.php \
580         $RPM_BUILD_ROOT%{_smartyplugindir}
581
582 # qmail router
583 %if %{with qmail}
584 d=$RPM_BUILD_ROOT/var/lib/%{name}
585 echo 'root' > $d/.qmail
586 echo 'root' > $d/.qmail-default
587 echo '| %{_libdir}/router-qmail drafts' > $d/.qmail-draft-default
588 echo '| %{_libdir}/router-qmail emails 1' > $d/.qmail-issue-default
589 echo '| %{_libdir}/router-qmail notes' > $d/.qmail-note-default
590 install %{SOURCE11} $RPM_BUILD_ROOT%{_libdir}/router-qmail
591 %endif
592 # postfix router
593 install %{SOURCE14} $RPM_BUILD_ROOT%{_libdir}/router-postfix
594
595 %clean
596 rm -rf $RPM_BUILD_ROOT
597
598 %pre
599 %addusertogroup http %{name}
600
601 %post
602 # check if the package is configured.
603 if grep -q 'header("Location: setup/")' %{_webappdir}/config.php; then
604 if [ -f %{_appdir}/htdocs/setup/index.php ]; then
605 %banner %{name} -e <<EOF
606
607 You haven't yet configured Eventum!
608 Please open in browser <http://localhost/eventum/>
609 If you need access from elsewhere, you need to edit
610 %{_webappdir}/apache.conf and restart apache.
611
612 IMPORTANT: When You have configured Eventum, please uninstall the
613 setup package, so that %{name}-setup is able to secure your Eventum
614 installation.
615
616 EOF
617 #' vim syntax hack
618 else
619 %banner %{name} -e <<EOF
620
621 You haven't yet configured Eventum!
622
623 To setup eventum, please install %{name}-setup and open in browser
624 <http://localhost/eventum/>.
625 If you need access from elsewhere, you need to edit
626 %{_webappdir}/apache.conf and restart apache.
627
628 IMPORTANT: When You have configured Eventum, please uninstall the
629 setup package, so that %{name}-setup is able to secure your Eventum
630 installation.
631
632 EOF
633 #' vim syntax hack
634 fi
635
636 elif grep -q 'DEFAULTPRIVATEKEY' %{_webappdir}/private_key.php; then
637 %banner %{name} -e <<EOF
638
639 You have default private key installed!
640
641 Install %{name}-setup and open up http://yourserver/eventum/setup/
642 -- that will help you setup initial config.
643
644 when have configured Eventum, please uninstall the setup package,
645 so that %{name}-setup is able to secure your Eventum installation.
646
647 EOF
648         elif [ -d %{_appdir}/setup ]; then
649 %banner %{name} -e <<EOF
650
651 If you have have configured Eventum, please uninstall the setup package,
652 so that %{name}-setup is able to secure your Eventum installation.
653
654 EOF
655 fi
656
657 # nuke Smarty templates cache after upgrade
658 rm -f /var/cache/eventum/*.php
659
660 %preun
661 if [ "$1" = "0" ]; then
662         # nuke cache
663         rm -f /var/cache/eventum/*.php 2>/dev/null || :
664 fi
665
666 %pre base
667 %groupadd -P %{name}-base -g 146 %{name}
668 %useradd -P %{name}-base -u 146 -d /var/lib/%{name} -g %{name} -c "Eventum User" %{name}
669
670 %postun base
671 if [ "$1" = "0" ]; then
672         %userremove %{name}
673         %groupremove %{name}
674 fi
675
676 %post router-qmail
677 CF=/etc/qmail/control/virtualdomains
678 if ! grep -q ':%{name}\b' $CF 2>/dev/null; then
679         FQDN=$(awk -F'"' '/define/ && $2 ~ /APP_HOSTNAME/ {print $4}' %{_webappdir}/config.php 2>/dev/null)
680         [ "$FQDN" ] || FQDN=$(hostname -f 2>/dev/null || echo localhost)
681         umask 022
682         echo "#${FQDN}:%{name}" >> $CF
683
684 %banner %{name}-qmail -e <<EOF
685
686 Added "#${FQDN}:%{name}" to $CF,
687 Please verify that it is correct and restart qmail:
688 # service qmail reload
689
690 Consult qmail-send(8) for more information on virtualdomains.
691
692 EOF
693 fi
694
695 %preun router-qmail
696 if [ "$1" = "0" ]; then
697         sed -i -e '/:%{name}\b/d' /etc/qmail/control/virtualdomains
698 fi
699
700 %post setup
701 chmod 660 %{_webappdir}/{config,private_key}.php
702 chown root:eventum %{_webappdir}/{config,private_key}.php
703
704 %postun setup
705 if [ "$1" = "0" ]; then
706         chmod 640 %{_webappdir}/{config,private_key}.php
707         chown root:eventum %{_webappdir}/{config,private_key}.php
708 fi
709
710 %post irc
711 /sbin/chkconfig --add eventum-irc
712 %service eventum-irc restart "Eventum IRC Bot"
713
714 %triggerin -- apache1
715 %webapp_register apache %{_webapp}
716
717 %triggerun -- apache1
718 %webapp_unregister apache %{_webapp}
719
720 %triggerin -- apache < 2.2.0, apache-base
721 %webapp_register httpd %{_webapp}
722
723 %triggerun -- apache < 2.2.0, apache-base
724 %webapp_unregister httpd %{_webapp}
725
726 # FIXME
727 # only one upgrade trigger is called if you're upgrading over two
728 # versions, say 1.5 to 1.5.3, only 1.5.3 trigger is called.
729 # use common trigger (the highest version and rpmvercmp from poldek?)
730 %triggerpostun -- eventum < 1.5.1-0.257
731 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.5_to_v1.5.1 <<EOF
732 database_changes.php Perform database changes
733 EOF
734
735 %triggerpostun -- eventum < 1.5.2-0.289
736 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.5.1_to_v1.5.2 <<EOF
737 database_changes.php Perform database changes
738 set_priority_ranks.php Fix the ranking of priority values
739 EOF
740
741 %triggerpostun -- eventum < 1.5.3-0.291
742 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.5.2_to_v1.5.3 <<EOF
743 database_changes.php Perform database changes
744 EOF
745
746 %triggerpostun -- eventum < 1.5.4-1.12
747 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.5.3_to_v1.5.4 <<EOF
748 database_changes.php Perform database changes
749 EOF
750
751 %triggerpostun -- eventum < 1.6.0-RC2.6
752 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.5.5_to_v1.6.0 <<EOF
753 database_changes.php Perform database changes
754 upgrade_saved_searches.php Upgrade existing custom filters (saved searches)
755 EOF
756
757 %triggerpostun -- eventum < 1.6.1-0.2
758 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.6.0_to_v1.6.1 <<EOF
759 database_changes.php Perform database changes
760 EOF
761
762 %triggerpostun irc -- eventum-irc < 1.6.1-3.14
763 sed -i -e '
764 s,\$irc_host,$irc_server_hostname,
765 s,\$irc_port,$irc_server_port,
766 s,\$irc_nick,$nickname,
767 s,\$irc_realname,$realname,
768 s,\$irc_username,$username,
769 s,\$irc_password,$password,
770 ' /etc/eventum/irc.php
771
772 %triggerpostun -- eventum < 1.7.0-2.0.48
773 # migrate from apache-config macros
774 if [ -f /etc/%{name}/apache.conf.rpmsave ]; then
775         if [ -d /etc/apache/webapps.d ]; then
776                 cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew}
777                 cp -f /etc/%{name}/apache.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf
778         fi
779
780         if [ -d /etc/httpd/webapps.d ]; then
781                 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
782                 cp -f /etc/%{name}/apache.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
783         fi
784 fi
785
786 if [ -L /etc/apache/conf.d/99_%{_webapp}.conf ]; then
787         /usr/sbin/webapp register apache %{_webapp}
788         rm -f /etc/apache/conf.d/99_%{_webapp}.conf
789         %service -q apache reload
790 fi
791 if [ -L /etc/httpd/httpd.conf/99_%{_webapp}.conf ]; then
792         /usr/sbin/webapp register httpd %{_webapp}
793         rm -f /etc/httpd/httpd.conf/99_%{_webapp}.conf
794         %service -q httpd reload
795 fi
796
797 %{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.6.1_to_v1.7.0 <<EOF
798 database_changes.php Perform database changes
799 set_root_message_ids.php Set iss_root_message_id
800 EOF
801
802 # regular configs
803 for i in apache.conf config.php private_key.php setup.php; do
804         if [ -f /etc/eventum/$i.rpmsave ]; then
805                 mv -f %{_webappdir}/$i{,.rpmnew}
806                 mv -f /etc/eventum/$i.rpmsave %{_webappdir}/$i
807         fi
808 done
809
810 %triggerpostun cli -- %{name}-cli < 1.7.0-3.4
811 if [ -f %{_webappdir}/cli.php.rpmsave ]; then
812         mv -f %{_sysconfdir}/cli.php{,.rpmnew}
813         mv -f %{_webappdir}/cli.php.rpmsave %{_sysconfdir}/cli.php
814 fi
815
816 %triggerpostun irc -- %{name}-irc < 1.7.0-3.4
817 if [ -f %{_webappdir}/irc.php.rpmsave ]; then
818         mv -f %{_sysconfdir}/irc.php{,.rpmnew}
819         mv -f %{_webappdir}/irc.php.rpmsave %{_sysconfdir}/irc.php
820 fi
821
822 %files
823 %defattr(644,root,root,755)
824 %doc ChangeLog FAQ INSTALL README UPGRADE CONTRIB
825 %doc docs/* setup/schema.sql
826 %attr(751,root,root) %dir %{_webappdir}
827 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/apache.conf
828 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/httpd.conf
829 %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/config.php
830 %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/private_key.php
831 %attr(660,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/setup.php
832 %attr(640,root,eventum) %config %verify(not mtime) %{_webappdir}/core.php
833
834 %dir %attr(731,root,eventum) /var/log/%{name}
835 %attr(620,root,eventum) %ghost /var/log/%{name}/*
836
837 %dir %{_appdir}/htdocs
838 %{_appdir}/htdocs/*.php
839 %{_appdir}/htdocs/*.ico
840 %{_appdir}/htdocs/css
841 %{_appdir}/htdocs/customer
842 %{_appdir}/htdocs/images
843 %{_appdir}/htdocs/js
844 %{_appdir}/htdocs/manage
845 %{_appdir}/htdocs/reports
846 %{_appdir}/htdocs/rpc
847 %{_appdir}/htdocs/misc
848 %{_appdir}/templates
849 %dir %{_appdir}/upgrade
850 %attr(755,root,root) %{_appdir}/upgrade/upgrade.sh
851 %{_appdir}/upgrade/[!u]*
852 %{_smartyplugindir}
853
854 %dir %{_appdir}/include
855 %{_appdir}/include/customer
856 %{_appdir}/include/custom_field
857 %{_appdir}/include/jpgraph
858 %{_appdir}/include/workflow
859 %{_appdir}/include/class.[!m]*.php
860 %{_appdir}/include/class.mail.php
861 %{_appdir}/include/class.mail_queue.php
862 %{_appdir}/include/class.mime_helper.php
863 %{_appdir}/include/class.misc.php
864 %{_appdir}/include/db_access.php
865
866 %dir %attr(730,root,eventum) /var/run/%{name}
867 %dir %attr(730,root,eventum) /var/cache/%{name}
868
869 %files base
870 %defattr(644,root,root,755)
871 %attr(751,root,root) %dir %{_sysconfdir}
872 %dir %{_libdir}
873 %dir %{_appdir}
874 # qmail will ignore user, if it's home directory is not owned
875 %attr(750,eventum,eventum) %dir /var/lib/%{name}
876 # saved mail copies
877 %attr(770,root,eventum) %dir /var/lib/%{name}/routed_emails
878 %attr(770,root,eventum) %dir /var/lib/%{name}/routed_drafts
879 %attr(770,root,eventum) %dir /var/lib/%{name}/routed_notes
880
881 %files setup
882 %defattr(644,root,root,755)
883 %{_appdir}/htdocs/setup
884
885 %files mail-queue
886 %defattr(644,root,root,755)
887 %attr(755,root,root) %{_appdir}/process_mail_queue.php
888 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-mail-queue
889
890 %files mail-download
891 %defattr(644,root,root,755)
892 %attr(755,root,root) %{_appdir}/download_emails.php
893 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-mail-download
894
895 %files reminder
896 %defattr(644,root,root,755)
897 %attr(755,root,root) %{_appdir}/check_reminders.php
898 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-reminder
899
900 %files monitor
901 %defattr(644,root,root,755)
902 %{_appdir}/include/class.monitor.php
903 %attr(755,root,root) %{_appdir}/monitor.php
904 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-monitor
905
906 %files route-drafts
907 %defattr(644,root,root,755)
908 %attr(755,root,root) %{_appdir}/route_drafts.php
909
910 %files route-emails
911 %defattr(644,root,root,755)
912 %attr(755,root,root) %{_appdir}/route_emails.php
913
914 %files route-notes
915 %defattr(644,root,root,755)
916 %attr(755,root,root) %{_appdir}/route_notes.php
917
918 %if %{with qmail}
919 %files router-qmail
920 %defattr(644,root,root,755)
921 %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) /var/lib/%{name}/.qmail*
922 %attr(755,root,root) %{_libdir}/router-qmail
923 %endif
924
925 %files router-postfix
926 %defattr(644,root,root,755)
927 %attr(755,root,root) %{_libdir}/router-postfix
928
929 %files irc
930 %defattr(644,root,root,755)
931 %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/irc.php
932 %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/eventum-irc
933 %attr(755,root,root) %{_sbindir}/%{name}-bot
934 %attr(754,root,root) /etc/rc.d/init.d/%{name}-irc
935
936 %files cli
937 %defattr(644,root,root,755)
938 %doc eventumrc
939 %attr(644,root,root) %config %verify(not md5 mtime size) %{_sysconfdir}/cli.php
940 %attr(755,root,root) %{_bindir}/%{name}
941 %{_appdir}/cli
942
943 %files scm
944 %defattr(644,root,root,755)
945 %attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvs.php
946 %attr(755,root,root) %{_libdir}/scm
This page took 0.089579 seconds and 3 git commands to generate.