# portmaster overload



## da1 (Apr 10, 2011)

Hi guys,

I have a 8.2 amd64 FreeBSD box, where I was asked to upgrade kde to the latest version (current version is kde4.5). I used *portmaster* for the job but it overloaded my putty connection by trying to upgrade package kde-base-runtime, over and over again.

Here is the output:

```
[root@mainserver /usr/ports/x11/kde4]# portmaster x11/kde4

[...]

===>>> Port directory: /usr/ports/net/qt4-network

===>>> Gathering dependency list for net/qt4-network from ports
===>>> Initial dependency check complete for net/qt4-network
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> attica-0.2.0,1 >> qt4-network-4.7.1
===>>> Continuing initial dependency check for x11-toolkits/attica
===>>> Initial dependency check complete for x11-toolkits/attica
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> attica-0.2.0,1
===>>> Continuing initial dependency check for x11/kdebase4-runtime

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-
4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-
4.5.5 >> kdebase-runtime-4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-
4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-
4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-
4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5

===>>> Port directory: /usr/ports/x11/kdebase4-runtime

===>>> Gathering dependency list for x11/kdebase4-runtime from ports

===>>> The dependency for x11/kdelibs4
       seems to be handled by kdebase-runtime-4.5.5

===>>> Launching child to update kdebase-runtime-4.5.5 to kdebase-runtime-4.6.2
        kde4-4.6.2 >> kdeaccessibility-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-
4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5 >> kdebase-runtime-4.5.5
^C
===>>> Exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for x11/kdebase4-runtime exiting due to signal

===>>> Build/Install for accessibility/kdeaccessibility4 exiting due to signal

===>>> Build/Install for x11/kde4 exiting due to signal
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
Terminated
[root@mainserver /usr/ports/x11/kde4]#
```

This is the second time this is happening to me and with the same meta-port. Last time, I had no patience and I just did the upgrade manually but this time I'm a bit more relaxed and I'm trying to find out the problem.

Has anyone come across this before?


----------



## jb_fvwm2 (Apr 10, 2011)

```
#cd /usr/ports/x11/kde4
#make build-depends-list | xargs -J % portmaster -d -B -P % 
# make run-depends-list | grep -v kdebase4 | grep -v workspace | (the three others too) | xargs -J % portmaster -d -B -P %
```
If that is all correct, it may be a workaround, maybe even quicker because packages may be used if available. (Disclaimer, I've only used it with other ports...)

```
and of course...
#/bin/rm -rf work
#pkg_delete -f /var/db/pkg/kde-4... && make install
```
after the top part.


----------



## da1 (Apr 10, 2011)

```
#make build-depends-list | xargs -J % portmaster -d -B -P % 
# make run-depends-list | grep -v kdebase4 | grep -v workspace | (the three others too) | xargs -J % portmaster -d -B -P %
```
Each of the previous cmd, overloads portmaster.

I didn't try the second part but instead I removed kdebase-runtime and reinstalled it, with portmaster. It's compiling now ....


----------



## gkontos (Apr 11, 2011)

da1 said:
			
		

> Each of the previous cmd, overloads portmaster.


I was testing KDE 4.6 upgrade from area51 when it first appeared and I had exactly the same problem with portmaster. Portupgrade -a did the job finally.


----------



## phoenix (Apr 11, 2011)

KDE really isn't something that should be blindly upgraded via *-a* or by upgrading the x11/kde4 port.  Instead, follow the directions in /usr/ports/UPDATING, if there are any.  And then do the upgrade in a piece-meal fashion:

start with the kdelibs* ports; that will pick up any Qt updates
then do the kdebase* ports; after that, you can restart KDE, if desired
then move on to any of the other ports (kdegames*, kdenetwork*, etc)
finally, do the kde4 meta-port to pick up any stragglers

Very. very. very rarely does *-a* or upgrading the KDE meta-port work, due to all the files that get moved around, and dependency chains that change, and so on.


----------



## da1 (Apr 11, 2011)

I agree with this phoenix but considering the year we are in, I say we should be able to upgrade a meta port easily and not manually by each package. I also agree with not using the *-a* switch but the situation here is a bit weird since portmaster overloads itself *ONLY* at the x11/kdebase4-runtime package and no other (KDE) package.

BTW, the manual upgrade of kdebase-runtime (using portmaster) completed successful. So, if I try to upgrade the kde metaport, portmaster overloads at the kdebase-runtime package but works fine if I do an upgrade of that package alone .... bug maybe ?


----------



## da1 (Apr 11, 2011)

So ... portmaster finished upgrading only kdebase-runtime but when I asked it to upgrade the kde4 meta-port, it has the same behavior of overload with the kdeedu package ....

This keeps getting better and better ...

LE:

```
20110324:
  AFFECTS: users of KDE SC 4
  AUTHOR: kde@FreeBSD.org

  KDE SC ports have been updated to 4.6.1. As usual a number of files were
  moved between packages, manual intervention into update procedure is
  required:

  # pkg_delete -f kdehier4\* kdebase-runtime-4\* kdebase-workspace-4\*
  # pkg_delete -f kdeedu-4\* kdeutils-4\*
  # portmaster -a
```

Of course I didn't read it ... why the heck should I ... grrrrrr. So I did that and now portmaster is compiling x11/kde4. Seems to be working and I expect no problems. Will post the final result though.


----------



## gkontos (Apr 11, 2011)

phoenix said:
			
		

> KDE really isn't something that should be blindly upgraded via *-a* or by upgrading the x11/kde4 port.  Instead, follow the directions in /usr/ports/UPDATING, if there are any.  And then do the upgrade in a piece-meal fashion:
> 
> start with the kdelibs* ports; that will pick up any Qt updates
> then do the kdebase* ports; after that, you can restart KDE, if desired
> ...



From /ports/UPDATING


> 20110324:
> AFFECTS: users of KDE SC 4
> AUTHOR: kde@FreeBSD.org
> 
> ...


Well that did not work for me and I had exactly the same symptoms like da1. But in my case portupgrade -a did work flawless.


----------



## danbi (Apr 11, 2011)

I have successfully upgraded KDE last time by following the entry in /usr/ports/UPDATING


```
20110324:
  AFFECTS: users of KDE SC 4
  AUTHOR: [email]kde@FreeBSD.org[/email]

  KDE SC ports have been updated to 4.6.1. As usual a number of files were
  moved between packages, manual intervention into update procedure is
  required:

  # pkg_delete -f kdehier4\* kdebase-runtime-4\* kdebase-workspace-4\*
  # pkg_delete -f kdeedu-4\* kdeutils-4\*
  # portmaster -a
```

No worries.

Note however, that following these instructions blindly usually only works if you really *follow* port updates. That is, you apply each such instruction as it arrives. Overlapping the instructions, like from a year ago until now is tricky - you need to understand what you are doing.
An much better option is described at the end of the portmaster man page --- remove and re-install all ports


----------



## da1 (Apr 11, 2011)

gkontos said:
			
		

> Well that did not work for me and I had exactly the same symptoms like da1. But in my case portupgrade -a did work flawless.



And don't you feel it's incredibly stupid to upgrade ALL packages just to fix one package? I for one do ...


----------



## da1 (Apr 11, 2011)

danbi said:
			
		

> An much better option is described at the end of the portmaster man page --- remove and re-install all ports



lol man .... =)))


----------



## gkontos (Apr 11, 2011)

da1 said:
			
		

> And don;t you feel it's incredibly stupid to upgrade ALL packages just to fix 1 package ?
> I for one do ...


You should really read the man pages or the handbook before jumping to conclusions.


----------



## da1 (Apr 11, 2011)

gkontos, the problem here has something to do either with portmaster, or with the kde metaport. I for one do not wish to upgrade all packages just because portmaster has a hiccup. I can upgrade kde manually and leave the other packages alone until I actually need to upgrade. The manual upgrade works fine but if I can, I like to automate stuff as much as possible.


----------



## danbi (Apr 12, 2011)

Source compilation of ports is somewhat complex task. Going to the port directory and typing *make install* works flawlessly only the first time. It may not even work if you have installed other ports long ago, that use the 'same' libraries/dependencies. For upgrading a port, you need to take into account many things. This is why portupgrade/portmaster exist, not in order to support people who think *portupgrade -a* will do it (whatever 'it' is).

Non-source upgrade of ports is usually much worse.

KDE is also very complex code. From version to version, even minor releases it changes use of various libraries and sometimes APIs. It's not very wise to upgrade "just" KDE, because many of the underlying libraries have changed as well.

In short, if you are not prepared to deal with these issues, follow the instructions at the end of the portmaster man page. Or don't update your ports. This is not a joke. 

For some ports, portmaster does better than portupgrade, for some ports it's the other way around.


----------



## da1 (Apr 12, 2011)

danbi said:
			
		

> KDE is also very complex code. From version to version, even minor releases it changes use of various libraries and sometimes APIs. It's not very wise to upgrade "just" KDE, because many of the underlying libraries have changed as well.



I wasn't referring about upgrading only KDE and not the dependent packages but was referring to upgrading kde (plus the stuff it depends on) but NOT ALL the other packages (ex: pure-ftpd, nagios, munin, etc - which have nothing to do with KDE). This is why I'm against doing *portupgrade -a* to fix my kde problem.

I realize there will be problems and I'm fine with it but this thread is about a problem in portmaster or the kde port.

After I upgraded kdebase-runtime and kdeedu with portmaster, I was able to do the upgrade of the meta-port. 

The question still stands, why did I run into problems when portmaster tried to upgrade kdeedu and kdebase-runtime as a kde (meta-port) dependency and not when I did a individual upgrade?


----------



## wblock@ (Apr 12, 2011)

portupgrade keeps an external database of dependencies.  portmaster does not, and it will sometimes reinstall a port more than once.  However, it should eventually work through that.


----------



## da1 (Apr 12, 2011)

Hmm ... I knew about the db thing but had no idea portmaster can install the same thing more than once .... good to know, thx.


----------



## DutchDaemon (Apr 12, 2011)

I cannot remember ever having seen that, at least not within the same run and/or using *-R* at the proper moment (which *portmaster* now actually suggests when a run is terminated with errors).


----------



## danbi (Apr 13, 2011)

da1 said:
			
		

> I wasn't referring about upgrading only KDE and not the dependent packages but was referring to upgrading kde (plus the stuff it depends on) but NOT ALL the other packages (ex: pure-ftpd, nagios, munin, etc - which have nothing to do with KDE). This is why I'm against doing portupgrade -a to fix my kde problem.



[...]



> The question still stands, why did I run into problems when portmaster tried to upgrade kdeedu and kdebase-runtime as a kde (meta-port) dependency and not when I did a individual upgrade?



This question was answered earlier in the thread. You had to follow the KDE port upgrade procedure, described in /usr/ports/UPDATING.

You could in theory, upgrade only KDE and all ports that it depends on. However, you should realize, that many other "independent of KDE" ports, may depend on the same other ports, that you upgraded in the process. Without upgrading the (other) dependent ports, there is significant chance that some will break.

One such example is gettext. If you are brave enough and update KDE and all ports it depends on, and are unlucky enough to have gettext be one of the upgraded ports, you may render lots of other, non-upgraded ports useless like, say rsync, git, sane, postgresql, even gmake - to name few -- if it so happens that the gettext library version (libintl) changes, none of this software will work and upgrading/recovering them will be pain.

This is why one should read and understand what /usr/ports/UPDATING has to say.


----------

