atlanticaccent / starsector-mod-manager-rust

A mod manager for Starsector, a space fleet-battle and economics simulator. This time written in Rust.
https://atlanticaccent.github.io/starsector-mod-manager-rust/
MIT License
33 stars 1 forks source link

Installing mods from archives, or via browser, fails #158

Closed josiah-roberts closed 2 years ago

josiah-roberts commented 2 years ago

Right-clicked the zip -> "download file" Confirmed that I want to install

CompressTools { source: Extraction("Can't set user=0/group=0 for /tmp/.tmp6PsDzS/MagicLib") }
Failed to install CompressTools: Extraction error: 'Can't set user=0/group=0 for /tmp/.tmp6PsDzS/MagicLib'

Edit: appears to happen for all mods.

TheDukeofErl commented 2 years ago

I took a look at this, the issue seems to be due to CompressTools attempting to maintain file ownership. To my knowledge, files like .zip don't have any owner or group associated with the files inside them. I'm going to guess that rust is attempting to set these files to 0/0 due to that.

Changing CompressTools to ignore the ownership of the files inside the zip seems to fix the issue. Honestly, it probably makes sense to do this anyways: there's really no reason to preserve the ownership of anything inside the archive when we'd want to have them owned by our user anyways. I'll make a branch and put in a PR.

TheDukeofErl commented 2 years ago

Okay, as I noted in the PR, it seems that the error which occurs when using the web browser is actually different from the one when extracting the archive. The web browser experiences an issue well before the archive extraction does. https://github.com/atlanticaccent/starsector-mod-manager-rust/pull/159 will fix the archive extraction.

The web browser error, when trying to install nexerelin, is as follows:

Navigation: https://fractalsoftworks.com/forum/index.php?topic=9175.0
Client answered: Download("https://github.com/Histidine91/Nexerelin/releases/download/v0.10.4d/Nexerelin_0.10.4d.zip")
Navigation: https://fractalsoftworks.com/forum/index.php?topic=9175.0
thread 'tokio-runtime-worker' panicked at 'Persist download: PersistError { error: Os { code: 18, kind: CrossesDevices, message: "Invalid cross-device link" }, file: NamedTempFile("/tmp/.tmp3sbLmg") }', src/app.rs:881:47

It may be worth making this ticket specifically about the archive issue and creating a new one for the web browser problem.