Make 'portmaster -a' skip broken ports?

zirias@

Developer
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)?
 
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.
 
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.
 
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
Code:
alias portmaster portmaster -x pinentry
in /root/.cshrc so you don't forget
 
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).
 
Back
Top