OpenRCT2Launcher icon indicating copy to clipboard operation
OpenRCT2Launcher copied to clipboard

Support for unarchiving symbolic links

Open adam-bloom opened this issue 4 years ago • 3 comments

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.

adam-bloom avatar Oct 14 '21 01:10 adam-bloom

As of today, this breaks launching the game with the latest stable release (0.3.5).

naterinder avatar Nov 06 '21 13:11 naterinder

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.

LRFLEW avatar Nov 07 '21 02:11 LRFLEW

Maybe simple fix? Treat all .dylib containing a single string as symlink, and symlink to "appropriate" dylib.

image

phu54321 avatar Aug 03 '22 09:08 phu54321