# portmaster, deleted ports and aborted updates



## levinas69 (Jun 21, 2009)

Hi all,

I am utterly exasperated with portmaster and looking for advice.

I am doing a system upgrade to 7.2.  Kernel upgrade went fine and now upgrading the packages.  The problem is that portmaster, in its infinite wisdom, aborts the update every time it encounters a port that has been deleted.  

There seems to be no force or ignore switch on portmaster to tell it quit nattering and get on with job.  The -x option only seems to work for a single package, and it seems that there are multiple deleted ports on my system.  Pkg_delete reports multiple dependencies for the delete ports.

Any suggestions on how to get portmaster to cooperate?  Is portupgrade any better?

Thanks!


----------



## anomie (Jun 21, 2009)

A couple things come to mind: 

 After performing a base system upgrade from 7.1 -> 7.2, it is not necessary to upgrade installed packages. (After upgrading across major versions - e.g. 6.4 -> 7.2 - it is, though.) 
 If you're saying that packages with dependencies were somehow deleted (which is making portmaster cranky), then it might be prudent to _back up_ your package config files and start fresh -- delete all packages and install them again, letting proper dependencies get reinstalled.


----------



## levinas69 (Jun 21, 2009)

Hi Anomie,

Thanks for your thoughtful reply.  I didn't realize that a upgrade of installed packages wouldn't be required between, say, 7.0 and 7.2.  So, this may just be an exercise in futility.  That admitted, it's now the principle of the darn thing.  

It's not, I think, an issue of package dependencies having been removed.  The message I get is that:  "The x11-drivers/xf86-video-vga port has been deleted: Removed"  And then portmaster simply declares that it is aborting update.  There is, as far as I can see, limited help using the -x option since that gets me past xf86-video-vga but I get the same message for a different port later.  There seems to be no way to keep adding further exceptions. (!)

Now, I presume that the xf86-video-vga port has been removed from the port tree.  So far as I know my port collection is clean.  I deleted /usr/port and updated with "portsnap fetch".

Am I really in the position of cleaning out all the packages and beginning from scratch?  There must some port management tool that has some -getonwithit option that basically says "shut up and update"!

Thanks again for your help.


----------



## DrJ (Jun 21, 2009)

You can try portupgrade (in ports).  It handles some of these issues better.  OTOH, there are some ports that upgrade better with portmaster (ImageMagick being one of them).


----------



## anomie (Jun 21, 2009)

I see what you mean. Sure enough: 

```
> grep 'BROKEN' /usr/ports/x11-drivers/xf86-video-vga/Makefile
BROKEN=         Needs to be removed
```

I'm not sure portmaster's -x option is the right approach anyway, as the same problem would come back to bite you next upgrade as well. 

I have not been in the precise situation you are describing, but what I would first is experimenting with portmaster's -s option (clean up stale ports). If that is not helpful, could you just delete the "removed" ports as you come across them and then restart portmaster afterwards? 

Finally, if neither of those yields results, check the portmaster(8) manpages for the section describing: 


> /var/db/pkg/*/+IGNOREME



It may not be a proper fix, but it should let portmaster get on with his business.


----------



## levinas69 (Jun 22, 2009)

Thank you all for your helpful, kind advice.  It was all thoughtful and all helpful.

The +IGNOREME approach suggested by Anomie does the job, though it takes some effort.  The portupgrade approach (suggested by DrJ) worked without fiddling and it produces a nice output at the end of ignored, skipped and failed ports.  Slick.  For the time being, I am a fan of portupgrade -- until I learn better of course.

Thanks again,
Jay.


----------



## DrJ (Jun 22, 2009)

Just remember to use portsdb to keep track of what you have.  Dru Lavigne wrote a good article on it on the O'Reilly site: http://www.onlamp.com/pub/a/bsd/2003/08/28/FreeBSD_Basics.html

The article is old, but so is portupgrade.

Both portupgrade and portmaster are used actively.  /usr/ports/UPDATING usually lists upgrade commands for both.


----------



## phoenix (Jun 22, 2009)

How do you expect portmaster to behave, when the installed port is not available in the ports tree?  Portmaster is very much a "do what I tell you, not what you think I might want you to do" program.  You tell it to update a port, it sees that the port directory no longer exists, it tells you about so you can fix it.  9 times out of 10, the fix is "remove the installed package".

This is one more reason that (IMO) the *-a* option for portmaster/portupgrade should be removed.


----------

