Whisky-App / Whisky

A modern Wine wrapper for macOS built with SwiftUI
https://getwhisky.app
GNU General Public License v3.0
11.97k stars 253 forks source link

[Bug]: Nothing Displaying - Tracking Issue #40

Closed IsaacMarovitz closed 1 year ago

IsaacMarovitz commented 1 year ago

Superceeds #38, #24, #11

This issue is due to a change in how dependencies work in Apple's configuration of Wine. In standard CX-Wine, the necessary dylibs are provided in the Wine/lib folder. Apple CX-Wine instead looks for these dependencies in x86 brew.

The solution, for now, is to install these missing dependencies under x86 brew. From there, restarting Whisky should be sufficient, but some have reported needing to remake the entire bottle.

/usr/local/bin/brew install zlib freetype sdl2 libgphoto2 faudio jpeg libpng mpg123 libtiff libgsm glib gnutls libusb gettext openssl@1.1 sane-backends

The actual solution is to bundle the dependencies properly like they were before, but right now I'm struggling to get Wine to find these dylibs.

markraub commented 1 year ago

Getting an error when attempting to install those libraries, specifically gettext is failing to compile. Full output below

==> Installing libgphoto2 dependency: gettext
==> ./configure --prefix=/usr/local/homebrew/Cellar/gettext/0.21.1 --libdir=/usr/local/homebrew/Cellar/gettext/0.21.1/lib --with-included-glib --with-included-libcroco --with-included-libunistring --with-included-libxml --with-

n==> make
Last 15 lines from /Users/markraub/Library/Logs/Homebrew/gettext/02.make:
libtool: link: ( cd ".libs" && rm -f "libxml_rpl.la" && ln -s "../libxml_rpl.la" "libxml_rpl.la" )
/bin/sh ../libtool  --tag=CC   --mode=link clang  -g -O2  -no-undefined               -lncurses -no-undefined -export-symbols libtextstyle.sym -version-info 1:2:1 -rpath /usr/local/homebrew/Cellar/gettext/0.21.1/lib  -o libtextstyle.la -rpath /usr/local/homebrew/Cellar/gettext/0.21.1/lib gl_array_list.lo basename-lgpl.lo binary-io.lo c-ctype.lo c-strcasecmp.lo c-strncasecmp.lo cloexec.lo concat-filename.lo exitfail.lo fatal-signal.lo fd-hook.lo fd-ostream.lo file-ostream.lo full-write.lo get_ppid_of.lo get_progname_of.lo getprogname.lo html-ostream.lo html-styled-ostream.lo ialloc.lo iconv-ostream.lo gl_list.lo glthread/lock.lo malloca.lo math.lo mem-hash-map.lo memory-ostream.lo noop-styled-ostream.lo ostream.lo printf-frexp.lo printf-frexpl.lo safe-read.lo safe-write.lo sig-handler.lo sockets.lo stat-time.lo styled-ostream.lo sys_socket.lo term-ostream.lo term-style-control.lo term-styled-ostream.lo glthread/threadlib.lo unistd.lo unistr/u8-mbtouc.lo unistr/u8-mbtouc-aux.lo xmalloc.lo xalloc-die.lo xconcat-filename.lo xgethostname.lo gl_xlist.lo xsize.lo xvasprintf.lo xasprintf.lo color.lo misc.lo version.lo asnprintf.lo asprintf.lo error.lo free.lo obstack.lo open.lo printf-args.lo printf-parse.lo reallocarray.lo snprintf.lo stat.lo strerror.lo strerror-override.lo vasnprintf.lo vasprintf.lo libcroco_rpl.la libglib_rpl.la libxml_rpl.la  
libtool: link: /usr/bin/sed 's|^|_|' < libtextstyle.sym > .libs/libtextstyle-symbols.expsym
libtool: link: clang -dynamiclib  -o .libs/libtextstyle.0.dylib  .libs/gl_array_list.o .libs/basename-lgpl.o .libs/binary-io.o .libs/c-ctype.o .libs/c-strcasecmp.o .libs/c-strncasecmp.o .libs/cloexec.o .libs/concat-filename.o .libs/exitfail.o .libs/fatal-signal.o .libs/fd-hook.o .libs/fd-ostream.o .libs/file-ostream.o .libs/full-write.o .libs/get_ppid_of.o .libs/get_progname_of.o .libs/getprogname.o .libs/html-ostream.o .libs/html-styled-ostream.o .libs/ialloc.o .libs/iconv-ostream.o .libs/gl_list.o glthread/.libs/lock.o .libs/malloca.o .libs/math.o .libs/mem-hash-map.o .libs/memory-ostream.o .libs/noop-styled-ostream.o .libs/ostream.o .libs/printf-frexp.o .libs/printf-frexpl.o .libs/safe-read.o .libs/safe-write.o .libs/sig-handler.o .libs/sockets.o .libs/stat-time.o .libs/styled-ostream.o .libs/sys_socket.o .libs/term-ostream.o .libs/term-style-control.o .libs/term-styled-ostream.o glthread/.libs/threadlib.o .libs/unistd.o unistr/.libs/u8-mbtouc.o unistr/.libs/u8-mbtouc-aux.o .libs/xmalloc.o .libs/xalloc-die.o .libs/xconcat-filename.o .libs/xgethostname.o .libs/gl_xlist.o .libs/xsize.o .libs/xvasprintf.o .libs/xasprintf.o .libs/color.o .libs/misc.o .libs/version.o .libs/asnprintf.o .libs/asprintf.o .libs/error.o .libs/free.o .libs/obstack.o .libs/open.o .libs/printf-args.o .libs/printf-parse.o .libs/reallocarray.o .libs/snprintf.o .libs/stat.o .libs/strerror.o .libs/strerror-override.o .libs/vasnprintf.o .libs/vasprintf.o   -Wl,-force_load,./.libs/libcroco_rpl.a -Wl,-force_load,./.libs/libglib_rpl.a -Wl,-force_load,./.libs/libxml_rpl.a  -lncurses  -g -O2   -install_name  /usr/local/homebrew/Cellar/gettext/0.21.1/lib/libtextstyle.0.dylib -compatibility_version 2 -current_version 2.2 -Wl,-single_module -Wl,-exported_symbols_list,.libs/libtextstyle-symbols.expsym
Undefined symbols for architecture x86_64:
  "_iconv_ostream_create", referenced from:
     -exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[5]: *** [libtextstyle.la] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Do not report this issue to Homebrew/brew or Homebrew/homebrew-core!
kode54 commented 1 year ago

Already running Whisky 0.2.1, first version I've tested, and all dependencies installed. In fact, I have the full game-porting-toolkit installed this morning. Steam window renders blank, unless I use a prefix I created with CrossOver before upgrading to Sonoma.

markraub commented 1 year ago

Oh nice! Could you tell me which version of the gettext library you're running through your x86_64 homebrew instance? I have 0.21.1 running on my ARM homebrew, so I'm just hoping its a weird version incompatibility with being on the latest and translating through rosetta.

kode54 commented 1 year ago

I have 0.21.1 installed in both ARM64 and x86_64 cellars.

marshalleq commented 1 year ago

I already had brew installed and have had a few issues with it complaining arm vs x86 and now arm vs intel, which I assume is also arm vs x86. It would be useful to have some brief explanation of this challenge on the main page and what / where we should install things. In my case after an otherwise successful installation of the above:

Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)! Please create a new installation in /opt/homebrew using one of the "Alternative Installs" from: https://docs.brew.sh/Installation You can migrate your previously installed formula list with: brew bundle dump

To resolve I ran: arch -x86_64 zsh (which is listed on the main page, but may not be clear for everyone - context is good)

davidmarcos98 commented 1 year ago

but some have reported needing to remake the entire bottle

I needed to do this after installing/linking the dependencies

IsaacMarovitz commented 1 year ago

Resolved in 0.2.2