Subject: pkg_delete unable to delete multiple packages
To: None <tech-pkg@netbsd.org>
From: Pavel Cahyna <pcah8322@artax.karlin.mff.cuni.cz>
List: tech-pkg
Date: 11/11/2004 22:41:00
Hello,

today, I wanted to delete all perl modules. So I did
pkg_info | cut -f 1 -d ' ' | grep ^p5
to find them and then

pkg_delete $( pkg_info | cut -f 1 -d ' ' | grep ^p5)   
to delete them, which gave:

pkg_delete: package `p5-perl-headers-2.0_BETA' is required by other
packages:
        nas-1.6nb3
pkg_delete: package `p5-Clone-0.15' is required by other packages:
        p5-Data-Hierarchy-0.20
pkg_delete: package `p5-PerlIO-via-dynamic-0.11' is required by other
packages:
        p5-IO-Digest-0.10
pkg_delete: package `p5-Pod-Escapes-1.04' is required by other packages:
        p5-Pod-Simple-3.02nb1

It is clear why p5-perl-headers-2.0_BETA could not be deleted - it is
required by some other package. But it isn't clear at all for
p5-Clone-0.15, p5-PerlIO-via-dynamic-0.11 and p5-Pod-Simple-3.02nb1,
because they are needed only by packages which were also going to be
removed.

So, the question is: could please pkg_delete be made a bit smarter and
topologically sort the list of packages which it is removing or something
like that?

BTW, here is the list of packages:

    pavel@pc:~$ pkg_info | cut -f 1 -d ' ' | grep ^p5                   
    p5-perl-headers-2.0_BETA
    p5-URI-1.30
    p5-MIME-Base64-3.01
    p5-Clone-0.15
    p5-subversion-1.1.1
    p5-Algorithm-Annotate-0.10
    p5-Compress-Zlib-1.33nb1
    p5-Data-Hierarchy-0.20
    p5-File-BaseDir-0.02
    p5-File-MimeInfo-0.10
    p5-PerlIO-via-dynamic-0.11
    p5-IO-Digest-0.10
    p5-Locale-Maketext-Lexicon-0.42
    p5-Locale-Maketext-Simple-0.12
    p5-PerlIO-via-symlink-0.02
    p5-Pod-Escapes-1.04
    p5-Pod-Simple-3.02nb1
    p5-Regexp-Shellish-0.93
    p5-Term-ReadKey-2.21
    p5-Data-UUID-0.11

and the output of pkg_delete -n :

    pavel@pc:~$ pkg_delete -n $( pkg_info | cut -f 1 -d ' ' | grep ^p5)     
    pkg_delete: package `p5-perl-headers-2.0_BETA' is required by other
    packages:
	    nas-1.6nb3
    Attempting to delete package `p5-URI-1.30'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-MIME-Base64-3.01'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    pkg_delete: package `p5-Clone-0.15' is required by other packages:
	    p5-Data-Hierarchy-0.20
    Attempting to delete package `p5-subversion-1.1.1'
    Attempting to remove dependency on package `subversion-base>=1.1.1'
    Attempting to remove dependency on package `swig-perl>=1.3.19nb1'
    Attempting to remove dependency on package `{perl>=5.8,perl-thread>=5.8}'
    Attempting to delete package `p5-Algorithm-Annotate-0.10'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-Compress-Zlib-1.33nb1'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-Data-Hierarchy-0.20'
    Attempting to remove dependency on package `p5-Clone>=0.15'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-File-BaseDir-0.02'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-File-MimeInfo-0.10'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    pkg_delete: package `p5-PerlIO-via-dynamic-0.11' is required by other
    packages:
	    p5-IO-Digest-0.10
    Attempting to delete package `p5-IO-Digest-0.10'
    Attempting to remove dependency on package `p5-PerlIO-via-dynamic-[0-9]*'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-Locale-Maketext-Lexicon-0.42'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to remove dependency on package
    `{perl>=5.8.0,perl-thread>=5.8.0,p5-Locale-Maketext-[0-8]*}'
    Attempting to delete package `p5-Locale-Maketext-Simple-0.12'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-PerlIO-via-symlink-0.02'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    pkg_delete: package `p5-Pod-Escapes-1.04' is required by other packages:
	    p5-Pod-Simple-3.02nb1
    Attempting to delete package `p5-Pod-Simple-3.02nb1'
    Attempting to remove dependency on package `p5-Pod-Escapes-[0-9]*'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-Regexp-Shellish-0.93'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-Term-ReadKey-2.21'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    Attempting to delete package `p5-Data-UUID-0.11'
    Attempting to remove dependency on package `{perl>=5.0,perl-thread>=5.0}'
    pkg_delete: 4 package deletion(s) failed

Bye	Pavel