-# 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 4413
-%define rel 2.1
-%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: d5b7d65199ebf8b1432f3429532efd07
+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
Source13: %{name}-router-postfix.sh
Source14: %{name}.logrotate
Source15: %{name}-lighttpd.conf
Source16: http://www.isocra.com/images/updown2.gif
# Source16-md5: deb6eeb2552ba757d3a949ed10c4107d
-Patch0: %{name}-lf.patch
+Source17: %{name}.tmpfiles
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
-Conflicts: logrotate < 3.7-4
+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(/etc/webapps/.*) pear(%{_appdir}/.*) pear(jpgraph_dir.php) pear(.*Smarty.class.php) pear(Services/JSON.php) pear(class.date_helper.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
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
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
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-<number>@<domain>) 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-<liczba>@<domena>) 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-<number>@<domain>) 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-<numer>@<domena>) 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-<number>@<domain>) 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-<numer>@<domena>) 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
via Postfix.
The Postfix configuration instructions you can find from
-<http://eventum.mysql.org/wiki/index.php/Setting_up_email_routing_with_postfix>.
+<https://github.com/eventum/eventum/wiki/System-Admin:-Setting-up-email-routing-with-postfix>
%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
-<http://eventum.mysql.org/wiki/index.php/Setting_up_email_routing_with_postfix>.
+<https://github.com/eventum/eventum/wiki/System-Admin:-Setting-up-email-routing-with-postfix>
%package irc
Summary: Eventum IRC Notification Bot
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
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
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
+%package sphinx
+Summary: Eventum Sphinx Search
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
-</eventum/help.php?topic=scm_integration_installation>.
-
-%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.
+Requires: %{name} = %{version}-%{release}
+Requires: crondaemon
+Requires: sphinx
-Integracja jest zaimplementowana tak, aby być kompatybilna w przód z
-prawie każdym systemem SCM, jak np. CVS.
+%description sphinx
+Sphinx search integration for Eventum.
-Szczegóły na temat instalacji można przeczytać pod
-</eventum/help.php?topic=scm_integration_installation>.
+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
+<?php
+define('APP_SQL_DBTYPE', 'mysql');
+define('APP_SQL_DBHOST', 'localhost:/var/lib/mysql/mysql.sock');
+define('APP_SQL_DBPORT', 3306);
+define('APP_SQL_DBNAME', 'eventum');
+define('APP_SQL_DBUSER', 'mysql');
+define('APP_SQL_DBPASS', '');
+define('APP_TABLE_PREFIX', 'eventum_');
+EOF
+php config/sphinx.conf.php > config/sphinx.conf
+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
%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/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
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/apache.conf
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.php $RPM_BUILD_ROOT%{_webappdir}
cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-queue
cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-download
cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/%{name}-reminder
cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/cron.d/%{name}-monitor
-
-cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_webappdir}/irc_config.php
+cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/cron.d/%{name}-sphinx
install -p %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/eventum-irc
cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc
# postfix router
install -p %{SOURCE13} $RPM_BUILD_ROOT%{_libdir}/router-postfix
-%{__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
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
%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
-%{_webappdir}/sphinx.conf.php
%dir %attr(731,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}/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
%{_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
+%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
+
+%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
%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
%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
+%files sphinx
%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
+%{_webappdir}/sphinx.conf.php
+#%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