Re: why is Padre dependent on Win32::API on Fedora ? [was Re: Broken dependencies: perl-Padre]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- "Dave Cross" <dave@xxxxxxxxxxx> wrote:

> On 02/09/2010 08:10 AM, Ralf Corsepius wrote:
> > On 02/08/2010 06:10 PM, Gabor Szabo wrote:
> >> Hi,
> >>
> >> I saw these bug reports starting to flow in two days ago,
> >> just in time to mention them during my talk on FOSDEM.
> >>
> >> The problem seems to be that the rpm builder extracted the list of
> >> dependencies of Padre from its source code. This did not notice
> that
> >> Win32::API is use only when running on Windows and thus it was
> >> included in the list of dependencies.
> >>
> >> The right way would be to use the list of dependencies as supplied
> in
> >> the META.yml file in the Padre tarbal.
> >>
> >> Dave Cross blogged about this probably explaining in a much better
> way
> >> than I did:
> >>
> http://perlhacks.com/2010/02/building-rpms-from-cpan-distributions.php
> > 
> > Though I partially agree with Dave on his "rpm does something 
> > brain-dead" statement, I think his reasoning suffers from a thinko:
> > 
> > <cite>
> > And that's, of course, where the RPM builders should be going to get
> a 
> > list of dependencies. META.yml contains the list of other modules
> that 
> > the author wants the module to depend on. This should be seen as the
> 
> > definitive list. Of course, there might be errors in that list - but
> 
> > that should be addressed by raising a bug against the module.
> > </cite>
> > 
> > IMO, he misses that what a perl-module's author thinks he wants "his
> 
> > module to depend on" is largely irrelevant to Fedora.
> > What is relevant to Fedora, is "what the module actually uses" and
> what 
> > we _want_ it to actually use.
> > 
> > 
> > These sets overlap, but ... they are not identical.
> > 
> > Example: Putting bugs in Meta.yml aside (they are not so uncommon as
> 
> > people might believe), a classical corner-case in rpm-packaging 
> > perl-modules are "Perl required'ed modules" (i.e. optional
> modules).
> 
> If a module is optional, then it's not required and shouldn't be
> listed
> as a dependency. Do you have an example that illustrates your point?

Quite often is missing build requirements for modules e.g. Test::More,
but I can't think of any package now.
> 
> Going back to the Plack example I used in my blog post. There are a
> huge
> number of modules that Plack can make use of it they are installed on
> your system. But if they aren't, Plack will still work fine - but it
> may
> be that some functions won't be available. If, however, you
> subsequently
> install the missing modules, this functions become available to you.
> 
> In my opinion, these modules are not essential and shouldn't be
> listed
> as dependencies. I suspect this is where our philosophical
> differences
> will lie.
> 
> > To us, they often are not optional, but mandatory (rpm's
> "Requires:"), 
> > because rpm doesn't have a concept of "optional requires".
> 
> META.yaml has Requires and BuildRequires lines. These map directly
> onto
> the same concepts in RPM. META.yml also has a (little-used)
> Recommends
> lines. I don't think RPM has a concept like that.
> 
No, rpm is missing so-called soft-dependencies and it is on decision of
packager.
> I can think of two corner cases where META.yml doesn't (yet) do the
> right thing.
> 
> 1/ There are cases where certain modules are required in certain
> circumstances. For example, Padre needs Win32::API if it's running on
> Windows. META.yml doesn't have a way to model those kinds of
> "optional
> dependencies".
> 
> 2/ Some modules require any one from a set of dependencies. For
> example
> JSON::Any requires one from the list JSON::XS, JSON and JSON::DWIW.
> Clearly, each system only needs one of those installed, but you can't
> list any of them as a dependency. And even if you could, would RPM
> support this model?
> 
> So yes, there are still a few issues with META.yml. But, in general,
> I
> think it gives a better starting point than the current behaviour of
> looking for all of the "use" (and "require") statements.
> 
> > Finally: I question your claim of "META.yml" to be always right.
> 
> I know that META.yml isn't always going to be right. But when it
> isn't,
> that should be treated as a bug in the upstream distribution and
> reported back to the author - perhaps including a patch.
> 
> (Yes, this opens a whole new can of worms about unresponsive or
> missing
> CPAN authors. This is something that the Perl community is aware of
> and
> is planning to address.)
> 
> Cheers,
> 
> Dave...
> --
> Fedora Extras Perl SIG
> http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
> perl-devel mailing list
> perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
> https://admin.fedoraproject.org/mailman/listinfo/perl-devel
--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/perl-devel

[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite Information]
  Powered by Linux