Uggg!

Thomas Hummel hummel at pasteur.fr
Fri Jun 1 13:38:35 UTC 2007


On Fri, Jun 01, 2007 at 01:07:50PM +0200, [LoN]Kamikaze wrote:

Happend to me too (same cause : battery died while portupgrading -a).

I had nothing in lost+found and since >500 packages got corrupted, no
binary .tgz packages tweaking was an option.

After some search in 

	/usr/ports/Mk/bsd.port.mk

I came to the following solution :

  1) with trivial shell script/perl/whatever, build from 

	pkg_info: the package info for package 'ffmpeg-0.4.9.p1_7' is corrupt
	pkg_info: the package info for package 'gnucash-2.0.5_3' is corrupt

the file foobar holding 

  ffmpeg-0.4.9.p1_7
  gnucash-2.0.5_3
  linux-mplayerplug-in-3.35_1
  xprehashprinterlist-1.0.1

  2) with some additionnal shell/perl/whatever, transform foobar into
foobaz holding the path of the correspondint port directory :

so, foobaz will look like this (for other ports than those listed
above of course)

  /usr/ports/x11-fonts/linux-fontconfig
  /usr/ports/devel/linux-glib2
  /usr/ports/x11-toolkits/linux-gtk2
  
  3) re-generate +CONTENT files

    cat foobaz  | while read LINE;do cd $LINE;make do-package;make fake-pkg;done
  4) rebuild pkgdb

    rm /var/db/pkg/pkgdb.db
    pkgdb -fu

It seemed to work for me, except for one or two packages, one of them
missed the +COMMENT file as well (easy to re-create from the ports
makefile).

gnucash is still broken but maybe for some other issue.

maybe should INDEX* and INDEX*.db be recreated as well (I did it but I
don't remember at which stage of the above procedure).

Hope it'll help.

--
Thomas Hummel



More information about the freebsd-ports mailing list