Support for unarchiving symbolic links
Both zip and tar allow for symbolic links to be included in archives as links, and not just as files. The launcher does not currently handle unarchiving correctly when symbolic links are encountered. As an example, the latest develop macOS archive contains the following symlink:
lrwxr-xr-x@ 1 Adam staff 16B Oct 10 15:06 libzip.5.dylib -> libzip.5.3.dylib
The above link was extracted using the default macOS Archive Utility, but similar results are seen when invoking unzip directly from the command line.
Using the launcher, we get the following:
-rw-r--r--@ 1 Adam staff 16B Oct 11 16:25 libzip.5.dylib
The file was extracted, but not as a symlink.
As of today, this breaks launching the game with the latest stable release (0.3.5).
I'll start working on this. Honestly, handling symlinks in the ZIP format is kinda tricky, as it isn't as clearly standardized as I'd hope.
Honestly, I need to replace all the archive handling code in here with a library like libarchive. I had avoided it at the time because combining external dependencies with QMake was a nightmare, but I should just switch to CMake, which with solve that issue altogether. It might take some time, since I should also switch everything to using Github Actions.
Maybe simple fix? Treat all .dylib containing a single string as symlink, and symlink to "appropriate" dylib.