# Make 'portmaster -a' skip broken ports?



## zirias@ (Dec 2, 2014)

Hi all, trying to upgrade all my ports using `portmaster -a`, I ran into a problem with security/pinentry, because the newest version doesn't build for qt4 using llvm. I tried investigating this, it seems the problems are deeply inside qt4/libc++, so there's definitely no easy fix.

I don't want to uninstall pinentry.

So the workaround for now seems to be `portmaster -a -x pinentry`. I'm just wondering whether there is a better way, e.g., telling `portmaster -a` not to stop on broken ports but just ignore them, leaving the old packages installed (as long as this doesn't create dependency problems)?


----------



## talsamon (Dec 3, 2014)

With the command `portmaster -L | egrep -B1 '(ew|ort) version|installed|dependencies| IGNORE|marked|update' | grep -v '^--'` and some grep and sed you can make a script.


----------



## chrbr (Dec 4, 2014)

Dear Zirias,
with ports-mgmt/portdowngrade you can achieve this. It downloads the revision you like to restore and nails the version to this revision. I just am not 100% sure if it needs some additional `pkg lock` or not. But if I remember correctly `portdowngrade` handles everything.

If you still have the desired version of security/pinentry in your ports collection `pkg lock` is already sufficient to fix this revision.


----------



## jalla (Dec 4, 2014)

chrbr said:


> Dear Zirias,
> If you still have the desired version of security/pinentry in your ports collection `pkg lock` is already sufficient to fix this revision.


Unfortunately, `pkg lock` won't keep `portmaster -a` from trying to upgrade. In case it builds it will just fail at installation of the locked port and then abort.
You could put 
	
	



```
alias portmaster portmaster -x pinentry
```
 in /root/.cshrc so you don't forget


----------



## zirias@ (Dec 4, 2014)

Hi, thank you all for the hints! I guess I'll try to script a solution along the lines of talsamon's suggestion. My /usr/ports is an svn working copy at the moment and I want to keep it that way (or, maybe, start using git-svn on it, for quick and easy local branching).


----------

