diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | php-sabre-vobject.spec | 104 | ||||
-rw-r--r-- | sabre-vobject-bin.patch | 34 |
3 files changed, 142 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-vobject.spec b/php-sabre-vobject.spec new file mode 100644 index 0000000..cfe56ec --- /dev/null +++ b/php-sabre-vobject.spec @@ -0,0 +1,104 @@ +# Spec file for php-sabre-vobject +# +# 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 961546d71c332ab34ad1c5bba7f372c08b388dcf +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner fruux +%global gh_project sabre-vobject +%global with_tests %{?_without_tests:0}%{!?_without_tests:1} + +Name: php-%{gh_project} +Summary: Library to parse and manipulate iCalendar and vCard objects +Version: 3.1.3 +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 autloader by PSR-O trivial one +Patch0: %{gh_project}-bin.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) +%endif + +# From composer.json +Requires: php(language) >= 5.3.1 +Requires: php-mbstring +# From phpcompatinfo report for version 3.1.3 +Requires: php-date +Requires: php-json +Requires: php-pcre +Requires: php-spl +Requires: php-xml + + +%description +The VObject library allows you to easily parse and manipulate iCalendar +and vCard objects using PHP. The goal of the VObject library is to create +a very complete library, with an easy to use API. + +This project is a spin-off from SabreDAV, where it has been used for several +years. The VObject library has 100% unittest coverage. + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p0 -b .psr0 + +: Create trivial PSR0 autoloader for tests +cat <<EOF | tee psr0.php +<?php +spl_autoload_register(function (\$class) { + \$file = str_replace('\\\\', '/', \$class).'.php'; + @include \$file; +}); +EOF + + +%build +# nothing to build + + +%install +# Install as a PSR-0 library +mkdir -p %{buildroot}%{_datadir}/php +cp -pr lib/Sabre %{buildroot}%{_datadir}/php/Sabre + +# Install the command +install -Dpm 0755 bin/vobject %{buildroot}/%{_bindir}/vobject + +%check +%if %{with_tests} +: Run upstream test suite against installed library +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 +%{_datadir}/php/Sabre +%{_bindir}/vobject + + +%changelog +* Tue Dec 31 2013 Remi Collet <remi@fedoraproject.org> - 3.1.3-1 +- Initial packaging
\ No newline at end of file diff --git a/sabre-vobject-bin.patch b/sabre-vobject-bin.patch new file mode 100644 index 0000000..8ae240b --- /dev/null +++ b/sabre-vobject-bin.patch @@ -0,0 +1,34 @@ +--- bin/vobject.old 2013-12-31 15:54:44.000000000 +0100 ++++ bin/vobject 2013-12-31 15:57:44.000000000 +0100 +@@ -1,24 +1,17 @@ +-#!/usr/bin/env php ++#!/usr/bin/php + <?php + + namespace Sabre\VObject; + +-// This sucks.. we have to try to find the composer autoloader. But chances +-// are, we can't find it this way. So we'll do our bestest +-$paths = array( +- __DIR__ . '/../vendor/autoload.php', // In case vobject is cloned directly +- __DIR__ . '/../../../autoload.php', // In case vobject is a composer dependency. +-); +- +-foreach($paths as $path) { +- if (file_exists($path)) { +- include $path; +- break; ++spl_autoload_register(function ($class) { ++ if (strpos($class, 'Sabre\\')===0) { ++ $file = str_replace('\\', '/', $class).'.php'; ++ @include $file; + } +-} ++}); + + if (!class_exists('Sabre\\VObject\\Version')) { +- fwrite(STDERR, "Composer autoloader could not be properly loaded.\n"); ++ fwrite(STDERR, "Autoloader could not be properly loaded.\n"); + die(1); + } + |