It's in. There may be fallout (hopefully not).

Basically, pkg_delete has been almost entirely rewritten to work a lot like
pkg_add does. The old version did have a list of packages, and was trimming
stuff it could remove repeatedly (to handle dependencies).

(there's some more refactoring to happen, obviously...)

The new version proceeds like pkg_add: if it can't delete a package because
it's still needed by something, it retries with those reverse dependencies
upfrontt, and it uses a tracker to know what it's currently deleting.

This has some major benefits:
- it won't stop at the first problem, but will proceed to delete anything
that's safe (and error out eventually)
- when it can't delete something, it will tell you exactly why, for each
package.
- there's a new -a option that allows pkg_delete to delete any dependency
that's not actually required by something installed manually.
- new pkg_delete should also be able to delete packages that inter-depends
on each other now. Fairly rare situation, but can happen.

This rewrite is the reason I did not okay a bunch of minor patches over the
last months... as all of this would be completely obsolete now.

Reply via email to