Package: yada Version: 0.51 Severity: important Tags: patch There is problem with YADA if the package provides the shared library and the binary which uses the library.
I.e.: Package: test Install: sh yada install -lib test/libtest.so.0.1 yada install -bin test/testbin yada make-shlibs The result is the binary package with dependency on itself. Package: test Depends: libc6 (>= 2.3.6-6), test it should be: Package: test Depends: libc6 (>= 2.3.6-6) The provided patch modifies YADA, so it generates debian/shlibs.local file for currently processed binary package and makes that dpkg-shlibdeps ignores the shared libraries from this binary package. -- .''`. Piotr Roszatycki : :' : mailto:[EMAIL PROTECTED] `. `' mailto:[EMAIL PROTECTED] `-
--- debian/yada (revision 355) +++ debian/yada (local) @@ -1604,11 +1604,17 @@ "\$\$LD_LIBRARY_PATH:debian/tmp-$pkg/lib:debian/tmp-$pkg/usr/lib"; foreach (sort {$binaryparanum{$a} <=> $binaryparanum{$b}} keys %binary) { - next if $_ eq $pkg; - print OUT - "\ttest -f debian/tmp-$_/DEBIAN/shlibs && cat debian/tmp-$_/DEBIAN/shlibs >> debian/shlibs.local || true\n" - or die; - $ldlp .= ":debian/tmp-$_/lib:debian/tmp-$_/usr/lib"; + if ($_ eq $pkg) { + print OUT + "\ttest -f debian/tmp-$_/DEBIAN/shlibs && cat debian/tmp-$_/DEBIAN/shlibs | while read lib ver pkg; do echo \$\$lib \$\$ver; done >> debian/shlibs.local || true\n" + or die; + } + else { + print OUT + "\ttest -f debian/tmp-$_/DEBIAN/shlibs && cat debian/tmp-$_/DEBIAN/shlibs >> debian/shlibs.local || true\n" + or die; + $ldlp .= ":debian/tmp-$_/lib:debian/tmp-$_/usr/lib"; + } } print OUT "\tLD_LIBRARY_PATH=\"$ldlp\" dpkg-shlibdeps -pshlibs:" @@ -2674,10 +2680,16 @@ if (@filelist) { &run('rm', '-f', 'debian/shlibs.local'); for (sort {$binaryparanum{$a} <=> $binaryparanum{$b}} keys %binary) { - next if $_ eq $PACKAGE; - &run('sh', '-c', - "test -f debian/tmp-$_/DEBIAN/shlibs && cat debian/tmp-$_/DEBIAN/shlibs >> debian/shlibs.local || true" - ); + if ($_ eq $PACKAGE) { + &run('sh', '-c', + "test -f debian/tmp-$_/DEBIAN/shlibs && cat debian/tmp-$_/DEBIAN/shlibs | while read lib ver pkg; do echo \$lib \$ver; done >> debian/shlibs.local || true" + ); + } + else { + &run('sh', '-c', + "test -f debian/tmp-$_/DEBIAN/shlibs && cat debian/tmp-$_/DEBIAN/shlibs >> debian/shlibs.local || true" + ); + } } &run("dpkg-shlibdeps", "-pshlibs:" . &normalise($PACKAGE), @ARGV, @filelist);