diff options
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | composer.json | 152 | ||||
| -rwxr-xr-x[l---------] | makesrc.sh | 29 | ||||
| -rwxr-xr-x | php-http-psr7-integration-tests-get-source.sh (renamed from php-zendframework-zend-diactoros-get-source.sh) | 19 | ||||
| -rw-r--r-- | php-laminas-diactoros.spec | 188 | 
5 files changed, 238 insertions, 153 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a2cd659 --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile diff --git a/composer.json b/composer.json index cd72e25..abbcd34 100644 --- a/composer.json +++ b/composer.json @@ -1,72 +1,88 @@  { -  "name": "zendframework/zend-diactoros", -  "description": "PSR HTTP Message implementations", -  "type": "library", -  "license": "BSD-2-Clause", -  "keywords": [ -    "http", -    "psr", -    "psr-7" -  ], -  "homepage": "https://github.com/zendframework/zend-diactoros", -  "support": { -    "issues": "https://github.com/zendframework/zend-diactoros/issues", -    "source": "https://github.com/zendframework/zend-diactoros" -  }, -  "config": { -      "sort-packages": true -  }, -  "extra": { -    "branch-alias": { -      "dev-release-1.8": "1.8.x-dev" -    } -  }, -  "require": { -    "php": "^5.6 || ^7.0", -    "psr/http-message": "^1.0" -  }, -  "require-dev": { -    "ext-dom": "*", -    "ext-libxml": "*", -    "php-http/psr7-integration-tests": "dev-master", -    "phpunit/phpunit": "^5.7.16 || ^6.0.8 || ^7.2.7", -    "zendframework/zend-coding-standard": "~1.0" -  }, -  "provide": { -    "psr/http-message-implementation": "1.0" -  }, -  "autoload": { -    "files": [ -        "src/functions/create_uploaded_file.php", -        "src/functions/marshal_headers_from_sapi.php", -        "src/functions/marshal_method_from_sapi.php", -        "src/functions/marshal_protocol_version_from_sapi.php", -        "src/functions/marshal_uri_from_sapi.php", -        "src/functions/normalize_server.php", -        "src/functions/normalize_uploaded_files.php", -        "src/functions/parse_cookie_header.php" +    "name": "laminas/laminas-diactoros", +    "description": "PSR HTTP Message implementations", +    "license": "BSD-3-Clause", +    "keywords": [ +        "laminas", +        "http", +        "psr", +        "psr-7"      ], -    "psr-4": { -      "Zend\\Diactoros\\": "src/" -    } -  }, -  "autoload-dev": { -    "psr-4": { -      "ZendTest\\Diactoros\\": "test/" +    "homepage": "https://laminas.dev", +    "support": { +        "docs": "https://docs.laminas.dev/laminas-diactoros/", +        "issues": "https://github.com/laminas/laminas-diactoros/issues", +        "source": "https://github.com/laminas/laminas-diactoros", +        "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", +        "chat": "https://laminas.dev/chat", +        "forum": "https://discourse.laminas.dev"      }, -    "files": [ -      "test/TestAsset/Functions.php", -      "test/TestAsset/SapiResponse.php" -    ] -  }, -  "scripts": { -    "check": [ -      "@cs-check", -      "@test" -    ], -    "cs-check": "phpcs", -    "cs-fix": "phpcbf", -    "test": "phpunit --colors=always", -    "test-coverage": "phpunit --colors=always --coverage-clover clover.xml" -  } +    "config": { +        "sort-packages": true +    }, +    "extra": { +        "branch-alias": { +            "dev-release-1.8": "1.8.x-dev" +        } +    }, +    "require": { +        "php": "^5.6 || ^7.0", +        "laminas/laminas-zendframework-bridge": "^1.0", +        "psr/http-message": "^1.0" +    }, +    "require-dev": { +        "ext-dom": "*", +        "ext-libxml": "*", +        "laminas/laminas-coding-standard": "~1.0", +        "php-http/psr7-integration-tests": "dev-master", +        "phpunit/phpunit": "^5.7.16 || ^6.0.8 || ^7.2.7" +    }, +    "provide": { +        "psr/http-message-implementation": "1.0" +    }, +    "autoload": { +        "files": [ +            "src/functions/create_uploaded_file.php", +            "src/functions/marshal_headers_from_sapi.php", +            "src/functions/marshal_method_from_sapi.php", +            "src/functions/marshal_protocol_version_from_sapi.php", +            "src/functions/marshal_uri_from_sapi.php", +            "src/functions/normalize_server.php", +            "src/functions/normalize_uploaded_files.php", +            "src/functions/parse_cookie_header.php", +            "src/functions/create_uploaded_file.legacy.php", +            "src/functions/marshal_headers_from_sapi.legacy.php", +            "src/functions/marshal_method_from_sapi.legacy.php", +            "src/functions/marshal_protocol_version_from_sapi.legacy.php", +            "src/functions/marshal_uri_from_sapi.legacy.php", +            "src/functions/normalize_server.legacy.php", +            "src/functions/normalize_uploaded_files.legacy.php", +            "src/functions/parse_cookie_header.legacy.php" +        ], +        "psr-4": { +            "Laminas\\Diactoros\\": "src/" +        } +    }, +    "autoload-dev": { +        "psr-4": { +            "LaminasTest\\Diactoros\\": "test/" +        }, +        "files": [ +            "test/TestAsset/Functions.php", +            "test/TestAsset/SapiResponse.php" +        ] +    }, +    "scripts": { +        "check": [ +            "@cs-check", +            "@test" +        ], +        "cs-check": "phpcs", +        "cs-fix": "phpcbf", +        "test": "phpunit --colors=always", +        "test-coverage": "phpunit --colors=always --coverage-clover clover.xml" +    }, +    "replace": { +        "zendframework/zend-diactoros": "self.version" +    }  } diff --git a/makesrc.sh b/makesrc.sh index bf1532e..87d223d 120000..100755 --- a/makesrc.sh +++ b/makesrc.sh @@ -1 +1,28 @@ -php-zendframework-zend-diactoros-get-source.sh
\ No newline at end of file +#!/bin/bash + +NAME=$(basename $PWD) +OWNER=$(sed   -n '/^%global gh_owner/{s/.* //;p}'   $NAME.spec) +PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec) +VERSION=$(sed -n '/^Version:/{s/.* //;p}'           $NAME.spec) +COMMIT=$(sed  -n '/^%global gh_commit/{s/.* //;p}'  $NAME.spec) +SHORT=${COMMIT:0:7} + +echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION\n" + +echo "Cloning..." +rm -rf $PROJECT-$COMMIT +git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT + +echo "Getting commit..." +pushd $PROJECT-$COMMIT +git checkout $COMMIT +cp composer.json ../composer.json +popd + +echo "Archiving..." +tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT + +echo "Cleaning..." +rm -rf $PROJECT-$COMMIT + +echo "Done." diff --git a/php-zendframework-zend-diactoros-get-source.sh b/php-http-psr7-integration-tests-get-source.sh index 4ad1051..dd96c2a 100755 --- a/php-zendframework-zend-diactoros-get-source.sh +++ b/php-http-psr7-integration-tests-get-source.sh @@ -24,18 +24,17 @@ else      SPEC=`ls *.spec | head -1`  fi -NAME=`echo $SPEC | sed 's#\.spec##'` -VERSION=`egrep '%global\s*github_version' $SPEC | awk '{print $3}'` +VERSION=`egrep '%global\s*gh_psr7_version' $SPEC | awk '{print $3}'` -print "SPEC = $SPEC" -print "NAME = $NAME" - -GIT_OWNER=`egrep '%global\s*github_owner' $SPEC | awk '{print $3}'` -GIT_NAME=`egrep '%global\s*github_name' $SPEC | awk '{print $3}'` -GIT_COMMIT=`egrep '%global\s*github_commit' $SPEC | awk '{print $3}'` +GIT_OWNER=`egrep '%global\s*gh_psr7_owner' $SPEC | awk '{print $3}'` +GIT_NAME=`egrep '%global\s*gh_psr7_name' $SPEC | awk '{print $3}'` +GIT_COMMIT=`egrep '%global\s*gh_psr7_commit' $SPEC | awk '{print $3}'`  GIT_REPO=https://github.com/${GIT_OWNER}/${GIT_NAME}  GIT_DIR=`echo $GIT_REPO | sed 's#.*/##'` +NAME="$GIT_OWNER-$GIT_NAME" +print "SPEC = $SPEC" +print "NAME = $NAME"  print "GIT_OWNER = $GIT_OWNER"  print "GIT_NAME = $GIT_NAME"  print "GIT_COMMIT = $GIT_COMMIT" @@ -43,8 +42,8 @@ print "GIT_REPO = $GIT_REPO"  print "GIT_DIR = $GIT_DIR"  TEMP_DIR=$(mktemp --dir) -TAR_FILE=$PWD/${NAME}-${VERSION}-${GIT_COMMIT}.tar.gz -CMP_FILE=$PWD/composer.json +TAR_FILE=$PWD/${NAME}-${VERSION}-${GIT_COMMIT:0:7}.tgz +CMP_FILE=$PWD/composer-psr7.json  pushd $TEMP_DIR      print "Cloning git repo..." diff --git a/php-laminas-diactoros.spec b/php-laminas-diactoros.spec index 99a8019..499d5e8 100644 --- a/php-laminas-diactoros.spec +++ b/php-laminas-diactoros.spec @@ -1,8 +1,6 @@ -# remirepo spec file for php-zendframework-zend-diactoros, from +# remirepo/Fedora spec file for php-laminas-diactoros  # -# Fedora spec file for php-zendframework-zend-diactoros -# -# Copyright (c) 2015-2018 Shawn Iwinski <shawn.iwinski@gmail.com> +# Copyright (c) 2015-2020 Shawn Iwinski, Remi Collet  #  # License: MIT  # http://opensource.org/licenses/MIT @@ -10,18 +8,20 @@  # Please preserve changelog entries  # -%global github_owner     zendframework -%global github_name      zend-diactoros -%global github_version   1.8.7 -%global github_commit    a85e67b86e9b8520d07e6415fcbcb8391b44a75b - -%global github_psr7_owner     php-http -%global github_psr7_name      psr7-integration-tests -%global github_psr7_version   0 -%global github_psr7_commit    5dfefb2da33ca24ae20c971b725c9a6fe7403008 - -%global composer_vendor  zendframework -%global composer_project zend-diactoros +%global gh_owner     laminas +%global gh_project   laminas-diactoros +%global zf_name      zend-diactoros +%global gh_commit    56a9aca1f89231763d24d2ae13531b97fa5f4029 +%global gh_short     %(c=%{gh_commit}; echo ${c:0:7}) +%global php_home     %{_datadir}/php +%global namespace    Laminas +%global library      Diactoros + +%global gh_psr7_owner     php-http +%global gh_psr7_name      psr7-integration-tests +%global gh_psr7_version   0 +%global gh_psr7_commit    5dfefb2da33ca24ae20c971b725c9a6fe7403008 +%global gh_psr7_short     %(c=%{gh_psr7_commit}; echo ${c:0:7})  # "php": "^5.6 || ^7.0"  %global php_min_ver 5.6 @@ -34,21 +34,21 @@  %{!?phpdir:  %global phpdir  %{_datadir}/php} -Name:          php-%{composer_vendor}-%{composer_project} -Version:       %{github_version} -Release:       1%{?github_release}%{?dist} +Name:          php-%{gh_project} +Version:       1.8.7p1 +Release:       1%{?gh_release}%{?dist}  Summary:       PSR HTTP Message implementations  License:       BSD -URL:           https://zendframework.github.io/%{github_name}/ +URL:           https://github.com/%{gh_owner}/%{gh_project}  # GitHub export does not include tests. -# Run php-zendframework-zend-diactoros-get-source.sh to create full source. -Source0:       %{name}-%{github_version}-%{github_commit}.tar.gz -Source1:       %{name}-get-source.sh +# Run makesrc.sh to create full source. +Source0:       %{name}-%{version}-%{gh_short}.tgz +Source1:       makesrc.sh  # Temporarily bundled, no release, only used for tests -Source2:       %{github_psr7_owner}-%{github_psr7_name}-%{github_psr7_version}-%{github_psr7_commit}.tar.gz -Source3:       %{github_psr7_owner}-%{github_psr7_name}-get-source.sh +Source2:       %{gh_psr7_owner}-%{gh_psr7_name}-%{gh_psr7_version}-%{gh_psr7_short}.tgz +Source3:       %{gh_psr7_owner}-%{gh_psr7_name}-get-source.sh  BuildArch:     noarch  # Tests @@ -57,73 +57,80 @@ BuildArch:     noarch  BuildRequires: php(language) >= %{php_min_ver}  # remirepo:1  %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 -%global phpunit %{_bindir}/phpunit6 -BuildRequires: (php-composer(psr/http-message) >= %{psr_http_message_min_ver} with php-composer(psr/http-message) <  %{psr_http_message_max_ver}) -# remirepo:5 +BuildRequires: (php-autoloader(%{gh_owner}/laminas-zendframework-bridge) >= 1.0 with php-autoloader(%{gh_owner}/laminas-zendframework-bridge) < 2) +BuildRequires: (php-composer(psr/http-message) >= %{psr_http_message_min_ver}   with php-composer(psr/http-message) <  %{psr_http_message_max_ver}) +# remirepo:4  %else -%global phpunit %{_bindir}/phpunit -BuildRequires: php-composer(psr/http-message) <  %{psr_http_message_max_ver} -BuildRequires: php-composer(psr/http-message) >= %{psr_http_message_min_ver} +BuildRequires:  php-laminas-zendframework-bridge +BuildRequires:  php-psr-http-message  %endif -BuildRequires: %{phpunit} -BuildRequires: php-dom -BuildRequires: php-libxml -## phpcompatinfo (computed from version 1.8.6) +%global phpunit %{_bindir}/phpunit6 +BuildRequires:  %{phpunit} +BuildRequires:  php-dom +BuildRequires:  php-libxml +## phpcompatinfo (computed from version 1.8.7p1)  ### NOTE: curl, gd, gmp, and shmop are all optional for -###       ZendTest\Diactoros\StreamTest::getResourceFor67() +###       LaminasTest\Diactoros\StreamTest::getResourceFor67()  ###       (test/StreamTest.php) but the first one found wins  ###       so only curl is chosen as a requirement here. -BuildRequires: php-curl -BuildRequires: php-dom -BuildRequires: php-json -BuildRequires: php-libxml -BuildRequires: php-pcre -BuildRequires: php-reflection -BuildRequires: php-shmop -BuildRequires: php-spl +BuildRequires:  php-curl +BuildRequires:  php-dom +BuildRequires:  php-json +BuildRequires:  php-libxml +BuildRequires:  php-pcre +BuildRequires:  php-reflection +BuildRequires:  php-shmop +BuildRequires:  php-spl  %endif  ## Autoloader -BuildRequires: php-fedora-autoloader-devel +BuildRequires:  php-fedora-autoloader-devel  # composer.json -Requires:      php(language) >= %{php_min_ver} +Requires:       php(language) >= %{php_min_ver}  # remirepo:1  %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 -Requires:      (php-composer(psr/http-message) >= %{psr_http_message_min_ver} with php-composer(psr/http-message) <  %{psr_http_message_max_ver}) +Requires:      (php-autoloader(%{gh_owner}/laminas-zendframework-bridge) >= 1.0 with php-autoloader(%{gh_owner}/laminas-zendframework-bridge) < 2) +Requires:      (php-composer(psr/http-message) >= %{psr_http_message_min_ver}   with php-composer(psr/http-message) <  %{psr_http_message_max_ver})  # remirepo:4  %else -Requires:      php-composer(psr/http-message) <  %{psr_http_message_max_ver} -Requires:      php-composer(psr/http-message) >= %{psr_http_message_min_ver} +Requires:       php-laminas-zendframework-bridge +Requires:       php-psr-http-message  %endif -# phpcompatinfo (computed from version 1.8.6) -Requires:      php-json -Requires:      php-pcre -Requires:      php-spl +# phpcompatinfo (computed from version 1.8.7p1) +Requires:       php-json +Requires:       php-pcre +Requires:       php-spl  # Autoloader -Requires:      php-composer(fedora/autoloader) +Requires:       php-composer(fedora/autoloader)  # Composer -Provides:      php-composer(%{composer_vendor}/%{composer_project}) = %{version} -Provides:      php-autoloader(%{composer_vendor}/%{composer_project}) = %{version} -Provides:      php-composer(psr/http-message-implementation) = 1.0 +# Compatibily ensure by the bridge +Obsoletes:      php-zendframework-%{zf_name}              < 1.8.7p1 +Provides:       php-zendframework-%{zf_name}              = %{version} +Provides:       php-composer(%{gh_owner}/%{gh_project})   = %{version} +Provides:       php-composer(zendframework/%{zf_name})    = %{version} +Provides:       php-autoloader(%{gh_owner}/%{gh_project}) = %{version} +Provides:       php-autoloader(zendframework/%{zf_name})  = %{version} +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://zendframework.github.io/%{github_name}/ +Documentation: https://docs.laminas.dev/%{gh_project}/ -Autoloader: %{phpdir}/Zend/Diactoros/autoload.php +Autoloader: %{phpdir}/%{namespace}/Diactoros/autoload.php  [1] http://www.php-fig.org/psr/psr-7/  [2] http://nodejs.org/api/http.html  %prep -%setup -qn %{github_name}-%{github_commit} -a2 +%setup -qn %{gh_project}-%{gh_commit} -a2 -mv %{github_psr7_name}-%{github_psr7_commit} psr7 +mv %{gh_psr7_name}-%{gh_psr7_commit} psr7  mv LICENSE.md LICENSE @@ -144,10 +151,33 @@ cat <<'AUTOLOAD' | tee -a src/autoload.php  ));  AUTOLOAD +cat << 'EOF' | tee zf.php +<?php +require_once '%{php_home}/Fedora/Autoloader/autoload.php'; +$dir = dirname(dirname(__DIR__)) . '/%{namespace}/%{library}'; +\Fedora\Autoloader\Dependencies::required([ +    '%{php_home}/%{namespace}/ZendFrameworkBridge/autoload.php', +    $dir . '/autoload.php', +    $dir . '/functions/create_uploaded_file.legacy.php', +    $dir . '/functions/marshal_headers_from_sapi.legacy.php', +    $dir . '/functions/marshal_method_from_sapi.legacy.php', +    $dir . '/functions/marshal_protocol_version_from_sapi.legacy.php', +    $dir . '/functions/marshal_uri_from_sapi.legacy.php', +    $dir . '/functions/normalize_server.legacy.php', +    $dir . '/functions/normalize_uploaded_files.legacy.php', +    $dir . '/functions/parse_cookie_header.legacy.php', +]); +EOF +  %install -mkdir -p %{buildroot}%{phpdir}/Zend/Diactoros -cp -rp src/* %{buildroot}%{phpdir}/Zend/Diactoros/ +: Laminas library +mkdir -p   %{buildroot}%{php_home}/%{namespace}/ +cp -pr src %{buildroot}%{php_home}/%{namespace}/%{library} + +: Zend equiv +mkdir -p      %{buildroot}%{php_home}/Zend/%{library} +cp -pr zf.php %{buildroot}%{php_home}/Zend/%{library}/autoload.php  %check @@ -156,8 +186,8 @@ cp -rp src/* %{buildroot}%{phpdir}/Zend/Diactoros/  cat <<'BOOTSTRAP' | tee bootstrap.php  <?php -require_once '%{buildroot}%{phpdir}/Zend/Diactoros/autoload.php'; -\Fedora\Autoloader\Autoload::addPsr4('ZendTest\\Diactoros\\', __DIR__.'/test'); +require_once '%{buildroot}%{phpdir}/%{namespace}/Diactoros/autoload.php'; +\Fedora\Autoloader\Autoload::addPsr4('%{namespace}Test\\Diactoros\\', __DIR__.'/test');  \Fedora\Autoloader\Autoload::addPsr4('Http\\Psr7Test\\', __DIR__.'/psr7/src');  \Fedora\Autoloader\Dependencies::required(array( @@ -166,19 +196,25 @@ require_once '%{buildroot}%{phpdir}/Zend/Diactoros/autoload.php';  ));  BOOTSTRAP -: Skip test requiring network access -sed 's/function testReasonPhraseDefaultsAgainstIana/function SKIP_testReasonPhraseDefaultsAgainstIana/' \ -    -i test/ResponseTest.php -  : Upstream tests +# Skip testReasonPhraseDefaultsAgainstIana requiring network access  RETURN_CODE=0 -for CMDARG in "php %{phpunit}" php71 php72 php73 php74; do +for CMDARG in "php %{phpunit}" php72 php73 php74; do      if which $CMDARG; then          set $CMDARG -        $1 ${2:-%{_bindir}/phpunit6} --bootstrap bootstrap.php --verbose \ -            || RETURN_CODE=1 +        $1 ${2:-%{_bindir}/phpunit6} \ +           --bootstrap bootstrap.php \ +           --filter '^((?!(testReasonPhraseDefaultsAgainstIana)).)*$' \ +           --verbose || RETURN_CODE=1      fi  done + +: check compat autoloader +php -r ' +require "%{buildroot}%{php_home}/Zend/%{library}/autoload.php"; +return (class_exists("\\Zend\\%{library}\\Request") ? 0 : 1); +' +  exit $RETURN_CODE  %else  : Tests skipped @@ -191,11 +227,15 @@ exit $RETURN_CODE  %license LICENSE  %doc *.md  %doc composer.json -%dir %{phpdir}/Zend -     %{phpdir}/Zend/Diactoros +%{php_home}/Zend/%{library} +%{php_home}/%{namespace}/%{library}  %changelog +* 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  | 
