From 6b50b26f9974070b948eb24c5be039d80a2c5887 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sat, 19 Apr 2014 10:46:27 +0000 Subject: [PATCH] current build scripts --- doc/rpm-build/debian.control | 281 +++++++ .../debian.egroupware-epl-core.conffiles | 2 + doc/rpm-build/debian.rules | 118 +++ doc/rpm-build/debian.tar.gz | Bin 0 -> 40240 bytes doc/rpm-build/egroupware-epl.dsc | 11 + doc/rpm-build/egroupware-epl.spec | 727 ++++++++++++++++++ 6 files changed, 1139 insertions(+) create mode 100644 doc/rpm-build/debian.control create mode 100644 doc/rpm-build/debian.egroupware-epl-core.conffiles create mode 100644 doc/rpm-build/debian.rules create mode 100644 doc/rpm-build/debian.tar.gz create mode 100644 doc/rpm-build/egroupware-epl.dsc create mode 100644 doc/rpm-build/egroupware-epl.spec diff --git a/doc/rpm-build/debian.control b/doc/rpm-build/debian.control new file mode 100644 index 0000000000..92ed823028 --- /dev/null +++ b/doc/rpm-build/debian.control @@ -0,0 +1,281 @@ +Source: egroupware-epl +Section: web +Priority: optional +Maintainer: Lars Volker +Build-Depends: debhelper (>= 5), po-debconf +Standards-Version: 3.8.0 +Homepage: http://www.stylite.de/EPL + +Package: egroupware-epl +Architecture: all +Depends: egroupware-epl-core, egroupware-epl-stylite, egroupware-epl-jdots, egroupware-epl-pixelegg, ${egw:Modules}, ${misc:Depends} +Replaces: egroupware +Description: web-based groupware suite - metapackage + ${commondesc} + . + This package is a metapackage containing dependencies on all the + EGroupware applications. It can be used to conveniently install + EGroupware with all available applications. + +Package: egroupware-epl-core +Architecture: all +Depends: apache2, + libapache2-mod-php5, + php5-cli, + php5-sqlite, + php5-mysql | php5-pgsql | php5-odbc, + php5-gd, php-log, php-pear, + egroupware-epl-egw-pear, + perl, + php5-mcrypt, + ${misc:Depends} +Recommends: mysql-server, php-apc, mysql-client | postgresql-client +Suggests: egroupware-epl, + php5-ldap, + php5-mhash, + php5-auth-pam +Provides: egroupware-epl-addressbook, egroupware-epl-etemplate +Replaces: egroupware-core, egroupware-addressbook, egroupware-epl-addressbook, egroupware-etemplate, egroupware-epl-etemplate +Description: web-based groupware suite - core modules + ${commondesc} + . + The core package provides the modules for initial setup, global + administration, and preferences, and the API for the applications. It + does not, by itself, provide any groupware functionality. The actual + EGroupware applications are shipped separately in packages named + "egroupware-epl-". + +Package: egroupware-epl-bookmarks +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-bookmarks +Description: web-based groupware suite - bookmark management application + ${commondesc} + . + This EGroupware application provides a bookmark management facility. + +Package: egroupware-epl-calendar +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), egroupware-epl-infolog (>= ${binary:Version}), + egroupware-epl-notifications (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-calendar +Description: web-based groupware suite - calendar management application + ${commondesc} + . + This EGroupware application provides a powerful calendar with a meeting + request system, alarms, iCal and e-Mail support, and ACL security. + +Package: egroupware-epl-developer-tools +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-developer-tools +Description: web-based groupware suite - developer tools + ${commondesc} + . + This EGroupware application contains tools for EGroupware developers + and translators. The translation tools allow creating and extending + translation files for EGroupware. They can search the sources for new + or added phrases and show the ones missing in a given language. + +Package: egroupware-epl-emailadmin +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends}, php5-imap +Replaces: egroupware-emailadmin +Description: web-based groupware suite - e-mail user administration application + ${commondesc} + . + This EGroupware application allows the administration of e-mail user + accounts. It is intended to be used with the package + egroupware-epl-mail. + +Package: egroupware-epl-esync +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-esync +Description: web-based groupware suite - esync application + ${commondesc} + . + Z-Push based ActiveSync protocol implementation. + +Package: egroupware-epl-mail +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), egroupware-epl-emailadmin (>= ${binary:Version}), + ${misc:Depends} +Provides: mail-reader, imap-client +Replaces: egroupware-felamimail, egroupware-epl-felamimail +Description: web-based groupware suite - e-mail application + ${commondesc} + . + Mail is an e-mail application for EGroupware. + +Package: egroupware-epl-filemanager +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Suggests: php5-cli +Replaces: egroupware-filemanager +Description: web-based groupware suite - file manager application + ${commondesc} + . + This EGroupware application provides a web-based file manager. + Abilities include all common file actions (upload, mkdir, rename, + delete, copy, move), creating, and editing text files, and syncing with + the file system. Per file/directory comments are stored, and version + history is tracked. Group sharing and ACLs are fully supported. + +Package: egroupware-epl-importexport +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-importexport +Description: web-based groupware suite - importexport application + ${commondesc} + . + This eGroupWare application is a framework for egroupware to handle + imports and exports. + +Package: egroupware-epl-infolog +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), ${misc:Depends} +Replaces: egroupware-infolog +Description: web-based groupware suite - infolog application + ${commondesc} + . + This EGroupware application allows tracking on-going and previous support + requests, phone calls, and other customer relations. + +Package: egroupware-epl-manual +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), egroupware-epl-wiki (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-manual +Description: web-based groupware suite - manual + ${commondesc} + . + This package contains the EGroupware manual, provided as an + EGroupware application. + +Package: egroupware-epl-news-admin +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-news-admin +Description: web-based groupware suite - news administration interface + ${commondesc} + . + This EGroupware application provides an interface to handle a simple + web-based news system. + +Package: egroupware-epl-notifications +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-notifications +Description: web-based groupware suite - notifications + ${commondesc} + . + This package contains the EGroupware notifications, provided as an + EGroupware application. + +Package: egroupware-epl-phpbrain +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-phpbrain +Description: web-based groupware suite - phpbrain application + ${commondesc} + . + This EGroupware application provides a knowledge base system. + +Package: egroupware-epl-projectmanager +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), php5-gd, jpgraph-epl, + ${misc:Depends} +Replaces: egroupware-projectmanager +Description: web-based groupware suite - project management application + ${commondesc} + . + This EGroupware application provides a project workflow tracker. + +Package: egroupware-epl-registration +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-registration +Description: web-based groupware suite - registration application + ${commondesc} + . + This EGroupware application allows users to create EGroupware accounts + through a web interface. Site administrators can decide what pieces of + information are requested and whether each is required or not. + +Package: egroupware-epl-resources +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), egroupware-epl-filemanager (>= ${binary:Version}), + ${misc:Depends} +Suggests: egroupware-epl-calendar +Replaces: egroupware-resources +Description: web-based groupware suite - resource manager application + ${commondesc} + . + This EGroupware application provides a resource management and booking + system, which integrates into EGroupware's calendar. + +Package: egroupware-epl-sambaadmin +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + php5-ldap, + ${misc:Depends} +Replaces: egroupware-sambaadmin +Description: web-based groupware suite - Samba administration application + ${commondesc} + . + This EGroupware application allows managing LDAP-based Samba servers. + +Package: egroupware-epl-sitemgr +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-sitemgr +Description: web-based groupware suite - site manager application + ${commondesc} + . + This is a content management system application for EGroupware. + +Package: egroupware-epl-timesheet +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Suggests: egroupware-epl-projectmanager +Replaces: egroupware-timesheet +Description: web-based groupware suite - timesheet application + ${commondesc} + . + This EGroupware application allows tracking times and other activities + for the project manager. + +Package: egroupware-epl-tracker +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), egroupware-epl-notifications (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-tracker +Description: web-based groupware suite - tracker application + ${commondesc} + . + This EGroupware application is a universal tracker for bugs, feature + requests, etc. with voting and bounties. + +Package: egroupware-epl-wiki +Architecture: all +Depends: egroupware-epl-core (>= ${binary:Version}), + ${misc:Depends} +Replaces: egroupware-wiki +Description: web-based groupware suite - wiki application + ${commondesc} + . + This EGroupware application provides a wiki. diff --git a/doc/rpm-build/debian.egroupware-epl-core.conffiles b/doc/rpm-build/debian.egroupware-epl-core.conffiles new file mode 100644 index 0000000000..ed34b23dbf --- /dev/null +++ b/doc/rpm-build/debian.egroupware-epl-core.conffiles @@ -0,0 +1,2 @@ +/var/lib/egroupware/header.inc.php +/etc/egroupware/apache.conf diff --git a/doc/rpm-build/debian.rules b/doc/rpm-build/debian.rules new file mode 100644 index 0000000000..177666ca2d --- /dev/null +++ b/doc/rpm-build/debian.rules @@ -0,0 +1,118 @@ +#!/usr/bin/make -f + +SHELL = /bin/sh -e + + +PACKAGES := $(shell dh_listpackages) +MODULES = $(filter-out core,$(patsubst egroupware-epl-%,%,$(filter egroupware-epl-%,$(PACKAGES)))) +COREDIR = debian/egroupware-epl-core/usr/share/egroupware +COREDOC = debian/egroupware-epl-core/usr/share/doc/egroupware-core +PACKAGEDIR = debian/egroupware-epl-$${APP}/usr/share/egroupware/$${APPDIR} +PACKAGEDOC = debian/egroupware-epl-$${APP}/usr/share/doc/egroupware-$${APPDIR} + +COPYRIGHT = -iname 'copyright*' -or -iname 'copying*' -or -iname '*license*' +CHANGELOG = -iname 'changelog*' +EXTRADOC = -iname readme -or -iname todo + +FINDOPT = -type f +APPFILES = -not \( -path '*/doc/*' -or -path '.' -or -name '*.pl' -or $(COPYRIGHT) -or $(CHANGELOG) -or -iname install -or $(EXTRADOC) \) +SPECIALDOC = -size 0 -or -iname install -or $(CHANGELOG) -or $(COPYRIGHT) -or \ + -name '*.sgml' -or -name '*.lyx' -or -name '*.ps' -or -name '*.dvi' -or -name '*.rtf' +DOCFILES = -not \( $(SPECIALDOC) \) + +INSTALL = install -D -m 644 + + +clean: + dh_testdir + dh_testroot + debconf-updatepo + dh_clean + + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # apply the patch + cat ./doc/rpm-build/class.uiasyncservice.inc.php.patch | patch -p1 + + # customize apache config + mkdir -p $(CURDIR)/debian/egroupware-epl-core/etc/egroupware + sed 's/\/usr\/share\/pear/\/usr\/share\/php:\/usr\/local\/zend\/share\/pear/' $(CURDIR)/doc/rpm-build/apache.conf > $(CURDIR)/debian/egroupware-epl-core/etc/egroupware/apache.conf + + # install core modules + + for DIR in admin home phpgwapi preferences etemplate addressbook setup doc; do \ + cd $(CURDIR)/$${DIR}; \ + find $(FINDOPT) $(APPFILES) \ + -exec $(INSTALL) {} $(CURDIR)/$(COREDIR)/$${DIR}/{} \; ; \ + done + + # install applications + + # lv: activesync (tm) microsoft and has to be renamed + + for APP in $(MODULES) ; do \ + APPDIR=$$(echo $${APP} | sed 's/-/_/g') ; \ + if [ "$${APP}" = "esync" ]; then \ + APPDIR="activesync"; \ + fi; \ + if [ -d $(CURDIR)/$${APPDIR} ] ; then \ + cd $(CURDIR)/$${APPDIR}; \ + find $(FINDOPT) $(APPFILES) \ + -exec $(INSTALL) {} $(CURDIR)/$(PACKAGEDIR)/{} \; ; \ + if [ -d $(CURDIR)/$${APPDIR}/doc ] ; then \ + cd $(CURDIR)/$${APPDIR}/doc; \ + find $(FINDOPT) $(DOCFILES) \ + -exec $(INSTALL) {} $(CURDIR)/$(PACKAGEDOC)/{} \; ;\ + fi ; \ + else \ + echo "PACKAGING ERROR: directory $${APPDIR} not found" 1>&2; exit 1 ; \ + fi ; \ + done + + # install cron-file + mkdir -p debian/egroupware-epl-core/etc/cron.d + sed 's/apache/www-data/' doc/rpm-build/egroupware.cron > debian/egroupware-epl-core/etc/cron.d/egroupware + + dh_install + + # delete some stuff + for APKG in $(PACKAGES) ; do \ + if [ -f debian/$${APKG}.remove ] ; then \ + perl -l0 -p -e '' debian/$${APKG}.remove | xargs -0ri /bin/sh -c "rm -rf debian/$${APKG}/{}" ; \ + fi ; \ + done + + # make postinstall executable + #chmod a+x debian/egroupware-epl-core/usr/share/egroupware/doc/rpm-build/post_install.php + ls -al debian/egroupware-epl-*/usr/share/egroupware/*/*cli.php debian/egroupware-epl-*/usr/share/egroupware/phpgwapi/cron/*.php debian/egroupware-epl-*/usr/share/egroupware/doc/rpm-build/*.php + chmod a+x debian/egroupware-epl-*/usr/share/egroupware/*/*cli.php debian/egroupware-epl-*/usr/share/egroupware/phpgwapi/cron/*.php debian/egroupware-epl-*/usr/share/egroupware/doc/rpm-build/*.php + + +binary-indep: build install + dh_testdir -i + dh_testroot -i + dh_installdebconf -i + dh_installdocs -i + dh_installexamples -i + dh_installchangelogs -i + dh_link -i + dh_compress -i -X .php + dh_fixperms -i + dh_installdeb -i + (echo -n "egw:Modules="; for x in $(MODULES); do echo -n "egroupware-epl-$$x,"; done; echo) >>debian/egroupware-epl.substvars + perl -l0 -p -e 's/^/-V/' debian/substvars | xargs -0 dh_gencontrol -i -- + dh_md5sums -i + dh_builddeb -i + + +binary: binary-indep binary-arch + + +.PHONY: build binary binary-arch binary-indep clean install + +# vim: ts=4 noet diff --git a/doc/rpm-build/debian.tar.gz b/doc/rpm-build/debian.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9aa6b91c7546dc2fa9071bd7904a60ad7bbb40c2 GIT binary patch literal 40240 zcmY(pWl$c$)-{R*Cs=TI_W;4&o!}PS-3bI9++BjZ1$Pf_!QI{6-Jbb4r_Ot;?o`dM z?rEvL_Ug5IHc2Er#1?|GDg^YIfSt>%^vo;g3sy%@Bicd&({r@2C^{(;qrY7InX?;G zV^mQs6S#L#-$HVe9{rI;EpQ!~4k4sBbl;V)} zBH@Oc_SNiXQKGzc+nJJOtND3{ukV%J4ZK2W8hzFar{ghZV6|@qpZ|Wc_$Jd&E}fq$ zL%HAPS=SjQ2tuoA>WS6QxlE5fS1g&g)heED(D^-o(ZKn4IO5wloSjMgY)ysTXko@f zZ~A7tE>#75Y13k-6+t0tmWE9pII&IsxJzB?-N8q-jQ!ueP{gFbw}X@=*N&`4`qdFaRt8CB&uHH3NDi$wZ4nrwAbwJn&~@dz}0$G#a?i~ z(8WYD1PpzV4mv!75wBn{t)MY7$d45>g(T@+^9ovYIoJBvKFtUj3a8Onz^Hbr9dmz|! zAQR5hM3IS6)_MC1_gYFl0SdR@>8VD803}q?S_zr#l~ZbI*%-sy4}Q{ylu{!Wj*z-a zY$2l9iYt=aR%1-T5jy%0o|~)OYVM{-(ikn_Um?P9MtwO61||(T@^H~;V_gEdntbVy z&J6{$#oK))5kEb?5Cg{1=`Ba#ZywyF^hKF zj)pRfzwWN*UU(KRZ~f%3DaiEI6ig{Uo8ydzJ~8bZnHq{sKIU|;330E1JfvnZsoV&2 zF72vhTa2_=fgJW%{sX}Xt+8k|xT=N0f#N!AiKoGo;BE&*ZBzP7aoVX9I<3vN+Y=5Xe9a+_WfQkpu(^DA%<&OT`(c*4AK1nSH%HfN7fpj#oOvd!0-Yp->~N#GY>ofn9BKqc5K@Bk1_vm zVecRt9Y7A~qE6+<;87NYklH9-_vJRLJ7`_s={0DtzL3Y}xVeS8CBaS#*#Y5TzW{l} zwcXL{NL2*^uGJ>+Re!-!sH%gYD!7qDpqW4t48Y#|;Qv1Any(wPdjGb1{;><_i#KF? zh(DwGkP>7@x1hze!Wak2QG;FMvzxHd#jrT4sgQ)ifjaFV`}IyNQ92N9PAYo-!tc#%fkS;Q>$yn0#

pFU-(r3Wlc9$4A7DJJ!z0Q5?yvbWg9SDvY`bYe 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 literal 0 HcmV?d00001 diff --git a/doc/rpm-build/egroupware-epl.dsc b/doc/rpm-build/egroupware-epl.dsc new file mode 100644 index 0000000000..3856826752 --- /dev/null +++ b/doc/rpm-build/egroupware-epl.dsc @@ -0,0 +1,11 @@ +Format: 1.0 +Source: egroupware-epl +Binary: egroupware-epl, egroupware-epl-core, egroupware-epl-bookmarks, egroupware-epl-calendar, egroupware-epl-developer-tools, egroupware-epl-emailadmin, egroupware-epl-esync, egroupware-epl-mail, egroupware-epl-filemanager, egroupware-epl-infolog, egroupware-epl-manual, egroupware-epl-news-admin, egroupware-epl-notifications, egroupware-epl-phpbrain, egroupware-epl-projectmanager, egroupware-epl-registration, egroupware-epl-resources, egroupware-epl-sambaadmin, egroupware-epl-sitemgr, egroupware-epl-timesheet, egroupware-epl-tracker, egroupware-epl-wiki, egroupware-esync, egroupware-phpfreechat +Architecture: all +Version: 14.1.20140417-1 +Maintainer: Ralf Becker +Homepage: http://www.stylite.de/EPL +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 5), po-debconf +Debtransform-Tar: egroupware-epl-14.1.20140417.tar.gz +Debtransform-Files-Tar: debian.tar.gz phpfreechat_data_public.tar.gz diff --git a/doc/rpm-build/egroupware-epl.spec b/doc/rpm-build/egroupware-epl.spec new file mode 100644 index 0000000000..aa2364c6a8 --- /dev/null +++ b/doc/rpm-build/egroupware-epl.spec @@ -0,0 +1,727 @@ +Name: egroupware-epl +Version: 14.1.20140417 +Release: +Summary: EGroupware is a web-based groupware suite written in php +Group: Web/Database +License: GPLv2 +URL: http://www.egroupware.org/ +Vendor: Stylite GmbH, http://www.stylite.de/ +Packager: Ralf Becker +Prefix: /usr/share +%define egwdir %{prefix}/egroupware +%define egwdatadir /var/lib/egroupware +%define egw_packagename eGroupware +# +# Define opensuse_version to tell opensuse 11.1 (1110) from sles11 (1110) and suse 10.1 from sles 10 +%if "0%{?suse_version:1}%{!?sles_version:0}" == "010" + %define opensuse_version %{suse_version} +%endif + +%if 0%{?suse_version} + %if 0%{?opensuse_version} < 1200 + %define php php5 + %else + # opensuse 12+ uses /usr/bin/php again + %define php php + %endif + + %if 0%{?sles_version} < 1210 + %define php php + %endif + + %define httpdconfd /etc/apache2/conf.d + %define distribution SUSE Linux %{?suse_version} + + %if 0%{?sles_version} + # sle 10 and 11 does NOT contain libtidy + %define extra_requires apache2 mod_php_any php_any_db php-dom php-bz2 php-openssl php-zip php-ctype php-sqlite %{php}-xml %{php}-xmlreader %{php}-xmlwriter %{php}-dom + + %else + %define extra_requires apache2 apache2-mod_php5 php_any_db php5-dom php5-bz2 php5-openssl php5-zip php5-ctype php5-sqlite php5-tidy %{php}-xml %{php}-xmlreader %{php}-xmlwriter %{php}-dom + %endif + + %define cron cron + %define apache_user wwwrun + %define apache_group www + %define pear_dir \\/usr\\/share\\/php5\\/PEAR:\\/etc\\/php5 +%else + %define php php + %define httpdconfd /etc/httpd/conf.d + %define cron crontabs + %define apache_user apache + %define apache_group apache + %define pear_dir \\/usr\\/share\\/pear +%endif + +%define install_log /root/%{name}-install.log +%define post_install /usr/bin/%{php} %{egwdir}/doc/rpm-build/post_install.php --source_dir %{egwdir} --data_dir %{egwdatadir} +%if 0%{?fedora_version} + %define osversion %{?fedora_version} + %define distribution Fedora Core %{?fedora_version} + %define extra_requires httpd php-mysql php-xml php-tidy +%endif +%if 0%{?mandriva_version} + %define osversion %{?mandriva_version} + %define distribution Mandriva %{?mandriva_version} + %define extra_requires apache php-mysql php-dom php-pdo_mysql php-pdo_sqlite php-tidy +# try to keep build from searching (for wrong) dependencys + %undefine __find_provides + %undefine __find_requires +%endif +%if 0%{?rhel_version} + %define osversion %{?rhel_version} + %define distribution Red Hat %{?rhel_version} + %define extra_requires httpd php-mysql php-xml php-tidy +%endif +%if 0%{?centos_version} + %define osversion %{?centos_version} + %define distribution CentOS %{?centos_version} + %define extra_requires httpd php-mysql php-xml php-tidy +%endif + +Distribution: %{distribution} + +Source0: %{name}-%{version}.tar.gz +Source1: %{name}-egw-pear-%{version}.tar.bz2 +#Source2: %{name}-stylite-%{version}.tar.bz2 +Source3: %{name}-pixelegg-%{version}.tar.bz2 +#Source4: %{name}-esyncpro-%{version}.tar.bz2 +Source5: %{name}-jdots-%{version}.tar.bz2 +Source6: phpfreechat_data_public.tar.gz +Source8: %{name}-rpmlintrc +#Source9: %{name}-gallery-%{version}.tar.bz2 +Patch0: class.uiasyncservice.inc.php.patch +#Patch1: revert-php-path-suse.patch +#Patch2: mandriva_upload_tmp_dir.patch +BuildRoot: %{_tmppath}/%{name}-buildroot + +#otherwise build fails because of jar files in G2 +BuildRequires: unzip sed + +Buildarch: noarch +AutoReqProv: no + +Requires: %{name}-core = %{version} +Requires: %{name}-egw-pear = %{version} +#Requires: %{name}-stylite = %{version} +Requires: %{name}-jdots = %{version} +Requires: %{name}-esync = %{version} +Requires: %{name}-bookmarks = %{version} +Requires: %{name}-calendar = %{version} +Requires: %{name}-developer_tools = %{version} +Requires: %{name}-emailadmin = %{version} +Requires: %{name}-filemanager = %{version} +Requires: %{name}-infolog = %{version} +Requires: %{name}-importexport = %{version} +Requires: %{name}-jdots = %{version} +Requires: %{name}-mail = %{version} +Requires: %{name}-manual = %{version} +Requires: %{name}-news_admin = %{version} +Requires: %{name}-notifications = %{version} +Requires: %{name}-phpbrain = %{version} +Requires: %{name}-phpfreechat = %{version} +Requires: %{name}-pixelegg = %{version} +Requires: %{name}-projectmanager = %{version} +Requires: %{name}-registration = %{version} +Requires: %{name}-resources = %{version} +Requires: %{name}-sambaadmin = %{version} +Requires: %{name}-sitemgr = %{version} +Requires: %{name}-timesheet = %{version} +Requires: %{name}-tracker = %{version} +Requires: %{name}-wiki = %{version} +Obsoletes: %{egw_packagename} +Obsoletes: %{egw_packagename}-core +Obsoletes: %{egw_packagename}-egw-pear +Obsoletes: %{egw_packagename}-esync +Obsoletes: %{egw_packagename}-addressbook +Obsoletes: %{egw_packagename}-bookmarks +Obsoletes: %{egw_packagename}-calendar +Obsoletes: %{egw_packagename}-developer_tools +Obsoletes: %{egw_packagename}-emailadmin +Obsoletes: %{egw_packagename}-felamimail +Obsoletes: %{egw_packagename}-filemanager +Obsoletes: %{egw_packagename}-infolog +Obsoletes: %{egw_packagename}-importexport +Obsoletes: %{egw_packagename}-manual +Obsoletes: %{egw_packagename}-news_admin +Obsoletes: %{egw_packagename}-notifications +Obsoletes: %{egw_packagename}-phpbrain +Obsoletes: %{egw_packagename}-phpfreechat +Obsoletes: %{egw_packagename}-phpsysinfo +Obsoletes: %{egw_packagename}-polls +Obsoletes: %{egw_packagename}-projectmanager +Obsoletes: %{egw_packagename}-registration +Obsoletes: %{egw_packagename}-resources +Obsoletes: %{egw_packagename}-sambaadmin +Obsoletes: %{egw_packagename}-sitemgr +Obsoletes: %{egw_packagename}-timesheet +Obsoletes: %{egw_packagename}-tracker +Obsoletes: %{egw_packagename}-wiki +# packages no longer in 14.1 +Obsoletes: %{name}-felamimail +Obsoletes: %{name}-phpsysinfo +Obsoletes: %{name}-polls + +%post +# Check binary paths and create links for opensuse/sles +# create symlink for suse to get scripts with /usr/bin/php working +%if 0%{?suse_version} + if [ ! -f /usr/bin/php -a -x /usr/bin/php5 ]; then \ + echo "Installing php -> php5 alternative"; \ + /usr/sbin/update-alternatives --install /usr/bin/php php /usr/bin/php5 99; \ + fi + if [ ! -f /usr/bin/pear -a -x /usr/bin/pear5 ]; then \ + echo "Installing pear -> pear5 alternative"; \ + /usr/sbin/update-alternatives --install /usr/bin/pear pear /usr/bin/pear5 99; \ + fi +%endif +%if 0%{?rhel_version} || 0%{?fedora_version} || 0%{?centos_version} + chcon -R -u user_u -r object_r -t httpd_sys_content_t %{egwdatadir} + setsebool -P httpd_can_network_connect=1 +%endif +/bin/date >> %{install_log} +%{post_install} 2>&1 | tee -a %{install_log} +echo "EGroupware install log saved to %{install_log}" + +%description +EGroupware is a web-based groupware suite written in PHP. + +EGroupware EPL combines Stylite's actual EGroupware enhancements and the recent development of the EGroupware open source project in one software package. +- Brand new Stylite features, which are not available publicly in the community edition of EGroupware +- The latest possible state of open source community features. + +This package automatically requires the EGroupware default applications: + +egroupware core with: admin, api, docs, etemplate, prefereces and setup, +addressbook, bookmarks, calendar, translation-tools, emailadmin, mail, +filemanager, infolog, manual, news admin, knowledgebase, polls, jdots, pixelegg, +projectmanager, resources, sambaadmin, sitemgr, eSync, timesheet, tracker, wiki + +It also provides an API for developing additional applications. + +Further contributed applications are available as separate packages. + +%package core +Summary: The EGroupware core +Group: Web/Database +Requires: %{php} >= 5.3.2 +Requires: %{php}-mbstring %{php}-gd %{php}-mcrypt %{php}-pear %{php}-posix %{extra_requires} %{cron} zip %{php}-json %{php}-xsl +Provides: egw-core %{version} +Provides: egw-etemplate %{version} +Provides: egw-addressbook %{version} +%if 0%{?suse_version} +Provides: /usr/bin/php +%endif +Obsoletes: %{egw_packagename}-core +Obsoletes: %{egw_packagename}-addressbook +%description core +This package provides the EGroupware core applications +(API, admin, etemplate, preferences and setup) plus addressbook. + +%package egw-pear +Version: %{version} +Summary: The EGroupware egw-pear application +Group: Web/Database +Requires: %{php}-pear +AutoReqProv: no +Requires: egw-core >= %{version} +Provides: egw-pear %{version} +Obsoletes: %{egw_packagename}-egw-pear +%description egw-pear +egw-pear contains modified pear classes necessary for EGroupware + +%package esync +Version: %{version} +Summary: The EGroupware eSync application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-esync +%description esync +Z-Push based ActiveSync protocol implementation. + +%package bookmarks +Version: %{version} +Summary: The EGroupware bookmarks application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-bookmarks +%description bookmarks +Manage your bookmarks with EGroupware. Has Netscape plugin. + +%package calendar +Version: %{version} +Summary: The EGroupware calendar application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-calendar +%description calendar +Powerful calendar with meeting request system, Alarms, ICal and E-Mail support, +and ACL security. + +%package developer_tools +Version: %{version} +Summary: The EGroupware developer_tools application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-developer_tools +%description developer_tools +The TranslationTools allow to create and extend translations-files for EGroupware. +They can search the sources for new / added phrases and show you the ones missing in your language. + +%package emailadmin +Version: %{version} +Summary: The EGroupware emailadmin application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Requires: %{php}-imap +Requires: %{name}-egw-pear >= %{version} +Obsoletes: %{egw_packagename}-emailadmin +%description emailadmin +EmailAdmin allow to maintain User email accounts + +%package mail +Version: %{version} +Summary: The EGroupware Webmail application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Requires: %{name}-emailadmin >= %{version} +Requires: %{name}-egw-pear >= %{version} +Obsoletes: %{egw_packagename}-felamimail +Obsoletes: %{name}-felamimail +%description mail +The Email application for EGroupware. + +%package filemanager +Version: %{version} +Summary: The EGroupware filemanager application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Requires: %{name}-egw-pear >= %{version} +Obsoletes: %{egw_packagename}-filemanager +%description filemanager +This is the filemanager app for EGroupware. + +%package infolog +Version: %{version} +Summary: The EGroupware infolog application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-infolog +%description infolog +This is the infolog app for EGroupware (Notes, ToDo, Phonelogs, CRM). + +%package importexport +Version: %{version} +Summary: The EGroupware importexport application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-importexport +%description importexport +This is the importexport app for EGroupware. It includes a comandline client. + +%package jdots +Version: %{version} +Summary: Old tab-based EPL template based on idots look +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +%description jdots +EPL 11.1 default template. + +%package pixelegg +Version: %{version} +Summary: New default template for EGroupware +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +%description pixelegg +New 14.1 default template from Pixelegg. + +%package manual +Version: %{version} +Summary: The EGroupware manual application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Requires: %{name}-wiki >= %{version} +Obsoletes: %{egw_packagename}-manual +%description manual +This is the manual app for EGroupware: online help system. + +%package news_admin +Version: %{version} +Summary: The EGroupware news_admin application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-news_admin +%description news_admin +This is the news_admin app for EGroupware. + +%package notifications +Version: %{version} +Summary: The EGroupware notifications application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-notifications +%description notifications +This is the notifications app for EGroupware. + +%package phpbrain +Version: %{version} +Summary: The EGroupware phpbrain application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-phpbrain +%description phpbrain +This is a knowledgebase for EGroupware. + +%package phpfreechat +Version: %{version} +Summary: The EGroupware chat application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-phpfreechat +%description phpfreechat +Chat with other EGroupware users. A port of phpFreeChat for EGroupware. + +#%package phpsysinfo +#Version: %{version} +#Summary: The EGroupware phpsysinfo application +#Group: Web/Database +#AutoReqProv: no +#Requires: egw-core >= %{version} +#Obsoletes: %{egw_packagename}-phpsysinfo +#%description phpsysinfo +#This is the phpsysinfo app for EGroupware. + +#%package polls +#Version: %{version} +#Summary: The EGroupware polls application +#Group: Web/Database +#AutoReqProv: no +#Requires: egw-core >= %{version} +#Obsoletes: %{egw_packagename}-polls +#%description polls +#This is the polls app for EGroupware. + +%package projectmanager +Version: %{version} +Summary: The EGroupware projectmanager application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version}, +Obsoletes: %{egw_packagename}-projectmanager +%description projectmanager +The projectmanager is EGroupware's new project management application. +It's fully integrated into EGroupware and use the data of InfoLog and Calendar. +Plugable datasources allow to support and manage further applications. + +%package registration +Version: %{version} +Summary: The EGroupware registration application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-registration +%description registration +This is the registration app for EGroupware. + +%package resources +Version: %{version} +Summary: The EGroupware resources application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-resources +%description resources +resources is a resource booking sysmtem for EGroupware. +Which integrates into the calendar. + +%package sambaadmin +Version: %{version} +Summary: The EGroupware sambaadmin application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-sambaadmin +%description sambaadmin +Manage LDAP based sambaacounts and workstations. + +%package sitemgr +Version: %{version} +Summary: The EGroupware Sitemanager CMS application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-sitemgr +%description sitemgr +This is the Sitemanager CMS app for EGroupware. + +#%package stylite +#Version: %{version} +#Summary: Stylite EPL enhancements +#License: proprietary, see http://www.stylite.de/EPL +#Group: Web/Database +#AutoReqProv: no +#Requires: egw-core >= %{version} +#%description stylite +#The package contains Stylite proprietary EPL enhancements: +#- stylite.links stream wrapper allows browsing of app directories +#- filemanger favorites + +%package timesheet +Version: %{version} +Summary: The EGroupware timesheet application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-timesheet +%description timesheet +Simple timesheet application, which allow to record and report +the times and other expenses. It can be uses as well standalone +as together with the ProjectManager application. + +%package tracker +Version: %{version} +Summary: The EGroupware trouble ticket system application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version} +Obsoletes: %{egw_packagename}-tracker +%description tracker +This is the trouble ticket system app for EGroupware. + +%package wiki +Version: %{version} +Summary: The EGroupware wiki application +Group: Web/Database +AutoReqProv: no +Requires: egw-core >= %{version}, +Obsoletes: %{egw_packagename}-wiki +%description wiki +This is the wiki app for EGroupware. + +#%package esyncpro +#Version: %{version} +#Summary: Stylite eSync Provisioning +#License: proprietary +#Group: Web/Database +#AutoReqProv: no +#Requires: egw-core >= %{version}, %{name}-esync >= %{version} +#%description esyncpro +#Stylite's eSync Provisioning app allows to edit and assign +#policies to devices and keeps a central list of syncing devices. +#It also allows to remote wipe or view sync logs of all devices. + +#%post esyncpro +# update/install esyncpro +#%{post_install} --install-update-app esyncpro 2>&1 | tee -a %{install_log} + +%prep +echo "Detected php: %{php}" +echo "post_install: %{post_install}" +%setup0 -c -n %{egwdirname} +%setup1 -T -D -a 1 -n %{egwdirname} +#%setup2 -T -D -a 2 -n %{egwdirname} +%setup3 -T -D -a 3 -n %{egwdirname} +#%setup4 -T -D -a 4 -n %{egwdirname} +%setup5 -T -D -a 5 -n %{egwdirname} +%setup6 -T -D -a 6 -n %{egwdirname} +#%setup9 -T -D -a 9 -n %{egwdirname} +%patch0 -p 0 +#%patch1 -p 0 +#%patch2 -p 0 + +%build + +%install +[ "%{buildroot}" != "/" ] && rm -rf %{buildroot} +mkdir -p $RPM_BUILD_ROOT%{egwdir} +mkdir -p $RPM_BUILD_ROOT%{httpdconfd} +sed 's/\/usr\/share\/pear/%{pear_dir}/' egroupware/doc/rpm-build/apache.conf > $RPM_BUILD_ROOT%{httpdconfd}/egroupware.conf +mkdir -p $RPM_BUILD_ROOT/etc/cron.d +sed 's/apache/%{apache_user}/' egroupware/doc/rpm-build/egroupware.cron > $RPM_BUILD_ROOT/etc/cron.d/egroupware +mkdir -p $RPM_BUILD_ROOT%{egwdatadir}/default/files +mkdir -p $RPM_BUILD_ROOT%{egwdatadir}/default/backup +cp egroupware/doc/rpm-build/header.inc.php $RPM_BUILD_ROOT%{egwdatadir} +cp -aRf egroupware/* $RPM_BUILD_ROOT%{egwdir} +cd %{buildroot}%{egwdir} +ln -s ../../..%{egwdatadir}/header.inc.php + +%clean +[ "%{buildroot}" != "/" ] && rm -rf %{buildroot} + +# egroupware metapackage seems to need some files to be build ... +%files +%defattr(-,root,root) +%dir %{egwdir} +%dir %attr(0700,%{apache_user},%{apache_group}) %{egwdatadir} + +%files core +%defattr(-,root,root) +%dir %{egwdir} +%{egwdir}/about.php +%{egwdir}/header.inc.php +%{egwdir}/header.inc.php.template +%{egwdir}/index.php +%{egwdir}/json.php +%{egwdir}/login.php +%{egwdir}/logout.php +%{egwdir}/redirect.php +%{egwdir}/remote.php +%{egwdir}/rpc.php +%{egwdir}/set_box.php +%{egwdir}/status.php +%{egwdir}/svn-helper.php +%{egwdir}/groupdav.php +%{egwdir}/groupdav.htaccess +%{egwdir}/webdav.php +%{egwdir}/addressbook +%{egwdir}/admin +%{egwdir}/doc +%{egwdir}/etemplate +%{egwdir}/files +%{egwdir}/home +%{egwdir}/phpgwapi +%{egwdir}/preferences +%{egwdir}/setup +%config(noreplace) %attr(0644,root,root) /etc/cron.d/egroupware +%config(noreplace) %attr(0644,root,root) %{httpdconfd}/egroupware.conf +%if 0%{?suse_version} + %dir %attr(0755,root,root) /etc/apache2 + %dir %attr(0755,root,root) %{httpdconfd} +%endif +%dir %attr(0700,%{apache_user},%{apache_group}) %{egwdatadir} +%dir %attr(0700,%{apache_user},%{apache_group}) %{egwdatadir}/default +%dir %attr(0700,%{apache_user},%{apache_group}) %{egwdatadir}/default/files +%dir %attr(0700,%{apache_user},%{apache_group}) %{egwdatadir}/default/backup +%config(noreplace) %attr(0640,%{apache_user},%{apache_group}) %{egwdatadir}/header.inc.php + +%files bookmarks +%defattr(-,root,root) +%{egwdir}/bookmarks + +%files esync +%defattr(-,root,root) +%{egwdir}/activesync + +#%files esyncpro +#%defattr(-,root,root) +#%{egwdir}/esyncpro + +%%files calendar +%defattr(-,root,root) +%{egwdir}/calendar + +%files developer_tools +%defattr(-,root,root) +%{egwdir}/developer_tools + +%files egw-pear +%defattr(-,root,root) +%{egwdir}/egw-pear + +%files emailadmin +%defattr(-,root,root) +%{egwdir}/emailadmin + +%files filemanager +%defattr(-,root,root) +%{egwdir}/filemanager + +%files infolog +%defattr(-,root,root) +%{egwdir}/infolog + +%files importexport +%defattr(-,root,root) +%{egwdir}/importexport + +%files pixelegg +%defattr(-,root,root) +%{egwdir}/pixelegg + +%files jdots +%defattr(-,root,root) +%{egwdir}/jdots + +%files mail +%defattr(-,root,root) +%{egwdir}/mail + +%files manual +%defattr(-,root,root) +%{egwdir}/manual + +%files news_admin +%defattr(-,root,root) +%{egwdir}/news_admin + +%files notifications +%defattr(-,root,root) +%{egwdir}/notifications + +%files phpbrain +%defattr(-,root,root) +%{egwdir}/phpbrain + +%files phpfreechat +%defattr(-,root,root) +%{egwdir}/phpfreechat + +#%files phpsysinfo +#%defattr(-,root,root) +#%{egwdir}/phpsysinfo + +#%files polls +#%defattr(-,root,root) +#%{egwdir}/polls + +%files projectmanager +%defattr(-,root,root) +%{egwdir}/projectmanager + +%files registration +%defattr(-,root,root) +%{egwdir}/registration + +%files resources +%defattr(-,root,root) +%{egwdir}/resources + +%files sambaadmin +%defattr(-,root,root) +%{egwdir}/sambaadmin + +%files sitemgr +%defattr(-,root,root) +%{egwdir}/sitemgr + +#%files stylite +#%defattr(-,root,root) +#%{egwdir}/stylite + +%files timesheet +%defattr(-,root,root) +%{egwdir}/timesheet + +%files tracker +%defattr(-,root,root) +%{egwdir}/tracker + +%files wiki +%defattr(-,root,root) +%{egwdir}/wiki