File perl-Eval-Closure.spec of Package perl-Eval-Closure
#SuSe specific Part
%if %{?sles_version:1}0
%define module_dir /usr/lib/perl5/
%define man3_dir /usr/share/man/man3/
%if 0%{?suse_version} >= 1315
%define auto_dir /usr/lib/perl5/vendor_perl%{sub_dir}/auto
%define sub_dir /5.18.2/x86_64-linux-thread-multi/
%else
BuildRequires: perl-File-Spec >= 3.4
%define auto_dir /usr/lib/perl5/vendor_perl%{sub_dir}/auto
#suse prefers to install additional modules in a subdir (below module_dir)
%define sub_dir /5.10.0/x86_64-linux-thread-multi/
%endif
%endif
%if %{?centos_version:1}0
%define init 1
%if 0%{?centos_version} == 700
BuildRequires: perl-ExtUtils-MakeMaker
%else
BuildRequires: perl-ExtUtils-MakeMaker perl-version-new
requires: perl-version-new
%endif
%define module_dir /usr/share/perl5
%define sub_dir /
%define man3_dir /usr/share/man/man3
%define auto_dir /usr/lib64/perl5/vendor_perl/auto/
%endif
#all Distros
%define module_name Eval-Closure
%define module_version 0.14
Name: perl-%{module_name}
Version: %{module_version}
Release: 0
License: perl-5
Summary: Eval::Closure - safely and cleanly create closures via string eval
Url: https://metacpan.org/pod/Eval::Closure
Group: perl/modules
Source: %{module_name}-%{module_version}.tar.gz
BuildRequires: perl
Requires: perl
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
String eval is often used for dynamic code generation. For instance, Moose uses it heavily, to generate inlined versions of accessors and constructors, which speeds code up at runtime by a significant amount. String eval is not without its issues however - it's difficult to control the scope it's used in (which determines which variables are in scope inside the eval), and it's easy to miss compilation errors, since eval catches them and sticks them in $@ instead.
%prep
cd %{_builddir}
tar -xf %{_sourcedir}/%{module_name}-%{module_version}.tar.gz
%build
cd %{_builddir}/%{module_name}-%{module_version}
perl Makefile.PL installdirs=vendor destdir=%{buildroot}
make
%install
cd %{_builddir}/%{module_name}-%{module_version}
make DESTDIR=%{buildroot} install
#In case the .packlist file contains the buildroot directory
#perl -i -pe "s{%{buildroot}}{}g" %{buildroot}/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/auto/Moose/.packlist
find %{buildroot} -type f -name "perllocal.pod" -exec rm -f {} \;
find %{buildroot} -type f -name ".packlist" -exec rm -f {} \;
rm -Rf %{buildroot}/usr/share/man
find %{buildroot} -type f | sed "s#%{buildroot}##g" > %{buildroot}/../%{name}-filelist
cat %{buildroot}/../%{name}-filelist
%files -f %{buildroot}/../%{name}-filelist
%defattr(-,root,root)
%if %{?sles_version:1}0
%if 0%{?suse_version} >= 1315
/usr/lib/perl5/vendor_perl/5.18.2/Eval
%else
/usr/lib/perl5/vendor_perl/5.10.0/Eval
%endif
%endif