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 -- 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