Bug 1158860 - Please drop dependency on perl-generators from rpm-build
Summary: Please drop dependency on perl-generators from rpm-build
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: rpm
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL: http://lists.fedoraproject.org/archiv...
Whiteboard:
Depends On:
Blocks: 1332102
TreeView+ depends on / blocked
 
Reported: 2014-10-30 12:00 UTC by Vít Ondruch
Modified: 2016-07-26 05:26 UTC (History)
11 users (show)

Fixed In Version: rpm-4.13.0-0.rc1.40.fc25
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-26 05:26:32 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Vít Ondruch 2014-10-30 12:00:31 UTC
Description of problem:
Please drop dependency on perl-generators from rpm-build [1]. This dependency is useful just for Perl packages and nothing else.


Version-Release number of selected component (if applicable):
$ rpm -q rpm-build
rpm-build-4.12.0.1-3.fc22.x86_64


Actual results:
With the path [2] applied

$ rpm -q -R rpm-build | grep perl-generators
perl-generators


Expected results:
$ rpm -q -R rpm-build | grep perl-generators


Additional info:
Please note that this is probably the last reason, why Pearl is pulled into minimal build root, since the last but one was solved by this upstream [2] commit.

According to Perl maintainers (in CC), this might break several packages:

# repoquery --whatrequires 'perl(*)' --source | grep -v 'perl-'| sort -u | wc -l
 618

But on the other hand it would prevent broken buildroot on ARM machines, as is now for example.

Also note that no other dynamic language pulls their dependency generators into minimal buildroot and Perl should be no exception.

This is the start of discussion. If you agree, I'd love to announce this intention on fedora-devel and probably fill the Change proposal for F22, if deemed necessary.


[1] http://pkgs.fedoraproject.org/cgit/rpm.git/tree/rpm.spec#n203
[2] http://rpm.org/gitweb?p=rpm.git;a=commitdiff;h=d43bbad1f69376ba938a17c3e98d38245984c704

Comment 1 Vít Ondruch 2014-10-30 12:01:27 UTC
s/ARM/PPC/

Comment 2 Panu Matilainen 2014-10-30 12:54:58 UTC
(In reply to Vít Ondruch from comment #0)
> Please note that this is probably the last reason, why Pearl is pulled into
> minimal build root, since the last but one was solved by this upstream [2]
> commit.

This is a misunderstanding. The commit in [2] only removes an alternative perl generator which has NEVER been used by anybody, so it has zero impact on anything at all. Rpm upstream still includes and uses perl.req and perl.prov scripts in "factory defaults" setup and is likely to continue doing so for quite some time. Fedora rpm doesn't include the upstream perl generators since last summer though.

> 
> Also note that no other dynamic language pulls their dependency generators
> into minimal buildroot and Perl should be no exception.

Python generator is in the minimal buildroot. However that's different in that it doesn't involve the actual interpreter or its libs. 

> 
> This is the start of discussion. If you agree, I'd love to announce this
> intention on fedora-devel and probably fill the Change proposal for F22, if
> deemed necessary.

From technical POV I'm not opposed at all, on the contrary. However you need to keep in mind that this would be breaking a 15+ year old practise. So whether that practise makes sense or not, changing it is going to cause a fair amount of pain and grief for ... largely just "sake of correctness".

So... I personally will NOT touch that dependency unless there's an explicit request to do so from the perl SIG. Somebody needs to be prepared to deal with the inevitable mass-fallout and it sure as hell is not going to be me, not for this.

Comment 3 Vít Ondruch 2014-10-30 13:05:54 UTC
(In reply to Panu Matilainen from comment #2)
> (In reply to Vít Ondruch from comment #0)
> > Please note that this is probably the last reason, why Pearl is pulled into
> > minimal build root, since the last but one was solved by this upstream [2]
> > commit.
> 
> This is a misunderstanding. The commit in [2] only removes an alternative
> perl generator which has NEVER been used by anybody, so it has zero impact
> on anything at all.

I agree with you that it does nothing, but since it contains perl script with perl shebang, you can compare the requires without patch:

# rpm -q -R rpm-build | grep perl
/usr/bin/perl
perl(File::Basename)
perl(File::Temp)
perl(Getopt::Long)
perl(Thread::Queue)
perl(threads)
perl-generators

and with the patch applied:

# rpm -q -R rpm-build | grep perl
perl-generators

Comment 4 Panu Matilainen 2014-10-30 13:22:46 UTC
Um. I dont know what rpm version you are looking at, but Fedora rpm has not shipped any of those since June. See http://pkgs.fedoraproject.org/cgit/rpm.git/commit/?id=b9e9858cd09cc37060b6443ce52fcaf4af69e095 which has:

# These live in perl-generators now
rm -f $RPM_BUILD_ROOT/%{rpmhome}/{perldeps.pl,perl.*}
rm -f $RPM_BUILD_ROOT/%{_fileattrsdir}/perl*

So the upstream changes have absolutely zero impact for Fedora. Now lets concentrate on the subject at hand please.

Comment 5 Petr Pisar 2014-10-30 13:35:41 UTC
I'm not against. I even could implement it. But it's a Fedora system wide change. It requires changing packaging guidelines, thus FPC agreement.

Comment 6 Vít Ondruch 2014-10-30 13:42:22 UTC
(In reply to Panu Matilainen from comment #4)
> Um. I dont know what rpm version you are looking at

# rpm -q rpm-build -R | grep perl
/usr/bin/perl
perl(File::Basename)
perl(File::Temp)
perl(Getopt::Long)
perl(Thread::Queue)
perl(threads)
perl-generators

# rpm -q rpm-build
rpm-build-4.12.0.1-2.fc22.x86_64

> Now lets concentrate on the subject at hand please.

Definitely :)

(In reply to Petr Pisar from comment #5)
> I'm not against. I even could implement it. But it's a Fedora system wide
> change. It requires changing packaging guidelines, thus FPC agreement.

Thanks. I can help lobbying (at minimum). Would you prefer me to announce this proposal on fedora-devel in adwance (e.g. right now)?

Comment 7 Petr Pisar 2014-10-30 13:49:16 UTC
(In reply to Vít Ondruch from comment #6)
> Thanks. I can help lobbying (at minimum). Would you prefer me to announce
> this proposal on fedora-devel in adwance (e.g. right now)?

You can try it. I will bury your bones if wolves leave anything.

Comment 8 Jaroslav Reznik 2015-03-03 16:27:11 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22

Comment 9 Florian Festi 2016-02-26 11:57:38 UTC
Is there still someone working on this? Or can we just close it as WONTFIX?

Comment 10 Petr Pisar 2016-02-26 12:54:55 UTC
I'm working on it. Very probably it will be resolved in Fedora 25. Please keep the dependency there for now.

Comment 11 Petr Pisar 2016-05-06 07:36:14 UTC
FESCo accepted removing Perl from minimal build root. FPC approved new Perl guidelines but has not yet announced them. After the announcement I will update and test all affected Perl spec files locally. Then I will push the changes into dist-git.

Removing the Perl dependency from the rpm-build will be the last step.

Because we rebase perl next week, I will work on it after the rebase. So be patient and don't remove the dependency now. I will let you know when the right time comes.

Comment 12 Vít Ondruch 2016-05-06 07:44:07 UTC
Good news 👍

Thx for pushing this forward.

Comment 13 Petr Pisar 2016-06-24 11:02:09 UTC
RPM maintainers, it's time to remove "Requires: perl-generators" from rpm-build package. See <https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl>.

Please remove the dependency. If you are busy, I can do it instead of you.

The removal will cause warnings about missing "perl" when expanding these macro definitions from /usr/lib/rpm/macros:

%perl_sitearch  %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch)
%perl_sitelib   %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)
%perl_vendorlib  %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)
%perl_archlib   %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
%perl_privlib   %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)

They are harmless. Previous rpm maintainer wanted to keep the macros in rpm. Do you share the idea or should they be moved to perl-macros package (perl source package)?

Comment 14 Petr Pisar 2016-06-24 11:04:28 UTC
(In reply to Petr Pisar from comment #13)
> The removal will cause warnings about missing "perl" when expanding these
> macro definitions from /usr/lib/rpm/macros:
> 
> %perl_sitearch  %(eval "`%{__perl} -V:installsitearch`"; echo
> $installsitearch)
> %perl_sitelib   %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
> %perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo
> $installvendorarch)
> %perl_vendorlib  %(eval "`%{__perl} -V:installvendorlib`"; echo
> $installvendorlib)
> %perl_archlib   %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
> %perl_privlib   %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)
> 
> They are harmless. Previous rpm maintainer wanted to keep the macros in rpm.
> Do you share the idea or should they be moved to perl-macros package (perl
> source package)?

If we decide to move them, then "__perl" macro should follow them:

%__perl                 /usr/bin/perl

Comment 15 Petr Pisar 2016-07-08 12:44:59 UTC
Any progress? If you don't have time, I can remove the dependency myself.

Comment 16 Petr Pisar 2016-07-18 11:16:40 UTC
It seems you are busy. I will push the change today or tomorrow.

Comment 17 Fedora End Of Life 2016-07-19 12:20:18 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 18 Petr Pisar 2016-07-26 05:26:32 UTC
We fixed few packages that used perl to control build-requires. I think nothing spectacular happened in last week since the perl was removed.


Note You need to log in before you can comment on or make changes to this bug.