Date: Tue, 19 Feb 2013 17:27:57 +0400 From: Andrey Chernov <ache@freebsd.org> To: Brooks Davis <brooks@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r246913 - head/etc Message-ID: <51237DDD.90301@freebsd.org> In-Reply-To: <5123621F.1050000@freebsd.org> References: <201302171306.r1HD6xGM028562@svn.freebsd.org> <20130218225511.GC91067@lor.one-eyed-alien.net> <512358A5.7050800@freebsd.org> <5123621F.1050000@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Forget about -C and the patch, this bug shows itself with pure install
without -C too. install does not acts like 'ln -f'. Here is minimal test:
#!/bin/sh
mkdir b
install -l s b a
echo Pass 1
ls -al a b
install -l s b a
echo
echo Pass 2
ls -al a b
# bug
And its output (notice b -> b):
Pass 1
lrwxr-xr-x 1 ache wheel 1 19 Feb 17:15 a -> b
b:
total 6
drwxr-xr-x 2 ache wheel 512 19 Feb 17:15 .
drwxr-xr-x 32 ache wheel 2560 19 Feb 17:15 ..
Pass 2
lrwxr-xr-x 1 ache wheel 1 19 Feb 17:15 a -> b
b:
total 6
drwxr-xr-x 2 ache wheel 512 19 Feb 17:15 .
drwxr-xr-x 32 ache wheel 2560 19 Feb 17:15 ..
lrwxr-xr-x 1 ache wheel 1 19 Feb 17:15 b -> b
On 19.02.2013 15:29, Andrey Chernov wrote:
> This patch makes install -C, -S and default (-c) to do the same for links,
> as 'ln -f'. Not well tested yes due to lack of time.
>
> --- xinstall.c.bak 2013-02-19 15:20:16.000000000 +0400
> +++ xinstall.c 2013-02-19 15:24:30.000000000 +0400
> @@ -754,7 +754,7 @@
> target = (lstat(to_name, &to_sb) == 0);
>
> if (dolink) {
> - if (target && !safecopy) {
> + if (target) {
> if (to_sb.st_mode & S_IFDIR && rmdir(to_name) == -1)
> err(EX_OSERR, "%s", to_name);
> if (to_sb.st_flags & NOCHANGEBITS)
>
> On 19.02.2013 14:49, Andrey Chernov wrote:
>> On 19.02.2013 2:55, Brooks Davis wrote:
>>> On Sun, Feb 17, 2013 at 01:06:59PM +0000, Andrey A. Chernov wrote:
>>>> Author: ache Date: Sun Feb 17 13:06:59 2013 New Revision: 246913
>>>> URL: http://svnweb.freebsd.org/changeset/base/246913
>>>>
>>>> Log: In 'make hierarchy' don't install /sys/sys pointing to
>>>> usr/src/sys but just /sys pointing there
>>>
>>> Did you have the latest install sources when you hit this? It
>>> should be emulating "ln -sfh" which would do the right thing.
>>>
>>> -- Brooks
>>>
>>
>> Yes, very latest current, just standing in /usr/src and typing 'make
>> hierarchy' and fail. I suspect the difference which plays role is
>> make.conf:INSTALL=install -C which is common practice since old
>> days. I.e. it may don't delete old symlink with -C, but use it as
>> directory instead. I can't check this right now, maybe later.
>>
>
>
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (MingW32)
iEYEARECAAYFAlEjfeMACgkQVg5YK5ZEdN3BKACcC8hhm6C4K/s718IZMPGQCyBD
dlwAn35vqY3yZ82AYXjcyQLMVELbZgZx
=lyS4
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51237DDD.90301>
