From 8030a23ae6f058385334ef82409c18c95c359dad Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 17 Jan 2017 14:29:07 +0100 Subject: php-sabre-vobject4: 4.1.2 - New package --- Makefile | 4 + composer.json | 88 ++++++++++++++++++ php-sabre-vobject4-autoload.php | 10 ++ php-sabre-vobject4.spec | 200 ++++++++++++++++++++++++++++++++++++++++ sabre-vobject-bin.patch | 66 +++++++++++++ 5 files changed, 368 insertions(+) create mode 100644 Makefile create mode 100644 composer.json create mode 100644 php-sabre-vobject4-autoload.php create mode 100644 php-sabre-vobject4.spec create mode 100644 sabre-vobject-bin.patch 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/composer.json b/composer.json new file mode 100644 index 0000000..cfa4a71 --- /dev/null +++ b/composer.json @@ -0,0 +1,88 @@ +{ + "name": "sabre/vobject", + "description" : "The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects", + "keywords" : [ + "iCalendar", + "iCal", + "vCalendar", + "vCard", + "jCard", + "jCal", + "ics", + "vcf", + "xCard", + "xCal", + "freebusy", + "recurrence", + "availability", + "rfc2425", + "rfc2426", + "rfc2739", + "rfc4770", + "rfc5545", + "rfc5546", + "rfc6321", + "rfc6350", + "rfc6351", + "rfc6474", + "rfc6638", + "rfc6715", + "rfc6868" + ], + "homepage" : "http://sabre.io/vobject/", + "license" : "BSD-3-Clause", + "require" : { + "php" : ">=5.5", + "ext-mbstring" : "*", + "sabre/xml" : ">=1.5 <3.0" + }, + "require-dev" : { + "phpunit/phpunit" : "*", + "sabre/cs" : "^1.0.0" + + }, + "suggest" : { + "hoa/bench" : "If you would like to run the benchmark scripts" + }, + "authors" : [ + { + "name" : "Evert Pot", + "email" : "me@evertpot.com", + "homepage" : "http://evertpot.com/", + "role" : "Developer" + }, + { + "name" : "Dominik Tobschall", + "email" : "dominik@fruux.com", + "homepage" : "http://tobschall.de/", + "role" : "Developer" + }, + { + "name" : "Ivan Enderlin", + "email" : "ivan.enderlin@hoa-project.net", + "homepage" : "http://mnt.io/", + "role" : "Developer" + } + ], + "support" : { + "forum" : "https://groups.google.com/group/sabredav-discuss", + "source" : "https://github.com/fruux/sabre-vobject" + }, + "autoload" : { + "psr-4" : { + "Sabre\\VObject\\" : "lib/" + } + }, + "bin" : [ + "bin/vobject", + "bin/generate_vcards" + ], + "extra" : { + "branch-alias" : { + "dev-master" : "4.0.x-dev" + } + }, + "config" : { + "bin-dir" : "bin" + } +} diff --git a/php-sabre-vobject4-autoload.php b/php-sabre-vobject4-autoload.php new file mode 100644 index 0000000..427a243 --- /dev/null +++ b/php-sabre-vobject4-autoload.php @@ -0,0 +1,10 @@ + 25 +%global with_cmd 1 +%else +%global with_cmd 0 +%endif + +Name: php-%{gh_project}4 +Summary: Library to parse and manipulate iCalendar and vCard objects +Version: 4.1.2 +Release: 1%{?dist} + +URL: http://sabre.io/vobject/ +License: BSD +Group: Development/Libraries +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{gh_short}.tar.gz +Source1: %{name}-autoload.php + +# replace composer autloader +Patch0: %{gh_project}-bin.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch +%if %{with_tests} +BuildRequires: php(language) >= 5.5 +BuildRequires: php-mbstring +BuildRequires: php-composer(sabre/xml) < 3 +BuildRequires: php-composer(sabre/xml) >= 1.5 +BuildRequires: php-date +BuildRequires: php-json +BuildRequires: php-pcre +BuildRequires: php-spl +BuildRequires: php-xml +# From composer.json, "require-dev" +# "phpunit/phpunit" : "*", +# "squizlabs/php_codesniffer": "*" +# "sabre/cs" : "^1.0.0" +BuildRequires: php-composer(phpunit/phpunit) +# Autoloader +BuildRequires: php-composer(fedora/autoloader) +%endif + +# From composer.json, "require" +# "php" : ">=5.5", +# "ext-mbstring" : "*", +# "sabre/xml" : ">=1.5 <3.0" +Requires: php(language) >= 5.5 +Requires: php-mbstring +Requires: php-composer(sabre/xml) >= 1.5 +Requires: php-composer(sabre/xml) < 3 +# From phpcompatinfo report for version 4.1.2 +%if %{with_cmd} +Requires: php-cli +%endif +Requires: php-date +Requires: php-json +Requires: php-pcre +Requires: php-spl +Requires: php-xml +# Autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(sabre/vobject) = %{version} + + +%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. + +Autoloader: %{_datadir}/php/Sabre/VObject/autoload.php + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +%patch0 -p1 -b .rpm +cp %{SOURCE1} lib/autoload.php + + +%build +# nothing to build + + +%install +# Install as a PSR-0 library +mkdir -p %{buildroot}%{_datadir}/php/Sabre +cp -pr lib %{buildroot}%{_datadir}/php/Sabre/VObject4 + +%if %{with_cmd} +# Install the commands +install -Dpm 0755 bin/vobject \ + %{buildroot}/%{_bindir}/vobject +install -Dpm 0755 bin/generate_vcards \ + %{buildroot}/%{_bindir}/generate_vcards +%endif + + +%check +%if %{with_tests} +: Fix bootstrap +cd tests +sed -e 's:@BUILDROOT@:%{buildroot}:' -i bootstrap.php + +: Run upstream test suite against installed library +# remirepo:11 +run=0 +ret=0 +if which php56; then + php56 %{_bindir}/phpunit || ret=1 + run=1 +fi +if which php71; then + php71 %{_bindir}/phpunit || ret=1 + run=1 +fi +if [ $run -eq 0 ]; then +%{_bindir}/phpunit --verbose +# remirepo:2 +fi +exit $ret +%else +: Skip upstream test suite +%endif + + +%files +%defattr(-,root,root,-) +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc *md +%doc composer.json +%{_datadir}/php/Sabre/VObject4 +%if %{with_cmd} +%{_bindir}/vobject +%{_bindir}/generate_vcards +%endif + +%changelog +* Tue Jan 17 2017 Remi Collet - 4.1.2-1 +- rename to php-sabre-vobject4 +- raise dependency on PHP version 5.5 +- add dependency on sabre/xml + +* Sat Oct 29 2016 Remi Collet - 3.5.3-3 +- switch from symfony/class-loader to fedora/autoloader + +* Fri Oct 7 2016 Remi Collet - 3.5.3-1 +- update to 3.5.3 + +* Tue Apr 26 2016 Remi Collet - 3.5.2-1 +- update to 3.5.2 + +* Thu Apr 7 2016 Remi Collet - 3.5.1-1 +- update to 3.5.1 + +* Fri Mar 11 2016 Remi Collet - 3.5.0-1 +- update to 3.5.0 + +* Wed Feb 24 2016 Remi Collet - 3.4.6-1 +- update to 3.4.6 + +* Wed Jul 16 2014 Remi Collet - 3.2.4-1 +- update to 3.2.4 + +* Wed Jun 18 2014 Remi Collet - 3.2.3-1 +- update to 3.2.3 +- add provides php-composer(sabre/vobject) +- url is now http://sabre.io/vobject/ + +* Fri May 9 2014 Remi Collet - 3.2.2-1 +- update to 3.2.2 + +* Tue May 6 2014 Remi Collet - 3.2.1-1 +- update to 3.2.1 + +* Sun Apr 6 2014 Remi Collet - 3.2.0-1 +- update to 3.2.0 + +* Thu Feb 20 2014 Remi Collet - 3.1.3-1 +- update to 3.1.3 + +* Tue Dec 31 2013 Remi Collet - 2.1.3-1 +- Initial packaging diff --git a/sabre-vobject-bin.patch b/sabre-vobject-bin.patch new file mode 100644 index 0000000..79ed1a5 --- /dev/null +++ b/sabre-vobject-bin.patch @@ -0,0 +1,66 @@ +diff -up ./bin/generate_vcards.rpm ./bin/generate_vcards +--- ./bin/generate_vcards.rpm 2017-01-17 14:09:13.368837753 +0100 ++++ ./bin/generate_vcards 2017-01-17 14:12:49.417890498 +0100 +@@ -6,8 +6,7 @@ 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 = [ +- __DIR__ . '/../vendor/autoload.php', // In case vobject is cloned directly +- __DIR__ . '/../../../autoload.php', // In case vobject is a composer dependency. ++ '/usr/share/php/Sabre/VObject4/autoload.php', // RPM installation + ]; + + foreach($paths as $path) { +@@ -18,7 +17,7 @@ foreach($paths as $path) { + } + + 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); + } + +diff -up ./bin/vobject.rpm ./bin/vobject +--- ./bin/vobject.rpm 2017-01-17 14:12:09.586696412 +0100 ++++ ./bin/vobject 2017-01-17 14:12:40.301846078 +0100 +@@ -6,8 +6,7 @@ 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 = [ +- __DIR__ . '/../vendor/autoload.php', // In case vobject is cloned directly +- __DIR__ . '/../../../autoload.php', // In case vobject is a composer dependency. ++ '/usr/share/php/Sabre/VObject4/autoload.php', // RPM installation + ]; + + foreach($paths as $path) { +@@ -18,7 +17,7 @@ foreach($paths as $path) { + } + + if (!class_exists('Sabre\\VObject\\Version')) { +- fwrite(STDERR, "Composer autoloader could not be loaded.\n"); ++ fwrite(STDERR, "Autoloader could not be loaded.\n"); + die(1); + } + +diff -up ./tests/bootstrap.php.rpm ./tests/bootstrap.php +--- ./tests/bootstrap.php.rpm 2016-12-06 05:14:09.000000000 +0100 ++++ ./tests/bootstrap.php 2017-01-17 14:14:50.960482740 +0100 +@@ -3,8 +3,7 @@ + date_default_timezone_set('UTC'); + + $try = [ +- __DIR__ . '/../vendor/autoload.php', +- __DIR__ . '/../../../autoload.php', ++ '@BUILDROOT@/usr/share/php/Sabre/VObject4/autoload.php', // RPM installation + ]; + + foreach ($try as $path) { +@@ -14,7 +13,7 @@ foreach ($try as $path) { + } + } + +-$autoLoader->addPsr4('Sabre\\VObject\\', __DIR__ . '/VObject'); ++\Fedora\Autoloader\Autoload::addPsr4('Sabre\\VObject\\', __DIR__ . '/VObject'); + + if (!defined('SABRE_TEMPDIR')) { + define('SABRE_TEMPDIR', __DIR__ . '/temp/'); -- cgit