On 2020/09/18 08:47, Kurt Mosiejczuk wrote: > On Fri, Sep 18, 2020 at 09:54:41AM +0100, Stuart Henderson wrote: > > On 2020/09/17 21:31, Pamela Mosiejczuk wrote: > > > www/py-vcrpy has removed the python 2 flavor, and with the preceding > > > update to that, we can remove the python 2 flavor on test-vcr. > > > > OK? > > > @conflict isn't needed, and it will need a quirks entry to have > > py-test-vcr updated to py3-test-vcr. > > I'm confused by this, because I've been told otherwise in the past. I was > told the quirks entry was insufficient to get pkg_add to update to the > python3 version automatically. > > Was that past advice wrong? Or is there something different about this > situation?
Trying to put all the cases down: - quirks provides a path allowing updates from an old package stem to a new one to work (py-foo -> py3-foo). Version comparisons are still done so REVISION or EPOCH must be bumped if necessary. - @pkgpath provides a path for updates from an old pkgpath to a new one. A new package won't be considered as a candidate for updating an old one unless 1) the package stem matches or has been renamed via quirks and 2) there is some matching pkgpath between the two packages (either the one added automatically that is based on the port's path in the tree i.e. category/py-foo, or one that has been explicitly listed in PLIST with an @pkgpath marker). The two above are separate but related, if both the path and the stem change (as is the case with typical py2+py3 -> py3 changes) then both must be done. - If there are files which are the same between old py- and new py3- packages, for example any files where previously MODPY_BIN_SUFFIX was used and that has now been removed, i.e. previous package has bin/foo (py2) + bin/foo-3 (py3) and the new py3 package has bin/foo, then @conflict is needed so that pkg_add can sequence the updates correctly. If several chained packages are involved this forces pkg_add to do a "merge update" (e.g. pkg1+pkg2+pkg3->pkg1+pkg3 or it can be longer in some cases). It's not meant to be harmful to list @conflict where not necessary (and I may have suggested it before to make sure that it's not forgotten!) but seems this is one of the tricky areas for pkg_add, I've seen at least a few cases where people have had problems with such updates (the gettext rename/split being an extreme example of this).
