On 2021/01/25 03:34, James Cook wrote: > On Thu, Oct 08, 2020 at 11:42:53AM +0100, Stuart Henderson wrote: > > On 2020/10/08 02:33, James Cook wrote: > > > I'm reporting a slight hiccup upgrading from 6.7 to snapshot. This might > > > count as my own fault, but reporting it in case it's something that's > > > supposed to run smoothly. (I was able to recover; no help needed.) > > > > > > I upgraded from 6.7 to a snapshot (with sysupgrade -s), then ran > > > "doas pkg_add -u", and got this: > > > > > > > > > Collision in python-3.8.6: the following files already exist > > > /usr/local/bin/2to3 from python-3.8.6 > > > /usr/local/bin/pydoc3 from python-3.8.6 > > > /usr/local/bin/python3 from python-3.8.6 > > > /usr/local/bin/python3-config from python-3.8.6 > > > /usr/local/lib/pkgconfig/python3.pc from python-3.8.6 > > > It seems to be a missing package registration > > > > This is because, > > > > 1) The default Python version in ports was switched from 3.7 to 3.8, > > so the symlinks for the "default names" moved at that time > > > > 2) After this, Python 3.7 was updated in 6.7-stable > > > > The @conflict lines in the PLIST files for 3.8 in -current should have > > been updated after the -stable update, so pkg_add doesn't know that > > it needs to update 3.7.9 to the "6.8 version" (without the symlinks) > > before installing 3.8. > > > > We can't do anything for the main 6.8 release packages now, but it can > > be fixed in 6.8-stable once it's open. For those arches with -stable > > packages available, once those packages are built it shouldn't be > > noticeable to users. > > > > > After this, pkg_delete partial-python; pkg_add python3; pkg_add -u > > > completed the upgrade without trouble (though I haven't tested anything). > > > > Yes that should do the trick. > > Somehow, this old problem is still haunting my computer. I'm reviving > this old thread for two reasons: > > 1. In case the below is a useful bug report. > > 2. To request advice dealing with it. (My goal: I'd like to have a > functioning /usr/local/bin/python3 symlink, and no > "partial-python-3.8.7" package.) > > ---- > > Ever since the problem I reported above, I've had trouble with the > Python3 symlinks whenever I run pkg_add -u on that same system. I > haven't kept careful track, so I'll start with the most recent > symptoms: > > * Today, I noticed that I had no /usr/local/bin/python3 symlink, even > though I have python-3.8.7 installed. (This is probably because I had > earlier uninstalled the "partial-python-3.(something)" package.) > > * Seeing that, I decided to force-reinstall Python 3.8, resulting in > the following: > > falsifian angel tmp $ doas pkg_add -u -D installed python-3.8.7 > quirks-3.519 signed on 2021-01-24T21:22:51Z > quirks-3.519->3.519: ok > python-3.8.7:libffi-3.3->3.3: ok > python-3.8.7:libiconv-1.16p0->1.16p0: ok > python-3.8.7:gettext-runtime-0.21p0->0.21p0: ok > python-3.8.7:sqlite3-3.34.0->3.34.0: ok > python-3.8.7:xz-5.2.5->5.2.5: ok > python-3.8.7:bzip2-1.0.8p0->1.0.8p0: ok > Bogus symlink: /usr/local/bin/2to3 > Bogus symlink: /usr/local/bin/pydoc3 > Bogus symlink: /usr/local/bin/python3 > Bogus symlink: /usr/local/bin/python3-config > Bogus symlink: /usr/local/lib/pkgconfig/python3.pc > Bad rename /usr/local/bin/2to3 to /usr/local/bin/2to3.HZzyyvf4Qq: No such > file or directory > Bad rename /usr/local/bin/pydoc3 to /usr/local/bin/pydoc3.IA1AJiEcMU: No > such file or directory > Bad rename /usr/local/bin/python3 to /usr/local/bin/python3.puMIJ7N7oe: No > such file or directory > Bad rename /usr/local/bin/python3-config to > /usr/local/bin/python3-config.QD8CNhk2EW: No such file or directory > Bad rename /usr/local/lib/pkgconfig/python3.pc to > /usr/local/lib/pkgconfig/python3.pc.jrFTvKCyzK: No such file or directory > python-3.8.7->3.8.7: ok > Read shared items: ok > --- -python-3.8.7 ------------------- > Files kept as partial-python-3.8.7 package > > I have no idea what's happening here. Somehow, pkg_add has decided that > the symlinks (which didn't exist before I ran the command) should now > be part of a new "partial-python-3.8.7" package: > > falsifian angel tmp $ pkg_info -L partial-python-3.8.7 > Information for inst:partial-python-3.8.7 > > Files: > /usr/local/bin/2to3 > /usr/local/bin/pydoc3 > /usr/local/bin/python3 > /usr/local/bin/python3-config > /usr/local/lib/pkgconfig/python3.pc > > Here's what I remember from the time between the October 2020 thread > and today: > > * For a while (possibly still continuing to today; I haven't been > paying close attention) every time I ran pkg_add -u, I would see > error messages related to /usr/local/bin/python3 and other symlinks > (but the upgrade seems to work). I think the error messages were > generally similar to what's shown above, but I'm not sure. > > * The symlinks were generally kept in a "partial-python-3.(something)" > package. > > * I deleted that partial-python-3.(something) package, probably more > than once. I guess that is why /usr/local/bin/python3 didn't exist > today when I checked. > > I guess my system is in some state that pkg_add can't puzzle its way > out of. But I don't know enough about pkg_add internals to untangle the > details. > > I guess I could try uninstalling python-3.8.7 and partial-python-3.8.7 > and then installing python-3.8.7 from that "clean" state. I haven't > done it yet because it will involve reinstalling a lot of packages, and > in case this represents some pkg_add bug that should be fixed. > > (Incidentally, what prompted me to finally try to figure this out is > that the google-cloud-sdk package doesn't work properly if there's no > python3 symlink. It was falling back to python2, with which it seems to > be incompatible.) > > -- > James >
I think this would untangle things: rm -r /var/db/pkg/partial-python* pkg_add -r -D installed python%3.8 It may complain about conflicting files and ask about fixing a package registration, if so then accept that.
