X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=eventum.spec;h=850a1b7af00715a67c8683fc75620c0c50c15c4c;hb=9d6970def274564d9784c213b268e07cf4aef1de;hp=da64d10a56b69deff0edfad0ee28bd25e7445882;hpb=52eb5eb6d627b39f2303d82a4f4bff461a023a90;p=packages%2Feventum.git diff --git a/eventum.spec b/eventum.spec index da64d10..28d7b01 100644 --- a/eventum.spec +++ b/eventum.spec @@ -1,36 +1,26 @@ -# TODO -# - discard bundled packages (from INSTALL): -# - JpGraph 1.5.3 (last GPL version) -# - dTree 2.0.5 (http://www.destroydrop.com/javascript/tree/) -# - dynCalendar.js (http://www.phpguru.org/dyncalendar.html) -# - overLIB 3.5.1 (http://www.bosrup.com/web/overlib/) -# - A few other small javascript libraries # # Conditional build: -%bcond_without order # with experimental order patch +%bcond_with order # with experimental order patch -%define php_min_version 5.1.2 -%define subver 4470 -%define rel 2.4 -%include /usr/lib/rpm/macros.php +%define rel 1 +#define subver 436 +#define githash 2c1520b6 +%define php_min_version 5.6.0 Summary: Eventum Issue / Bug tracking system Summary(pl.UTF-8): Eventum - system śledzenia spraw/błędów Name: eventum -Version: 2.3.1 -#Release: %{rel} -Release: %{rel}.bzr%{subver} -License: GPL +Version: 3.4.0 +Release: %{?subver:1.%{subver}.%{?githash:g%{githash}.}}%{rel} +License: GPL v2+ Group: Applications/WWW -#Source0: http://launchpad.net/eventum/trunk/%{version}/+download/%{name}-%{version}.tar.gz -Source0: %{name}-%{version}-dev-r%{subver}.tar.gz -# Source0-md5: 41cdf607a180c5c94abc487a122893ea +Source0: https://github.com/eventum/eventum/releases/download/v%{version}/%{name}-%{version}.tar.gz +# Source0-md5: cdf409427f798dac704c7e1fe43e442d +#Source0: https://github.com/eventum/eventum/releases/download/snapshot/%{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 @@ -40,65 +30,73 @@ 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 +#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: gettext-devel -BuildRequires: rpm-php-pearprov >= 4.0.2-98 -BuildRequires: rpmbuild(macros) >= 1.461 +URL: https://wiki.github.com/eventum/eventum/ +BuildRequires: gettext-tools +BuildRequires: rpmbuild(macros) >= 1.654 BuildRequires: sed >= 4.0 -Requires: %{name}-base = %{version}-%{release} -Requires: Smarty >= 2.6.10-4 -Requires: php-common >= 4:%{php_min_version} -Requires: php-filter -Requires: php-gd -Requires: php-iconv -Requires: php-imap -Requires: php-json -Requires: php-mbstring -Requires: php-mysql -Requires: php-pcre -Requires: php-pear-DB -Requires: php-pear-Date -Requires: php-pear-Mail -Requires: php-pear-Mail_Mime -Requires: php-pear-Mail_mimeDecode +Requires(post): sudo +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) +Requires: php(iconv) +Requires: php(imap) +Requires: php(json) +Requires: php(mbstring) +Requires: php(pcre) +Requires: php(pdo_mysql) +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.13-2 +Requires: php-ZendFramework-Mime >= 2.4 +Requires: php-ZendFramework-ServiceManager >= 2.4 +Requires: php-ZendFramework-Validator >= 2.4 +Requires: php-monolog >= 1.17.2 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-session -Requires: smarty-gettext +Requires: php-psr-Log >= 1.0.0-2 +Requires: phplot >= 5.8.0 Requires: webapps Requires: webserver(access) Requires: webserver(alias) Requires: webserver(indexfile) Requires: webserver(php) >= 4.2.0 Suggests: localedb +Suggests: php(mcrypt) +Suggests: php(openssl) +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) -%define _noautopear pear(../init.php) pear(init.php) pear(/usr/share/eventum/init.php) pear(/etc/webapps/.*) pear(%{_appdir}/.*) pear(jpgraph_dir.php) pear(.*Smarty.class.php) pear(Services/JSON.php) pear(class.date_helper.php) pear(sphinxapi.php) - -# exclude optional php dependencies -%define _noautophp php-gnupg php-hash php-pecl-http php-tk - -%define _noautoreq %{_noautophp} %{_noautopear} - %define _libdir %{_prefix}/lib/%{name} %define _appdir %{_datadir}/%{name} %define _smartydir %{php_data_dir}/Smarty @@ -111,35 +109,13 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) Eventum is a user-friendly and flexible issue tracking system that can be used by a support department to track incoming technical support requests, or by a software development team to quickly organize tasks -and bugs. Eventum is used by the MySQL AB Technical Support team, and -has allowed us to dramatically improve our response times. +and bugs. %description -l pl.UTF-8 Eventum to przyjazny dla użytkownika system śledzenia spraw, który może być używany przez dział obsługi do śledzenia przychodzących żądań obsługi technicznej albo przez zespół tworzący oprogramowanie do -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. +szybkiej organizacji zadań i błędów. %package setup Summary: Eventum setup package @@ -157,6 +133,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 @@ -233,7 +216,7 @@ Summary(pl.UTF-8): Monitor życia dla Eventum Group: Applications/WWW Requires: %{name} = %{version}-%{release} Requires: crondaemon -Requires: php-posix +Requires: php(posix) %description monitor The heartbeat monitor is a feature designed for the administrator that @@ -261,79 +244,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 @@ -348,14 +258,14 @@ This package provides way of routing notes and emails back to Eventum via Postfix. The Postfix configuration instructions you can find from -. + %description router-postfix -l pl.UTF-8 Ten pakiet udostępnia metodę przekazywania notatek i listów do Eventum przez Postfiksa. Opis konfiguracji Postfiksa można znaleźć pod adresem -. + %package irc Summary: Eventum IRC Notification Bot @@ -363,8 +273,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-sockets -Requires: php-pear-Net_SmartIRC +Requires: php(pcntl) +Requires: php(sockets) +Requires: php-pear-Net_SmartIRC >= 1.1.9 Requires: rc-scripts >= 0.4.0.18 %description irc @@ -395,10 +306,8 @@ 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-cli -Requires: php-common >= 4:%{php_min_version} -Requires: php-pear-XML_RPC +Requires: php(core) >= %{php_min_version} +Requires: php(phar) %description cli The Eventum command-line interface allows you to access most of the @@ -408,36 +317,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: %{name}-base = %{version}-%{release} -Requires: php-cli -Requires: php-common >= 4:%{php_min_version} -Requires: php-pcre - -%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 @@ -451,27 +330,22 @@ Sphinx search integration for Eventum. This package contains the cron job. %prep -%setup -q +%setup -q -n %{name}-%{version}%{?githash:-%{subver}-g%{githash}} -# GPL v2 -rm docs/COPYING - -rm -r upgrade/*v1.[123]* # too old to support in PLD Linux -rm -r upgrade/v{1.,2.0,2.1_}* # no longer supported in PLD Linux -rm upgrade/flush_compiled_templates.php -rm -r upgrade/{*/,}index.html # not needed in PLD Linux +mv docs/examples . # bug fixes / features -%patch0 -p1 %{?with_order:%patch2 -p1} -%patch3 -p0 +#%patch3 -p0 +#%patch4 -p1 -cp -p %{SOURCE16} htdocs/images +%{?with_order:cp -p %{SOURCE16} htdocs/images} #%patch200 -p1 # produce default sphinx config # must be run before paths.patch +%if 0 cat <<'EOF' > config/config.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 +vendor robmorgan/phinx +vendor mnapoli/silly +vendor psr/container +vendor phlib/flysystem-pdo +vendor league/flysystem +vendor php-di/invoker +vendor container-interop/container-interop +vendor symfony/config +vendor symfony/console +vendor symfony/debug +vendor symfony/event-dispatcher +vendor symfony/filesystem +vendor symfony/http-foundation +vendor symfony/options-resolver +vendor symfony/serializer +vendor symfony/yaml +vendor symfony/ldap +vendor paragonie/random_compat +vendor symfony/polyfill-php70 +vendor symfony/polyfill-intl-normalizer +vendor glen/filename-normalizer +vendor doctrine/annotations +vendor doctrine/cache +vendor doctrine/collections +vendor doctrine/common +vendor doctrine/dbal +vendor doctrine/inflector +vendor doctrine/instantiator +vendor doctrine/lexer +vendor doctrine/orm +vendor cebe/markdown +vendor enrise/urihelper # remove backups from patching as we use globs to package files to buildroot find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v @@ -504,18 +432,28 @@ find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v %install rm -rf $RPM_BUILD_ROOT install -d \ - $RPM_BUILD_ROOT{%{_webappdir},%{_sysconfdir},%{_bindir},%{_sbindir},%{_libdir}} \ + $RPM_BUILD_ROOT{%{_webappdir}/{custom_field,templates,workflow},%{_sysconfdir},%{_bindir},%{_sbindir},%{_libdir}} \ $RPM_BUILD_ROOT/etc/{rc.d/init.d,cron.d,logrotate.d,sysconfig} \ $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/usr/lib/tmpfiles.d + $RPM_BUILD_ROOT/var/lib/%{name}/{routed_{emails,drafts,notes},storage} \ + $RPM_BUILD_ROOT%{systemdtmpfilesdir} -%{__make} install-eventum install-cli install-irc install-scm install-jpgraph 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 + +install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} +cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} + %{?with_order:cp -a htdocs/ajax $RPM_BUILD_ROOT%{_appdir}/htdocs} touch $RPM_BUILD_ROOT%{_webappdir}/htpasswd @@ -524,7 +462,7 @@ cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/httpd.conf cp -p %{SOURCE15} $RPM_BUILD_ROOT%{_webappdir}/lighttpd.conf install -d $RPM_BUILD_ROOT/etc/sphinx -cp -p config/sphinx.conf $RPM_BUILD_ROOT/etc/sphinx/%{name}.conf +#cp -p config/sphinx.conf $RPM_BUILD_ROOT/etc/sphinx/%{name}.conf cp -p config/sphinx.conf.php $RPM_BUILD_ROOT%{_webappdir} cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-queue @@ -533,8 +471,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 @@ -543,39 +479,34 @@ cp -p %{SOURCE14} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} # postfix router install -p %{SOURCE13} $RPM_BUILD_ROOT%{_libdir}/router-postfix -install %{SOURCE17} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf - -%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale/ht +cp -p %{SOURCE17} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf %find_lang %{name} -# scm -install -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php - -# old compat -ln -s %{_sbindir}/eventum-cvs-hook $RPM_BUILD_ROOT%{_libdir}/process_cvs_commits -ln -s %{_sbindir}/eventum-svn-hook $RPM_BUILD_ROOT%{_libdir}/process_svn_commits - -# skip pear for cli -rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/cli -cp -a cli/lib/eventum $RPM_BUILD_ROOT%{_datadir}/%{name}/cli - %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 -# database update -%{_appdir}/upgrade/update-database.php || : +# run database update if configured +test -s %{_webappdir}/config.php && \ +sudo -H -u http -- %{_appdir}/bin/upgrade.php || : # nuke Smarty templates cache after upgrade rm -f /var/cache/eventum/*.php @@ -590,24 +521,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" ]; then - chmod 640 %{_webappdir}/{config,private_key}.php - chown root:http %{_webappdir}/{config,private_key}.php +if [ "$1" = "0" ] && [ -f %{_webappdir}/config.php ]; then + chmod 640 %{_webappdir}/{config,private_key,secret_key}.php + chown root:http %{_webappdir}/{config,private_key,secret_key}.php fi %post irc @@ -638,36 +565,31 @@ fi %triggerun -- lighttpd %webapp_unregister lighttpd %{_webapp} -%triggerpostun -- %{name} < 2.2-2.57 -# switching eventum->http user -chgrp http %{_webappdir}/config.php -chgrp http %{_webappdir}/private_key.php -chgrp http %{_webappdir}/setup.php -chgrp http /var/log/%{name}/* -# update crontab user -for a in /etc/cron.d/eventum-*; do - [ -f "$a" ] || continue - awk '!/#/ && NR > 6 && $6 =="eventum" {sub("eventum", "http", $6)}{print}' $a > $a.rpmtmp && cat $a.rpmtmp > $a - rm -f $a.rpmtmp - - # crontabs moved to crons subdir +%triggerpostun -- %{name} < 3.0.0-0.2 +for f in /etc/cron.d/eventum-*; do + # crontabs moved to bin %{__sed} -i -e ' - s,/usr/share/eventum/process_mail_queue.php,/usr/share/eventum/crons/process_mail_queue.php, - s,/usr/share/eventum/download_emails.php,/usr/share/eventum/crons/download_emails.php, - s,/usr/share/eventum/check_reminders.php,/usr/share/eventum/crons/check_reminders.php, - s,/usr/share/eventum/monitor.php,/usr/share/eventum/crons/monitor.php, - ' $a + s,/usr/share/eventum/crons/process_mail_queue.php,%{_appdir}/bin/process_mail_queue.php, + s,/usr/share/eventum/crons/download_emails.php,%{_appdir}/bin/download_emails.php, + s,/usr/share/eventum/crons/check_reminders.php,%{_appdir}/bin/check_reminders.php, + s,/usr/share/eventum/crons/monitor.php,%{_appdir}/bin/monitor.php, + ' $f done %files -f %{name}.lang %defattr(644,root,root,755) -%doc docs/* htdocs/setup/schema.sql -%attr(751,root,root) %dir %{_webappdir} +%attr(771,root,http) %dir %{_webappdir} +%attr(751,root,http) %dir %{_webappdir}/crm +%attr(751,root,http) %dir %{_webappdir}/custom_field +%attr(751,root,http) %dir %{_webappdir}/partner +%attr(751,root,http) %dir %{_webappdir}/templates +%attr(751,root,http) %dir %{_webappdir}/workflow %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/apache.conf %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/httpd.conf %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 @@ -676,11 +598,23 @@ done %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}/crons +%dir %{_appdir} +%{_appdir}/config + +%dir %{_appdir}/bin +%attr(755,root,root) %{_appdir}/bin/extension.php +%attr(755,root,root) %{_appdir}/bin/ldapsync.php +%attr(755,root,root) %{_appdir}/bin/process_all_emails.php +%attr(755,root,root) %{_appdir}/bin/upgrade.php + +%{_appdir}/autoload.php +%{_appdir}/globals.php %{_appdir}/init.php +%{_appdir}/phinx.php %dir %{_appdir}/htdocs %{_appdir}/htdocs/*.php %{_appdir}/htdocs/*.ico +%{_appdir}/htdocs/ajax %{_appdir}/htdocs/css %{_appdir}/htdocs/customer %{_appdir}/htdocs/images @@ -688,75 +622,74 @@ done %{_appdir}/htdocs/manage %{_appdir}/htdocs/reports %{_appdir}/htdocs/rpc -%{_appdir}/htdocs/misc -%if %{with order} -%{_appdir}/htdocs/ajax -%endif +%{_appdir}/htdocs/components %{_appdir}/templates -%dir %{_appdir}/upgrade -%{_appdir}/upgrade/init.php -%attr(755,root,root) %{_appdir}/upgrade/update-database.php -%dir %{_appdir}/upgrade/v* -%attr(755,root,root) %{_appdir}/upgrade/v*/*.php -%{_appdir}/upgrade/patches +%dir %{_appdir}/db +%dir %{_appdir}/db/migrations +%{_appdir}/db/migrations/*.php +%{_appdir}/res +%{_appdir}/src +%{_appdir}/vendor %dir %{_appdir}/lib %{_appdir}/lib/eventum -%{_appdir}/lib/jpgraph -%exclude %{_appdir}/lib/eventum/class.monitor.php -/usr/lib/tmpfiles.d/%{name}.conf -%dir %attr(730,root,http) /var/run/%{name} -%dir %attr(730,root,http) /var/cache/%{name} +%exclude %{_appdir}/src/Console/Command/MailDownloadCommand.php +%exclude %{_appdir}/src/Console/Command/MailQueueProcessCommand.php +%exclude %{_appdir}/src/Console/Command/MailQueueTruncateCommand.php +%exclude %{_appdir}/src/Console/Command/MonitorCommand.php +%exclude %{_appdir}/src/Console/Command/ReminderCheckCommand.php -%files base -%defattr(644,root,root,755) -%attr(751,root,root) %dir %{_sysconfdir} %dir %{_libdir} -%dir %{_appdir} + +%{systemdtmpfilesdir}/%{name}.conf + %dir /var/lib/%{name} +%dir %attr(730,root,http) /var/run/%{name} +%dir %attr(730,root,http) /var/cache/%{name} + # saved mail copies %attr(770,root,http) %dir /var/lib/%{name}/routed_emails %attr(770,root,http) %dir /var/lib/%{name}/routed_drafts %attr(770,root,http) %dir /var/lib/%{name}/routed_notes +# attachment storage +%attr(770,root,http) %dir /var/lib/%{name}/storage %files setup %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}/crons/process_mail_queue.php +%{_appdir}/src/Console/Command/MailQueueProcessCommand.php +%{_appdir}/src/Console/Command/MailQueueTruncateCommand.php +%attr(755,root,root) %{_appdir}/bin/process_mail_queue.php +%attr(755,root,root) %{_appdir}/bin/truncate_mail_queue.php %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-mail-queue %files mail-download %defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/crons/download_emails.php +%{_appdir}/src/Console/Command/MailDownloadCommand.php +%attr(755,root,root) %{_appdir}/bin/download_emails.php %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-mail-download %files reminder %defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/crons/check_reminders.php +%{_appdir}/src/Console/Command/ReminderCheckCommand.php +%attr(755,root,root) %{_appdir}/bin/check_reminders.php %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-reminder %files monitor %defattr(644,root,root,755) -%{_appdir}/lib/eventum/class.monitor.php -%attr(755,root,root) %{_appdir}/crons/monitor.php +%{_appdir}/src/Console/Command/MonitorCommand.php +%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}/route_drafts.php - -%files route-emails -%defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/route_emails.php - -%files route-notes -%defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/route_notes.php - %files router-postfix %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/router-postfix @@ -765,25 +698,16 @@ 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 %defattr(644,root,root,755) %doc cli/eventumrc %attr(755,root,root) %{_bindir}/%{name} -%{_appdir}/cli - -%files scm -%defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scm.php -%attr(755,root,root) %{_libdir}/process_cvs_commits -%attr(755,root,root) %{_libdir}/process_svn_commits -%attr(755,root,root) %{_sbindir}/eventum-cvs-hook -%attr(755,root,root) %{_sbindir}/eventum-svn-hook %files sphinx %defattr(644,root,root,755) %{_webappdir}/sphinx.conf.php -%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) /etc/sphinx/%{name}.conf +#%attr(750,root,http) %config(noreplace) %verify(not md5 mtime size) /etc/sphinx/%{name}.conf %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-sphinx