From cb188497d90c6d5fddfe88e79780224a56121320 Mon Sep 17 00:00:00 2001 From: Alain Peyrat Date: Mon, 22 Nov 2010 17:46:48 +0000 Subject: [PATCH] New RPM for pear HTTP_WEBDAV module. Makefile for 3rd party relocated to 3rd-party. Add -e to build script to stop on errors. --- .gitattributes | 2 + 3rd-party/Makefile.rh | 53 +++++++++++++++ .../php-pear-HTTP_WebDAV_Server.spec | 76 ++++++++++++++++++++++ Makefile.rh | 27 ++------ src/fusionforge-install-1-deps.php | 2 +- src/fusionforge.spec | 1 + tests/scripts/fusionforge-build-and-test-rpm.sh | 2 +- 7 files changed, 139 insertions(+), 24 deletions(-) create mode 100644 3rd-party/Makefile.rh create mode 100644 3rd-party/php-pear-HTTP_WebDAV_Server/php-pear-HTTP_WebDAV_Server.spec diff --git a/.gitattributes b/.gitattributes index ee7dce4..0064198 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,7 @@ * text=auto !eol /.bzrignore -text 3rd-party/Makefile -text +3rd-party/Makefile.rh -text 3rd-party/PEAR/Archive_Tar-1.3.3.tgz -text svneol=unset#application/gzip 3rd-party/PEAR/Console_Getopt-1.2.3.tgz -text svneol=unset#application/gzip 3rd-party/PEAR/Mail-1.1.14.tgz -text svneol=unset#application/gzip @@ -54,6 +55,7 @@ 3rd-party/php-mail-mbox/php-mail-mbox_0.6.3-1coclico1.diff.gz -text svneol=unset#application/gzip 3rd-party/php-mail-mbox/php-mail-mbox_0.6.3-1coclico1.dsc -text 3rd-party/php-mail-mbox/php-mail-mbox_0.6.3.orig.tar.gz -text svneol=unset#application/gzip +3rd-party/php-pear-HTTP_WebDAV_Server/php-pear-HTTP_WebDAV_Server.spec -text 3rd-party/selenium/Makefile -text 3rd-party/yui/Makefile -text 3rd-party/yui/Makefile.debian -text diff --git a/3rd-party/Makefile.rh b/3rd-party/Makefile.rh new file mode 100644 index 0000000..85fffcc --- /dev/null +++ b/3rd-party/Makefile.rh @@ -0,0 +1,53 @@ +#! /usr/bin/make -f +# +# Build 3rd party rpms like htmlpurifier, jpgraph. +# +# Once built, packages are in $RPM_TMP + +RPM_TMP=~/rpmbuild +DEPOT=~/depot +BUILDRESULT=~/fusionforge_repo + +HTMLPURIFIER_VERSION=4.2.0 +WEBDAV_SERVER_VERSION=1.0.0RC5 + +all: htmlpurifier php-jpgraph php-pear-HTTP_WebDAV_Server dist + +rpmprep: + -rm -Rf $(RPM_TMP)/* + -rm -Rf ~/.rpmmacros + sh ../tools/rpmdev-setuptree + echo '%_tmppath %{_topdir}/TMP' >> ~/.rpmmacros + echo '%_buildroot %{_tmppath}/%{name}-root' >> ~/.rpmmacros + echo '%_sysconfdir /etc' >> ~/.rpmmacros + mkdir $(RPM_TMP)/TMP + +dist: + -mkdir -p $(BUILDRESULT) + cp $(RPM_TMP)/RPMS/noarch/*.rpm $(BUILDRESULT) + createrepo $(BUILDRESULT) + +# +# Building RPM for external components +# +htmlpurifier: rpmprep $(DEPOT)/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz + cp $(DEPOT)/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz $(RPM_TMP)/SOURCES/ + rpmbuild --quiet --clean -ba htmlpurifier/htmlpurifier.spec + +php-jpgraph: rpmprep + cp php-jpgraph/libphp-jpgraph_1.5.2.orig.tar.gz $(RPM_TMP)/SOURCES/jpgraph-1.5.2.tar.gz + zcat php-jpgraph/libphp-jpgraph_1.5.2-12.diff.gz > $(RPM_TMP)/SOURCES/libphp-jpgraph_1.5.2-12.diff + cp php-jpgraph/*.patch $(RPM_TMP)/SOURCES/ + rpmbuild --quiet --clean -ba php-jpgraph/php-jpgraph.spec + +php-pear-HTTP_WebDAV_Server: rpmprep $(DEPOT)/HTTP_WebDAV_Server-$(WEBDAV_SERVER_VERSION).tgz + cp $(DEPOT)/HTTP_WebDAV_Server-$(WEBDAV_SERVER_VERSION).tgz $(RPM_TMP)/SOURCES/ + rpmbuild --quiet --clean -ba php-pear-HTTP_WebDAV_Server/php-pear-HTTP_WebDAV_Server.spec + +$(DEPOT)/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz: rpmprep + mkdir -p $(DEPOT) + cd $(DEPOT); wget -q -N http://htmlpurifier.org/releases/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz + +$(DEPOT)/HTTP_WebDAV_Server-$(WEBDAV_SERVER_VERSION).tgz: rpmprep + mkdir -p $(DEPOT) + cd $(DEPOT); wget -q -N http://download.pear.php.net/package/HTTP_WebDAV_Server-$(WEBDAV_SERVER_VERSION).tgz diff --git a/3rd-party/php-pear-HTTP_WebDAV_Server/php-pear-HTTP_WebDAV_Server.spec b/3rd-party/php-pear-HTTP_WebDAV_Server/php-pear-HTTP_WebDAV_Server.spec new file mode 100644 index 0000000..5568684 --- /dev/null +++ b/3rd-party/php-pear-HTTP_WebDAV_Server/php-pear-HTTP_WebDAV_Server.spec @@ -0,0 +1,76 @@ +%define peardir /usr/share/pear +%define xmldir /var/lib/pear + +Summary: PEAR: WebDAV Server Baseclass +Name: php-pear-HTTP_WebDAV_Server +Version: 1.0.0RC5 +Release: 1 +License: New BSD License +Group: Development/Libraries +Source0: http://pear.php.net/get/HTTP_WebDAV_Server-%{version}.tgz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +URL: http://pear.php.net/package/HTTP_WebDAV_Server +#BuildRequires: PEAR::PEAR >= 1.4.7 + +BuildArch: noarch + +Requires: php-pear + +%description +RFC2518 compliant helper class for WebDAV server implementation. + +%prep +%setup -c -T +pear -q -c pearrc \ + -d php_dir=%{peardir} \ + -d doc_dir=/docs \ + -d bin_dir=%{_bindir} \ + -d data_dir=%{peardir}/data \ + -d test_dir=%{peardir}/tests \ + -d ext_dir=%{_libdir} \ + -s + +%build + +%install +rm -rf %{buildroot} +pear channel-update pear.php.net +pear -c pearrc install --nodeps --packagingroot %{buildroot} %{SOURCE0} + +# Clean up unnecessary files +rm pearrc +rm %{buildroot}/%{peardir}/.filemap +rm %{buildroot}/%{peardir}/.lock +rm -rf %{buildroot}/%{peardir}/.registry +rm -rf %{buildroot}%{peardir}/.channels +rm %{buildroot}%{peardir}/.depdb +rm %{buildroot}%{peardir}/.depdblock + +mv %{buildroot}/docs . + + +# Install XML package description +mkdir -p %{buildroot}%{xmldir} +tar -xzf %{SOURCE0} package.xml +cp -p package.xml %{buildroot}%{xmldir}/HTTP_WebDAV_Server.xml + +%clean +rm -rf %{buildroot} + +%post +pear install --nodeps --soft --force --register-only %{xmldir}/HTTP_WebDAV_Server.xml 2>&1 >/dev/null + +%postun +if [ "$1" -eq "0" ]; then + pear uninstall --nodeps --ignore-errors --register-only pear.php.net/HTTP_WebDAV_Server 2>&1 >/dev/null +fi + +%files +%defattr(-,root,root) +%doc docs/HTTP_WebDAV_Server/* +%{peardir}/* +%{xmldir}/HTTP_WebDAV_Server.xml + +%changelog +* Sat Nov 20 2010 Alain Peyrat - 1.0.0RC5 +- Initial packaging diff --git a/Makefile.rh b/Makefile.rh index 83b7f02..803484b 100644 --- a/Makefile.rh +++ b/Makefile.rh @@ -7,8 +7,6 @@ RPM_TMP=~/rpmbuild BUILDRESULT=~/fusionforge_repo -HTMLPURIFIER_VERSION=4.2.0 - VER=$(shell LANG=C grep '>software_version' src/common/include/FusionForge.class.php | cut -d\' -f2) in_svn_repo:= $(wildcard .svn/) ifeq ($(strip $(in_svn_repo)),) @@ -33,9 +31,7 @@ list: @echo ====================================================================================== @cat Makefile.rh | grep '^.*:.*#$$' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/' -all: fusionforge externals dist - -externals : htmlpurifier php-jpgraph +all: 3rd-party fusionforge dist rpmprep: -rm -Rf $(RPM_TMP)/* @@ -48,8 +44,7 @@ rpmprep: dist: -mkdir -p $(BUILDRESULT) - cp $(RPM_TMP)/SRPMS/*.rpm $(BUILDRESULT) - cp $(RPM_TMP)/RPMS/noarch/*.rpm $(BUILDRESULT) + cp $(RPM_TMP)/RPMS/noarch/*.rpm $(BUILDRESULT) createrepo $(BUILDRESULT) clean: # Clean files of fusionforge build # @@ -64,19 +59,7 @@ fusionforge: rpmprep # Build rpm fusionforge packages sed -e 's/@@VERSION@@/$(version)/g' < src/fusionforge.spec > $(RPM_TMP)/TMP/fusionforge.spec rpmbuild -bb $(RPM_TMP)/TMP/fusionforge.spec -# -# Building RPM for external components -# -htmlpurifier: rpmprep depot/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz - cp depot/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz $(RPM_TMP)/SOURCES/ - rpmbuild --quiet --clean -ba 3rd-party/htmlpurifier/htmlpurifier.spec - -php-jpgraph: rpmprep - cp 3rd-party/php-jpgraph/libphp-jpgraph_1.5.2.orig.tar.gz $(RPM_TMP)/SOURCES/jpgraph-1.5.2.tar.gz - zcat 3rd-party/php-jpgraph/libphp-jpgraph_1.5.2-12.diff.gz > $(RPM_TMP)/SOURCES/libphp-jpgraph_1.5.2-12.diff - cp 3rd-party/php-jpgraph/*.patch $(RPM_TMP)/SOURCES/ - rpmbuild --quiet --clean -ba 3rd-party/php-jpgraph/php-jpgraph.spec +3rd-party: + cd 3rd-party; $(MAKE) -f Makefile.rh all -depot/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz: rpmprep - mkdir -p depot - cd depot; wget -q -N http://htmlpurifier.org/releases/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz +.PHONY : 3rd-party diff --git a/src/fusionforge-install-1-deps.php b/src/fusionforge-install-1-deps.php index c6dd237..575ad2d 100755 --- a/src/fusionforge-install-1-deps.php +++ b/src/fusionforge-install-1-deps.php @@ -49,7 +49,7 @@ function installRedhat() { addFusionForgeYumRepo(); addDagRPMForgeYumRepo(); INFO("Installing packages: Executing YUM. Please wait...\n\n\n"); - passthru("yum -y install httpd php mailman cvs postgresql postgresql-libs postgresql-server postgresql-contrib perl-URI php-pgsql subversion mod_dav_svn postfix rcs php-gd mod_ssl wget openssh which liberation-fonts htmlpurifier php-mbstring php-jpgraph-1.5.2 poppler-utils php-pecl-zip antiword"); + passthru("yum -y install httpd php mailman cvs postgresql postgresql-libs postgresql-server postgresql-contrib perl-URI php-pgsql subversion mod_dav_svn postfix rcs php-gd mod_ssl wget openssh which liberation-fonts htmlpurifier php-mbstring php-jpgraph-1.5.2 poppler-utils php-pecl-zip php-pear-HTTP_WebDAV_Server antiword"); } function installDebian() { diff --git a/src/fusionforge.spec b/src/fusionforge.spec index bf93a19..cf643fa 100644 --- a/src/fusionforge.spec +++ b/src/fusionforge.spec @@ -63,6 +63,7 @@ Requires: htmlpurifier >= 4.0.0 Requires: sed Requires: coreutils Requires: /usr/bin/newaliases +Requires: php-pear-HTTP_WebDAV_Server # BuildRequires: sed, perl diff --git a/tests/scripts/fusionforge-build-and-test-rpm.sh b/tests/scripts/fusionforge-build-and-test-rpm.sh index dbc8c65..f627adf 100755 --- a/tests/scripts/fusionforge-build-and-test-rpm.sh +++ b/tests/scripts/fusionforge-build-and-test-rpm.sh @@ -1,4 +1,4 @@ -#!/bin/sh -x +#!/bin/sh -xe export CURDIR=`pwd` export WORKSPACE=${WORKSPACE:-$CURDIR} -- 2.1.4