X-Git-Url: http://git.pld-linux.org/?p=packages%2Feventum.git;a=blobdiff_plain;f=eventum.spec;h=1ceef30f9635e13b6b1bab383d0c071ea426963f;hp=d3e960200c9d480ef4cb24e38f8d31242d603bd3;hb=9b6df4e71ca66d333d4d2821d485df1bef8531d3;hpb=f56655e1e63580a9b514b743552ebedff919fc8c diff --git a/eventum.spec b/eventum.spec index d3e9602..1ceef30 100644 --- a/eventum.spec +++ b/eventum.spec @@ -3,27 +3,25 @@ %bcond_with order # with experimental order patch %define rel 1 -%define subver 28 -%define githash 0d12f69 -%define php_min_version 5.3.3 +#define subver 51 +#define githash 61de085 +%define php_min_version 5.5.0 %include /usr/lib/rpm/macros.php Summary: Eventum Issue / Bug tracking system Summary(pl.UTF-8): Eventum - system śledzenia spraw/błędów Name: eventum -Version: 3.0.2 +Version: 3.1.7 Release: %{?subver:1.%{subver}.%{?githash:g%{githash}.}}%{rel} -License: GPL v2 +License: GPL v2+ Group: Applications/WWW -#Source0: https://github.com/eventum/eventum/releases/download/v%{version}/%{name}-%{version}.tar.gz -Source0: %{name}-%{version}-%{subver}-g%{githash}.tar.gz -# Source0-md5: 9a6b3cd1c8deaceacf674d33784953d0 +Source0: https://github.com/eventum/eventum/releases/download/v%{version}/%{name}-%{version}.tar.gz +# Source0-md5: 4d1360473e9c473fa56242c4fd101cba +#Source0: %{name}-%{version}-%{subver}-g%{githash}.tar.gz Source1: %{name}-apache.conf Source2: %{name}-mail-queue.cron Source3: %{name}-mail-download.cron Source4: %{name}-reminder.cron Source5: %{name}-monitor.cron -Source6: %{name}-cvs.php -Source7: %{name}-irc.php Source8: %{name}-irc.init Source9: %{name}-irc.sysconfig Source10: sphinx.crontab @@ -33,25 +31,28 @@ Source15: %{name}-lighttpd.conf Source16: http://www.isocra.com/images/updown2.gif # Source16-md5: deb6eeb2552ba757d3a949ed10c4107d Source17: %{name}.tmpfiles -#Patch0: %{name}-lf.patch Patch2: %{name}-order.patch #Patch3: group-users.patch #Patch4: https://github.com/glensc/eventum/compare/cf_escape.patch # packaging patches that probably never go upstream Patch100: %{name}-paths.patch -Patch101: %{name}-cvs-config.patch -Patch105: %{name}-bot-reconnect.patch Patch107: %{name}-gettext.patch +Patch108: autoload.patch # some tests Patch200: %{name}-fixed-nav.patch URL: http://eventum.mysql.org/ BuildRequires: /usr/bin/php -BuildRequires: gettext-devel +BuildRequires: gettext-tools BuildRequires: php(core) >= %{php_min_version} BuildRequires: rpm-php-pearprov >= 4.0.2-98 BuildRequires: rpmbuild(macros) >= 1.654 BuildRequires: sed >= 4.0 -Requires: %{name}-base = %{version}-%{release} +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd Requires: fonts-TTF-RedHat-liberation Requires: php(core) >= %{php_min_version} Requires: php(filter) @@ -64,19 +65,30 @@ Requires: php(pcre) Requires: php(session) Requires: php-Smarty >= 3.1 Requires: php-Smarty-plugin-gettext +Requires: php-ZendFramework-Config >= 2.4 +Requires: php-ZendFramework-Loader >= 2.4 +Requires: php-ZendFramework-Mail >= 2.4.9-2 +Requires: php-ZendFramework-Mime >= 2.4 +Requires: php-ZendFramework-Validator >= 2.4 +Requires: php-monolog >= 1.17.2 Requires: php-pear-DB Requires: php-pear-Mail Requires: php-pear-Mail_Mime Requires: php-pear-Mail_mimeDecode Requires: php-pear-Math_Stats -Requires: php-pear-Net_DIME Requires: php-pear-Net_SMTP Requires: php-pear-Net_Socket Requires: php-pear-Net_URL -Requires: php-pear-Net_UserAgent_Detect Requires: php-pear-PEAR-core Requires: php-pear-Text_Diff Requires: php-pear-XML_RPC +Requires: php-psr-Log >= 1.0.0-2 +Requires: php-symfony2-Config >= 2.7.7 +Requires: php-symfony2-Filesystem >= 2.7.7 +Requires: php-symfony2-HttpFoundation >= 2.7.7 +Requires: php-symfony2-OptionsResolver >= 2.7.7 +Requires: php-symfony2-Serializer >= 2.7.7 +Requires: php-symfony2-Yaml >= 2.7.7 Requires: phplot >= 5.8.0 Requires: webapps Requires: webserver(access) @@ -84,7 +96,17 @@ Requires: webserver(alias) Requires: webserver(indexfile) Requires: webserver(php) >= 4.2.0 Suggests: localedb +Suggests: php(mcrypt) +Suggests: php(openssl) Suggests: php-pear-Net_LDAP2 +Suggests: php-pear-Net_POP3 +Suggests: webserver(setenv) +Provides: group(eventum) +Provides: user(eventum) +Obsoletes: eventum-base < 3.0.3-1.305 +Obsoletes: eventum-route-drafts < 3.0.8-1.1 +Obsoletes: eventum-route-emails < 3.0.8-1.1 +Obsoletes: eventum-route-notes < 3.0.8-1.1 Conflicts: logrotate < 3.8.0 BuildArch: noarch BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -119,25 +141,6 @@ szybkiej organizacji zadań i błędów. Eventum jest używany przez zespół Technical Support MySQL AB i umożliwił im znacząco poprawić czasy reakcji. -%package base -Summary: Eventum base package -Summary(pl.UTF-8): Podstawowy pakiet Eventum -Group: Applications/WWW -Requires(postun): /usr/sbin/groupdel -Requires(postun): /usr/sbin/userdel -Requires(pre): /bin/id -Requires(pre): /usr/bin/getgid -Requires(pre): /usr/sbin/groupadd -Requires(pre): /usr/sbin/useradd -Provides: group(eventum) -Provides: user(eventum) - -%description base -This package contains base directory structure for Eventum. - -%description base -l pl.UTF-8 -Ten pakiet zawiera podstawową strukturę katalogów dla Eventum. - %package setup Summary: Eventum setup package Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji Eventum @@ -154,6 +157,13 @@ Ten pakiet należy zainstalować w celu wstępnej konfiguracji Eventum po pierwszej instalacji. Potem należy go odinstalować, jako że pozostawienie plików instalacyjnych mogłoby być niebezpieczne. +%package doc +Summary: Eventum documentation and Wiki +Group: Documentation + +%description doc +Eventum documentation and copy of Wiki. + %package mail-queue Summary: Eventum mail queue process Summary(pl.UTF-8): Przetwarzanie kolejki poczty Eventum @@ -258,79 +268,6 @@ testów uprawnień i plików w Monitor::checkConfiguration(). Ten pakiet zawiera zadanie dla crona. -%package route-drafts -Summary: Eventum Draft Routing -Summary(pl.UTF-8): Przekazywanie szkiców dla Eventum -Group: Applications/WWW -Requires: %{name} = %{version}-%{release} -Requires: eventum(router) - -%description route-drafts -The draft routing feature is used to automatically associate a thread -of drafts into an Eventum issue. By setting up Postfix to deliver -emails sent to a specific address (usually draft-@) to -the above script, users are able to send drafts written in their mail -client to be stored in Eventum. These drafts will NOT broadcasted to -the notification list. - -%description route-drafts -l pl.UTF-8 -Przekazywanie szkiców służy do automatycznego wiązania wątku szkiców z -problemem w Eventum. Ustawiając Postfiksa, aby dostarczał pocztę -wysłaną na podany adres (zwykle draft-@) do tego -skryptu umożliwia się użytkownikom wysyłanie szkiców napisanych w ich -kliencie pocztowym do zapisania w Eventum. Szkice te NIE będą wysyłane -na listę powiadomień. - -%package route-emails -Summary: Eventum Email Routing -Summary(pl.UTF-8): Przekazywanie poczty dla Eventum -Group: Applications/WWW -Requires: %{name} = %{version}-%{release} -Requires: eventum(router) - -%description route-emails -The email routing feature is used to automatically associate a thread -of emails into an Eventum issue. By setting up Postfix to deliver -emails sent to a specific address (usually issue-@) to -the above script, users are able to use their email clients to reply -to emails coming from Eventum, and those replies will be automatically -associated with the issue and broadcasted to the entire notification -list. - -%description route-emails -l pl.UTF-8 -Funkcjonalność przekazywania poczty służy do automatycznego wiązania -wątku listów ze sprawą w Eventum. Po ustawieniu czy nawet Postfiksa, -aby dostarczał listy wysyłane na pewien adres (zwykle -issue-@) na powyższy skrypt, użytkownicy będą mogli -używać klientów pocztowych do odpowiadania na listy przychodzące z -Eventum, a odpowiedzi te będą automatycznie wiązane ze sprawą i -rozprowadzane do całej listy ogłoszeniowej. - -%package route-notes -Summary: Eventum Note Routing -Summary(pl.UTF-8): Przekazywanie notatek dla Eventum -Group: Applications/WWW -Requires: %{name} = %{version}-%{release} -Requires: eventum(router) - -%description route-notes -The note routing feature is used to automatically associate a thread -of notes into an Eventum issue. By setting up Postfix to deliver -emails sent to a specific address (usually note-@) to -the above script, users are able to use their email clients to reply -to internal notes coming from Eventum, and those replies will be -automatically associated with the issue and broadcasted to the -notification list staff members. - -%description route-notes -l pl.UTF-8 -Funkcjonalność przekazywania notatek służy do automatycznego wiązania -wątku notatek ze sprawą w Eventum. Po ustawieniu Postfiksa, aby -dostarczał listy wysyłane na pewien adres (zwykle -note-@) na powyższy skrypt, użytkownicy będą mogli -używać klientów pocztowych do odpowiadania na wewnętrzne notatki -pochodzące od Eventu, a odpowiedzi te będą automatycznie wiązane ze -sprawą i rozprowadzane do członków personelu listy ogłoszeniowej. - %package router-postfix Summary: Eventum Mail Routing - Postfix Summary(pl.UTF-8): Przekazywanie poczty Eventum - Postfix @@ -360,8 +297,9 @@ Summary(pl.UTF-8): IRC-owy bot powiadamiający dla Eventum Group: Applications/WWW Requires(post,preun): /sbin/chkconfig Requires: %{name} = %{version}-%{release} +Requires: php(pcntl) Requires: php(sockets) -Requires: php-pear-Net_SmartIRC +Requires: php-pear-Net_SmartIRC >= 1.1.9 Requires: rc-scripts >= 0.4.0.18 %description irc @@ -392,7 +330,6 @@ kanał używany przez bota, trzeba ręcznie zmodyfikować skrypt bot.php . Summary: Eventum command-line interface Summary(pl.UTF-8): Interfejs linii poleceń dla Eventum Group: Applications/WWW -Requires: %{name}-base = %{version}-%{release} Requires: php(core) >= %{php_min_version} Requires: php(phar) Requires: php-pear-XML_RPC @@ -405,40 +342,6 @@ features of the web interface straight from your command shell. Interfejs linii poleceń Eventum pozwala na dostęp do większości funkcji interfejsu WWW prosto z linii poleceń powłoki. -%package scm -Summary: Eventum SCM integration -Summary(pl.UTF-8): Integracja SCM dla Eventum -Group: Applications/WWW -Requires: php(core) >= %{php_min_version} -Requires: php(json) -Requires: php(pcre) -Requires: php(spl) -Suggests: cvs -Suggests: git-core -Suggests: php(openssl) -Suggests: subversion - -%description scm -This feature allows your software development teams to integrate your -Source Control Management system with your Issue Tracking System. - -The integration is implemented in such a way that it will be forward -compatible with pretty much any SCM system, such as CVS. - -For installation see -. - -%description scm -l pl.UTF-8 -Ten pakiet pozwala zespołom programistów na integrację systemu -zarządzania źródłami (SCM - Source Control Management) z systemem -śledzenia spraw. - -Integracja jest zaimplementowana tak, aby być kompatybilna w przód z -prawie każdym systemem SCM, jak np. CVS. - -Szczegóły na temat instalacji można przeczytać pod -. - %package sphinx Summary: Eventum Sphinx Search Group: Applications/WWW @@ -456,11 +359,7 @@ This package contains the cron job. mv docs/examples . -# GPL v2 -rm docs/COPYING - # bug fixes / features -#%patch0 -p1 %{?with_order:%patch2 -p1} #%patch3 -p0 #%patch4 -p1 @@ -483,18 +382,39 @@ define('APP_SQL_DBPASS', ''); define('APP_TABLE_PREFIX', 'eventum_'); EOF php config/sphinx.conf.php > config/sphinx.conf -rm -f config/config.php +rm config/config.php %endif # packaging %patch100 -p1 -%patch101 -p1 -%patch105 -p1 %patch107 -p1 - -%{__sed} -i -e " -s;define('CONFIG_PATH'.*');define('CONFIG_PATH', '%{_webappdir}'); -" upgrade/{*/,}*.php +%patch108 -p1 + +rm htdocs/.htaccess.dist + +mv config/irc_config{.dist.php,.php} +rm config/config.dist.php + +# cleanup vendor. keep only needed libraries. +# (the rest are packaged with system packages) +mv vendor vendor.dist +vendor() { + local path dir + for path; do + dir=$(dirname $path) + test -d vendor/$dir || mkdir -p vendor/$dir + mv vendor.dist/$path vendor/$path + done +} +vendor autoload.php +vendor composer/autoload_{classmap,files,namespaces,real,psr4}.php +vendor composer/ClassLoader.php +vendor ircmaxell/{random-lib,security-lib} +vendor defuse/php-encryption +vendor willdurand/email-reply-parser +vendor theorchard/monolog-cascade +vendor malkusch/lock +vendor phpxmlrpc/phpxmlrpc # remove backups from patching as we use globs to package files to buildroot find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v @@ -510,14 +430,17 @@ install -d \ $RPM_BUILD_ROOT/var/{run,cache,lib}/%{name} \ $RPM_BUILD_ROOT/var/log/{archive/,}%{name} \ $RPM_BUILD_ROOT/var/lib/%{name}/routed_{emails,drafts,notes} \ - $RPM_BUILD_ROOT%{_appdir}/{include,htdocs/misc,upgrade} \ $RPM_BUILD_ROOT%{systemdtmpfilesdir} -%{__make} install-eventum install-cli install-irc install-scm install-localization \ +%{__make} install-eventum install-cli install-localization \ sysconfdir=%{_webappdir} \ localedir=%{_localedir} \ DESTDIR=$RPM_BUILD_ROOT +ln -s %{_webappdir} $RPM_BUILD_ROOT%{_appdir}/config + +cp -a vendor $RPM_BUILD_ROOT%{_appdir} + # unsupported locale %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/ht @@ -541,8 +464,6 @@ cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/%{name}-reminder cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/cron.d/%{name}-monitor cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/cron.d/%{name}-sphinx -cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_webappdir}/irc_config.php - install -p %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/eventum-irc cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc @@ -555,26 +476,30 @@ cp -p %{SOURCE17} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf %find_lang %{name} -# scm -cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php - %clean rm -rf $RPM_BUILD_ROOT %pre +%groupadd -g 146 %{name} +%useradd -u 146 -d /var/lib/%{name} -g %{name} -c "Eventum User" %{name} %addusertogroup http %{name} %post -# greate empty ghost files -for a in cli.log errors.log irc_bot.log login_attempts.log; do - if [ ! -f /var/log/%{name}/$a ]; then - install -m 0620 -o root -g eventum /dev/null /var/log/%{name}/$a - fi +# create empty ghost files +# these permissions ensure the logs are write only +for a in \ + errors.log login_attempts.log \ + eventum.log \ + auth.log cli.log \ + irc_bot_error.log irc_bot_smartirc.log \ +; do + test -f /var/log/%{name}/$a && continue + install -m 0620 -o root -g http /dev/null /var/log/%{name}/$a done # run database update if configured test -s %{_webappdir}/config.php && \ -%{_appdir}/upgrade/update-database.php || : +%{_appdir}/bin/upgrade.php || : # nuke Smarty templates cache after upgrade rm -f /var/cache/eventum/*.php @@ -589,24 +514,20 @@ if [ "$1" = "0" ]; then rm -f /var/cache/eventum/*.php 2>/dev/null || : fi -%pre base -%groupadd -P %{name}-base -g 146 %{name} -%useradd -P %{name}-base -u 146 -d /var/lib/%{name} -g %{name} -c "Eventum User" %{name} - -%postun base +%postun if [ "$1" = "0" ]; then %userremove %{name} %groupremove %{name} fi %post setup -chmod 660 %{_webappdir}/{config,private_key}.php -chown root:http %{_webappdir}/{config,private_key}.php +chmod 660 %{_webappdir}/{config,private_key,secret_key}.php +chown root:http %{_webappdir}/{config,private_key,secret_key}.php %postun setup if [ "$1" = "0" ] && [ -f %{_webappdir}/config.php ]; then - chmod 640 %{_webappdir}/{config,private_key}.php - chown root:http %{_webappdir}/{config,private_key}.php + chmod 640 %{_webappdir}/{config,private_key,secret_key}.php + chown root:http %{_webappdir}/{config,private_key,secret_key}.php fi %post irc @@ -650,7 +571,6 @@ done %files -f %{name}.lang %defattr(644,root,root,755) -%doc docs/* %attr(751,root,root) %dir %{_webappdir} %attr(751,root,root) %dir %{_webappdir}/custom_field %attr(751,root,root) %dir %{_webappdir}/templates @@ -660,16 +580,21 @@ done %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/lighttpd.conf %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/config.php %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/private_key.php +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/secret_key.php %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/setup.php %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/htpasswd -%dir %attr(731,root,http) /var/log/%{name} +%dir %attr(711,root,http) /var/log/%{name} %attr(620,root,http) %ghost /var/log/%{name}/* %dir %attr(750,root,root) /var/log/archive/%{name} %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name} +%dir %{_appdir} +%{_appdir}/config + %dir %{_appdir}/bin %attr(755,root,root) %{_appdir}/bin/process_all_emails.php +%attr(755,root,root) %{_appdir}/bin/upgrade.php %{_appdir}/autoload.php %{_appdir}/init.php @@ -682,37 +607,30 @@ done %{_appdir}/htdocs/images %{_appdir}/htdocs/js %{_appdir}/htdocs/manage -%{_appdir}/htdocs/misc %{_appdir}/htdocs/reports %{_appdir}/htdocs/rpc %{_appdir}/htdocs/components %{_appdir}/templates %dir %{_appdir}/upgrade -%{_appdir}/upgrade/flush_compiled_templates.php %{_appdir}/upgrade/*.sql -%attr(755,root,root) %{_appdir}/upgrade/update-database.php -%attr(755,root,root) %{_appdir}/upgrade/ldap_import.php -%attr(755,root,root) %{_appdir}/upgrade/ldap_update_users.php -%attr(755,root,root) %{_appdir}/upgrade/scm_trac_import.php %{_appdir}/upgrade/patches +%{_appdir}/res +%{_appdir}/src +%{_appdir}/vendor %dir %{_appdir}/lib %{_appdir}/lib/eventum %exclude %{_appdir}/lib/eventum/class.monitor.php -%{_examplesdir}/%{name}-%{version} +%dir %{_libdir} %{systemdtmpfilesdir}/%{name}.conf + +%dir /var/lib/%{name} %dir %attr(730,root,http) /var/run/%{name} %dir %attr(730,root,http) /var/cache/%{name} -%files base -%defattr(644,root,root,755) -%attr(751,root,root) %dir %{_sysconfdir} -%dir %{_libdir} -%dir %{_appdir} -%dir /var/lib/%{name} # saved mail copies %attr(770,root,http) %dir /var/lib/%{name}/routed_emails %attr(770,root,http) %dir /var/lib/%{name}/routed_drafts @@ -722,6 +640,11 @@ done %defattr(644,root,root,755) %{_appdir}/htdocs/setup +%files doc +%defattr(644,root,root,755) +%doc docs/* +%{_examplesdir}/%{name}-%{version} + %files mail-queue %defattr(644,root,root,755) %attr(755,root,root) %{_appdir}/bin/process_mail_queue.php @@ -744,18 +667,6 @@ done %attr(755,root,root) %{_appdir}/bin/monitor.php %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-monitor -%files route-drafts -%defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/bin/route_drafts.php - -%files route-emails -%defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/bin/route_emails.php - -%files route-notes -%defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/bin/route_notes.php - %files router-postfix %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/router-postfix @@ -764,7 +675,7 @@ done %defattr(644,root,root,755) %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/irc_config.php %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/eventum-irc -%attr(755,root,root) %{_sbindir}/%{name}-irc-bot +%attr(755,root,root) %{_appdir}/bin/irc-bot.php %attr(754,root,root) /etc/rc.d/init.d/%{name}-irc %files cli @@ -772,15 +683,6 @@ done %doc cli/eventumrc %attr(755,root,root) %{_bindir}/%{name} -%files scm -%defattr(644,root,root,755) -%attr(751,root,root) %dir %{_sysconfdir} -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scm.php -%attr(755,root,root) %{_sbindir}/eventum-cvs-hook -%attr(755,root,root) %{_sbindir}/eventum-git-hook -%attr(755,root,root) %{_sbindir}/eventum-svn-hook -%attr(755,root,root) %{_sbindir}/helpers.php - %files sphinx %defattr(644,root,root,755) %{_webappdir}/sphinx.conf.php