From Fedora Project Wiki

Perl: Replace MODULE_COMPAT by macro

Summary

The versioned perl(:MODULE_COMPAT_XXX) (provided by perl-libs) will be required only by multi-arch packages. For those packages, we need to ensure that the packages will use the right libperl.so for the Perl used. The noarch packages will depend on non-version perl-libs.

Owner

Current status

  • Targeted release: Fedora Linux 38
  • Last updated: 2022-11-07
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Completed items

Items in progress

  • Add %perl_require_compat macro to perl-srpm-macros in F38
  • Add %perl_require_compat macro to perl-srpm-macros in F37
  • Add %perl_require_compat macro to perl-srpm-macros in F36
  • Add %perl_require_compat macro to perl-srpm-macros in F35
  • Update Fedora Packaging Guidelines for Perl
  • Replace perl(:MODULE_COMPAT_XXX) to %perl_require_compat run-time dependency in all F38 spec files (3335)

Detailed Description

The macro %perl_require_compat will be defined in the rpm perl-srpm-macros.

%perl_require_compat %[ "%{_target_cpu}" == "noarch" ? "perl-libs" : "%{!?perl_version:perl-libs}%{?perl_version:perl(:MODULE_COMPAT_%{perl_version})}" ]

Feedback

Benefit to Fedora

It will simplify the rebuild and reduce the number of packages which have to be rebuild. It should currently be enough to rebuild only multi-arch packages and those that are part of the Perl itself (dual-life packages). Here we need to ensure that the packages will use the right libperl.so for the Perl used.

Scope

  • Proposal owners:
  • Other developers:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

How To Test

User Experience

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

N/A (not a System Wide Change)

Release Notes