Subject: pkg/10111: make clean CLEANDEPENDS=YES is very inefficient
To: None <gnats-bugs@gnats.netbsd.org>
From: None <dmcmahill@netbsd.org>
List: netbsd-bugs
Date: 05/13/2000 12:49:15
>Number:         10111
>Category:       pkg
>Synopsis:       make clean CLEANDEPENDS=YES is very inefficient
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sat May 13 12:50:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        1.4.2<NetBSD-current source date>
>Organization:

>Environment:
	
System: NetBSD wayne.mit.edu 1.4.1 NetBSD 1.4.1 (WAYNE) #0: Sat Jan 8 15:00:10 EST 2000 mcmahill@wayne.mit.edu:/usr/src/sys/arch/i386/compile/WAYNE i386


>Description:
make clean CLEANDEPENDS=YES
works be recursively calling itself in each DEPENDS subdir.  The effect is some pkgs are 
cleaned over, and over, and over...  This isn't a problem other than performance.  It took
a couple of hours to do this from /usr/pkgsrc/devel/cervisia.  An excerpt is:

===> Cleaning for pkglibtool-1.2p2
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for jpeg-6b
===> Cleaning for tiff-3.5.5
===> Cleaning for kdelibs-1.1.2
===> Cleaning for xpm-3.4k
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for libungif-4.1.0
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for ncurses-5.0
===> Cleaning for kdebase-1.1.2
===> Cleaning for kdegraphics-1.1.2
===> Cleaning for gmake-3.78.1
===> Cleaning for gettext-0.10.35
===> Cleaning for gmake-3.78.1
===> Cleaning for Mesa-3.1
===> Cleaning for gmake-3.78.1
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for jpeg-6b
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for png-1.0.6
===> Cleaning for gmake-3.78.1
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for qt1-1.44
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for jpeg-6b
===> Cleaning for tiff-3.5.5
===> Cleaning for kdelibs-1.1.2
===> Cleaning for xpm-3.4k
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for libungif-4.1.0
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for ncurses-5.0
===> Cleaning for kdebase-1.1.2
===> Cleaning for gmake-3.78.1
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for gmake-3.78.1
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for qt1-1.44
===> Cleaning for qwspritefield-1.6
===> Cleaning for kdegames-1.1.2
===> Cleaning for gmake-3.78.1
===> Cleaning for gettext-0.10.35
===> Cleaning for gmake-3.78.1
===> Cleaning for Mesa-3.1
===> Cleaning for gmake-3.78.1
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for jpeg-6b
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for png-1.0.6
===> Cleaning for gmake-3.78.1
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for qt1-1.44
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for jpeg-6b
===> Cleaning for tiff-3.5.5
===> Cleaning for kdelibs-1.1.2
===> Cleaning for xpm-3.4k
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for libungif-4.1.0
===> Cleaning for pkglibtool-1.2p2
===> Cleaning for ncurses-5.0
===> Cleaning for kdebase-1.1.2
===> Cleaning for kdemultimedia-1.1.2
===> Cleaning for kde-1.1.2


	
>How-To-Repeat:
cd /usr/pkgsrc/x11/kde
make clean CLEANDEPENDS=YES
wait and wait and wait...
	
>Fix:
it would seem to be faster to make a complete list of all the pkgs which are
depended upon, then do something like 
clean_list='echo $all_depends | sort | uniq'
for pkg in $cleanlist
do
  cd /usr/pkgsrc/$pkg && make clean
done

I may end up picking this one up myself anyway, but won't have time for quite a bit.

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