Blob Blame History Raw
# remirepo/Fedora spec file for php-laminas-diactoros2
#
# Copyright (c) 2015-2022 Shawn Iwinski, Remi Collet
#
# License: MIT
# http://opensource.org/licenses/MIT
#
# Please preserve changelog entries
#

%global gh_owner     laminas
%global gh_project   laminas-diactoros
%global gh_commit    6028af6c3b5ced4d063a680d2483cce67578b902
%global gh_short     %(c=%{gh_commit}; echo ${c:0:7})
%global php_home     %{_datadir}/php
%global namespace    Laminas
%global library      Diactoros
%global major        2

# https://github.com/php-http/psr7-integration-tests/tags
%global gh_psr7_owner     php-http
%global gh_psr7_name      psr7-integration-tests
%global gh_psr7_version   1.2.0
%global gh_psr7_commit    d11c83205562b7a4701873e496ec8d0b71946e36
%global gh_psr7_short     %(c=%{gh_psr7_commit}; echo ${c:0:7})

# https://github.com/http-interop/http-factory-tests/tags
%global gh_factory_owner   http-interop
%global gh_factory_name    http-factory-tests
%global gh_factory_version 0.9.0
%global gh_factory_commit  642056c5360e8a74779cbf133afbc8aa2c174e15
%global gh_factory_short   %(c=%{gh_factory_commit}; echo ${c:0:7})

# Build using "--without tests" to disable tests
%bcond_without tests

%{!?phpdir:  %global phpdir  %{_datadir}/php}

Name:          php-%{gh_project}%{major}
Version:       2.24.0
Release:       1%{?gh_release}%{?dist}
Summary:       PSR HTTP Message implementations v%{major}

License:       BSD-3-Clause
URL:           https://github.com/%{gh_owner}/%{gh_project}

# GitHub export does not include tests.
# Run makesrc.sh to create full source.
Source0:       %{name}-%{version}-%{gh_short}.tgz
Source1:       makesrc.sh
# Temporarily bundled, only used for tests
Source2:       %{gh_psr7_owner}-%{gh_psr7_name}-%{gh_psr7_version}-%{gh_psr7_short}.tgz
Source3:       %{gh_psr7_owner}-%{gh_psr7_name}-get-source.sh
# Temporarily bundled, only used for tests
Source4:       php-%{gh_factory_owner}-%{gh_factory_name}-%{gh_factory_version}-%{gh_factory_short}.tgz
Source5:       php-%{gh_factory_owner}-%{gh_factory_name}-get-source.sh

BuildArch:     noarch
# Tests
%if %{with tests}
## composer.json
BuildRequires: php(language) >= 8.0
BuildRequires: (php-composer(psr/http-message)                           >= 1.0 with php-composer(psr/http-message)                           < 2)
BuildRequires: (php-composer(psr/http-factory)                           >= 1.0 with php-composer(psr/http-factory)                           < 2)
#    "require-dev": {
#        "ext-curl": "*",
#        "ext-dom": "*",
#        "ext-gd": "*",
#        "ext-libxml": "*",
#        "http-interop/http-factory-tests": "^0.9.0",
#        "laminas/laminas-coding-standard": "~2.4.0",
#        "php-http/psr7-integration-tests": "^1.1.1",
#        "phpunit/phpunit": "^9.5.27"
#        "psalm/plugin-phpunit": "^0.18.4",
#        "vimeo/psalm": "^5.4"
#    },
%global phpunit %{_bindir}/phpunit9
BuildRequires:  phpunit9 >= 9.5.27
BuildRequires:  php-curl
BuildRequires:  php-dom
BuildRequires:  php-gd
BuildRequires:  php-libxml
## phpcompatinfo (computed from version 2.4.0)
BuildRequires:  php-date
BuildRequires:  php-gmp
BuildRequires:  php-json
BuildRequires:  php-pcre
BuildRequires:  php-reflection
BuildRequires:  php-shmop
BuildRequires:  php-spl
%endif
## Autoloader
BuildRequires:  php-fedora-autoloader-devel

# composer.json
#    "require": {
#        "php": "~8.0.0 || ~8.1.0 || ~8.2.0",
#        "psr/http-factory": "^1.0",
#        "psr/http-message": "^1.0"
Requires:       php(language) >= 8.0
Requires:      (php-composer(psr/http-message)                           >= 1.0 with php-composer(psr/http-message)                           < 2)
Requires:      (php-composer(psr/http-factory)                           >= 1.0 with php-composer(psr/http-factory)                           < 2)
# phpcompatinfo (computed from version 2.4.0)
Requires:       php-json
Requires:       php-pcre
Requires:       php-spl
# Autoloader
Requires:       php-composer(fedora/autoloader)

Provides:       php-composer(%{gh_owner}/%{gh_project})   = %{version}
Provides:       php-autoloader(%{gh_owner}/%{gh_project}) = %{version}

Provides:       php-composer(psr/http-factory-implementation) = 1.0
Provides:       php-composer(psr/http-message-implementation) = 1.0


%description
A PHP package containing implementations of the accepted PSR-7 HTTP message
interfaces [1], as well as a "server" implementation similar to node's
http.Server [2].

Documentation: https://docs.laminas.dev/%{gh_project}/

Autoloader: %{phpdir}/%{namespace}/%{library}%{major}/autoload.php

[1] http://www.php-fig.org/psr/psr-7/
[2] http://nodejs.org/api/http.html


%prep
%setup -qn %{gh_project}-%{gh_commit} -a2 -a4

mv %{gh_psr7_name}-%{gh_psr7_commit} psr7
mv %{gh_factory_name}-%{gh_factory_commit} factory
mv LICENSE.md LICENSE


%build
: Create autoloader
phpab --template fedora --output src/autoload.php src
cat <<'AUTOLOAD' | tee -a src/autoload.php
if (!function_exists('Laminas\\Diactoros\\createUploadedFile')) {
  \Fedora\Autoloader\Dependencies::required(array(
    '%{phpdir}/Psr/Http/Message/autoload.php',
    '%{phpdir}/Psr/Http/Message/http-factory-autoload.php',
    __DIR__.'/functions/create_uploaded_file.php',
    __DIR__.'/functions/marshal_headers_from_sapi.php',
    __DIR__.'/functions/marshal_method_from_sapi.php',
    __DIR__.'/functions/marshal_protocol_version_from_sapi.php',
    __DIR__.'/functions/marshal_uri_from_sapi.php',
    __DIR__.'/functions/normalize_server.php',
    __DIR__.'/functions/normalize_uploaded_files.php',
    __DIR__.'/functions/parse_cookie_header.php',
  ));
}
AUTOLOAD


%install
: Laminas library
mkdir -p   %{buildroot}%{php_home}/%{namespace}/
cp -pr src %{buildroot}%{php_home}/%{namespace}/%{library}%{major}


%check
%if %{with tests}
: Create tests bootstrap
cat <<'BOOTSTRAP' | tee bootstrap.php
<?php

require_once '%{buildroot}%{phpdir}/%{namespace}/%{library}%{major}/autoload.php';
\Fedora\Autoloader\Autoload::addPsr4('%{namespace}Test\\%{library}\\', __DIR__.'/test');
\Fedora\Autoloader\Autoload::addPsr4('Http\\Psr7Test\\', __DIR__.'/psr7/src');
\Fedora\Autoloader\Autoload::addPsr4('Interop\\Http\\Factory\\', __DIR__.'/factory/test');
BOOTSTRAP

sed -e 's:vendor/http-interop/http-factory-tests:factory:' \
    phpunit.xml.dist >phpunit.xml

: Upstream tests
# Skip tests requiring network access
RETURN_CODE=0
for CMDARG in "php %{phpunit}" php80 php81 php82; do
    if which $CMDARG; then
        set $CMDARG
        $1 ${2:-%{_bindir}/phpunit9} \
           --bootstrap bootstrap.php \
           --filter '^((?!(testReasonPhraseDefaultsAgainstIana|testIsNotSeekable|testIsNotWritable|testIsNotReadable|testRewindNotSeekable)).)*$' \
           --verbose || RETURN_CODE=1
    fi
done

exit $RETURN_CODE
%else
: Tests skipped
%endif


%files
%license LICENSE COPYRIGHT.md
%doc README.md
%doc composer.json
%{php_home}/%{namespace}/%{library}%{major}


%changelog
* Wed Dec 21 2022 Remi Collet <remi@remirepo.net> - 2.24.0-1
- update to 2.24.0

* Thu Dec 15 2022 Remi Collet <remi@remirepo.net> - 2.23.0-1
- update to 2.23.0

* Tue Nov 22 2022 Remi Collet <remi@remirepo.net> - 2.22.0-1
- update to 2.22.0

* Mon Nov 14 2022 Remi Collet <remi@remirepo.net> - 2.21.0-1
- update to 2.21.0

* Tue Oct 25 2022 Remi Collet <remi@remirepo.net> - 2.20.0-1
- update to 2.20.0 (no change)

* Tue Oct 11 2022 Remi Collet <remi@remirepo.net> - 2.19.0-1
- update to 2.19.0
- raise dependency on PHP 8.0

* Tue Sep 20 2022 Remi Collet <remi@remirepo.net> - 2.17.0-1
- update to 2.17.0
- raise dependency on PHP 7.4

* Mon Aug  1 2022 Remi Collet <remi@remirepo.net> - 2.14.0-1
- update to 2.14.0

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Thu Jul  7 2022 Remi Collet <remi@remirepo.net> - 2.13.0-1
- update to 2.13.0

* Wed Jul  6 2022 Remi Collet <remi@remirepo.net> - 2.12.0-1
- update to 2.12.0

* Thu Jun 30 2022 Remi Collet <remi@remirepo.net> - 2.11.2-1
- update to 2.11.2

* Wed Jun 29 2022 Remi Collet <remi@remirepo.net> - 2.11.1-1
- update to 2.11.1

* Tue May 17 2022 Remi Collet <remi@remirepo.net> - 2.11.0-1
- update to 2.11.0

* Thu May  5 2022 Remi Collet <remi@remirepo.net> - 2.10.0-1
- update to 2.10.0

* Thu Apr  7 2022 Remi Collet <remi@remirepo.net> - 2.9.2-1
- update to 2.9.2

* Wed Mar 30 2022 Remi Collet <remi@remirepo.net> - 2.9.0-1
- update to 2.9.0

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Fri Sep 24 2021 Remi Collet <remi@remirepo.net> - 2.8.0-1
- update to 2.8.0
- drop dependency on laminas-zendframework-bridge

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Wed May 19 2021 Remi Collet <remi@remirepo.net> - 2.6.0-1
- update to 2.6.0

* Wed Apr 14 2021 Remi Collet <remi@remirepo.net> - 2.5.1-1
- update to 2.5.1 (no change)
- drop ZF compatibility

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Thu Jan 21 2021 Remi Collet <remi@remirepo.net> - 2.5.0-2
- fix test suite path, from review #1900513

* Thu Nov 19 2020 Remi Collet <remi@remirepo.net> - 2.5.0-1
- update to 2.5.0
- raise dependency on PHP 7.3
- switch to phpunit9

* Fri Sep  4 2020 Remi Collet <remi@remirepo.net> - 2.4.1-1
- update to 2.4.1 (no change)

* Thu Sep  3 2020 Remi Collet <remi@remirepo.net> - 2.4.0-1
- update to 2.4.0

* Wed Jul  8 2020 Remi Collet <remi@remirepo.net> - 2.3.1-1
- update to 2.3.1

* Tue Apr 28 2020 Remi Collet <remi@remirepo.net> - 2.3.0-1
- update to 2.3.0

* Mon Mar 30 2020 Remi Collet <remi@remirepo.net> - 2.2.3-1
- update to 2.2.3 (no change)

* Thu Jan 23 2020 Remi Collet <remi@remirepo.net> - 2.2.2-2
- fix autoloader, ensure functions are not defined twice

* Wed Jan 22 2020 Remi Collet <remi@remirepo.net> - 2.2.2-1
- update to 2.2.2
- rename to php-laminas-diactoros2
- install to /usr/share/php/Laminas/Diactoros2
- raise dependency on PHP 7.1
- add dependency on psr/http-factory
- switch to phpunit7

* Fri Jan 17 2020 Remi Collet <remi@remirepo.net> - 1.8.7p1-2
- cleanup

* Wed Jan  8 2020 Remi Collet <remi@remirepo.net> - 1.8.7p1-1
- switch to Laminas
- update to 1.8.7p1

* Fri Aug 30 2019 Remi Collet <remi@remirepo.net> - 1.8.7-1
- update to 1.8.7

* Thu Sep  6 2018 Remi Collet <remi@remirepo.net> - 1.8.6-1
- update to 1.8.6
- bundle php-http/psr7-integration-tests only used for tests

* Mon Aug 20 2018 Remi Collet <remi@remirepo.net> - 1.8.5-1
- update to 1.8.5

* Thu Aug 02 2018 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.8.4-1
- Update to 1.8.4 (RHBZ #1504401 / ZF2018-01 / CVE-2018-14773 / CVE-2018-14774)

* Wed May 30 2018 Remi Collet <remi@remirepo.net> - 1.7.2-1
- update to 1.7.2

* Fri Mar 30 2018 Remi Collet <remi@remirepo.net> - 1.7.1-1
- update to 1.7.1
- use range dependencies on F27+

* Fri Jan  5 2018 Remi Collet <remi@remirepo.net> - 1.7.0-1
- Update to 1.7.0

* Tue Dec  5 2017 Remi Collet <remi@remirepo.net> - 1.6.1-2
- switch to classmap autoloader for consistency
- provide php-autoloader(zendframework/zend-diactoros)

* Thu Nov  2 2017 Remi Collet <remi@remirepo.net> - 1.6.1-1
- Update to 1.6.1
- use phpunit6 on F26+

* Sun Oct 08 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.6.0-1
- Updated to 1.6.0 (RHBZ #1491486)

* Sun Sep 10 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.4.1-1
- Updated to 1.4.1 (RHBZ #1482723)

* Sat Apr 08 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.4.0-1
- Updated to 1.4.0 (RHBZ #1440332)

* Sat Mar 11 2017 Remi Collet <remi@fedoraproject.org> - 1.3.10-2
- change URL to documentation site
- simplify documentation

* Sun Mar 05 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.10-1
- Updated to 1.3.10 (RHBZ #1411062)
- Test with SCLs if available

* Mon Jan 23 2017 Remi Collet <remi@remirepo.net> - 1.3.10-1
- update to 1.3.10

* Wed Jan 18 2017 Remi Collet <remi@remirepo.net> - 1.3.9-1
- update to 1.3.9

* Fri Jan  6 2017 Remi Collet <remi@remirepo.net> - 1.3.8-1
- update to 1.3.8

* Sat Dec 03 2016 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.7-1
- Updated to 1.3.7 (RHBZ #1318837)
- Switch autoloader from php-composer(symfony/class-loader) to
  php-composer(fedora/autoloader)

* Wed Oct 12 2016 Remi Collet <remi@remirepo.net> - 1.3.7-1
- update to 1.3.7

* Thu Sep  8 2016 Remi Collet <remi@remirepo.net> - 1.3.6-1
- update to 1.3.6

* Wed Apr  6 2016 Remi Collet <remi@remirepo.net> - 1.3.5-1
- update to 1.3.5

* Mon Jan 04 2016 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.3-1
- Updated to 1.3.3 (RHBZ #1285581)

* Mon Oct 26 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.1.4-1
- Updated to 1.1.4 (RHBZ #1272627)

* Sun Oct 18 2015 Remi Collet <remi@remirepo.net> - 1.1.4-1
- update to 1.1.4

* Tue Aug 11 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.1.3-1
- Updated to 1.1.3 (RHBZ #1252195)
- Updated autoloader to load dependencies after self registration

* Tue Aug 11 2015 Remi Collet <remi@remirepo.net> - 1.1.3-1
- update to 1.1.3

* Mon Jul 20 2015 Remi Collet <remi@remirepo.net> - 1.1.2-1
- add EL-5 stuff, backport for #remirepo

* Wed Jul 15 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.1.2-1
- Update to 1.1.2
- Fix license
- Update description
- Use full path in autoloader

* Wed Jul 08 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.1.1-1
- Initial package