Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jul 1999 20:45:54 GMT
From:      jhs@FreeBSD.ORG
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   ports/12635: Mk/bsd.port.mk failure to detect fail to extract
Message-ID:  <199907132045.UAA24230@jhs.muc.de>

next in thread | raw e-mail | index | archive | help

>Number:         12635
>Category:       ports
>Synopsis:       Mk/bsd.port.mk fails to detect gzip fail to extract
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 13 16:10:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Julian H. Stacey jhs@freebsd.org
>Release:        FreeBSD 3.2-RELEASE i386
>Organization:
>Environment:

	A multi hosted NFS site, with ports & distfiles & directories accessed
	via Lots of sequential symbolic links, to various CD-ROM directories 
	& newer-than-cd directories etc.
	A network where I hit the limit:
		sys/sys/param.h:171     #define MAXSYMLINKS     32 
	with this
		wc /usr/ports/distfiles//gv-3.5.8.tar.gz
			open: Too many levels of symbolic links
	but where, (curiously), this still works:
		cp /usr/ports/distfiles//gv-3.5.8.tar.gz /tmp/t
		wc /tmp/t
			1386    8212  369609 /tmp/t

>Description:

	Mk/bsd.port.mk fails to catch error code from gzip (fail to extract),
	As shown:
		make
		===>  Extracting for gv-3.5.8
		>> Checksum OK for gv-3.5.8.tar.gz.
		/bin/rm -rf /a/park/usr/ports/print/gv/work
		/bin/mkdir -p /a/park/usr/ports/print/gv/work
		for file in gv-3.5.8.tar.gz; do  if ! \
			(cd /a/park/usr/ports/print/gv/work && /usr/bin/gzip \
			-nf --best -dc /usr/ports/distfiles//$file | \
			 /usr/bin/tar -xf -); \
			then  exit 1;  fi  done
		/usr/ports/distfiles//gv-3.5.8.tar.gz: \
			Too many levels of symbolic links
		===>  Patching for gv-3.5.8
	The failure is in Mk/bsd.port.mk, not gzip, as this simple makefile, 
		xx:
			/usr/bin/gzip -nf --best -dc \
				/usr/ports/distfiles/gv-3.5.8.tar.gz > /tmp/t
        		echo This line is not echoed as gzip errors OK
	shows gzip returning an error code:
		/usr/ports/distfiles/gv-3.5.8.tar.gz: 
			Too many levels of symbolic links
		*** Error code 1
		Stop.
	So Mk/bsd.port.mk should also catch the error & stop, but it fails to.
	
>How-To-Repeat:
	
	Create EG a /usr/ports/distfiles//gv-3.5.8.tar.gz that goes through 35
	sym links 
	In Mk/bsd.port.mk remove the @ in a few lines  after line 1467 (do-extract:)
	go to some arbitrary port, 
	make clean
	make extract
	See that despite the
		Too many levels of symbolic links
	we now also wrongly have a work/.extract_done

>Fix:
	
	Mk/bsd.port.mk is ports-master domain _ so I leave fixing it to 
	the ports master(s). (but I am preparing a send-pr for src/
	that will double MAXSYMLINKS etc; this will hide (but not fix)
	the failure in Mk/bsd.port.mk, however even with this,
	if for some other reason gzip fails to return data to Mk/bsd.port.mk,
	Mk/bsd.port.mk might still not notice, so a fix is needed for Mk/bsd.port.mk )

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907132045.UAA24230>