On Sat, 8 Nov 2014, Alexander Hansen wrote:

> On 11/8/14, 1:03 PM, David Fang wrote:
>>  Alex,
>> 
>> >  On Nov 4, 2014, at 11:07 AM, David Fang <f...@csl.cornell.edu> wrote:
>> > 
>> > >  Hi all,
>> > >       Sitting in my experimental tree is a draft of llvm35's packaging
>> > >  that bootstraps (much like its predecessor llvm34), but fails Shlib
>> > >  validation because the install_names for shlibs all start with @rpath
>> > >  (or
>> > >  on older darwin @executable_path or @loader_path).  This was a
>> > >  decision by
>> > >  upstream build maintainers that allows this package to be
>> > >  binary-relocatable, even though fink makes no such guarantees about 
>> > >  its
>> > >  packages -- fink's remain in fixed install locations.
>> > >  dmacks and akh began to look into a patch that would allow this to 
>> > >  pass
>> > >  validation.  Can you guys comment on the status/issues/obstacles?
>> > >  Such a fix would unblock llvm35 from hitting dists.
>> > > 
>> > >  Thanks!
>> > > 
>> > >  Fang
>> > > 
>> > >  --
>> > >  David Fang
>> > >  http://www.csl.cornell.edu/~fang/
>> > > 
>> > 
>> > 
>> >  Here?s the change I injected thus far:
>> > 
>> >  diff --git a/perlmod/Fink/Validation.pm b/perlmod/Fink/Validation.pm
>> >  index 29fc4ab..a5010dd 100644
>> >  --- a/perlmod/Fink/Validation.pm
>> >  +++ b/perlmod/Fink/Validation.pm
>>> @@ -2198,12 +2198,12 @@ sub _validate_dpkg {
>> >                                         <OTOOL>; # skip first line
>> >                                         my ($libname, $compat_version)
>> >  = <OTOOL> =~ /^\s*(\S+)\s*\(compatibility version ([\d\.]+)/;
>> >                                         close (OTOOL);
>> >  -                                       if ($libname !~ /^\//) {
>> >  +                                       if (($libname !~ /^\//) and
>> >  ($libname !~ /\@.*path\//)) {
>> >                                                 print "Error: package
>> >  contains the shared library\n";
>> >                                                 print "
>> >  $dylib\n";
>> >                                                 print "       but the
>> >  corresponding install_name\n";
>> >                                                 print "
>> >  $libname\n";
>> >  -                                               print "       is not
>> >  an absolute pathname.\n";
>> >  +                                               print "       is not
>> >  an absolute pathname or runtime path.\n";
>> >                                                 $looks_good = 0;
>> >                                         } elsif (not exists
>> >  $deb_shlibs->{$libname}) {
>> >                                                 $libname =~
>> >  s/^$basepath/%p/;
>> > 
>> >  And the validator moves on:
>> > 
>> >  Validating .deb file
>> >  /sw/fink/debs/polly35-shlibs_3.5.0-0_darwin-x86_64.deb...
>> >  Error: package contains the shared library
>> >           /sw/opt/llvm-3.5/lib/libPolly.dylib
>> >        but the corresponding install_name and compatibility_version
>> >           @rpath/libPolly.dylib 0.0.0
>> >        are not listed in the Shlibs field.  See the packaging manual.
>>
>>  Thanks for working on this patch.
>>  I'm a little puzzled about the libPolly error, since my .info file has:
>>
>>       Package: polly35-shlibs
>>       ...
>>           Files: <<
>>                   opt/llvm-3.5/lib/LLVMPolly.so
>>                   opt/llvm-3.5/lib/libPolly*.dylib
>>           <<
>>           DocFiles: tools/polly/LICENSE.txt tools/polly/CREDITS.txt
>>           Shlibs: <<
>> !% p/opt/llvm-3.5/lib/LLVMPolly.so
>> !% p/opt/llvm-3.5/lib/libPolly.dylib
>>           <<
>>
>>  Am I missing some obvious fix?
>>
>>  Fang
>> 
>
> I assumed that it was because Shlibs entries refer to the install_name, which 
> happens not to map onto the filename when using @rpath and friends.  Maybe
>
> Shlibs: <<
>       !@ rpath/LLVMPolly.so
>       !@ rpath/LLVMPolly.dylib
> <<
>
> would do the job.  I'll check that.

Did any of the other split-offs trigger that diagnostic?  All shlib 
split-offs follow the same form.

-- 
David Fang
http://www.csl.cornell.edu/~fang/


------------------------------------------------------------------------------
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to