X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=eventum.spec;h=25fc183f44394007451c6eb431ed31325fe244d6;hb=16902912829de662acf5c10719a17716a2bdfada;hp=7401aaa9b7be3275400a49f283dbf73392c0ddde;hpb=299c0e820e375a3f2b70b8b3f2d4f636085ec7ab;p=packages%2Feventum.git diff --git a/eventum.spec b/eventum.spec index 7401aaa..25fc183 100644 --- a/eventum.spec +++ b/eventum.spec @@ -1,39 +1,32 @@ # TODO -# - system pear is incompatible, at least pear DB class seems broke Eventum -# - php5 is not tested, but not placing hard conflict on it, as it prevents php4 & php coinstallation # - 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 -# - need start-stop-daemon (from dpkg for now) - -%bcond_with pear # build with system PEAR packages (or use bundled ones) - -%define uid 146 -%define gid 146 - +# - 64bit platforms beware? http://bugs.php.net/bug.php?id=30215 (it's actually Smarty related problem) +# +# Conditional build: +%bcond_without pear # build with system PEAR packages (or use bundled ones) +%bcond_with qmail # build the router-qmail subpackage +# # snapshot: DATE -#define _snap 20050227 +%define _snap 20060220 -%if 0%{?_snap} -%define _source http://downloads.mysql.com/snapshots/%{name}/%{name}-nightly-%{_snap}.tar.gz -%else -%define _source http://mysql.wildyou.net/Downloads/%{name}/%{name}-%{version}.tar.gz -%endif - -%define _rel 237 +%define _rel 0.6 +%{?with_pear:%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.5 -Release: 0.%{?_snap:%{_snap}.}%{_rel} +Version: 1.7.0 +Release: %{?_snap:4.%{_snap}.}%{?_rc:%{_rc}.}%{_rel} License: GPL Group: Applications/WWW -Source0: %{_source} -# Source0-md5: 6a467e1a672983f26d72d4eb7568efb6 +#Source0: http://mysql.dataphone.se/Downloads/%{name}/%{name}-%{version}.tar.gz +Source0: http://downloads.mysql.com/snapshots/%{name}/%{name}-nightly-%{_snap}.tar.gz +# Source0-md5: f2bc584ac2d0fd67bec954f43abe920c Source1: %{name}-apache.conf Source2: %{name}-mail-queue.cron Source3: %{name}-mail-download.cron @@ -45,22 +38,42 @@ Source8: %{name}-irc.init Source9: %{name}-irc.sysconfig Source10: %{name}-config.php Source11: %{name}-router-qmail.sh +Source12: %{name}-config-setup.php +Source13: %{name}-upgrade.sh +Source14: %{name}-router-postfix.sh Patch0: %{name}-paths.patch -Patch2: %{name}-cvs-config.patch -Patch3: %{name}-irc-config.patch -Patch4: %{name}-PEAR.patch -Patch11: %{name}-scm_checkin_associated.patch -Patch23: %{name}-db-20050227.patch -URL: http://dev.mysql.com/downloads/other/eventum/index.html -BuildRequires: rpmbuild(macros) >= 1.177 +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: http://glen.alkohol.ee/pld/%{name}-link_filter-updates.patch +Patch14: http://glen.alkohol.ee/pld/%{name}-irc-mem.patch +Patch16: http://glen.alkohol.ee/pld/eventum-recent_activity-usability.patch +Patch17: http://glen.alkohol.ee/pld/eventum-upload-error-keep-popup.patch +Patch18: http://glen.alkohol.ee/pld/eventum-scm-parse-response.patch +Patch19: eventum-double-decode.patch +Patch20: http://glen.alkohol.ee/pld/eventum-keep-submitbutton.patch +Patch21: http://glen.alkohol.ee/pld/eventum-tt-unhide.patch +Patch22: %{name}-route-mem.patch +URL: http://dev.mysql.com/downloads/other/eventum/ +%{?with_pear:BuildRequires: rpm-php-pearprov >= 4.0.2-98} +BuildRequires: rpmbuild(macros) >= 1.268 BuildRequires: sed >= 4.0 -Requires: php >= 4.2.0 +Requires: %{name}-base = %{version}-%{release} +Requires: Smarty >= 2.6.10-4 +Requires: php >= 3:4.2.0 Requires: php-gd Requires: php-imap Requires: php-mysql Requires: php-pcre -Requires: %{name}-base = %{epoch}:%{version}-%{release} -Requires: Smarty >= 2.6.2 +Requires: php-session %if %{with pear} Requires: php-pear-Benchmark Requires: php-pear-DB @@ -69,32 +82,32 @@ Requires: php-pear-HTTP_Request Requires: php-pear-Mail Requires: php-pear-Math_Stats Requires: php-pear-Net_DIME -Requires: php-pear-Net_POP3 Requires: php-pear-Net_SMTP -Requires: php-pear-Net_SmartIRC Requires: php-pear-Net_Socket Requires: php-pear-Net_URL Requires: php-pear-Net_UserAgent_Detect -Requires: php-pear-PEAR +Requires: php-pear-PEAR-core Requires: php-pear-Text_Diff Requires: php-pear-XML_RPC %endif -Requires: apache >= 1.3.33-2 -Requires: apache(mod_dir) +Requires(triggerpostun): /usr/bin/php Requires(triggerpostun): sed >= 4.0 +Requires: apache(mod_dir) +Requires: webapps +Requires: webserver = apache BuildArch: noarch BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _sysconfdir /etc/%{name} -%define _libdir %{_prefix}/%{_lib}/%{name} -%define _appdir %{_datadir}/%{name} -%define _smartyplugindir %{php_pear_dir}/Smarty/plugins - -%define _apache1dir /etc/apache -%define _apache2dir /etc/httpd +%define _noautoreq 'pear(/etc/webapps/.*)' 'pear(jpgraph_dir.php)' 'pear(.*Smarty.class.php)' -# don't compress upgrade scripts -%define _noautocompressdoc *.php +%define _libdir %{_prefix}/lib/%{name} +%define _appdir %{_datadir}/%{name} +%define _smartyplugindir %{_appdir}/include/smarty +%define _smartydir /usr/share/php/Smarty +%define _webapps /etc/webapps +%define _webapp %{name} +%define _webappdir %{_webapps}/%{_webapp} +%define _sysconfdir /etc/%{name} %description Eventum is a user-friendly and flexible issue tracking system that can @@ -115,6 +128,14 @@ reakcji. Summary: Eventum base package Summary(pl): Podstawowy pakiet Eventum Group: Applications/WWW +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Provides: group(eventum) +Provides: user(eventum) %description base This package contains base directory structure for Eventum. @@ -126,7 +147,7 @@ Ten pakiet zawiera podstawow Summary: Eventum setup package Summary(pl): Pakiet do wstêpnej konfiguracji Eventum Group: Applications/WWW -PreReq: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name} = %{version}-%{release} %description setup Install this package to configure initial Eventum installation. You @@ -142,9 +163,8 @@ pozostawienie plik Summary: Eventum mail queue process Summary(pl): Przetwarzanie kolejki poczty Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name} = %{version}-%{release} Requires: crondaemon -Requires: php >= 4.1.0 %description mail-queue Beginning with the first release of Eventum, emails are not directly @@ -168,9 +188,8 @@ Ten pakiet zawiera zadanie dla crona. Summary: Eventum email download Summary(pl): ¦ci±ganie poczty Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name} = %{version}-%{release} Requires: crondaemon -Requires: php >= 4.1.0 %description mail-download In order for Eventum's email integration feature to work, you need to @@ -189,8 +208,7 @@ Ten pakiet zawiera zadanie dla crona. Summary: Eventum Reminder System Summary(pl): System przypominania dla Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 +Requires: %{name} = %{version}-%{release} Requires: crondaemon %description reminder @@ -215,10 +233,9 @@ Ten pakiet zawiera zadanie dla crona. Summary: Eventum Heartbeat Monitor Summary(pl): Monitor ¿ycia dla Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 -Requires: php-posix +Requires: %{name} = %{version}-%{release} Requires: crondaemon +Requires: php-posix %description monitor The heartbeat monitor is a feature designed for the administrator that @@ -246,13 +263,35 @@ test Ten pakiet zawiera zadanie dla crona. +%package route-drafts +Summary: Eventum Draft Routing +Summary(pl): Przekazywanie szkiców dla Eventum +Group: Applications/WWW +Requires: %{name} = %{version}-%{release} +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 qmail (or even 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 +Przekazywanie szkiców s³u¿y do automatycznego wi±zania w±tku szkiców z +problemem w Eventum. Ustawiaj±c qmaila (czy nawet 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 Summary(pl): Przekazywanie poczty dla Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 -Requires: eventum-router +Requires: %{name} = %{version}-%{release} +Requires: eventum(router) %description route-emails The email routing feature is used to automatically associate a thread @@ -276,9 +315,8 @@ rozprowadzane do ca Summary: Eventum Note Routing Summary(pl): Przekazywanie notatek dla Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 -Requires: eventum-router +Requires: %{name} = %{version}-%{release} +Requires: eventum(router) %description route-notes The note routing feature is used to automatically associate a thread @@ -302,10 +340,12 @@ spraw Summary: Eventum Mail Routing - qmail Summary(pl): Przekazywanie poczty Eventum - qmail Group: Applications/Mail -Requires: %{name} = %{epoch}:%{version}-%{release} +# loose dep is intentional. qmail subpackage isn't built on PLD +# builders and there really nothing changes. +Requires: %{name} >= %{version}-%{release} Requires: qmail >= 1.03 -Provides: eventum-router -Obsoletes: eventum-router +Provides: eventum(router) +Obsoletes: eventum(router) %description router-qmail This package provides way of routing notes and emails back to Eventum @@ -319,28 +359,34 @@ przez qmaila. Summary: Eventum Mail Routing - Postfix Summary(pl): Przekazywanie poczty Eventum - Postfix Group: Applications/Mail -Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name} = %{version}-%{release} Requires: postfix -Provides: eventum-router -Obsoletes: eventum-router +Provides: eventum(router) +Obsoletes: eventum(router) %description router-postfix This package provides way of routing notes and emails back to Eventum via Postfix. +The Postfix configuration instructions you can find from +. + %description router-postfix -l pl Ten pakiet udostêpnia metodê przekazywania notatek i listów do Eventum przez Postfiksa. +Opis konfiguracji Postfiksa mo¿na znale¼æ pod adresem +. + %package irc Summary: Eventum IRC Notification Bot Summary(pl): IRC-owy bot powiadamiaj±cy dla Eventum Group: Applications/WWW -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 +Requires(triggerpostun): sed >= 4.0 +Requires: %{name} = %{version}-%{release} +Requires: php-pear-Net_SmartIRC Requires: php-sockets -# FIXME just need start-stop-daemon -Requires: dpkg +Requires: rc-scripts >= 0.4.0.18 %description irc The IRC notification bot is a nice feature for remote teams that want @@ -370,12 +416,12 @@ kana Summary: Eventum command-line interface Summary(pl): Interfejs linii poleceñ dla Eventum Group: Applications/WWW -Requires: %{name}-base = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 +Requires: %{name}-base = %{version}-%{release} Requires: php-cli +Requires: php-common >= 3:4.1.0 Requires: php-curl -Requires: php-xml Requires: php-pear-XML_RPC +Requires: php-xml %description cli The Eventum command-line interface allows you to access most of the @@ -389,8 +435,10 @@ funkcji interfejsu WWW prosto z linii polece Summary: Eventum SCM integration Summary(pl): Integracja SCM dla Eventum Group: Applications/WWW -Requires: %{name}-base = %{epoch}:%{version}-%{release} -Requires: php >= 4.1.0 +Requires: %{name}-base = %{version}-%{release} +Requires: php-cli +Requires: php-common >= 3:4.1.0 +Requires: php-pcre %description scm This feature allows your software development teams to integrate your @@ -416,88 +464,122 @@ Szczeg %prep %setup -q %{?_snap:-n %{name}-%{_snap}} # undos the source -find . -type f -print0 | xargs -0 sed -i -e 's, -$,,' +find . -type f -print0 | xargs -0 sed -i -e 's,\r$,,' + +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 + +# sample, not used in eventum +rm -f rpc/xmlrpc_client.php # packaging -%patch0 -p1 -b .paths +%patch0 -p1 +%patch1 -p1 +%patch14 -p1 %patch2 -p1 -%patch3 -p1 -%{?with_pear:%patch4 -p1 -b .PEAR} +%{?with_pear:%patch3 -p1} # bug fixes. -%patch11 -p1 -%patch23 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch12 -p1 +%patch13 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 + +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/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 # replace in remaining scripts config.inc.php to system one grep -rl 'include_once(".*config.inc.php")' . | xargs sed -i -e ' - s,include_once(".*config.inc.php"),include_once("%{_sysconfdir}/core.php"), + s,include_once(".*config.inc.php"),include_once("%{_webappdir}/core.php"), ' -sed -i -e ' - s,include(".*config.inc.php"),include_once("%{_sysconfdir}/core.php"), -' misc/download_emails.php grep -rl 'APP_INC_PATH..*"private_key.php"' . | xargs sed -i -e ' - s,include_once(APP_INC_PATH.*"private_key.php"),include_once("%{_sysconfdir}/private_key.php"), + s,include_once(APP_INC_PATH.*"private_key.php"),include_once("%{_webappdir}/private_key.php"), ' -rm -f */*~ */*/*~ +# remove backups from patching as we use globs to package files to buildroot +find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v %install rm -rf $RPM_BUILD_ROOT install -d \ - $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_libdir}} \ + $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%{_appdir}/{include,htdocs/misc} \ + $RPM_BUILD_ROOT/var/lib/%{name}/routed_{emails,drafts,notes} \ + $RPM_BUILD_ROOT%{_appdir}/{include,htdocs/misc,upgrade} \ cp -a *.php css customer images js manage reports rpc setup $RPM_BUILD_ROOT%{_appdir}/htdocs cp -a misc/*.html $RPM_BUILD_ROOT%{_appdir}/htdocs/misc cp -a misc/*.php $RPM_BUILD_ROOT%{_appdir} -cp -a misc/irc $RPM_BUILD_ROOT%{_appdir} cp -a templates $RPM_BUILD_ROOT%{_appdir} -cp -a include/{customer,jpgraph,pear,workflow} $RPM_BUILD_ROOT%{_appdir}/include +cp -a include/{customer,custom_field,jpgraph,pear,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} + +cp -a favicon.ico $RPM_BUILD_ROOT%{_appdir}/htdocs/favicon.ico +install %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/htdocs/setup/config.inc.php +install %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/upgrade/upgrade.sh # cli install -d $RPM_BUILD_ROOT%{_appdir}/cli -install misc/cli/include/class.{misc,command_line}.php $RPM_BUILD_ROOT%{_appdir}/cli -install misc/cli/config.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/cli.php -sed -e 's,/usr/local/bin/php,/usr/bin/php4,' misc/cli/eventum \ - > $RPM_BUILD_ROOT%{_bindir}/%{name} -cp -f misc/cli/eventumrc_example eventumrc +cp -a misc/cli/include/class.{misc,command_line}.php $RPM_BUILD_ROOT%{_appdir}/cli +cp -a misc/cli/config.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/cli.php +install %{name}-cli $RPM_BUILD_ROOT%{_bindir}/%{name} +install %{name}-bot $RPM_BUILD_ROOT%{_sbindir} # scm -echo '#!/usr/bin/php4 -q' > %{name}-scm -cat misc/scm/process_cvs_commits.php >> %{name}-scm install %{name}-scm $RPM_BUILD_ROOT%{_libdir}/scm +install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/cvs.php # private key -mv $RPM_BUILD_ROOT{%{_appdir}/include/private_key.php,%{_sysconfdir}} -# change private key, so we can easily grep -sed -i -e ' -s,$private_key\s*=\s*".*";,$private_key = "DEFAULTPRIVATEKEYPLEASERUNSETUP!";, -' $RPM_BUILD_ROOT%{_sysconfdir}/private_key.php +cp -a private_key.php.in $RPM_BUILD_ROOT%{_webappdir}/private_key.php -install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf +install %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/apache.conf +install %{SOURCE1} $RPM_BUILD_ROOT%{_webappdir}/httpd.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 %{SOURCE5} $RPM_BUILD_ROOT/etc/cron.d/%{name}-monitor -install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/cvs.php install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/irc.php install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/eventum-irc install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/eventum-irc -sed -e 's,%%{APP_VERSION}%%,%{version}%{?_snap:-%{_snap}},' \ - %{SOURCE10} > $RPM_BUILD_ROOT%{_sysconfdir}/core.php -# config -> $RPM_BUILD_ROOT%{_sysconfdir}/setup.php -mv $RPM_BUILD_ROOT{%{_appdir}/htdocs/config.inc,%{_sysconfdir}/config}.php +sed -e ' +s,%%{APP_VERSION}%%,%{version}%{?_snap:-%{_snap}}, +s,%%{PHP_PEAR_DIR}%%,%{?with_pear:%{php_pear_dir}}%{!?with_pear:%{_appdir}/includes/pear}, +s,%%{APP_PATH}%%,%{_appdir}, +s,%%{SMARTY_DIR}%%,%{_smartydir}, +s,%%{SYSCONFDIR}%%,%{_webappdir}, +' %{SOURCE10} > $RPM_BUILD_ROOT%{_webappdir}/core.php -# sample, not used in eventum -rm -f $RPM_BUILD_ROOT%{_appdir}/htdocs/rpc/xmlrpc_client.php +# config +> $RPM_BUILD_ROOT%{_webappdir}/setup.php +mv $RPM_BUILD_ROOT{%{_appdir}/htdocs/config.inc,%{_webappdir}/config}.php %if %{with pear} # provided by PEAR @@ -508,10 +590,13 @@ rm -rf $RPM_BUILD_ROOT%{_appdir}/include/pear 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 include/Smarty/plugins/function.{calendar,get_{display_style,innerhtml,textarea_size}}.php \ +cp -a \ + include/Smarty/plugins/function.{calendar,get_{display_style,innerhtml,textarea_size}}.php \ + include/Smarty/plugins/modifier.highlight_quoted.php \ $RPM_BUILD_ROOT%{_smartyplugindir} # qmail router +%if %{with qmail} d=$RPM_BUILD_ROOT/var/lib/%{name} echo 'root' > $d/.qmail echo 'root' > $d/.qmail-default @@ -519,6 +604,9 @@ echo '| %{_libdir}/router-qmail drafts' > $d/.qmail-draft-default echo '| %{_libdir}/router-qmail emails 1' > $d/.qmail-issue-default echo '| %{_libdir}/router-qmail notes' > $d/.qmail-note-default install %{SOURCE11} $RPM_BUILD_ROOT%{_libdir}/router-qmail +%endif +# postfix router +install %{SOURCE14} $RPM_BUILD_ROOT%{_libdir}/router-postfix %clean rm -rf $RPM_BUILD_ROOT @@ -527,37 +615,41 @@ rm -rf $RPM_BUILD_ROOT %addusertogroup http %{name} %post -# apache1 -if [ -d %{_apache1dir}/conf.d ]; then - ln -sf %{_sysconfdir}/apache.conf %{_apache1dir}/conf.d/99_%{name}.conf - if [ -f /var/lock/subsys/apache ]; then - /etc/rc.d/init.d/apache restart 1>&2 - fi -fi -# apache2 -if [ -d %{_apache2dir}/httpd.conf ]; then - ln -sf %{_sysconfdir}/apache.conf %{_apache2dir}/httpd.conf/99_%{name}.conf - if [ -f /var/lock/subsys/httpd ]; then - /etc/rc.d/init.d/httpd restart 1>&2 - fi -fi - # check if the package is configured. -if grep -q 'header("Location: setup/")' %{_sysconfdir}/config.php; then +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. -Install %{name}-setup and open up http://yourserver/eventum/ --- that will help you setup initial config. +IMPORTANT: When You have configured Eventum, please uninstall the +setup package, so that %{name}-setup is able to secure your Eventum +installation. -when 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}/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 stupidity. +#' vim syntax hack +fi -elif grep -q 'DEFAULTPRIVATEKEY' %{_sysconfdir}/private_key.php; then +elif grep -q 'DEFAULTPRIVATEKEY' %{_webappdir}/private_key.php; then %banner %{name} -e <&2 - fi - fi - # apache2 - if [ -d %{_apache2dir}/httpd.conf ]; then - rm -f %{_apache2dir}/httpd.conf/99_%{name}.conf - if [ -f /var/lock/subsys/httpd ]; then - /etc/rc.d/init.d/httpd restart 1>&2 - fi - fi + # nuke cache + rm -f /var/cache/eventum/*.php 2>/dev/null || : fi -%postun -# nuke cache -rm -f /var/cache/eventum/*.php - %pre base -%groupadd -P %{name}-base %{name} -%useradd -P %{name}-base -d /var/lib/%{name} -g %{name} %{name} -c "Eventum User" +%groupadd -P %{name}-base -g 146 %{name} +%useradd -P %{name}-base -u 146 -d /var/lib/%{name} -g %{name} -c "Eventum User" %{name} %postun base if [ "$1" = "0" ]; then @@ -613,7 +692,7 @@ fi %post router-qmail CF=/etc/qmail/control/virtualdomains if ! grep -q ':%{name}\b' $CF 2>/dev/null; then - FQDN=$(awk -F'"' '/define/ && $2 ~ /APP_HOSTNAME/ {print $4}' %{_sysconfdir}/config.php 2>/dev/null) + FQDN=$(awk -F'"' '/define/ && $2 ~ /APP_HOSTNAME/ {print $4}' %{_webappdir}/config.php 2>/dev/null) [ "$FQDN" ] || FQDN=$(hostname -f 2>/dev/null || echo localhost) umask 022 echo "#${FQDN}:%{name}" >> $CF @@ -635,102 +714,145 @@ if [ "$1" = "0" ]; then fi %post setup -chmod 660 %{_sysconfdir}/{config,private_key}.php -chown root:eventum %{_sysconfdir}/{config,private_key}.php +chmod 660 %{_webappdir}/{config,private_key}.php +chown root:eventum %{_webappdir}/{config,private_key}.php %postun setup if [ "$1" = "0" ]; then - chmod 640 %{_sysconfdir}/{config,private_key}.php - chown root:eventum %{_sysconfdir}/{config,private_key}.php + chmod 640 %{_webappdir}/{config,private_key}.php + chown root:eventum %{_webappdir}/{config,private_key}.php fi -%triggerpostun -- eventum < 1.4-2.160 -cp -f %{_sysconfdir}/config.php{,.rpmsave} -# very loose trigger -sed -i -e ' -/config.php/,/SQL variables/d;/_LOG/d;/APP_VERSION/d;/APP_BENCHMARK/,/content-type:/d -' %{_sysconfdir}/config.php +%post irc +/sbin/chkconfig --add eventum-irc +%service eventum-irc restart "Eventum IRC Bot" -%triggerpostun -- eventum < 1.4-2.174 -cp -f %{_sysconfdir}/apache.conf{,.rpmsave} -# loosely fix htdocs directory -sed -i -e ' -s,%{_appdir},%{_appdir}/htdocs, -' %{_sysconfdir}/apache.conf +%triggerin -- apache1 +%webapp_register apache %{_webapp} -%triggerpostun mail-download -- eventum-mail-download < 1.4-2.20050222.232 -sed -i -e ' -s,%{_appdir}/misc,%{_appdir}, -s,http,eventum, -' /etc/cron.d/eventum-mail-download -touch /etc/cron.d/eventum-mail-download +%triggerun -- apache1 +%webapp_unregister apache %{_webapp} -%triggerpostun mail-queue -- eventum-mail-queue < 1.4-2.20050222.232 -sed -i -e ' -s,%{_appdir}/misc,%{_appdir}, -s,http,eventum, -' /etc/cron.d/eventum-mail-queue -touch /etc/cron.d/eventum-mail-queue +%triggerin -- apache >= 2.0.0 +%webapp_register httpd %{_webapp} -%triggerpostun monitor -- eventum-monitor < 1.4-2.20050222.232 -sed -i -e ' -s,%{_appdir}/misc,%{_appdir}, -s,http,eventum, -' /etc/cron.d/eventum-monitor -touch /etc/cron.d/eventum-monitor +%triggerun -- apache >= 2.0.0 +%webapp_unregister httpd %{_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. +# use common trigger (the highest version and rpmvercmp from poldek?) +%triggerpostun -- eventum < 1.5.1-0.257 +%{_appdir}/upgrade/upgrade.sh %{_appdir}/upgrade/v1.5_to_v1.5.1 <&2 "" -echo >&2 "* Performing database upgrades!" -echo >&2 "These will fail if your eventum user doesn't have ALTER privilege to database." -echo >&2 "" -# i hope it's not too evil to do these in trigger -scriptdir=%{_docdir}/%{name}-%{version}/upgrade/v1.4_to_1.5 -# don't fail if --excludedocs used -if [ -d $scriptdir ]; then - /usr/bin/php4 -q $scriptdir/database_changes.php || { - echo >&2 "Please run manually: /usr/bin/php4 -q $scriptdir/database_changes.php" - } - # user roles already applied in snapshot. skip it -# /usr/bin/php4 -q $scriptdir/set_user_roles.php || { -# echo >&2 "Please run manually: /usr/bin/php4 -q $scriptdir/set_user_roles.php" -# } - # no config file changes. skip it +%triggerpostun irc -- %{name}-irc < 1.7.0-3.4 +if [ -f %{_webappdir}/irc.php.rpmsave ]; then + mv -f %{_sysconfdir}/irc.php{,.rpmnew} + mv -f %{_webappdir}/irc.php.rpmsave %{_sysconfdir}/irc.php fi %files %defattr(644,root,root,755) -%doc ChangeLog FAQ INSTALL README UPGRADE -%doc misc/upgrade docs/* rpc/xmlrpc_client.php setup/schema.sql -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf -%attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php -%attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/private_key.php -%attr(660,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/setup.php -%attr(640,root,eventum) %config %verify(not mtime) %{_sysconfdir}/core.php +%doc ChangeLog FAQ INSTALL README UPGRADE CONTRIB +%doc docs/* 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,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,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 %{_appdir}/htdocs %{_appdir}/htdocs/*.php +%{_appdir}/htdocs/*.ico %{_appdir}/htdocs/css %{_appdir}/htdocs/customer %{_appdir}/htdocs/images @@ -741,14 +863,18 @@ fi %{_appdir}/htdocs/misc %{_appdir}/templates +%dir %{_appdir}/upgrade +%attr(755,root,root) %{_appdir}/upgrade/upgrade.sh +%{_appdir}/upgrade/[!u]* -%{_smartyplugindir}/* +%{_smartyplugindir} %if %{without pear} %{_appdir}/include/pear %endif %dir %{_appdir}/include %{_appdir}/include/customer +%{_appdir}/include/custom_field %{_appdir}/include/jpgraph %{_appdir}/include/workflow %{_appdir}/include/class.[!m]*.php @@ -757,7 +883,6 @@ fi %{_appdir}/include/class.mime_helper.php %{_appdir}/include/class.misc.php %{_appdir}/include/db_access.php -%{_appdir}/include/jsrsServer.inc.php %dir %attr(730,root,eventum) /var/run/%{name} %dir %attr(730,root,eventum) /var/cache/%{name} @@ -769,6 +894,10 @@ fi %dir %{_appdir} # qmail will ignore user, if it's home directory is not owned %attr(750,eventum,eventum) %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 %files setup %defattr(644,root,root,755) @@ -776,47 +905,53 @@ fi %files mail-queue %defattr(644,root,root,755) -%{_appdir}/process_mail_queue.php +%attr(755,root,root) %{_appdir}/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) -%{_appdir}/download_emails.php +%attr(755,root,root) %{_appdir}/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) -%{_appdir}/check_reminders.php +%attr(755,root,root) %{_appdir}/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}/include/class.monitor.php -%{_appdir}/monitor.php +%attr(755,root,root) %{_appdir}/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 + %files route-emails %defattr(644,root,root,755) -%{_appdir}/route_emails.php +%attr(755,root,root) %{_appdir}/route_emails.php %files route-notes %defattr(644,root,root,755) -%{_appdir}/route_drafts.php -%{_appdir}/route_notes.php +%attr(755,root,root) %{_appdir}/route_notes.php +%if %{with qmail} %files router-qmail %defattr(644,root,root,755) %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) /var/lib/%{name}/.qmail* %attr(755,root,root) %{_libdir}/router-qmail +%endif %files router-postfix %defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/router-postfix %files irc %defattr(644,root,root,755) %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/irc.php %attr(640,root,eventum) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/eventum-irc -%{_appdir}/irc +%attr(755,root,root) %{_sbindir}/%{name}-bot %attr(754,root,root) /etc/rc.d/init.d/%{name}-irc %files cli