summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--php-silex.spec244
1 files changed, 244 insertions, 0 deletions
diff --git a/php-silex.spec b/php-silex.spec
new file mode 100644
index 0000000..18de2cd
--- /dev/null
+++ b/php-silex.spec
@@ -0,0 +1,244 @@
+#
+# RPM spec file for php-silex
+#
+# Copyright (c) 2015 Shawn Iwinski <shawn.iwinski@gmail.com>
+#
+# License: MIT
+# http://opensource.org/licenses/MIT
+#
+# Please preserve changelog entries
+#
+
+%global github_owner silexphp
+%global github_name Silex
+%global github_version 1.2.4
+%global github_commit 417deb440eecf776df868d8760d0b7d8e2c4e6d1
+
+%global composer_vendor silex
+%global composer_project silex
+
+# "php": ">=5.3.3"
+%global php_min_ver 5.3.3
+# "doctrine/dbal": "~2.2"
+%global doctrine_dbal_min_ver 2.2.0
+%global doctrine_dbal_max_ver 3.0.0
+# "monolog/monolog": "~1.4,>=1.4.1"
+%global monolog_min_ver 1.4.1
+%global monolog_max_ver 2.0.0
+# "pimple/pimple": "~1.0"
+%global pimple_min_ver 1.0.0
+%global pimple_max_ver 2.0.0
+# "swiftmailer/swiftmailer": "5.*"
+%global swiftmailer_min_ver 5.0.0
+%global swiftmailer_max_ver 6.0.0
+# "symfony/*": "~2.3,<2.7"
+%global symfony_min_ver 2.3.0
+%global symfony_max_ver 2.7.0
+# "twig/twig": ">=1.8.0,<2.0-dev"
+%global twig_min_ver 1.8.0
+%global twig_max_ver 2.0.0
+
+# Build using "--without tests" to disable tests
+%global with_tests %{?_without_tests:0}%{!?_without_tests:1}
+
+%{!?phpdir: %global phpdir %{_datadir}/php}
+%{!?peardir: %global peardir %{_datadir}/pear}
+
+Name: php-%{composer_project}
+Version: %{github_version}
+Release: 3%{dist}
+Summary: PHP micro-framework based on the Symfony components
+
+Group: Development/Libraries
+License: MIT
+URL: http://silex.sensiolabs.org
+Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz
+
+BuildArch: noarch
+# For autoload generation
+BuildRequires: %{_bindir}/phpab
+%if %{with_tests}
+# For tests
+## composer.json
+BuildRequires: %{_bindir}/phpunit
+BuildRequires: php(language) >= %{php_min_ver}
+BuildRequires: php-composer(doctrine/dbal) >= %{doctrine_dbal_min_ver}
+BuildRequires: php-composer(doctrine/dbal) < %{doctrine_dbal_max_ver}
+BuildRequires: php-composer(monolog/monolog) >= %{monolog_min_ver}
+BuildRequires: php-composer(monolog/monolog) < %{monolog_max_ver}
+BuildRequires: php-composer(pimple/pimple) >= %{pimple_min_ver}
+BuildRequires: php-composer(pimple/pimple) < %{pimple_max_ver}
+BuildRequires: php-composer(symfony/browser-kit) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/browser-kit) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/config) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/config) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/css-selector) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/css-selector) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/debug) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/debug) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/dom-crawler) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/dom-crawler) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/event-dispatcher) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/event-dispatcher) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/finder) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/finder) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/form) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/form) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/http-foundation) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/http-foundation) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/http-kernel) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/http-kernel) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/locale) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/locale) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/monolog-bridge) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/monolog-bridge) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/options-resolver) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/options-resolver) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/process) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/process) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/routing) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/routing) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/security) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/security) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/serializer) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/serializer) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/translation) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/translation) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/twig-bridge) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/twig-bridge) < %{symfony_max_ver}
+BuildRequires: php-composer(symfony/validator) >= %{symfony_min_ver}
+BuildRequires: php-composer(symfony/validator) < %{symfony_max_ver}
+BuildRequires: php-composer(twig/twig) >= %{twig_min_ver}
+BuildRequires: php-composer(twig/twig) < %{twig_max_ver}
+BuildRequires: php-swift-Swift >= %{swiftmailer_min_ver}
+BuildRequires: php-swift-Swift < %{swiftmailer_max_ver}
+## phpcompatinfo (computed from version 1.2.4)
+BuildRequires: php-date
+BuildRequires: php-intl
+BuildRequires: php-json
+BuildRequires: php-pcre
+BuildRequires: php-reflection
+BuildRequires: php-session
+BuildRequires: php-spl
+BuildRequires: php-tokenizer
+%endif
+
+# composer.json
+Requires: php(language) >= %{php_min_ver}
+Requires: php-composer(pimple/pimple) >= %{pimple_min_ver}
+Requires: php-composer(pimple/pimple) < %{pimple_max_ver}
+Requires: php-composer(symfony/event-dispatcher) >= %{symfony_min_ver}
+Requires: php-composer(symfony/event-dispatcher) < %{symfony_max_ver}
+Requires: php-composer(symfony/http-foundation) >= %{symfony_min_ver}
+Requires: php-composer(symfony/http-foundation) < %{symfony_max_ver}
+Requires: php-composer(symfony/http-kernel) >= %{symfony_min_ver}
+Requires: php-composer(symfony/http-kernel) < %{symfony_max_ver}
+Requires: php-composer(symfony/routing) >= %{symfony_min_ver}
+Requires: php-composer(symfony/routing) < %{symfony_max_ver}
+# composer.json: Optional
+Requires: php-composer(symfony/browser-kit) >= %{symfony_min_ver}
+Requires: php-composer(symfony/browser-kit) < %{symfony_max_ver}
+Requires: php-composer(symfony/css-selector) >= %{symfony_min_ver}
+Requires: php-composer(symfony/css-selector) < %{symfony_max_ver}
+Requires: php-composer(symfony/dom-crawler) >= %{symfony_min_ver}
+Requires: php-composer(symfony/dom-crawler) < %{symfony_max_ver}
+Requires: php-composer(symfony/form) >= %{symfony_min_ver}
+Requires: php-composer(symfony/form) < %{symfony_max_ver}
+# phpcompatinfo (computed from version 1.2.4)
+Requires: php-date
+Requires: php-intl
+Requires: php-pcre
+Requires: php-reflection
+Requires: php-session
+Requires: php-spl
+Requires: php-tokenizer
+
+# Composer
+Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
+
+%description
+Silex is a PHP micro-framework. It is built on the shoulders of Symfony and
+Pimple and also inspired by Sinatra.
+
+A micro-framework provides the guts for building simple single-file apps. Silex
+aims to be:
+* Concise: Silex exposes an intuitive and concise API that is fun to use
+* Extensible: Silex has an extension system based around the Pimple micro
+ service-container that makes it even easier to tie in third party libraries
+* Testable: Silex uses Symfony's HttpKernel which abstracts requests and
+ responses. This makes it very easy to test apps and the framework itself.
+ It also respects the HTTP specification and encourages its' proper use.
+
+
+%prep
+%setup -qn %{github_name}-%{github_commit}
+
+
+%build
+: Generate autoloader
+%{_bindir}/phpab --nolower --output src/Silex/autoload.php src/Silex
+
+cat >> src/Silex/autoload.php <<'AUTOLOAD'
+
+require '%{phpdir}/Pimple1/autoload.php';
+
+// TODO: Add other pkg autoloaders when they are available
+
+// Add non-standard Swift path to include path
+set_include_path(
+ get_include_path()
+ . PATH_SEPARATOR . '%{peardir}/Swift'
+);
+
+spl_autoload_register(function ($class) {
+ $src = str_replace(array('\\', '_'), '/', $class) . '.php';
+ @include_once $src;
+});
+AUTOLOAD
+
+
+%install
+mkdir -p %{buildroot}%{phpdir}
+cp -rp src/* %{buildroot}%{phpdir}
+
+
+%check
+%if %{with_tests}
+: Recreate test bootstrap
+rm -f tests/bootstrap.php
+%{_bindir}/phpab --nolower --output tests/bootstrap.php tests
+cat >> tests/bootstrap.php <<'BOOTSTRAP'
+
+require '%{buildroot}%{phpdir}/Silex/autoload.php';
+BOOTSTRAP
+
+: Temporarily skip tests known to fail
+rm -f \
+ tests/Silex/Tests/Provider/SwiftmailerServiceProviderTest.php \
+ tests/Silex/Tests/Application/SwiftmailerTraitTest.php
+
+: Run tests
+%{_bindir}/phpunit
+%else
+: Tests skipped
+%endif
+
+
+%files
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc README.rst
+%doc composer.json
+%doc doc
+%{phpdir}/Silex
+
+
+%changelog
+* Wed May 20 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.2.4-3
+- "%%{phpdir}/Pimple" => "%%{phpdir}/Pimple1"
+
+* Sun May 17 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.2.4-2
+- Fix php-composer(pimple/pimple) dependency
+
+* Sat May 16 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.2.4-1
+- Initial package