Bug 741777 - Bogus requires on perl-devel from perl-tk
Summary: Bogus requires on perl-devel from perl-tk
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: perl-Tk
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ralf Corsepius
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-09-27 20:55 UTC by Nicolas Chauvet (kwizart)
Modified: 2011-11-05 01:25 UTC (History)
4 users (show)

Fixed In Version: perl-Tk-804.029-4.fc16
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-05 01:25:50 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Filter perl(ExtUtils::MakeMaker) (1.33 KB, patch)
2011-10-10 21:35 UTC, Nicolas Chauvet (kwizart)
no flags Details | Diff

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.


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