diff --git a/.gitignore b/.gitignore index 3ee9c52..713d614 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,3 @@ clog -/PHP_CodeSniffer-2.2.0.tgz -/PHP_CodeSniffer-2.3.0.tgz -/PHP_CodeSniffer-2.3.1.tgz -/PHP_CodeSniffer-2.3.2.tgz -/PHP_CodeSniffer-2.3.3.tgz -/PHP_CodeSniffer-2.3.4.tgz -/PHP_CodeSniffer-2.4.0.tgz -/PHP_CodeSniffer-2.5.0.tgz -/PHP_CodeSniffer-2.5.1.tgz -/PHP_CodeSniffer-2.6.0.tgz -/PHP_CodeSniffer-2.6.1.tgz -/PHP_CodeSniffer-2.6.2.tgz -/PHP_CodeSniffer-2.7.0.tgz -/PHP_CodeSniffer-2.7.1.tgz -/PHP_CodeSniffer-2.8.0.tgz -/PHP_CodeSniffer-2.8.1.tgz -/PHP_CodeSniffer-3.0.0.tgz -/PHP_CodeSniffer-3.0.1.tgz -/PHP_CodeSniffer-3.0.2.tgz -/PHP_CodeSniffer-3.1.0.tgz -/PHP_CodeSniffer-3.1.1.tgz -/PHP_CodeSniffer-3.2.0.tgz -/PHP_CodeSniffer-3.2.1.tgz -/PHP_CodeSniffer-3.2.2.tgz -/PHP_CodeSniffer-3.2.3.tgz -/PHP_CodeSniffer-3.3.0.tgz -/PHP_CodeSniffer-3.3.1.tgz -/PHP_CodeSniffer-3.3.2.tgz -/PHP_CodeSniffer-3.4.0.tgz -/PHP_CodeSniffer-3.4.1.tgz -/PHP_CodeSniffer-3.4.2.tgz -/PHP_CodeSniffer-3.5.0.tgz -/PHP_CodeSniffer-3.5.1.tgz -/PHP_CodeSniffer-3.5.2.tgz -/PHP_CodeSniffer-3.5.3.tgz +/php-pear-PHP-CodeSniffer-4.0.0-06113cf.tgz +/php-pear-PHP-CodeSniffer-4.0.1-0525c73.tgz diff --git a/makesrc.sh b/makesrc.sh new file mode 100755 index 0000000..1ee3ac8 --- /dev/null +++ b/makesrc.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +NAME=$(basename $PWD) +OWNER=$(sed -n '/^%global gh_owner/{s/.* //;p}' $NAME.spec) +PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec) +VERSION=$(sed -n '/^Version:/{s/.* //;p}' $NAME.spec) +COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec) +SHORT=${COMMIT:0:7} + +if [ -f $NAME-$VERSION-$SHORT.tgz ]; then + echo Skip $NAME-$VERSION-$SHORT.tgz +else + echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n" + + echo "Cloning..." + rm -rf $PROJECT-$COMMIT + git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT + + echo "Getting commit..." + pushd $PROJECT-$COMMIT + git checkout $COMMIT || echo exit 1 + cp composer.json ../composer.json + popd + + echo "Archiving..." + tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT + + echo "Cleaning..." + rm -rf $PROJECT-$COMMIT + + echo "Done." +fi diff --git a/php-pear-PHP-CodeSniffer-rpm.patch b/php-pear-PHP-CodeSniffer-rpm.patch new file mode 100644 index 0000000..1d7032e --- /dev/null +++ b/php-pear-PHP-CodeSniffer-rpm.patch @@ -0,0 +1,32 @@ +diff -up ./bin/phpcbf.rpm ./bin/phpcbf +--- ./bin/phpcbf.rpm 2025-09-15 14:51:59.780439106 +0200 ++++ ./bin/phpcbf 2025-09-15 14:53:16.065234768 +0200 +@@ -21,10 +21,10 @@ + */ + + // Check if the PHP version and extensions comply with the minimum requirements before anything else. +-require_once dirname(__DIR__) . '/requirements.php'; ++require_once '/usr/share/pear/PHP/CodeSniffer/requirements.php'; + PHP_CodeSniffer\checkRequirements(); + +-require_once dirname(__DIR__) . '/autoload.php'; ++require_once '/usr/share/pear/PHP/CodeSniffer/autoload.php'; + + $runner = new PHP_CodeSniffer\Runner(); + $exitCode = $runner->runPHPCBF(); +diff -up ./bin/phpcs.rpm ./bin/phpcs +--- ./bin/phpcs.rpm 2025-09-15 14:51:59.780522757 +0200 ++++ ./bin/phpcs 2025-09-15 14:52:52.535306647 +0200 +@@ -21,10 +21,10 @@ + */ + + // Check if the PHP version and extensions comply with the minimum requirements before anything else. +-require_once dirname(__DIR__) . '/requirements.php'; ++require_once '/usr/share/pear/PHP/CodeSniffer/requirements.php'; + PHP_CodeSniffer\checkRequirements(); + +-require_once dirname(__DIR__) . '/autoload.php'; ++require_once '/usr/share/pear/PHP/CodeSniffer/autoload.php'; + + $runner = new PHP_CodeSniffer\Runner(); + $exitCode = $runner->runPHPCS(); diff --git a/php-pear-PHP-CodeSniffer.spec b/php-pear-PHP-CodeSniffer.spec index be022dd..1cc4cf5 100644 --- a/php-pear-PHP-CodeSniffer.spec +++ b/php-pear-PHP-CodeSniffer.spec @@ -1,6 +1,6 @@ # spec file for php-pear-PHP-CodeSniffer # -# Copyright (c) 2013-2019 Remi Collet +# Copyright (c) 2013-2025 Remi Collet # Copyright (c) 2009-2013 Christof Damian # Copyright (c) 2006-2009 Konstantin Ryabitsev # @@ -9,46 +9,67 @@ # # Please, preserve the changelog entries # -%{!?__pear: %global __pear %{_bindir}/pear} -%global pear_name PHP_CodeSniffer + + +%bcond_without tests + +%global gh_commit 0525c73950de35ded110cffafb9892946d7771b5 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_date 2025-11-10 +%global gh_owner PHPCSStandards +%global gh_project PHP_CodeSniffer +# keep in old PEAR tree +%global pear_phpdir %{_datadir}/pear + +%global upstream_version 4.0.1 +#global upstream_prever rc1 Name: php-pear-PHP-CodeSniffer -Version: 3.5.3 +Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} Release: 1%{?dist} Summary: PHP coding standards enforcement tool -License: BSD -URL: http://pear.php.net/package/PHP_CodeSniffer -Source0: http://pear.php.net/get/%{pear_name}-%{version}.tgz +License: BSD-3-Clause +URL: https://github.com/%{gh_owner}/%{gh_project} +# git snapshot to retrieve test suite +Source0: %{name}-%{upstream_version}%{?upstream_prever}-%{gh_short}.tgz +Source1: makesrc.sh + +# RPM installation path +Patch0: %{name}-rpm.patch BuildArch: noarch -BuildRequires: php(language) >= 5.4 -BuildRequires: php-pear -# to run test suite -%global phpunit %{_bindir}/phpunit7 -BuildRequires: %{phpunit} +# 8.1 because of phpunit10 +BuildRequires: php(language) >= 8.1 +BuildRequires: php-tokenizer +BuildRequires: php-xmlwriter +BuildRequires: php-simplexml +BuildRequires: php-dom +BuildRequires: php-iconv +BuildRequires: php-intl +%if %{with tests} +BuildRequires: php-bcmath +# to run test suite, from composer.json "require-dev" +# "phpunit/phpunit": "^8.0 || ^9.3.4 || ^10.5.32 || ^11.3.3" +%global phpunit %{_bindir}/phpunit10 +BuildRequires: phpunit10 >= 10.5.32 +%endif -Requires(post): %{__pear} -Requires(postun): %{__pear} -# From package.xml -Requires: php-pear(PEAR) -Requires: php(language) >= 5.4 +# from composer.json "require": { +# "php": ">=7.2.0", +# "ext-tokenizer": "*", +# "ext-xmlwriter": "*", +# "ext-simplexml": "*" +Requires: php(language) >= 7.2 Requires: php-tokenizer Requires: php-xmlwriter Requires: php-simplexml -# From phpcompatinfo report for version 3.0.0 -Requires: php-reflection -Requires: php-ctype -Requires: php-date +# From phpcompatinfo report for version 3.8.0 Requires: php-dom -Requires: php-json Requires: php-iconv -Requires: php-pcntl -Requires: php-pcre -Requires: php-soap -Requires: php-spl +Requires: php-intl -Provides: php-pear(%{pear_name}) = %{version} +Provides: php-pear(%{gh_project}) = %{version} Provides: php-composer(squizlabs/php_codesniffer) = %{version} Provides: phpcs = %{version} Obsoletes: phpcs < %{version} @@ -60,10 +81,8 @@ certain standards, such as PEAR, or user-defined. %prep -%setup -q -c - -cd %{pear_name}-%{version} -mv ../package.xml %{pear_name}.xml +%setup -q -n %{gh_project}-%{gh_commit} +%patch -P0 -p1 -b .rpm %build @@ -71,57 +90,209 @@ mv ../package.xml %{pear_name}.xml %install -cd %{pear_name}-%{version} +: Install the library +mkdir -p %{buildroot}%{pear_phpdir}/PHP/CodeSniffer +cp -pr src %{buildroot}%{pear_phpdir}/PHP/CodeSniffer/src/ +cp -pr autoload.php %{buildroot}%{pear_phpdir}/PHP/CodeSniffer/ +cp -pr requirements.php %{buildroot}%{pear_phpdir}/PHP/CodeSniffer/ +cp -p phpcs.xml.dist %{buildroot}%{pear_phpdir}/PHP/CodeSniffer/ +cp -p phpcs.xsd %{buildroot}%{pear_phpdir}/PHP/CodeSniffer/ -%{__pear} install --nodeps --packagingroot %{buildroot} %{pear_name}.xml +: Cleanup +find %{buildroot}%{pear_phpdir}/PHP/CodeSniffer -depth -type d -name Tests -exec rm -r {} \; -print -# Clean up unnecessary files -rm -rf %{buildroot}%{pear_metadir}/.??* - -# Install XML package description -mkdir -p %{buildroot}%{pear_xmldir} -install -pm 644 %{pear_name}.xml %{buildroot}%{pear_xmldir} +: Install the commands +install -Dpm 755 bin/phpcs %{buildroot}%{_bindir}/phpcs +install -Dpm 755 bin/phpcbf %{buildroot}%{_bindir}/phpcbf +%if %{with tests} %check -cd %{pear_name}-%{version} +# Fix current date +YEAR=$(date +%Y) +PREV=$(expr $YEAR - 1) +sed -e "/@copyright/s/${PREV}/${YEAR}/" \ + -i src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.*.fixed -# fails with js: Couldn't read source file -rm src/Standards/Generic/Tests/Debug/JSHintUnitTest.* - -# Version 3.4.0: Tests: 364, Assertions: 419, Skipped: 3. +# Version 4.0.0beta1: Tests: 3871, Assertions: 23018, PHPUnit Deprecations: 777, Skipped: 16. +# testBrokenRulesetMultiError failing reported as https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/767 ret=0 -for cmdarg in "php %{phpunit}" php71 php72 php73 php74; do - if which $cmdarg; then +for cmdarg in \ + "php %{phpunit}" \ + "php81 %{_bindir}/phpunit10" \ + "php82 %{_bindir}/phpunit11" \ + "php83 %{_bindir}/phpunit11" \ + "php84 %{_bindir}/phpunit11" \ + "php85 %{_bindir}/phpunit11" + do if which $cmdarg; then set $cmdarg - $1 -d memory_limit=1G ${2:-%{_bindir}/phpunit7} --verbose || ret=1 + $1 -d memory_limit=-1 $2 \ + --filter '^((?!(testBrokenRulesetMultiError)).)*$' \ + --no-coverage || ret=1 fi done exit $ret - - -%post -%{__pear} install --nodeps --soft --force --register-only \ - %{pear_xmldir}/%{pear_name}.xml >/dev/null || : - -%postun -if [ $1 -eq 0 ] ; then - %{__pear} uninstall --nodeps --ignore-errors --register-only \ - %{pear_name} >/dev/null || : -fi +%endif %files -%doc %{pear_docdir}/%{pear_name} -%{pear_xmldir}/%{pear_name}.xml -%{pear_testdir}/%{pear_name} -%{pear_datadir}/%{pear_name} +%license licence.txt +%doc *.md %{pear_phpdir}/PHP %{_bindir}/phpcbf %{_bindir}/phpcs %changelog +* Wed Nov 12 2025 Remi Collet - 4.0.1-1 +- update to 4.0.1 + +* Mon Sep 15 2025 Remi Collet - 4.0.0-1 +- update to 4.0.0 +- raise dependency on PHP 7.2 +- switch to phpunit10 + +* Mon Sep 8 2025 Remi Collet - 3.13.4-1 +- update to 3.13.4 + +* Fri Jul 25 2025 Fedora Release Engineering - 3.13.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Wed Jun 18 2025 Remi Collet - 3.13.2-1 +- update to 3.13.2 + +* Thu May 15 2025 Remi Collet - 3.13.0-1 +- update to 3.13.0 + +* Mon Apr 14 2025 Remi Collet - 3.12.2-1 +- update to 3.12.2 + +* Mon Apr 7 2025 Remi Collet - 3.12.1-1 +- update to 3.12.1 + +* Tue Mar 18 2025 Remi Collet - 3.12.0-1 +- update to 3.12.0 + +* Fri Jan 24 2025 Remi Collet - 3.11.3-1 +- update to 3.11.3 + +* Wed Jan 22 2025 Remi Collet - 3.11.2-2 +- fix tests failing because of new year + +* Sat Jan 18 2025 Fedora Release Engineering - 3.11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Dec 12 2024 Remi Collet - 3.11.2-1 +- update to 3.11.2 + +* Mon Nov 18 2024 Remi Collet - 3.11.1-1 +- update to 3.11.1 + +* Tue Nov 12 2024 Remi Collet - 3.11.0-1 +- update to 3.11.0 + +* Wed Sep 18 2024 Remi Collet - 3.10.3-1 +- update to 3.10.3 + +* Mon Jul 22 2024 Remi Collet - 3.10.2-1 +- update to 3.10.2 + +* Fri Jul 19 2024 Fedora Release Engineering - 3.10.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu May 23 2024 Remi Collet - 3.10.1-1 +- update to 3.10.1 + +* Wed May 22 2024 Remi Collet - 3.10.0-1 +- update to 3.10.0 + +* Wed Apr 24 2024 Remi Collet - 3.9.2-1 +- update to 3.9.2 + +* Tue Apr 2 2024 Remi Collet - 3.9.1-1 +- update to 3.9.1 + +* Sat Feb 17 2024 Remi Collet - 3.9.0-1 +- update to 3.9.0 +- drop patch merged upstream + +* Thu Jan 25 2024 Fedora Release Engineering - 3.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 3.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 12 2024 Remi Collet - 3.8.1-1 +- update to 3.8.1 +- add patch for test suite from + https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/256 + +* Mon Dec 11 2023 Remi Collet - 3.8.0-1 +- update to 3.8.0 +- sources from github instead or pear channel + +* Fri Jul 21 2023 Fedora Release Engineering - 3.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Feb 23 2023 Remi Collet - 3.7.2-1 +- update to 3.7.2 + +* Fri Jan 20 2023 Fedora Release Engineering - 3.7.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 3.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 20 2022 Remi Collet - 3.7.1-1 +- update to 3.7.1 + +* Mon Jun 13 2022 Remi Collet - 3.7.0-1 +- update to 3.7.0 + +* Thu Jan 27 2022 Remi Collet - 3.6.2-2 +- fix new year in test suite, FBTFS #2046828 + +* Fri Jan 21 2022 Fedora Release Engineering - 3.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Dec 14 2021 Remi Collet - 3.6.2-1 +- update to 3.6.2 + +* Mon Oct 11 2021 Remi Collet - 3.6.1-1 +- update to 3.6.1 + +* Fri Jul 23 2021 Fedora Release Engineering - 3.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Apr 9 2021 Remi Collet - 3.6.0-1 +- update to 3.6.0 + +* Fri Feb 5 2021 Remi Collet - 3.5.8-2 +- fix test relying on current year, fix FTBFS #1923570 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.5.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Oct 23 2020 Remi Collet - 3.5.8-1 +- update to 3.5.8 + +* Tue Aug 11 2020 Remi Collet - 3.5.6-1 +- update to 3.5.6 + +* Tue Jul 28 2020 Fedora Release Engineering - 3.5.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Apr 20 2020 Remi Collet - 3.5.5-1 +- update to 3.5.5 + +* Fri Jan 31 2020 Remi Collet - 3.5.4-1 +- update to 3.5.4 +- fix test suite from + https://github.com/squizlabs/PHP_CodeSniffer/pull/2847 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.5.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Wed Dec 4 2019 Remi Collet - 3.5.3-1 - update to 3.5.3 diff --git a/sources b/sources index 15187d3..9acd652 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (PHP_CodeSniffer-3.5.3.tgz) = 16f786f6f34827b1e489cd6df4ad9a4ffa281a6e23930af343fe49473c96f5dc28f9b0b27d3b639962ea483426453dc9b9538ede77246e33ae74705102553c94 +SHA512 (php-pear-PHP-CodeSniffer-4.0.1-0525c73.tgz) = 384867fff733de98f3a0cd7105776aa571389e8f11a2d95ba51139a682778650900028722352779bb3b6986f61fa123ceded3d9496de0a05e0872ac21bb1329e