%bcond_with qmail # build the router-qmail subpackage
%bcond_with order_patch # with custom issue order patch
-#define _snap 20060330
+%define _snap 20060724
#define _rc RC3
-%define _rel 2.23
+%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.1
-Release: %{?_snap:0.%{_snap}.}%{?_rc:%{_rc}.}%{_rel}
+Release: %{?_rc:%{_rc}.}%{_rel}%{?_snap:.%{_snap}}
License: GPL
Group: Applications/WWW
-#Source0: http://downloads.mysql.com/snapshots/eventum/%{name}-nightly-%{_snap}.tar.gz
-Source0: http://mysql.dataphone.se/Downloads/eventum/%{name}-%{version}.tar.gz
-# Source0-md5: e1845de39b4d9bd30ddec9c26031a7d5
+Source0: http://downloads.mysql.com/snapshots/eventum/%{name}-nightly-%{_snap}.tar.gz
+# Source0-md5: fb5e53aa24cff295490ba8f5a058a826
Source1: %{name}-apache.conf
Source2: %{name}-mail-queue.cron
Source3: %{name}-mail-download.cron
Source13: %{name}-upgrade.sh
Source14: %{name}-router-postfix.sh
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
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
Requires: php-pear-Text_Diff
Requires: php-pear-XML_RPC
Requires: php-session
+Requires: smarty-gettext
Requires: webapps
+Requires: webserver(access)
+Requires: webserver(alias)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%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 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
%patch15 -p1
%patch16 -p1
%patch17 -p1
+%patch18 -p1
+#%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
# packaging
%patch100 -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
# 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 \
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 %{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
%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}
%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