public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Michael Wild <themiwi@gmail.com>
To: Achim Gratz <Stromeko@nexgo.de>
Cc: The Cygwin Mailing List <cygwin@cygwin.com>
Subject: Re: Forcing setup.exe not to create WSL symlinks
Date: Wed, 26 Aug 2020 22:15:11 +0200	[thread overview]
Message-ID: <CAALQ5rmk3NHaxyatOYxFRqsCTQ2QXt_NQFHOdGQGMHadtXMGSw@mail.gmail.com> (raw)
In-Reply-To: <CAALQ5rmWfeDm1H8dSgKcRbxJazDYeYFKyt-niCPp4KhbTJ9G4A@mail.gmail.com>

On Wed, Aug 26, 2020 at 9:06 PM Michael Wild wrote:

>
>
> On Wed, Aug 26, 2020 at 8:31 PM Achim Gratz wrote:
>
>> Michael Wild via Cygwin writes:
>> > Is there a way to disable WSL symlinks when installing Cygwin with
>> > setup.exe? Problem is that Docker on Windows apparently doesn't support
>> > them (see https://github.com/moby/moby/issues/41058). I would like to
>> use a
>> > custom Docker image for GitHub Actions to reproducibly build my packages
>> > but am failing to build the base image because of this.
>>
>> That description is not very clear.  If the symlinks are created during
>> postinstall, then they should obey the value of CYGWIN environment that
>> is in effect at that time.  If so, then the behaviour should start
>> appearing with cygwin-3.1.5, which is the first release that has the
>> code supporting these (and makes them the default).  I'm not aware that
>> the behaviour of setup.exe has changed in that respect recently, but I
>> haven't checked thoroughly.
>>
>>
>> Regards,
>> Achim.
>>
>>
> In order to reproduce, run the following commands on Windows:
>
> > docker run --name setup -it
> mcr.microsoft.com/windows/servercore:10.0.17763.1397-amd64
>
> Once inside the container, run:
>
> > powershell
> PS> $env:CYGWIN=winsymlinks:lnk
> PS> mkdir \tmp
> PS> cd \tmp
> PS> Invoke-WebRequest -Uri https://www.cygwin.com/setup-x86_64.exe
> -OutFile setup-x86_64.exe
> PS> .\setup-x86_64.exe -W -n -q -R C:\Cygwin64 -s
> http://mirrors.kernel.org/sourceware/cygwin/ -P default
> PS> Wait-Process -Name setup-x86_64
> PS> fsutil reparsePoint query C:\cygwin64\dev\fd
>
> The last command will output something like:
>
> Reparse Tag Value : 0xa000001d
> Tag value: Microsoft
> Tag value: Name Surrogate
>
> Reparse Data Length: 0x00000011
> Reparse Data:
> 0000: 02 00 00 00 2f 70 72 6f 63 2f 73 65 6c 66 2f 66 ..../proc/self/f
> 0010: 64
>
> So, the CYGWIN variable got ignored.
>
> If you want, you can try to run a Cygwin shell:
>
> PS> C:\Cygwin64\bin\bash.exe --login -i
>
> For me this works fine. Then, exit the container and try to commit it:
>
> PS> exit
> > exit
> > docker commit setup cygwin:latest
>
> The last command then errors out with:
>
> Error response from daemon: re-exec error: exit status 1: output:
> time="2020-08-26T21:00:55+02:00" level=error msg="hcsshim::ImportLayer -
> failed failed in Win32: The system cannot find th
> e path specified. (0x3)" error="hcsshim::ImportLayer - failed failed in
> Win32: The system cannot find the path specified. (0x3)"
> importFolderPath="C:\\ProgramData\\Docker\\tmp\\hcs00092524
> 3"
> path="\\\\?\\C:\\ProgramData\\Docker\\windowsfilter\\c31ac616438460478e6cc6e5526ee664e620ba4479da433bcabb6d2a76880ef4"
> hcsshim::ImportLayer - failed failed in Win32: The system cannot find the
> path specified. (0x3)
>
> Does this help diagnosing the problem?
>
> Kind regards
>
> Michael
>

I tried snooping into the setup code at
https://cygwin.com/git/?p=cygwin-apps/setup.git;a=summary. The word CYGWIN
doesn't show up, so I don't assume it checks the variable. I do see code to
create links when unpacking archives, but to me it looks like it only does
hard-links and the old-style link files. Next I'll try to find where the
post-install scripts are called and put in some tracing code to find out
what's going on...

Michael

  reply	other threads:[~2020-08-26 20:15 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-26 12:14 Michael Wild
2020-08-26 15:19 ` Andrey Repin
2020-08-26 15:24   ` Michael Wild
2020-08-26 18:29 ` Achim Gratz
2020-08-26 19:06   ` Michael Wild
2020-08-26 20:15     ` Michael Wild [this message]
2020-08-26 20:55   ` Jon Turney
2020-08-27  5:48     ` Michael Wild
2020-08-27  9:00       ` Corinna Vinschen
2020-08-27  9:38         ` Andrey Repin
2020-08-27  9:44         ` Michael Wild
2020-08-27 12:48           ` Michael Wild
2020-08-27 12:49             ` Michael Wild
2020-08-30 20:24               ` Jon Turney
2020-09-06 14:44             ` Jon Turney
2020-08-30 20:24       ` Jon Turney
2020-08-31  4:51         ` Michael Wild

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAALQ5rmk3NHaxyatOYxFRqsCTQ2QXt_NQFHOdGQGMHadtXMGSw@mail.gmail.com \
    --to=themiwi@gmail.com \
    --cc=Stromeko@nexgo.de \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).