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