Bug 1903503

Summary: perl-libs: Missing dependency on perl-Encode
Product: Red Hat Enterprise Linux 8 Reporter: Peter Wienemann <wienemann>
Component: perlAssignee: perl-maint-list
Status: CLOSED ERRATA QA Contact: RHEL CS Apps Subsystem QE <rhel-cs-apps-subsystem-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.2CC: jplesnik, mkyral, o.freyermuth, ppisar, wienemann
Target Milestone: rcKeywords: Triaged
Target Release: 8.0   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: perl-5.26.3-417.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1903630 1903631 (view as bug list) Environment:
Last Closed: 2021-05-18 15:06:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Peter Wienemann 2020-12-02 08:14:20 UTC
Description of problem:
The package perl-MIME-Types should pull in the package perl-Encode as dependency. Otherwise the package is unusable:

How reproducible:
always

Steps to Reproduce:
1. yum install perl-MIME-Types
2. Run the following perl script:
-----------------------------------------------
#!/usr/bin/env perl

use warnings;
use strict;
use MIME::Types;

my $mt = MIME::Types->new;

my @types = $mt->listTypes();

foreach (@types) {
        print("$_\n");
}
-----------------------------------------------

Actual results:
cannot open type database in /usr/share/perl5/vendor_perl/MIME/types.db: No such file or directory

Expected results:
message/cpim
message/delivery-status
message/disposition-notification
[...]

Additional info:
Problem is fixed by running:

yum install perl-Encode

Comment 1 Jitka Plesnikova 2020-12-02 10:47:13 UTC
Thank you for report. I can confirm the issue. It's easy fix for it.

Comment 2 Jitka Plesnikova 2020-12-02 14:20:06 UTC
I looked deep on it and I found the source the issue.

lib/MIME/Types.pm 
42:    open DB, '<:encoding(utf8)', $db
43:       or die "cannot open type database in $db: $!\n";

open(,':encoding()',) is loading 'PerlIO::encoding'. 'Encode' is loaded in BOOT section of 'PerlIO::encoding'. This require is not found by perl-generators.

'PerlIO::encoding' is provided by perl-libs. So, we have to add 'Encode' to perl-libs as a run-require.

Comment 11 errata-xmlrpc 2021-05-18 15:06:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: perl security and bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:1678