summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2015-07-14 08:45:42 +0200
committerRemi Collet <fedora@famillecollet.com>2015-07-14 08:45:42 +0200
commit8ec2221567c97f223371f90e1396c7e2b95b8405 (patch)
treebf993d7fff651f961368b2c297d8bbef5a022574
parent589d2151865c7fc6b383f898cbf03a1db128e9bb (diff)
php-PhpCollection: backport fedora changes
-rwxr-xr-xphp-PhpCollection-get-source.sh62
-rwxr-xr-xphp-PhpCollection-strip.sh26
-rw-r--r--php-PhpCollection.spec140
3 files changed, 165 insertions, 63 deletions
diff --git a/php-PhpCollection-get-source.sh b/php-PhpCollection-get-source.sh
new file mode 100755
index 0000000..5c15702
--- /dev/null
+++ b/php-PhpCollection-get-source.sh
@@ -0,0 +1,62 @@
+#/bin/sh
+
+RPM=$(which rpm)
+
+if [ -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
+
+print "SPEC = $SPEC"
+
+NAME=$(echo $SPEC | sed 's#\.spec##')
+VERSION=$(egrep '%global\s*github_version' $SPEC | awk '{print $3}')
+
+print "NAME = $NAME"
+print "VERSION = $VERSION"
+
+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}
+SOURCE_FILENAME=${NAME}-${VERSION}-${GIT_COMMIT}.tar.gz
+RPM_SOURCE_DIR=$(rpm --eval "%{_sourcedir}")
+
+print "GIT_OWNER = $GIT_OWNER"
+print "GIT_NAME = $GIT_NAME"
+print "GIT_COMMIT = $GIT_COMMIT"
+print "GIT_REPO = $GIT_REPO"
+print "SOURCE_FILENAME = $SOURCE_FILENAME"
+print "RPM_SOURCE_DIR = $RPM_SOURCE_DIR"
+
+pushd /tmp
+ print "Getting full source..."
+ rm -f ${SOURCE_FILENAME}
+ wget https://github.com/${GIT_OWNER}/${GIT_NAME}/archive/${GIT_COMMIT}/${SOURCE_FILENAME}
+
+ print "Uncompressing full source..."
+ tar -xvzf ${SOURCE_FILENAME}
+ rm -f ${SOURCE_FILENAME}
+
+ print "Removing non-allowable licened content..."
+ rm -rf ${GIT_NAME}-${GIT_COMMIT}/doc
+
+ print "Re-compressing allowable source..."
+ rm -f ${RPM_SOURCE_DIR}/${SOURCE_FILENAME}
+ tar -cvzf ${RPM_SOURCE_DIR}/${SOURCE_FILENAME} ${GIT_NAME}-${GIT_COMMIT}
+ rm -rf ${GIT_NAME}-${GIT_COMMIT}
+
+ print "Source = \"${RPM_SOURCE_DIR}/${SOURCE_FILENAME}\""
+popd
diff --git a/php-PhpCollection-strip.sh b/php-PhpCollection-strip.sh
deleted file mode 100755
index e0a65f5..0000000
--- a/php-PhpCollection-strip.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-if [ $# != 2 ]; then
- echo "Usage: $0 VERSION GITHUB_COMMIT" 1>&2
- exit 1
-fi
-
-VERSION=$1
-GITHUB_COMMIT=$2
-
-ORIGINAL_SOURCE_FILE="${GITHUB_COMMIT}.tar.gz"
-NEW_SOURCE_FILE="php-PhpCollection-${VERSION}-${GITHUB_COMMIT}.tar.gz"
-
-if [ ! -f "$ORIGINAL_SOURCE_FILE" ]; then
- echo "ERROR: Original source file '${ORIGINAL_SOURCE_FILE}' not found" 1>&2
- exit 1
-fi
-
-TAR=`which tar`
-
-$TAR -xzf "$ORIGINAL_SOURCE_FILE"
-rm -rf "php-collection-${GITHUB_COMMIT}/doc" "$NEW_SOURCE_FILE"
-$TAR -czf "$NEW_SOURCE_FILE" "php-collection-${GITHUB_COMMIT}"
-
-echo "${NEW_SOURCE_FILE} created"
-exit 0
diff --git a/php-PhpCollection.spec b/php-PhpCollection.spec
index 480193f..b0d8ef9 100644
--- a/php-PhpCollection.spec
+++ b/php-PhpCollection.spec
@@ -1,44 +1,77 @@
+# remirepo spec file for php-PhpCollection, from Fedora:
+#
+# RPM spec file for php-PhpCollection
+#
+# Copyright (c) 2013-2015 Shawn Iwinski <shawn.iwinski@gmail.com>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
%global github_owner schmittjoh
%global github_name php-collection
%global github_version 0.4.0
%global github_commit b8bf55a0a929ca43b01232b36719f176f86c7e83
-%global lib_name PhpCollection
+%global composer_vendor phpcollection
+%global composer_project phpcollection
%global php_min_ver 5.3.0
# "phpoption/phpoption": "1.*"
-%global phpoption_min_ver 1.0
+# NOTE: min version not 1.0 because autoloader required
+%global phpoption_min_ver 1.4.0-4
%global phpoption_max_ver 2.0
-Name: php-%{lib_name}
+# Build using "--without tests" to disable tests
+%global with_tests 0%{!?_without_tests:1}
+
+%{!?phpdir: %global phpdir %{_datadir}/php}
+
+Name: php-PhpCollection
Version: %{github_version}
-Release: 1%{?dist}
+Release: 4%{?dist}
Summary: General purpose collection library for PHP
Group: Development/Libraries
License: ASL 2.0
URL: http://jmsyst.com/libs/%{github_name}
-# To create source:
-# wget https://github.com/schmittjoh/php-collection/archive/%%{github_commit}.tar.gz
-# php-PhpCollection-strip.sh %%{github_version} %%{github_commit}
+
+# GitHub export contains non-allowable licened documentation.
+# Run php-PhpCollection-get-source.sh to create allowable source.
Source0: %{name}-%{github_version}-%{github_commit}.tar.gz
-Source1: %{name}-strip.sh
+Source1: %{name}-get-source.sh
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-# For tests
+# Tests
+%if %{with_tests}
+BuildRequires: %{_bindir}/phpunit
+## composer.json
BuildRequires: php(language) >= %{php_min_ver}
-BuildRequires: php-pear(pear.phpunit.de/PHPUnit)
+#BuildRequires: php-composer(phpoption/phpoption) >= %%{phpoption_min_ver}
BuildRequires: php-PhpOption >= %{phpoption_min_ver}
-BuildRequires: php-PhpOption < %{phpoption_max_ver}
-# For tests: phpcompatinfo (computed from version 0.4.0)
+## phpcompatinfo (computed from version 0.4.0)
BuildRequires: php-spl
-
-Requires: php(language) >= %{php_min_ver}
-Requires: php-PhpOption >= %{phpoption_min_ver}
-Requires: php-PhpOption < %{phpoption_max_ver}
+## Autoloader
+BuildRequires: php-composer(symfony/class-loader)
+%endif
+
+Requires: php(language) >= %{php_min_ver}
+#Requires: php-composer(phpoption/phpoption) >= %%{phpoption_min_ver}
+Requires: php-PhpOption >= %{phpoption_min_ver}
+Requires: php-composer(phpoption/phpoption) < %{phpoption_max_ver}
# phpcompatinfo (computed from version 0.4.0)
Requires: php-spl
+# Autoloader
+Requires: php-composer(symfony/class-loader)
+
+# Standard "php-{COMPOSER_VENDOR}-{COMPOSER_PROJECT}" naming
+Provides: php-%{composer_vendor}-%{composer_project} = %{version}-%{release}
+Provides: php-%{composer_vendor} = %{version}-%{release}
+# Composer
+Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
%description
This library adds basic collections for PHP.
@@ -73,46 +106,79 @@ General Characteristics:
%prep
%setup -q -n %{github_name}-%{github_commit}
+: Create autoloader
+cat <<'AUTOLOAD' | tee src/PhpCollection/autoload.php
+<?php
+/**
+ * Autoloader for %{name} and its' dependencies
+ *
+ * Created by %{name}-%{version}-%{release}
+ *
+ * @return \Symfony\Component\ClassLoader\ClassLoader
+ */
+
+require_once '%{phpdir}/PhpOption/autoload.php';
+
+if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
+ if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
+ require_once '%{phpdir}/Symfony/Component/ClassLoader/ClassLoader.php';
+ }
+
+ $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
+ $fedoraClassLoader->register();
+}
+
+$fedoraClassLoader->addPrefix('PhpCollection\\', dirname(__DIR__));
+
+return $fedoraClassLoader;
+AUTOLOAD
+
%build
# Empty build section, nothing to build
%install
-mkdir -p -m 755 %{buildroot}%{_datadir}/php
-cp -rp src/%{lib_name} %{buildroot}%{_datadir}/php/
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{phpdir}
+cp -rp src/* %{buildroot}%{phpdir}/
%check
-# Rewrite tests' bootstrap
-( cat <<'AUTOLOAD'
-<?php
-spl_autoload_register(function ($class) {
- $src = str_replace('\\', '/', str_replace('_', '/', $class)).'.php';
- @include_once $src;
-});
-AUTOLOAD
-) > tests/bootstrap.php
-
-# Create PHPUnit config w/ colors turned off
-cat phpunit.xml.dist \
- | sed 's/colors="true"/colors="false"/' \
- > phpunit.xml
-
-# Skip test known to fail
+%if %{with_tests}
+: Skip test known to fail
sed 's/function testMap/function SKIP_testMap/' \
-i tests/PhpCollection/Tests/SequenceTest.php
-%{_bindir}/phpunit --include-path="./src:./tests"
+: Run tests
+%{_bindir}/phpunit --bootstrap %{buildroot}%{phpdir}/PhpCollection/autoload.php
+%else
+: Tests skipped
+%endif
+
+
+%clean
+rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
-%doc LICENSE *.md composer.json
-%{_datadir}/php/%{lib_name}
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc *.md
+%doc composer.json
+%{phpdir}/PhpCollection
%changelog
+* Sun Jul 12 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 0.4.0-4
+- Added spec license
+- New source script %%{name}-get-source.sh instead of %%{name}-strip.sh
+- Added autoloader
+- Added standard "php-{COMPOSER_VENDOR}-{COMPOSER_PROJECT}" naming provides
+- Added php-composer(phpcollection/phpcollection) provide
+- %%license usage
+
* Tue Apr 22 2014 Remi Collet <remi@fedoraproject.org> 0.4.0-1
- backport 0.4.0 for remi repo.