delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2020/05/14/01:08:43

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0744E3851C37
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1589432866;
bh=1sjgE2JgZ8AN/hxIm+XVtSbL7fEFfftsEJIkcUqqqeQ=;
h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=ucLUNoIdF7+QnM29a5846fW75oUuHiBcLKXF1cQdQeJFfKWNyK5RNjVVqiNIte+HG
rPpFPaOD6IKPTi3aaPgj7xT4kH+C6Lg1n+BPgnWZX5naOGygTDhB3BKJVuD4j9ZJDu
0OkLb7IfL7hl3mmi++6cZAWAq4pCvYaX0lOt5HVY=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2C6BF385BF81
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to;
bh=thEhjw+TtDKiObgPNOywNZus8ZdBLI9zv4lnECAcUgM=;
b=ceORUEFVgzuz9YrwJXZLR7XDDUYB4RliU+nWCPXh3VOAZ2uCtbAxjoxKAPedul7VaI
oOD4I3bJAGVZktsgRHV0gNHz0bG0ttPhIFJ0/Ic2tytDDBgBHLh8rLpUzEbBnEe3lCZ7
DLnZS8NJVMzIIbU4zHMh/JQ9WEp8VdUDTFjLzHZ1huiiR2hkgBCa0EjNRuzNXbcf5mC1
rGPXqvtmvgWDn/YH+wgxyIYxO9izrmdOWWu19BSsw6tPVkBSx7CmlGpSv+dQjP3zu/k7
i4qOJkRGv2iIQ0t0QBFPOI7dSAh1JlCxg1Rn07OVPpuvnFRlbUrISUE7J83rTj5/d89z
YUQg==
X-Gm-Message-State: AOAM530IXV1En3HSVbZVPesAfogUQdx1Pprb/fduG+dCNfioQht5TyDT
1+VfPkF95b/kduDh/tx5thgHTwQqVJ8RrhO26r3aCGDmyT0=
X-Google-Smtp-Source: ABdhPJzjk0AgG3DhIjvR/ylNknkneus6rVYU2gy5zM2wGohe7CzC9kvsl1cvWQFzVVflajqea2uqDAcMHExp1V6q8Qs=
X-Received: by 2002:a50:d7c7:: with SMTP id m7mr2505153edj.101.1589432861544;
Wed, 13 May 2020 22:07:41 -0700 (PDT)
MIME-Version: 1.0
References: <CAKObCaoqPMb6ebbivTcKpWvF_ADhb1HNFgkkD3mpW6nARD4hWQ AT mail DOT gmail DOT com>
<CAKObCarg0JG5afmja7juRTF_=fGsjON8_L1MMPWOn-6iLBv65g AT mail DOT gmail DOT com>
<CAKObCareyjhR8+tQpMrGa3D1pghyksn0v5zmT-8FO-a8tp9BQQ AT mail DOT gmail DOT com>
In-Reply-To: <CAKObCareyjhR8+tQpMrGa3D1pghyksn0v5zmT-8FO-a8tp9BQQ@mail.gmail.com>
Date: Thu, 14 May 2020 01:07:11 -0400
Message-ID: <CAKObCaos1F-S5xo+YoH_n1zBKPJyG+CYbkyBAsCXyz-0ofQGdQ@mail.gmail.com>
Subject: Re: patch command incorrectly capitalizes filenames that live on
external USB flash drives
To: cygwin <cygwin AT cygwin DOT com>, Marco Atzeri <marco DOT atzeri AT gmail DOT com>,
Thomas Wolff <towo AT towo DOT net>,
Brian Inglis <Brian DOT Inglis AT systematicsw DOT ab DOT ca>
X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT,
FREEMAIL_FROM, GIT_PATCH_0, KAM_EXEURI, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,
SPF_PASS, TXREP, USB_DRIVES autolearn=ham autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <http://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Jason Gross via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Jason Gross <jasongross9 AT gmail DOT com>
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>

Also btw, the bug I reported to patch is at
https://lists.gnu.org/archive/html/bug-patch/2020-05/msg00000.html .
It's not clear to me if this is a cygwin issue or a patch issue.


On Wed, May 13, 2020 at 10:32 PM Jason Gross <jasongross9 AT gmail DOT com> wrote:
>
> By the way, when I run the same script on the same flash drive from WSL, it works fine, and does not capitalize the filename.  So this does seem to be a cygwin-patch specific issue...
>
> On Wed, May 13, 2020 at 8:31 PM Jason Gross <jasongross9 AT gmail DOT com> wrote:
>>
>> Sorry for the late reply; I can see replies to my messages at
>> https://cygwin.com/pipermail/cygwin/2020-April/244660.html, but
>> somehow I'm not receiving them in Gmail.  I've tried (re?)subscribing
>> to the cygwin mailing list, hopefully this fixes the problem.
>>
>> Thomas Wolff wrote:
>> > You are throwing a puzzle into the mailing list and if you are lucky,
>> > someone may like to solve it.
>> > But perhaps: can you try to minimize your test case, please.
>> > Something like: touch Makefile; ls (if that's it).
>>
>> I think there's some sort of misconception here.  touch and cat create
>> correctly capitalized files, and sed -i doesn't change capitalization,
>> even on my FAT32 drive.  patch is the only command I've found so far
>> which capitalizes filenames when modifying files.  I can try to dig
>> into the source code of patch and figure out a minimal C program that
>> breaks casing on files, but, come on, the fact that patch seems to
>> capitalize the file name of every file it modifies, and no other
>> utility does this, that seems like a pretty minimal test-case to me.
>> And anyway, the cygwin patch sources (version 2.7.4) are impossible to
>> compile, because safe.c can't find sys/resource.h and passing
>> -I/usr/include via CFLAGS hits an internal bug in patch's configure
>> script (search.h: present but cannot be compiled; sys/timeb.h: present
>> but cannot be compiled; fcntl.h: present but cannot be compiled).  (I've emailed
>> bug-patch AT gnu DOT org as requested by the configure script, but so far
>> https://lists.gnu.org/archive/html/bug-patch/ isn't showing anything
>> newer than January.)
>>
>> Brian Inglis wrote:
>> > That might be expected with FAT32, which is normally the default format for
>> > flash drives, for maximum compatibility with microcontrollers, which may not
>> > create VFAT Long File Names when file names are <= 8.3, so they appear as upper
>> > case.
>>
>> This does not explain why `ls` displays "Makefile" as "Makefile"
>> before I run `patch`, but displays the filename as "MAKEFILE" after I
>> run `patch`.  Nor does it explain why this happens to patch-modified
>> files, but not to files modified via sed -i.
>>
>> Marco Atzeri wrote:
>> > use a flash driver with NTFS and check the difference
>>
>> Indeed, I can confirm that this issue occurs when it's FAT or FAT32,
>> and does not occur under NTFS nor exFAT.
>>
>> > I doubt it is a patch issue
>>
>> Do you have another utility that you suggest I try that you think will
>> display the same problem as patch?  So far, `| tee -a`, `sed -i`,
>> `touch`, `>`, and `>>` all do not display this issue, while `patch`
>> does.
>>
>>
>> -Jason
>>
>>
>>
>>
>> On Tue, Apr 28, 2020 at 3:27 PM Jason Gross <jasongross9 AT gmail DOT com> wrote:
>> >
>> > Consider the following script in foo.sh:
>> > ```
>> > #!/usr/bin/env bash
>> >
>> > set -ex
>> >
>> > cd "$1"
>> > rm -rf foo
>> > mkdir foo
>> > cd foo
>> > cat > Makefile <<EOF
>> > a
>> > b
>> > c
>> > d
>> > e
>> > EOF
>> > cat > diff <<EOF
>> > diff --git a/Makefile b/Makefile
>> > index 9405325..86d2f8c 100644
>> > --- a/Makefile
>> > +++ b/Makefile
>> > @@ -1,5 +1,5 @@
>> >  a
>> >  b
>> > -c
>> > +ccc
>> >  d
>> >  e
>> > EOF
>> > patch -p1 -i ./diff
>> > ls
>> > ```
>> >
>> > If I run `./foo.sh /cygdrive/c/`, I get, as expected,
>> > ```
>> > + cd /cygdrive/c/
>> > + rm -rf foo
>> > + mkdir foo
>> > + cd foo
>> > + cat
>> > + cat
>> > + patch -p1 -i ./diff
>> > patching file Makefile
>> > + ls
>> > diff  Makefile
>> > ```
>> >
>> > If I instead run `./foo.sh /cygdrive/h/`, I get
>> > ```
>> > + cd /cygdrive/h/
>> > + rm -rf foo
>> > + mkdir foo
>> > + cd foo
>> > + cat
>> > + cat
>> > + patch -p1 -i ./diff
>> > patching file Makefile
>> > + ls
>> > diff  MAKEFILE
>> > ```
>> >
>> > My C drive is an internal SSD (NTFS), my H drive is an external flash
>> > drive (FAT32).  I installed cygwin with the commands:
>> > ```
>> > powershell -Command "(New-Object
>> > Net.WebClient).DownloadFile('http://www.cygwin.com/setup-x86_64.exe',
>> > 'setup-x86_64.exe')"
>> > SET CYGMIRROR=http://mirror.easyname.at/cygwin
>> > SET CYGROOT=H:\cygwin64
>> > SET CYGCACHE=%CYGROOT%\var\cache\setup
>> > setup-x86_64.exe -qnNdO -R %CYGROOT% -l %CYGCACHE% -s %CYGMIRROR% -P
>> > rsync -P patch -P diffutils -P make -P unzip -P m4 -P findutils -P
>> > time -P wget -P curl -P git -P
>> > mingw64-x86_64-binutils,mingw64-x86_64-gcc-core,mingw64-x86_64-gcc-g++,mingw64-x86_64-pkg-config,mingw64-x86_64-windows_default_manifest
>> > -P mingw64-x86_64-headers,mingw64-x86_64-runtime,mingw64-x86_64-pthreads,mingw64-x86_64-zlib
>> > -P python3
>> > ```
>> >
>> > Running `patch -v` says `GNU patch 2.7.4`.  Note that this happens
>> > regardless of whether I install cygwin itself on my external flash
>> > drive or on my internal HD.
>> >
>> > This came up when trying to run `opam install findlib` (which fails
>> > when the home directory is on an external USB drive).
>> >
>> > -Jason
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019