On Mon, Oct 30, 2017 at 09:03:06AM +0000, Rik Mills wrote:
> The output of dpkg-gensymbols has regressed when reporting new or
> changed symbols
>
> Previously the output stated:
>
> dpkg-gensymbols: debian/libnameDEBIAN/symbols doesn't match completely
> debian/libname.symbols
>
> this now incorrectly states:
>
> dpkg-gensymbols: warning: no debian/symbols file used as basis for
> generating debian/libname/DEBIAN/symbols

The attached small patch fixes the issue for me. Tested with libjpeg-turbo,
where one symbol was deliberately removed.

The previous if (defined $state) check was always true, because a //=
operator is used to define $state two lines above.

--
Dmitry Shachnev
diff --git a/scripts/Dpkg/Shlibs/SymbolFile.pm b/scripts/Dpkg/Shlibs/SymbolFile.pm
index d03ce2598..b36d542ce 100644
--- a/scripts/Dpkg/Shlibs/SymbolFile.pm
+++ b/scripts/Dpkg/Shlibs/SymbolFile.pm
@@ -204,7 +204,7 @@ sub parse {
     my ($self, $fh, $file, %opts) = @_;
     my $state = $opts{state} //= {};
 
-    if (defined $state) {
+    if (exists $state->{seen}) {
 	return if exists $state->{seen}{$file}; # Avoid include loops
     } else {
 	$self->{file} = $file;

Attachment: signature.asc
Description: PGP signature

Reply via email to