In pkg_deinstall, in get_beforedeinstall_command, there's a line:

  commands.each { |cmd| cmd.sub!(/^[;\s]+/, '') if !cmd.nil }

I'm kinda out of my area here, but I'm pretty sure that method should be 
"nil?", not "nil".  As it stands, portupgrade fails to upgrade anything if 
BEFOREDEINSTALL in pkgtools.conf returns anything.  (The example in the .conf 
file's comments returns a command for all packages, although it frequently is 
an empty string.)

I've seen a couple of references to this by searching on Google, but I'm not 
aware of anybody having fixed it.  The primary symptom is that portupgrade will 
build but during the deinstall will stop working on that package with no clear 
error message, and the reason given in the "why the upgrades failed" summary is 
"undefined method `nil' for "":String". I've seen people asking about this on 
freebsd-questions and freebsd-ruby, but haven't really searched that hard.  (I 
cc'd the people I saw asking about it.)

I'm sending this to [email protected] because that's what's listed as the 
maintainer for portupgrade; let me know if there's somewhere else it should go. 
 I don't subscribe to the ruby list, and I apologize if this has been discussed 
here before.

Please copy me on all replies, since I'm not on the list.

Thanks,
joelh

Reply via email to