Subject: pkg/22083: gcc3-xxx packages assume gcc3 is already installed
To: None <gnats-bugs@gnats.netbsd.org>
From: None <kre@munanri.OZ.AU>
List: netbsd-bugs
Date: 07/07/2003 16:10:30
>Number:         22083
>Category:       pkg
>Synopsis:       gcc3-xxx packages assume gcc3 is already installed
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 07 09:11:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Robert Elz
>Release:        NetBSD 1.6Q   ( -- pkgsrc of 2003-07-07 : ie: now)
>Organization:
	Prince of Songkla University
>Environment:
System: NetBSD jade.coe.psu.ac.th 1.6Q NetBSD 1.6Q (JADE-HP) #0: Sun Mar 23 02:27:44 ICT 2003 kre@fuchsia.cs.mu.OZ.AU:/usr/obj/sys/JADE-HP i386
Architecture: i386
Machine: i386
>Description:
	The gcc3-xxx packages (other than gcc3-c for obvious reasons)
	want to execute gcc from gcc3 to get information.   They do
	that without checking that gcc3 is actually installed first
	(and in any case, there really must be a better way, surely).

>How-To-Repeat:
	Make sure that you don't have gcc3-c installed ..
		
		pkg_delete -r gcc3-c
		pkg_delete -r gcc3

	Then attempt to "make fetch" or "make checksum" (or just about
	anything) for one of the other gcc3-xxx packages, as ...

		cd ..../pkgsrc/lang/gcc3-c++
		make fetch

	Expect to see something like ...

make fetch
/usr/pkg/gcc3/bin/gcc: not found
usage: dirname path
make: "/usr/src/pkgsrc/lang/gcc3-c++/../../lang/gcc3-c/buildlink2.mk" line 14: warning: "dirname `/usr/pkg/gcc3/bin/gcc --print-libgcc-file-name`" returned non-zero status
/usr/pkg/gcc3/bin/gcc: not found
usage: dirname path
make: "/usr/src/pkgsrc/lang/gcc3-c++/../../lang/gcc3-c/buildlink2.mk" line 14: warning: "dirname `/usr/pkg/gcc3/bin/gcc --print-libgcc-file-name`" returned non-zero status
===> Checking for vulnerabilities in gcc3-c++-3.3
/usr/pkg/gcc3/bin/gcc: not found
usage: dirname path
make: "/usr/src/pkgsrc/lang/gcc3-c++/../../lang/gcc3-c/buildlink2.mk" line 14: warning: "dirname `/usr/pkg/gcc3/bin/gcc --print-libgcc-file-name`" returned non-zero status


>Fix:
	Beats me.   But please *do not* require that gcc3-c be installed
	in order to allow "make fetch" and "match checksum" to work, I
	have a system which basically just does this, on everything in
	pkgsrc,  yet has almost no packages installed itself.  It is
	annoying that there are already a couple of packages that depend
	upon something else being installed in order to fetch (understandable
	when some wacko fetch method is demanded) - requiring gcc3 (even just
	the C compiler) to be installed in order to "make fetch" of
	gcc3-xxx packages would be revolting.

	It may be that something simple, like checking the current target
	in the gcc3-c/buildlink2.mk before attempting to run the command
	causing the problems, ie:

	_GCC_LIBGCCDIR!= \
	  dirname `${_GCC_PREFIX}bin/gcc --print-libgcc-file-name`

	might be enough.   I'm not sure.
>Release-Note:
>Audit-Trail:
>Unformatted: