Bug 1420099 - Review Request: perl-Mail-Message - MIME message handling
Summary: Review Request: perl-Mail-Message - MIME message handling
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1420100
TreeView+ depends on / blocked
 
Reported: 2017-02-07 19:58 UTC by Tom "spot" Callaway
Modified: 2017-02-09 17:54 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-02-09 17:54:41 UTC
Type: ---
ppisar: fedora-review+


Attachments (Terms of Use)

Description Tom "spot" Callaway 2017-02-07 19:58:41 UTC
Spec URL: https://spot.fedorapeople.org/perl-Mail-Message.spec
SRPM URL: https://spot.fedorapeople.org/perl-Mail-Message-3.000-1.fc26.src.rpm
Description: MIME message handling code, formerly part of the Mail::Box package.
Fedora Account System Username: spot

Note: This component used to be part of perl-Mail-Box, but was split off in 3.000.

Comment 1 Petr Pisar 2017-02-08 10:01:15 UTC
The standalone and the packaged spec file differ in white space only. I will use the standalone one for this review.

URL and Source0 addresses are Ok.
Source archive (SHA-256: 3a70553d4898e783c0ae8645d6bb3c8fa1ed66f997627685a72119b02dd0be1d) is Ok.
Summary is Ok.
Description is Ok.
License verified from lib/Mail/Message.pod and other POD files. Ok.

FIX: The t/203-mlfolder.mbox and t/204-sgfolder.mbox files contain e-mail messages whose license is not very likely "GPL or Artistic". Since Fedora does not modify them and I believe their authors are content with their redistribution (because they were sent to public mailing lists), I think their existence in Fedora source packages does not violate copyright law. But they still can be unacceptable for Fedora because Fedora requires a permission for modification.
Please add a notice into the spec file about their existence and negotiate their license with the Mail-Message author and their permissibility with Fedora legal department.

No XS code, noarch BuildArch is Ok.

FIX: Build-require `perl' because you execute it the spec file on lines 32 and 55.
FIX: Build-require `coreutils' (perl-Mail-Message.spec:55).
FIX: Build-require `make' (perl-Mail-Message.spec:56).
FIX: Build-require `findutils' (perl-Mail-Message.spec:60).
FIX: Build-require `glibc-common' (perl-Mail-Message.spec:66).

TODO: Constrain `perl(URI)' dependency with `>= 1.23' (META.json:47).

FIX: Build-require `perl(IO::Handle)' (Makefile.PL:5).
FIX: Build-require `perl(warnings)' (Makefile.PL:96).
FIX: Build-require `perl(base)' (lib/Mail/Message.pm:12).
FIX: Build-require `perl(Carp)' (lib/Mail/Message.pm:22).
FIX: Build-require `perl(Cwd)' (lib/Mail/Message/Test.pm:17).
FIX: Build-require `perl(Email::Simple)' (lib/Mail/Message/Convert/EmailSimple.pm:20).
FIX: Build-require `perl(Encode::Alias)' (lib/Mail/Message/Body/Encode.pm:24).
FIX: Build-require `perl(Exporter)' (lib/Mail/Message/Test.pm:11).
FIX: Build-require `perl(File::Basename)' (lib/Mail/Message/Body.pm:20).
FIX: Build-require `perl(File::Copy)' (lib/Mail/Message/Test.pm:13).
FIX: Build-require `perl(File::Temp)' (lib/Mail/Message/Body/File.pm:18).
FIX: Build-require `perl(HTML::FormatText)' (lib/Mail/Message/Convert/HtmlFormatPS.pm:17).
FIX: Build-require `perl(HTML::TreeBuilder)' (lib/Mail/Message/Convert/HtmlFormatPS.pm:16).
FIX: Build-require `perl(integer)' (lib/Mail/Box/FastScalar.pm:13).
FIX: Build-require `perl(IO::File)' (lib/Mail/Box/Parser/Perl.pm:16).
FIX: Build-require `perl(IO::Handle)' (lib/Mail/Message/Field.pm:17).
FIX: Build-require `perl(IO::Lines)' (lib/Mail/Message/Body/Lines.pm:15).
FIX: Build-require `perl(List::Util)' (lib/Mail/Box/Parser/Perl.pm:15).
FIX: Build-require `perl(Mail::Header)' (lib/Mail/Message/Convert/EmailSimple.pm:15).
FIX: Build-require `perl(Mail::Identity)' (lib/Mail/Message/Field/Address.pm:12).
FIX: Build-require `perl(Mail::Internet)' (lib/Mail/Message/Convert/EmailSimple.pm:14).
FIX: Build-require `perl(MIME::Parser)' (lib/Mail/Message/Convert/MimeEntity.pm:16).
FIX: Build-require `perl(MIME::QuotedPrint)' (lib/Mail/Message/Field/Full.pm:16).
FIX: Build-require `perl(overload)' (lib/Mail/Message/Body.pm:27).
FIX: Build-require `perl(POSIX)' (lib/Mail/Message/Field/Date.pm:14).
FIX: Build-require `perl(Storable)' (lib/Mail/Message/Field/Full.pm:17).
FIX: Build-require `perl(strict)' (lib/Mail/Message.pm:5).
FIX: Build-require `perl(Text::Autoformat)' (lib/Mail/Message/Convert/TextAutoformat.pm:15).
FIX: Build-require `perl(User::Identity::Collection::Emails)' (lib/Mail/Message/Field/AddrGroup.pm:12).
FIX: Build-require `perl(utf8)' (lib/Mail/Message/Field/Full.pm:14).
FIX: Build-require `perl(vars)' (lib/Mail/Message.pm:9).

FIX: Build-require `perl(Data::Dumper)' (t/314encode-charset.t:13).
TODO: Build-require `perl(Email::Abstract)' (t/423msgconv-emabs.t:14).
TODO: Build-require `perl(Email::Simple)' (t/422msgconv-emsimp.t:16).

FIX: Run-require `perl(Mail::Transport::Send)' (lib/Mail/Message.pm:164).

FIX: Tests fail for me:

t/322bodyconv-htmlps.t .... Can't locate Font/Metrics/TimesRoman.pm in @INC (you may need to install the Font::Metrics::TimesRoman module) (@INC contains: /home/test/rpmbuild/BUILD/Mail-Message-3.000/blib/lib /home/test/rpmbuild/BUILD/Mail-Message-3.000/blib/arch /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/share/perl5/vendor_perl/HTML/FormatPS.pm line 219.
# Looks like your test exited with 2 before it could output anything.
t/322bodyconv-htmlps.t .... Dubious, test returned 2 (wstat 512, 0x200)
Failed 5/5 subtests 

Please correct all `FIX' items, consider fixing `TODO' items and provide a new spec file.
Resolution: Package NOT approved.

Comment 2 Tom "spot" Callaway 2017-02-08 20:46:47 UTC
New SPEC: https://spot.fedorapeople.org/perl-Mail-Message.spec
New SRPM: https://spot.fedorapeople.org/perl-Mail-Message-3.000-2.fc26.src.rpm

Opened upstream ticket for the test files, removed them in %setup. Added 40 billion BuildRequires.

Lifting FE-Legal.

Comment 3 Petr Pisar 2017-02-09 08:40:29 UTC
I think removing the bad-licensed tests in %prep is too late as they are still distributed in the SRPM package, but I believe you know what you do.

Mail::Transfer is not needed. Ok.
All tests pass. Ok.

$ rpmlint perl-Mail-Message.spec ../SRPMS/perl-Mail-Message-3.000-2.fc26.src.rpm ../RPMS/noarch/perl-Mail-Message-3.000-2.fc26.noarch.rpm 
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is Ok.

File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Mail-Message-3.000-2.fc26.noarch.rpm | sort -f | uniq -c
      1 perl(:MODULE_COMPAT_5.24.1)
      1 perl(:VERSION) >= 5.7.3
      1 perl(base)
      1 perl(Carp)
      1 perl(Cwd)
      1 perl(Date::Format)
      1 perl(Email::Simple)
      1 perl(Encode)
      1 perl(Encode::Alias)
      1 perl(Exporter)
      1 perl(File::Basename)
      1 perl(File::Copy)
      1 perl(File::Spec)
      1 perl(File::Temp)
      1 perl(HTML::FormatText)
      1 perl(HTML::TreeBuilder)
      1 perl(integer)
      1 perl(IO::File)
      1 perl(IO::Handle)
      1 perl(IO::Lines)
      1 perl(List::Util)
      1 perl(Mail::Address)
      1 perl(Mail::Box::FastScalar)
      1 perl(Mail::Box::Parser)
      1 perl(Mail::Box::Parser::Perl)
      1 perl(Mail::Header)
      1 perl(Mail::Identity)
      1 perl(Mail::Internet)
      1 perl(Mail::Message)
      1 perl(Mail::Message::Body)
      1 perl(Mail::Message::Body::File)
      1 perl(Mail::Message::Body::Lines)
      1 perl(Mail::Message::Body::Multipart)
      1 perl(Mail::Message::Body::Nested)
      1 perl(Mail::Message::Body::String)
      1 perl(Mail::Message::Construct)
      1 perl(Mail::Message::Convert)
      1 perl(Mail::Message::Field)
      1 perl(Mail::Message::Field::Address)
      1 perl(Mail::Message::Field::Addresses)
      1 perl(Mail::Message::Field::AddrGroup)
      1 perl(Mail::Message::Field::Attribute)
      1 perl(Mail::Message::Field::Date)
      1 perl(Mail::Message::Field::Fast)
      1 perl(Mail::Message::Field::Full)
      1 perl(Mail::Message::Field::Structured)
      1 perl(Mail::Message::Field::Unstructured)
      1 perl(Mail::Message::Field::URIs)
      1 perl(Mail::Message::Head)
      1 perl(Mail::Message::Head::Complete)
      1 perl(Mail::Message::Head::FieldGroup)
      1 perl(Mail::Message::Head::Partial)
      1 perl(Mail::Message::Part)
      1 perl(Mail::Message::TransferEnc)
      1 perl(Mail::Reporter)
      1 perl(MIME::Base64)
      1 perl(MIME::Entity)
      1 perl(MIME::Parser)
      1 perl(MIME::QuotedPrint)
      1 perl(MIME::Types)
      1 perl(overload)
      1 perl(POSIX)
      1 perl(Scalar::Util)
      1 perl(Storable)
      1 perl(strict)
      1 perl(Sys::Hostname)
      1 perl(Test::More)
      1 perl(Text::Autoformat)
      1 perl(URI)
      1 perl(User::Identity::Collection::Emails)
      1 perl(utf8)
      1 perl(vars)
      1 perl(warnings)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1

FIX: Run-require `perl(Date::Parse)' (lib/Mail/Message/Field.pm:329).
FIX: Run-require `perl(Mail::Transport::Send)' (lib/Mail/Message.pm:164).
FIX: Run-require `perl(Time::Zone)' (lib/Mail/Message/Field.pm:296).
TODO: Remove the __requires_exclude for Mail::SpamAssassin. The dependency is not autogenerated.

$ rpm -q --provides -p ../RPMS/noarch/perl-Mail-Message-3.000-2.fc26.noarch.rpm | sort -f | uniq -c
      1 perl(Mail::Box::FastScalar) = 3.000
      1 perl(Mail::Box::Parser) = 3.000
      1 perl(Mail::Box::Parser::Perl) = 3.000
      1 perl(Mail::Message) = 3.000
      1 perl(Mail::Message::Body) = 3.000
      1 perl(Mail::Message::Body::Construct) = 3.000
      1 perl(Mail::Message::Body::File) = 3.000
      1 perl(Mail::Message::Body::Lines) = 3.000
      1 perl(Mail::Message::Body::Multipart) = 3.000
      1 perl(Mail::Message::Body::Nested) = 3.000
      1 perl(Mail::Message::Body::String) = 3.000
      1 perl(Mail::Message::Construct) = 3.000
      1 perl(Mail::Message::Construct::Bounce) = 3.000
      1 perl(Mail::Message::Construct::Build) = 3.000
      1 perl(Mail::Message::Construct::Forward) = 3.000
      1 perl(Mail::Message::Construct::Read) = 3.000
      1 perl(Mail::Message::Construct::Rebuild) = 3.000
      1 perl(Mail::Message::Construct::Reply) = 3.000
      1 perl(Mail::Message::Construct::Text) = 3.000
      1 perl(Mail::Message::Convert) = 3.000
      1 perl(Mail::Message::Convert::EmailSimple) = 3.000
      1 perl(Mail::Message::Convert::Html) = 3.000
      1 perl(Mail::Message::Convert::HtmlFormatPS) = 3.000
      1 perl(Mail::Message::Convert::HtmlFormatText) = 3.000
      1 perl(Mail::Message::Convert::MailInternet) = 3.000
      1 perl(Mail::Message::Convert::MimeEntity) = 3.000
      1 perl(Mail::Message::Convert::TextAutoformat) = 3.000
      1 perl(Mail::Message::Field) = 3.000
      1 perl(Mail::Message::Field::Address) = 3.000
      1 perl(Mail::Message::Field::Addresses) = 3.000
      1 perl(Mail::Message::Field::AddrGroup) = 3.000
      1 perl(Mail::Message::Field::Attribute) = 3.000
      1 perl(Mail::Message::Field::Date) = 3.000
      1 perl(Mail::Message::Field::Fast) = 3.000
      1 perl(Mail::Message::Field::Flex) = 3.000
      1 perl(Mail::Message::Field::Full) = 3.000
      1 perl(Mail::Message::Field::Structured) = 3.000
      1 perl(Mail::Message::Field::Unstructured) = 3.000
      1 perl(Mail::Message::Field::URIs) = 3.000
      1 perl(Mail::Message::Head) = 3.000
      1 perl(Mail::Message::Head::Complete) = 3.000
      1 perl(Mail::Message::Head::FieldGroup) = 3.000
      1 perl(Mail::Message::Head::ListGroup) = 3.000
      1 perl(Mail::Message::Head::Partial) = 3.000
      1 perl(Mail::Message::Head::ResentGroup) = 3.000
      1 perl(Mail::Message::Head::SpamGroup) = 3.000
      1 perl(Mail::Message::Part) = 3.000
      1 perl(Mail::Message::Replace::MailHeader) = 3.000
      1 perl(Mail::Message::Replace::MailInternet) = 3.000
      1 perl(Mail::Message::Test) = 3.000
      1 perl(Mail::Message::TransferEnc) = 3.000
      1 perl(Mail::Message::TransferEnc::Base64) = 3.000
      1 perl(Mail::Message::TransferEnc::Binary) = 3.000
      1 perl(Mail::Message::TransferEnc::EightBit) = 3.000
      1 perl(Mail::Message::TransferEnc::QuotedPrint) = 3.000
      1 perl(Mail::Message::TransferEnc::SevenBit) = 3.000
      1 perl(Mail::Reporter) = 3.000
      1 perl-Mail-Message = 3.000-2.fc26
Binary provides are Ok.

Notice: The Mail::Message::*Construct* provides are not found because generators work on file content and there is no Perl module declared with the name (`package' keyword). Those identifiers are used for loading by a file name. Declaring the provides explicitly is fine.

$ resolvedeps rawhide ../RPMS/noarch/perl-Mail-Message-3.000-2.fc26.noarch.rpm
Binary dependencies resolvable. Ok.

Package builds in F26 (https://koji.fedoraproject.org/koji/taskinfo?taskID=17686373). OK.

Otherwise the package is in line with Fedora and Perl packaging guidelines.
Please correct all the `FIX' items and consider fixing `TODO' items before building this package.
Resolution: Package APPROVED.

Comment 4 Gwyn Ciesla 2017-02-09 16:26:43 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/perl-Mail-Message

Comment 5 Tom "spot" Callaway 2017-02-09 17:54:41 UTC
Built in rawhide.


Note You need to log in before you can comment on or make changes to this bug.