summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2013-12-31 16:06:52 +0100
committerRemi Collet <fedora@famillecollet.com>2013-12-31 16:06:52 +0100
commit44f9a8715a684cc1e3ef0b97f9bffe577f0161f3 (patch)
tree791f44ea127c345ed256740707c00600d9f1e64b
php-sabre-vobject: 3.1.3: new package
-rw-r--r--Makefile4
-rw-r--r--php-sabre-vobject.spec104
-rw-r--r--sabre-vobject-bin.patch34
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);
+ }
+