-# $Id: Smarty.spec,v 1.2 2003-03-17 21:13:33 adamg Exp $
-%define _doc_version 2.4.0
+%define main_version 2.6.31
+%define doc_version 2.6.14
+%define php_min_version 5.0.0
+%include /usr/lib/rpm/macros.php
Summary: Template engine for PHP
-Summary(pl): System template'owy dla PHP
+Summary(pl.UTF-8): System szablonów dla PHP
Name: Smarty
-Version: 2.4.2
+Version: %{main_version}
Release: 1
-License: LGPL
+License: LGPL v2.1+
Group: Development/Languages/PHP
-Source0: http://smarty.php.net/distributions/%{name}-%{version}.tar.gz
-Source1: http://smarty.php.net/distributions/manual/en/%{name}-%{_doc_version}-docs.tar.gz
-Requires: php
-Requires: php-pear
+Source0: https://github.com/smarty-php/smarty/archive/v%{version}/smarty-%{version}.tar.gz
+# Source0-md5: 49f8c7f60d2c551589f937082a7faaa5
+# Source1Download: http://www.smarty.net/download-docs.php
+Source1: http://www.smarty.net/distributions/manual/en/%{name}-%{doc_version}-docs.tar.gz
+# Source1-md5: 5123152dd248898a84b96b806f551e78
+Source2: %{name}-function.html_input_image.php
+Patch0: path.patch
+Patch1: modifier.mb_truncate.patch
+URL: http://www.smarty.net/
+BuildRequires: rpm-php-pearprov >= 4.4.2-11
+Requires: php(core) >= %{php_min_version}
+Requires: php(date)
+Requires: php(pcre)
+Requires: php(tokenizer)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define appdir %{php_data_dir}/Smarty
+
%description
Smarty is a template engine for PHP. Smarty provides your basic
variable substitution and dynamic block functionality, and also takes
making all of this functionality as easy as possible to use for both
programmers and template designers.
-%description -l pl
-Smarty jest systemem template'owym dla PHP. Smarty pozwala na
-podstawowe podstawianie warto¶ci zmiennych i na zaawansowane operacje
-na tablicach.
+%description -l pl.UTF-8
+Smarty jest systemem szablonów dla PHP. Pozwala na podstawowe
+podstawianie wartości zmiennych oraz dynamiczne operacje na blokach;
+idzie o krok dalej, aby być "mądrym" silnikiem szablonów, dodając
+takie możliwości jak pliki konfiguracyjne, funkcje, zmienne
+modyfikatory oraz czyniąc całą funkcjonalność jak najłatwiejszą w
+użyciu jednocześnie dla programistów i projektantów szablonów.
-%package -n Smarty-doc
+%package doc
Summary: Template engine for PHP - documentation
-Summary(pl): System template'owy dla PHP - dokumentacja
-Version: %{_doc_version}
+Summary(pl.UTF-8): System szablonów dla PHP - dokumentacja
+Version: %{doc_version}
Group: Development/Languages/PHP
-%description -n Smarty-doc
+%description doc
Documentation for Smarty template engine.
-%description -n Smarty-doc -l pl
-Dokumentacja do systemu template'owego Smarty.
+%description doc -l pl.UTF-8
+Dokumentacja do systemu szablonów Smarty.
%prep
-%setup -q -a 0
-%setup -q -a 1
+%setup -qn smarty-%{main_version} -a1
+%patch0 -p1
+cp -a libs/plugins/modifier.{,mb_}truncate.php
+%patch1 -p1
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_datadir}/pear/%{name}
-install -d $RPM_BUILD_ROOT%{_datadir}/pear/%{name}/plugins
+install -d $RPM_BUILD_ROOT{%{appdir}/{internals,plugins},%{php_pear_dir}}
+
+cp -a libs/Smarty.class.php $RPM_BUILD_ROOT%{php_data_dir}
+cp -a libs/{Config_File,Smarty_Compiler}.class.php $RPM_BUILD_ROOT%{appdir}
+cp -a libs/debug.tpl $RPM_BUILD_ROOT%{appdir}
+cp -a libs/internals/*.php $RPM_BUILD_ROOT%{appdir}/internals
+cp -a libs/plugins/*.php $RPM_BUILD_ROOT%{appdir}/plugins
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{appdir}/plugins/function.html_input_image.php
+# backards compatible with pear dir
+ln -s %{appdir} $RPM_BUILD_ROOT%{php_pear_dir}/%{name}
-install {Config_File,Smarty{,_Compiler}}.class.php $RPM_BUILD_ROOT%{_datadir}/pear/%{name}
-install debug.tpl $RPM_BUILD_ROOT%{_datadir}/pear/%{name}
-install plugins/*.php $RPM_BUILD_ROOT%{_datadir}/pear/%{name}/plugins/
+# backards compatible with entry point in subdir
+ln -s ../Smarty.class.php $RPM_BUILD_ROOT%{appdir}
%clean
rm -rf $RPM_BUILD_ROOT
+# make compat symlink, the symlink is discarded using %ghost on package uninstall
+%triggerpostun -- Smarty < 2.6.10-4
+if [ -d %{php_pear_dir}/%{name}/plugins ]; then
+ mv %{php_pear_dir}/%{name}/plugins/* %{appdir}/plugins
+ rmdir %{php_pear_dir}/%{name}/plugins 2>/dev/null
+fi
+rmdir %{php_pear_dir}/%{name} 2>/dev/null || mv -v %{php_pear_dir}/%{name}{,.rpmsave}
+ln -s %{appdir} %{php_pear_dir}/%{name}
+
+%post
+[ -e %{php_pear_dir}/%{name} ] || ln -s %{appdir} %{php_pear_dir}/%{name}
+
%files
%defattr(644,root,root,755)
-%doc AUTHORS BUGS COPYING.lib CREDITS ChangeLog FAQ INSTALL NEWS QUICKSTART README RELEASE_NOTES RESOURCES TESTIMONIALS TODO
-%dir %{_datadir}/pear/%{name}
-%dir %{_datadir}/pear/%{name}/plugins
-%{_datadir}/pear/Smarty/*.class.php
-%{_datadir}/pear/%{name}/debug.tpl
-%{_datadir}/pear/%{name}/plugins/*.php
-
-%files -n Smarty-doc
+%doc BUGS ChangeLog FAQ INSTALL NEWS README RELEASE_NOTES TODO
+# entry point in include_path
+%{php_data_dir}/Smarty.class.php
+
+# app itself
+%dir %{appdir}
+%dir %{appdir}/internals
+%dir %{appdir}/plugins
+%{appdir}/Smarty.class.php
+%{appdir}/Config_File.class.php
+%{appdir}/Smarty_Compiler.class.php
+%{appdir}/debug.tpl
+%{appdir}/internals/*.php
+%{appdir}/plugins/*.php
+
+# for the sake of bc when installed to pear dir
+%ghost %{php_pear_dir}/%{name}
+
+%files doc
%defattr(644,root,root,755)
%doc manual/*