portmaster / skip the ports marked as IGNORE

Hey,

I decided to upgrade all the installed ports [cmd=]portmaster -a[/cmd] but somewhere in the middle of the initial checking I've got this error:

Code:
===>>> Launching child to update lsof-4.86A,6 to lsof-4.86,7

===>>> Port directory: /usr/ports/sysutils/lsof

	===>>> This port is marked IGNORE
	===>>> requires kernel sources


	===>>> If you are sure you can build it, remove the
	       IGNORE line in the Makefile and try again.

===>>> Update for lsof-4.86A,6 failed
===>>> Aborting update

So, I want to know if there is any parameter available for portmaster to just skip this port automatically and continue upgrade other ports?

Regards,
Hadi
 
Hi Anti_Evil! It looks like you have no kernel sources, according to the ===>>> requires kernel sources message (see; Installing FreeBSD 9 source by wblock@). Try to install/add it and run again. Personally I would recommend another method of updating installed software, which does not require compilation, is short etc.

This method requires a sysutils/bsdadminscripts package and changed the value for PACKAGESITE to "STABLE" branch, which includes fresh packages, because packages for "STABLE" are updated every two weeks in contrast to the official "RELEASE" packages. So;

# pkg_add -r bsdadminscripts
# setenv PACKAGESITE [url]ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/[/url] [i][color="Gray"]Pay attention for architecture! In this case it is the i386.[/color][/i]
# pkg_upgrade -a -C [i][color="Gray"] Update all ports and repair conflicts.[/color][/i]

So this is one of the methods of upgrade packages. You asked about the options available in portmaster for skip update - Unfortunately, I did not use portmaster for a very long time, but the man pages could help - portmaster(8). See especially FILE subtitle and description for /var/db/pkg/*/+IGNOREME. 1. The port will be ignored for all purposes. (...) This includes dependency updates. 3. If you do a regular update of the port (...) you will be asked if you want to update the port anyway. And so on. Very interesting.

Best regards!
 
Unfortunately portmaster completely breaks the upgrade process when it runs into a port marked "ignore". this is a feature specifically added to portmaster by the maintainer, because under such condition "the user must decide appropriate action" (to paraphrase). You therefore have two options:
1. First get a report of ports to be upgraded and see if there are any marked as ignore, broken, or anything else that will break automated portmaster. Then,
# portmaster -a -x lsof -x someotherport
You need to place x (exclude) flag at the end and follow it with port name. To speed up portmaster you can also use -BCK flags (no Backup, No Clean before, no Klean after) or set these as default flags in /usr/local/etc/portmaster.rc. You of course delete everything under /usr/obj/ports (or wherever you have set your WRKDIRPREFIX) before doing as such.

2. I also use following method for some regularly problematic ports, but it is not an "advised" method
# touch /var/db/pkg/lsof-4.86,7/+IGNOREME
Creates an empty file named +IGNOREME in that folder. Then ports updating software (portmaster included) will ask you every time (without breaking) whether the port should be updated for each folder under pkg you have tagged as such - you just answer "no".
 
Thanks Beeble,

It was useful, so I'll stick to portmaster again. Actually, after I faced the problem I went with portupgrade tool which automatically ignores those problematic ports.
 
Back
Top