php-phpspec-prophecy-phpunit/php-phpspec-prophecy-phpunit.spec
2025-07-25 05:26:14 +00:00

192 lines
6.1 KiB
RPMSpec

# remirepo/fedora spec file for php-phpspec-prophecy-phpunit
#
# SPDX-FileCopyrightText: Copyright 2020-2025 Remi Collet
# SPDX-License-Identifier: CECILL-2.1
# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
#
# Please, preserve the changelog entries
#
%bcond_without tests
%global gh_commit d3c28041d9390c9bca325a08c5b2993ac855bded
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
%global gh_owner phpspec
%global gh_project prophecy-phpunit
Name: php-%{gh_owner}-%{gh_project}
Version: 2.4.0
Release: 2%{?dist}
Summary: Integrating the Prophecy mocking library in PHPUnit test cases
License: MIT
URL: https://github.com/%{gh_owner}/%{gh_project}
Source0: %{name}-%{version}-%{gh_short}.tgz
Source2: makesrc.sh
BuildArch: noarch
BuildRequires: php(language) >= 7.3
%if %{with tests}
BuildRequires: (php-composer(phpspec/prophecy) >= 1.18 with php-composer(phpspec/prophecy) < 2)
BuildRequires: phpunit12 >= 12.0
BuildRequires: phpunit11 >= 11.0
BuildRequires: phpunit10 >= 10.1
BuildRequires: phpunit9 >= 9.1
%endif
# Autoloader
BuildRequires: php-fedora-autoloader-devel
# from composer.json, "requires": {
# "php": "^7.3 || ^8",
# "phpspec/prophecy": "^1.18",
# "phpunit/phpunit":"^9.1 || ^10.1 || ^11.0 || ^12.0"
Requires: php(language) >= 7.3
Requires: (php-composer(phpspec/prophecy) >= 1.18 with php-composer(phpspec/prophecy) < 2)
Requires: (phpunit9 >= 9.1 or phpunit10 >= 10.1 or phpunit11 >= 11.0 or phpunit12 >= 12.0)
# From phpcompatinfo report for version 2.0.1
#none
# Autoloader
Requires: php-composer(fedora/autoloader)
Provides: php-composer(%{gh_owner}/%{gh_project}) = %{version}
%description
Prophecy PhpUnit integrates the Prophecy mocking library with PHPUnit
to provide an easier mocking in your testsuite.
Autoloader: %{_datadir}/php/Prophecy/PhpUnit/autoload.php
%prep
%setup -q -n %{gh_project}-%{gh_commit}
%build
phpab --template fedora --output src/autoload.php src
cat << 'EOF' | tee -a src/autoload.php
\Fedora\Autoloader\Dependencies::required([
'%{_datadir}/php/Prophecy/autoload.php',
]);
EOF
%install
mkdir -p %{buildroot}%{_datadir}/php/Prophecy/PhpUnit
cp -pr src/* %{buildroot}%{_datadir}/php/Prophecy/PhpUnit/
%check
%if %{with tests}
: Dev autoloader
mkdir vendor
phpab --output vendor/autoload.php.in fixtures tests
cat << 'EOF' | tee -a vendor/autoload.php.in
require_once '%{buildroot}%{_datadir}/php/Prophecy/PhpUnit/autoload.php';
require_once '%{_datadir}/php/@PHPUNIT@/autoload.php';
EOF
: check autoloader
php %{buildroot}%{_datadir}/php/Prophecy/PhpUnit/autoload.php
: Fix expecteed path
sed -e 's:src/::' -i tests/MockFailure.phpt
: upstream test suite
ret=0
for cmd in php php81 php82 php83 php84; do
if which $cmd; then
sed -e 's/@PHPUNIT@/PHPUnit9/' vendor/autoload.php.in > vendor/autoload.php
$cmd -d auto_prepend_file=vendor/autoload.php \
%{_bindir}/phpunit9 --no-coverage|| ret=1
sed -e 's/@PHPUNIT@/PHPUnit10/' vendor/autoload.php.in > vendor/autoload.php
$cmd -d auto_prepend_file=vendor/autoload.php \
%{_bindir}/phpunit10 --no-coverage|| ret=1
fi
done
for cmd in php php82 php83 php84; do
if which %{_bindir}/phpunit11 && which $cmd; then
sed -e 's/@PHPUNIT@/PHPUnit11/' vendor/autoload.php.in > vendor/autoload.php
$cmd -d auto_prepend_file=vendor/autoload.php \
%{_bindir}/phpunit11 --no-coverage|| ret=1
fi
done
for cmd in php php83 php84; do
if which %{_bindir}/phpunit12 && which $cmd; then
sed -e 's/@PHPUNIT@/PHPUnit12/' vendor/autoload.php.in > vendor/autoload.php
$cmd -d auto_prepend_file=vendor/autoload.php \
%{_bindir}/phpunit11 --no-coverage|| ret=1
fi
done
exit $ret
%else
: Test suite disabled
%endif
%files
%license LICENSE
%doc *.md
%doc composer.json
%{_datadir}/php/Prophecy/PhpUnit
%changelog
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Mon May 26 2025 Remi Collet <remi@remirepo.net> - 2.4.0-1
- update to 2.4.0 (no change)
- allow phpunit12
- re-license spec file to CECILL-2.1
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Nov 21 2024 Remi Collet <remi@remirepo.net> - 2.3.0-1
- update to 2.3.0
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Mar 1 2024 Remi Collet <remi@remirepo.net> - 2.2.0-1
- update to 2.2.0
- allow phpunit11
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Dec 11 2023 Remi Collet <remi@remirepo.net> - 2.1.0-1
- update to 2.1.0
- raise dependency on phpspec/prophecy 1.18
- allow phpunit9 or phpunit10
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Apr 19 2023 Remi Collet <remi@remirepo.net> - 2.0.2-1
- update to 2.0.2
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Sep 28 2020 Remi Collet <remi@remirepo.net> - 2.0.1-1
- initial package