bin/57029: [PATCH] pkg_install: make more robust against corrupted
package database
Oliver Eikemeier
eikemeier at fillmore-labs.com
Fri Sep 19 20:40:12 PDT 2003
>Number: 57029
>Category: bin
>Synopsis: [PATCH] pkg_install: make more robust against corrupted package database
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Sep 19 20:40:09 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Oliver Eikemeier
>Release: FreeBSD 5.1-CURRENT i386
>Organization:
Fillmore Labs - http://www.fillmore-labs.com
>Environment:
System: FreeBSD nuuk.fillmore-labs.com 5.1-CURRENT
>Description:
If the package info files in /var/db/pkg/<packagename> become corrupted,
pkg_info and pkg_version react with various unhelpful error messages,
see also PR 57016
>How-To-Repeat:
# mkdir /var/db/pkg/corrupt_pkg_1.0
# touch /var/db/pkg/corrupt_pkg_1.0/+REQUIREMENTS
# pkg_version -v
pkg_version: unable to open +CONTENTS file
# cd /usr/ports/sysutils/pkg_install; make install
[...]
===> Installing for pkg_install-20030714_1
===> Generating temporary packing list
===> Checking if sysutils/pkg_install already installed
*** Error code 1
Stop in /usr/ports/sysutils/pkg_install.
# pkg_delete -f corrupt_pkg_1.0
pkg_delete: no such package 'corrupt_pkg_1.0' installed
>Fix:
A patch is available on
ftp://ftp.fillmore-labs.com/pub/FreeBSD/patches/patch-pkg_install-20030917_3.gz
MD5 (patch-pkg_install-20030917_3.gz) = 29ce1c8dd938fba5b3f68d8f2def5551
It fixes pkg_info, pkg_delete and gives more helpful messages for pkg_version:
# pkg_version -v
pkg_version: the package info for package 'corrupt_pkg_1.0' is corrupt
# cd /usr/ports/sysutils/pkg_install; make install
[...]
===> Installing for pkg_install-20030714_1
===> Generating temporary packing list
===> Checking if sysutils/pkg_install already installed
[...]
===> Registering installation for pkg_install-20030714_1
# pkg_delete corrupt_pkg_1.0
pkg_delete: the package info for package 'corrupt_pkg_1.0' is corrupt (use -f to force removal)
# pkg_delete -f corrupt_pkg_1.0
pkg_delete: the package info for package 'corrupt_pkg_1.0' is corrupt (but I'll delete it anyway)
pkg_delete: couldn't completely deinstall package 'corrupt_pkg_1.0',
only the log entry in /var/db/pkg/corrupt_pkg_1.0 was removed
This patch build on the patches in PR 56961 and PR 56989, which fix additional bugs described there.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list