# remirepo/fedora spec file for php-nyholm-psr7 # # Copyright (c) 2019-2023 Remi Collet # License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # %global bootstrap 0 # github %global gh_commit 3cb4d163b58589e47b35103e8e5e6a6a475b47be %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner Nyholm %global gh_project psr7 # packagist %global pk_vendor nyholm %global pk_project %{gh_project} %global major %nil # namespace %global php_home %{_datadir}/php %global ns_vendor Nyholm %global ns_project Psr7 %bcond_without tests # php-http/psr7-integration-tests 1.1.0 %global psr7_integration_tests_commit b63c2f50c114a474086c6801aea58c0aa96f9b27 %global psr7_integration_tests_short %(c=%{psr7_integration_tests_commit}; echo ${c:0:7}) # http-interop/http-factory-tests 0.9.0 %global http_factory_tests_commit 642056c5360e8a74779cbf133afbc8aa2c174e15 %global http_factory_tests_short %(c=%{http_factory_tests_commit}; echo ${c:0:7}) Name: php-%{pk_vendor}-%{pk_project}%{major} Version: 1.8.0 Release: 1%{?dist} Summary: A fast PHP7 implementation of PSR-7 License: MIT URL: https://github.com/%{gh_owner}/%{gh_project} # git snapshot for skip .gitattributes Source0: %{name}-%{version}-%{gh_short}.tgz Source1: makesrc.sh # Only used for tests and no version released (dev-master required) Source2: https://github.com/php-http/psr7-integration-tests/archive/%{psr7_integration_tests_commit}/%{name}-integration-tests-%{psr7_integration_tests_short}.tar.gz Source3: https://github.com/http-interop/http-factory-tests/archive/%{http_factory_tests_commit}/%{name}-factory-tests-%{http_factory_tests_short}.tar.gz BuildArch: noarch BuildRequires: php(language) >= 7.2 BuildRequires: php-pcre BuildRequires: php-spl %if %{with tests} # remirepo:1 %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 BuildRequires: (php-composer(psr/http-message) >= 1.1 with php-composer(psr/http-message) < 3) BuildRequires: (php-composer(php-http/message-factory) >= 1.0 with php-composer(php-http/message-factory) < 2) BuildRequires: (php-composer(psr/http-factory) >= 1.0 with php-composer(psr/http-factory) < 2) BuildRequires: (php-composer(symfony/error-handler) >= 4.4 with php-composer(symfony/error-handler) < 5) # remirepo:6 %else BuildRequires: php-psr-http-message >= 1.1 BuildRequires: php-http-message-factory BuildRequires: php-psr-http-factory BuildRequires: php-symfony4-error-handler >= 4.4 %endif # from composer.json, "require-dev": { # "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", # "php-http/message-factory": "^1.0", # "php-http/psr7-integration-tests": "^1.0", # "http-interop/http-factory-tests": "^0.9", # "symfony/error-handler": "^4.4" %global phpunit %{_bindir}/phpunit9 BuildRequires: phpunit9 >= 9.4 %endif # Autoloader BuildRequires: php-fedora-autoloader-devel >= 1.0.0 # from composer.json, "require": { # "php": ">=7.2", # "psr/http-message": "^1.1 || || ^2.0", # "psr/http-factory": "^1.0" Requires: php(language) >= 7.2 # remirepo:1 %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 Requires: (php-composer(psr/http-message) >= 1.1 with php-composer(psr/http-message) < 3) Requires: (php-composer(psr/http-factory) >= 1.0 with php-composer(psr/http-factory) < 2) # remirepo:4 %else Requires: php-psr-http-message >= 1.1 Requires: php-psr-http-factory %endif # from phpcompatinfo report for version 1.1.0 Requires: php-pcre Requires: php-spl # Autoloader Requires: php-composer(fedora/autoloader) Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} Provides: php-composer(psr/http-message-implementation) = 1.0 Provides: php-composer(psr/http-factory-implementation) = 1.0 %description A super lightweight PSR-7 implementation. Very strict and very fast.. Autoloader: %{php_home}/%{ns_vendor}/%{ns_project}%{major}/autoload.php %prep %setup -q -n %{gh_project}-%{gh_commit} -a2 -a3 %build # Generate the Autoloader phpab --tolerant --template fedora --output src/autoload.php src cat << 'EOF' | tee -a src/autoload.php \Fedora\Autoloader\Dependencies::required([ [ '%{_datadir}/php/Psr/Http/Message2/autoload.php', '%{_datadir}/php/Psr/Http/Message/autoload.php', ], '%{_datadir}/php/Http/Message/autoload.php', ]); EOF # Generate test Autoloader phpab --template fedora --output test-autoload.php \ psr7-integration-tests-%{psr7_integration_tests_commit} \ http-factory-tests-%{http_factory_tests_commit} %install mkdir -p %{buildroot}%{php_home}/%{ns_vendor} cp -pr src %{buildroot}%{php_home}/%{ns_vendor}/%{ns_project}%{major} %check %if %{with tests} mkdir vendor cat <phpunit.xml : Run upstream test suite : Ignore online tests # TODO testCanDetachStream may fail on local build (extension conflicts ?) # testIsNotSeekable|testIsNotWritable|testIsNotReadable|testRewindNotSeekable fail only in mock ret=0 for cmdarg in "php %{phpunit}" php80 php81 php82; do if which $cmdarg; then set $cmdarg $1 ${2:-%{_bindir}/phpunit9} \ --filter '^((?!(testIsNotSeekable|testIsNotWritable|testIsNotReadable|testRewindNotSeekable|testCanDetachStream)).)*$' \ --verbose || ret=1 fi done exit $ret %else : bootstrap build with test suite disabled %endif %files # remirepo:1 %{!?_licensedir:%global license %%doc} %license LICENSE %doc *.md %doc composer.json %{php_home}/%{ns_vendor} %changelog * Wed May 3 2023 Remi Collet - 1.8.0-1 - update to 1.8.0 - drop dependency on php-http/message-factory * Thu Apr 20 2023 Remi Collet - 1.7.0-1 - update to 1.7.0 - raise dependency on psr/http-message 1.1 and allow 2.0 - raise dependency on PHP 7.2 * Wed Apr 19 2023 Remi Collet - 1.6.1-1 - update to 1.6.1 * Tue Apr 11 2023 Remi Collet - 1.6.0-1 - update to 1.6.0 * Wed Jun 22 2022 Remi Collet - 1.5.1-1 - update to 1.5.1 * Thu Feb 3 2022 Remi Collet - 1.5.0-1 - update to 1.5.0 * Mon Jul 5 2021 Remi Collet - 1.4.1-1 - update to 1.4.1 * Mon Mar 22 2021 Remi Collet - 1.4.0-2 - fir for EL-7 * Wed Feb 24 2021 Remi Collet - 1.4.0-1 - update to 1.4.0 * Fri Jan 29 2021 Remi Collet - 1.3.2-2 - fix test path and FTBFS * Mon Nov 16 2020 Remi Collet - 1.3.2-1 - update to 1.3.2 - switch to phpunit9 * Mon May 25 2020 Remi Collet - 1.3.0-1 - update to 1.3.0 * Fri Sep 6 2019 Remi Collet - 1.2.1-1 - update to 1.2.1 (no change) * Fri Aug 23 2019 Remi Collet - 1.2.0-1 - update to 1.2.0 * Fri Jun 28 2019 Remi Collet - 1.1.0-2 - License is MIT * Fri Jun 28 2019 Remi Collet - 1.1.0-1 - initial package, version 1.1.0