Limitations of Ports System
ota at j.email.ne.jp
Fri Dec 14 19:52:21 PST 2007
On Thu, 13 Dec 2007 21:58:57 +0100
Erik Trulsson <ertr1013 at student.uu.se> wrote:
> One shortcoming is the lack of locking making parallell builds a bit unsafe.
> If you try to build both port A and port B at the same time, and both A and
> B depends (directly or indirectly) on port C which is not installed, then
> you can esily end up having two processes both trying to build C at the same
> time. This usually confuses both builds very badly making them fail.
> I also don't think there is any locking on /var/db/pkg making possibly
> somewhat unsafe trying to register the installation of two ports/packages at
> the same time. I have never noticed any actual problems with this though.
> Some sort of locking, making parallel builds safe, should be possible to
> add to the ports system without doing any sweeping changes.
> (I did look briefly at the makefiles, but did not find any obvious place
> to put the locking. I probably just did not look hard enough.)
The ports system is to "install" a new port. It won't be easy to accomplish
what you suggest. For example, dependencies are checked one at a time.
So, even if you want to run multiple processes on LIB_DEPENDS, there is no
easy way to control CPU load.
It is a better idea for other "ports UPGRADE" utilities to take care of your
suggestions. Indeed, I have been developing such utility myself. If you
want to try, I can give out for testing. There are 2 known issues with my
tool, yet: 1. no good way to run 'make config', yet, and 2. even if
less LIB_DEPENDS are required due to less selected OPTIONS, my tool does
not fully eliminate these dependencies.
More information about the freebsd-ports