@ -1,67 +1,115 @@
Name: perl-Test-LeakTrace
# Pick up the right dictionary for the spell check
Summary: Traces memory leaks
%if %(perl -e 'print $] >= 5.010000 ? 1 : 0;')
Version: 0.13
%global speller hunspell
Release: 4%{?dist}
%else
License: GPL+ or Artistic
%global speller aspell
Group: Development/Libraries
%endif
Source0: http://search.cpan.org/CPAN/authors/id/G/GF/GFUJI/Test-LeakTrace-%{version}.tar.gz
URL: http://search.cpan.org/dist/Test-LeakTrace
#TODO: BR: perl(Test::Valgrind) when available
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Name: perl-Test-LeakTrace
Summary: Trace memory leaks
BuildRequires: perl(Exporter) >= 5.57
Version: 0.14
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.42
Release: 1%{?dist}
BuildRequires: perl(Test::More) >= 0.62
License: GPL+ or Artistic
Group: Development/Libraries
Requires: perl(Exporter) >= 5.57
URL: http://search.cpan.org/dist/Test-LeakTrace/
Source0: http://search.cpan.org/CPAN/authors/id/G/GF/GFUJI/Test-LeakTrace-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
BuildRequires: perl(Exporter) >= 5.57
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.30
BuildRequires: perl(Test::More) >= 0.62
BuildRequires: perl(Test::Pod) >= 1.14
BuildRequires: perl(Test::Pod::Coverage) >= 1.04
BuildRequires: perl(Test::Spelling), %{speller}-en
BuildRequires: perl(Test::Synopsis)
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
# Obsolete/Provide old tests subpackage
# Can be removed during F19 development cycle
%if 0%{?perl_default_filter:1}
Obsoletes: %{name}-tests < 0.14
Provides: %{name}-tests = %{version}-%{release}
%endif
# Don't provide private perl libs
%{?perl_default_filter}
%{?perl_default_filter}
%{?perl_default_subpackage_tests}
%description
%description
'Test::LeakTrace' provides several functions that trace memory leaks.
Test::LeakTrace provides several functions that trace memory leaks. This module
This module scans arenas, the memory allocation system, so it can detect
scans arenas, the memory allocation system, so it can detect any leaked SVs in
any leaked SVs in given blocks. *Leaked SVs* are SVs which are not
given blocks.
released after the end of the scope they have been created. These SVs
include global variables and internal caches. For example, if you call a
Leaked SVs are SVs that are not released after the end of the scope they have
method in a tracing block, perl might prepare a cache for the method.
been created. These SVs include global variables and internal caches. For
Thus, to trace true leaks, 'no_leaks_ok()' and 'leaks_cmp_ok()' executes
example, if you call a method in a tracing block, perl might prepare a cache
a block more than once.
for the method. Thus, to trace true leaks, no_leaks_ok() and leaks_cmp_ok()
executes a block more than once.
%prep
%prep
%setup -q -n Test-LeakTrace-%{version}
%setup -q -n Test-LeakTrace-%{version}
find . -type f -exec chmod -c -x {} +
# Remove redundant exec bits
chmod -c -x lib/Test/LeakTrace/Script.pm t/lib/foo.pl
# Fix up shellbangs in doc scripts
sed -i -e 's|^#!perl|#!/usr/bin/perl|' benchmark/*.pl example/*.{pl,t} {t,xt}/*.t
%build
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
make %{?_smp_mflags}
make %{?_smp_mflags}
%install
%install
rm -rf %{buildroot}
rm -rf %{buildroot}
make pure_install DESTDIR=%{buildroot}
make pure_install DESTDIR=%{buildroot}
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
find %{buildroot} -type f -name '*.bs' -a -size 0 -exec rm -f {} ';'
find %{buildroot} -type f -name '*.bs' -a -size 0 -exec rm -f {} ';'
find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null ';'
%{_fixperms} %{buildroot}
%{_fixperms} %{buildroot}/*
%check
%check
make test
make test
# Run the release tests, except for xt/05_valgrind.t because we don't have Test::Valgrind yet
# Don't spell-check JA.pod as it can generate false positives
mv lib/Test/LeakTrace/JA.pod ./
touch lib/Test/LeakTrace/JA.pod
DICTIONARY=en_US make test TEST_FILES="$(echo xt/*.t | sed 's|xt/05_valgrind.t||')"
rm lib/Test/LeakTrace/JA.pod
mv ./JA.pod lib/Test/LeakTrace/
%clean
%clean
rm -rf %{buildroot}
rm -rf %{buildroot}
%files
%files
%defattr(-,root,root,-)
%doc Changes README benchmark/ example/ %{?perl_default_filter:t/ xt/}
%doc Changes README
%{perl_vendorarch}/auto/Test/
%{perl_vendorarch}/*
%{perl_vendorarch}/Test/
%exclude %dir %{perl_vendorarch}/auto
%{_mandir}/man3/Test::LeakTrace.3pm*
%{_mandir}/man3/*.3*
%{_mandir}/man3/Test::LeakTrace::JA.3pm*
%{_mandir}/man3/Test::LeakTrace::Script.3pm*
%changelog
%changelog
* Mon Mar 12 2012 Paul Howarth <paul@city-fan.org> - 0.14-1
- Update to 0.14
- Fix Test::Valgrind failures
- Drop tests subpackage; move tests to main package documentation as long as
we have %%{perl_default_filter} to avoid the resulting doc-file dependencies
- Run the release tests too, except for xt/05_valgrind.t since we don't have
Test::Valgrind yet
- BR: perl(Test::Pod), perl(Test::Pod::Coverage), perl(Test::Spelling),
aspell-en/hunspell-en and perl(Test::Synopsis) for the release tests
- Drop version requirement of perl(ExtUtils::MakeMaker) to 6.30, which works
fine in EPEL-5
- Tidy %%description
- Make %%files list more explicit
- Package benchmark/ and example/ as documentation
- Drop explicit versioned requires of perl(Exporter) ≥ 5.57, satisfied by all
supported distributions
- Don't need to remove empty directories from buildroot
- Don't use macros for commands
- Drop %%defattr, redundant since rpm 4.4
- Use tabs
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.13-4
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.13-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
@ -72,18 +120,18 @@ rm -rf %{buildroot}
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Nov 17 2010 Paul Howarth <paul@city-fan.org> - 0.13-1
* Wed Nov 17 2010 Paul Howarth <paul@city-fan.org> - 0.13-1
- u pdate to 0.13
- U pdate to 0.13
- u se ">= 0", instead of "== 0" for no_leaks_ok()
- U se ">= 0", instead of "== 0" for no_leaks_ok()
- a dd count_sv() to count all the SVs in a perl interpreter
- A dd count_sv() to count all the SVs in a perl interpreter
- f ix tests broken for some perls in 0.12
- F ix tests broken for some perls in 0.12
* Wed Nov 17 2010 Paul Howarth <paul@city-fan.org> - 0.11-1
* Wed Nov 17 2010 Paul Howarth <paul@city-fan.org> - 0.11-1
- u pdate to 0.11 (#654301)
- U pdate to 0.11 (#654301)
- f ix false-positive related to XS code (CPAN RT #58133)
- F ix false-positive related to XS code (CPAN RT #58133)
* Thu May 06 2010 Marcela Maslanova <mmaslano@redhat.com> - 0.10-2
* Thu May 06 2010 Marcela Maslanova <mmaslano@redhat.com> - 0.10-2
- Mass rebuild with perl-5.12.0
- Mass rebuild with perl-5.12.0
* Sun Apr 04 2010 Chris Weyl <cweyl@alumni.drew.edu> 0.10-1
* Sun Apr 04 2010 Chris Weyl <cweyl@alumni.drew.edu> - 0.10-1
- s pecfile by Fedora::App::MaintainerTools 0.006
- S pecfile by Fedora::App::MaintainerTools 0.006