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

Hilmar Lapp hlapp at gnf.org
Fri Jan 28 20:03:14 EST 2005


BTW,

%define _use_internal_dependency_generator 0

is not an option?

	-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
>>>
>>
>>
-- 
-------------------------------------------------------------
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
-------------------------------------------------------------



More information about the Bioperl-l mailing list