Bug 741777

Summary: Bogus requires on perl-devel from perl-tk
Product: [Fedora] Fedora Reporter: Nicolas Chauvet (kwizart) <kwizart>
Component: perl-TkAssignee: Ralf Corsepius <rc040203>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: andreas.bierfert, iarnell, perl-devel, rc040203
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: perl-Tk-804.029-4.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-05 01:25:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Filter perl(ExtUtils::MakeMaker) none

Description Nicolas Chauvet (kwizart) 2011-09-27 20:55:11 UTC
Description of problem:
Installing perl-tk will requires perl(ExtUtils::MakeMaker) that will trigger perl-devel installed on runtime perl environnement.


Version-Release number of selected component (if applicable):
perl-Tk-804.029-3.fc16.x86_64
Only tested on f16

How reproducible:
always

Steps to Reproduce:
1. install perl-Tk
  
Actual results:
perl-devel is installed

Expected results:
perl-devel shouldn't be installed.

Additional info:
# rpm -e perl-devel perl-ExtUtils-ParseXS perl-ExtUtils-MakeMaker perl-Test-Harness
perl(ExtUtils::MakeMaker) is needed by (installed) perl-Tk-804.029-3.fc16.x86_64
So that's the perl module that need to be filtered

Comment 1 Nicolas Chauvet (kwizart) 2011-10-10 21:35:01 UTC
Created attachment 527333 [details]
Filter perl(ExtUtils::MakeMaker)

Patch tested to work with this scratch build for dist-f16
http://koji.fedoraproject.org/koji/taskinfo?taskID=3420279
http://koji.fedoraproject.org/koji/getfile?taskID=3420279&name=build.log

Comment 2 Ralf Corsepius 2011-10-11 04:21:27 UTC
(In reply to comment #0)

> Additional info:
> # rpm -e perl-devel perl-ExtUtils-ParseXS perl-ExtUtils-MakeMaker
> perl-Test-Harness
> perl(ExtUtils::MakeMaker) is needed by (installed)
> perl-Tk-804.029-3.fc16.x86_64
> So that's the perl module that need to be filtered

I disagree - This would be a mistake.

perl-Tk uses MakeMaker:
# grep -R MakeMaker usr/
usr/lib/perl5/vendor_perl/Tk/MMutil.pm:use ExtUtils::MakeMaker;

So, rpm is right to add a dependency on perl(ExtUtils::MakeMaker). If versions on earlier Fedoras didn't, this would be a bug.

I.e. if this dependency shall be removed, the appropriate step would be to move Tk/MMutil.pm into a subpackage.

Comment 3 Ralf Corsepius 2011-10-12 16:26:03 UTC
Any objections to comment#2 ?

Shouldn't there be any objections to splitting out Tk/MMutil.pm into a subpackage within the next couple of hours, I'll apply a patch implementing this to rawhide and f16, tomorrow.

Comment 4 Iain Arnell 2011-10-12 17:01:54 UTC
Only a half-hearted objection - I don't care too much about perl-Tk. 

But Tk::MMutil is nothing more than a Tk-specific EU::MM extension. Nothing explicitly requires or buildrequires it. Only a couple of perl-Tk packages (perl-Tk-ProgressBar-Mac and perl-Tk-TableMatrix) expect it to be there at build time due to BR perl(Tk) - and however you resolve this, both would need to be updated as a result (unless you do nothing, of course).

I think it would be slightly more obvious for builds to fail because EU::MM is missing rather than Tk::MMutil is missing. Pretty much everyone knows what to do if EU::MM is missing at build time (just BR EU::MM). Missing Tk::MMutil could easily lead to "WTF is Tk::MMutil?" <check on CPAN> "WTF? It's part of Tk, and perl-Tk is installed, but Tk::MMutil is missing!!".

Bottom line, yes, perl-Tk should strictly require EU::MM. But for ~99.9% of users, it doesn't actually need to.

Comment 5 Ralf Corsepius 2011-10-13 04:43:54 UTC
(In reply to comment #4)
> Only a half-hearted objection - I don't care too much about perl-Tk. 
> 
> But Tk::MMutil is nothing more than a Tk-specific EU::MM extension. Nothing
> explicitly requires or buildrequires it.
Right - Minor packaging bugs.

> Only a couple of perl-Tk packages
> (perl-Tk-ProgressBar-Mac and perl-Tk-TableMatrix) expect it to be there at
> build time due to BR perl(Tk)
Thanks for pointing out these 2 packages.

Besides these 2, I haven't found any further packages using perl(Tk/MMutil), yet (But I am still checking).

> - and however you resolve this, both would need
> to be updated as a result (unless you do nothing, of course).
Right - Such packages will be facing FTBS's during the next FTBS round or the next perl mass rebuild. 

> I think it would be slightly more obvious for builds to fail because EU::MM is
> missing rather than Tk::MMutil is missing. Pretty much everyone knows what to
> do if EU::MM is missing at build time (just BR EU::MM). Missing Tk::MMutil
> could easily lead to "WTF is Tk::MMutil?" <check on CPAN> "WTF? It's part of
> Tk, and perl-Tk is installed, but Tk::MMutil is missing!!".
Well, isn't that the usual "devel<->runtime" complaint? Nothing to worry much about, IMO.

> Bottom line, yes, perl-Tk should strictly require EU::MM.
I do not agree. No "mere run-time module" should require EU::MM nor should any of these require perl-devel. In case of perl(Tk), it's only Tk::MMutil which pulls in EU::MM and perl-devel.

That said, to me, splitting out Tk/MMutil, is just an ordinary "devel<->runtime" package split with all the "usual issues" attached.

Comment 6 Fedora Update System 2011-10-13 07:29:17 UTC
perl-Tk-ProgressBar-Mac-1.2-9.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/perl-Tk-ProgressBar-Mac-1.2-9.fc16

Comment 7 Fedora Update System 2011-10-13 08:53:52 UTC
perl-Tk-TableMatrix-1.23-12.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/perl-Tk-TableMatrix-1.23-12.fc16

Comment 8 Ralf Corsepius 2011-10-13 09:49:32 UTC
I am delaying splitting out Tk::MMutil into a perl-Tk-MMutil subpackage, because something else has caught my attention:

perl-Tk contains further modules, I believe to be "devel modules" in particular
Tk/MakeDepend.pm and Tk/install.pm.

Provided this, I am inclined to think it would be better to move Tk/MakeDepend, Tk/install and Tk/MMutil into a perl-Tk-devel sub package, instead of just splitting out Tk/MMutil

Opinions, comments?

Comment 9 Fedora Update System 2011-10-21 17:17:00 UTC
perl-Tk-804.029-4.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/perl-Tk-804.029-4.fc16

Comment 10 Fedora Update System 2011-10-22 00:10:30 UTC
Package perl-Tk-804.029-4.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing perl-Tk-804.029-4.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2011-14700
then log in and leave karma (feedback).

Comment 11 Fedora Update System 2011-10-25 03:26:38 UTC
perl-Tk-TableMatrix-1.23-12.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2011-10-25 03:42:23 UTC
perl-Tk-ProgressBar-Mac-1.2-9.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 13 Fedora Update System 2011-11-05 01:25:50 UTC
perl-Tk-804.029-4.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.