[Bioperl-l] Re: RPMs for Bioperl and GMOD

Allen Day allenday at ucla.edu
Fri Jan 28 20:15:31 EST 2005


On Fri, 28 Jan 2005, Hilmar Lapp wrote:

> Ah - I think I misunderstood Jason - he probably meant when installing
> the RPM you ignore certain dependencies? So why don't you allow people
> to ignore dependencies?

you can force rpms to ignore dependencies and install anyway.  if you're
trying to make a purely rpm-maintained system though, this leads to
missing package dependency problems further down the road... in my
experience force installing packages generally causes bigger problems than
it's worth.

> I'll stick to my guns here that I don't think this is a good approach,
> and not just due to DBD::Oracle. Why do you want somebody to install
> DBD::Pg if she doesn't have or intend to use PostgreSQL? What are you
> going to tell a sysadmin who wants a clean system? Why install all kinds
> of esoteric packages into somebody's perl installation without even
> asking, and even without some of them working?? Why does CPAN ask before
> it gets and installs a dependency?

if a user is fortunate enough to be in the position to have a system
administrator to do these installation and configuration tasks for them,
by all means they should do a source-based install or resolve the
dependencies in some other way.

but for the graduate student that just wants to get gbrowse up and running
to visualize some data he's working with, saving several hours interacting
with CPAN, make, gcc, autoconf, tweaking configuration files, etc in
exchange for installation of an extra module or two might sound like a
good deal.

-Allen


> My opinion anyways, and I'll shut up with this.
> 
> 	-hilmar
> 
> On Jan 28, 2005, at 4:49 PM, Allen Day wrote:
> 
> > okay, i've looked into this.  short answer: you cannot specify to omit
> > automatically determined dependencies without "lying" in the rpm 
> > specfile
> > and stating that a package provides a perl module that it, in fact, 
> > does
> > not.
> >
> > for example, i can add a statement to the bioperl-db rpm stating that 
> > it
> > provides perl(DBD::Oracle), but not actually add DBD/Oracle.pm to the
> > package.  there is a thread extensively discussing this aspect of the 
> > rpm
> > build system here:
> >
> > http://www.redhat.com/archives/rpm-list/2004-February/msg00083.html
> >
> > if i'm making a package for private use only, i don't mind doing this, 
> > but
> > if this package is to be for public consumption i don't want to lie 
> > about
> > what is and is not provided.  i take the same stance on all the other 
> > perl
> > modules in the bioperl dependency tree, including esoteric modules 
> > such as
> > Net::Jabber and GD::Graph3d.
> >
> > the only viable option i see here is to patch Oracle dependencies out 
> > of
> > bioperl-db.  that is what i will do until i have working Oracle and
> > perl-DBD-Oracle packages in-hand.
> >
> > -allen
> >
> >
> > On Fri, 28 Jan 2005, Hilmar Lapp wrote:
> >
> >> Like this statement or not, but I think installing all kinds of CPAN
> >> packages onto somebody's machine irrespective of whether somebody is
> >> ever going to use - or need - them, let alone them working in the 
> >> first
> >> place due to compiled code dependencies being absent, is a really 
> >> *bad*
> >> idea
> >>
> >> It basically defies the concept of modular packaging to begin with, 
> >> and
> >> sounds way too intrusive for my taste.
> >>
> >> Unless I misunderstand what Jason is saying then this is not even
> >> necessary and is in no way an inherent shortcoming that inevitably
> >> comes with RPMs. So unless I'm missing something here I understand 
> >> that
> >> Jason is saying you can have RPMs and still not litter your system 
> >> with
> >> DBD::blah or other modules for which you don't even have the client
> >> libraries installed, and still be able to install those at a later 
> >> time
> >> because the respective pieces of code have not been pruned (which I
> >> think is actually also a bad idea).
> >>
> >> 	-hilmar
> >>
> >> On Friday, January 28, 2005, at 11:50  AM, Allen Day wrote:
> >>
> >>>> Do you mean your RPM or bioperl-db on Oracle? I'm running the latter
> >>>> all the time.
> >>>
> >>> i mean the RPM.  it is the same as bioperl-db cvs head as of last
> >>> night.
> >>>
> >>>>> I'd also like someone with Oracle to help me make a DBD::Oracle 
> >>>>> rpm.
> >>>>> Having a DBD::Oracle RPM will allow me to leave the Oracle code in
> >>>>> Bioperl-DB.
> >>>>
> >>>> If installing the supposed DBD::Oracle is then a prerequisite for
> >>>> being
> >>>> able to install the rest, then you are taking the wrong path.
> >>>> DBD::Oracle itself will depend on the Oracle client libraries being
> >>>> installed which aren't even available on all platforms, aside from 
> >>>> the
> >>>> fact that installing those is beyond your control and involves
> >>>> downloading about 350MB from OTN.
> >>>>
> >>>> Frankly, I can't believe that there is no way to specify 
> >>>> dependencies
> >>>> that are optional. Why would you require all of DBD::mysql, DBD::Pg,
> >>>> and
> >>>> DBD::Oracle if all a persons wants is mysql?? All of these will link
> >>>> to
> >>>> compiled runtime libraries and why should a failure to install 
> >>>> DBD::Pg
> >>>> be of any concern to someone who wants to use mysql?
> >>>
> >>> the problem is something internal to the rpm installer -- it 
> >>> determines
> >>> perl library dependencies at install-time rather than requiring you 
> >>> to
> >>> explicitly specify perl packages in the rpm metafiles (aka specfile).
> >>>
> >>> so, for instance, if i i tried to install 
> >>> perl-Generic-Genome-Browser,
> >>> i
> >>> might get an error like:
> >>>
> >>>   requires perl(Bio::Root::Root)
> >>>
> >>> which could be removed by one of:
> >>>
> >>>   (1) installing the perl-bioperl package
> >>>   (2) installing bioperl from cvs
> >>>   (3) installing bioperl from cpan
> >>>
> >>> there may be a way to code into the metafile to ignore missing perl
> >>> dependencies detected in the installation process -- i need to look
> >>> into
> >>> this.
> >>>
> >>>> BTW DBD::Oracle is on CPAN. I thought that would make it easy to
> >>>> construct an RPM? (There's few if any binaries though - for a 
> >>>> reason.
> >>>> Compiling DBD::Oracle may be a charm on some but involve some major
> >>>> tweaking on other platforms. I've been there multiple times, I know
> >>>> what I'm talking about.)
> >>>
> >>> given what i've said above, if i had a DBD::Oracle perl module
> >>> installed,
> >>> it would prevent rpm from throwing errors about missing dependency
> >>> "perl(DBD::Oracle)".  however, i can't build DBD::Oracle into an rpm
> >>> because the make process links to the oracle headers and .so files.
> >>> the
> >>> DBD::Oracle can be made w/o having explicit dependencies on the 
> >>> oracle
> >>> binary install, so it would install on a machine that didn't have
> >>> oracle
> >>> installed (but wouldn't work).  so as far as a bioperl-db rpm goes,
> >>> here
> >>> are the options i'm looking into:
> >>>
> >>>   (1) get a binary perl-DBD-Oracle rpm built by someone with Oracle,
> >>>       leaving out the binary Oracle file dependency.  distribute
> >>>       bioperl-db from cvs as-is
> >>>   (2) patch Oracle classes out of bioperl-db as part of the rpm build
> >>>       process.  distribute modified bioperl-db.
> >>>   (3) modify rpm "detection of installed perl modules" functionality
> >>>       to have rpm explicitly ignore missing DBD::Oracle dependency.
> >>>
> >>> (1) and (2) will definitely work.  i don't yet know the feasibility 
> >>> of
> >>> (3).
> >>>
> >>> -allen
> >>>
> >>
> >>
> 


More information about the Bioperl-l mailing list