# remirepo/fedora spec file for php-latte
#
# Copyright (c) 2015-2018 Remi Collet
# License: CC-BY-SA
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#
%global gh_commit    f989b018ec12f9492132515cd47f83f98429c513
#global gh_date      20150728
%global gh_short     %(c=%{gh_commit}; echo ${c:0:7})
%global gh_owner     nette
%global gh_project   latte
%global ns_vendor    Latte
%global php_home     %{_datadir}/php
%global with_tests   0%{!?_without_tests:1}

Name:           php-%{gh_project}
Version:        2.4.7
%global specrel 1
Release:        %{?gh_date:1%{specrel}.%{?prever}%{!?prever:%{gh_date}git%{gh_short}}}%{!?gh_date:%{specrel}}%{?dist}
Summary:        Latte: the amazing template engine for PHP

Group:          Development/Libraries
License:        BSD or GPLv2 or GPLv3
URL:            https://github.com/%{gh_owner}/%{gh_project}
Source0:        %{name}-%{version}-%{gh_short}.tgz
# pull a git snapshot to get test sutie
Source1:        makesrc.sh

BuildArch:      noarch
BuildRequires:  php-composer(theseer/autoload)
%if %{with_tests}
BuildRequires:  php(language) >= 5.4.4
BuildRequires:  php-tokenizer
BuildRequires:  php-date
BuildRequires:  php-fileinfo
BuildRequires:  php-iconv
BuildRequires:  php-json
BuildRequires:  php-mbstring
BuildRequires:  php-pcre
BuildRequires:  php-reflection
BuildRequires:  php-spl
BuildRequires:  php-xml
# From composer.json, "require-dev": {
#		"nette/tester": "~1.7",
#		"tracy/tracy": "^2.3"
# ignore tester min version (pass with 1.7), ignore tracy (pass without)
BuildRequires:  php-composer(%{gh_owner}/tester) >= 1.7
%endif

# from composer.json, "require": {
#        "php": ">=5.4.4"
#        "ext-json": "*",
#        "ext-tokenizer": "*"
Requires:       php(language) >= 5.4.4
Requires:       php-json
Requires:       php-tokenizer
# from composer.json, "suggest": {
#               "ext-mbstring": "to use filters like lower, upper, capitalize, ...",
#               "ext-fileinfo": "to use filter |datastream",
#               "nette/utils": "to use filter |webalize"
Requires:       php-fileinfo
Requires:       php-mbstring
%if 0%{?fedora}
Suggests:       php-composer(%{gh_owner}/utils)
%endif
# from composer.json, "conflict": {
#               "nette/application": "<2.4"
Conflicts:      php-composer(%{gh_owner}/application) < 2.4.1
# from phpcompatinfo report for version 2.4.1
Requires:       php-date
Requires:       php-iconv
Requires:       php-pcre
Requires:       php-reflection
Requires:       php-spl
Requires:       php-xml

# provides latte/latte
Provides:       php-composer(%{gh_project}/%{gh_project}) = %{version}


%description
Latte is a template engine for PHP which eases your work and ensures the
output is protected against vulnerabilities, such as XSS.

Latte is fast: it compiles templates to plain optimized PHP code.

Latte is secure: it is the first PHP engine introducing content-aware escaping.

Latte speaks your language: it has intuitive syntax and helps you to build
better websites easily.

Autoloader: %{php_home}/%{ns_vendor}/autoload.php


%prep
%setup -q -n %{gh_project}-%{gh_commit}

# drop upstream autoloader which is outside tree
rm src/latte.php


%build
: Generate a classmap autoloader
phpab --output src/%{ns_vendor}/autoload.php src


%install
mkdir -p     %{buildroot}%{php_home}
cp -pr src/* %{buildroot}%{php_home}/


%check
%if %{with_tests}
export LANG=fr_FR.utf8

: Generate autoloader
mkdir vendor
cat << 'EOF' | tee vendor/autoload.php
<?php
require_once '%{php_home}/Tester/autoload.php';
require_once '%{buildroot}%{php_home}/%{ns_vendor}/autoload.php';
EOF

: Run test suite in sources tree
ret=0
for cmd in php php56 php70 php71 php72; do
  if which $cmd; then
    $cmd %{_bindir}/nette-tester --colors 0 -p $cmd -C -s || ret=1
  fi
done
exit $ret
%else
: Test suite disabled
%endif


%files
%{!?_licensedir:%global license %%doc}
%license license.md
%doc readme.md contributing.md
%doc composer.json
%{php_home}/%{ns_vendor}


%changelog
* Wed Feb  7 2018 Remi Collet <remi@remirepo.net> - 2.4.7-1
- Update to 2.4.7

* Wed Aug 30 2017 Remi Collet <remi@remirepo.net> - 2.4.6-1
- Update to 2.4.6
- add optional dependency on nette/utils

* Sat Aug  5 2017 Remi Collet <remi@remirepo.net> - 2.4.5-1
- Update to 2.4.5

* Mon May 22 2017 Remi Collet <remi@remirepo.net> - 2.4.4-1
- Update to 2.4.4

* Thu Jan 19 2017 Remi Collet <remi@fedoraproject.org> - 2.4.3-1
- update to 2.4.3

* Wed Sep 28 2016 Remi Collet <remi@fedoraproject.org> - 2.4.2-1
- update to 2.4.2

* Thu Aug  4 2016 Remi Collet <remi@fedoraproject.org> - 2.4.1-1
- update to 2.4.1

* Fri Jul  1 2016 Remi Collet <remi@fedoraproject.org> - 2.4.0-1
- update to 2.4.0
- raise dependency on php >= 5.4.4

* Mon May 30 2016 Remi Collet <remi@fedoraproject.org> - 2.3.12-1
- update to 2.3.12

* Tue Apr 12 2016 Remi Collet <remi@fedoraproject.org> - 2.3.11-1
- update to 2.3.11

* Sat Feb 20 2016 Remi Collet <remi@fedoraproject.org> - 2.3.10-1
- update to 2.3.10

* Wed Jan 20 2016 Remi Collet <remi@fedoraproject.org> - 2.3.9-1
- update to 2.3.9

* Thu Dec  3 2015 Remi Collet <remi@fedoraproject.org> - 2.3.8-1
- update to 2.3.8
- run test suite with both php 5 and 7 when available

* Sun Nov  8 2015 Remi Collet <remi@fedoraproject.org> - 2.3.7-1
- update to 2.3.7

* Tue Oct 20 2015 Remi Collet <remi@fedoraproject.org> - 2.3.6-1
- initial package