View Single Post
  #7   (View Single Post)  
Old 8th July 2009
BSDKaffee's Avatar
BSDKaffee BSDKaffee is offline
Real Name: Jason Hale
Coffee Addict
 
Join Date: May 2008
Location: Wintersville, Ohio
Posts: 212
Default

Quote:
Originally Posted by delboy View Post
I managed to update the six failed packages with FORCE_PKG_REGISTER=yes in /etc/make.conf, as I expect you know, it overwrites the existing one without deleting it. Would like your opinion on whether or not that is a good idea.
It is not a great idea to do this since between updates, the contents of the package might change. That means if the new package does not install a file that the old package did, then you still have that file on your system.

Quote:
Originally Posted by delboy View Post
After updating the six packages I tried make deinstall again but no good I still have the segfault.
Your /var/db/pkg is looking pretty corrupted. All of those ports that showed up in the output you posted need fixed. The problem is that @pkgdep should refer to a package that is a dependency and in your case all of those lines are blank. If pkgdb -F didn't work, then there really isn't an easy way to fix this.

Each of those empty lines should represent a package, so I think the first thing to do would be identifying the missing packages and make sure they are registered. Hopefully the DEPORIGIN comments are still in the +CONTENTS files. If so, you can use that to figure out what is supposed to go there. For example here are the first few lines of /var/db/pkg/librsvg2-2.26.0/+CONTENTS:
Code:
@comment PKG_FORMAT_REVISION:1.1
@name librsvg2-2.26.0
@comment ORIGIN:graphics/librsvg2
@cwd /usr/local
@pkgdep xineramaproto-1.1.2
@comment DEPORIGIN:x11/xineramaproto
@pkgdep xf86vidmodeproto-2.2.2
@comment DEPORIGIN:x11/xf86vidmodeproto
@pkgdep xextproto-7.0.5
@comment DEPORIGIN:x11/xextproto
@pkgdep renderproto-0.9.3
@comment DEPORIGIN:x11/renderproto
@pkgdep randrproto-1.3.0
@comment DEPORIGIN:x11/randrproto
You can see even if @pkgdep xineramaproto-1.1.2 just said @pkgdep, the origin is x11/xineramaproto and you could use that information to figure out "xinerama-1.1.2".

If there are no DEPORIGIN comments, I would just delete those blank @pkgdep lines since figuring it out would be very time consuming. They might just be extraneous and not refer to anything at all. It is hard to say without looking at all of those +CONTENTS files or comparing the output of (using librsvg2 as an example):
$ make -C /usr/ports/graphics/librsvg2 actual-package-depends | cut -f 1 -d : | sort -u
and
$ pkg_info -rx librsvg | grep "Dependency" | cut -f2 -d " " | sort -u

If you get the general idea that the blank @pkgdep lines are extraneous, I would just delete them and hopefully that will solve things.

If you feel like the blank @pkgdep lines really should be representing something, then I would try reinstalling each offending port using FORCE_PKG_REGISTER=yes. Be sure to do this from the ground up, though. That is, start with the package that everything else depends on. Check the +CONTENTS file to make sure the blank @pkgdep lines are gone.
Reply With Quote