summaryrefslogtreecommitdiffstats
path: root/php-laminas-cli.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-laminas-cli.spec')
-rw-r--r--php-laminas-cli.spec201
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