portmaster some_port vs. portmaster 'some_port*'

Doug Barton dougb at FreeBSD.org
Wed Jan 14 14:11:14 PST 2009


Ion-Mihai Tetcu wrote:
> Hi,
> 
> 
> Maybe I'm not reading the man page correctly, but I would expect 
> portmaster, if invoked with a wild-card, to:
> - first update the dependencies of the ports matched by the 'some_port*' it
> gets on the command line
> - then to update the ports matched by said wild-card in dependency order.

That's close to what actually happens. We actually have two issues
here, so I'll address them separately.

When portmaster gets multiple ports on the command line (whether via a
glob or via a list) the initial portmaster process acts like a task
scheduler. The parent spawns new portmaster processes for each
individual port and keeps track of the various issues such as
dependencies already updated, etc. When all the ports listed have been
updated the parent cleans up the temp files and exits.

Thus, if you were to feed it a list like this:
portmaster port1 dep1-of-port1 port2 dep2-of-port1
it would do the configure phase on port1 which would unconditionally
include the configure phases of dep1 and dep2 since they are on your
list, as well as the configure phase for port2 of course. When the
first child process (updating port1) exited the parent would see that
dep1 has already been done and skip to port2, then it would see that
dep2 was already done as well, and it would proceed to the build phase.

So, in theory there should have been no difference between your
2_ports and wildcars logs, but somehow portmaster acted properly in
the first case, but thought everything was up to date in the second.
That does look like a bug.

The other issue is that claws-mail failed to configure. Whether that's
because all the dependencies were not up to date or because of a
problem with that port, I do not know.

To debug the first problem please add a -x to the shebang line in
/usr/local/sbin/portmaster and then run it in a script session like
this: portmaster -vDHB claws-mail\*
and send me the script output in private mail. If the build fails send
me the log file for that too please.

Doug

-- 

    This .signature sanitized for your protection



More information about the freebsd-ports mailing list