[Bug 265943] editors/libreoffice: upgrading via portmaster leads to conflict with existing installed port
Date: Fri, 19 Aug 2022 14:56:17 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265943 Stefan Eßer <se@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|New |In Progress --- Comment #4 from Stefan Eßer <se@FreeBSD.org> --- (In reply to Martin Birgmeier from comment #3) This is a common issue if a port has a run dependency that is required to stage or package the port, but which is not declared as a build dependency. Portmaster is more strict than poudriere with regard to different types of dependencies. When building with poudriere, all RUN_DEPENDS are installed into the build jail before a port build starts. Portmaster builds and installs BUILD_DEPENDS and LIB_DEPENDS before working on the respective port that declares these dependencies, but installs RUN_DEPENDS only after completing the port build. The basic ports system does not perform the same kind of dependency checking as either portmaster or poudriere does. It just recurses into dependent ports for each target before invoking the target on the port itself - thus is recursively calls "make install" on all dependencies (including RUN_DEPENDS) before installing the port itself. The reason is simply that make works on sub-goals before main-goals, and the installation of dependencies is a sub-goal that has to be completed before the main-goal may be attempted. (If the order was reversed and the installation of the port succeeded but the installation of a RUN_DEPENDS port failed thereafter, calling "make install" would find the port being installed and would not make another attempt to install the run dependencies). You can use "portmaster -t" to force portmaster to provide RUN_DEPENDS before building a port, but that can result in much overhead and can cause dependency loops. If a RUN_DEPENDS target is required before a port can be staged or packaged, then it actually is a build dependency and should be declared as such. -- You are receiving this mail because: You are the assignee for the bug.