Limitations of Ports System

Yoshihiro Ota 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.

Hiro


More information about the freebsd-ports mailing list