ports-mngmt/portmaster fetch process

Doug Barton dougb at FreeBSD.org
Sun Jan 10 20:41:02 UTC 2010

On Sat, 9 Jan 2010, jhell wrote:

>> Doug,
>> Curious if I can get your comments about a possible change in portmaster to 
>> change the behavior of its fetch method.
>> While currently its fetch method is optimal for a environment that has a 
>> speedy ultra-fast connection, it runs havoc on a dial line "56k with 
>> speed-boost ;)"

I'm sorry to hear that you're having problems, but you're correct that the 
assumption is that the user will have a line faster than 56k. :)

>> Would it be possible to: ?
>> 1) Add a switch that changes its behavior to single fetches - or -
>> 2) Change the default of multiple fetches to single.
>> I opt for (2). as I really see no need have more then one fetch present at 
>> a time since it will wait for all others to finish anyway.

I'm not sure what you mean here. Currently the background fetching is done 
in parallel, and the only time portmaster waits is when the port it's 
actually trying to build hasn't finished downloading yet.

>> The problem I am noticing is that fetches that are over the amount of three 
>> consecutive connections just revolve until others have finished causing DNS 
>> lookups on a line that is already at full speed and resulting in slower 
>> transactions of the first three connections.

Not sure what you mean here either, the behavior you describe is not 
something that portmaster is doing.

>> If there is something that I have looked over in the script then please 
>> excuse me but I have not noticed a predetermined way to change this as it 
>> stands right now.

No, there is no option to affect how it does fetching at this time. I can 
think of two things that might help. The first would be for you to fetch 
the files in advance before portmaster starts trying to build things. Use 
whatever method you use to determine that there are packages that need 
updating (portmaster -L, pkg_version, etc.) and then do:
portmaster -F pkg-one-1.23 && portmaster -F pkg-two-2.34

The other alternative that I can think of off hand is a new option to 
disable background fetching altogether. This would allow the ports 
infrastructure to handle the fetching when you got to that port in the 
build list. You'd have to wait for each port to fetch before you can build 
it, but you would be guaranteed not to have more than one fetch working at 
a time. I don't think that would be too hard to implement, but before I 
start working on it I want to be sure that it is something that would meet 
your needs.

As for the other problem you described, are you saying that after you hit 
^C to kill portmaster while there were background fetches happening that 
the fetch processes were still there after portmaster exited? If so, 
that's a fairly serious problem. What version of portmaster and FreeBSD 
are you using?


More information about the freebsd-ports mailing list