#
# Conditional build:
%bcond_with qmail # build the router-qmail subpackage
-#
-# snapshot: DATE
-%define _snap 20060329
+%bcond_with order_patch # with custom issue order patch
-%define _rel 0.2
+%define _snap 20060724
+#define _rc RC3
+%define _rel 2.72
%include /usr/lib/rpm/macros.php
Summary: Eventum Issue / Bug tracking system
Summary(pl): Eventum - system ¶ledzenia spraw/b³êdów
Name: eventum
-Version: 1.7.0
-Release: %{?_snap:4.%{_snap}.}%{?_rc:%{_rc}.}%{_rel}
+Version: 1.7.1
+Release: %{?_rc:%{_rc}.}%{_rel}%{?_snap:.%{_snap}}
License: GPL
Group: Applications/WWW
-#Source0: http://mysql.dataphone.se/Downloads/%{name}/%{name}-%{version}.tar.gz
Source0: http://downloads.mysql.com/snapshots/eventum/%{name}-nightly-%{_snap}.tar.gz
-# Source0-md5: 70047a7b5235812a0a21298ea0c92421
+# Source0-md5: fb5e53aa24cff295490ba8f5a058a826
Source1: %{name}-apache.conf
Source2: %{name}-mail-queue.cron
Source3: %{name}-mail-download.cron
Source12: %{name}-config-setup.php
Source13: %{name}-upgrade.sh
Source14: %{name}-router-postfix.sh
-Patch0: %{name}-paths.patch
-Patch1: %{name}-cvs-config.patch
-Patch2: %{name}-irc-config.patch
-Patch3: %{name}-PEAR.patch
-Patch4: http://glen.alkohol.ee/pld/%{name}-reply-subject.patch
-Patch5: %{name}-lf.patch
-Patch6: http://glen.alkohol.ee/pld/%{name}-maq-subject.patch
-Patch7: %{name}-bot-reconnect.patch
-Patch8: %{name}-perms.patch
-Patch9: http://glen.alkohol.ee/pld/%{name}-httpclient-clientside.patch
-Patch10: %{name}-cli-wr-separated.patch
-Patch12: %{name}-htmloptions-truncate.patch
-Patch13: %{name}-link_filter-updates.patch
-Patch14: %{name}-irc-mem.patch
-Patch16: %{name}-recent_activity-usability.patch
-Patch17: http://glen.alkohol.ee/pld/%{name}-upload-error-keep-popup.patch
-Patch18: http://glen.alkohol.ee/pld/%{name}-scm-parse-response.patch
-Patch19: %{name}-double-decode.patch
-Patch20: http://glen.alkohol.ee/pld/%{name}-keep-submitbutton.patch
-Patch21: http://glen.alkohol.ee/pld/%{name}-tt-unhide.patch
-Patch22: %{name}-route-mem.patch
-Patch23: http://glen.alkohol.ee/pld/%{name}-msgid-case.patch
-Patch24: http://glen.alkohol.ee/pld/%{name}-route-and-download.patch
-Patch25: %{name}-scm-pluscharisbad.patch
-Patch26: %{name}-scm-updates.patch
+Source15: %{name}.logrotate
+Source16: %{name}-lighttpd.conf
+Source17: http://eventum.mysql.org/patches/process_svn_commits_new.phps
+# Source17-md5: 48a1bc003907101e4052e5232047e6b2
+Patch0: %{name}-lf.patch
+Patch1: %{name}-perms.patch
+Patch2: %{name}-cli-wr-separated.patch
+Patch3: %{name}-scm-parse-response.patch
+Patch4: %{name}-double-decode.patch
+Patch5: %{name}-route-mem.patch
+Patch6: %{name}-scm-pluscharisbad.patch
+Patch7: %{name}-scm-updates.patch
+Patch8: %{name}-close-signature.patch
+Patch9: %{name}-list-sorting.patch
+Patch10: %{name}-workflow-handlenewnote-note_id.patch
+Patch11: %{name}-order4b.patch
+Patch12: %{name}-cli-errorcheck.patch
+Patch13: %{name}-combined.patch
+Patch14: %{name}-xml-inline.patch
+Patch15: %{name}-timetracking-advanced-logic.patch
+Patch16: %{name}-timedisplay.patch
+Patch17: %{name}-bug-17267.patch
+Patch18: %{name}-compact-issue-display.patch
+Patch19: %{name}-fixed-nav.patch
+Patch20: %{name}-scm-ssl.patch
+Patch21: %{name}-scm-quick-out.patch
+Patch22: %{name}-mem-limits.patch
+Patch23: %{name}-backtraces.patch
+Patch24: %{name}-errorhandler.patch
+Patch25: http://glen.alkohol.ee/pld/eventum/upgrade-2.0.patch
+Patch26: %{name}-tpl-fixes.patch
+Patch27: %{name}-xss.patch
+Patch28: %{name}-tpl-fixes2.patch
+Patch29: %{name}-svn.patch
+# packaging patches that probably never go upstream
+Patch100: %{name}-paths.patch
+Patch101: %{name}-cvs-config.patch
+Patch102: %{name}-irc-mem.patch
+Patch103: %{name}-irc-config.patch
+Patch104: %{name}-PEAR.patch
+Patch105: %{name}-httpclient-clientside.patch
+Patch106: %{name}-bot-reconnect.patch
+Patch107: %{name}-private-key.patch
URL: http://dev.mysql.com/downloads/other/eventum/
BuildRequires: rpm-php-pearprov >= 4.0.2-98
BuildRequires: rpmbuild(macros) >= 1.268
BuildRequires: sed >= 4.0
+Requires(triggerpostun): /usr/bin/php
+Requires(triggerpostun): sed >= 4.0
Requires: %{name}-base = %{version}-%{release}
Requires: Smarty >= 2.6.10-4
+Requires: apache(mod_dir)
Requires: php >= 3:4.2.0
Requires: php-gd
Requires: php-imap
Requires: php-mysql
Requires: php-pcre
-Requires: php-session
Requires: php-pear-Benchmark
Requires: php-pear-DB
Requires: php-pear-Date
Requires: php-pear-PEAR-core
Requires: php-pear-Text_Diff
Requires: php-pear-XML_RPC
-Requires(triggerpostun): /usr/bin/php
-Requires(triggerpostun): sed >= 4.0
-Requires: apache(mod_dir)
+Requires: php-session
+Requires: smarty-gettext
Requires: webapps
-Requires: webserver = apache
+Requires: webserver(access)
+Requires: webserver(alias)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Summary: Eventum IRC Notification Bot
Summary(pl): IRC-owy bot powiadamiaj±cy dla Eventum
Group: Applications/WWW
+Requires(post,preun): /sbin/chkconfig
Requires(triggerpostun): sed >= 4.0
Requires: %{name} = %{version}-%{release}
Requires: php-pear-Net_SmartIRC
Requires: %{name}-base = %{version}-%{release}
Requires: php-cli
Requires: php-common >= 3:4.1.0
-Requires: php-curl
Requires: php-pear-XML_RPC
-Requires: php-xml
%description cli
The Eventum command-line interface allows you to access most of the
%prep
%setup -q %{?_snap:-n %{name}-%{_snap}}
+cp %{SOURCE17} misc/scm/process_svn_commits.php
# undos the source
find . -type f -print0 | xargs -0 sed -i -e 's,\r$,,'
+%patch25 -p1
+
rm -f setup.conf.php # not to be installed by *.php glob
rm -rf misc/upgrade/*v1.[123]* # too old to support in PLD Linux
rm -f misc/upgrade/flush_compiled_templates.php
-rm -rf misc/upgrade/*/upgrade_config.php # not needed nor supported in PLD Linux
+rm -rf misc/upgrade/*/upgrade_config.php # not needed in PLD Linux
+rm -rf misc/upgrade/*/index.html # not needed in PLD Linux
# sample, not used in eventum
rm -f rpc/xmlrpc_client.php
# bug fixes.
-#%patch4 -p1
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%patch6 -p1
+%patch7 -p1
%patch8 -p1
+%patch9 -p1
%patch10 -p1
+%{?with_order_patch:%patch11 -p1}
%patch12 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
-%patch19 -p1
+#%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
-%patch25 -p1
%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
# packaging
-%patch0 -p1
-%patch1 -p1
-%patch14 -p1
-%patch2 -p1
-%patch3 -p1
-%patch9 -p1
-%patch7 -p1
-%patch5 -p1
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+
+cat <<'EOF'> mysql-permissions.sql
+# use this schema if you want to grant permissions manually instead of using setup
+# this schema is extracted from setup/index.php.
+GRANT SELECT, UPDATE, DELETE, INSERT, ALTER, DROP, CREATE, INDEX ON eventum.* TO 'eventum'@'localhost' IDENTIFIED BY 'password';
+EOF
+
+mv misc/localization/de{_DE,}
+mv misc/localization/es{_ES,}
+mv misc/localization/fi{_FI,}
+mv misc/localization/fr{_FR,}
+mv misc/localization/it{_IT,}
+mv misc/localization/nl{_NL,}
+mv misc/localization/ru{_RU,}
+
+# oops, the file got truncated - quick fix
+cp misc/localization/eventum.po misc/localization/de/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/es/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/fi/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/fr/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/it/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/nl/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/ru/LC_MESSAGES/eventum.po
+cp misc/localization/eventum.po misc/localization/en_US/LC_MESSAGES/eventum.po
sed -e '1s,#!.*/bin/php -q,#!%{_bindir}/php,' misc/cli/eventum > %{name}-cli
-sed -e '1i#!%{_bindir}/php' misc/scm/process_cvs_commits.php > %{name}-scm
+sed -e '1i#!%{_bindir}/php' misc/scm/process_cvs_commits.php > process_cvs_commits
+sed -e '1i#!%{_bindir}/php' misc/scm/process_svn_commits.php > process_svn_commits
sed -e '1i#!%{_bindir}/php' misc/irc/bot.php > %{name}-bot
mv misc/cli/eventumrc_example eventumrc
sed -i -e '1i#!%{_bindir}/php' misc/*.php
chmod +x misc/*.php
-
-sed -e '
-s,$private_key\s*=\s*".*";,$private_key = "DEFAULTPRIVATEKEYPLEASERUNSETUP!";,
-' < include/private_key.php > private_key.php.in
-rm -f include/private_key.php
+mv include/private_key.php private_key.php.in
# replace in remaining scripts config.inc.php to system one
grep -rl 'include_once(".*config.inc.php")' . | xargs sed -i -e '
# remove backups from patching as we use globs to package files to buildroot
find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v
+%build
+cd misc/localization
+for a in */LC_MESSAGES; do
+ msgfmt -o $a/eventum.mo $a/eventum.po
+done
+
%install
rm -rf $RPM_BUILD_ROOT
install -d \
$RPM_BUILD_ROOT{%{_webappdir},%{_sysconfdir},%{_bindir},%{_sbindir},%{_libdir}} \
$RPM_BUILD_ROOT/etc/{rc.d/init.d,cron.d,sysconfig} \
- $RPM_BUILD_ROOT/var/{run,log,cache,lib}/%{name} \
+ $RPM_BUILD_ROOT/var/{run,cache,lib}/%{name} \
+ $RPM_BUILD_ROOT/var/log/{archiv/,}%{name} \
$RPM_BUILD_ROOT/var/lib/%{name}/routed_{emails,drafts,notes} \
$RPM_BUILD_ROOT%{_appdir}/{include,htdocs/misc,upgrade} \
cp -a misc/*.html $RPM_BUILD_ROOT%{_appdir}/htdocs/misc
cp -a misc/*.php $RPM_BUILD_ROOT%{_appdir}
cp -a templates $RPM_BUILD_ROOT%{_appdir}
-cp -a include/{customer,custom_field,jpgraph,pear,workflow} $RPM_BUILD_ROOT%{_appdir}/include
+cp -a include/{customer,custom_field,jpgraph,workflow} $RPM_BUILD_ROOT%{_appdir}/include
cp -a include/*.php $RPM_BUILD_ROOT%{_appdir}/include
cp -a logs/* $RPM_BUILD_ROOT/var/log/%{name}
cp -a misc/upgrade $RPM_BUILD_ROOT%{_appdir}
install %{name}-bot $RPM_BUILD_ROOT%{_sbindir}
# scm
-install %{name}-scm $RPM_BUILD_ROOT%{_libdir}/scm
-install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/cvs.php
+install process_cvs_commits $RPM_BUILD_ROOT%{_libdir}/process_cvs_commits
+install process_svn_commits $RPM_BUILD_ROOT%{_libdir}/process_svn_commits
+ln -s process_cvs_commits $RPM_BUILD_ROOT%{_libdir}/scm
+install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php
# private key
cp -a private_key.php.in $RPM_BUILD_ROOT%{_webappdir}/private_key.php
+touch $RPM_BUILD_ROOT%{_webappdir}/htpasswd
install %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/apache.conf
install %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/httpd.conf
+install %{SOURCE16} $RPM_BUILD_ROOT%{_webappdir}/lighttpd.conf
install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-queue
install %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-download
install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/%{name}-reminder
install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc
sed -e '
-s,%%{APP_VERSION}%%,%{version}%{?_snap:-%{_snap}},
+s,%%{APP_VERSION}%%,%{version}%{?_snap:-%{_snap}}%{?_rc:-%{_rc}},
s,%%{PHP_PEAR_DIR}%%,%{php_pear_dir},
s,%%{APP_PATH}%%,%{_appdir},
s,%%{SMARTY_DIR}%%,%{_smartydir},
> $RPM_BUILD_ROOT%{_webappdir}/setup.php
mv $RPM_BUILD_ROOT{%{_appdir}/htdocs/config.inc,%{_webappdir}/config}.php
-# provided by PEAR
-rm -rf $RPM_BUILD_ROOT%{_appdir}/include/pear
-
-# use system Smarty
-rm -rf $RPM_BUILD_ROOT%{_appdir}/include/Smarty
install -d $RPM_BUILD_ROOT%{_smartyplugindir}
# These plugins are not in Smarty package (Smarty-2.6.2-3)
cp -a \
# postfix router
install %{SOURCE14} $RPM_BUILD_ROOT%{_libdir}/router-postfix
+install -D %{SOURCE15} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+# locale
+cd misc/localization
+for a in */LC_MESSAGES; do
+ install -d $RPM_BUILD_ROOT%{_datadir}/locale/$a
+ cp -a $a/%{name}.mo $RPM_BUILD_ROOT%{_datadir}/locale/$a
+done
+cd -
+
+#%find_lang %{name}
+
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/chkconfig --add eventum-irc
%service eventum-irc restart "Eventum IRC Bot"
+%preun irc
+if [ "$1" = 0 ]; then
+ %service eventum-irc stop
+ /sbin/chkconfig --del eventum-irc
+fi
+
%triggerin -- apache1
%webapp_register apache %{_webapp}
%triggerun -- apache1
%webapp_unregister apache %{_webapp}
-%triggerin -- apache >= 2.0.0
+%triggerin -- apache < 2.2.0, apache-base
%webapp_register httpd %{_webapp}
-%triggerun -- apache >= 2.0.0
+%triggerun -- apache < 2.2.0, apache-base
%webapp_unregister httpd %{_webapp}
+%triggerin -- lighttpd
+%webapp_register lighttpd %{_webapp}
+
+%triggerun -- lighttpd
+%webapp_unregister lighttpd %{_webapp}
+
# FIXME
# only one upgrade trigger is called if you're upgrading over two
# versions, say 1.5 to 1.5.3, only 1.5.3 trigger is called.
database_changes.php Perform database changes
EOF
+%triggerpostun -- eventum < 1.7.1-2.48.20060717
+%{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.7.1_to_v2.0 <<EOF
+database_changes.php Perform database changes
+EOF
+
%triggerpostun irc -- eventum-irc < 1.6.1-3.14
sed -i -e '
s,\$irc_host,$irc_server_hostname,
mv -f %{_webappdir}/irc.php.rpmsave %{_sysconfdir}/irc.php
fi
+%triggerpostun scm -- %{name}-scm < 1.7.1-2.70.20060724
+if [ -f %{_sysconfdir}/cvs.php.rpmsave ]; then
+ mv -f %{_sysconfdir}/scm.php{,.rpmnew}
+ mv -f %{_sysconfdir}/cvs.php.rpmsave %{_sysconfdir}/scm.php
+fi
+ln -sf process_cvs_commits $RPM_BUILD_ROOT%{_libdir}/scm
+
%files
%defattr(644,root,root,755)
%doc ChangeLog FAQ INSTALL README UPGRADE CONTRIB
-%doc docs/* setup/schema.sql
+%doc docs/* setup/schema.sql mysql-permissions.sql
%attr(751,root,root) %dir %{_webappdir}
%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,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/config.php
%attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/private_key.php
%attr(660,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/setup.php
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/htpasswd
%attr(640,root,eventum) %config %verify(not mtime) %{_webappdir}/core.php
%dir %attr(731,root,eventum) /var/log/%{name}
%attr(620,root,eventum) %ghost /var/log/%{name}/*
+%dir %attr(750,root,root) /var/log/archiv/%{name}
+%config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
%dir %{_appdir}/htdocs
%{_appdir}/htdocs/*.php
%files cli
%defattr(644,root,root,755)
%doc eventumrc
-%attr(644,root,root) %config %verify(not md5 mtime size) %{_sysconfdir}/cli.php
+%config %verify(not md5 mtime size) %{_sysconfdir}/cli.php
%attr(755,root,root) %{_bindir}/%{name}
%{_appdir}/cli
%files scm
%defattr(644,root,root,755)
-%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvs.php
-%attr(755,root,root) %{_libdir}/scm
+%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
+# legacy
+%ghost %{_libdir}/scm