tech-pkg archive

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

Re: Requirements for specifying dependencies on libraries



Am 15.03.2014 um 00:36 schrieb Greg Troxel <gdt%ir.bbn.com@localhost>:

> 
> Jens Rehsack <rehsack%gmail.com@localhost> writes:
> 
>> since I currently attend the annual Perl Q&A Hackathon, where
>> traditionally most important toolchain people sit together and talk
>> about ways to improve Perl and CPAN, we talked about packaging and how
>> to support that.
>> 
>> We come to the conclusion, that in the machine readable meta
>> information a field shall be provided which names the requirements of
>> external libraries (eg. libfile.so, libstatgrab.so, libfetch.so,
>> libssl.so ...). This name should be in a canonical way.
>> 
>> Here comes the question: from pkgsrc point of view, how such a
>> canonical name should look like?
> 
> The notion of specifying libraries can come in two ways.  One is
> relative to a source package, in terms of what it needs, and there it’s

I mean in terms of developer - the person who writes that down before
uploading a package upstream. So it could look like:
{
   "abstract" : "Provide the stuff missing in List::Util“,
   "prereqs" : {
      "runtime" : {
         "recommends" : {
            "perl" : "5.018001"
         },
         "requires" : {
            "Sub::Exporter" : "0",
            "XSLoader" : "0",
            "perl" : "5.008001"
         },
         "linking" : {
            "libgcrypto.la" : "20"
         }
      }
   }
}

> about API.   The other is about particular shlib versions, afer a
> package has been built.  Then, I can see three ways, and (picking
> libgcrypt without loss of generality), I can see:
> 
>  /usr/pkg/lib/libgcrypto.la
>  /usr/pkg/lib/libgcrypto.so.20
>  /usr/pkg/lib/libgcrypto.20.dylib
> 
> The first one seems to be present on most systems, but only works for
> packages that use libtool.  And the filename doesn't have the version,
> but it's in the file.  The second works on normal computers (with an ELF
> bias, how quickly we don't even remember when an a.out library looked
> like in detail) and the last one on Macs,
> 
> So if you're really talking about ABI of a built package, then I think
> it's either so or dylib.
> 
> Are perl modules configured to dlopen particular shlib versions?  Really
> the version number is arbitrary per OS and can be changed by packaging,
> so that seems somewhat fraught.

It’s more a question of proving before - to have an option to reject
versions which lack requirements (there is no "must“ - you always can
specify 0).

Cheers
-- 
Jens Rehsack
rehsack%gmail.com@localhost







Home | Main Index | Thread Index | Old Index