[ Please don't Cc: public replies to me. ]
Paul Slootman:
> I reported a similar problem with the xview packages yesterday. I've
> been strace-ing dpkg, and what happens is this:
>
> symlink("/etc/blabla", "/usr/doc/xview/blabla.dpkg-new");
> chown("/usr/doc/xview/blabla.dpkg-new", 0, 0);
>
> This fails if /etc/blabla doesn't exist already. This only happens with
> some packages, because in others the file being linked to is in the
> data.tar.gz file earlier on, so it exists. A quick workaround is
> "touch /etc/blabla" before running dpkg, I've discovered. Not good,
> however.
If I have understood things correctly, chown is supposed to follow
symlinks. If one wants to operate on the symlink itself, one needs to
use lchown. However, our libc (libc6.1-dev version 2.0.7pre1-1) says,
when linking:
warning: lchown is not implemented and will always fail
lchown seems to be a new addition to the kernel.
> > (Linus put lchown() on the old chown() system call number, thereby
> > retaining backwards binary compatibility).
>
> Hmm, maybe not yet in 2.1.87? I'll try the latest next week.
2.1.88 has the problem.
Attachment:
pgpptMF1AeYrJ.pgp
Description: PGP signature