Bug in portupgrade

KOMATSU Shinichiro koma2 at lovepeers.org
Sun Jul 31 02:35:10 GMT 2005


Hello.

Olivier Certner wrote:
> Le Mardi 12 Juillet 2005 19:39, Florent Thoumie a écrit :
> 
>>Le Mardi 12 juillet 2005 à 12:55 -0400, Kris Kennaway a écrit :
>>
>>>On Sun, Jul 10, 2005 at 11:13:12PM +0200, Olivier Certner wrote:
>>>
>>>>	Hi,
>>>>
>>>>	There is a bug with portupgrade when it is used to upgrade already
>>>>compiled and installed ports for which some dependencies have been
>>>>deleted in the package database. This causes a crash in the function
>>>>'deorigin' in pkgdb.rb.
>>>>
>>>>	Since I don't know the internals of portupgrade, I don't know if it's
>>>>normal to call 'deorigin' with its argument set to nil. If it is, then
>>>>the patch below might be useful (beware, I don't know any ruby, I've
>>>>just tried something and it works), if it is not, I only can provide
>>>>the stack (see below) in order for maintainers to seek the faulty
>>>>callers.
>>>
>>>Please talk to the port maintainer.
>>
>>	Yeah, and good luck :)
>>
>>	Otherwise, he can try to pkgdb -F or remove pkgdb.rb and re-run
>>	portupgrade.
> 
> 
> 	This doesn't work in fact. I'm forwarding these mails to the maintainer.

Sorry for my late reply, but would you try out the following patch?


Index: lib/portsdb.rb
===================================================================
--- lib/portsdb.rb      (revision 37)
+++ lib/portsdb.rb      (revision 38)
@@ -846,7 +846,7 @@

    def all_depends_list(origin, before_args = nil, after_args = nil)
      if !before_args && !after_args && i = port(origin)
-      i.all_depends.map { |n| origin(n) }
+      i.all_depends.map { |n| origin(n) }.compact
      else
        all_depends_list!(origin, before_args, after_args)
      end


More information about the freebsd-hackers mailing list