]> git.pld-linux.org Git - packages/eventum.git/blobdiff - eventum.spec
package new irc log files, ensure log files are immutable
[packages/eventum.git] / eventum.spec
index 92cb7cb3d5d9c16211711fc9f57b7b8c12937e55..bb1aefdfd07f01fc8947d60d376f91487e34a0cd 100644 (file)
@@ -1,32 +1,28 @@
-# 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.5
+Version:       3.0.3
+Release:       %{?subver:1.%{subver}.%{?githash:g%{githash}.}}%{rel}
 License:       GPL v2
 Group:         Applications/WWW
-Source0:       eventum-2.4.0-pre1-477-g0fbf3fc.tar.gz
-# Source0-md5: 58c862cfff33b7ae858a4d721f2a2696
+#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
@@ -36,39 +32,37 @@ 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
 # 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
@@ -81,6 +75,7 @@ Requires:     php-pear-Net_UserAgent_Detect
 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)
@@ -92,7 +87,7 @@ Conflicts:    logrotate < 3.8.0
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _noautoreq_pear ../init.php ../../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
@@ -157,6 +152,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
@@ -363,8 +365,9 @@ Summary(pl.UTF-8):  IRC-owy bot powiadamiający dla 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
@@ -397,6 +400,7 @@ 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(phar)
 Requires:      php-pear-XML_RPC
 
 %description cli
@@ -411,9 +415,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(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
@@ -449,14 +458,14 @@ Sphinx search integration for Eventum.
 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
@@ -484,13 +493,26 @@ rm -f config/config.php
 
 # 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
@@ -501,7 +523,7 @@ 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} \
@@ -509,15 +531,23 @@ install -d \
        $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
 
-%{?with_order:cp -a htdocs/ajax $RPM_BUILD_ROOT%{_appdir}/htdocs}
+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 %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/apache.conf
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/httpd.conf
@@ -533,7 +563,7 @@ 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 -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
@@ -550,10 +580,6 @@ cp -p %{SOURCE17} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
 # scm
 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/scm.php
 
-# 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
 
@@ -561,11 +587,15 @@ 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
@@ -646,8 +676,10 @@ 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
@@ -656,14 +688,17 @@ done
 %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/process_all_emails.php
 
+%{_appdir}/autoload.php
 %{_appdir}/init.php
 %dir %{_appdir}/htdocs
 %{_appdir}/htdocs/*.php
@@ -689,13 +724,12 @@ done
 %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
 
-%{_appdir}/vendor
-
 %{systemdtmpfilesdir}/%{name}.conf
 %dir %attr(730,root,http) /var/run/%{name}
 %dir %attr(730,root,http) /var/cache/%{name}
@@ -715,9 +749,15 @@ done
 %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
@@ -756,20 +796,22 @@ done
 %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) %{_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)
This page took 0.079165 seconds and 4 git commands to generate.