"portmaster -o" behaves a little strangely (IMHO)

Conrad J. Sabatier conrads at cox.net
Tue Jan 24 14:19:19 UTC 2012

The behavior of portmaster with "-o <new port dir in /usr/ports>
<installed port>" (as the man page puts it), doesn't seem to be quite
what one would expect.

While endeavoring to upgrade the already installed lang/gcc44 to
lang/gcc46 using the command:

portmaster -CK -o lang/gcc46 gcc-

(I had already built, but not installed, gcc46, and didn't want any
cleaning done before or after, just in case something went wrong)

I got some rather unexpected results -- namely that, besides installing
gcc46, portmaster wanted to do a normal upgrade of lang/gcc44
within its own directory (from version to

Only after adding the "-i" (interactive) option to the command line and
answering the prompts did I get the desired operation, a direct upgrade
of gcc44 to gcc46.

I'm still in the process of acclimating myself to using portmaster,
having used portupgrade for years (yes, I know, I'm a little late to
the dance), so please bear with me if I'm coming across as a little
dense, but...

Is this the intended behavior?  It strikes me as a little peculiar,
portmaster's wanting to perform an entirely unnecessary (and
unrequested) operation (the upgrade of the original port within its own
directory).  It seems to render the automated performance of this type
of "third party" upgrade impossible.  I'm really not grasping the logic
of this arrangement.

# portmaster -CK -o lang/gcc46 gcc-

===>>> Port directory: /usr/ports/lang/gcc46

===>>> Gathering dependency list for lang/gcc46 from ports
===>>> Launching child to update gcc- to
        lang/gcc46 >> gcc-

(What is the preceding line -- with the ">>" -- and the similar one
below, supposed to be indicating exactly?  If it means what I think it
does, then it seems as if portmaster is misinterpreting the intention
of the "-o" option)

===>>> Port directory: /usr/ports/lang/gcc44

===>>> Gathering dependency list for lang/gcc44 from ports
===>>> Initial dependency check complete for lang/gcc44
	lang/gcc46 >> gcc- 
===>>> Continuing initial dependency check for lang/gcc46
===>>> Initial dependency check complete for lang/gcc46

===>>> The following actions will be taken if you choose to proceed:
	Install lang/gcc46
	Upgrade gcc- to gcc-

===>>> Proceed? y/n [y] (answered no here)

===>>> If you would like to upgrade or install some, but not
       all of the above try adding '-i' to the command line.

Sign me "Confused".  :-)

Conrad J. Sabatier
conrads at cox.net

More information about the freebsd-ports mailing list