tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Half-installed packages



Hi,

as some of you know well, I do pkgsrc bulk builds for various of our
systems.  Recently my NetBSD/macppc 5.0 system suddenly jumped it's
progress meter from around 65% complete to 100% complete, and the
resulting bulk build report showed a large number of broken packages.

It turns out that the reason for the failure was that I was (basically)
using the macppc GENERIC kernel, and it does not have COMPAT_LINUX
turned on.  So, during the build of the suse100_base package when it
wants to run the Linux ldconfig executable, it fails (segfaults, not
"illegal system call", BTW).  However, the package still got built and
installed in the local repository.

Now, the next step is where I'm guessing a bit, but some other package
which required the suse100_base package wanted to install it, something
failed (possibly in the install script?) causing the suse100_base
package to become "half-installed", in that the corresponding
/var/db/pkg directory for the package did not have the +CONTENTS file.

This caused pkg_delete to refuse to remove the package, and subsequently
caused *all* the packages past that point to fail to build due to this
error.

I think this points to a lack of robustness in the package tools,
perhaps first and foremost in that pkg_add should not half-add a package
if something goes amiss during installation, but also that pkg_delete
ought to be able to cope with this sort of problem.  Especially since
the only manual remedy I could find to deal with the problem was simply
to remove the suse100_base directory in /var/db/pkg and run "pkg_admin
rebuild" -- why could not pkg_delete do that (at least the removal)
itself?

Regards,

- Håvard


Home | Main Index | Thread Index | Old Index