# portmaster -o without rebuild



## Beeblebrox (Mar 13, 2011)

I have had to use & run
`portmaster -o lang/python27 lang/python26`
several times. But this command also re-builds py27 each time, while the port is totally up-to-date.  I have tried the -oR, -orR variations but they do not work.  Is there a way to run this and not re-build, just do the substitution on the depends db?

Separately, why do I keep having to do this?  In my make.conf I already have:

```
WITH_PYTHON_VER=27
```
Now I'll have to add:

```
PYTHON26_PORT= lang/python27
```

Just realized: should it be USE or OVERRIDE instead of WITH?


----------



## SirDice (Mar 14, 2011)

Some ports simply require python26. If a port specifically depends on python26 it will install it regardless of what you've set as a default.


----------



## mousaka (Mar 14, 2011)

Shouldn't it be the other way round (to replace Python 2.6 with Python 2.7)?

```
portmaster -o lang/python27 lang/python26
```

Did you read /usr/ports/UPDATING?

mousaka


----------



## Beeblebrox (Mar 14, 2011)

@mousaka:


> portmaster -o lang/python27 lang/python26


Yes, obviously you are right;  slip of the keyboard when trying to do 1001 things at once.
Nevertheless, the command (even when correctly used) re-builds the alredy up-to-date port.  


> Did you read /usr/ports/UPDATING?


New ports I am trying to install keep pulling in py26, and I cannot override that.

If you are saying I could use this?: PYTHON_DEFAULT_VERSION; it is unclear as this it seems, keeps py26 onboard.

@SirDice:


> Some ports simply require python26. If a port specifically depends on python26 it will install it regardless of what you've set as a default.


DO NOT WANT 
I am thinking that just as you have OVERRIDE_LINUX_BASE_PORT= f10, could the same logic not be applied?


----------



## mousaka (Mar 14, 2011)

Beeblebrox said:
			
		

> New ports I am trying to install keep pulling in py26, and I cannot override that.


You did upgrade your site packages after upgrading to Python 2.7?

mousaka


----------



## Beeblebrox (Mar 20, 2011)

#1: I'll answer my first question from original post:  portmaster -o has to re-install the port each time, as during the installation it also processes links, triggers, etc for the ports which depended on the old (the one being substituted) port.  A conceivable workaround would be to keep a package of the port from the first build so that re-running the command would at least save on the build time (since make will produce the exact same package each time) and only the install would have to be processed.

#2 @ mousaka:
Thanks, but I think you are kind of missing the point my friend.  The update-site-packages procedure descibed in UPDATING is ONLY for 26 --> 27 update.  What if I wanted to update to 31?  The procedure does not support that as the Makefile in python limits the version to 2x.  My question was a "general settings" one and not an updating issue.  This is for a clean install, and should not have pulled in python26 in the first place  anyway.

# 3: @SirDice


> Some ports simply require python26. If a port specifically depends on python26 it will install it regardless of what you've set as a default.


You are right, and we have had this discussion before (or more accurately you have tried to help me about this in past threads).  I guess what I don't get at this point is that I expect backwards compatibility from the next generation port and in certain cases maybe I am not that interested whether this will break the port or not.  So I would VERY MUCH be able to override this.  Here is another excellent example of the problem: http://forums.freebsd.org/showthread.php?p=127979#post127979


----------

