157 lines
6.6 KiB
RPMSpec
157 lines
6.6 KiB
RPMSpec
#
|
|
# spec file for package perl-HTML-Template-Compiled
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define cpan_name HTML-Template-Compiled
|
|
Name: perl-HTML-Template-Compiled
|
|
Version: 1.3.0
|
|
Release: 0
|
|
# 1.003 -> normalize -> 1.3.0
|
|
%define cpan_version 1.003
|
|
License: Artistic-1.0 OR GPL-1.0-or-later
|
|
Summary: Template System Compiles HTML::Template files to Perl code
|
|
URL: https://metacpan.org/release/%{cpan_name}
|
|
Source0: https://cpan.metacpan.org/authors/id/T/TI/TINITA/%{cpan_name}-%{cpan_version}.tar.gz
|
|
Source1: cpanspec.yml
|
|
Source100: README.md
|
|
BuildArch: noarch
|
|
BuildRequires: perl
|
|
BuildRequires: perl-macros
|
|
BuildRequires: perl(HTML::Entities)
|
|
BuildRequires: perl(Parse::RecDescent)
|
|
BuildRequires: perl(URI::Escape)
|
|
Requires: perl(HTML::Entities)
|
|
Requires: perl(Parse::RecDescent)
|
|
Requires: perl(URI::Escape)
|
|
Provides: perl(HTML::Template::Compiled) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Classic) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Compiler) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Compiler::Classic) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Exception) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expr) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Conditional) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Defined) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Elsif) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Expressions) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Function) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Literal) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Method) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::SubrefCall) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Expression::Ternary) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Filter) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Formatter) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Lazy) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Parser) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Plugin::XMLEscape) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Token) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Token::Text) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Token::close) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Token::open) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Token::single) = %{version}
|
|
Provides: perl(HTML::Template::Compiled::Utils) = %{version}
|
|
%undefine __perllib_provides
|
|
%{perl_requires}
|
|
|
|
%description
|
|
HTML::Template::Compiled is a template system which can be used for
|
|
HTML::Template templates with almost the same API. It offers more flexible
|
|
template delimiters, additional tags and features, and by compiling the
|
|
template into perl code it can run significantly faster in persistent
|
|
environments such as FastCGI or mod_perl.
|
|
|
|
The goal is to offer more features for flexibility but keep the basic
|
|
syntax as easy as it is.
|
|
|
|
Features at a glance:
|
|
|
|
* Dot notation for objects, hashes and arrays
|
|
|
|
* Use expressions without any disadvantages like those in
|
|
HTML::Template::Expr
|
|
|
|
* Write escaping plugins and plugins for new tags
|
|
|
|
* Alternate delimiters, e.g. '[%if %]' and '<%if %>'
|
|
|
|
* Avoid 'global_vars' option by using the 'SET_VAR' tag to create aliases.
|
|
|
|
* Tags ELSIF, EACH, WHILE, COMMENT, WRAPPER, SWITCH/CASE, INCLUDE_VAR
|
|
|
|
* Chomp newlines/whitespace
|
|
|
|
For a quick reference, see HTML::Template::Compiled::Reference.
|
|
|
|
As the basic features work like in HTML::Template, please get familiar with
|
|
its documentation before.
|
|
|
|
HTML::Template::Compiled (HTC) does not implement all features of
|
|
HTML::Template (see "COMPATIBILITY"), and it has got some additional
|
|
features which are explained below: "ADDITIONAL FEATURES"
|
|
|
|
See "BENCHMARKS" for some examples on the performance. Since it depends
|
|
highly on the options used and on the template size there can be no general
|
|
statement on its performance.
|
|
|
|
You might want to use HTML::Template::Compiled::Lazy for CGI environments
|
|
as it doesn't parse the template before calling output. But note that
|
|
HTC::Lazy isn't much tested, and I don't use it myself, so there's a lack
|
|
of experience. If you use it and have problems, please report.
|
|
|
|
HTC will use a lot of memory because it keeps all template objects in
|
|
memory. If you are on mod_perl, and have a lot of templates, you should
|
|
preload them at server startup to be sure that it is in shared memory. At
|
|
the moment HTC is not fully tested for keeping all data in shared memory
|
|
(e.g. when a copy-on-write occurs), but it seems like it's behaving well.
|
|
For preloading you can use HTML::Template::Compiled->preload($cache_dir).
|
|
|
|
Generating code, writing it on disk and later eval() it can open security
|
|
holes, for example if you have more users on the same machine that can
|
|
access the same files (usually an http server running as 'www' or
|
|
'nobody'). See "SECURITY" for details what you can do to safe yourself.
|
|
|
|
NOTE: If you don't need any of the additional features listed below and if
|
|
you don't need the speed (in many cases it's probably not worth trading
|
|
speed for memory), then you might be better off with just using
|
|
HTML::Template.
|
|
|
|
NOTE2: If you have any questions, bug reports, send them to me and not to
|
|
Sam Tregar. This module is developed by me at the moment, independently
|
|
from HTML::Template, although I try to get most of the tests from it
|
|
passing for HTC. See "RESOURCES" for current information.
|
|
|
|
%prep
|
|
%autosetup -n %{cpan_name}-%{cpan_version}
|
|
|
|
%build
|
|
perl Makefile.PL INSTALLDIRS=vendor
|
|
%make_build
|
|
|
|
%check
|
|
make test
|
|
|
|
%install
|
|
%perl_make_install
|
|
%perl_process_packlist
|
|
%perl_gen_filelist
|
|
|
|
%files -f %{name}.files
|
|
%doc Changes examples README
|
|
%license LICENSE
|
|
|
|
%changelog
|