GNU bug report logs - #62607
cp --recursive --backup broken in 9.2

Previous Next

Package: coreutils;

Reported by: Kristian Klausen <kristian <at> klausen.dk>

Date: Sun, 2 Apr 2023 04:48:03 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Kristian Klausen <kristian <at> klausen.dk>
Subject: bug#62607: closed (Re: bug#62607: cp --recursive --backup broken
 in 9.2)
Date: Tue, 04 Apr 2023 11:03:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#62607: cp --recursive --backup broken in 9.2

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 62607 <at> debbugs.gnu.org.

-- 
62607: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62607
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Pádraig Brady <P <at> draigBrady.com>
To: Kristian Klausen <kristian <at> klausen.dk>, 62607-done <at> debbugs.gnu.org
Cc: bug-gnulib <bug-gnulib <at> gnu.org>
Subject: Re: bug#62607: cp --recursive --backup broken in 9.2
Date: Tue, 4 Apr 2023 12:02:50 +0100
On 03/04/2023 18:19, Pádraig Brady wrote:
> On 02/04/2023 13:40, Pádraig Brady wrote:
>> For completeness the correct repro is:
>>
>>      mkdir -p {src,dst}/foo
>>      touch {src,dst}/foo/bar
>>      cp --recursive --backup src/* dst
> 
> The attached two patches should address this.
> The first fixes the bug in gnulib (cc'd),
> while the second adds a test to coreutils.

Pushed.
Marking this as done.

thanks,
Pádraig


[Message part 3 (message/rfc822, inline)]
From: Kristian Klausen <kristian <at> klausen.dk>
To: bug-coreutils <at> gnu.org
Subject: cp --recursive --backup broken in 9.2
Date: Sun, 2 Apr 2023 00:40:07 +0200
[Message part 4 (text/plain, inline)]
Hi

After upgrading to coreutils 9.2-2 on Arch Linux the following:
mkdir -p src dst
touch {src,dst}/bar
cp --recursive --backup src/* dst
fails with:
cp: cannot create regular file 'dst/foo/bar': File exists

Running strace on cp I noticed:
renameat2(4, "foo/bar", 4, "foo/bar~", 0) = -1 ENOENT (No such file or 
directory)

In coreutils 9.1-3 the syscall succeeds:
renameat2(4, "bar", 4, "bar~", 0)       = 0

I assume renameat2 is called with the wrong oldpath and newpath in 9.2 
and that it should just be the basename and not the full relative path.

Cheers
Kristian Klausen
[OpenPGP_signature (application/pgp-signature, attachment)]

This bug report was last modified 2 years and 112 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.