Bug 1781177 - [RFE] - Providing a modular perl-libwww-perl for perl:5.24
Summary: [RFE] - Providing a modular perl-libwww-perl for perl:5.24
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: perl-libwww-perl
Version: 8.1
Hardware: All
OS: Linux
unspecified
urgent
Target Milestone: rc
: 8.3
Assignee: perl-maint-list
QA Contact: RHEL CS Apps Subsystem QE
Lenka Špačková
URL:
Whiteboard:
Depends On: 1821729 1824222
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-12-09 13:29 UTC by Parikshit Khedekar
Modified: 2020-12-16 08:37 UTC (History)
3 users (show)

Fixed In Version: perl-libwww-perl-6.34-8030020200428102957.7cc0a66d perl-libwww-perl-6.34-8030020200428102957.b967a9a2 perl-libwww-perl-6.34-8030020200428102957.5839bc99
Doc Type: Enhancement
Doc Text:
.A new module stream: `perl-libwww-perl:6.34` RHEL 8.3 introduces a new `perl-libwww-perl:6.34` module stream, which provides the `perl-libwww-perl` package for all versions of `Perl` available in RHEL 8. The non-modular `perl-libwww-perl` package, available since RHEL 8.0, which cannot be used with other `Perl` streams than 5.26, has been obsoleted by the new default `perl-libwww-perl:6.34` stream.
Clone Of:
: 1824222 (view as bug list)
Environment:
Last Closed: 2020-11-04 03:18:51 UTC
Type: Bug
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2020:4724 0 None None None 2020-11-04 03:18:58 UTC

Description Parikshit Khedekar 2019-12-09 13:29:47 UTC
Description of problem:

perl-libwww-perl package is not modular and thus supports only the default perl stream which is 5.26

# yum module enable perl:5:24

# yum --allowerasing distrosync
Problem: module perl:5.26:820181219174508:9edba152-0.x86_64 conflicts with module(perl:5.24) provided by perl:5.24:8010020190529084201:3af8e029-0.x86_64
  - module perl:5.24:8010020190529084201:3af8e029-0.x86_64 conflicts with module(perl:5.26) provided by perl:5.26:820181219174508:9edba152-0.x86_64
  - module freeradius:3.0:8010020190614154208:16b3ab4d-0.x86_64 requires module(perl:5.26), but none of the providers can be installed
  - conflicting requests
Error:
 Problem: cannot install the best update candidate for package hostkey-signer-1.3-2.el8.noarch
  - problem with installed package hostkey-signer-1.3-2.el8.noarch
  - package hostkey-signer-1.3-2.el8.noarch requires perl(LWP::UserAgent), but none of the providers can be installed
  - package perl-libwww-perl-6.34-1.el8.noarch requires perl(:MODULE_COMPAT_5.26.2), but none of the providers can be installed
  - perl-libs-4:5.26.3-416.el8.x86_64 does not belong to a distupgrade repository
  - package perl-libs-4:5.26.3-416.el8.i686 is excluded
  - package perl-libs-4:5.26.3-416.el8.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)


Version-Release number of selected component (if applicable):

8.1


How reproducible:

# yum module enable perl:5:24

# yum --allowerasing distrosync
Problem: module perl:5.26:820181219174508:9edba152-0.x86_64 conflicts with module(perl:5.24) provided by perl:5.24:8010020190529084201:3af8e029-0.x86_64
  - module perl:5.24:8010020190529084201:3af8e029-0.x86_64 conflicts with module(perl:5.26) provided by perl:5.26:820181219174508:9edba152-0.x86_64
  - module freeradius:3.0:8010020190614154208:16b3ab4d-0.x86_64 requires module(perl:5.26), but none of the providers can be installed
  - conflicting requests
Error:
 Problem: cannot install the best update candidate for package hostkey-signer-1.3-2.el8.noarch
  - problem with installed package hostkey-signer-1.3-2.el8.noarch
  - package hostkey-signer-1.3-2.el8.noarch requires perl(LWP::UserAgent), but none of the providers can be installed
  - package perl-libwww-perl-6.34-1.el8.noarch requires perl(:MODULE_COMPAT_5.26.2), but none of the providers can be installed
  - perl-libs-4:5.26.3-416.el8.x86_64 does not belong to a distupgrade repository
  - package perl-libs-4:5.26.3-416.el8.i686 is excluded
  - package perl-libs-4:5.26.3-416.el8.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)



Steps to Reproduce:
1. # yum module enable perl:5:24
2. # yum --allowerasing distrosync
3.

Actual results:

It leads to the conflicts as it is not modular


Expected results:

It should allow the 5.24 


Additional info:

Comment 1 Petr Pisar 2019-12-09 14:19:23 UTC
(In reply to Parikshit Khedekar from comment #0)
> Description of problem:
> 
> perl-libwww-perl package is not modular and thus supports only the default
> perl stream which is 5.26
> 
Yes that's right.

> # yum module enable perl:5:24
> 
I believe that's a typo and you wanted to execute:

# yum module enable perl:5.24

> # yum --allowerasing distrosync
> Problem: module perl:5.26:820181219174508:9edba152-0.x86_64 conflicts with
> module(perl:5.24) provided by perl:5.24:8010020190529084201:3af8e029-0.x86_64
>   - module perl:5.24:8010020190529084201:3af8e029-0.x86_64 conflicts with
> module(perl:5.26) provided by perl:5.26:820181219174508:9edba152-0.x86_64
>   - module freeradius:3.0:8010020190614154208:16b3ab4d-0.x86_64 requires
> module(perl:5.26), but none of the providers can be installed
>   - conflicting requests
> Error:
>  Problem: cannot install the best update candidate for package
> hostkey-signer-1.3-2.el8.noarch
>   - problem with installed package hostkey-signer-1.3-2.el8.noarch
>   - package hostkey-signer-1.3-2.el8.noarch requires perl(LWP::UserAgent),
> but none of the providers can be installed
>   - package perl-libwww-perl-6.34-1.el8.noarch requires
> perl(:MODULE_COMPAT_5.26.2), but none of the providers can be installed
>   - perl-libs-4:5.26.3-416.el8.x86_64 does not belong to a distupgrade
> repository
>   - package perl-libs-4:5.26.3-416.el8.i686 is excluded
>   - package perl-libs-4:5.26.3-416.el8.x86_64 is excluded
> (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to
> use not only best candidate packages)
> 
With my yum-4.2.7-7.el8_1, the --allowerasing option actually offers removing the conflicting packages. I.e. it wants to uninstall perl-libwww-perl:

# yum --allowerasing distrosync
[...]
Dependencies resolved.
==========================================================================================
 Package         Arch   Version                               Repository             Size
==========================================================================================
[...]
Installing dependencies:
 perl            x86_64 4:5.24.4-404.module+el8.1.0+2926+ce7246ad
[...]
Removing dependent packages:
[...]
 perl-libwww-perl
                 noarch 6.34-1.el8                            @rhel-8.1.0-appstream 505 k
Downgrading:
[...]
perl-libs       x86_64 4:5.24.4-404.module+el8.1.0+2926+ce7246ad
                                                              rhel-8.1.0-appstream  1.5 M

Thought I get the error message when you invoke the distrosync without the --allowerasing option.

> Actual results:
> 
> It leads to the conflicts as it is not modular
> 
> 
> Expected results:
> 
> It should allow the 5.24 
> 
Adding modular perl-libwww-perl for perl:5.24 will require modularizing a big deal of packages. It's too late for RHEL 8.2. I will propose resolving this issue for RHEL 8.3.

As a workaround, the customer could invoke "yum --allowerasing distrosync", notice the packages scheduled for removal, let the conflicting packages uninstall and then install them from CPAN with cpan program.

Comment 2 Parikshit Khedekar 2019-12-09 14:30:48 UTC
@Pisar , lets see if customer is able to have the suggested workaround, I will be updating the ticket again with the suggestion you have

Comment 10 Petr Pisar 2020-04-08 13:43:31 UTC
I have the final set of packages that needs to be modularized. There will be two new modules:

perl-IO-Socket-SSL:2.066
  Unfiltered packages for installation by a user:
    perl-IO-Socket-SSL
    perl-Net-SSLeay
  Built-time only dependency filtered from the module and unavailable to the user:
    perl-Devel-StackTrace
    perl-IO-Socket-INET6
    perl-IO-Tty
    perl-IPC-Run
    perl-Net-IDN-Encode
    perl-Net-LibIDN
    perl-Socket6
    perl-Test-NoWarnings

perl-libwww-perl:6.34
  Packages for the installation:
    perl-Data-Dump
    perl-Digest-HMAC
    perl-Encode-Locale
    perl-File-Listing
    perl-HTML-Parser
    perl-HTML-Tagset
    perl-HTTP-Cookies
    perl-HTTP-Date
    perl-HTTP-Message
    perl-HTTP-Negotiate
    perl-IO-HTML
    perl-libwww-perl
    perl-LWP-MediaTypes
    perl-LWP-Protocol-https
    perl-Mozilla-CA
    perl-Net-HTTP
    perl-NTLM
    perl-TimeDate
    perl-Try-Tiny
    perl-WWW-RobotRules
  Built-time only packages:
    perl-Digest-SHA1
    perl-HTTP-Daemon
    perl-Test-Fatal
    perl-Test-Pod
    perl-Test-RequiresInternet

The package sources will be copied from RHEL 8.2 without any changes to maintain a compatibility with RHEL 8.2 non-modular content. The only exception is perl-TimeDate that will carry a tiny patch that fixes tests and does not change ABI in any way (bug #1821729).

perl-libwww-perl:6.34 module will run-require perl-IO-Socket-SSL:2.066. Default profiles for both modules will result into installing all the packages.

Both streams will be set default and will supersede same-named non-modular packages. The non-modular packages will be abandoned and all the support and maintenance will be performed in the modules. That's because a modular dist tag makes the module NEVRA higher than the non-modular one, and therefore ensures an upgrade path.

The packages are split into two modules because perl-IO-Socket-SSL and perl-Net-SSLeay packages in RHEL 8 have users that do not depend on perl-libwww-perl at the same time and can be modularized independently later.

Comment 24 errata-xmlrpc 2020-11-04 03:18:51 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 (perl-IO-Socket-SSL:2.066 and perl-libwww-perl:6.34 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/RHEA-2020:4724


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