emacs-bug-tracker
[Top][All Lists]
Advanced

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

[debbugs-tracker] bug#10468: closed (BUG: Severe or critical - deletes e


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#10468: closed (BUG: Severe or critical - deletes existing files and leaves nothing. (cp))
Date: Mon, 09 Jan 2012 21:43:03 +0000

Your message dated Mon, 09 Jan 2012 14:41:22 -0700
with message-id <address@hidden>
and subject line Re: bug#10468: BUG: Severe or critical - deletes existing 
files and leaves nothing. (cp)
has caused the debbugs.gnu.org bug report #10468,
regarding BUG: Severe or critical - deletes existing files and leaves nothing. 
(cp)
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
10468: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10468
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: BUG: Severe or critical - deletes existing files and leaves nothing. (cp) Date: Mon, 09 Jan 2012 13:19:43 -0800 User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666


I was trying to copy a font dir from a unix to a windows machine.

Problem is there are duplicates -- where only the case differs...

On unix, I've run a 'dedup' in my font dir, that joined any files that were the
same so they are hard links to each other. (made sense at the time... ;-) ).

windows treats different cased file names as the same.

Along comes cp, on cygwin, .. but I don't think this is a cygwin bug, as
it's doing what it is supposed to do.. it is cp  that is problematic.

Note, in the below, I an alias for cp is in effect:

alias cp='cp --preserve=mode,timestamps'

i.e. by default, I try to preserve 'simple'-permissions, and timestamps.


First I tried:

/usr/share/fonts> cp -avu //bliss/usr_share/fonts/. .


Got:

removed `././Adobe (afm) fonts/Symbol.afm'
cp: cannot create hard link `././Adobe (afm) fonts/Symbol.afm' to `././Adobe (afm) fonts/symbol.afm': No such file or directory
removed `././Adobe (afm) fonts/cmr10.afm'
cp: cannot create hard link `././Adobe (afm) fonts/cmr10.afm' to `././Adobe (afm) fonts/CMR10.afm': No such file or directory
removed `././Adobe (afm) fonts/cmex10.afm'
(and many more... )

It removes an existing file 'Symbol', because because it sees that 'Symbol' is 
not
a hard link to 'symbol'; I specified "-a" to make an exact copy, so it's trying to copy links.

But by removing 'Symbol', it removes 'symbol' and THEN can't link to it...
thus 'symbol' is gone from the local dir.
---
ok, at this point, I would consider it 'my bad, for using cp on windows (it used to work without these issues, not sure what has changed)...


Then I tried the less strict:

cp -rvu /usr/share/fonts> cp -rvu //bliss/usr_share/fonts/. .

figuring without the "-a" it wouldn't try to force linking, thus no prob... ... well...
removed `././OTF/AJensonPro-Bold.otf'
cp: cannot create hard link `././OTF/AJensonPro-Bold.otf' to `././OTF/ajensonpro-bold.otf': No such file or directory
removed `././OTF/AJensonPro-BoldCapt.otf'
cp: cannot create hard link `././OTF/AJensonPro-BoldCapt.otf' to `././OTF/ajensonpro-boldcapt.otf': No such file or directory
removed `././OTF/AJensonPro-BoldDisp.otf'
------
?!!?! Why is it trying to create hard links again? I didn't specify preserve links!?!
(i.e. this is a cp BUG...)


Well if I could just get it to copy them and not try to link them... so it copies them twice..
at least they get here...

so I try the only thing that might not remove files "n":

 cp -nrvu //bliss/usr_share/fonts/. .

and...

removed `././Adobe (afm) fonts/cmbx5.afm'
cp: cannot create hard link `././Adobe (afm) fonts/cmbx5.afm' to `././Adobe (afm) fonts/CMBX5.afm': No such file or directory
removed `././Adobe (afm) fonts/cmbx7.afm'
cp: cannot create hard link `././Adobe (afm) fonts/cmbx7.afm' to `././Adobe (afm) fonts/CMBX7.afm': No such file or directory
removed `././Adobe (afm) fonts/cmmi10.afm'

... *sigh*...
my poor cumberland fonts... so sad!
um.... hey, if it shouldn't have removed them on -rvu, it doubly shouldn't have done so on
when I told it "-n" (--no-clobber) don't clobber existing files...



DOUBLE BUG!....

 cygcheck -f /bin/cp
coreutils-8.14-1







--- End Message ---
--- Begin Message --- Subject: Re: bug#10468: BUG: Severe or critical - deletes existing files and leaves nothing. (cp) Date: Mon, 09 Jan 2012 14:41:22 -0700 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111222 Thunderbird/9.0
tag 10468 notabug
thanks

On 01/09/2012 02:19 PM, Linda Walsh , <address@hidden> wrote:
> 
> 
> I was trying to copy a font dir from a unix to a windows machine.
> 
> Problem is there are duplicates -- where only the case differs...

The problem is not in coreutils, but in your operating system's
limitations, and in your configuration.  Windows (and thus Cygwin) can
be put in a mode where it preserves case (and I highly recommend doing
so if you want your example to work):
http://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive

Without that setting, there is nothing that coreutils can do on your
behalf: the default case-insensitive behavior of Windows violates POSIX,
and forcing coreutils to add bloat to work around this violation is
rather difficult and unpalatable compared to all other operating systems
that already follow POSIX.  So I am closing the upstream coreutils bug
report.

There may be a way to make the cygwin port of coreutils smarter about
case-sensitive issues when the Windows setting is case-insensitive, but
it would be specific to the cygwin port.  Meanwhile, I'm not convinced
it is worth slowing down the common case by checking for case clash on
all operations, since most users that either avoid case clash or have
the registry setting on, just to help out the rare case of a user that
has case clash but the registry setting off.  You are more than welcome
to discuss this further on the cygwin list, and preferably provide
patches if you want behavior changed, but again, that would most likely
be cygwin-specific and does not need to involve the upstream coreutils
list (the cygwin port of coreutils already carries several other patches
for dealing with non-POSIX issues that don't need to be ported back
upstream, such as how to handle .exe suffixes).

>> cp -rvu /usr/share/fonts> cp -rvu //bliss/usr_share/fonts/. .
> 
> figuring without the "-a" it wouldn't try to force linking, thus no
> prob... ... well...
> removed `././OTF/AJensonPro-Bold.otf'
> cp: cannot create hard link `././OTF/AJensonPro-Bold.otf' to
> `././OTF/ajensonpro-bold.otf': No such file or directory
> removed `././OTF/AJensonPro-BoldCapt.otf'
> cp: cannot create hard link `././OTF/AJensonPro-BoldCapt.otf' to
> `././OTF/ajensonpro-boldcapt.otf': No such file or directory
> removed `././OTF/AJensonPro-BoldDisp.otf'
> ------
> ?!!?!   Why is it trying to create hard links again?  I didn't specify
> preserve links!?!
> (i.e. this is a cp BUG...)

If I understand correctly, your problem stems from the fact that your
source location has multiple hard links to the same file but with
different case, while your destination can't support two hard links to
the same file differing only in case, so there is no sane way to say
which of the two spellings should be copied.  It's not cp's fault that
you are copying from a permissive system to a restrictive one; and while
the errors may not be the most friendly, at least they are accurate.

-- 
Eric Blake   address@hidden    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]