On Mon, Jul 30, 2012 at 08:43:39AM +0200, Antoine Jacoutot wrote: > So, after a quick chat with Marc Espie trying to understand why a > particular package would not run @exec-add, I would like to warn you > guys when you use such a marker in your ports. > In my case, @exec-add was not run because I had some .libs-foo still > installed on the system which where @conflicting with the package I was > installing; as a consequence, my exec-add was turned into an exec-update > (although my new package does _not_ have any @pkgpath set to the old one). > > So be very careful when using @exec-add instead of @exec. > For example, when freeradius was updated to 2.1.8, some @exec-add lines > where added; these will never be run if you already had a prior > installation on your system. I am not saying it's wrong, it is a > perfectly normal and documented behavior, but since I spent some time > trying to figure this out and considering I _always_ forget about > .libs-*, I though it was worth a reminder...
No, this is definitely not a feature. Those are rather obvious cases where pkg_add is confused. Specifically: foo-1.0 -> foo-2.0 update .libs-whatever -> foo-2.0 add, definitely not update if we are running pkg_add -u, we do know what is getting updated, because hey, each updated package points back to the stuff it was updated from, so this is fixable. I'll have to think a bit more about pkg_add -r, since the updater doesn't run, and it's slightly less obvious. I think we can err on the side of caution in that case.