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