Alex,
> On Nov 4, 2014, at 11:07 AM, David Fang <[email protected]> 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
--
David Fang
http://www.csl.cornell.edu/~fang/
------------------------------------------------------------------------------
_______________________________________________
Fink-devel mailing list
[email protected]
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel