summaryrefslogtreecommitdiffstats
path: root/php-cs-fixer.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-cs-fixer.spec')
-rw-r--r--php-cs-fixer.spec385
1 files changed, 84 insertions, 301 deletions
diff --git a/php-cs-fixer.spec b/php-cs-fixer.spec
index 146e29d..a4e6d04 100644
--- a/php-cs-fixer.spec
+++ b/php-cs-fixer.spec
@@ -1,6 +1,6 @@
# remirepo/fedora spec file for php-cs-fixer
#
-# Copyright (c) 2016-2021 Remi Collet
+# Copyright (c) 2016-2022 Remi Collet
# License: CC-BY-SA
# http://creativecommons.org/licenses/by-sa/4.0/
#
@@ -10,268 +10,110 @@
# For compatibility with SCL
%undefine __brp_mangle_shebangs
-%global gh_commit 75ac86f33fab4714ea5a39a396784d83ae3b5ed8
+%global gh_commit 333f15e07c866e33e2765e84ba1e0b88e6a3af3b
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
#global gh_date 20150717
%global gh_owner FriendsOfPHP
%global gh_project PHP-CS-Fixer
-%global php_home %{_datadir}/php
-%if 0%{?fedora} >= 36
-%bcond_with tests
-%else
-%bcond_without tests
-%endif
-
-# Bundled this fork which is not designed for use outside of php-cs-fixer
-# https://github.com/PHP-CS-Fixer/diff/releases
-%global gh_diff_owner PHP-CS-Fixer
-%global gh_diff_version 1.3.1
-%global gh_diff_commit dbd31aeb251639ac0b9e7e29405c1441907f5759
-%global gh_diff_short %(c=%{gh_diff_commit}; echo ${c:0:7})
Name: php-cs-fixer
-Version: 2.19.3
+Version: 3.5.0
Release: 1%{?gh_date:.%{gh_date}git%{gh_short}}%{?dist}
-Summary: A tool to automatically fix PHP code style
+Summary: PHP Coding Standards Fixer
-License: MIT
+License: MIT and BSD
URL: https://github.com/%{gh_owner}/%{gh_project}
# git snapshot to get upstream test suite
Source0: %{name}-%{version}-%{gh_short}.tgz
-Source1: %{name}-diff-%{gh_diff_version}-%{gh_diff_short}.tgz
Source2: makesrc.sh
# Use our autoloader
Patch0: %{name}-autoload.patch
BuildArch: noarch
-%if %{with tests}
-# For tests
-# as we use phpunit9
-BuildRequires: php(language) >= 7.3
-BuildRequires: php-tokenizer
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(composer/semver) >= 3.0 with php-composer(composer/semver) < 4)
-BuildRequires: (php-composer(composer/xdebug-handler) >= 2.0 with php-composer(composer/xdebug-handler) < 3)
-BuildRequires: (php-composer(doctrine/annotations) >= 1.2 with php-composer(doctrine/annotations) < 2)
-BuildRequires: (php-composer(sebastian/diff) >= 1.4 with php-composer(sebastian/diff) < 2)
-# remirepo:6
-%else
-BuildRequires: php-composer-semver3 >= 3.0
-BuildRequires: php-composer-xdebug-handler2 >= 2.0
-BuildRequires: php-doctrine-annotations >= 1.2
-BuildRequires: php-phpunit-diff >= 1.4
-%endif
-BuildRequires: php-symfony3-console
-BuildRequires: php-symfony3-event-dispatcher
-BuildRequires: php-symfony3-filesystem
-BuildRequires: php-symfony3-finder
-BuildRequires: php-symfony3-options-resolver
-BuildRequires: php-symfony3-process
-BuildRequires: php-symfony3-stopwatch
-BuildRequires: php-symfony3-yaml
-BuildRequires: php-mbstring
-BuildRequires: php-xml
-BuildRequires: php-reflection
-BuildRequires: php-dom
+BuildRequires: php(language) >= 7.4
+BuildRequires: php-cli
BuildRequires: php-json
-BuildRequires: php-pcre
-BuildRequires: php-phar
-BuildRequires: php-spl
-BuildRequires: php-xml
-# Missing dependency for Console
-BuildRequires: php-symfony3-debug
-BuildRequires: php-symfony3-debug
-# From composer.json, "require-dev": {
-# NOTICE: listener disabled during test suite
-# "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
-# "keradus/cli-executor": "^1.4",
-# "justinrainbow/json-schema": "^5.0",
-# "mikey179/vfsstream": "^1.6",
-# "php-coveralls/php-coveralls": "^2.4.1",
-# "php-cs-fixer/accessible-object": "^1.0",
-# "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
-# "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
-# "phpspec/prophecy-phpunit": "^1.1 || ^2.0",
-# "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5",
-# "phpunitgoodpractices/polyfill": "^1.5",
-# "phpunitgoodpractices/traits": "^1.9.1",
-# "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1",
-# "symfony/phpunit-bridge": "^5.2.1",
-# "symfony/yaml": "^3.0 || ^4.0 || ^5.0"
-# ignored as test using it fail strangely
-#BuildRequires: php-composer(keradus/cli-executor) < 2
-#BuildRequires: php-composer(keradus/cli-executor) >= 1.0
-# remirepo:1
-%if 0%{?fedora} >= 28 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(justinrainbow/json-schema) >= 5.0 with php-composer(justinrainbow/json-schema) < 6)
-BuildRequires: (php-composer(mikey179/vfsstream) >= 1.6 with php-composer(mikey179/vfsstream) < 2)
-BuildRequires: (php-composer(php-cs-fixer/accessible-object) >= 1.0 with php-composer(php-cs-fixer/accessible-object) < 2)
-BuildRequires: (php-composer(php-cs-fixer/phpunit-constraint-isidenticalstring) >= 1.2 with php-composer(php-cs-fixer/phpunit-constraint-isidenticalstring) < 2)
-BuildRequires: (php-composer(php-cs-fixer/phpunit-constraint-xmlmatchesxsd) >= 1.2.1 with php-composer(php-cs-fixer/phpunit-constraint-xmlmatchesxsd) < 2)
-BuildRequires: (php-composer(phpspec/prophecy-phpunit) >= 2.0 with php-composer(phpspec/prophecy-phpunit) < 3)
-BuildRequires: (php-composer(phpunitgoodpractices/polyfill) >= 1.5 with php-composer(phpunitgoodpractices/polyfill) < 2)
-BuildRequires: (php-composer(phpunitgoodpractices/traits) >= 1.9.1 with php-composer(phpunitgoodpractices/traits) < 2)
-BuildRequires: (php-composer(sanmai/phpunit-legacy-adapter) >= 8.2.1 with php-composer(sanmai/phpunit-legacy-adapter) < 9)
-# remirepo:11
-%else
-BuildRequires: php-justinrainbow-json-schema5
-BuildRequires: php-mikey179-vfsstream >= 1.6
-BuildRequires: php-cs-fixer-accessible-object
-BuildRequires: php-cs-fixer-phpunit-constraint-isidenticalstring >= 1.2
-BuildRequires: php-cs-fixer-phpunit-constraint-xmlmatchesxsd >= 1.2.1
-BuildRequires: php-phpspec-prophecy-phpunit >= 2.0
-BuildRequires: php-phpunitgoodpractices-polyfill >= 1.5
-BuildRequires: php-phpunitgoodpractices-traits >= 1.9.1
-BuildRequires: php-sanmai-phpunit-legacy-adapter >= 8.2.1
-%endif
-%global phpunit %{_bindir}/phpunit9
-BuildRequires: phpunit9 >= 9.4.4
-%endif
-# Autoloader
-BuildRequires: php-fedora-autoloader-devel
-
-# From composer.json, "require": {
-# "php": "^5.6 || ^7.0 || ^8.0",
-# "ext-json": "*",
-# "ext-tokenizer": "*",
-# "composer/semver": "^1.4 || ^2.0 || ^3.0",
-# "composer/xdebug-handler": "^1.2 || ^2.0",
-# "doctrine/annotations": "^1.2",
-# "php-cs-fixer/diff": "^1.3",
-# "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0",
-# "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0",
-# "symfony/filesystem": "^3.0 || ^4.0 || ^5.0",
-# "symfony/finder": "^3.0 || ^4.0 || ^5.0",
-# "symfony/options-resolver": "^3.0 || ^4.0",
-# "symfony/polyfill-php70": "^1.0",
-# "symfony/polyfill-php72": "^1.4",
-# "symfony/polyfill-xml": "^1.3",
-# "symfony/process": "^3.0 || ^4.0 || ^5.0",
-# "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0"
-Requires: php(language) >= 7.2
+
+# see composer.json and makesrc.sh
+Requires: php(language) >= 7.4
Requires: php-json
Requires: php-tokenizer
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-Requires: (php-composer(composer/semver) >= 3.0 with php-composer(composer/semver) < 4)
-Requires: (php-composer(composer/xdebug-handler) >= 2.0 with php-composer(composer/xdebug-handler) < 3)
-Requires: (php-composer(doctrine/annotations) >= 1.2 with php-composer(doctrine/annotations) < 2)
-Requires: (php-composer(sebastian/diff) >= 1.4 with php-composer(sebastian/diff) < 2)
-# remirepo:6
-%else
-Requires: php-composer-semver3 >= 3.0
-Requires: php-composer-xdebug-handler2 >= 2.0
-Requires: php-doctrine-annotations >= 1.2
-Requires: php-phpunit-diff >= 1.4
-%endif
-Requires: php-symfony3-console
-Requires: php-symfony3-event-dispatcher
-Requires: php-symfony3-filesystem
-Requires: php-symfony3-finder
-Requires: php-symfony3-options-resolver
-Requires: php-symfony3-process
-Requires: php-symfony3-stopwatch
-# Missing dependency for Console
-Requires: php-symfony3-debug
-# From composer.json, "suggest": {
-# "ext-dom": "For handling output formats in XML",
-# "ext-mbstring": "For handling non-UTF8 characters.",
-# "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.",
-# "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.",
-# "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
+# From phpcompatinfo report for version 3.5.0
Requires: php-dom
+Requires: php-intl
Requires: php-mbstring
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-Recommends: php-composer(php-cs-fixer/phpunit-constraint-isidenticalstring)
-Recommends: php-composer(php-cs-fixer/phpunit-constraint-xmlmatchesxsd)
-# remirepo:1
-%endif
-# From phpcompatinfo report for version 2.4.0
-Requires: php-cli
-Requires: php-reflection
-Requires: php-pcre
-Requires: php-phar
-Requires: php-spl
-Requires: php-xml
-# Autoloader
-Requires: php-composer(fedora/autoloader)
-
-Provides: bundled(php-cs-fixer/diff) = %{gh_diff_version}
+
+# Package was renamed
+Obsoletes: php-cs-fixer3 < 3.5
+Provides: php-cs-fixer3 = %{version}
+
+# Bundled PHP libraries
+Provides: bundled(php-composer-pcre) = 1.0.0
+Provides: bundled(php-composer-semver) = 3.2.7
+Provides: bundled(php-composer-xdebug-handler) = 3.0.1
+Provides: bundled(php-doctrine-annotations) = 1.13.2
+Provides: bundled(php-doctrine-lexer) = 1.2.2
+Provides: bundled(php-php-cs-fixer-diff) = v2.0.2
+Provides: bundled(php-psr-cache) = 1.0.1
+Provides: bundled(php-psr-container) = 1.1.2
+Provides: bundled(php-psr-event-dispatcher) = 1.0.0
+Provides: bundled(php-psr-log) = 1.1.4
+Provides: bundled(php-symfony-console) = v5.4.2
+Provides: bundled(php-symfony-deprecation-contracts) = v2.5.0
+Provides: bundled(php-symfony-event-dispatcher) = v5.4.0
+Provides: bundled(php-symfony-event-dispatcher-contracts) = v2.5.0
+Provides: bundled(php-symfony-filesystem) = v5.4.0
+Provides: bundled(php-symfony-finder) = v5.4.2
+Provides: bundled(php-symfony-options-resolver) = v5.4.0
+Provides: bundled(php-symfony-polyfill-ctype) = v1.24.0
+Provides: bundled(php-symfony-polyfill-intl-grapheme) = v1.24.0
+Provides: bundled(php-symfony-polyfill-intl-normalizer) = v1.24.0
+Provides: bundled(php-symfony-polyfill-mbstring) = v1.24.0
+Provides: bundled(php-symfony-polyfill-php73) = v1.24.0
+Provides: bundled(php-symfony-polyfill-php80) = v1.24.0
+Provides: bundled(php-symfony-polyfill-php81) = v1.24.0
+Provides: bundled(php-symfony-process) = v5.4.2
+Provides: bundled(php-symfony-service-contracts) = v2.5.0
+Provides: bundled(php-symfony-stopwatch) = v5.4.0
+Provides: bundled(php-symfony-string) = v5.4.2
+
Provides: php-composer(friendsofphp/php-cs-fixer) = %{version}
%description
-The PHP Coding Standards Fixer tool fixes most issues in your code when you
-want to follow the PHP coding standards as defined in the PSR-1 and PSR-2
-documents and many more.
+The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow
+standards; whether you want to follow PHP coding standards as defined in the
+PSR-1, PSR-2, etc., or other community driven ones like the Symfony one. You
+can also define your (team's) style through configuration.
+
+It can modernize your code (like converting the pow function to the ** operator
+on PHP 5.6) and (micro) optimize it.
-If you are already using a linter to identify coding standards problems in
-your code, you know that fixing them by hand is tedious, especially on large
+If you are already using a linter to identify coding standards problems in your
+code, you know that fixing them by hand is tedious, especially on large
projects. This tool does not only detect them, but also fixes them for you.
%prep
-%setup -q -n %{gh_project}-%{gh_commit} -a1
+%setup -q -n %{gh_project}-%{gh_commit}
%patch0 -p1 -b .rpm
-mv diff-%{gh_diff_commit}/src src/diff
-
-find src -name \*rpm -delete -print
-
-# Fix version
-sed -e '/VERSION/s/-DEV//' -i src/Console/Application.php
-
-# from composer.json, "autoload" / "classmap"
-TESTS="
- tests/Test/AbstractFixerTestCase.php
- tests/Test/AbstractIntegrationCaseFactory.php
- tests/Test/AbstractIntegrationTestCase.php
- tests/Test/Assert/AssertTokensTrait.php
- tests/Test/IntegrationCase.php
- tests/Test/IntegrationCaseFactory.php
- tests/Test/IntegrationCaseFactoryInterface.php
- tests/Test/InternalIntegrationCaseFactory.php
- tests/Test/IsIdenticalConstraint.php
- tests/Test/TokensWithObservedTransformers.php
- tests/TestCase.php
-"
-for i in $TESTS; do
- mkdir -p src/$(dirname $i)
- cp -p $i src/$i
-done
-
-# fix dev-tools path
-sed -e 's:../../../ci:ci:' -i src/Console/Command/HelpCommand.php
-cp -pr ci-integration.sh src/Console/Command/
-
-# tolerant because conditional definition in tests/TestCase.php
-phpab --template fedora \
- --tolerant \
- --output src/autoload.php \
- src/tests src/diff
-
-cat << 'EOF' | tee -a src/autoload.php
-
-\Fedora\Autoloader\Autoload::addPsr4('PhpCsFixer\\', __DIR__);
-\Fedora\Autoloader\Dependencies::required([
- '%{php_home}/Composer/Semver3/autoload.php',
- '%{php_home}/Composer/XdebugHandler2/autoload.php',
- '%{php_home}/Doctrine/Common/Annotations/autoload.php',
- '%{php_home}/Symfony3/Component/Console/autoload.php',
- '%{php_home}/Symfony3/Component/EventDispatcher/autoload.php',
- '%{php_home}/Symfony3/Component/Filesystem/autoload.php',
- '%{php_home}/Symfony3/Component/Finder/autoload.php',
- '%{php_home}/Symfony3/Component/OptionsResolver/autoload.php',
- '%{php_home}/Symfony3/Component/Process/autoload.php',
- '%{php_home}/Symfony3/Component/Stopwatch/autoload.php',
-]);
-\Fedora\Autoloader\Dependencies::optional([
- '%{php_home}/PhpCsFixer/PhpunitConstraintIsIdenticalString/autoload.php',
- '%{php_home}/PhpCsFixer/PhpunitConstraintXmlMatchesXsd/autoload.php',
-]);
-EOF
+
+: List bundled libraries and Licenses
+php -r '
+ $pkgs = file_get_contents("vendor/composer/installed.json");
+ $pkgs = json_decode($pkgs, true);
+ if (!is_array($pkgs) || !isset($pkgs["packages"])) {
+ echo "cant decode json file\n";
+ exit(3);
+ }
+ $lic = [];
+ foreach($pkgs["packages"] as $pkg) {
+ printf("Provides: bundled(php-%s) = %s\n", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]);
+ $lic = array_merge($lic, $pkg["license"]);
+ }
+ sort($lic);
+ printf("\nLicense: %s\n", implode(" and ", array_unique($lic)));'
%build
@@ -280,81 +122,17 @@ EOF
%install
: Library
-mkdir -p %{buildroot}%{php_home}
-cp -pr src %{buildroot}%{php_home}/PhpCsFixer
+mkdir -p %{buildroot}%{_datadir}/%{name}
+cp -pr src %{buildroot}%{_datadir}/%{name}/src
+cp -pr vendor %{buildroot}%{_datadir}/%{name}/vendor
: Command
install -Dpm755 %{name} %{buildroot}%{_bindir}/%{name}
%check
-%if %{with tests}
-mkdir vendor
-cat << 'EOF' | tee vendor/autoload.php
-<?php
-// Force version for local, when both versions are available
-\Fedora\Autoloader\Dependencies::required([
- '%{php_home}/org/bovigo/vfs/autoload.php',
- '%{php_home}/JsonSchema5/autoload.php',
- '%{php_home}/PhpCsFixer/AccessibleObject/autoload.php',
- '%{php_home}/Prophecy/PhpUnit/autoload.php',
- '%{php_home}/LegacyPHPUnit/autoload.php',
- '%{php_home}/PHPUnitGoodPractices/Polyfill/autoload.php',
- '%{buildroot}%{php_home}/PhpCsFixer/autoload.php',
- '%{php_home}/Symfony3/Component/Yaml/autoload.php',
- __DIR__ . '/ExpectDeprecationTrait.php',
-]);
-\Fedora\Autoloader\Autoload::addPsr4('PhpCsFixer\\Tests\\', dirname(__DIR__) . '/tests');
-EOF
-
-cat << 'EOF' | tee vendor/ExpectDeprecationTrait.php
-<?php
-
-namespace Symfony\Bridge\PhpUnit;
-
-trait ExpectDeprecationTrait /* Fake trait which skip test relying on it */
-{
- public function expectDeprecation(): void
- {
- $this->markTestSkipped("no Symfony v5");
- }
-}
-EOF
-
-# test using keradus/cli-executor
-rm tests/Smoke/CiIntegrationTest.php
-rm tests/Smoke/StdinTest.php
-rm tests/Smoke/InstallViaComposerTest.php
-# strange failure
-rm tests/Fixtures/Integration/priority/combine_consecutive_issets,no_singleline_whitespace_before_semicolons.test
-# test checking documentation
-rm tests/AutoReview/DocumentationTest.php
-
-# Disable listener
-sed -e '/<listeners>/,/<\/listeners>/d' phpunit.xml.dist >phpunit.xml
-sed -e '/ExpectDeprecationTrait/d' \
- -i tests/Fixer/CastNotation/LowercaseCastFixerTest.php tests/Fixer/CastNotation/ShortScalarCastFixerTest.php
-# skip as rely on composer autoloader for phpunit
-rm tests/Fixer/PhpUnit/PhpUnitNamespacedFixerTest.php
-rm tests/AutoReview/ProjectCodeTest.php
-
-# Redirect to buildroot
-sed -e 's:%{php_home}:%{buildroot}%{php_home}:' -i %{name}
-
-ret=0
-# skip testFix74Deprecated as we don't use symfony/phpunit-bridge
-for cmdarg in "php %{phpunit}" php73 php74 php80; do
- if which $cmdarg; then
- set $cmdarg
- $1 -d memory_limit=2G ${2:-%{_bindir}/phpunit9} \
- --filter '^((?!(testFixerContainsAllPhpunitStaticMethodsInItsList|testFix74Deprecated|testFixersPriorityPairsHaveIntegrationTest|testThereAreNoExtraFiles|testFixersDocumentationIndexFileIsUpToDate|testInheritance|testFixerDefinitions|testPatternValidation)).)*$' \
- || ret=1
- fi
-done
-exit $ret
-%else
-: Test suite disabled
-%endif
+sed -e 's:%{_datadir}:%{buildroot}%{_datadir}:' -i %{name}
+./%{name} --version | grep %{version}
%files
@@ -362,12 +140,17 @@ exit $ret
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc composer.json
+%doc vendor/composer/installed.json
%doc *.md
-%{php_home}/PhpCsFixer
+%{_datadir}/%{name}
%{_bindir}/%{name}
%changelog
+* Fri Jan 14 2022 Remi Collet <remi@remirepo.net> - 3.5.0-1
+- update to 3.5.0
+- install in /usr/share/php-cs-fixer with all bundled libraries
+
* Tue Nov 16 2021 Remi Collet <remi@remirepo.net> - 2.19.3-1
- update to 2.19.3