Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Docker for Mac #3

Closed
Takeno opened this issue Aug 18, 2017 · 51 comments
Closed

Support for Docker for Mac #3

Takeno opened this issue Aug 18, 2017 · 51 comments

Comments

@Takeno
Copy link

Takeno commented Aug 18, 2017

Hi,
I'm really interested to this work.

I'm trying to get it to work on Docker for Mac and I'll be happy to send a PR with documentation ;)

For now, some references:
moby/moby#8710
https://gist.github.com/92bondstreet/3557c6187c28746fcf6e2fcef49b5d51
https://stackoverflow.com/a/28395350

@pauleve
Copy link
Owner

pauleve commented Aug 18, 2017

Hi - that would be awesome! Looking forward the PR :-)

@Takeno
Copy link
Author

Takeno commented Aug 21, 2017

A little update:

schermata 2017-08-21 alle 17 56 41

I need some more time to test the procedure again on a new env, but results are good :)
(and faster than my vm on vmware fusion)

@apetresc
Copy link

Thank you for this encouraging news, Takeno :) I'd love to help you test this whenever you're ready to share your configuration.

@Takeno
Copy link
Author

Takeno commented Aug 24, 2017

I try to summarize the procedure:

  1. Install XQuartz
    brew cask install xquartz
    (maybe it need a reboot - try without it first)
  2. Install socat
    brew install socat
  3. Lunch XQuartz
    open -a XQuartz
  4. Save you're ip
    ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
  5. Allow connection to XQuartz from your ip
    xhost + $ip
  6. In your Docker for Mac preferences > File Sharing > Add /tmp
  7. In one terminal run
    socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
  8. In another terminal run
    docker run --privileged --rm -it -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix:rw --net=host --ipc=host --name mtgo_running panard/mtgo

@pauleve
Copy link
Owner

pauleve commented Aug 24, 2017

Great!
Do you think that step 3 to 8 could be integrated in the script run-mtgo?
Also, regarding the IP, doesn't localhost work?

@dougogodinho
Copy link

I tryed the 8 steps and get the folow error:

wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
MTGO will start shortly. Press Enter when you have exited it.
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43bfcc to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting

Unhandled Exception: System.ComponentModel.Win32Exception: Error creating window handle.
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Form.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
at System.Deployment.Application.UserInterfaceForm.SetVisibleCore(Boolean value)
at System.Windows.Forms.Control.set_Visible(Boolean value)

@dougogodinho
Copy link

Almost working!! Now I can see the connection Icon, then this error in the terminal:

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 132 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Value in failed request: 0x220
Serial number of failed request: 750
Current serial number in output stream: 764

@pauleve
Copy link
Owner

pauleve commented Aug 25, 2017

Thanks for the feedback. What was the error for the Win32Exception?
Regarding MIT-SHM, that can be bad news. Did you used the --ipc=host option?
See suchja/wine#8 for a related issue.
If there is a way to disable SHM with XQuartz, that would be the best option IMHO.
Another option would be to build wine without SHM, but it may temper performances... we could think at making two images then, one for mac without shm, one for linux with. But hopefully XQuartz can help us on that...

@dougogodinho
Copy link

Is working now, I just started again doing the same that I was doing...
But now, each time I run, they install from scrach, maybe we can map some folder to save locally some files?

I used exactly this commands (I made a run.command file here):

if=netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'
ip=$(ifconfig ${if} | awk '{ if ($1 ~/inet/) { print $2} }')

xhost + $ip

open -a XQuartz

socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:"$DISPLAY" &

docker kill mtgo_running
docker run --privileged --rm -it -e DISPLAY=$ip:0 -v /tmp/.X11-unix:/tmp/.X11-unix:rw --net=host --ipc=host --name mtgo_running panard/mtgo

@pauleve
Copy link
Owner

pauleve commented Aug 25, 2017

The persistency is discussed in issue #6 - we have a working solution, although it requires the run-mtgo script which still need to be tweaked for Mac OS X.
I can try to integrate the command in the script, but I cannot test...
Can you try it for me?
Download https://pastebin.com/raw/SPcA9sTD as run-mtgo, chmod +x

chmod +x run-mtgo
docker pull panard/mtgo
./run-mtgo

Feel free to adapt the script until it works, and let me know of the changes.
I changed ip to 127.0.0.1, as it should work and is more secure.
Also it would be great to tell socat to listen on port 6000 only of ip...

@pauleve
Copy link
Owner

pauleve commented Sep 2, 2017

@Takeno @estudiogenius could you try the run-mtgo script on the git - https://raw.githubusercontent.com/pauleve/docker-mtgo/master/run-mtgo? My only Mac OSX is within a VirtualBox so I cannot test docker...
The main changes I did is the ip (which is set to 127.0.0.1, I hope this works), and additional options to socat to make it more secure (bind only to $ip, accepts only from $ip)
Once it works, I will merge the documentation made by @Takeno in the general README.
It sounds like we are close to a stable MTGO for both Linux and Mac OSX :-)

@apetresc
Copy link

apetresc commented Sep 8, 2017

A few notes from me trying to run it on macOS Sierra with the very latest Docker, XQuartz, etc:

  • The BSD version of getopt that ships with macOS is not compatible with one of the flags being invoked here. This can be worked around by brew install gnu-getopt and modifying run-mtgo to use that instead.
  • There is no timedatectl (or suitable replacement) on macOS. I just set TZ=America/Toronto myself before invoking run-mtgo.
  • After all this, running run-mtgo in XQuartz appears to work, no errors are reported, the socat socket is created, and docker ps reports that the container is running - but no window of any sort ever appears. It just hangs there until I do something to close the container.

The output in the terminal is simply:

open -a XQuartz
xhost + 127.0.0.1
127.0.0.1 being added to access control list
docker run --privileged --rm -e DISPLAY -v /Users/apetresc/.local/share/mtgo:/home/wine/.wine/host/ -v mtgo-data:/home/wine/.wine/drive_c/users/ -v /tmp/.X11-unix:/tmp/.X11-unix:rw --net=host --ipc=host -e TZ=/usr/share/zoneinfo/America/Toronto --name mtgo_running panard/mtgo:latest mtgo
socat TCP4-LISTEN:6000,bind=127.0.0.1,range=127.0.0.1/32,reuseaddr,fork UNIX-CLIENT:/private/tmp/com.apple.launchd.dIXJ3EFFvd/org.macosforge.xquartz:0

Not really sure how to diagnose or debug any further from here.

@pauleve
Copy link
Owner

pauleve commented Sep 8, 2017

Many thanks for this precious feedback.

Duly noted for getopt, maybe I should switch to bash builtin getopts and a trick to handle long options. In the meantime, we can just add gnu-getopt as an additional requirement (and I add a detection in the script).

Regarding timezone detection, I think I found a way using the symlink /etc/localtime

To further debug the X output, you could try the following:

  • look at the output of ps ax to see if there is some wineserver process, and MTGO process
  • add a sleep 5 in the script after the socat command to temporise things
  • replace the line with ip= with
if=$(netstat -nr | awk '{ if ($1 ~/default/) { print $6} }')
ip=$(ifconfig ${if} | awk '{ if ($1 ~/inet/) { print $2} }')

(following @estudiogenius comment)

  • run with run-mtgo -u root --shell then execute the following commands within the container:
apt update
apt install --no-install-recommends x11-utils netcat
su - wine
echo $DISPLAY
nc -vz 127.0.0.1 6000
xdpyinfo
xmessage test

might provide you some clues...

@apetresc
Copy link

apetresc commented Sep 8, 2017

Thanks for the super-quick feedback!

  • Timezone detection works great now without any further changes.
  • You're detecting gnu-getopt correctly, but setting an alias doesn't seem to work in a bash script. Replacing the alias with just:
    if [[ $OSTYPE == darwin* ]] && [ -x $brew_getopt ]; then
        function getopt() {
            /usr/local/opt/gnu-getopt/bin/getopt "$@"
        }
    fi
    
    works just fine, though.
  • ps aux doesn't see any MTGO or wines running, but I wouldn't expect it to; unlike in Linux, Docker for Mac still runs inside a VM, I believe. I tried it with another container I had that works for sure, and it's processes didn't show up in the host's ps the way it does in Windows, either.
  • Sleeping after socat doesn't help. That had already been tested, since the first time I run wine-mtgo between versions has to wait quite a while to download the image anyway, which happens after the call to socat.
  • Setting $ip in the way you described (I assume this is meant to set it to the local IP instead of the loopback address, right? There was a parsing bug with the code you pasted on my system so I just hardcoded ip=192.168.0.33 which is my internal IP), then socat fails with:
    xhost + 192.168.0.33
    192.168.0.33 being added to access control list
    open -a XQuartz
    docker run --privileged --rm -e DISPLAY -v /Users/apetresc/.local/share/mtgo:/home/wine/.wine/host/ -v mtgo-data:/home/wine/.wine/drive_c/users/ -v /tmp/.X11-unix:/tmp/.X11-unix:rw --net=host --ipc=host -e 
    TZ=/usr/share/zoneinfo/America/Toronto --name mtgo_running panard/mtgo:latest mtgo
    socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:/private/tmp/com.apple.launchd.dIXJ3EFFvd/org.macosforge.xquartz:0
    2017/09/08 15:56:30 socat[99727] E UNIX-CLIENT: wrong number of parameters (2 instead of 1)
    
    Not sure what that means. Is $DISPLAY not meant to have that extra :0 at the end there, perhaps?
  • From the lines you pasted:
    • echo $DISPLAY returns 192.168.0.33:0
    • nc -vz 127.0.0.1 6000 immediately returns:
      localhost [127.0.0.1] 6000 (?) : Connection refused
    • If I change the 127.0.0.1 to 192.168.0.33, then nc -vz 192.168.0.33 6000 returns:
      192.168.0.33: inverse host lookup failed: Unknown host
      (UNKNOWN) [192.168.0.33] 6000 (?) open
      wine@moby:~$ 2017/09/08 16:06:55 socat[99913] E UNIX-CLIENT: wrong number of parameters 
      (2 instead of 1)
      
      (which, I have no idea why nc is invoking socat?)
    • Both xdpyinfo and xmessage test return Error: Can't open display: 192.168.0.33:0, but I'm guessing that's just because socat failed, right?

Hope this helps. I don't really know X well enough to have much intuition at this point about what DISPLAY even should be...

@pauleve
Copy link
Owner

pauleve commented Sep 8, 2017

Awesome, thanks!
I fixed the getopt mistake (with variable instead of functions), and found a typo in the socat command which missed the protection of the UNIX-CLIENT argument, probably the cause of the wrong number of parameters error. Let me know if it helps! (first with ip=127.0.0.1, then with a local ip).

@apetresc
Copy link

apetresc commented Sep 8, 2017

Whoo! Strong progress! With no other tweaks except ip=192.168.0.33, things actually start showing up, which I suppose means the IPC between XQuartz and Docker is finally working :)

The bad news is, what showed up is a prompt to install .NET 4.5.2 (which I had assumed was already baked into the image?), and when I accepted, it downloads a file and then promptly crashes with:

wine: Unhandled page fault on read access to 0x00000018 at address 0x7ed2b49a (thread 0019), starting debugger...
err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
err:ole:get_local_server_stream Failed: 80004002

Full stack trace from the Windows crash dialog is:

Unhandled exception: page fault on read access to 0x00000018 in 32-bit code (0x7ed2b49a).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7ed2b49a ESP:0033fbd4 EBP:0033fbe8 EFLAGS:00010206(  R- --  I   - -P- )
 EAX:7ee161d8 EBX:00000000 ECX:00000000 EDX:7ee161d8
 ESI:001249f8 EDI:7ee161d8
Stack dump:
0x0033fbd4:  7bc5f6a6 0033fc00 7eded000 001249f8
0x0033fbe4:  00124360 0033fc08 7ecf1b99 00000000
0x0033fbf4:  00000000 7ece5d71 7ecf4812 7ee161c0
0x0033fc04:  7eded000 0033fc48 7ecf4850 00000005
0x0033fc14:  7ee161c0 00000000 7ee161d8 00000000
0x0033fc24:  00000000 001249f8 001249f8 0033fcc0
Backtrace:
=>0 0x7ed2b49a in ole32 (+0x4b49a) (0x0033fbe8)
  1 0x7ecf1b99 in ole32 (+0x11b98) (0x0033fc08)
  2 0x7ecf4850 in ole32 (+0x1484f) (0x0033fc48)
  3 0x7ecf5e33 CoUninitialize+0xc2() in ole32 (0x0033fc88)
  4 0x7eedfe35 IEWinMain+0x164() in ieframe (0x0033fce8)
  5 0x7ef4ea72 wWinMain+0x71() in iexplore (0x0033fd38)
  6 0x7ef4ecb7 wmain+0xc6() in iexplore (0x0033fdd8)
  7 0x7ef4ebb0 in iexplore (+0xebaf) (0x0033fe08)
  8 0x7b45f859 call_process_entry+0x18() in kernel32 (0x0033fe38)
  9 0x7b460a2d in kernel32 (+0x50a2c) (0x0033fe88)
  10 0x7bca6040 call_thread_func_wrapper+0xb() in ntdll (0x0033feb8)
  11 0x7bca93a9 in ntdll (+0x693a8) (0x0033ffa8)
  12 0x7bca601e RtlRaiseException+0x49() in ntdll (0x0033ffc8)
  13 0x7bc77f73 call_dll_entry_point+0x5e2() in ntdll (0x0033ffe8)
  14 0xf758df3d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
  15 0xf758e0a0 wine_switch_to_stack+0x1f() in libwine.so.1 (0xfffc0508)
  16 0x7bc7ee2e LdrInitializeThunk+0x41d() in ntdll (0xfffc05e8)
  17 0x7b466e6f __wine_kernel_init+0xa4e() in kernel32 (0xfffc14d8)
  18 0x7bc7fefb __wine_process_init+0x16a() in ntdll (0xfffc1548)
  19 0xf758c1a3 wine_init+0x2a2() in libwine.so.1 (0xfffc1598)
  20 0x7c000cd8 main+0x97() in <wine-loader> (0xfffc19e8)
  21 0xf73bf276 __libc_start_main+0xf5() in libc.so.6 (0x00000000)
0x7ed2b49a: pushl	0x18(%ebx)
Modules:
Module	Address			Debug info	Name (71 modules)
ELF	7b400000-7b7ea000	Dwarf           kernel32<elf>
  \-PE	7b410000-7b7ea000	\               kernel32
ELF	7bc00000-7bd2a000	Dwarf           ntdll<elf>
  \-PE	7bc40000-7bd2a000	\               ntdll
ELF	7c000000-7c004000	Dwarf           <wine-loader>
ELF	7dde4000-7de1c000	Deferred        uxtheme<elf>
  \-PE	7ddf0000-7de1c000	\               uxtheme
ELF	7de1c000-7de46000	Deferred        libexpat.so.1
ELF	7de46000-7de89000	Deferred        libfontconfig.so.1
ELF	7de89000-7dec3000	Deferred        libpng16.so.16
ELF	7dec3000-7df77000	Deferred        libfreetype.so.6
ELF	7df77000-7df8a000	Deferred        libxi.so.6
ELF	7df8a000-7df96000	Deferred        libxrender.so.1
ELF	7df96000-7df9d000	Deferred        libxxf86vm.so.1
ELF	7df9d000-7dfa6000	Deferred        librt.so.1
ELF	7dfa6000-7dfc2000	Deferred        libbsd.so.0
ELF	7dfc2000-7dfc9000	Deferred        libxdmcp.so.6
ELF	7dfc9000-7dfcd000	Deferred        libxau.so.6
ELF	7dfcd000-7dff9000	Deferred        libxcb.so.1
ELF	7dff9000-7e147000	Deferred        libx11.so.6
ELF	7e147000-7e15c000	Deferred        libxext.so.6
ELF	7e15c000-7e1e8000	Deferred        winex11<elf>
  \-PE	7e170000-7e1e8000	\               winex11
ELF	7e1e8000-7e20c000	Deferred        imm32<elf>
  \-PE	7e1f0000-7e20c000	\               imm32
ELF	7e20c000-7e247000	Deferred        ws2_32<elf>
  \-PE	7e210000-7e247000	\               ws2_32
ELF	7e247000-7e26f000	Deferred        mpr<elf>
  \-PE	7e250000-7e26f000	\               mpr
ELF	7e26f000-7e28a000	Deferred        libz.so.1
ELF	7e28a000-7e301000	Deferred        wininet<elf>
  \-PE	7e290000-7e301000	\               wininet
ELF	7e301000-7e41d000	Deferred        comctl32<elf>
  \-PE	7e310000-7e41d000	\               comctl32
ELF	7e41d000-7e438000	Deferred        aclui<elf>
  \-PE	7e420000-7e438000	\               aclui
ELF	7e438000-7e4af000	Deferred        shlwapi<elf>
  \-PE	7e450000-7e4af000	\               shlwapi
ELF	7e4af000-7e778000	Deferred        shell32<elf>
  \-PE	7e4c0000-7e778000	\               shell32
ELF	7e778000-7e8a9000	Deferred        oleaut32<elf>
  \-PE	7e790000-7e8a9000	\               oleaut32
ELF	7e8a9000-7e92a000	Deferred        rpcrt4<elf>
  \-PE	7e8b0000-7e92a000	\               rpcrt4
ELF	7e92a000-7e944000	Deferred        version<elf>
  \-PE	7e930000-7e944000	\               version
ELF	7e944000-7ea70000	Deferred        gdi32<elf>
  \-PE	7e950000-7ea70000	\               gdi32
ELF	7ea70000-7ec48000	Deferred        user32<elf>
  \-PE	7ea80000-7ec48000	\               user32
ELF	7ec48000-7ecc0000	Deferred        advapi32<elf>
  \-PE	7ec60000-7ecc0000	\               advapi32
ELF	7ecc0000-7ee17000	Dwarf           ole32<elf>
  \-PE	7ece0000-7ee17000	\               ole32
ELF	7ee17000-7eeb3000	Deferred        urlmon<elf>
  \-PE	7ee20000-7eeb3000	\               urlmon
ELF	7eeb3000-7ef3d000	Dwarf           ieframe<elf>
  \-PE	7eec0000-7ef3d000	\               ieframe
ELF	7ef3d000-7ef67000	Dwarf           iexplore<elf>
  \-PE	7ef40000-7ef67000	\               iexplore
ELF	7ef67000-7ef7a000	Deferred        libnss_files.so.2
ELF	7ef7a000-7ef87000	Deferred        libnss_nis.so.2
ELF	7ef87000-7efa1000	Deferred        libnsl.so.1
ELF	7efa1000-7efab000	Deferred        libnss_compat.so.2
ELF	7efab000-7f000000	Deferred        libm.so.6
ELF	f73a2000-f73a7000	Deferred        libdl.so.2
ELF	f73a7000-f755f000	Dwarf           libc.so.6
ELF	f755f000-f757c000	Deferred        libpthread.so.0
ELF	f7581000-f7750000	Dwarf           libwine.so.1
ELF	f7753000-f7778000	Deferred        ld-linux.so.2
ELF	f777a000-f777b000	Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
00000008 mtgo.exe
	[Z:\opt\mtgo\mtgo.exe]
	00000015    0
	00000009    0
0000000c services.exe
	[C:\windows\system32\services.exe]
	0000000e    0
	0000000d    0
0000000f explorer.exe
	[C:\windows\system32\explorer.exe /desktop]
	00000011    0
	00000010    0
00000018 (D) C:\windows\system32\iexplore.exe
	["iexplore.exe"  "http://mtgoclientdepot.onlinegaming.wizards.com/MTGO.application"]
	00000019    0 <==
0000001c explorer.exe
	[C:\windows\system32\explorer.exe /desktop]
	0000001e    0
	0000001d    0
System information:
    Wine build: wine-2.15 (Staging)
    Platform: i386
    Version: Windows Server 2008 R2
    Host system: Linux
    Host version: 4.9.41-moby

This happens even after I clear out the mtgo-data volume and re-pull the panard/mtgo image.

@pauleve
Copy link
Owner

pauleve commented Sep 8, 2017

Regarding ip=127.0.0.1, indeed, after some googling, it appears that docker for mac does not really honour --net=host, so the localhost of the host is not accessible... It is a bit sad as it forces the use of quite an insecure setting (listening on a potential public ip), although the range option of socat should prevent any external connection to the X server. So if it works without modifying the socat call, it is quite okay.
This can be probably improved by sharing unix sockets, but it would requires a bunch of test I cannot do.

I changed the ip in the run-mtgo to be the one of en0, as initially suggested by @Takeno .

Regarding .NET this should not happen. Try with ./run-mtgo --reset to reset the registry files (and clear again mtgo-data).

@josh-anderson-ftw
Copy link

josh-anderson-ftw commented Sep 23, 2017

OK, got a little further than before. After it asks for agreement on .Net EULA, and I click "Agree" it throws an error. Here is the ./run-mtgo output.

open -a XQuartz xhost + 188.188.1.144 188.188.1.144 being added to access control list docker run --privileged --rm -e DISPLAY -v /Users/joshanderson/.local/share/mtgo:/home/wine/.wine/host/ -v mtgo-data:/home/wine/.wine/drive_c/users/ -v /tmp/.X11-unix:/tmp/.X11-unix:rw --net=host --ipc=host -e TZ=/usr/share/zoneinfo/America/New_York --name mtgo_running panard/mtgo:latest mtgo socat TCP4-LISTEN:6000,bind=188.188.1.144,range=188.188.1.144/32,reuseaddr,fork UNIX-CLIENT:"/private/tmp/com.apple.launchd.Vbs4VdvX63/org.macosforge.xquartz:0" wine: Unhandled page fault on read access to 0x00000018 at address 0x7ed3549a (thread 0019), starting debugger... err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa} err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002 err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002 err:ole:get_local_server_stream Failed: 80004002

It also spewed out a "Windows" error. Do you want those details too?
After comparing error details it is virtually the same error as above, posted by @apetresc ...

@josh-anderson-ftw
Copy link

Ran with --reset and just got a bit further. MTGO installs, then "opens", but the screen seems is unresponsive and "darker". Bottom left says "Disconnected".

@pauleve
Copy link
Owner

pauleve commented Sep 23, 2017

Thanks for the feedback!
It should not ask for .Net installation - the crash is then expected (dotnet installation is only supported through winetricks). Ok, so there seems to be an issue where the first run of the image asks for .Net and --reset fixes it... I'll try to investigate this..

Regarding the second comment, did you manage to see (and accepts) MTGO license?
You may also try to use --cmd winecfg to configure wine graphics (for instance emulating a desktop may help in some situations)..

@westover
Copy link

westover commented Oct 1, 2017

Did find a hitch in the setups given, you need to update the security settings on XQuartz which defaults to block network connections. But after I fixed that I got X applications to launch on Docker for Mac

@jodylent
Copy link

Running with QT_X11_NO_MITSHM=1 last night seemed to help greatly:

/path/to/run-mtgo -e QT_X11_NO_MITSHM=1

@pauleve
Copy link
Owner

pauleve commented Oct 16, 2017

This is strange as neither wine nor Xorg/Xquartz have any code using this env variable :-)

@jodylent
Copy link

jodylent commented Oct 17, 2017

QT_X11_NO_MITSHM is (in theory, aka "according to StackOverflow") supposed to be picked up by X server, but I'm no expert.

Updating the --ipc line doesn't seem to help (opts="${opts} --net=host --ipc=none")

I've also added the following (to no avail, alas):

if [[ ${OSTYPE} == darwin* ]]; then
    # Disable X server MIT-SHM extension
    export QT_X11_NO_MITSHM=1
    export _X11_NO_MITSHM=1
    export _MITSHM=0
    ...

run docker run --privileged --rm -e QT_X11_NO_MITSHM=1 -e _X11_NO_MITSHM=1 -e _MITSHM=0 -e DISPLAY \

@pauleve
Copy link
Owner

pauleve commented Oct 17, 2017

But has it prevented any further X error request? Because QT_X11_NO_MITSHM is understood only by clients using Qt library only (there is a similar switch for Java, but not for wine..).
After digging into the wine source code, disabling MITSHM server side should work, but unfortunately, it will be very slow as wine will detect the error too late (it will keep try again and again for each image to be rendered).
I've opened a bug report on winehq to ask for an environment variable to disable XShm use, which would be the most convenient.
In the meantime, I'll build a specific docker image with wine compiled without it. If it fixes the issue, then I'll provide a custom wine with runtime disabling XShm.

@jodylent
Copy link

Yeah, there's no Qt involved, that's just late night googling and trying :allthethings:

I cannot for the life of me find a xorg.conf to edit to update Xserver on macOS with the

Section "Extensions"
Option "MIT-SHM" "Disable"
EndSection

options

@pauleve
Copy link
Owner

pauleve commented Oct 17, 2017

Let's give a try to disabling shm in wine: I did the patch, let me know if you still get a XShm related crash using the following command:

./run-mtgo panard/mtgo:optshm -e WINE_X11_NO_MITSHM=1

There should be some "DISABLED_XSHM" messages in the console.

@jodylent
Copy link

@pauleve This pretty much resolves all the issues. (It does spit out a LARGE number of "DISABLED_XSHM", but that's fine).

Thank you so much!

pauleve added a commit that referenced this issue Oct 18, 2017
@pauleve
Copy link
Owner

pauleve commented Oct 18, 2017

Awesome. Thanks a lot for the debugging!
I've updated the main docker image and the run-mtgo script. Having done a docker pull panard/mtgo, run-mtgo should set the correct settings directly (and the updated image no longer outputs the DISABLED_XSHM).
Glad to hear a first fully working mtgo on Mac :-)

@jodylent
Copy link

Tried the new version (optshm works) and getting weird stuff:

Unhandled Exception: System.ComponentModel.Win32Exception: Error creating window handle.
   at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Form.CreateHandle()
   at System.Windows.Forms.Control.get_Handle()
   at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
   at System.Deployment.Application.UserInterfaceForm.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Control.set_Visible(Boolean value)
   at System.Deployment.Application.SplashPiece.ShowSplash(Form parentForm)
   at System.Deployment.Application.SplashPiece..ctor(UserInterfaceForm parentForm, SplashInfo info)
   at System.Deployment.Application.UserInterfaceForm.InitializeContent()
   at System.Deployment.Application.UserInterfaceForm..ctor(ManualResetEvent readyEvent, SplashInfo splashInfo)
   at System.Deployment.Application.UserInterface.UIThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
wine: Unhandled exception 0xe0434352 in thread 47 at address 0x5160023:0x7b43c05c (thread 0047), starting debugger...
err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
Unhandled exception: 0xe0434352 in 32-bit code (0x7b43c05c).

Full log mtgo_docker.log

@pauleve
Copy link
Owner

pauleve commented Oct 18, 2017

It looks like socat it is not fully functional when MTGO starts.
Maybe try by adding a sleep 2 after the line socat_pid=$! (169) in run-mtgo..

@jodylent
Copy link

Good old sleep. That actually DOES fix the issue.

@hom3chuk
Copy link

For those of MacOS X users like me:
followed install instructions from README.md, but got nothing except terminal with bunch of

wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting

Struggled for an hour or so, until I actually googled the error 'socat[...] E connect(...): Connection refused' and found this gem. Restarted MacOS and here it is
image

Restart MacOS after XQuartz install

pauleve added a commit that referenced this issue Nov 20, 2017
@HilmarDemant
Copy link

Hi,
i have managed it to get it work on Mac in principle, but facing several severe issues:

  • quite often the screen keeps black - oftenly i can scroll or hover with the mouse to see something again

  • some menus and all hover tooltips are not rendered correctly so it is a guessing game what to do

  • there seems to be dialogs opening sometime based on a action and than it seems the dialog goes to the background and leave the "underlying" window content greyed out and not clickable. Once this situation happens i only can ctrl+c and start from scratch

  • once i want to restart it is not working with an error:
    > run-mtgo.sh
    open -a XQuartz LSOpenURLsWithRole() failed for the application /Applications/Utilities/XQuartz.app with error -600.

  • i have to kill xquartz only than i can start anew

  • than on restart it seems i have to reinstall all the time the mtgo client - isnt is persisted somewhere and only updated once needed? For me every time 180MB are downloaded

Any idea on that? Looking forward to use it

Best Regards, Hilmar

@theli-ua
Copy link

screen keeps black
iirc I had similar issues on a mac and was able to fix that with
winetricks ddr=gdi

@pauleve
Copy link
Owner

pauleve commented Nov 22, 2017

@HilmarDemant thanks for the feedback. To try the suggestion of @theli-ua , you have to run ./run-mtgo --shell, enter the winetricks command, then type mtgo. Let us know the result.
Another try can be to use run-mtgo --winecfg to select "emulate a virtual desktop" in the graphics section.

Regarding mtgo client, it should be persistent. Do you have any error related to docker volume in the output? You can also try doing once ./run-mtgo --reset.

@HilmarDemant
Copy link

the winetricks didnt have any effect for me, but the emulate virtual desktop via winecfg looks better and faster overall.
Unfortunately the issue with black screens and greyed out windows apparently to be in the background is still there - i can easily provoke it with "view profile" of a buddy.

with the --reset option i still see a bunch of log entries like this:
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
but the client is downloading again on startup
i have upgraded also to latest docker version

@kiansheik
Copy link

kiansheik commented Dec 1, 2017

I have just downloaded attempted to run this on a dockerless, WINEless OS X 10.11.6 system and upon fresh install of everything with the latest ./run-mtgo script, I get:
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
and then it quits. I do not get any semblance of an MTGO client.

I am very interested in getting this running, am available for testing. Thanks!

@bhepola1
Copy link

Hi, I am totally new to docker. I was able to get MTGO running on my mac using docker image. However, it is really choppy and slow (not sure if this can be resolved). I am also trying to get loaded on Ubuntu 16.04 but I am running into an error when I try to pull panard/mtgo. I keep getting:

docker pull panard/mtgo:latest
Warning: failed to get default registry endpoint from daemon (Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.35/info: dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/images/create?fromImage=panard%2Fmtgo&tag=latest: dial unix /var/run/docker.sock: connect: permission denied

Any information about this would be helpful.

@pauleve
Copy link
Owner

pauleve commented Jan 16, 2018

Hi,
Thanks for the feedback!
On Ubuntu, you need to add your user in the docker group, e.g. by doing:

sudo usermod -aG docker $USER

On macOS, docker uses virtualization which requires some very recent hardware to run smoothly. You can have a try to installing wine for MTGO directly, without the docker layer, see instructions here:
https://it.toolbox.com/blogs/jeffhoogland/howto-install-mtgo-on-ubuntu-linux-010718
just skip the ubuntu part (with apt-get), and install wine on macOS directly instead using
https://dl.winehq.org/wine-builds/macosx/pool/winehq-staging-2.20.pkg
Note that this version of wine still contains a bug which makes CPU usage very high on MTGO, hopefully it will be fixed in a next release (the latest docker image already contains the fix).

@robertjlooby
Copy link

Just tried this and am getting a bunch of error output and then it just hangs.

macOS: High Sierra v10.13.2
Docker: Version 17.12.0-ce-mac49
XQuartz: v2.7.11
socat: v1.7.3.2
gnu-getopt: v1.1.6
wget: v1.19.3

output

Output

docker-mtgo(master) % ./run-mtgo
tar: Removing leading `/' from member names
x system.reg
x user.reg
/Users/robertlooby/dev/docker/docker-mtgo
open -a XQuartz
socat on 192.168.0.8 forwarding to
docker run --privileged --rm -e DISPLAY -v /Users/robertlooby/.local/share/mtgo:/home/wine/.wine/host/ -v mtgo-data:/home/wine/.wine/drive_c/users/ -e WINE_X11_NO_MITSHM=1 --net=host --ipc=host -e TZ=/usr/share/zoneinfo/zoneinfo/America/Chicago --name mtgo_running panard/mtgo:latest mtgo
2018/01/20 11:29:42 socat[11676] E connect(5, LEN=2 AF=1 "<anon>", 2): Invalid argument
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting
wine: Call from 0x7b43c05c to unimplemented function api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll.RoGetParameterizedTypeInstanceIID, aborting

Unhandled Exception: System.ComponentModel.Win32Exception: Error creating window handle.
   at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Form.CreateHandle()
   at System.Windows.Forms.Control.get_Handle()
   at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
   at System.Deployment.Application.UserInterfaceForm.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Control.set_Visible(Boolean value)
   at System.Deployment.Application.SplashPiece.ShowSplash(Form parentForm)
   at System.Deployment.Application.SplashPiece..ctor(UserInterfaceForm parentForm, SplashInfo info)
   at System.Deployment.Application.UserInterfaceForm.InitializeContent()
   at System.Deployment.Application.UserInterfaceForm..ctor(ManualResetEvent readyEvent, SplashInfo splashInfo)
   at System.Deployment.Application.UserInterface.UIThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
wine: Unhandled exception 0xe0434352 in thread 45 at address 0x5060023:0x7b43c05c (thread 0045), starting debugger...
2018/01/20 11:29:47 socat[11679] E connect(5, LEN=2 AF=1 "<anon>", 2): Invalid argument
err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
Unhandled exception: 0xe0434352 in 32-bit code (0x7b43c05c).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7b43c05c ESP:0506dea4 EBP:0506df18 EFLAGS:00200212(   - --  I   -A- - )
 EAX:7b42932d EBX:00000010 ECX:0506dec4 EDX:0506df88
 ESI:00000000 EDI:00000001
Stack dump:
0x0506dea4:  01206018 00172e20 001fec68 e0434352
0x0506deb4:  00000001 00000000 7b43c05c 00000005
0x0506dec4:  80004005 00000000 00000000 00000000
0x0506ded4:  00630000 18662723 00000000 01206018
0x0506dee4:  00000005 00000000 00000000 00172e20
0x0506def4:  0506dfdc 00000001 00000003 00662609
Backtrace:
=>0 0x7b43c05c in kernel32 (+0x1c05c) (0x0506df18)
  1 0x007e352f in clr (+0x1b352e) (0x0506dfbc)
  2 0x007e3738 in clr (+0x1b3737) (0x0506e084)
  3 0x050a2014 (0x0506e0fc)
  4 0x050a1212 (0x0506e168)
  5 0x0599d723 (0x0506e1b4)
  6 0x050a9ae5 (0x0506e1c4)
  7 0x0507dd6e (0x0506e264)
  8 0x0599d16d (0x0506e28c)
  9 0x0599c9dd (0x0506e294)
  10 0x0599c9a4 (0x0506e29c)
  11 0x0599c936 (0x0506e2a8)
  12 0x057d29f8 (0x0506e2bc)
  13 0x057e1219 (0x0506e2d0)
  14 0x05072706 (0x0506e2e0)
  15 0x04f4a9a1 (0x0506e30c)
  16 0x04f4a1d7 (0x0506e318)
  17 0x040bfc58 (0x0506e380)
  18 0x040bf17f (0x0506e394)
  19 0x04f49efa (0x0506e3b0)
  20 0x04f49e79 (0x0506e3c8)
  21 0x0063ea96 in clr (+0xea95) (0x0506e3d4)
  22 0x0065944f in clr (+0x2944e) (0x0506e428)
  23 0x006596d3 in clr (+0x296d2) (0x0506e498)
  24 0x0079ed4d in clr (+0x16ed4c) (0x0506e60c)
  25 0x0065b263 in clr (+0x2b262) (0x0506e624)
  26 0x0065b2cd in clr (+0x2b2cc) (0x0506e6c8)
  27 0x0065b39a in clr (+0x2b399) (0x0506e724)
  28 0x0065b410 in clr (+0x2b40f) (0x0506e748)
  29 0x0079ec02 in clr (+0x16ec01) (0x0506e7c4)
  30 0x00734971 in clr (+0x104970) (0x0506e9e8)
  31 0x7bca5f80 call_thread_func_wrapper+0xb() in ntdll (0x0506ea08)
  32 0x7bca9379 in ntdll (+0x69378) (0x0506eaf8)
  33 0x7bca5f5e RtlRaiseException+0x49() in ntdll (0x0506eb18)
  34 0x7bcb0ea3 in ntdll (+0x70ea2) (0x0506f368)
  35 0xf752127a start_thread+0xd9() in libpthread.so.0 (0x0506f428)
  36 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  37 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  38 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  39 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  40 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  41 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  42 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  43 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  44 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  45 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  46 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  47 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  48 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  49 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  50 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  51 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  52 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  53 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  54 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  55 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  56 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  57 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  58 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  59 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  60 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  61 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  62 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  63 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  64 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  65 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  66 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  67 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  68 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  69 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  70 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  71 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  72 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  73 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  74 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  75 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  76 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  77 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  78 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  79 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  80 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  81 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  82 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  83 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  84 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  85 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  86 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  87 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  88 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  89 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  90 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  91 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  92 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  93 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  94 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  95 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  96 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  97 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  98 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  99 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  100 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  101 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  102 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  103 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  104 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  105 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  106 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  107 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  108 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  109 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  110 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  111 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  112 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  113 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  114 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  115 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  116 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  117 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  118 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  119 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  120 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  121 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  122 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  123 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  124 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  125 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  126 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  127 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  128 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  129 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  130 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  131 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  132 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  133 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  134 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  135 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  136 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  137 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  138 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  139 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  140 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  141 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  142 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  143 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  144 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  145 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  146 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  147 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  148 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  149 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  150 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  151 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  152 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  153 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  154 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  155 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  156 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  157 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  158 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  159 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  160 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  161 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  162 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  163 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  164 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  165 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  166 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  167 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  168 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  169 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  170 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  171 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  172 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  173 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  174 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  175 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  176 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  177 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  178 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  179 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  180 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  181 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  182 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  183 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  184 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  185 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  186 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  187 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  188 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  189 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  190 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  191 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  192 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  193 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  194 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  195 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  196 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  197 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  198 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  199 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
  200 0xf744ab56 __clone+0x65() in libc.so.6 (0x00000000)
0x7b43c05c: addl	$12,%esp
Modules:
Module	Address			Debug info	Name (112 modules)
PE	  400000-  408000	Deferred        dfsvc
PE	  630000-  d11000	Export          clr
PE	  d20000-  e15000	Deferred        msvcr120_clr0400
PE	 3890000- 3910000	Deferred        clrjit
PE	 4010000- 4023000	Deferred        nlssorting
PE	 4050000- 4078000	Deferred        dfdll
PE	 5b50000- 5c38000	Deferred        diasymreader
PE	10000000-1007d000	Deferred        mscoreei
PE	60510000-60626000	Deferred        dfshim
PE	79000000-7904a000	Deferred        mscoree
ELF	7b400000-7b7ec000	Dwarf           kernel32<elf>
  \-PE	7b420000-7b7ec000	\               kernel32
ELF	7bc00000-7bd2a000	Dwarf           ntdll<elf>
  \-PE	7bc40000-7bd2a000	\               ntdll
ELF	7c000000-7c004000	Deferred        <wine-loader>
ELF	7ef71000-7ef84000	Deferred        libnss_files.so.2
ELF	7ef84000-7ef91000	Deferred        libnss_nis.so.2
ELF	7ef91000-7efab000	Deferred        libnsl.so.1
ELF	7efab000-7f000000	Deferred        libm.so.6
ELF	f578c000-f57b6000	Deferred        iphlpapi<elf>
  \-PE	f5790000-f57b6000	\               iphlpapi
ELF	f57b6000-f57ce000	Deferred        libresolv.so.2
ELF	f57ce000-f57f6000	Deferred        propsys<elf>
  \-PE	f57d0000-f57f6000	\               propsys
ELF	f57f6000-f58bd000	Deferred        windowscodecs<elf>
  \-PE	f5810000-f58bd000	\               windowscodecs
ELF	f58bd000-f58db000	Deferred        jsproxy<elf>
  \-PE	f58c0000-f58db000	\               jsproxy
ELF	f58db000-f5918000	Deferred        winhttp<elf>
  \-PE	f58e0000-f5918000	\               winhttp
ELF	f5918000-f5934000	Deferred        rasapi32<elf>
  \-PE	f5920000-f5934000	\               rasapi32
ELF	f5934000-f59c6000	Deferred        gdiplus<elf>
  \-PE	f5940000-f59c6000	\               gdiplus
ELF	f59c6000-f5a01000	Deferred        ws2_32<elf>
  \-PE	f59d0000-f5a01000	\               ws2_32
ELF	f5a01000-f5a79000	Deferred        wininet<elf>
  \-PE	f5a10000-f5a79000	\               wininet
ELF	f5a79000-f5b15000	Deferred        urlmon<elf>
  \-PE	f5a80000-f5b15000	\               urlmon
ELF	f5b15000-f5c31000	Deferred        comctl32<elf>
  \-PE	f5b20000-f5c31000	\               comctl32
ELF	f5c31000-f5f00000	Deferred        shell32<elf>
  \-PE	f5c40000-f5f00000	\               shell32
ELF	f6017000-f602b000	Deferred        psapi<elf>
  \-PE	f6020000-f602b000	\               psapi
ELF	f602b000-f6053000	Deferred        mpr<elf>
  \-PE	f6030000-f6053000	\               mpr
ELF	f6053000-f606e000	Deferred        aclui<elf>
  \-PE	f6060000-f606e000	\               aclui
ELF	f606e000-f60a6000	Deferred        uxtheme<elf>
  \-PE	f6070000-f60a6000	\               uxtheme
ELF	f60ec000-f60f5000	Deferred        libffi.so.6
ELF	f60f5000-f6183000	Deferred        libgmp.so.10
ELF	f6183000-f61b9000	Deferred        libhogweed.so.4
ELF	f61b9000-f61f6000	Deferred        libnettle.so.6
ELF	f61f6000-f620b000	Deferred        libtasn1.so.6
ELF	f620b000-f626d000	Deferred        libp11-kit.so.0
ELF	f626d000-f6432000	Deferred        libgnutls.so.30
ELF	f6432000-f6500000	Deferred        crypt32<elf>
  \-PE	f6440000-f6500000	\               crypt32
ELF	f6804000-f6838000	Deferred        libidn.so.11
ELF	f6838000-f6858000	Deferred        bcrypt<elf>
  \-PE	f6840000-f6858000	\               bcrypt
ELF	f6858000-f6897000	Deferred        rsaenh<elf>
  \-PE	f6860000-f6897000	\               rsaenh
ELF	f6897000-f68b5000	Deferred        libgcc_s.so.1
ELF	f68b5000-f69f0000	Deferred        actxprxy<elf>
  \-PE	f68e0000-f69f0000	\               actxprxy
PE	f69f0000-f6a04000	Deferred        api-ms-win-core-winrt-roparamete
PE	f6a00000-f6a04000	Deferred        api-ms-win-core-winrt-roparameteC:\windows\system32\api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll
ELF	f6a04000-f6b35000	Deferred        oleaut32<elf>
  \-PE	f6a20000-f6b35000	\               oleaut32
ELF	f6b35000-f6b56000	Deferred        combase<elf>
  \-PE	f6b40000-f6b56000	\               combase
ELF	f6b56000-f6b80000	Deferred        libexpat.so.1
ELF	f6b80000-f6bc3000	Deferred        libfontconfig.so.1
ELF	f6bc3000-f6bfd000	Deferred        libpng16.so.16
ELF	f6bfd000-f6c18000	Deferred        libz.so.1
ELF	f6c18000-f6ccc000	Deferred        libfreetype.so.6
ELF	f6ccd000-f6cd4000	Deferred        libnss_dns.so.2
ELF	f6cd9000-f6ced000	Deferred        api-ms-win-core-winrt-l1-1-0<elf
PE	f6ce0000-f6ced000	Deferred        api-ms-win-core-winrt-l1-1-0
ELF	f6ced000-f6d6e000	Deferred        rpcrt4<elf>
  \-PE	f6d00000-f6d6e000	\               rpcrt4
ELF	f6d6e000-f6ec5000	Deferred        ole32<elf>
  \-PE	f6d90000-f6ec5000	\               ole32
ELF	f6ec5000-f6ef0000	Deferred        kernelbase<elf>
  \-PE	f6ed0000-f6ef0000	\               kernelbase
ELF	f6ef0000-f6f04000	Deferred        api-ms-win-core-quirks-l1-1-0<el
PE	f6f00000-f6f04000	Deferred        api-ms-win-core-quirks-l1-1-0
PE	f6f04000-f6f19000	Deferred        api-ms-win-appmodel-runtime-l1-1
PE	f6f10000-f6f19000	Deferred        api-ms-win-appmodel-runtime-l1-1C:\windows\system32\api-ms-win-appmodel-runtime-l1-1-2.dll
ELF	f6f19000-f6f3d000	Deferred        imm32<elf>
  \-PE	f6f20000-f6f3d000	\               imm32
ELF	f6f3d000-f6f57000	Deferred        version<elf>
  \-PE	f6f40000-f6f57000	\               version
ELF	f6f57000-f7083000	Deferred        gdi32<elf>
  \-PE	f6f60000-f7083000	\               gdi32
ELF	f7083000-f7263000	Deferred        user32<elf>
  \-PE	f70a0000-f7263000	\               user32
ELF	f7263000-f72da000	Deferred        shlwapi<elf>
  \-PE	f7270000-f72da000	\               shlwapi
ELF	f72da000-f7352000	Deferred        advapi32<elf>
  \-PE	f72f0000-f7352000	\               advapi32
ELF	f7352000-f735c000	Deferred        libnss_compat.so.2
ELF	f735e000-f7363000	Deferred        libdl.so.2
ELF	f7363000-f751b000	Dwarf           libc.so.6
ELF	f751b000-f7538000	Dwarf           libpthread.so.0
ELF	f753d000-f770e000	Dwarf           libwine.so.1
ELF	f7711000-f7736000	Deferred        ld-linux.so.2
ELF	f7738000-f7739000	Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
	[C:\windows\system32\services.exe]
	0000002c    0
	00000027    0
	0000001d    0
	00000015    0
	00000012    0
	0000000f    0
00000010 explorer.exe
	[C:\windows\system32\explorer.exe /desktop]
	00000021    0
	00000020    0
	00000011    0
00000013 mscorsvw.exe
	[C:\windows\Microsoft.NET\Framework\v4.0.30319\mscorsvw.exe]
	0000001a    0
	00000019    0
	00000018    0
	00000014    0
0000001b winedevice.exe
	[C:\windows\system32\winedevice.exe]
	0000001f    0
	0000001e    0
	0000001c    0
00000024 plugplay.exe
	[C:\windows\system32\plugplay.exe]
	00000029    0
	00000028    0
	00000025    0
0000002a winedevice.exe
	[C:\windows\system32\winedevice.exe]
	00000031    0
	0000002e    0
	0000002d    0
	0000002b    0
00000035 (D) C:\windows\Microsoft.NET\Framework\v4.0.30319\dfsvc.exe
	["C:\windows\Microsoft.NET\Framework\v4.0.30319\dfsvc.exe"]
	00000047    0
	00000046    0
	00000045    0 <==
	00000044    0
	00000043    0
	00000042    0
	0000003e    0
	0000003d    0
	0000003c    0
	0000003a    0
	00000039    0
	00000038    2
	00000037    0
	00000036    0
0000004a explorer.exe
	[C:\windows\system32\explorer.exe /desktop]
	0000004d    0
	0000004c    0
	0000004b    0
System information:
    Wine build: wine-2.20 (Staging)
    Platform: i386
    Version: Windows 7
    Host system: Linux
    Host version: 4.9.60-linuxkit-aufs

I don't know anything about running XQuartz, but the first thing I notice is the line

socat on 192.168.0.8 forwarding to

the $DISPLAY isn't set at that point

@pauleve
Copy link
Owner

pauleve commented Jan 21, 2018

@robertjlooby the missing $DISPLAY is definitely the issue. Do you mean that, in Terminal, if you do

open -a XQuartz
echo "DISPLAY=$DISPLAY"

DISPLAY is empty?

@robertjlooby
Copy link

Yes, XQuartz starts and opens up an xterm window but it doesn't set the DISPLAY var

% open -a XQuartz
% echo "DISPLAY=$DISPLAY"
DISPLAY=

Inside the xterm window in XQuartz though, it is set

bash-3.2$ echo DISPLAY=$DISPLAY
DISPLAY=/private/tmp/com.apple.launchd.ax3FdAdHI4/org.macosforge.xquartz:0

@pauleve
Copy link
Owner

pauleve commented Jan 21, 2018

Have you rebooted? Apparently this is necessary to have the DISPLAY set globally..

@robertjlooby
Copy link

That was it! It works after restarting. Thank you! 🎉

@pauleve
Copy link
Owner

pauleve commented Jan 22, 2018

I close this global issue - if you have any problem running docker-MTGO on macOS, please open a dedicated issue.
Big thanks to all who contributed with feedback and debugging.

@pauleve pauleve closed this as completed Jan 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests