diff options
Diffstat (limited to 'php-laminas-cli.spec')
-rw-r--r-- | php-laminas-cli.spec | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/php-laminas-cli.spec b/php-laminas-cli.spec new file mode 100644 index 0000000..aa5556d --- /dev/null +++ b/php-laminas-cli.spec @@ -0,0 +1,201 @@ +# remirepo/Fedora spec file for php-laminas-cli +# +# Copyright (c) 2021 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global bootstrap 0 +%global gh_commit 875a174c161c84c84c43bdff1e10cfe4ecbda704 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner laminas +%global gh_project laminas-cli +%global php_home %{_datadir}/php +%global namespace Laminas +%global library Cli +%global major %nil +%if %{bootstrap} +%global with_tests 0%{?_with_tests:1} +%else +%global with_tests 0%{!?_without_tests:1} +%endif + +Name: php-%{gh_project}%{major} +Version: 1.1.1 +Release: 1%{?dist} +Summary: Laminas Framework %{library} component v1 + +License: BSD +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: %{gh_commit}/%{name}-%{version}-%{gh_short}.tgz +Source1: makesrc.sh + +# Get rid of composer/package-versions-deprecated +Patch0: %{name}-rpm.patch + +BuildArch: noarch +# Tests +%if %{with_tests} +BuildRequires: php(language) >= 7.3 +BuildRequires: php-reflection +BuildRequires: php-pcre +BuildRequires: php-spl +# remirepo:1 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +BuildRequires: (php-composer(psr/container) >= 1.0 with php-composer(psr/container) < 2) +BuildRequires: (php-composer(symfony/console) >= 4.3 with php-composer(symfony/console) < 5) +BuildRequires: (php-composer(symfony/event-dispatcher) >= 4.3 with php-composer(symfony/event-dispatcher) < 5) +BuildRequires: (php-composer(symfony/polyfill-php80) >= 1.17 with php-composer(symfony/polyfill-php80) < 2) +BuildRequires: (php-composer(webmozart/assert) >= 1.9 with php-composer(webmozart/assert) < 2) +# From composer, "require-dev": { +# "laminas/laminas-coding-standard": "~2.0.0", +# "laminas/laminas-mvc": "^3.1.1", +# "laminas/laminas-servicemanager": "^3.4", +# "mikey179/vfsstream": "2.0.x-dev", +# "phpunit/phpunit": "^9.4.1", +# "vimeo/psalm": "^4.4.1" +BuildRequires: (php-autoloader(%{gh_owner}/laminas-mvc) >= 3.1.1 with php-autoloader(%{gh_owner}/laminas-mvc) < 4) +BuildRequires: (php-autoloader(%{gh_owner}/laminas-servicemanager) >= 3.7 with php-autoloader(%{gh_owner}/laminas-servicemanager) < 4) +BuildRequires: (php-composer(mikey179/vfsstream) >= 1.6.10 with php-composer(mikey179/vfsstream) < 2) +# remirepo:10 +%else +BuildRequires: php-psr-container >= 1.0 +BuildRequires: php-symfony4-console >= 4.3 +BuildRequires: php-symfony4-event-dispatcher >= 4.3 +BuildRequires: php-symfony-polyfill >= 1.17 +BuildRequires: php-webmozart-assert >= 1.9 +BuildRequires: php-laminas-mvc >= 3.1.1 +BuildRequires: php-laminas-servicemanager >= 3.4 +BuildRequires: php-mikey179-vfsstream +%endif +BuildRequires: phpunit9 >= 9.4.1 +%endif +# Autoloader +BuildRequires: php-fedora-autoloader-devel + +# From composer, "require": { +# "php": "^7.3 || ~8.0.0", +# "composer/package-versions-deprecated": "^1.10.99", +# "psr/container": "^1.0", +# "symfony/console": "^4.3 || ^5.1.2", +# "symfony/event-dispatcher": "^4.0 || ^5.0", +# "symfony/polyfill-php80": "^1.17", +# "webmozart/assert": "^1.9" +Requires: php(language) >= 7.3 +# remirepo:1 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +Requires: (php-composer(psr/container) >= 1.0 with php-composer(psr/container) < 2) +Requires: (php-composer(symfony/console) >= 4.3 with php-composer(symfony/console) < 5) +Requires: (php-composer(symfony/event-dispatcher) >= 4.3 with php-composer(symfony/event-dispatcher) < 5) +Requires: (php-composer(symfony/polyfill-php80) >= 1.17 with php-composer(symfony/polyfill-php80) < 2) +Requires: (php-composer(webmozart/assert) >= 1.9 with php-composer(webmozart/assert) < 2) +# From composer, "require": { +# "laminas/laminas-servicemanager": "An IoC container without auto wiring capabilities" +Suggests: php-autoloader(%{gh_owner}/laminas-servicemanager) +# remirepo:7 +%else +Requires: php-psr-container >= 1.0 +Requires: php-symfony4-console >= 4.3 +Requires: php-symfony4-event-dispatcher >= 4.3 +Requires: php-symfony-polyfill >= 1.17 +Requires: php-webmozart-assert >= 1.9 +%endif +# Autoloader +Requires: php-composer(fedora/autoloader) +# From phpcompatinfo report for version 1.1.1 +Requires: php-json +Requires: php-pcre +Requires: php-reflection +Requires: php-spl + +Provides: php-composer(%{gh_owner}/%{gh_project}) = %{version} +Provides: php-autoloader(%{gh_owner}/%{gh_project}) = %{version} + + +%description +Command-line interface for Laminas projects. + +Documentation: https://docs.laminas.dev/%{gh_project}/ + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} +%patch0 -p1 -b .rpm +sed -e 's/@VERSION@/%{version}/' -i src/ApplicationFactory.php +find . -name \*.rpm -delete -print +# As we don't have mikey179/vfsstream v2 +sed -e 's/ bovigo/ org\\bovigo/' -i test/ContainerResolverTest.php +mv LICENSE.md LICENSE + + + +%build +: Create autoloader +phpab --template fedora --output src/autoload.php src + +cat << 'EOF' | tee -a src/autoload.php +\Fedora\Autoloader\Dependencies::required([ + '%{php_home}/Psr/Container/autoload.php', + '%{php_home}/Symfony4/Component/Console/autoload.php', + '%{php_home}/Symfony4/Component/EventDispatcher/autoload.php', + '%{php_home}/Symfony/Polyfill/autoload.php', + '%{php_home}/Webmozart/Assert/autoload.php', +]); + +// For Symfony 4 (use ContainerCommandLoaderTypeHint with Symfony 5) +class_alias(Laminas\Cli\ContainerCommandLoaderNoTypeHint::class, Laminas\Cli\ContainerCommandLoader::class); +EOF + + +%install +: Laminas library +mkdir -p %{buildroot}%{php_home}/%{namespace}/ +cp -pr src %{buildroot}%{php_home}/%{namespace}/%{library}%{major} + + +%check +%if %{with_tests} +mkdir vendor +cat << 'EOF' | tee vendor/autoload.php +<?php +require_once '%{buildroot}%{php_home}/%{namespace}/%{library}%{major}/autoload.php'; +\Fedora\Autoloader\Autoload::addPsr4('%{namespace}Test\\%{library}\\', dirname(__DIR__) . '/test'); +\Fedora\Autoloader\Autoload::addPsr4('Local\\', dirname(__DIR__) . '/test/TestAsset/Local'); +\Fedora\Autoloader\Dependencies::required([ + '%{php_home}/%{namespace}/Mvc/autoload.php', + '%{php_home}/%{namespace}/ServiceManager/autoload.php', + '%{php_home}/org/bovigo/vfs/autoload.php', +]); +EOF + +ret=0 +# testNotifiesOfThirdPartyCommandInChain use Psalm +# testGetParamAllowsEmptyValuesForParamsWithValidationIfParamIsNotRequired need investigation +for cmd in php php73 php74 php80 php81; do + if which $cmd; then + $cmd %{_bindir}/phpunit9 \ + --filter '^((?!(testNotifiesOfThirdPartyCommandInChain|testGetParamAllowsEmptyValuesForParamsWithValidationIfParamIsNotRequired)).)*$' \ + --verbose || ret=1 + fi +done + + +exit $ret +%else +: Test suite disabled +%endif + + +%files +# remirepo:1 +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc *.md +%doc composer.json +%{php_home}/%{namespace}/%{library}%{major} + + +%changelog +* Thu Sep 30 2021 Remi Collet <remi@remirepo.net> - 1.1.1-1 +- initial package |