Subject: Re: CVS commit: othersrc/bootstrap-pkgsrc/mtree
To: Luke Mewburn <lukem@netbsd.org>
From: grant beattie <grant@netbsd.org>
List: tech-pkg
Date: 03/04/2003 18:10:56
On Sat, Feb 22, 2003 at 07:42:10AM +1100, Luke Mewburn wrote:

>   | Log Message:
>   | use chown() if we don't have lchown().
> 
> a "better" way to do this is provide a replacement lchown() in
> the compat library which does an lstat on the file and uses chown
> if the file is not a symlink, and barfs otherwise.
> see src/tools/compat/lchown.c and src/tools/compat/lchmod.c

I've done this now.

This means pax on platforms which do not have lchown/lchmod functions
will produce an error when trying to change the mode/owner of a symlink
(EINVAL). Previously it would blindly and silently change the symlink
targets.

The new behavior is more correct but may result in some
head-scratching. pax probably needs some additional checks before
calling lchown() or lchmod(). I haven't looked at what gnutar does
about this...

g.