File perl-App-Trace.spec of Package perl-App-Trace
#
# spec file for package perl-App-Trace
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
Name: perl-App-Trace
Version: 0.50
Release: 0
%define cpan_name App-Trace
Summary: Embedded debug statements, including call/return tracing
License: CHECK(GPL-1.0+ or Artistic-1.0)
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/App-Trace/
Source0: http://www.cpan.org/authors/id/S/SP/SPADKINS/%{cpan_name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(App::Options) >= 0.01
Requires: perl(App::Options) >= 0.01
%{perl_requires}
%description
App::Trace provides debug/tracing support for perl programs and modules.
The basic concept is that you put a special call at the beginning and end
of each subroutine/method, and when tracing is enabled, you can see the
flow of your program.
This module reflects my dislike of the perl debugger. I also dislike
putting in print statements to debug, then commenting them out when I'm
done. I would rather put debug statements in my code and leave them there.
That way, when programs work their way into production, they can still be
debugged by using appropriate command line options.
Perl modules which are written to be used with App::Trace can be debugged
easily without entering the perl debugger. The output of tracing is a
"program trace" which shows the entry and exit of every subroutine/method
(and the arguments). This trace is printed in a format which allows you to
follow the flow of the program.
Someday I might figure out how to do this at a language level so it will
work on any module, not just ones which have been specially instrumented
with &App::sub_entry() and &App::sub_exit() calls. In fact, I started work
on this with the Aspect.pm module, but that was specific to perl version
5.6.x and didn't work with 5.8.x. That's when I decided I would write
App::Trace which would work on any Perl (even back to 5.5.3, which I
consider to be the first Perl 5 to support for deep backward
compatibility).
The App-Trace distribution began life as a collection of routines pulled
out of the App-Context distribution. I created App-Trace because these
routines were very useful independent of the rest of the framework provided
by App-Context.
App::Trace is dependent on App::Options. It is possible to use App::Trace
without App::Options, but they share a common convention with regard to
certain global variables in the "App" package/namespace.
It is expected that when App::Trace is mature, the routines included will
be removed from App.pm module in the App-Context distribution. The
App-Context distribution will then be dependent on App::Trace for these
features.
%prep
%setup -q -n %{cpan_name}-%{version}
find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} %{?_smp_mflags}
%check
%{__make} test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%doc CHANGES README TODO
%changelog