During the tests for the upgrade of textproc/p5-YAML 0.87 -> 1.11 (PR 192727) the following problem was observed (which also happened with other ports): The old port is splitted in two new ports (here YAML -> Test::YAML and YAM). If one tries to build the new port, it conflicts with the installed old port and the update fails. Currently, /usr/ports/UPDATING gets a new entry and folks have to manually handle this case. The suggestion is to have some knob which says: during build, the old instance of the port needs to be deinstalled.
This is not perl-specific. There are non-perl cases with similar issues.
You can use CONFLICTS for this See x11/gnome-session or biology/p5-bioperl-run for examples
(In reply to Antoine Brodin from comment #2) > You can use CONFLICTS for this > See x11/gnome-session or biology/p5-bioperl-run for examples Is there any automatism which then resolves this ? From what understand, CONFLICTS just forces manual removal. I thought more of some knob which says "deinstall-before-build".
(In reply to Kurt Jaeger from comment #3) > (In reply to Antoine Brodin from comment #2) > > You can use CONFLICTS for this > > See x11/gnome-session or biology/p5-bioperl-run for examples > > Is there any automatism which then resolves this ? From what understand, > CONFLICTS just forces manual removal. I thought more of some knob which > says "deinstall-before-build". Poudriere will build ports in a clean environment, and is the way to go if you want automation.
similar effect: databases/firebird25-client, as discussed here: https://lists.freebsd.org/pipermail/freebsd-ports/2014-October/096083.html and following posts.
(In reply to Kurt Jaeger from comment #1) > This is not perl-specific. There are non-perl cases with similar issues. Like: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192867
I don't understand why you don't want to use CONFLICTS for this. When I use ports and not packages, I don't want packages to be removed without me knowing and accepting it.
(In reply to Antoine Brodin from comment #7) > I don't understand why you don't want to use CONFLICTS for this. I use portupgrade in a daily cronjob. If the maintainer of a port knows that to build version x+1 one has to deinstall version x, then I prefer if it happens automatically during portupgrade. Maybe some Makefile knob that is only evaluated by portupgrade would be sufficient ?
Another occurance: ClamAV: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195182
(In reply to Kurt Jaeger from comment #9) > Another occurance: ClamAV: > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195182 Clamav is now fixed (upstream and ports)
Found that there's a knob CONFLICTS_BUILD for this kind of problem. It does not automatically deinstalls, but at least it explains it to the casual user.
I do think that we shouldn't automatically remove previous versions, but only explains and let the user decide. In that area, CONFLICT_BUILD is fine with it.