proot-me / proot

chroot, mount --bind, and binfmt_misc without privilege/setup for Linux
https://proot-me.github.io
GNU General Public License v2.0
1.96k stars 369 forks source link

Possible IPC problem in wine #365

Open ruanformigoni opened 1 year ago

ruanformigoni commented 1 year ago

Expected Behavior

To open wine inside the new root, with winecfg.

Actual Behavior

Here's the output with enabled debugging:

[root@zenbook Desktop]# WINEDEBUG=+all winecfg
trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x7ffe0000 00001000 3000 00000002
trace:virtual_ranges:free_ranges_insert_view 0x7ffe0000 - 0x7ffe1000, aligned 0x7ffe0000 - 0x7fff0000.
trace:virtual_ranges:dump_free_ranges (nil) - 0x7ffe0000.
trace:virtual_ranges:dump_free_ranges 0x7fff0000 - 0xffffffff.
trace:virtual:dump_view View: 0x7ffe0000 - 0x7ffe0fff (valloc)
trace:virtual:dump_view       0x7ffe0000 - 0x7ffe0fff c-r--
trace:virtual:NtAllocateVirtualMemory 0xffffffff (nil) 00200000 102000 00000004
trace:virtual:map_view got mem in reserved area 0x7fde0000-0x7ffe0000
trace:virtual_ranges:free_ranges_insert_view 0x7fde0000 - 0x7ffe0000, aligned 0x7fde0000 - 0x7ffe0000.
trace:virtual_ranges:dump_free_ranges (nil) - 0x7fde0000.
trace:virtual_ranges:dump_free_ranges 0x7fff0000 - 0xffffffff.
trace:virtual:dump_view View: 0x7fde0000 - 0x7ffdffff (valloc)
trace:virtual:dump_view       0x7fde0000 - 0x7ffdffff --rw-
trace:virtual:NtAllocateVirtualMemory 0xffffffff 0x7ffc0000 00020000 1000 00000004
trace:virtual:dump_view View: 0x7fde0000 - 0x7ffdffff (valloc)
trace:virtual:dump_view       0x7fde0000 - 0x7ffbffff --rw-
trace:virtual:dump_view       0x7ffc0000 - 0x7ffdffff c-rw-
sock_init: shutdown() causes EOF
wineserver: starting (pid=21761)
wine: a wine server seems to be running, but I cannot connect to it.
   You probably need to kill that process (it might be pid 21761).

Steps to Reproduce the Problem

  1. Create an arch base in a folder called subsystem
  2. Use proot -R "$(pwd)"/subsystem
  3. Inside the subsystem, use the command winecfg.

Specifications

Further Comments

The wineserver process is executed, however, wine seems unable to connect to it. Killing the wineserver process leads to the same error.

In a traditional chroot, wine is executed successfully

sudo mount -t proc /proc ./subsystem/proc/
sudo mount -t sysfs /sys ./subsystem/sys/
sudo mount -o bind /dev ./subsystem/dev/
sudo mount -o bind /run ./subsystem/run/
sudo mount -o bind /root ./subsystem/root/
sudo mount -o bind /tmp ./subsystem/tmp/

# Here winecfg is executed
sudo chroot subsystem /bin/bash

sudo umount ./subsystem/proc/
sudo umount ./subsystem/sys/
sudo umount ./subsystem/dev/
sudo umount ./subsystem/run/
sudo umount ./subsystem/root/
sudo umount ./subsystem/tmp/

Resources

here is the link to the arch system with wine already installed (which works as intended with the traditional chroot method shown above).