= Proposed System Wide Change: Removing Perl from Build Root = https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl
Change owner(s): * Jitka Plesníková <jplesnikATredhatDOTcom> * Petr Písař <ppisarATredhatDOTcom>
This change aims to removing Perl from minimal build root.
== 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 removed 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.
== 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.
On Fri, Apr 15, 2016 at 01:49:05PM +0200, Florian Weimer wrote:
On 04/15/2016 11:34 AM, Jan Kurik wrote:
This change aims to removing Perl from minimal build root.
What's the canonical dependency to add if you run simple Perl scripts during build? Just this?
BuildRequires: perl
Thanks, Florian
Yes. Plus any perl dependencies they might have. Look for `use' and `require' statements in them.
P
On 2016-04-15, Florian Weimer fweimer@redhat.com wrote:
On 04/15/2016 11:34 AM, Jan Kurik wrote:
This change aims to removing Perl from minimal build root.
What's the canonical dependency to add if you run simple Perl scripts during build? Just this?
BuildRequires: perl
Yes. If you only need to run a Perl script that does not use any Perl modules, "perl" is enough.
If the script uses some modules like "use ExtUtils::MakeMaker;" or even "use strict;" you have to specify them also as "perl(ExtUtils::MakeMaker)" or "perl(strict)". There is an excelent "tangerine" tool can help you to find them in the script. It's more advanced (and slower and bigger) then the generarators called from rpmbuduild.
-- Petr
On Fri, Apr 15, 2016 at 5:34 AM, Jan Kurik jkurik@redhat.com wrote:
= Proposed System Wide Change: Removing Perl from Build Root = https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl
Change owner(s):
- Jitka Plesníková <jplesnikATredhatDOTcom>
- Petr Písař <ppisarATredhatDOTcom>
This change aims to removing Perl from minimal build root.
== 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 removed Perl packages from minimal build root (about 20 MB now).
Can you elaborate on why a smaller buildroot is desirable? This description is stating the what of the proposal, and partly the how, but not the why.
josh
On 2016-04-15, Josh Boyer jwboyer@fedoraproject.org wrote:
Can you elaborate on why a smaller buildroot is desirable? This description is stating the what of the proposal, and partly the how, but not the why.
Because it saves build time (less amount of package have to be download and installed to a builder), disk space (I think you can find it in the original text), maintenance (less code in the build root means lower risk of breakage).
It's not only about fast Koji. It's also about packagers running mock tool on their machines far away from mirrors.
-- Petr
On Fri, Apr 15, 2016 at 9:02 AM, Petr Pisar ppisar@redhat.com wrote:
On 2016-04-15, Josh Boyer jwboyer@fedoraproject.org wrote:
Can you elaborate on why a smaller buildroot is desirable? This description is stating the what of the proposal, and partly the how, but not the why.
Because it saves build time (less amount of package have to be download and installed to a builder), disk space (I think you can find it in the original text), maintenance (less code in the build root means lower risk of breakage).
It's not only about fast Koji. It's also about packagers running mock tool on their machines far away from mirrors.
Fantastic. Can you put that in the Change page itself?
josh
On 2016-04-15, Josh Boyer jwboyer@fedoraproject.org wrote:
On Fri, Apr 15, 2016 at 9:02 AM, Petr Pisar ppisar@redhat.com wrote:
On 2016-04-15, Josh Boyer jwboyer@fedoraproject.org wrote:
Can you elaborate on why a smaller buildroot is desirable? This description is stating the what of the proposal, and partly the how, but not the why.
Because it saves build time (less amount of package have to be download and installed to a builder), disk space (I think you can find it in the original text), maintenance (less code in the build root means lower risk of breakage).
It's not only about fast Koji. It's also about packagers running mock tool on their machines far away from mirrors.
Fantastic. Can you put that in the Change page itself?
I added it to Benefit to Fedora section.
-- Petr