diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | php-sabre-dav.spec | 137 | ||||
| -rw-r--r-- | sabre-dav-autoload.patch | 20 | 
3 files changed, 161 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..13af741 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + diff --git a/php-sabre-dav.spec b/php-sabre-dav.spec new file mode 100644 index 0000000..93721bc --- /dev/null +++ b/php-sabre-dav.spec @@ -0,0 +1,137 @@ +# Spec file for php-sabre-dav +# +# Copyright (c) 2013 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/3.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit    41c750da3c60a427cdd847df090ef0fc7e8f1076 +%global gh_short     %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner     fruux +%global gh_project   sabre-dav +%global with_tests   %{?_without_tests:0}%{!?_without_tests:1} + +Name:           php-%{gh_project} +Summary:        WebDAV Framework for PHP +Version:        1.8.7 +Release:        1%{?dist} + +URL:            https://github.com/%{gh_owner}/%{gh_project} +Source0:        https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}.tar.gz +License:        BSD +Group:          Development/Libraries + +# replace composer autoloader with trivial PSR-0 one +Patch0:         %{gh_project}-autoload.patch + +BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch:      noarch +%if %{with_tests} +BuildRequires:  php(language) >= 5.3.1 +BuildRequires:  php-pear(pear.phpunit.de/PHPUnit) > 3.7 +BuildRequires:  php-sabre-vobject > 2.1 +Requires:       php-pdo +%endif + +# From composer.json +Requires:       php(language) >= 5.3.1 +Requires:       php-ctype +Requires:       php-date +Requires:       php-dom +Requires:       php-iconv +Requires:       php-libxml +Requires:       php-mbstring +Requires:       php-pcre +Requires:       php-simplexml +Requires:       php-spl +Requires:       php-sabre-vobject > 2.1 +Requires:       php-sabre-vobject < 2.2 +# From phpcompatinfo report for version 1.8.7 +Requires:       php-curl +Requires:       php-pdo +Requires:       php-xml + + +%description +What is SabreDAV + +SabreDAV allows you to easily add WebDAV support to a PHP application. +SabreDAV is meant to cover the entire standard, and attempts to allow +integration using an easy to understand API. + +Feature list: +* Fully WebDAV compliant +* Supports Windows XP, Windows Vista, Mac OS/X, DavFSv2, Cadaver, Netdrive, +  Open Office, and probably more. +* Passing all Litmus tests. +* Supporting class 1, 2 and 3 Webdav servers. +* Locking support. +* Custom property support. +* CalDAV (tested with Evolution, iCal, iPhone and Lightning). +* CardDAV (tested with OS/X addressbook, the iOS addressbook and Evolution). +* Over 97% unittest code coverage. + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p0 + +: Create trivial PSR0 autoloader for tests +cat <<EOF | tee psr0.php +<?php +define('SABRE_HASSQLITE', 1); +define('SABRE_HASMYSQL', 0); +define("SABRE_TEMPDIR", __DIR__ . '/temp/'); + +spl_autoload_register(function (\$class) { +    \$file = str_replace('\\\\', '/', \$class).'.php'; +    @include \$file; +}); +EOF + +# drop executable as only provided as doc +chmod -x bin/* + + +%build +# nothing to build + + +%install +# Install as a PSR-0 library +mkdir -p %{buildroot}%{_datadir}/php +cp -pr lib/Sabre %{buildroot}%{_datadir}/php/Sabre + + + +%check +: Check that our autoloader is working +php -d include_path=%{buildroot}%{_datadir}/php \ +    -r 'include "Sabre/autoload.php"; echo Sabre\DAV\Version::VERSION."\n";' \ +    | grep %{version} + +%if %{with_tests} +: Run upstream test suite against installed library +mkdir temp +cd tests +phpunit \ +  --bootstrap=../psr0.php \ +  --include-path=%{buildroot}%{_datadir}/php \ +  -d date.timezone=UTC +%else +: Skip upstream test suite +%endif + + +%files +%defattr(-,root,root,-) +%doc ChangeLog composer.json LICENSE README.md +%doc docs examples bin +%{_datadir}/php/Sabre + + +%changelog +* Tue Dec 31 2013 Remi Collet <remi@fedoraproject.org> - 1.8.7-1 +- Initial packaging
\ No newline at end of file diff --git a/sabre-dav-autoload.patch b/sabre-dav-autoload.patch new file mode 100644 index 0000000..1aa22db --- /dev/null +++ b/sabre-dav-autoload.patch @@ -0,0 +1,20 @@ +--- lib/Sabre/autoload.php.old	2013-12-31 17:54:12.000000000 +0100 ++++ lib/Sabre/autoload.php	2013-12-31 17:58:28.000000000 +0100 +@@ -15,11 +15,9 @@ +  * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License +  */ + +-/** +- * We are assuming that the composer autoloader is just 2 directories up. +- * +- * This is not the case when sabredav is installed as a dependency. But, in +- * those cases it's not expected that people will look for this file anyway. +- */ +- +-require __DIR__ . '/../../vendor/autoload.php'; ++spl_autoload_register(function ($class) { ++    if (strpos($class,'Sabre\\')===0) { ++        $file = __DIR__ . str_replace('\\', '/', substr($class,5)).'.php'; ++        @include $file; ++    } ++});  | 
