From Fedora Project Wiki
(EPEL-6 support)
 
(62 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= perl Package to install Core Modules =
+
= perl Package to Install Core Modules =
  
 
== Summary ==
 
== Summary ==
Line 7: Line 7:
 
* Name: [[User:ppisar| Petr Písař]]
 
* Name: [[User:ppisar| Petr Písař]]
 
* Email: <ppisar@redhat.com>
 
* Email: <ppisar@redhat.com>
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
+
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->[mailto:sclark@fedoraproject.org Simon Clark] ([[User:sclark|sclark]])
 
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
 
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
 
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
 
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
Line 23: Line 23:
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
-->
 
-->
* Tracker bug: <will be assigned by the Wrangler>
+
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1464903 #1464903]
 +
=== 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 [[Packaging:Perl | 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 ===
 +
* Handle packages that failed to rebuild:
 +
** cone - [https://bugzilla.redhat.com/show_bug.cgi?id=1423305 bug #1423305]
  
 
== Detailed Description ==
 
== Detailed Description ==
  
Upstream releases Perl interpreter together many Perl modules. This set of modules is called core modules. Fedora splits the modules into subpackages so that installing ''perl'' package results in stripped-down set of modules. Fedora documents this as a feature and provides ''perl-core'' to metapackage that allows installing all the core modules as is intended by upstream.
+
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.
 
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 <code>dnf install perl</code> while still retain the  possibility to install only a minimal perl interpreter (''/usr/bin/perl'') with <code>dnf install perl-interpreter</code>.
+
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 <code>dnf install perl</code> while still retain the  possibility to install only a minimal perl interpreter (''/usr/bin/perl'') with <code>dnf install perl-interpreter</code>.
  
This change will also update [[Packaging:Perl | Fedora Packaging Guidelines for Perl]] to all spec files that require ''perl'' to use ''perl-interpreter'' instead. No mass rebuild won't be necessary.
+
This change will also update [[Packaging:Perl | 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 add to ''perl'' package there.
+
To ease sharing spec files with older Fedoras, ''perl-interpreter'' provide will be added to ''perl'' package there.
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
Line 47: Line 60:
 
** Add ''Provides: perl-interpreter'' to ''perl'' package in older Fedoras.
 
** Add ''Provides: perl-interpreter'' to ''perl'' package in older Fedoras.
 
** Replace BuildRequires and Requires for ''perl'' with ''perl-interpreter'' in all spec files.
 
** 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.
 
** Replace ''perl-core'' with ''perl'' in compose groups definition.
  
 
* Other developers: Get familiar with new Fedora Packaging Guidelines for Perl.
 
* Other developers: Get familiar with new Fedora Packaging Guidelines for Perl.
  
* Release engineering: No action needed. [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engeneering is needed)
+
* Release engineering: No action needed. [https://pagure.io/releng/issue/6842 Request to check of an impact with Release Engeneering].
 
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: Anything what contains ''perl'' package
 
** [[Fedora_Program_Management/ReleaseBlocking/Fedora{{FedoraVersionNumber|next}}|List of deliverables]]: Anything what contains ''perl'' package
 
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->
 
<!-- Please check the list of Fedora release deliverables and list all the differences the feature brings -->
  
* Policies and guidelines: Fedora Packaging Guidelines for Perl will be updated to use ''perl'' and ''perl-interpreter'' instead of ''perl-core'' and ''perl''.
+
* Policies and guidelines: [https://pagure.io/packaging-committee/issue/690 Fedora Packaging Guidelines for Perl update request] to use ''perl'' and ''perl-interpreter'' instead of ''perl-core'' and ''perl''.
  
 
* Trademark approval: N/A (not needed for this Change)
 
* Trademark approval: N/A (not needed for this Change)
Line 73: Line 87:
 
== Dependencies ==
 
== Dependencies ==
  
This change will affect 2302 source packages and 81 binary packages. Their spec files will be updated. No rebuild is necessary. There is no dependency on other Fedora changes.
+
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 Plan ==
Line 83: Line 97:
  
 
== Documentation ==
 
== Documentation ==
[[Packaging:Perl | Fedora Packaging Guidelines for Perl]]
+
* [[Packaging:Perl#Build_Dependencies | Build Dependencies section of Fedora Packaging Guidelines for Perl]]
 +
* [[PackagingDrafts/Packaging:Perl/PerlIsPerlCore#Build_Dependencies | Build Dependencies section of propsed Fedora Packaging Guidelines for Perl]]
 +
* [https://pagure.io/fesco/issue/1719 FESCo request to approve this change]
 +
* [https://meetbot-raw.fedoraproject.org/fedora-meeting/2017-06-23/fesco.2017-06-23-16.00.html FESCo approval]
 +
* [https://pagure.io/packaging-committee/issue/690 FPC request to update Fedora Packaging Guidelines for Perl]
 +
* [https://pagure.io/releng/issue/6842 Releng request to check of the impact]
 +
* [https://bugzilla.redhat.com/show_bug.cgi?id=1410347 RHEL request to provide compatibility]
 +
* [https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2017-7e8572ac74 An EPEL-7 update providing perl-interpreter to EPEL-7]
 +
* [https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2018-35805e33b6 An EPEL-6 update providing perl-interpreter to EPEL-6]
 +
* [https://lists.fedoraproject.org/archives/list/perl-devel@lists.fedoraproject.org/message/TGQJI4IFXFOPMZJFE42CZ6DSFUP5NIC3/  perl-devel mailing list discussion]
 +
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/BFO4WG73BW6JH4RMFRQNSZ4BPHU6SP6Y/ devel mailing list discussion]
  
 
== Release Notes ==
 
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
+
Installing ''perl'' package means installing all core Perl modules distributed by upstream within Perl sources now.
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this change, indicate them here.  A link to upstream documentation will often satisfy this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release.  
 
  
Release Notes are not required for initial draft of the Change Proposal but has to be completed by the Change Freeze.  
+
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 <code>dnf autoremove</code> command.
  
[[Category:ChangePageIncomplete]]
+
<!-- [[Category:ChangePageIncomplete]] -->
 
<!-- When your change proposal page is completed and ready for review and announcement -->
 
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
+
[[Category:ChangeAcceptedF27]]
 
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->  
 
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->  
 
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
 
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->

Latest revision as of 12:31, 1 February 2018

perl Package to Install Core Modules

Summary

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

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

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.