diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | composer.json | 43 | ||||
-rw-r--r-- | phinx-autoload.php | 19 | ||||
-rw-r--r-- | phinx.spec | 176 |
4 files changed, 241 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cd3c95f --- /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 new file mode 100644 index 0000000..eaf7473 --- /dev/null +++ b/composer.json @@ -0,0 +1,43 @@ +{ + "name": "robmorgan/phinx", + "type": "library", + "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.", + "keywords": ["phinx", "migrations", "database", "db", "database migrations"], + "homepage": "https://phinx.org", + "license": "MIT", + "authors": [{ + "name": "Rob Morgan", + "email": "robbym@gmail.com", + "homepage": "https://robmorgan.id.au", + "role": "Lead Developer" + }, { + "name": "Woody Gilk", + "email": "woody.gilk@gmail.com", + "homepage": "http://shadowhand.me", + "role": "Developer" + }, { + "name": "Richard Quadling", + "email": "rquadling@gmail.com", + "role": "Developer" + }], + "require": { + "php": ">=5.4", + "symfony/console": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.26|^5.0" + }, + "autoload": { + "psr-4": { + "Phinx\\": "src/Phinx" + } + }, + "autoload-dev": { + "psr-4": { + "Test\\Phinx\\": "tests/Phinx" + } + }, + "bin": ["bin/phinx"] +} diff --git a/phinx-autoload.php b/phinx-autoload.php new file mode 100644 index 0000000..b2e2835 --- /dev/null +++ b/phinx-autoload.php @@ -0,0 +1,19 @@ +<?php +/* Autoloader for robmorgan/phinx and its dependencies */ + +$vendorDir = '/usr/share/php'; +// Use Symfony autoloader +if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) { + if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) { + require_once $vendorDir . '/Symfony/Component/ClassLoader/ClassLoader.php'; + } + + $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader(); + $fedoraClassLoader->register(); +} + +$fedoraClassLoader->addPrefixes(array( + 'Symfony\\Component\\' => $vendorDir, + 'Phinx\\' => dirname(__DIR__) +)); + diff --git a/phinx.spec b/phinx.spec new file mode 100644 index 0000000..6b98d86 --- /dev/null +++ b/phinx.spec @@ -0,0 +1,176 @@ +# remirepo/fedora spec file for phinx +# +# Copyright (c) 2016 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit 0d9293edb425b2d48ee1fd43cd2571e3ade77314 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner robmorgan +#global gh_date 20150820 +%global gh_project phinx +%global psr0 Phinx +%if 0%{?rhel} == 5 +# 3 failures on EL-5 related to sqlite +%global with_tests 0%{?_with_tests:1} +%else +%global with_tests 0%{!?_without_tests:1} +%endif + +Name: %{gh_project} +Version: 0.6.4 +Release: 1%{?gh_date?%{gh_date}git%{gh_short}}%{?dist} +Summary: Manage the database migrations for your PHP app + +Group: Development/Libraries +License: MIT +URL: https://phinx.org +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{?gh_short}.tar.gz + +Source1: %{name}-autoload.php + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch +%if %{with_tests} +BuildRequires: php(language) >= 5.4 +BuildRequires: php-composer(symfony/console) >= 2.8 +BuildRequires: php-composer(symfony/config) >= 2.8 +BuildRequires: php-composer(symfony/yaml) >= 2.8 +BuildRequires: php-pdo +BuildRequires: php-date +BuildRequires: php-json +BuildRequires: php-pcre +BuildRequires: php-spl +# For tests, from composer.json "require-dev": { +# "phpunit/phpunit": "^4.8.26|^5.0" +BuildRequires: php-composer(phpunit/phpunit) >= 4.8.26 +%endif +# For autoloader +BuildRequires: php-composer(symfony/class-loader) + +# From composer.json, "require": { +# "php": ">=5.4", +# "symfony/console": "~2.8|~3.0", +# "symfony/config": "~2.8|~3.0", +# "symfony/yaml": "~2.8|~3.0" +Requires: php(language) >= 5.4 +Requires: php-composer(symfony/console) >= 2.8 +Requires: php-composer(symfony/config) >= 2.8 +Requires: php-composer(symfony/yaml) >= 2.8 +# From phpcompatinfo report for 0.6.4 +Requires: php-pdo +Requires: php-date +Requires: php-json +Requires: php-pcre +Requires: php-spl +# For autoloader +Requires: php-composer(symfony/class-loader) + +# Composer +Provides: php-composer(%{gh_owner}/%{gh_project}) = %{version} + + +%description +Phinx makes it ridiculously easy to manage the database migrations +for your PHP app. In less than 5 minutes you can install Phinx and +create your first database migration. + +Phinx is just about migrations without all the bloat of a database +ORM system or framework. + +Documentation: http://docs.phinx.org + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +cp %{SOURCE1} src/%{psr0}/autoload.php + +sed -e 's:../data/Phinx:data:' -i src/Phinx/Console/Command/Init.php + +: Create the launcher +cat << 'EOF' | tee phinx +#!/usr/bin/env php +<?php +require '/usr/share/php/%{psr0}/autoload.php'; +$app = new Phinx\Console\PhinxApplication(); +$app->run(); +EOF + + +%build +: Nothing to build + + +%install +rm -rf %{buildroot} + +: Library +mkdir -p %{buildroot}%{_datadir}/php +cp -pr src/%{psr0} %{buildroot}%{_datadir}/php/%{psr0} + +: Default config file +install -Dpm 644 phinx.yml %{buildroot}%{_datadir}/php/%{psr0}/data/phinx.yml + +: The command +install -Dpm 755 phinx %{buildroot}%{_bindir}/phinx + + +%check +%if %{with_tests} +mkdir vendor +cat << 'EOF' | tee vendor/autoload.php +<?php +require '%{buildroot}%{_datadir}/php/%{psr0}/autoload.php'; + +require_once '/usr/share/php/Symfony/Component/ClassLoader/Psr4ClassLoader.php'; +$psr4 = new \Symfony\Component\ClassLoader\Psr4ClassLoader(); +$psr4->register(true); +$psr4->addPrefix('Test\\Phinx\\', dirname(__DIR__).'/tests/Phinx'); +EOF + +sed -e '/_ENABLED/s/true/false/;/SQLITE_ENABLED/s/false/true/' \ + phpunit.xml.dist >phpunit.xml + +# remirepo:11 +run=0 +ret=0 +if which php56; then + php56 %{_bindir}/phpunit --no-coverage tests || ret=1 + run=1 +fi +if which php71; then + php71 %{_bindir}/phpunit --no-coverage tests || ret=1 + run=1 +fi +if [ $run -eq 0 ]; then +%{_bindir}/phpunit --verbose tests +# remirepo:2 +fi +exit $ret +%else +: Test suite disabled +%endif + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc composer.json +%doc *.md +%doc app/web.php +%{_datadir}/php/%{psr0} +%{_bindir}/phinx + + +%changelog +* Tue Sep 27 2016 Remi Collet <remi@fedoraproject.org> - 0.6.4-1 +- initial package + |