On Fri, 30 Jan 2004, Tim Mooney wrote: > In regard to: Re: how to change dependencies?, James Olin Oden said (at...: > > >On Fri, 30 Jan 2004, Marten Lehmann wrote: > > > >> Hello, > >> > >> I'm trying to build a .rpm for the perl-module SOAP::Lite. This module > >> offers SOAP-interfaces for different protocols, like HTTP, SMTP, POP3 > >> etc. Even very rarely used protocols like Jabber and MQSeries are > >> offered. My problem is, that I don't need to use Jabber and I don't have > >> MQSeries. During the configuration, I can disable support for both > >> features. But when the rpm is build and I'm trying to install it, I get > >> > >> error: Failed dependencies: > >> perl(MIME::Lite) is needed by perl-SOAP-Lite-0.55-1 > >> perl(MQClient::MQSeries) is needed by perl-SOAP-Lite-0.55-1 > >> perl(MQSeries) is needed by perl-SOAP-Lite-0.55-1 > >> perl(MQSeries::Message) is needed by perl-SOAP-Lite-0.55-1 > >> perl(MQSeries::Queue) is needed by perl-SOAP-Lite-0.55-1 > >> perl(MQSeries::QueueManager) is needed by perl-SOAP-Lite-0.55-1 > >> perl(Net::Jabber) >= 1.0021 is needed by perl-SOAP-Lite-0.55-1 > >> > >> I didn't set any dependencis, rpmbuild seems to find it itself within > >> the %install-macro. How can I change this or how can I disable automatic > >> dependency checking? > >> > >It sure does and you don't want to change this. Your scripts do use these > >perl modules, and so they do depend on them. > > I rarely find myself disagreeing with you, but this is one of the times. > I have encountered times when the auto dependency stuff picks up instances > of > > use Foo::Bar; > > inside a perldoc section. > Clearly a bug in the perl auto-dependency stuff. > There are also lots of cases where "dependency" is too strong a word. > For example, I've installed and used the perl-libwww module for years, > and it wasn't until trying to build it on Red Hat ES 3 that I discovered > that there are parts of it that need HTML::Parser and Font::ATM to work. > There are also perl modules that can detect, at runtime, whether a module > is present, and work around its abscence, sometimes with reduced > functionality. Yeah, I understand. I guess my view point was expressed to strongly. I do think that in general letting the autodepency stuff do its thing generally makes for better packages. Its been Jeff's view point that most of this dependency stuff should really be automated as much as possible, as its just too easy for us mere mortals to get all this stuff wrong. That being said, there needs to be a cleaner way to give hints to the auto-dependency stuff so you can effectively override some of its decisions. Your point about the runtime binding of perl modules (a trick I use from time to time) is perfect example of why such a feature would be usefull. OTH, this is really easily worked around by saying that your package provides the thing that the auto-dependency stuff saw as a requirement. I realize it is a hack, but I prefer this hack than completely disabling the autodendency creation. I can't tell you the number of times I have been feverishly putting together some new code, forgot to put a requirement in to the spec file, only to have rpm pick it up for me automatically. I am actually a pretty anal person, so if this helps me I gotta believe it helps others, so again I generally think completely turning off the auto-dependency generation in rpm is a very bad thing. > > > Its easy to grab the cpan > >modules you are depending on, and then run them against cpanflute2 (found > >in the RPM::Specfile cpan module), > > That's fine for simple modules with modest requirements, but it gets to > be a huge PITA for some of the more esoteric modules. Yeah, like the perl implementation of SSH (Oi Vey!). Course when I was go through that excercise in insanity, my thinking was I did not know exactly what functionality would be needed by the developers requesting it so I figured hunting down the 30+ cpan modules was "worthwhile". >I've spent entire > evenings tracking down ever growing chains of perl module dependencies, > just to get one module installed that only needs its dependencies for 10% > of optional functionality. > I have been there too. > I think auto dependency detection is a good thing, it's just that the > way perl handles modules and the "optional but recommended" nature of > some module dependencies doesn't mesh well with RPM's notion of > "required". > OK, sounds like we are in agreement. I think what really needs to happen to make it better is to do what the original poster suggested and provide a way to tell the auto-dependency stuff, that you may think I need this but I don't. Somebody right a bugzilla report (-; Cheers...james > Tim > _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list