Subject: pkg/34098: The new mk/fetch infrastructure is br0ken for FreeBSD
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: pancake <pancake@phreaker.net>
List: pkgsrc-bugs
Date: 07/27/2006 11:10:01
>Number:         34098
>Category:       pkg
>Synopsis:       No fetch possible on FreeBSD since the latest CVS changes.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Thu Jul 27 11:10:01 +0000 2006
>Originator:     pancake
>Release:        FreeBSD 7.0-CURRENT
>Organization:
	
>Environment:
	
	
System: FreeBSD porticoluna 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Tue Sep 27 07:09:02 CEST 2005 root@porticoluna:/usr/src/sys/i386/compile/KERN_PLUNA2 i386
Architecture: i386
Machine: i386
>Description:

	Looks like pkgsrc skips the fetch stage. So the rest of stages are broken, because
	is not able to find the distfile. Let's see some examples:

#/usr/pkgsrc/emulators/gxemul> bmake fetch-list
#!/bin/sh
#
# This is an auto-generated script, the result of running
# `/usr/pkg/bin//bmake fetch-list' in directory "/usr/pkgsrc/emulators/gxemul"
# on host "porticoluna" on "Thu Jul 27 12:55:11 CEST 2006".
#

#
# Need additional files for gxemul-0.4.1 (emulators/gxemul)...

# Fetch gxemul-0.4.1.tar.gz (1830123 bytes):
#
unsorted_sites="http://gavare.se/gxemul/src/ \
        http://ftp.fi.NetBSD.org/pub/NetBSD/packages/distfiles/ \
        ftp://ftp.NetBSD.org/pub/NetBSD/packages/distfiles/ \
        http://ftp.NetBSD.org/pub/NetBSD/packages/distfiles/ \
        ftp://ftp.FreeBSD.org/pub/FreeBSD/distfiles/"
sites=""
/bin/mkdir -p /usr/pkgsrc-work/sources//
cd /usr/pkgsrc-work/sources// && [ -f gxemul-0.4.1.tar.gz -o -f gxemul-0.4.1.tar.gz ] ||
for site in $sites; do
        /usr/pkg/bin/ftp   "${site}gxemul-0.4.1.tar.gz"  && break ||
        echo gxemul-0.4.1.tar.gz not fetched
done


	As you can see, the sites="" is empty, so, looking forward to this variable looks like
	is generated by an AWK command. That could be the root of the problem.

	Let see some more debugging info:

#/usr/pkgsrc/emulators/gxemul> bmake fetch
=> Required installed package digest>=20010302: digest-20060302 found
#/usr/pkgsrc/emulators/gxemul>

	Uhmf...note that no gxemul tarball is listed here !

=> Required installed package digest>=20010302: digest-20060302 found
checksum: gxemul-0.4.1.tar.gz does not exist
ERROR: Make sure the Makefile and checksum file (/usr/pkgsrc/emulators/gxemul/distinfo)
ERROR: are up to date.  If you want to override this check, type
ERROR: "/usr/pkg/bin//bmake NO_CHECKSUM=yes [other args]".
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/emulators/gxemul

	Ok, checksum fails because no distfile is found.

	I think the problem must be inside the mk/fetch/* but I was unable to fix the problem ATM.

	I will provide more info about the problem, but I'll probably need more free time to spend
	on pkgsrc internals to find the real problem of this.
	
>How-To-Repeat:
	
>Fix:
	

>Unformatted: