On Jan 13, 2008, at 7:30 PM, Daniel Johnson wrote:


On Jan 13, 2008, at 7:09 PM, Koen van der Drift wrote:


On Jan 13, 2008, at 6:59 PM, Daniel Johnson wrote:

But why does it work in octave which only BuildDepends on fink >= 0.27.9, instead of fink >= 0.27.99. Since now I get the following error:

Error: private-library entry in Shlibs requires declaring a BuildDepends on fink (>= 0.27.99) or higher.

It only works if you change it to 0.27.99 or later, but since no such version has been released you can't actually use it in a public info file.

Now I'm confused, since octave.info has BuildDepends: fink (>= 0.27.9), not BuildDepends: fink (>= 0.27.99).

Ah, never mind, it still fails the validation ;-)

- Koen.

Yeah, like I said, octave.info CAN'T use 0.27.99 since no such fink version has been released. :) If it did, only people using fink HEAD could build octave.

But I'm still having a problem:

Validating .deb dir /sw/src/fink.build/root-fontforge-20080110-101...
Error: package contains a dylib with no corresponding Shlibs entry (/ sw/lib/fontforge/libfontforge.1.0.0.dylib -> /sw/lib/fontforge/ libfontforge.1.dylib 2.0.0) If this is a private library, add '!/sw/lib/fontforge/ libfontforge.1.0.0.dylib' to the Shlibs field. Error: package contains a dylib with no corresponding Shlibs entry (/ sw/lib/fontforge/libgdraw.3.0.0.dylib -> /sw/lib/fontforge/libgdraw. 3.dylib 4.0.0) If this is a private library, add '!/sw/lib/fontforge/libgdraw. 3.0.0.dylib' to the Shlibs field. Error: package contains a dylib with no corresponding Shlibs entry (/ sw/lib/fontforge/libgunicode.3.0.0.dylib -> /sw/lib/fontforge/ libgunicode.3.dylib 4.0.0) If this is a private library, add '!/sw/lib/fontforge/ libgunicode.3.0.0.dylib' to the Shlibs field. Error: package contains a dylib with no corresponding Shlibs entry (/ sw/lib/fontforge/libgutils.1.0.0.dylib -> /sw/lib/fontforge/ libgutils.1.dylib 2.0.0) If this is a private library, add '!/sw/lib/fontforge/ libgutils.1.0.0.dylib' to the Shlibs field.

This is even after adding those lines (with no whitespace in front) so I'm still missing something. Guess I need to dig into the validator more.

OK, the validator is buggy. This is the code that prints the error:

        for my $dylib (@installed_dylibs) {
                next if (-l $destdir . $dylib);
                if (defined $otool) {
                        my $dylib_temp = resolve_rooted_symlink($destdir, 
$dylib);
                        if (not defined $dylib_temp) {
                                print "Warning: unable to resolve symlink for 
$dylib.\n";
                        } else {
                                $dylib_temp =~ s/\'/\\\'/gs;
                                if (open (OTOOL, "$otool -L '$dylib_temp' |")) {
                                        <OTOOL>; # skip first line
my ($libname, $compat_version) = <OTOOL> =~ /^\s*(\S+)\s*\ (compatibility version ([\d\.]+)/;
                                        close (OTOOL);
        
                                        if (not exists $deb_shlibs->{$libname}) 
{
print "Error: package contains a dylib with no corresponding Shlibs entry ($dylib -> $libname $compat_version)\n"; print " If this is a private library, add '!$dylib' to the Shlibs field.\n";
                                                $looks_good = 0;
                                        }
                                }
                        }
                }
        }

It doesn't actually check if private libraries are specified. So that's two private-shlibs bugs. :)

Daniel

Attachment: smime.p7s
Description: S/MIME cryptographic signature

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel

Reply via email to