f0d1e31
%global composer_vendor         phpseclib
f0d1e31
%global composer_project        phpseclib
f0d1e31
f0d1e31
%global github_owner            phpseclib
f0d1e31
%global github_name             phpseclib
87b2e3a
%global github_commit           f5c4c19880d45d0be3e7d24ae8ac434844a898cd
f0d1e31
%global github_short            %(c=%{github_commit}; echo ${c:0:7})
8059a57
%bcond_without                  tests
f0d1e31
f0d1e31
Name:       php-%{composer_vendor}
87b2e3a
Version:    2.0.32
cc9c74c
Release:    1%{?dist}
f0d1e31
Summary:    PHP Secure Communications Library
f0d1e31
License:    MIT
f0d1e31
URL:        https://github.com/%{github_owner}/%{github_name}
39d5bd9
c09f1c8
Source0:    %{name}-%{version}-%{github_short}.tgz
f0d1e31
Source1:    %{name}-autoload.php
c09f1c8
# Generate a full archive from git snapshot, with tests
c09f1c8
Source2:    makesrc.sh
f0d1e31
f0d1e31
BuildArch:      noarch
f0d1e31
8059a57
%if %{with tests}
1791dc1
BuildRequires:  php-composer(fedora/autoloader)
655d22c
%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9
655d22c
%global phpunit %{_bindir}/phpunit9
655d22c
%else
44099d2
%if 0%{?fedora} >= 26 || 0%{?rhel} >= 8
39d5bd9
%global phpunit %{_bindir}/phpunit6
39d5bd9
%else
39d5bd9
%global phpunit %{_bindir}/phpunit
39d5bd9
%endif
655d22c
%endif
39d5bd9
BuildRequires:  %{phpunit}
f0d1e31
BuildRequires:  %{_bindir}/phpab
f0d1e31
# Optional at runtime, to avoid too muck skipped tests
f0d1e31
BuildRequires:  php-bcmath
f0d1e31
BuildRequires:  php-gmp
f0d1e31
%endif
f0d1e31
f0d1e31
Requires:   php(language) >= 5.3.3
f0d1e31
Requires:   php-bcmath
f0d1e31
Requires:   php-date
f0d1e31
Requires:   php-gmp
f0d1e31
Requires:   php-hash
f0d1e31
Requires:   php-openssl
f0d1e31
Requires:   php-pcre
f0d1e31
Requires:   php-session
f0d1e31
Requires:   php-standard
f0d1e31
Requires:   php-xml
1791dc1
# Autoloader
1791dc1
Requires:   php-composer(fedora/autoloader)
f0d1e31
f0d1e31
Provides:   php-composer(%{composer_vendor}/%{composer_project}) = %{version}
f0d1e31
f0d1e31
f0d1e31
%description
f0d1e31
MIT-licensed pure-PHP implementations of an arbitrary-precision integer 
f0d1e31
arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, 
f0d1e31
Rijndael, AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
f0d1e31
1791dc1
f0d1e31
%prep
f0d1e31
%setup -qn %{github_name}-%{github_commit}
f0d1e31
cp %{SOURCE1} %{composer_vendor}/autoload.php
f0d1e31
1791dc1
f0d1e31
%build
f0d1e31
1791dc1
f0d1e31
%install
4fc046b
mkdir -p %{buildroot}%{_datadir}/php
4fc046b
cp -pr %{composer_vendor} %{buildroot}%{_datadir}/php
f0d1e31
1791dc1
8059a57
%if %{with tests}
f0d1e31
%check
f0d1e31
%{_bindir}/phpab --output tests/bootstrap.php tests
b0eda92
cat << 'EOF' | tee -a tests/bootstrap.php
d2a83a8
if (class_exists("PHPUnit_Framework_TestCase") && !class_exists("PHPUnit\\Framework\\TestCase")) {
d2a83a8
     class_alias("PHPUnit_Framework_TestCase", "PHPUnit\\Framework\\TestCase");
d2a83a8
}
b0eda92
require "%{buildroot}%{_datadir}/php/%{composer_vendor}/autoload.php";
b0eda92
date_default_timezone_set('UTC');
b0eda92
EOF
b0eda92
655d22c
# from travis/run-phpunit.sh
655d22c
if %{phpunit} --atleast-version 8
655d22c
then
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/n setUpBeforeClass()/n setUpBeforeClass(): void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/n setUp()/n setUp(): void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/n tearDown()/n tearDown(): void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertIsArray([^)]*)\)/\1: void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertIsString([^)]*)\)/\1: void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertStringContainsString([^)]*)\)/\1: void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/\(n assertStringNotContainsString([^)]*)\)/\1: void/g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_Crypt_\(AES\|Hash\|RSA\)_/class /g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_File_\(X509\)_/class /g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_Math_\(BigInteger\)_/class /g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Unit_\(Crypt\|File\|Math\|Net\)_/class /g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/^class Functional_Net_/class /g'
655d22c
    find tests -type f -name "*.php" -print0 | xargs -0 sed -i 's/extends Unit_Crypt_Hash_\(SHA512Test\|SHA256Test\)/extends \1/g'
655d22c
fi
655d22c
655d22c
# avoid already defined class
655d22c
sed -e '/require /d' -i tests/Unit/Crypt/Hash/SHA*_96Test.php
4fc046b
0d11bf1
# testAuthorityInfoAccess fails without internet access
d2a83a8
ret=0
655d22c
for cmd in "php %{phpunit}" php73 php74 php80; do
d2a83a8
  if which $cmd; then
d2a83a8
    set $cmd
655d22c
    $1 -d memory_limit=1G ${2:-%{_bindir}/phpunit9} \
d2a83a8
       --filter '^((?!(testAuthorityInfoAccess)).)*$' \
d2a83a8
       --verbose || ret=1
d2a83a8
  fi
d2a83a8
done
d2a83a8
exit $ret
f0d1e31
%endif
f0d1e31
f0d1e31
f0d1e31
%files
f0d1e31
%{_datadir}/php/%{composer_vendor}
f0d1e31
%doc AUTHORS CHANGELOG.md composer.json README.md
f0d1e31
%{!?_licensedir:%global license %%doc}
f0d1e31
%license LICENSE
f0d1e31
4fc046b
f0d1e31
%changelog
87b2e3a
* Mon Jun 14 2021 Remi Collet <remi@remirepo.net> - 2.0.32-1
87b2e3a
- update to 2.0.32
87b2e3a
8688ad3
* Tue Apr  6 2021 Remi Collet <remi@remirepo.net> - 2.0.31-1
8688ad3
- update to 2.0.31
8688ad3
655d22c
* Thu Dec 17 2020 Remi Collet <remi@remirepo.net> - 2.0.30-1
655d22c
- update to 2.0.30
655d22c
- switch to phpunit9 on Fedora
655d22c
cc9c74c
* Tue Sep  8 2020 Remi Collet <remi@remirepo.net> - 2.0.29-1
cc9c74c
- update to 2.0.29
cc9c74c
d642648
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.28-2
d642648
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
d642648
8059a57
* Wed Jul  8 2020 Remi Collet <remi@remirepo.net> - 2.0.28-1
8059a57
- update to 2.0.28
8059a57
ef09b9e
* Mon Apr  6 2020 Remi Collet <remi@remirepo.net> - 2.0.27-1
ef09b9e
- update to 2.0.27
ef09b9e
be5f67d
* Mon Mar 23 2020 Remi Collet <remi@remirepo.net> - 2.0.26-1
be5f67d
- update to 2.0.26
be5f67d
b7026bf
* Tue Feb 25 2020 Remi Collet <remi@remirepo.net> - 2.0.25-1
b7026bf
- update to 2.0.25
b7026bf
4afb9d0
* Mon Feb 24 2020 Remi Collet <remi@remirepo.net> - 2.0.24-1
4afb9d0
- update to 2.0.24
4afb9d0
53392f3
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.23-2
53392f3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
53392f3
d5c3452
* Tue Sep 17 2019 Remi Collet <remi@remirepo.net> - 2.0.23-1
d5c3452
- update to 2.0.23
d5c3452
25d4ebf
* Mon Sep 16 2019 Remi Collet <remi@remirepo.net> - 2.0.22-1
25d4ebf
- update to 2.0.22
25d4ebf
66a25dc
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.21-2
66a25dc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
66a25dc
8632a71
* Mon Jul 15 2019 Remi Collet <remi@remirepo.net> - 2.0.21-1
8632a71
- update to 2.0.21
8632a71
344facb
* Tue Jun 25 2019 Remi Collet <remi@remirepo.net> - 2.0.20-1
344facb
- update to 2.0.20
344facb
3cebcf2
* Fri Jun 21 2019 Remi Collet <remi@remirepo.net> - 2.0.19-1
3cebcf2
- update to 2.0.19
3cebcf2
3f9638b
* Thu Jun 13 2019 Remi Collet <remi@remirepo.net> - 2.0.18-1
3f9638b
- update to 2.0.18
3f9638b
1f9c22b
* Mon May 27 2019 Remi Collet <remi@remirepo.net> - 2.0.17-1
1f9c22b
- update to 2.0.17
1f9c22b
262fb9b
* Mon Mar 11 2019 Remi Collet <remi@remirepo.net> - 2.0.15-1
262fb9b
- update to 2.0.15
262fb9b
b2ebab4
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.14-2
b2ebab4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
b2ebab4
3a0877e
* Thu Jan 31 2019 Remi Collet <remi@remirepo.net> - 2.0.14-1
3a0877e
- update to 2.0.14
3a0877e
742b37d
* Tue Dec 18 2018 Remi Collet <remi@remirepo.net> - 2.0.13-1
742b37d
- update to 2.0.13
742b37d
44099d2
* Mon Nov  5 2018 Remi Collet <remi@remirepo.net> - 2.0.12-1
44099d2
- update to 2.0.12
44099d2
726d63e
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.11-2
726d63e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
726d63e
d2a83a8
* Mon Apr 16 2018 Remi Collet <remi@remirepo.net> - 2.0.11-1
d2a83a8
- update to 2.0.11
d2a83a8
39d5bd9
* Tue Feb 20 2018 Remi Collet <remi@remirepo.net> - 2.0.10-1
39d5bd9
- Update to 2.0.10
39d5bd9
- use phpunit6 when available
39d5bd9
- skip tests with PHPUnit < 4.8.35 (EPEL-6)
39d5bd9
6888268
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-2
6888268
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
6888268
7a833a9
* Wed Nov 29 2017 Remi Collet <remi@remirepo.net> - 2.0.9-1
7a833a9
- Update to 2.0.9
7a833a9
b0eda92
* Mon Oct 23 2017 Remi Collet <remi@remirepo.net> - 2.0.7-1
b0eda92
- Update to 2.0.7
b0eda92
cb39367
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-2
cb39367
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
cb39367
2b4a1a8
* Mon Jun  5 2017 Remi Collet <remi@remirepo.net> - 2.0.6-1
2b4a1a8
- Update to 2.0.6
2b4a1a8
1791dc1
* Mon May  8 2017 Remi Collet <remi@remirepo.net> - 2.0.5-1
1791dc1
- Update to 2.0.5
1791dc1
- switch to fedora/autoloader
1791dc1
- use SCL of PHP when available for test suite
1791dc1
- open https://github.com/phpseclib/phpseclib/issues/1122 - regression with 5.3
1791dc1
- open https://github.com/phpseclib/phpseclib/pull/1121 - fix permission
1791dc1
3382e52
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.4-2
3382e52
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
3382e52
cfb991f
* Tue Oct  4 2016 Remi Collet <remi@fedoraproject.org> - 2.0.4-1
cfb991f
- update to 2.0.4
cfb991f
4fc046b
* Tue Jun  7 2016 Remi Collet <remi@fedoraproject.org> - 2.0.2-1
4fc046b
- update to 2.0.2
4fc046b
06ed0f8
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.1-2
06ed0f8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
06ed0f8
c09f1c8
* Tue Jan 19 2016 Remi Collet <remi@fedoraproject.org> - 2.0.1-1
c09f1c8
- update to 2.0.1
c09f1c8
- sources from git snapshot for tests
c09f1c8
f0d1e31
* Sun Sep  6 2015 Remi Collet <remi@fedoraproject.org> - 2.0.0-4
f0d1e31
- change source0 to commit reference
f0d1e31
- add BR for better test coverage
f0d1e31
- add needed backport stuff for EL-5 in #remirepo
f0d1e31
f0d1e31
* Wed Sep 02 2015 François Kooman <fkooman@tuxed.net> - 2.0.0-3
f0d1e31
- apply patch for test to avoid loading class that is now autoloaded
f0d1e31
f0d1e31
* Wed Sep 02 2015 François Kooman <fkooman@tuxed.net> - 2.0.0-2
f0d1e31
- add autoload script
f0d1e31
- make use of autoload script when running tests during build
f0d1e31
- fix double inclusion of directory
f0d1e31
f0d1e31
* Sat Aug 08 2015 François Kooman <fkooman@tuxed.net> - 2.0.0-1
f0d1e31
- initial package