Hi!
I just installed Crossover Version 18.0 (18.0.0.31656) for Mac on a High Sierra from the site. Bland instalation, with no error or quirk. Just next, next and finish. No hassle or errors.
Every time I try to create a new (my first) bottle I get an error: "OSError: [Errno 20] Not a directory".
It doesn't matter if I install a new application, or create a brand new empty bottle. Always the same error.
I tried to google for the error (and look here), but I didn't find anything. I tried to change the default bottle directory both in the "defaults write com.codeweavers.CrossOver" or in the config file CrossOver.conf but it didn't change anything.
Luckly I found somewhere a post showing the command to create bottles. (/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin/cxbottle). While trying the command I noticed that the path /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin was a file, and not a directory. The file content was the name os another directory (CrossOver-Hosted Application). Well .. that is strange.
I renamed the file to .old and created a symbolic link (ln -s "CrossOver-Hosted Application" bin) and tried to run cxbottle again. Well .. more errors ... now in lib directory.
I don't know why, all the symbolic links in the app were converted to regular files. I looked for them and changed one by one. (I'll post how I did it). And now it is working like a charm.
My educated guess is that the installation ZIP (crossover-18.0.0.zip) is damaged. Actually, ZIP files does not work with symbolic links. That's a good reason why that happened! (I extracted with B1FreeArchiver). Maybe it is time to make a .DMG file for it!
How I fixed it? First I created a script to create the symbolic link from the content of the file. I callt is fixlink:
#!/bin/sh
FILE=`basename "$1"`
DIR=`dirname "$1"`
pushd $DIR > /dev/null
mv "$FILE" "$FILE.old"
ln -s `cat "$FILE.old"` "$FILE"
popd > /dev/null
Then I looked for small files that are not called ".old" and listed the content:
$ find . -type f -size -40c -not -name \*.old -exec grep -IH . {} \;
Many files ... most of them executables to point to some dummy, and libraries pointing to the right version in lib directory.
Now it was time to fix every file. Some files are legit:
./Contents/Resources/CrossOver CD Helper.app/Contents/PkgInfo:APPL????
./Contents/Resources/Bottle Helper.apptemplate/Contents/PkgInfo:APPL????
./Contents/Resources/Menu Helper.apptemplate/Contents/PkgInfo:APPL????
./Contents/Resources/CrossOver CrossTie Launcher.app/Contents/PkgInfo:APPL????
./Contents/Frameworks/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/PkgInfo:APPL????
./Contents/PkgInfo:APPL????
All the other files can be changed. Here is the list of the files I changed:
./Contents/SharedSupport/CrossOver/lib64/libcxjpeg.dylib.old:libcxjpeg.9.dylib
./Contents/SharedSupport/CrossOver/lib64/libgnutls.dylib.old:libgnutls.30.dylib
./Contents/SharedSupport/CrossOver/lib64/libcxpng16.dylib.old:libcxpng16.16.dylib
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/pstores.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/ctfmon.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/mdm.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/mosearch.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/maildoff.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/imjpmig.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/ddhelp.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/qttask.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/fakedlls/findfast.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib64/wine/progman.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/maildoff.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/pstores.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/mdm.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/ctfmon.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/qttask.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/ddhelp.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/findfast.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/mosearch.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/wine/imjpmig.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib64/libcxfreetype.dylib.old:libcxfreetype.6.dylib
./Contents/SharedSupport/CrossOver/lib64/libgmp.dylib.old:libgmp.10.dylib
./Contents/SharedSupport/CrossOver/lib64/libcxfreetype.so.old:libcxfreetype.dylib
./Contents/SharedSupport/CrossOver/lib64/libwine.1.dylib.old:libwine.1.0.dylib
./Contents/SharedSupport/CrossOver/bin.old:CrossOver-Hosted Application
./Contents/SharedSupport/CrossOver/lib/libcxjpeg.dylib.old:libcxjpeg.9.dylib
./Contents/SharedSupport/CrossOver/lib/libgnutls.dylib.old:libgnutls.30.dylib
./Contents/SharedSupport/CrossOver/lib/libcxpng16.dylib.old:libcxpng16.16.dylib
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/pstores.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/ctfmon.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/mdm.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/mosearch.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/maildoff.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/imjpmig.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/ddhelp.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/qttask.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/fakedlls/findfast.exe.old:cxdummy.exe
./Contents/SharedSupport/CrossOver/lib/wine/progman.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/maildoff.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/pstores.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/mdm.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/ctfmon.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/qttask.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/ddhelp.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/findfast.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/mosearch.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/wine/imjpmig.exe.so.old:cxdummy.exe.so
./Contents/SharedSupport/CrossOver/lib/libcxfreetype.dylib.old:libcxfreetype.6.dylib
./Contents/SharedSupport/CrossOver/lib/libgmp.dylib.old:libgmp.10.dylib
./Contents/SharedSupport/CrossOver/lib/libcxfreetype.so.old:libcxfreetype.dylib
./Contents/SharedSupport/CrossOver/lib/libwine.1.dylib.old:libwine.1.0.dylib
./Contents/SharedSupport/CrossOver/doc/ja/html/images.common.old:../../images.common
./Contents/SharedSupport/CrossOver/doc/fr/html/images.mac/mac-cpl.png.old:../../../en/html/images.mac/mac-cpl.png
./Contents/SharedSupport/CrossOver/doc/fr/html/images/supportsite.png.old:../../../en/html/images/supportsite.png
./Contents/SharedSupport/CrossOver/doc/fr/html/images.common.old:../../images.common
./Contents/SharedSupport/CrossOver/doc/en/html/images.common.old:../../images.common
./Contents/SharedSupport/CrossOver/CrossOver-Hosted Application/regedit.old:wine
./Contents/SharedSupport/CrossOver/CrossOver-Hosted Application/regsvr32.old:wine
./Contents/SharedSupport/CrossOver/CrossOver-Hosted Application/cxstart.old:wine
./Contents/SharedSupport/CrossOver/CrossOver-Hosted Application/autorun.old:wine
./Contents/SharedSupport/CrossOver/share/crossover/cxbottle/deb.compat.old:5
./Contents/Frameworks/Sparkle.framework/Headers.old:Versions/Current/Headers
./Contents/Frameworks/Sparkle.framework/Sparkle.old:Versions/Current/Sparkle
./Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr_CA.lproj.old:fr.lproj
./Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt.lproj.old:pt_BR.lproj
./Contents/Frameworks/Sparkle.framework/Versions/Current.old:A
./Contents/Frameworks/Sparkle.framework/Resources.old:Versions/Current/Resources
Good luck if you have the same problem I had!