perl-Task-Weaken/perl-Task-Weaken.spec

93 lines
3.1 KiB
RPMSpec

#
# spec file for package perl-Task-Weaken
#
# Copyright (c) 2019 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 https://bugs.opensuse.org/
#
Name: perl-Task-Weaken
Version: 1.06
Release: 0
%define cpan_name Task-Weaken
Summary: Ensure that a platform has weaken support
License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
Url: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
%{perl_requires}
# MANUAL BEGIN
BuildRequires: perl(Config)
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(File::Spec)
BuildRequires: perl(File::Spec::Functions)
BuildRequires: perl(Scalar::Util) >= 1.14
BuildRequires: perl(Test::More)
BuildRequires: perl(Test::Warn)
Requires: perl(Scalar::Util) >= 1.14
# MANUAL END
%description
One recurring problem in modules that use Scalar::Util's 'weaken' function
is that it is not present in the pure-perl variant.
While this isn't necessarily always a problem in a straight CPAN-based Perl
environment, some operating system distributions only include the pure-Perl
versions, don't include the XS version, and so weaken is then "missing"
from the platform, *despite* passing a dependency on Scalar::Util
successfully.
Most notably this is RedHat Linux at time of writing, but other come and go
and do the same thing, hence "recurring problem".
The normal solution is to manually write tests in each distribution to
ensure that 'weaken' is available.
This restores the functionality testing to a dependency you do once in your
_Makefile.PL_, rather than something you have to write extra tests for each
time you write a module.
It should also help make the package auto-generators for the various
operating systems play more nicely, because it introduces a dependency that
they *have* to have a proper weaken in order to work.
%prep
%setup -q -n %{cpan_name}-%{version}
# MANUAL BEGIN
sed -i -e 's/use inc::Module::Install/use lib q[.];\nuse inc::Module::Install/' Makefile.PL
# MANUAL END
%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 CONTRIBUTING Makefile.footer Makefile.header README
%license LICENSE
%changelog