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