| delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org C5E083840C2F |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
| s=default; t=1589423562; | |
| bh=hqfLpwCFFYiM5qaMaYiaDIK8Q1c6AdEML4/E+KaW2MM=; | |
| 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=cpjjPmdE9mfQpSooIZqWKiKOzHOEU3z85m8qr5rtj5SvIwTTdoSSCIXzT+bqCVh8R | |
| fzOcnv3X103NtjyZu3sRXs78Lx9CKT01IjvegvWiE7qd4zVUuOUte3dPzvk5KBvyTt | |
| O5dz+BEvyE6ov48vB4zy/js50UUcIEdN3rfGdORQ= | |
| X-Original-To: | cygwin AT cygwin DOT com |
| Delivered-To: | cygwin AT cygwin DOT com |
| DMARC-Filter: | OpenDMARC Filter v1.3.2 sourceware.org A0C83386F037 |
| 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=v1YIwNRRdePhMCmonZAJG/7QA6nJNJKbudw1tftubec=; | |
| b=m+veN89cnT/X6PstuZyEhkj5/ZAhfyln5UI8EB27w7ChLj3gpxRDlIbw1SlE79aZ3C | |
| 9EBRH3cpZbA6Al0D+8Z9CY2putwjj5KUjO3p5D5zPvTZBNSc4wshLm0aRpdf+Lv5UhyD | |
| xx/h0jHVVG3zK68ZdPrTBnBNC1sHQOupZ09VEZShIzDgD7n8ie+f9L1cVAdKPCcGThAY | |
| oKtwVNhf7GJOUeprnaj1owpWYwyCcjGj+znDIk4qwgdFGFZsxMMn9n1ygrSnr5JNIOzV | |
| 6OmQFpI63IZqhFIWOflZWzptnNry8udxtsTWi+3Qhi1z42nvMUT2VHQZ6SVXidD8DuXY | |
| eNIw== | |
| X-Gm-Message-State: | AOAM5303ZK+DMtBwsWzcyyWIlfCMS9A/VK9wPkgai2qm7T6iiJXTdYo+ |
| bK4KhY/YOBzGpXctF9N7yFv1x3CA9hRyyXyCTn3TkhZF | |
| X-Google-Smtp-Source: | ABdhPJzN8BDfAstiXBAPsQHxnM3TU3P/ptEDTavq5bhRuCX3wEeeI6QpFy8FDjnRopvZk1qYu6hL4RLYXbZRXwvNWxg= |
| X-Received: | by 2002:a50:8749:: with SMTP id 9mr2109568edv.164.1589423557137; |
| Wed, 13 May 2020 19:32:37 -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> | |
| In-Reply-To: | <CAKObCarg0JG5afmja7juRTF_=fGsjON8_L1MMPWOn-6iLBv65g@mail.gmail.com> |
| Date: | Wed, 13 May 2020 22:32:06 -0400 |
| Message-ID: | <CAKObCareyjhR8+tQpMrGa3D1pghyksn0v5zmT-8FO-a8tp9BQQ@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=-11.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, HTML_MESSAGE, 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-Content-Filtered-By: | Mailman/MimeDel 2.1.29 |
| 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> |
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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |