Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Nov 2010 01:33:22 -0800
From:      Joel Ray Holveck <joelh@piquan.org>
To:        ruby@freebsd.org
Cc:        wtp@bsdserwis.com, tobiash@gmail.com, shoesoft@gmx.net
Subject:   [FIX] portupgrade fails if BEFOREDEINSTALL is set
Message-ID:  <9FA7F784-CA43-4E6B-8EA0-EE89D27DCE3A@piquan.org>

next in thread | raw e-mail | index | archive | help

--Apple-Mail-6-553273615
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

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 ruby@freebsd.org 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=

--Apple-Mail-6-553273615--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9FA7F784-CA43-4E6B-8EA0-EE89D27DCE3A>