X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=eventum.spec;h=5db69004b50e4628fe7d71c7fed40dbadb8615dd;hb=92bc2f5d273ae1b0472d639b2f4d01fd263fb570;hp=57bf903929bebd01c37194564c3ed5cee72fc5d4;hpb=9cda74589eb8274cd8a7c41b40a2f26cd0995eb8;p=packages%2Feventum.git diff --git a/eventum.spec b/eventum.spec index 57bf903..5db6900 100644 --- a/eventum.spec +++ b/eventum.spec @@ -9,25 +9,17 @@ # Conditional build: %bcond_without order # with experimental order patch -#define snap 20060921 -%define rev r3903 -%define rel 2.29 -#define _rc RC3 - +%define php_min_version 5.1.2 %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: 2.2 -Release: %{?_rc:%{_rc}.}%{rel}%{?snap:.%{snap}}%{?rev:.%{rev}} -License: GPL +Version: 2.3.4 +Release: 1 +License: GPL v2 Group: Applications/WWW -#Source0: http://downloads.mysql.com/snapshots/eventum/%{name}-nightly-%{snap}.tar.gz -#Source0: http://eventum.mysql.org/downloads/eventum-2.0.RC3.tar.gz -#Source0: http://mysql.easynet.be/Downloads/eventum/%{name}-%{version}.tar.gz -# bzr branch lp:eventum eventum && tar -cjf eventum.tar.bz2 --exclude=.bzr --exclude=.bzrignore eventum -Source0: eventum-%{version}-dev-%{rev}.tar.gz -# Source0-md5: 30160fd1733dc845e5242af878bfe36f +Source0: https://launchpad.net/eventum/trunk/%{version}/+download/%{name}-%{version}.tar.gz +# Source0-md5: f64a6cd054356513f6ff701be765600e Source1: %{name}-apache.conf Source2: %{name}-mail-queue.cron Source3: %{name}-mail-download.cron @@ -37,13 +29,18 @@ 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 +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 +# Patch4-md5: 17688773ec035fb162b6a8ad2c7cfa76 # packaging patches that probably never go upstream Patch100: %{name}-paths.patch Patch101: %{name}-cvs-config.patch @@ -52,24 +49,25 @@ Patch107: %{name}-gettext.patch # some tests Patch200: %{name}-fixed-nav.patch URL: http://eventum.mysql.org/ +BuildRequires: /usr/bin/php BuildRequires: gettext-devel BuildRequires: rpm-php-pearprov >= 4.0.2-98 -BuildRequires: rpmbuild(macros) >= 1.461 +BuildRequires: rpmbuild(macros) >= 1.654 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: php-common >= 4:5.0 -Requires: php-gd -Requires: php-iconv -Requires: php-imap -Requires: php-mbstring -Requires: php-mysql -Requires: php-pcre +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(pcre) +Requires: php(session) Requires: php-pear-DB Requires: php-pear-Date -Requires: php-pear-HTTP_Request Requires: php-pear-Mail Requires: php-pear-Mail_Mime Requires: php-pear-Mail_mimeDecode @@ -88,11 +86,18 @@ Requires: webserver(access) Requires: webserver(alias) Requires: webserver(indexfile) Requires: webserver(php) >= 4.2.0 -Conflicts: logrotate < 3.7-4 +Suggests: localedb +Suggests: php-pear-Net_LDAP2 +Conflicts: logrotate < 3.8.0 BuildArch: noarch BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _noautoreq 'pear(init.php)' 'pear(/etc/webapps/.*)' 'pear(%{_appdir}/.*)' 'pear(jpgraph_dir.php)' 'pear(.*Smarty.class.php)' +%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 + +# exclude optional php dependencies +%define _noautophp php-gnupg php-hash php-pecl-http php-tk + +%define _noautoreq %{_noautophp} %define _libdir %{_prefix}/lib/%{name} %define _appdir %{_datadir}/%{name} @@ -265,19 +270,19 @@ 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. +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ń. +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 @@ -288,17 +293,17 @@ 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. +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 +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 @@ -313,17 +318,17 @@ 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. +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 +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 @@ -357,7 +362,6 @@ Summary: Eventum IRC Notification Bot Summary(pl.UTF-8): 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(sockets) Requires: php-pear-Net_SmartIRC @@ -392,8 +396,8 @@ Summary: Eventum command-line interface Summary(pl.UTF-8): Interfejs linii poleceń dla Eventum Group: Applications/WWW Requires: %{name}-base = %{version}-%{release} +Requires: php(core) >= %{php_min_version} Requires: php-cli -Requires: php-common >= 4:5.0 Requires: php-pear-XML_RPC %description cli @@ -409,9 +413,9 @@ 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(pcre) Requires: php-cli -Requires: php-common >= 4:5.0 -Requires: php-pcre %description scm This feature allows your software development teams to integrate your @@ -434,9 +438,24 @@ 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 +Requires: %{name} = %{version}-%{release} +Requires: crondaemon +Requires: sphinx + +%description sphinx +Sphinx search integration for Eventum. + +This package contains the cron job. + %prep %setup -q +# 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 @@ -445,23 +464,34 @@ rm -r upgrade/{*/,}index.html # not needed in PLD Linux # bug fixes / features %patch0 -p1 %{?with_order:%patch2 -p1} +%patch3 -p0 +%patch4 -p1 -cp -a %{SOURCE16} images +cp -p %{SOURCE16} htdocs/images #%patch200 -p1 +# produce default sphinx config +# must be run before paths.patch +cat <<'EOF' > config/config.php + config/sphinx.conf +rm -f config/config.php + # packaging %patch100 -p1 %patch101 -p1 %patch105 -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 - %{__sed} -i -e " s;define('CONFIG_PATH'.*');define('CONFIG_PATH', '%{_webappdir}'); " upgrade/{*/,}*.php @@ -476,11 +506,12 @@ find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v 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/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%{systemdtmpfilesdir} %{__make} install-eventum install-cli install-irc install-scm install-jpgraph install-localization \ sysconfdir=%{_webappdir} \ @@ -489,29 +520,38 @@ install -d \ %{?with_order:cp -a htdocs/ajax $RPM_BUILD_ROOT%{_appdir}/htdocs} touch $RPM_BUILD_ROOT%{_webappdir}/htpasswd -cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/apache.conf -cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/httpd.conf -cp -a %{SOURCE15} $RPM_BUILD_ROOT%{_webappdir}/lighttpd.conf +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 -cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-queue -cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.d/%{name}-mail-download -cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/%{name}-reminder -cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/cron.d/%{name}-monitor +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 -a %{SOURCE7} $RPM_BUILD_ROOT%{_webappdir}/irc_config.php +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 %{SOURCE10} $RPM_BUILD_ROOT/etc/cron.d/%{name}-sphinx -cp -a %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/eventum-irc -cp -a %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc +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 + +cp -p %{SOURCE14} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} # postfix router -install %{SOURCE13} $RPM_BUILD_ROOT%{_libdir}/router-postfix +install -p %{SOURCE13} $RPM_BUILD_ROOT%{_libdir}/router-postfix + +cp -p %{SOURCE17} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf -install -D %{SOURCE14} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} +%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/ht %find_lang %{name} # scm -install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php +install -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php # old compat ln -s %{_sbindir}/eventum-cvs-hook $RPM_BUILD_ROOT%{_libdir}/process_cvs_commits @@ -528,74 +568,24 @@ rm -rf $RPM_BUILD_ROOT %addusertogroup http %{name} %post -# check if the package is configured. -if grep -q "Header('Location: setup/')" %{_webappdir}/config.php; then -if [ -f %{_appdir}/htdocs/setup/index.php ]; then -%banner %{name} -e < -If you need access from elsewhere, you need to edit -%{_webappdir}/apache.conf and restart apache. - -IMPORTANT: When You have configured Eventum, please uninstall the -setup package, so that %{name}-setup is able to secure your Eventum -installation. - -EOF -#' vim syntax hack -else -%banner %{name} -e <. -If you need access from elsewhere, you need to edit -%{_webappdir}/*.conf depending on webserver and restart the webserver. - -IMPORTANT: When You have configured Eventum, please uninstall the -setup package, so that %{name}-setup is able to secure your Eventum -installation. - -EOF -#' vim syntax hack -fi - -elif grep -q 'DEFAULTPRIVATEKEY' %{_webappdir}/private_key.php; then -%banner %{name} -e <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 + %{__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 +done + %files -f %{name}.lang %defattr(644,root,root,755) -%doc ChangeLog FAQ INSTALL README UPGRADE CONTRIB -%doc docs/* htdocs/setup/schema.sql mysql-permissions.sql +%doc docs/* htdocs/setup/schema.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}/config.php +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webappdir}/private_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 -%dir %attr(731,root,eventum) /var/log/%{name} -%attr(620,root,eventum) %ghost /var/log/%{name}/* +%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 %{_appdir}/init.php %dir %{_appdir}/htdocs %{_appdir}/htdocs/*.php @@ -688,6 +699,7 @@ fi %dir %{_appdir}/upgrade %{_appdir}/upgrade/init.php %attr(755,root,root) %{_appdir}/upgrade/update-database.php +%attr(755,root,root) %{_appdir}/upgrade/ldap_import.php %dir %{_appdir}/upgrade/v* %attr(755,root,root) %{_appdir}/upgrade/v*/*.php %{_appdir}/upgrade/patches @@ -696,20 +708,20 @@ fi %{_appdir}/lib/eventum %{_appdir}/lib/jpgraph %exclude %{_appdir}/lib/eventum/class.monitor.php - -%dir %attr(730,root,eventum) /var/run/%{name} -%dir %attr(730,root,eventum) /var/cache/%{name} +%{systemdtmpfilesdir}/%{name}.conf +%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} -%attr(755,root,root) %dir /var/lib/%{name} +%dir /var/lib/%{name} # saved mail copies -%attr(770,root,eventum) %dir /var/lib/%{name}/routed_emails -%attr(770,root,eventum) %dir /var/lib/%{name}/routed_drafts -%attr(770,root,eventum) %dir /var/lib/%{name}/routed_notes +%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 %files setup %defattr(644,root,root,755) @@ -717,23 +729,23 @@ fi %files mail-queue %defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/process_mail_queue.php +%attr(755,root,root) %{_appdir}/crons/process_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}/download_emails.php +%attr(755,root,root) %{_appdir}/crons/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}/check_reminders.php +%attr(755,root,root) %{_appdir}/crons/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}/monitor.php +%attr(755,root,root) %{_appdir}/crons/monitor.php %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}-monitor %files route-drafts @@ -772,3 +784,9 @@ fi %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(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