# # spec file for package perl-Log-Any-IfLOG # # 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 Log-Any-IfLOG Name: perl-Log-Any-IfLOG Version: 0.90.0 Release: 0 # 0.090 -> normalize -> 0.90.0 %define cpan_version 0.090 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Load Log::Any only if "logging is enabled" URL: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/P/PE/PERLANCAR/%{cpan_name}-%{cpan_version}.tar.gz Source1: cpanspec.yml Source100: README.md BuildArch: noarch BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(Log::Any) Requires: perl(Log::Any) Provides: perl(Log::Any::IfLOG) = %{version} %undefine __perllib_provides %{perl_requires} %description This module is a drop-in replacement/wrapper for Log::Any to be used from your modules. This is a quick-hack solution to avoid the cost of loading Log::Any under "normal condition". Since Log::Any 1.00, startup overhead increases to about 7-10ms on my PC/laptop (from under 1ms for the previous version). Because I want to keep startup overhead of CLI apps under 50ms (see Perinci::CmdLine::Lite) to keep tab completion from getting a noticeable lag, every millisecond counts. This module will only load Log::Any when "logging is enabled". Otherwise, it will just return without loading anything. If '$log' is requested in import, a fake object is returned that responds to methods like 'debug', 'is_debug' and so on but will do nothing when called and just return 0. To determine "logging is enabled": * * Is $ENABLE_LOG defined? This package variable can be used to force "logging enabled" (if true) or "logging disabled" (if false). Normally, you don't need to do this except for testing. * * Is Log::Any is already loaded (from %INC)? If Log::Any is already loaded, it means we have taken the overhead hit anyway so logging is enabled. * * Is one of log-related environment variables true? If one of LOG, 'TRACE', or 'DEBUG', or 'VERBOSE', or 'QUIET', or 'LOG_LEVEL' is true then logging is enabled. These variables are used by Perinci::CmdLine. Otherwise, logging is disabled. %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 README %license LICENSE %changelog