X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=eventum.spec;h=34560038502c8953a349c780d572f3b86d84df31;hb=f8eb4d75f6bdf89556f0658d5c9052d7742000c7;hp=efe16ed3504f19d3b88e8797510d9486869cbb26;hpb=0777bb868539214362dc67b44e7d06427dae4aaa;p=packages%2Feventum.git diff --git a/eventum.spec b/eventum.spec index efe16ed..3456003 100644 --- a/eventum.spec +++ b/eventum.spec @@ -1,28 +1,22 @@ -# 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 4167 -%define rel 4 +%define rel 1.8 +%define subver 144 +%define githash 9fcce7c +%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: 2.3 -Release: %{rel}.bzr%{subver} -License: GPL +Version: 3.0.3 +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: 12e3d13cf112815d18d060764d3507d3 +#Source0: https://github.com/eventum/eventum/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source0: %{name}-%{version}-%{subver}-g%{githash}.tar.gz +# Source0-md5: f488e72825c21ddb8adb0d9180848a52 Source1: %{name}-apache.conf Source2: %{name}-mail-queue.cron Source3: %{name}-mail-download.cron @@ -32,36 +26,45 @@ 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 +#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-devel +BuildRequires: php(core) >= %{php_min_version} BuildRequires: rpm-php-pearprov >= 4.0.2-98 -BuildRequires: rpmbuild(macros) >= 1.461 +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-gd -Requires: php-iconv -Requires: php-imap -Requires: php-mbstring -Requires: php-mysql -Requires: php-pcre +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(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 @@ -74,24 +77,24 @@ 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: 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-pear-Net_LDAP2 +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) +%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-json php-tk +%define _noautophp php-gnupg php-hash php-pecl-http php-tk -%define _noautoreq %{_noautophp} %{_noautopear} +%define _noautoreq %{_noautophp} %define _libdir %{_prefix}/lib/%{name} %define _appdir %{_datadir}/%{name} @@ -151,6 +154,13 @@ Ten pakiet należy zainstalować w celu wstępnej konfiguracji Eventum po 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 @@ -390,8 +400,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-cli -Requires: php-common >= 4:%{php_min_version} +Requires: php(core) >= %{php_min_version} +Requires: php(phar) Requires: php-pear-XML_RPC %description cli @@ -406,10 +416,14 @@ funkcji interfejsu WWW prosto z linii poleceń powłoki. Summary: Eventum SCM integration Summary(pl.UTF-8): Integracja SCM dla Eventum Group: Applications/WWW -Requires: %{name}-base = %{version}-%{release} -Requires: php-cli -Requires: php-common >= 4:%{php_min_version} -Requires: php-pcre +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 @@ -432,34 +446,75 @@ 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 +%setup -q -n %{name}-%{version}%{?githash:-%{subver}-g%{githash}} + +mv docs/examples . # 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 - # bug fixes / features -%patch0 -p1 %{?with_order:%patch2 -p1} +#%patch3 -p0 +#%patch4 -p1 -cp -a %{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 + config/sphinx.conf +rm -f 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 + +# 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 @@ -470,51 +525,62 @@ 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%{systemdtmpfilesdir} -%{__make} install-eventum install-cli install-irc install-scm install-jpgraph install-localization \ +%{__make} install-eventum install-cli install-irc 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 -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 + +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 %{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 +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 %{SOURCE7} $RPM_BUILD_ROOT%{_webappdir}/irc_config.php +cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_webappdir}/irc_config.php install -p %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/eventum-irc -cp -a %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc +cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc -cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} +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 %find_lang %{name} # scm -install %{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 +cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php %clean rm -rf $RPM_BUILD_ROOT @@ -530,7 +596,8 @@ for a in cli.log errors.log irc_bot.log login_attempts.log; do fi done -# database update +# run database update if configured +test -s %{_webappdir}/config.php && \ %{_appdir}/upgrade/update-database.php || : # nuke Smarty templates cache after upgrade @@ -561,7 +628,7 @@ chmod 660 %{_webappdir}/{config,private_key}.php chown root:http %{_webappdir}/{config,private_key}.php %postun setup -if [ "$1" = "0" ]; then +if [ "$1" = "0" ] && [ -f %{_webappdir}/config.php ]; then chmod 640 %{_webappdir}/{config,private_key}.php chown root:http %{_webappdir}/{config,private_key}.php fi @@ -594,31 +661,23 @@ fi %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(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 @@ -632,36 +691,44 @@ done %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}/config + +%dir %{_appdir}/bin +%attr(755,root,root) %{_appdir}/bin/process_all_emails.php + +%{_appdir}/autoload.php %{_appdir}/init.php %dir %{_appdir}/htdocs %{_appdir}/htdocs/*.php %{_appdir}/htdocs/*.ico +%{_appdir}/htdocs/ajax %{_appdir}/htdocs/css %{_appdir}/htdocs/customer %{_appdir}/htdocs/images %{_appdir}/htdocs/js %{_appdir}/htdocs/manage +%{_appdir}/htdocs/misc %{_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 +%{_appdir}/upgrade/flush_compiled_templates.php +%{_appdir}/upgrade/*.sql %attr(755,root,root) %{_appdir}/upgrade/update-database.php -%dir %{_appdir}/upgrade/v* -%attr(755,root,root) %{_appdir}/upgrade/v*/*.php +%attr(755,root,root) %{_appdir}/upgrade/ldap_import.php +%attr(755,root,root) %{_appdir}/upgrade/ldap_update_users.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} @@ -680,38 +747,43 @@ done %defattr(644,root,root,755) %{_appdir}/htdocs/setup +%files doc +%doc docs/* +%{_examplesdir}/%{name}-%{version} + %files mail-queue %defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/crons/process_mail_queue.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 +%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 +%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 +%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 +%attr(755,root,root) %{_appdir}/bin/route_drafts.php %files route-emails %defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/route_emails.php +%attr(755,root,root) %{_appdir}/bin/route_emails.php %files route-notes %defattr(644,root,root,755) -%attr(755,root,root) %{_appdir}/route_notes.php +%attr(755,root,root) %{_appdir}/bin/route_notes.php %files router-postfix %defattr(644,root,root,755) @@ -728,12 +800,18 @@ done %defattr(644,root,root,755) %doc cli/eventumrc %attr(755,root,root) %{_bindir}/%{name} -%{_appdir}/cli %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) +%{_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