Subject: pkg/34836: undo-replace is nonfunctional when new PKGNAME != old PKGNAME
To: None <,,>
From: None <>
List: pkgsrc-bugs
Date: 10/16/2006 21:00:00
>Number:         34836
>Category:       pkg
>Synopsis:       undo-replace is nonfunctional when new PKGNAME != old PKGNAME
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 16 21:00:00 +0000 2006
>Originator:     Todd Vierling
>Release:        NetBSD 2.1.0_STABLE
DUH.ORG:  Pointing out the obvious since 1994.


"make undo-replace" does not work if the original package version was not
identical to the one being installed by "make replace".  Due to the
hyper-overloading of the oldname/newname files in flavor/pkg/,
the oldname doesn't even exist anywhere once "undo-replace-names" runs
(as that clobbers the oldname file with the new package name).


Install a package, say, "somepkg-1.0".

In pkgsrc reflecting a new version, say, "somepkg-1.1", do "make replace".

"make undo-replace".

See "Re-adding somepkg-1.1 ..." and an error, where it should have
re-added "somepkg-1.0".


I started to work on this, but got lost in the reused code of replace-*
centered around the reuse of the oldname/newname files.  Perhaps instead
a separate "from"/"to" name pair should be used for the shared ops?