Subject: pkg/34533: Make distinfo fails on unclear occassions due to TOOLS_DIGEST not being propagated
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <lkundrak@skosi.org>
List: pkgsrc-bugs
Date: 09/15/2006 09:55:01
>Number:         34533
>Category:       pkg
>Synopsis:       Make distinfo fails on unclear occassions due to TOOLS_DIGEST not being propagated
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Sep 15 09:55:00 +0000 2006
>Originator:     Lubomir Kundrak
>Release:        pkgsrc HEAD checked out at September 14th, 2006
>Organization:
>Environment:
>Description:
I've done a "pkg_chk -C new-pkgchk.conf -arus | tee output" and after installing more than 200 packages successfully it failed due to "Incorrect patch checksum" in "pango" package. So i tried to regenerate the sum with "make distinfo", but unsuccessfully:

# make -de makesum
===> Skipping vulnerability checks.
WARNING: No /usr/pkgsrc/distfiles/pkg-vulnerabilities file found.
WARNING: To fix, install the pkgsrc/security/audit-packages
WARNING: package and run: ``/usr/pkg/sbin/download-vulnerability-list''.
SHA1: not found
 
*** Failed target:  makesum
*** Failed command: set -e; newfile=/usr/pkgsrc/devel/pango/distinfo.$$; if test -f /usr/pkgsrc/devel/pango/distinfo; then { /usr/bin/grep '^.NetBSD' /usr/pkgsrc/devel/pango/distinfo || echo "$""NetBSD""$"; } > $newfile; else echo "$""NetBSD""$" > $newfile; fi; echo "" >> $newfile; cd /usr/pkgsrc/distfiles; for sumfile in "" pango-1.14.3.tar.bz2; do test -n "$sumfile" || continue; for a in "" SHA1 RMD160; do test -n "$a" || continue; $a $sumfile >> $newfile; done; /usr/bin/wc -c $sumfile | /usr/bin/awk '{ print "Size (" $2 ") = " $1 " bytes" }' >> $newfile; done; for ignore in "" ; do test -n "$ignore" || continue; for a in "" SHA1 RMD160; do test -n "$a" || continue; echo "$a ($ignore) = IGNORE" >> $newfile; done; done; if test -f /usr/pkgsrc/devel/pango/distinfo; then /usr/bin/awk '$2 ~ /\(patch-[a-z0-9]+\)/ { print $0 }' < /usr/pkgsrc/devel/pango/distinfo >> $newfile; fi; if /usr/bin/cmp -s $newfile /usr/pkgsrc/devel/pango/distinfo; then /bin/rm -f $newfile; echo "=> disti
 nfo: distfiles part unchanged."; else /bin/mv -f $newfile /usr/pkgsrc/devel/pango/distinfo; fi
*** Error code 127
 
Stop.
make: stopped in /usr/pkgsrc/devel/pango

Apparently, following statement is incorrect:

for a in "" SHA1 RMD160; do test -n "$a" || continue; $a $sumfile >> $newfile; done;

It comes from checksum.mk's:

                         ${TOOLS_DIGEST} $$a $$sumfile >> $$newfile;     

It seems that the problem is, that TOOLS_DIGEST is undefined. Well...
After some more investigation I deleted the work directory and whoa! It worked now.

I restarted the pkg_chk and...
A couple of minutes/packages later:

===> Overriding tools for gtk2+-2.8.20nb1
===> Extracting for gtk2+-2.8.20nb1
===> Patching for gtk2+-2.8.20nb1
=> Applying pkgsrc patches for gtk2+-2.8.20nb1
SHA1: not found
**************************************
Ignoring patch file /usr/pkgsrc/x11/gtk2/patches/patch-aa: invalid checksum
**************************************
SHA1: not found
**************************************
Ignoring patch file /usr/pkgsrc/x11/gtk2/patches/patch-ac: invalid checksum
**************************************
SHA1: not found
**************************************
Ignoring patch file /usr/pkgsrc/x11/gtk2/patches/patch-ad: invalid checksum
**************************************
SHA1: not found
**************************************
ERROR: Patching failed due to modified or broken patch file(s):
ERROR:  /usr/pkgsrc/x11/gtk2/patches/patch-aa
ERROR:  /usr/pkgsrc/x11/gtk2/patches/patch-ac
ERROR:  /usr/pkgsrc/x11/gtk2/patches/patch-ad
ERROR:  /usr/pkgsrc/x11/gtk2/patches/patch-ai
*** ** 'cd /usr/pkgsrc/sysutils/xcdroast && /usr/bin/make update CLEANDEPENDS=yes' failed
Ignoring patch file /usr/pkgsrc/x11/gtk2/patches/patch-ai: invalid checksum
**************************************
*** Error code 1
 
Stop.
make: stopped in /usr/pkgsrc/x11/gtk2
*** Error code 1
 
Stop.
make: stopped in /usr/pkgsrc/x11/gtk2
*** Error code 1
 
Stop.
make: stopped in /usr/pkgsrc/x11/gtk2
*** Error code 1
 
Stop.
make: stopped in /usr/pkgsrc/sysutils/xcdroast
*** Error code 1
 
Stop.
make: stopped in /usr/pkgsrc/sysutils/xcdroast
** 'cd /usr/pkgsrc/sysutils/xcdroast && /usr/bin/make update CLEANDEPENDS=yes' failed
#

With gtk I tried roughly the same:

# make -de makesum
===> Skipping vulnerability checks.
WARNING: No /usr/pkgsrc/distfiles/pkg-vulnerabilities file found.
WARNING: To fix, install the pkgsrc/security/audit-packages
WARNING: package and run: ``/usr/pkg/sbin/download-vulnerability-list''.
SHA1: not found
 
*** Failed target:  makesum
*** Failed command: set -e; newfile=/usr/pkgsrc/x11/gtk2/distinfo.$$; if test -f /usr/pkgsrc/x11/gtk2/distinfo; then { /usr/bin/grep '^.NetBSD' /usr/pkgsrc/x11/gtk2/distinfo || echo "$""NetBSD""$"; } > $newfile; else echo "$""NetBSD""$" > $newfile; fi; echo "" >> $newfile; cd /usr/pkgsrc/distfiles; for sumfile in "" gtk+-2.8.20.tar.bz2; do test -n "$sumfile" || continue; for a in "" SHA1 RMD160; do test -n "$a" || continue; $a $sumfile >> $newfile; done; /usr/bin/wc -c $sumfile | /usr/bin/awk '{ print "Size (" $2 ") = " $1 " bytes" }' >> $newfile; done; for ignore in "" ; do test -n "$ignore" || continue; for a in "" SHA1 RMD160; do test -n "$a" || continue; echo "$a ($ignore) = IGNORE" >> $newfile; done; done; if test -f /usr/pkgsrc/x11/gtk2/distinfo; then /usr/bin/awk '$2 ~ /\(patch-[a-z0-9]+\)/ { print $0 }' < /usr/pkgsrc/x11/gtk2/distinfo >> $newfile; fi; if /usr/bin/cmp -s $newfile /usr/pkgsrc/x11/gtk2/distinfo; then /bin/rm -f $newfile; echo "=> distinfo: distfiles part
  unchanged."; else /bin/mv -f $newfile /usr/pkgsrc/x11/gtk2/distinfo; fi
*** Error code 127
 
Stop.
make: stopped in /usr/pkgsrc/x11/gtk2
# find work -type f -printx |xargs grep TOOLS_DIGEST
make: stopped in /usr/pkgsrc/x11/gtk2
# make show-var varname=TOOLS_DIGEST
 
#
# rm -r work
# make show-var varname=TOOLS_DIGEST
 
#
# make makesum
=> Required installed package digest>=20010302: digest-20060826 found
===> Skipping vulnerability checks.
WARNING: No /usr/pkgsrc/distfiles/pkg-vulnerabilities file found.
WARNING: To fix, install the pkgsrc/security/audit-packages
WARNING: package and run: ``/usr/pkg/sbin/download-vulnerability-list''.
# make show-var varname=TOOLS_DIGEST
 
#

This time I have conserved the gtk2 tree with the work directory for further investigation. Anyone able to help?
>How-To-Repeat:
Unable to reproduce.
>Fix: