-# 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_with order # with experimental order patch
+%define rel 1.13
+%define subver 305
+%define githash b67258d
%define php_min_version 5.3.3
%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.0
-Release: 0.1
+Version: 3.0.3
+Release: %{?subver:1.%{subver}.%{?githash:g%{githash}.}}%{rel}
License: GPL v2
Group: Applications/WWW
-Source0: %{name}-2.4.0-pre1-474-g45f7853.tar.gz
-# Source0-md5: acfe413a3a9b530b301cf37e0bb43064
+#Source0: https://github.com/eventum/eventum/releases/download/v%{version}/%{name}-%{version}.tar.gz
+Source0: %{name}-%{version}-%{subver}-g%{githash}.tar.gz
+# Source0-md5: 5937959683a82b3f083f092a8408d037
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
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-tools
+BuildRequires: gettext-devel
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: Smarty >= 2.6.10-4
-Requires: Smarty-plugin-gettext
+Requires: fonts-TTF-RedHat-liberation
Requires: php(core) >= %{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(mysqli)
Requires: php(pcre)
Requires: php(session)
+Requires: php-Smarty >= 3.1
+Requires: php-Smarty-plugin-gettext
Requires: php-pear-DB
-Requires: php-pear-Date
Requires: php-pear-Mail
Requires: php-pear-Mail_Mime
Requires: php-pear-Mail_mimeDecode
Requires: php-pear-PEAR-core
Requires: php-pear-Text_Diff
Requires: php-pear-XML_RPC
+Requires: phplot >= 5.8.0
Requires: webapps
Requires: webserver(access)
Requires: webserver(alias)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _noautoreq_pear ../init.php init.php /usr/share/eventum/init.php /etc/webapps/.* %{_appdir}/.* jpgraph_dir.php .*Smarty.class.php Services/JSON.php class.date_helper.php sphinxapi.php Net/LDAP2.php
+%define _noautoreq_pear ../init.php ../../init.php init.php /usr/share/eventum/init.php /etc/webapps/.* %{_appdir}/.* .*Smarty.class.php Services/JSON.php class.date_helper.php sphinxapi.php Net/LDAP2.* Auth/SASL.* Util.php smarty_internal.*
# exclude optional php dependencies
%define _noautophp php-gnupg php-hash php-pecl-http php-tk
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
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
Requires: rc-scripts >= 0.4.0.18
%description irc
Group: Applications/WWW
Requires: %{name}-base = %{version}-%{release}
Requires: php(core) >= %{php_min_version}
+Requires: php(phar)
Requires: php-pear-XML_RPC
%description cli
Summary: Eventum SCM integration
Summary(pl.UTF-8): Integracja SCM dla Eventum
Group: Applications/WWW
-Requires: %{name}-base = %{version}-%{release}
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
This package contains the cron job.
%prep
-%setup -qc
-mv eventum-*/* .
+%setup -q -n %{name}-%{version}%{?githash:-%{subver}-g%{githash}}
+
+mv docs/examples .
# GPL v2
rm docs/COPYING
# bug fixes / features
-#%patch0 -p1
%{?with_order:%patch2 -p1}
#%patch3 -p0
#%patch4 -p1
# packaging
%patch100 -p1
-#%patch101 -p1
-%patch105 -p1
+%patch101 -p1
%patch107 -p1
-
-%{__sed} -i -e "
-s;define('CONFIG_PATH'.*');define('CONFIG_PATH', '%{_webappdir}');
-" upgrade/{*/,}*.php
+%patch108 -p1
+
+# 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/{password-compat,random-lib,security-lib}
+vendor zendframework/zend-config
# 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%{_appdir}/{include,htdocs/misc,upgrade} \
$RPM_BUILD_ROOT%{systemdtmpfilesdir}
-%{__make} install-eventum install-irc install-scm install-jpgraph install-localization \
+%{__make} install-eventum install-cli install-scm 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 %{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
+cp -p config/irc_config.dist.php $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
# scm
cp -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 -r $RPM_BUILD_ROOT%{_datadir}/%{name}/cli
-#cp -a cli/lib/eventum $RPM_BUILD_ROOT%{_datadir}/%{name}/cli
-
%clean
rm -rf $RPM_BUILD_ROOT
%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 \
+ 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
%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/*
%attr(751,root,root) %dir %{_webappdir}
+%attr(751,root,root) %dir %{_webappdir}/custom_field
+%attr(751,root,root) %dir %{_webappdir}/templates
+%attr(751,root,root) %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(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}
+%{_appdir}/config
+
%dir %{_appdir}/bin
-%attr(755,root,root) %{_appdir}/bin/download_emails.php
%attr(755,root,root) %{_appdir}/bin/process_all_emails.php
+%{_appdir}/autoload.php
%{_appdir}/init.php
%dir %{_appdir}/htdocs
%{_appdir}/htdocs/*.php
%attr(755,root,root) %{_appdir}/upgrade/scm_trac_import.php
%{_appdir}/upgrade/patches
+%{_appdir}/vendor
+
%dir %{_appdir}/lib
%{_appdir}/lib/eventum
-%{_appdir}/lib/jpgraph
%exclude %{_appdir}/lib/eventum/class.monitor.php
+
%{systemdtmpfilesdir}/%{name}.conf
%dir %attr(730,root,http) /var/run/%{name}
%dir %attr(730,root,http) /var/cache/%{name}
%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
+%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(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
+%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) %{_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-git-hook
%attr(755,root,root) %{_sbindir}/eventum-svn-hook
+%attr(755,root,root) %{_sbindir}/helpers.php
%files sphinx
%defattr(644,root,root,755)