From 6df6e746beed8e451983d65c782bced24290a86b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 17 Dec 2020 10:37:49 +0100 Subject: duplicate v2 --- php-phpseclib3.spec | 247 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 php-phpseclib3.spec (limited to 'php-phpseclib3.spec') diff --git a/php-phpseclib3.spec b/php-phpseclib3.spec new file mode 100644 index 0000000..715d79d --- /dev/null +++ b/php-phpseclib3.spec @@ -0,0 +1,247 @@ +%global composer_vendor phpseclib +%global composer_project phpseclib + +%global github_owner phpseclib +%global github_name phpseclib +%global github_commit 136b9ca7eebef78be14abf90d65c5e57b6bc5d36 +%global github_short %(c=%{github_commit}; echo ${c:0:7}) +%bcond_without tests + +Name: php-%{composer_vendor} +Version: 2.0.30 +Release: 1%{?dist} +Summary: PHP Secure Communications Library +License: MIT +URL: https://github.com/%{github_owner}/%{github_name} + +Source0: %{name}-%{version}-%{github_short}.tgz +Source1: %{name}-autoload.php +# Generate a full archive from git snapshot, with tests +Source2: makesrc.sh + +# remirepo:3 +# For test build on all available arch +#global debug_package %%{nil} +#global __debug_install_post /bin/true +BuildArch: noarch + +%if %{with tests} +BuildRequires: php-composer(fedora/autoloader) +%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9 +%global phpunit %{_bindir}/phpunit9 +%else +%if 0%{?fedora} >= 26 || 0%{?rhel} >= 8 +%global phpunit %{_bindir}/phpunit6 +%else +%global phpunit %{_bindir}/phpunit +%endif +%endif +BuildRequires: %{phpunit} +BuildRequires: %{_bindir}/phpab +# Optional at runtime, to avoid too muck skipped tests +BuildRequires: php-bcmath +BuildRequires: php-gmp +%endif + +Requires: php(language) >= 5.3.3 +Requires: php-bcmath +Requires: php-date +Requires: php-gmp +Requires: php-hash +Requires: php-openssl +Requires: php-pcre +Requires: php-session +Requires: php-standard +Requires: php-xml +# Autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} + + +%description +MIT-licensed pure-PHP implementations of an arbitrary-precision integer +arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, +Rijndael, AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509 + + +%prep +%setup -qn %{github_name}-%{github_commit} +cp %{SOURCE1} %{composer_vendor}/autoload.php + + +%build + + +%install +mkdir -p %{buildroot}%{_datadir}/php +cp -pr %{composer_vendor} %{buildroot}%{_datadir}/php + + +%if %{with tests} +%check +%{_bindir}/phpab --output tests/bootstrap.php tests +cat << 'EOF' | tee -a tests/bootstrap.php +if (class_exists("PHPUnit_Framework_TestCase") && !class_exists("PHPUnit\\Framework\\TestCase")) { + class_alias("PHPUnit_Framework_TestCase", "PHPUnit\\Framework\\TestCase"); +} +require "%{buildroot}%{_datadir}/php/%{composer_vendor}/autoload.php"; +date_default_timezone_set('UTC'); +EOF + +# from travis/run-phpunit.sh +if %{phpunit} --atleast-version 8 +then + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/n setUpBeforeClass()/n setUpBeforeClass(): void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/n setUp()/n setUp(): void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/n tearDown()/n tearDown(): void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertIsArray([^)]*)\)/\1: void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertIsString([^)]*)\)/\1: void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertStringContainsString([^)]*)\)/\1: void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertStringNotContainsString([^)]*)\)/\1: void/g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_Crypt_\(AES\|Hash\|RSA\)_/class /g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_File_\(X509\)_/class /g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_Math_\(BigInteger\)_/class /g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_\(Crypt\|File\|Math\|Net\)_/class /g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Functional_Net_/class /g' + find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/extends Unit_Crypt_Hash_\(SHA512Test\|SHA256Test\)/extends \1/g' +fi + +# avoid already defined class +sed -e '/require /d' -i tests/Unit/Crypt/Hash/SHA*_96Test.php + +# testAuthorityInfoAccess fails without internet access +ret=0 +for cmd in "php %{phpunit}" php73 php74 php80; do + if which $cmd; then + set $cmd + $1 -d memory_limit=1G ${2:-%{_bindir}/phpunit9} \ + --filter '^((?!(testAuthorityInfoAccess)).)*$' \ + --verbose || ret=1 + fi +done +exit $ret +%endif + + +%files +%{_datadir}/php/%{composer_vendor} +%doc AUTHORS CHANGELOG.md composer.json README.md +%{!?_licensedir:%global license %%doc} +%license LICENSE + + +%changelog +* Thu Dec 17 2020 Remi Collet - 2.0.30-1 +- update to 2.0.30 +- switch to phpunit9 on Fedora + +* Tue Sep 8 2020 Remi Collet - 2.0.29-1 +- update to 2.0.29 + +* Wed Jul 8 2020 Remi Collet - 2.0.28-1 +- update to 2.0.28 + +* Mon Apr 6 2020 Remi Collet - 2.0.27-1 +- update to 2.0.27 + +* Mon Mar 23 2020 Remi Collet - 2.0.26-1 +- update to 2.0.26 + +* Tue Feb 25 2020 Remi Collet - 2.0.25-1 +- update to 2.0.25 + +* Mon Feb 24 2020 Remi Collet - 2.0.24-1 +- update to 2.0.24 + +* Tue Sep 17 2019 Remi Collet - 2.0.23-1 +- update to 2.0.23 + +* Mon Sep 16 2019 Remi Collet - 2.0.22-1 +- update to 2.0.22 + +* Mon Jul 15 2019 Remi Collet - 2.0.21-1 +- update to 2.0.21 + +* Tue Jun 25 2019 Remi Collet - 2.0.20-1 +- update to 2.0.20 + +* Fri Jun 21 2019 Remi Collet - 2.0.19-1 +- update to 2.0.19 + +* Thu Jun 13 2019 Remi Collet - 2.0.18-1 +- update to 2.0.18 + +* Mon May 27 2019 Remi Collet - 2.0.17-1 +- update to 2.0.17 + +* Mon Mar 11 2019 Remi Collet - 2.0.15-1 +- update to 2.0.15 + +* Thu Jan 31 2019 Remi Collet - 2.0.14-1 +- update to 2.0.14 + +* Tue Dec 18 2018 Remi Collet - 2.0.13-1 +- update to 2.0.13 + +* Mon Nov 5 2018 Remi Collet - 2.0.12-1 +- update to 2.0.12 + +* Mon Apr 16 2018 Remi Collet - 2.0.11-1 +- update to 2.0.11 + +* Tue Feb 20 2018 Remi Collet - 2.0.10-2 +- allow to run with old PHPUnit + +* Tue Feb 20 2018 Remi Collet - 2.0.10-1 +- Update to 2.0.10 +- skip tests with PHPUnit < 4.8.35 (EPEL-6) + +* Wed Nov 29 2017 Remi Collet - 2.0.9-1 +- Update to 2.0.9 + +* Mon Oct 23 2017 Remi Collet - 2.0.7-1 +- Update to 2.0.7 + +* Thu Jun 8 2017 Remi Collet - 2.0.6-2 +- define correct timezone for the test suite + +* Mon Jun 5 2017 Remi Collet - 2.0.6-1 +- Update to 2.0.6 + +* Mon May 8 2017 Remi Collet - 2.0.5-1 +- Update to 2.0.5 +- switch to fedora/autoloader +- use SCL of PHP when available for test suite +- open https://github.com/phpseclib/phpseclib/issues/1122 - regression with 5.3 +- open https://github.com/phpseclib/phpseclib/pull/1121 - fix permission + +* Tue Oct 4 2016 Remi Collet - 2.0.4-1 +- update to 2.0.4 + +* Fri Sep 2 2016 Remi Collet - 2.0.3-1 +- update to 2.0.3 + +* Tue Jun 7 2016 Remi Collet - 2.0.2-1 +- update to 2.0.2 + +* Tue Jan 19 2016 Remi Collet - 2.0.1-1 +- update to 2.0.1 +- sources from git snapshot for tests +- run test suite with both PHP 5 and 7 when available + +* Sun Sep 6 2015 Remi Collet - 2.0.0-4 +- change source0 to commit reference +- add BR for better test coverage +- add needed backport stuff for EL-5 in #remirepo + +* Wed Sep 02 2015 François Kooman - 2.0.0-3 +- apply patch for test to avoid loading class that is now autoloaded + +* Wed Sep 02 2015 François Kooman - 2.0.0-2 +- add autoload script +- make use of autoload script when running tests during build +- fix double inclusion of directory + +* Sat Aug 08 2015 François Kooman - 2.0.0-1 +- initial package -- cgit