From Fedora Project Wiki

perl Package to Install Core Modules

Summary

dnf install perl will install all core Perl modules that come with Perl upstream sources.

Owner

  • Name: Petr Písař
  • Email: <ppisar@redhat.com>
  • Release notes owner:

Current status

Completed items

  • Provide perl-interpreter symbol in F27
  • Provide perl-interpreter symbol in F26
  • Provide perl-interpreter symbol in F25
  • Provide perl-interpreter symbol in F24
  • Update Fedora Packaging Guidelines for Perl
  • Replace perl to perl-interpreter build-time dependency in all F27 spec files (2322)
  • Replace perl to perl-interpreter run-time dependency in all F27 spec files and rebuild them (75)
  • Rename perl to perl-interpreter and perl-core to perl in F27 perl.spec and rebuild it

Items in progress

Items to be done

  • Watch repository and fix oversights and races

Detailed Description

Upstream releases Perl interpreter together with many Perl modules. This set of modules is called core modules. Fedora splits the modules into subpackages so that installing perl package results in a stripped-down set of modules. Fedora documents this as a feature and provides perl-core metapackage that allows installing all the core modules as is intended by upstream.

Unfortunately this seems to be confusing to Perl users because Fedora is the only distribution doing so.

To align Fedora's behavior to upstream and other distributions this change will rename perl package to perl-interpreter and perl-core package to perl. This will allow installing all core Perl modules with dnf install perl while still retain the possibility to install only a minimal perl interpreter (/usr/bin/perl) with dnf install perl-interpreter.

This change will also update Fedora Packaging Guidelines for Perl and all spec files that require perl to use perl-interpreter instead. There is only 81 binary packages affected. They will be rebuilt. BuildRequires changes will commited into dist-git only. Otherwise no mass rebuild won't be necessary.

To ease sharing spec files with older Fedoras, perl-interpreter provide will be added to perl package there.

Benefit to Fedora

Fedora's Perl becomes more similar to other distributions. Installing perl package will be enough to get full user experience intended by Perl upstream.

Scope

  • Proposal owners:
    • Submit Fedora Packaging Guidelines for Perl update to Fedora Packaging Committee.
    • Update and rebuild perl source package.
    • Add Provides: perl-interpreter to perl package in older Fedoras.
    • Replace BuildRequires and Requires for perl with perl-interpreter in all spec files.
    • Rebuild packages with replaced Requires to propagate the change to repositories.
    • Replace perl-core with perl in compose groups definition.
  • Other developers: Get familiar with new Fedora Packaging Guidelines for Perl.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Users that explicitly installed perl package will get installed additional packages as if they had installed perl-core package. This can be fixed by uninstalling perl package manually.

How To Test

Install perl package. This makes available all Perl modules as listed in corelist -v 5.26.0 output (without modules specific for other operating systems).

User Experience

dnf install perl will install all core Perl modules.

Dependencies

This change will affect 2302 source packages and 81 binary packages. Their spec files will be updated. The 81 binary packages will be rebuilt. There is no dependency on other Fedora changes.

Contingency Plan

  • Contingency mechanism: The change will be reverted.
  • Contingency deadline: Any time.
  • Blocks release? No.
  • Blocks product? No.

Documentation

Release Notes

Installing perl package means installing all core Perl modules distributed by upstream within Perl sources now.

It's still possible to install /usr/bin/perl only by installing perl-interpreter package.

If distribution upgrade did not swap perl and perl-interpreter packages on your system, you can uninstall unneeded packages with dnf autoremove command.