summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2016-01-31 18:33:50 +0100
committerRemi Collet <fedora@famillecollet.com>2016-01-31 18:33:50 +0100
commit9a50287fd5eea98023363a9451d0b70b383ea9f9 (patch)
tree241e8add284abfc611c9ef7c2de30158887d923c
php-guzzlehttp-guzzle6: import from Fedora
-rwxr-xr-xphp-guzzlehttp-guzzle6-get-source.sh69
-rw-r--r--php-guzzlehttp-guzzle6.spec234
2 files changed, 303 insertions, 0 deletions
diff --git a/php-guzzlehttp-guzzle6-get-source.sh b/php-guzzlehttp-guzzle6-get-source.sh
new file mode 100755
index 0000000..ba71f5d
--- /dev/null
+++ b/php-guzzlehttp-guzzle6-get-source.sh
@@ -0,0 +1,69 @@
+#/bin/sh
+
+GIT=`which git`
+RPM=`which rpm`
+
+if [ -z "$GIT" ]
+then
+ echo "ERROR: 'git' command not found" 1>&2
+ exit 1
+elif [ -z "$RPM" ]
+then
+ echo "ERROR: 'rpm' command not found" 1>&2
+ exit 1
+fi
+
+function print {
+ echo -e "\e[0;33m>>>>> ${1}\e[0m"
+}
+
+if [ -x "$1" ]
+then
+ SPEC=$1
+else
+ SPEC=`ls *.spec | head -1`
+fi
+
+NAME=`echo $SPEC | sed 's#\.spec##'`
+VERSION=`egrep '%global\s*github_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_REPO=https://github.com/${GIT_OWNER}/${GIT_NAME}
+GIT_DIR=`echo $GIT_REPO | sed 's#.*/##'`
+
+print "GIT_OWNER = $GIT_OWNER"
+print "GIT_NAME = $GIT_NAME"
+print "GIT_COMMIT = $GIT_COMMIT"
+print "GIT_REPO = $GIT_REPO"
+print "GIT_DIR = $GIT_DIR"
+
+TEMP_DIR=$(mktemp --dir)
+
+pushd $TEMP_DIR
+ print "Cloning git repo..."
+ $GIT clone $GIT_REPO
+
+ pushd $GIT_DIR
+ print "Checking out commit..."
+ $GIT checkout $GIT_COMMIT
+ popd
+
+ TAR_DIR=${GIT_NAME}-${GIT_COMMIT}
+ print "TAR_DIR = $TAR_DIR"
+
+ mv $GIT_DIR $TAR_DIR
+
+ TAR_FILE=`$RPM --eval='%{_sourcedir}'`/${NAME}-${VERSION}-${GIT_COMMIT}.tar.gz
+ print "TAR_FILE = $TAR_FILE"
+
+ [ -e $TAR_FILE ] && rm -f $TAR_FILE
+ tar --exclude-vcs -czf $TAR_FILE $TAR_DIR
+ chmod 0644 $TAR_FILE
+popd
+
+rm -rf $TEMP_DIR
diff --git a/php-guzzlehttp-guzzle6.spec b/php-guzzlehttp-guzzle6.spec
new file mode 100644
index 0000000..0865b89
--- /dev/null
+++ b/php-guzzlehttp-guzzle6.spec
@@ -0,0 +1,234 @@
+#
+# Fedora spec file for php-guzzlehttp-guzzle6
+#
+# Copyright (c) 2015-2016 Shawn Iwinski <shawn@iwin.ski>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
+%global github_owner guzzle
+%global github_name guzzle
+%global github_version 6.1.1
+%global github_commit c6851d6e48f63b69357cbfa55bca116448140e0c
+
+%global composer_vendor guzzlehttp
+%global composer_project guzzle
+
+# "php": ">=5.5.0"
+%global php_min_ver 5.5.0
+# "guzzlehttp/promises": "~1.0"
+%global promises_min_ver 1.0
+%global promises_max_ver 2.0
+# "guzzlehttp/psr7": "~1.1"
+%global psr7_min_ver 1.1
+%global psr7_max_ver 2.0
+# "psr/log": "~1.0"
+# NOTE: Min version not 1.0 because autoloader required
+%global psr_log_min_ver 1.0.0-8
+%global psr_log_max_ver 2.0
+
+# Build using "--without tests" to disable tests
+%global with_tests 0%{!?_without_tests:1}
+
+%{!?phpdir: %global phpdir %{_datadir}/php}
+%{!?testsdir: %global testsdir %{_datadir}/tests}
+
+Name: php-%{composer_vendor}-%{composer_project}6
+Version: %{github_version}
+Release: 2%{?github_release}%{?dist}
+Summary: PHP HTTP client library
+
+Group: Development/Libraries
+License: MIT
+URL: http://guzzlephp.org
+
+# GitHub export does not include tests.
+# Run php-guzzlehttp-guzzle6.sh to create full source.
+Source0: %{name}-%{github_version}-%{github_commit}.tar.gz
+Source1: %{name}-get-source.sh
+
+BuildArch: noarch
+# Tests
+%if %{with_tests}
+BuildRequires: nodejs
+## composer.json
+BuildRequires: php(language) >= %{php_min_ver}
+BuildRequires: php-composer(guzzlehttp/promises) >= %{promises_min_ver}
+BuildRequires: php-composer(guzzlehttp/psr7) >= %{psr7_min_ver}
+BuildRequires: php-composer(phpunit/phpunit)
+#BuildRequires: php-composer(psr/log) >= %%{psr_log_min_ver}
+BuildRequires: php-PsrLog >= %{psr_log_min_ver}
+## phpcompatinfo (computed from version 6.1.1)
+BuildRequires: php-curl
+BuildRequires: php-date
+BuildRequires: php-filter
+BuildRequires: php-intl
+BuildRequires: php-json
+BuildRequires: php-pcre
+BuildRequires: php-reflection
+BuildRequires: php-spl
+BuildRequires: php-zlib
+# Autoloader
+## NOTE: Min version 2.5 because class
+## \Symfony\Component\ClassLoader\Psr4ClassLoader required
+BuildRequires: php-composer(symfony/class-loader) >= 2.5
+%endif
+
+Requires: ca-certificates
+# composer.json
+Requires: php(language) >= %{php_min_ver}
+Requires: php-composer(guzzlehttp/promises) >= %{promises_min_ver}
+Requires: php-composer(guzzlehttp/promises) < %{promises_max_ver}
+Requires: php-composer(guzzlehttp/psr7) >= %{psr7_min_ver}
+Requires: php-composer(guzzlehttp/psr7) < %{psr7_max_ver}
+#Requires: php-composer(psr/log) >= %%{psr_log_min_ver}
+Requires: php-PsrLog >= %{psr_log_min_ver}
+Requires: php-composer(psr/log) < %{psr_log_max_ver}
+# phpcompatinfo (computed from version 6.1.1)
+Requires: php-curl
+Requires: php-date
+Requires: php-filter
+Requires: php-json
+Requires: php-pcre
+Requires: php-spl
+# Autoloader
+## NOTE: Min version 2.5 because class
+## \Symfony\Component\ClassLoader\Psr4ClassLoader required
+Requires: php-composer(symfony/class-loader) >= 2.5
+
+# Composer
+Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
+
+%description
+Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and trivial
+to integrate with web services.
+
+* Simple interface for building query strings, POST requests, streaming large
+ uploads, streaming large downloads, using HTTP cookies, uploading JSON data,
+ etc...
+* Can send both synchronous and asynchronous requests using the same interface.
+* Uses PSR-7 interfaces for requests, responses, and streams. This allows you
+ to utilize other PSR-7 compatible libraries with Guzzle.
+* Abstracts away the underlying HTTP transport, allowing you to write
+ environment and transport agnostic code; i.e., no hard dependency on cURL,
+ PHP streams, sockets, or non-blocking event loops.
+* Middleware system allows you to augment and compose client behavior.
+
+Autoloader: %{phpdir}/GuzzleHttp6/autoload.php
+
+
+%prep
+%setup -qn %{github_name}-%{github_commit}
+
+
+%build
+: Create common autoloader
+cat <<'AUTOLOAD' | tee src/autoload.php
+<?php
+/**
+ * Autoloader for %{name} and its' dependencies
+ * (created by %{name}-%{version}-%{release}).
+ */
+
+if (!isset($fedoraPsr4ClassLoader) || !($fedoraPsr4ClassLoader instanceof \Symfony\Component\ClassLoader\Psr4ClassLoader)) {
+ if (!class_exists('Symfony\\Component\\ClassLoader\\Psr4ClassLoader', false)) {
+ require_once '%{phpdir}/Symfony/Component/ClassLoader/Psr4ClassLoader.php';
+ }
+
+ $fedoraPsr4ClassLoader = new \Symfony\Component\ClassLoader\Psr4ClassLoader();
+ $fedoraPsr4ClassLoader->register();
+}
+
+$fedoraPsr4ClassLoader->addPrefix('GuzzleHttp\\', __DIR__);
+
+require_once __DIR__ . '/functions_include.php';
+require_once '%{phpdir}/GuzzleHttp/Promise/autoload.php';
+require_once '%{phpdir}/GuzzleHttp/Psr7/autoload.php';
+require_once '%{phpdir}/Psr/Log/autoload.php';
+AUTOLOAD
+
+
+%install
+mkdir -p %{buildroot}%{phpdir}/GuzzleHttp6
+cp -pr src/* %{buildroot}%{phpdir}/GuzzleHttp6/
+
+
+%check
+%if %{with_tests}
+: Create mock Composer autoloader
+mkdir vendor
+cat <<'AUTOLOAD' | tee vendor/autoload.php
+<?php
+require_once '%{buildroot}%{phpdir}/GuzzleHttp6/autoload.php';
+$fedoraPsr4ClassLoader->addPrefix('GuzzleHttp\\Tests\\', __DIR__.'/tests');
+AUTOLOAD
+
+%{_bindir}/phpunit --verbose
+%else
+: Tests skipped
+%endif
+
+
+%files
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc *.md
+%doc composer.json
+%{phpdir}/GuzzleHttp6
+
+
+%changelog
+* Thu Jan 28 2016 Shawn Iwinski <shawn@iwin.ski> - 6.1.1-2
+- Added min version of autoloader dependency
+- Fix directory ownership
+
+* Sun Dec 06 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 6.1.1-1
+- Renamed from php-guzzlehttp-guzzle to php-guzzlehttp-guzzle6 for
+ dual-install of version 5 and version 6
+- Updated to 6.1.1
+
+* Sun Jun 28 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 5.3.0-3
+- Autoloader updates
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.3.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sun Jun 14 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 5.3.0-1
+- Updated to 5.3.0 (BZ #1140134)
+- Added autoloader
+- Re-added tests
+
+* Sun Feb 08 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 5.1.0-1
+- Updated to 5.1.0 (BZ #1140134)
+- CA cert no longer bundled (see
+ https://github.com/guzzle/guzzle/blob/5.1.0/docs/clients.rst#verify)
+- No tests because dependency package does not provide required test file
+
+* Mon Jan 12 2015 Remi Collet <remi@fedoraproject.org> - 4.1.8-3
+- Upstream patch for PHP behavior change, thanks Koschei
+
+* Tue Aug 26 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 4.1.8-2
+- Fix test suite when previous version installed
+
+* Sat Aug 23 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 4.1.8-1
+- Updated to 4.1.8 (BZ #1126611)
+
+* Wed Jul 30 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 4.1.4-1
+- Updated to 4.1.4 (BZ #1124226)
+- Added %%license usage
+
+* Sun Jun 29 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 4.1.2-1
+- Updated to 4.1.2
+
+* Fri Jun 06 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 4.1.0-1
+- Updated to 4.1.0
+- Require php-composer virtual provides instead of direct pkgs
+- Added php-PsrLog and nodejs build requires
+- Added php-composer(%%{composer_vendor}/%%{composer_project}) virtual provide
+- Added option to build without tests
+
+* Fri May 23 2014 Shawn Iwinski <shawn.iwinski@gmail.com> - 4.0.2-1
+- Initial package