-#
-# TODO:
-# error: Failed dependencies:
-# pear(Zend/Tool/Framework/Manifest/Metadata.php) is needed by ZendFramework-Zend_Tool-1.8.0-0.1.noarch
-#
%include /usr/lib/rpm/macros.php
Summary: Zend Framework
Summary(pl.UTF-8): Szkielet Zend
Name: ZendFramework
-Version: 1.8.1
-Release: 0.1
+Version: 1.8.4
+Release: 1
License: New BSD License
Group: Development/Languages/PHP
Source0: http://framework.zend.com/releases/%{name}-%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: e9d3aa55cc608134661ffd5397955316
+# Source0-md5: d86770f2e0c1f9c836eb643744e4f0ae
Source1: http://framework.zend.com/releases/%{name}-%{version}/%{name}-%{version}-manual-en.tar.gz
-# Source1-md5: 14fce868333a22f8ce9a7954e4c5fe31
+# Source1-md5: 341fbd9ded24b38ecf061675919691e1
Source2: %{name}-find-lang.sh
Patch0: %{name}-additional-locales.patch
-Patch1: %{name}-db_charset.patch
-Patch2: %{name}-deps.patch
+Patch1: %{name}-deps.patch
+Patch2: %{name}-bug6499.patch
URL: http://framework.zend.com/
+BuildRequires: php-pecl-runkit
BuildRequires: rpm-php-pearprov >= 4.4.2-11
BuildRequires: sed >= 4.0
Requires: php-common >= 4:5.1.4
Requires: %{name} = %{version}-%{release}
%description Zend_CodeGenerator
-Zend_CodeGenerator provides facilities to generate arbitrary code using
-an object oriented interface, both to create new code as well as to
-update existing code. While the current implementation is limited to
-generating PHP code, you can easily extend the base class in order to
-provide code generation for other tasks: JavaScript, configuration
+Zend_CodeGenerator provides facilities to generate arbitrary code
+using an object oriented interface, both to create new code as well as
+to update existing code. While the current implementation is limited
+to generating PHP code, you can easily extend the base class in order
+to provide code generation for other tasks: JavaScript, configuration
files, apache vhosts, etc.
%package Zend_Config
%description Zend_Reflection
Zend_Reflection is a drop-in extension to PHP's own Reflection API,
-providing several additional features:
- - Ability to retrieve return values types.
- - Ability to retrieve method and function parameter types.
- - Ability to retrieve class property types.
- - DocBlocks gain a Reflection class, allowing introspection of docblocks.
- This provides the ability to determine what annotation tags have been
- defined as well as to retrieve their values, and the ability to retrieve
- the short and long descriptions.
- - Files gain a Reflection class, allowing introspection of PHP files. This
- provides the ability to determine what functions and classes are defined
- in a given file, as well as to instrospect them.
- - Ability to override any Reflection class with your own variant, for the
- entire reflection tree you create.
-
-In general, Zend_Reflection works just like the standard Reflection API,
-but provides a few additional methods for retrieving artifacts not
-defined in the Reflection API.
+providing several additional features:
+ - Ability to retrieve return values types.
+ - Ability to retrieve method and function parameter types.
+ - Ability to retrieve class property types.
+ - DocBlocks gain a Reflection class, allowing introspection of
+ docblocks. This provides the ability to determine what annotation tags
+ have been defined as well as to retrieve their values, and the ability
+ to retrieve the short and long descriptions.
+ - Files gain a Reflection class, allowing introspection of PHP files.
+ This provides the ability to determine what functions and classes are
+ defined in a given file, as well as to instrospect them.
+ - Ability to override any Reflection class with your own variant, for
+ the entire reflection tree you create.
+
+In general, Zend_Reflection works just like the standard Reflection
+API, but provides a few additional methods for retrieving artifacts
+not defined in the Reflection API.
%package Zend_Registry
Summary: Zend_Registry
%description Zend_Tag
Zend_Tag is a component suite which provides a facility to work with
-taggable Items. As its base, it provides two classes to work with Tags,
-Zend_Tag_Item and Zend_Tag_ItemList. Additionally, it comes with the
-interface Zend_Tag_Taggable, which allows you to use any of your models
-as a taggable item in conjunction with Zend_Tag.
+taggable Items. As its base, it provides two classes to work with
+Tags, Zend_Tag_Item and Zend_Tag_ItemList. Additionally, it comes with
+the interface Zend_Tag_Taggable, which allows you to use any of your
+models as a taggable item in conjunction with Zend_Tag.
%package Zend_Text
Summary: Zend_Text
mv %{name}-%{version}/documentation .
find '(' -name '*.php' -o -name '*.xml' ')' -print0 | xargs -0 %{__sed} -i -e 's,\r$,,'
%patch0 -p1
-cd library
-%patch1 -p0
-cd -
-%patch2 -p1
+%patch1 -p1
+%patch2 -p0
install %{SOURCE2} find-lang.sh
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
+%build
+# check *.php files syntax using runkit extension
+lint_php() {
+ php -r '
+ $errors = 0;
+ array_shift($argv);
+ echo "Checking syntax of ", count($argv), " PHP files";
+ foreach ($argv as $file) {
+ echo ".";
+ if (!runkit_lint_file($file)) {
+ echo "PHP Lint: $file\n";
+ $errors++;
+ }
+ }
+ echo "\nDONE!\n";
+ exit($errors ? 1 : 0);
+ ' $(find library -name '*.php')
+}
+lint_php
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_examplesdir}/%{name}-%{version},%{php_pear_dir}/bin}