summaryrefslogtreecommitdiffstats
path: root/php-psr-http-server-middleware.spec
blob: 3503cc62b189973e1060f8892c87957632169f41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# remirepo/fedora spec file for php-psr-http-server-middleware
#
# Copyright (c) 2020-2023 Remi Collet
# License: CC-BY-SA-4.0
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#

# Github
%global gh_commit    c1481f747daaa6a0782775cd6a8c26a1bf4a3829
%global gh_short     %(c=%{gh_commit}; echo ${c:0:7})
%global gh_owner     php-fig
%global gh_project   http-server-middleware
# Packagist
%global pk_vendor    psr
%global pk_project   %{gh_project}
# Namespace
%global ns_vendor    Psr
%global ns_project   Http
%global ns_sub       Server

Name:           php-%{pk_vendor}-%{pk_project}
Version:        1.0.2
Release:        1%{?dist}
Summary:        Common interface for HTTP server-side middleware

License:        MIT
URL:            https://github.com/%{gh_owner}/%{gh_project}
Source0:        %{url}/archive/%{gh_commit}/%{name}-%{version}-%{gh_commit}.tar.gz

BuildArch:      noarch
# For tests
BuildRequires:  php(language) >= 7.0
BuildRequires:  php-cli
# remirepo:1
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
BuildRequires: (php-composer(%{pk_vendor}/http-message)        >= 1.0  with php-composer(%{pk_vendor}/http-message)        < 3)
BuildRequires: (php-composer(%{pk_vendor}/http-server-handler) >= 1.0  with php-composer(%{pk_vendor}/http-server-handler) < 2)
# remirepo:6
%else
BuildRequires:  php-composer(%{pk_vendor}/http-message)        <  3
BuildRequires:  php-composer(%{pk_vendor}/http-message)        >= 1.0
BuildRequires:  php-composer(%{pk_vendor}/http-server-handler) <  2
BuildRequires:  php-composer(%{pk_vendor}/http-server-handler) >= 1.0
%endif
# Autoloader
BuildRequires:  php-fedora-autoloader-devel

# From composer.json,    "require": {
#        "php": ">=7.0",
#        "psr/http-message": "^1.0",
#        "psr/http-server-handler": "^1.0 || ^2.0"
Requires:       php(language) >= 7.0
# remirepo:1
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
Requires:      (php-composer(%{pk_vendor}/http-message)        >= 1.0  with php-composer(%{pk_vendor}/http-message)        < 3)
Requires:      (php-composer(%{pk_vendor}/http-server-handler) >= 1.0  with php-composer(%{pk_vendor}/http-server-handler) < 2)
# remirepo:6
%else
Requires:       php-composer(%{pk_vendor}/http-message)        <  3
Requires:       php-composer(%{pk_vendor}/http-message)        >= 1.0
Requires:       php-composer(%{pk_vendor}/http-server-handler) <  2
Requires:       php-composer(%{pk_vendor}/http-server-handler) >= 1.0
%endif
# phpcompatinfo (computed from version 1.0.1)
#     only core
# Autoloader
Requires:       php-composer(fedora/autoloader)

# Composer
Provides:       php-composer(%{pk_vendor}/%{pk_project}) = %{version}


%description
This repository holds the MiddlewareInterface related to PSR-15
(HTTP Server Request Handlers).

Note that this is not a Middleware implementation of its own.
It is merely the interface that describe a Middleware.

Please refer to the specification for a description:
https://www.php-fig.org/psr/psr-15/


Autoloader: %{_datadir}/php/%{ns_vendor}/%{ns_project}/%{ns_sub}/middleware-autoload.php


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


%build
: Generate autoloader
%{_bindir}/phpab --template fedora --output src/middleware-autoload.php src
cat << 'EOF' | tee -a src/middleware-autoload.php
\Fedora\Autoloader\Dependencies::required([
    [
        '%{_datadir}/php/Psr/Http/Message2/autoload.php',
        '%{_datadir}/php/Psr/Http/Message/autoload.php',
    ],
    '%{_datadir}/php/Psr/Http/Server/autoload.php',
]);
EOF


%install
mkdir -p   %{buildroot}%{_datadir}/php/%{ns_vendor}/%{ns_project}
cp -rp src %{buildroot}%{_datadir}/php/%{ns_vendor}/%{ns_project}/%{ns_sub}


%check
: Test autoloader
php -nr '
require "%{buildroot}%{_datadir}/php/%{ns_vendor}/%{ns_project}/%{ns_sub}/middleware-autoload.php";
exit (interface_exists("%{ns_vendor}\\%{ns_project}\\%{ns_sub}\\MiddlewareInterface") ? 0 : 1);
'


%files
# remirepo:1
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc *.md
%doc composer.json
%{_datadir}/php/%{ns_vendor}/%{ns_project}/%{ns_sub}/*


%changelog
* Tue Apr 11 2023 Remi Collet <remi@remirepo.net> - 1.0.2-1
- update to 1.0.2
- allow psr/http-message 2.0

* Thu Jan  2 2020 Remi Collet <remi@remirepo.net> - 1.0.1-1
- Initial package, version 1.0.1