perl-Test-Mojibake/perl-Test-Mojibake.spec

376 lines
14 KiB
RPMSpec

# noarch, but to avoid debug* files interfering with manifest test:
%global debug_package %{nil}
# Similarly, for package note feature
%undefine _package_note_file
Name: perl-Test-Mojibake
Version: 1.3
Release: 26%{?dist}
Summary: Check your source for encoding misbehavior
License: GPL+ or Artistic
URL: https://metacpan.org/release/Test-Mojibake
Source0: https://cpan.metacpan.org/modules/by-module/Test/Test-Mojibake-%{version}.tar.gz
BuildArch: noarch
# ===================================================================
# Module build requirements
# ===================================================================
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: make
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(ExtUtils::MakeMaker)
# ===================================================================
# Module requirements
# ===================================================================
BuildRequires: perl(File::Spec::Functions)
BuildRequires: perl(Pod::Usage)
BuildRequires: perl(strict)
BuildRequires: perl(Test::Builder)
BuildRequires: perl(warnings)
# ===================================================================
# Optional module requirements
# ===================================================================
BuildRequires: perl(Unicode::CheckUTF8)
# ===================================================================
# Regular test suite requirements
# ===================================================================
BuildRequires: perl(blib)
BuildRequires: perl(Test::Builder::Tester)
BuildRequires: perl(Test::More) >= 0.96
BuildRequires: perl(Test::Script)
# ===================================================================
# Author/Release test requirements
#
# Don't run these tests or include their requirements if we're
# bootstrapping, as many of these modules require each other for
# their author/release tests.
# ===================================================================
%if 0%{!?perl_bootstrap:1}
BuildRequires: perl(Perl::Critic) >= 1.094
BuildRequires: perl(Pod::Coverage::TrustPod)
BuildRequires: perl(Test::CPAN::Changes)
BuildRequires: perl(Test::CPAN::Meta)
BuildRequires: perl(Test::CPAN::Meta::JSON)
BuildRequires: perl(Test::DistManifest)
BuildRequires: perl(Test::EOL)
BuildRequires: perl(Test::HasVersion)
BuildRequires: perl(Test::MinimumVersion)
BuildRequires: perl(Test::NoTabs)
BuildRequires: perl(Test::Perl::Critic)
BuildRequires: perl(Test::Pod) >= 1.41
BuildRequires: perl(Test::Pod::Coverage) >= 1.08
BuildRequires: perl(Test::Portability::Files)
BuildRequires: perl(Test::Synopsis)
BuildRequires: perl(Test::Vars)
BuildRequires: perl(Test::Version)
# Modules only available from EL-8
%if 0%{?fedora} || 0%{?rhel} > 7
BuildRequires: perl(Perl::Critic::Policy::Modules::ProhibitModuleShebang)
BuildRequires: perl(Test::Kwalitee) >= 1.21
BuildRequires: perl(Test::Pod::LinkCheck)
%endif
%endif
# ===================================================================
# Runtime requirements
# ===================================================================
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
# Unicode::CheckUTF8 is an optional requirement that significantly speeds up
# this module
Requires: perl(Unicode::CheckUTF8)
%description
Many modern text editors automatically save files using UTF-8 codification.
However, the perl interpreter does not expect it by default. Whilst this does
not represent a big deal on (most) backend-oriented programs, Web framework
(Catalyst, Mojolicious) based applications will suffer so-called Mojibake
(literally: "unintelligible sequence of characters"). Even worse: if an editor
saves BOM (Byte Order Mark, U+FEFF character in Unicode) at the start of a
script with the executable bit set (on Unix systems), it won't execute at all,
due to shebang corruption.
Avoiding codification problems is quite simple:
* Always use utf8/use common::sense when saving source as UTF-8
* Always specify =encoding utf8 when saving POD as UTF-8
* Do neither of above when saving as ISO-8859-1
* Never save BOM (not that it's wrong; just avoid it as you'll barely
notice its presence when in trouble)
However, if you find yourself upgrading old code to use UTF-8 or trying to
standardize a big project with many developers, each one using a different
platform/editor, reviewing all files manually can be quite painful, especially
in cases where some files have multiple encodings (note: it all started when I
realized that gedit and derivatives are unable to open files with character
conversion tables).
Enter the Test::Mojibake ;)
%prep
%setup -q -n Test-Mojibake-%{version}
%build
perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}
%install
make pure_install DESTDIR=%{buildroot}
find %{buildroot} -type f -name .packlist -delete
%{_fixperms} -c %{buildroot}
%check
make test %{!?perl_bootstrap:AUTHOR_TESTING=1 RELEASE_TESTING=1} \
%if ! 0%{?fedora} && 0%{?rhel} < 8
TEST_FILES="$(echo $(find t/ -name '*.t' | grep -Fv release-kwalitee.t))"
%endif
%files
%license LICENSE
%doc Changes README
%{_bindir}/scan_mojibake
%{perl_vendorlib}/Test/
%{_mandir}/man1/scan_mojibake.1*
%{_mandir}/man3/Test::Mojibake.3*
%changelog
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jun 03 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-25
- Perl 5.36 re-rebuild of bootstrapped packages
* Wed Jun 01 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-24
- Perl 5.36 rebuild
* Fri Mar 11 2022 Paul Howarth <paul@city-fan.org> - 1.3-23
- Fix FTBFS triggered by package note feature
- Use %%license unconditionally
- Drop workarounds for EL-6 support
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon May 24 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-20
- Perl 5.34 re-rebuild of bootstrapped packages
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-19
- Perl 5.34 rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-16
- Perl 5.32 re-rebuild of bootstrapped packages
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-15
- Perl 5.32 rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Oct 29 2019 Paul Howarth <paul@city-fan.org> - 1.3-13
- Spec tidy up
- Use author-independent source URL
- Drop some legacy conditionals
- Drop redundant buildroot cleaning in %%install section
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-11
- Perl 5.30 re-rebuild of bootstrapped packages
* Fri May 31 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-10
- Perl 5.30 rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sun Jul 01 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-7
- Perl 5.28 re-rebuild of bootstrapped packages
* Thu Jun 28 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-6
- Perl 5.28 rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Jun 07 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-3
- Perl 5.26 re-rebuild of bootstrapped packages
* Mon Jun 05 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.3-2
- Perl 5.26 rebuild
* Mon Feb 6 2017 Paul Howarth <paul@city-fan.org> - 1.3-1
- Update to 1.3
- Minor fixes to pass the release tests
- Add MetaJSON plugin (GH#12)
- Add new optional dependency on Unicode::CheckUTF8::PP, a Pure Perl
implementation of Unicode::CheckUTF8
- Fixed off-by-one (GH#10)
- Fixed SYNOPSIS
- Work around bug in GNU tar 1.15.1 that breaks extracting tarballs made with
unknown extended attributes on old distributions
- Drop EL-5 build support
- Update patches as needed
* Wed May 18 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-5
- Perl 5.24 re-rebuild of bootstrapped packages
* Sun May 15 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.1-4
- Perl 5.24 rebuild
* Fri Feb 19 2016 Paul Howarth <paul@city-fan.org> - 1.1-3
- Make SYNOPSIS compilable perl (#1309966)
- Use %%license where possible
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Sep 3 2015 Paul Howarth <paul@city-fan.org> - 1.1-1
- Update to 1.1
- Distribution maintenance
- Handle the case where all_files_encoding_ok has no files to test by
skipping all tests
- Re-enable use of Test::Vars with Perl 5.22
- Avoid the Kwalitee test if we don't have a recent enough Test::Kwalitee
- Update patches as needed
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed Jun 10 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.0-6
- Perl 5.22 re-rebuild of bootstrapped packages
- Disable using of Test::Vars with Perl 5.22
* Fri Jun 05 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.0-5
- Perl 5.22 rebuild
* Sun Sep 07 2014 Jitka Plesnikova <jplesnik@redhat.com> - 1.0-4
- Perl 5.20 re-rebuild of bootstrapped packages
* Thu Aug 28 2014 Jitka Plesnikova <jplesnik@redhat.com> - 1.0-3
- Perl 5.20 rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Wed May 21 2014 Paul Howarth <paul@city-fan.org> - 1.0-1
- Update to 1.0
- Use proper source for ASCII-only characters
- Dist::Zilla-related updates
- Fixing the "comment in regexp" other way around
- Fix regex to properly ignore comments
- Update EPEL support patches
* Mon Jan 27 2014 Paul Howarth <paul@city-fan.org> - 0.9-3
- Bootstrap build for epel7 done
* Mon Jan 27 2014 Paul Howarth <paul@city-fan.org> - 0.9-2
- Bootstrap epel7 build
* Mon Jan 20 2014 Paul Howarth <paul@city-fan.org> - 0.9-1
- Update to 0.9
- More consistent UTF-8 naming in docs
- Dist::Zilla maintenance
- Fixed shebang in scan_mojibake
(https://github.com/creaktive/Test-Mojibake/issues/7)
- Update patch for building with old Test::More versions
* Wed Aug 14 2013 Jitka Plesnikova <jplesnik@redhat.com> - 0.8-4
- Perl 5.18 re-rebuild of bootstrapped packages
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sun Jul 21 2013 Petr Pisar <ppisar@redhat.com> - 0.8-2
- Perl 5.18 rebuild
* Sat Jan 26 2013 Paul Howarth <paul@city-fan.org> - 0.8-1
- Update to 0.8
- Fixed cyclic t/ deps
- Added the standalone scan_mojibake utility
- Listed Unicode::CheckUTF8 as a recommended prerequisite
- Recognize utf8::all
- Passes perlcritic harsh
- Drop BR: perl(File::Spec)
- BR: perl(File::Spec::Functions), perl(Pod::Usage) and perl(Test::Script)
- BR: perl(Test::Pod::LinkCheck) where available
- Perl::Critic 1.094 now needed for the 'equivalent_modules' parameter in
TestingAndDebugging::RequireUseStrict, unavailable in EPEL-5
- Update patch for building with old Test::More versions
- Drop %%defattr, redundant since rpm 4.4
* Mon Oct 1 2012 Paul Howarth <paul@city-fan.org> - 0.7-1
- Update to 0.7
- Fixed multiple =encoding behavior
- More deterministic t/01-bad-check.t
* Sat Sep 29 2012 Paul Howarth <paul@city-fan.org> - 0.6-1
- Update to 0.6
- Fixed incorrect test examples
- Reinstate BR: perl(Test::Kwalitee) now that kwalitee test is back
* Thu Sep 27 2012 Paul Howarth <paul@city-fan.org> - 0.5-1
- Update to 0.5
- Attempt to fix https://github.com/creaktive/Test-Mojibake/issues/2
(don't fail when no lib directory exists)
- Kwalitee won't complain any more
- Kwalitee test dropped upstream, so no longer need BR: perl(Test::Kwalitee)
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Jul 10 2012 Petr Pisar <ppisar@redhat.com> - 0.4-3
- Perl 5.16 re-rebuild of bootstrapped packages
* Thu Jun 28 2012 Petr Pisar <ppisar@redhat.com> - 0.4-2
- Perl 5.16 rebuild
* Tue Jun 26 2012 Paul Howarth <paul@city-fan.org> - 0.4-1
- Update to 0.4
- _detect_utf8: PP version now handles overlong UTF-8 sequences
- Tests update (96% coverage)
- Dist::Zilla update
- BR: perl(Perl::Critic::Policy::Modules::ProhibitModuleShebang),
perl(Test::EOL) and perl(Test::Version)
- BR: perl(Test::Kwalitee), perl(Test::MinimumVersion),
perl(Test::Perl::Critic) and perl(Test::Synopsis) unconditionally
- Drop support for building for EPEL-4
- Drop patch for building with ExtUtils::MakeMaker < 6.30
- Update patch for building with Test::More < 0.88
- Add patch to support building without Test::Version
- Add workaround for the old version of PPI in EPEL-5 not being able to
handle the unicode byte order mark in t/bom.pl, which breaks
t/release-minimum-version.t
- Don't need to remove empty directories from the buildroot
- Use DESTDIR rather than PERL_INSTALL_ROOT
* Mon Jun 11 2012 Petr Pisar <ppisar@redhat.com> - 0.3-5
- Perl 5.16 rebuild
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Oct 4 2011 Paul Howarth <paul@city-fan.org> - 0.3-3
- BR/R: perl(Unicode::CheckUTF8) for improved performance
* Thu Aug 11 2011 Paul Howarth <paul@city-fan.org> - 0.3-2
- Sanitize for Fedora/EPEL submission
* Thu Aug 11 2011 Paul Howarth <paul@city-fan.org> - 0.3-1
- Initial RPM version