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