From Fedora Project Wiki
(→‎Current status: Package lists gathered)
(→‎Current status: Local test in progress)
Line 46: Line 46:
  
 
* Targeted release: [[Releases/25 | Fedora 25 ]]  
 
* Targeted release: [[Releases/25 | Fedora 25 ]]  
* Last updated: 2016-06-16
+
* Last updated: 2016-06-17
 
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
 
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
 
Bugzilla states meaning as usual:
 
Bugzilla states meaning as usual:
Line 69: Line 69:
 
* Gather all packages requiring or providing a Perl module: 3292 packages
 
* Gather all packages requiring or providing a Perl module: 3292 packages
 
* Gather all packages requiring libperl.so: 491 packages
 
* Gather all packages requiring libperl.so: 491 packages
 +
* Inject perl-devel and perl-generators into local copy: 3129 packages
 +
* Test locally modified packages
  
 
=== Items to be done ===
 
=== Items to be done ===

Revision as of 10:34, 17 June 2016


Removing Perl from Build Root

Summary

This change aims to removing Perl from minimal build root.

Owner

Current status

Completed items

Items in progress

  • Create tool for editing spec files
  • Enhance Fedora-Rebuild for editing source repositories [5]
  • Gather all packages requiring or providing a Perl module: 3292 packages
  • Gather all packages requiring libperl.so: 491 packages
  • Inject perl-devel and perl-generators into local copy: 3129 packages
  • Test locally modified packages

Items to be done

  • Add BuildRequires: perl-generators into all of them that do not build-require it yet.
  • Remove perl-generators dependency from rpm-build.
  • Check rebuilt packages for dependencies

Detailed Description

When building a package in the Fedora build system (Koji), a predefined set of packages together with their dependencies is always installed. This is called minimal build root and it occupies about 527 MB now. In order to make it smaller, perl-generators dependency will be removed from rpm-build package. This effectively removes Perl packages from minimal build root (about 20 MB now).

However, this will break building all Perl packages as almost no Perl package build-requires perl-generators and thus these packages will miss auto-generated dependencies between Perl modules (perl() namespace in RPM dependency symbols).

To prevent from havoc, Perl Packaging guidelines will be updated and all packages the deliver a Perl code will be updated to build-require perl-generators.

Benefit to Fedora

Build root without Perl will allow faster and safer package building.

It will save build time (less amount of packages have to be downloaded and installed to a builder), disk space (about 20 megabytes), maintenance (less code in the build root means lower risk of breakage). It will improve not only the already fast Koji. It's also good for packagers running mock tool on their machines far away from mirrors.

Scope

Every Perl package spec file will be modified in the master git branch.

  • Proposal owners:

Maintainers of rpm package to remove dependency on perl-generators. Perl maintainers to insert missing build-requirement on perl-generators into all Perl packages.

  • Other developers:

Owners of packages that fail to rebuild, mainly perl-sig users, will be asked using Bugzilla to fix their packages.

  • Release engineering:

Not involved.

  • Policies and guidelines:

Perl packaging guidelines will be updated to mandate dependency on perl-generators for Perl packages.

Upgrade/compatibility impact

There should no visible change to package compatibility in Fedora. It's possible that some old EPEL targets do not have standalone perl-generators, therfore maintainers will have to adjust their spec files when merging them from Fedora to EPEL.

How To Test

Compare Requires and Provides of Perl packages that were rebuilt after removing Perl from the build root. They should be the same.

User Experience

There should not be any remarkable change in user experience.

Dependencies

There is more than 2800 packages depending on perl. None of them are expected to break. Finishing this change can be endangered only by change in minimal build root packages that would gained a new dependency on Perl. Not finishing this change should not affect user experience.

Contingency Plan

We reintroduce rpm-build run-time dependency on perl-generators.

  • Contingency deadline: branching Fedora 25 from Rawhide.
  • Blocks release? No.

Documentation

Release Notes