Hi David,
On May 6, 2007, at 10:39 PM, David R. Morrison wrote:
>
> On May 6, 2007, at 9:09 AM, Remi Mommsen wrote:
>
>> Hi,
>>
>> I have a package (root5) which builds many shlibs and has different
>> variants. Depending on the variant, some shlibs are built or not. So
>> far, I just listed all possibly built libraries in the Shlibs field.
>> The latest (cvs head) version of fink complains now about the missing
>> libraries listed in the shlibs field:
>> Error: Shlibs field specifies /sw/lib/root/libEGPythia6.5.dylib, but
>> it does not exist!
>> Error: Shlibs field specifies /sw/lib/root/libG4root.5.dylib, but it
>> does not exist!
>> Error: Shlibs field specifies /sw/lib/root/libHbook.5.dylib, but it
>> does not exist!
>>
>> How do I handle this situation?
>>
>> TIA,
>> Remi
>
> Hi Remi.
>
> The basic problem here is that we want a reliable mapping between
> "install-name and compatibility version of a dynamic library" and
> "what fink package installs it".
>
> I haven't looked at the package to see what your variant structure
> is, but presumably there is some core collection of dylib files
> which are built for all variants, and then some extra ones which
> only occur in some variants?
Correct.
> I see two possible strategies for handling this, but I'm willing to
> be convinced that there are others I haven't thought of.
>
> 1) The contents of your Shlibs field has to depend on the variant.
> This is unpleasant, because we hadn't anticipated it and fink's
> variant code can't handle this smoothly. It would require
> separate .info files for the various variants. (It also has the
> unfortunate property that there are several different packages
> which could be used to provide a given dylib, so these should all
> conflict/replace each other, which gets messy where shared library
> packages are involved.)
>
> 2) A basic package would provide the dylibs that are in common for
> all variants, and then the variant packages would build other
> splitoffs with other dylibs in them (as needed). The disadvantage
> of this is that people may have to compile things twice. You would
> probably also need separate .info files.
Having separate info files would be quite messy. Currently, there are
8 combinations built from one info file. I don't want to build all
extensions by default (and split them into split-offs) as these
extensions pull in other huge packages which only a few people
actually need.
> Can anybody think of another strategy?
Would it be possible to extend the variant syntax to allow it also in
the shlibs field, i.e. one could put something like
Shlibs: <<
%p/lib/root/libRooFit.5.dylib 5.0.0 %n
(>=5.02.00-1)
(%type_pkg[-qt]) %p/lib/root/libQtRoot.5.dylib 5.0.0 %n
(>=5.15.04-2)
<<
where the first library is available in all variants, and the second
only in the '-qt' variants?
Remi
--
… there are known knowns; there are things we know we know. We also
know there are known unknowns; that is to say we know there are some
things we do not know. But there are also unknown unknowns — the ones
we don’t know we don’t know.
Donald Rumsfeld
*********************************************************************
Remigius K. Mommsen e-mail: [EMAIL PROTECTED]
University of Manchester URL: http://cern.ch/mommsen
Fermilab, MS 357 voice: ++1 (630) 840-8321
P.O. Box 500 fax: ++1 (630) 840-2649
Batavia, Il 60510, US home: ++1 (630) 236-0932
*********************************************************************
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Fink-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-devel