%global github_owner schmittjoh %global github_name php-collection %global github_version 0.4.0 %global github_commit b8bf55a0a929ca43b01232b36719f176f86c7e83 %global lib_name PhpCollection %global php_min_ver 5.3.0 # "phpoption/phpoption": "1.*" %global phpoption_min_ver 1.0 %global phpoption_max_ver 2.0 Name: php-%{lib_name} Version: %{github_version} Release: 1%{?dist} Summary: General purpose collection library for PHP Group: Development/Libraries License: ASL 2.0 URL: http://jmsyst.com/libs/%{github_name} # To create source: # wget https://github.com/schmittjoh/php-collection/archive/%%{github_commit}.tar.gz # php-PhpCollection-strip.sh %%{github_version} %%{github_commit} Source0: %{name}-%{github_version}-%{github_commit}.tar.gz Source1: %{name}-strip.sh BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch # For tests BuildRequires: php(language) >= %{php_min_ver} BuildRequires: php-pear(pear.phpunit.de/PHPUnit) BuildRequires: php-PhpOption >= %{phpoption_min_ver} BuildRequires: php-PhpOption < %{phpoption_max_ver} # For tests: phpcompatinfo (computed from version 0.4.0) BuildRequires: php-spl Requires: php(language) >= %{php_min_ver} Requires: php-PhpOption >= %{phpoption_min_ver} Requires: php-PhpOption < %{phpoption_max_ver} # phpcompatinfo (computed from version 0.4.0) Requires: php-spl %description This library adds basic collections for PHP. Collections can be seen as more specialized arrays for which certain contracts are guaranteed. Supported Collections: * Sequences ** Keys: numerical, consequentially increasing, no gaps ** Values: anything, duplicates allowed ** Classes: Sequence, SortedSequence * Maps ** Keys: strings or objects, duplicate keys not allowed ** Values: anything, duplicates allowed ** Classes: Map, ObjectMap (not yet implemented) * Sets (not yet implemented) ** Keys: not meaningful ** Values: anything, each value must be unique (===) ** Classes: Set General Characteristics: * Collections are mutable (new elements may be added, existing elements may be modified or removed). Specialized immutable versions may be added in the future though. * Equality comparison between elements are always performed using the shallow comparison operator (===). * Sorting algorithms are unstable, that means the order for equal elements is undefined (the default, and only PHP behavior). %prep %setup -q -n %{github_name}-%{github_commit} %build # Empty build section, nothing to build %install mkdir -p -m 755 %{buildroot}%{_datadir}/php cp -rp src/%{lib_name} %{buildroot}%{_datadir}/php/ %check # Rewrite tests' bootstrap ( cat <<'AUTOLOAD' tests/bootstrap.php # Create PHPUnit config w/ colors turned off cat phpunit.xml.dist \ | sed 's/colors="true"/colors="false"/' \ > phpunit.xml # Skip test known to fail sed 's/function testMap/function SKIP_testMap/' \ -i tests/PhpCollection/Tests/SequenceTest.php %{_bindir}/phpunit --include-path="./src:./tests" %files %defattr(-,root,root,-) %doc LICENSE *.md composer.json %{_datadir}/php/%{lib_name} %changelog * Tue Apr 22 2014 Remi Collet 0.4.0-1 - backport 0.4.0 for remi repo. * Mon Apr 21 2014 Shawn Iwinski - 0.4.0-1 - Updated to 0.4.0 (BZ #1078754) * Mon Dec 30 2013 Remi Collet 0.3.1-1 - backport 0.3.1 for remi repo. * Mon Dec 30 2013 Shawn Iwinski 0.3.1-1 - Updated to 0.3.1 (BZ #1045915) - Spec cleanup * Thu Jul 18 2013 Remi Collet 0.3.0-1 - backport 0.3.0 for remi repo. * Wed Jul 17 2013 Shawn Iwinski 0.3.0-1 - Updated to 0.3.0 * Tue Mar 19 2013 Remi Collet 0.2.0-2 - backport 0.2.0 for remi repo. * Mon Mar 18 2013 Shawn Iwinski 0.2.0-2 - Added %%{name}-strip.sh as Source1 * Sat Mar 16 2013 Shawn Iwinski 0.2.0-1 - Updated to version 0.2.0 - Added phpoption_max_ver global - Bad licensed files stripped from source - php-common => php(language) - Removed tests sub-package * Wed Jan 23 2013 Shawn Iwinski 0.1.0-1 - Initial package