diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | composer.json | 88 | ||||
| -rw-r--r-- | php-sabre-vobject4-autoload.php | 10 | ||||
| -rw-r--r-- | php-sabre-vobject4.spec | 200 | ||||
| -rw-r--r-- | sabre-vobject-bin.patch | 66 | 
5 files changed, 368 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/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 @@ +<?php +/* Autoloader for sabre/vobject v4 and its dependencies */ + +require_once '/usr/share/php/Fedora/Autoloader/autoload.php'; + +\Fedora\Autoloader\Autoload::addPsr4('Sabre\\VObject\\', __DIR__); +\Fedora\Autoloader\Dependencies::required([ +	'/usr/share/php/Sabre/Xml/autoload.php', +]); + diff --git a/php-sabre-vobject4.spec b/php-sabre-vobject4.spec new file mode 100644 index 0000000..0f69b3f --- /dev/null +++ b/php-sabre-vobject4.spec @@ -0,0 +1,200 @@ +# remirepo/fedora spec file for php-sabre-vobject4 +# +# Copyright (c) 2013-2017 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit    d0fde2fafa2a3dad1f559c2d1c2591d4fd75ae3c +%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} + +%if 0%{?fedora} > 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 <remi@fedoraproject.org> - 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 <remi@fedoraproject.org> - 3.5.3-3 +- switch from symfony/class-loader to fedora/autoloader + +* Fri Oct  7 2016 Remi Collet <remi@fedoraproject.org> - 3.5.3-1 +- update to 3.5.3 + +* Tue Apr 26 2016 Remi Collet <remi@fedoraproject.org> - 3.5.2-1 +- update to 3.5.2 + +* Thu Apr  7 2016 Remi Collet <remi@fedoraproject.org> - 3.5.1-1 +- update to 3.5.1 + +* Fri Mar 11 2016 Remi Collet <remi@fedoraproject.org> - 3.5.0-1 +- update to 3.5.0 + +* Wed Feb 24 2016 Remi Collet <remi@fedoraproject.org> - 3.4.6-1 +- update to 3.4.6 + +* Wed Jul 16 2014 Remi Collet <remi@fedoraproject.org> - 3.2.4-1 +- update to 3.2.4 + +* Wed Jun 18 2014 Remi Collet <remi@fedoraproject.org> - 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 <remi@fedoraproject.org> - 3.2.2-1 +- update to 3.2.2 + +* Tue May  6 2014 Remi Collet <remi@fedoraproject.org> - 3.2.1-1 +- update to 3.2.1 + +* Sun Apr  6 2014 Remi Collet <remi@fedoraproject.org> - 3.2.0-1 +- update to 3.2.0 + +* Thu Feb 20 2014 Remi Collet <remi@fedoraproject.org> - 3.1.3-1 +- update to 3.1.3 + +* Tue Dec 31 2013 Remi Collet <remi@fedoraproject.org> - 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/');  | 
