-
-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Issue Summary
When deploying mods that replace existing files (not add new ones) on Linux partitions with casefolding support and the "F" inode attribute set on the SteamApps directory, the file replacement silently fails with no error message. The "Normalize Mod File Path" setting in Stellar appears to be related to this issue.
System Configuration
- Filesystem: EXT4 formatted with casefolding support
- Directory attributes: "F" attribute set (
chattr +F
) on relevant directories
lsattr .
--------------e--F---- ./Engine
--------------e------- ./OblivionRemastered.exe
--------------e------- ./Invalidation.bsa
--------------e--F---- ./OblivionRemastered
Example
Using mod: https://www.nexusmods.com/oblivionremastered/mods/960
- Should replace:
Ignite_21_9_H264.bk2
andLoop_21_9_H264.bk2
- Location:
Oblivion Remastered/OblivionRemastered/Content/Movies/Modern
Steps to Reproduce
- Use a filesystem formatted specifically with casefolding support (e.g., EXT4)
- Set the inode attribute with
chattr +F foldername
(can just be the Oblivion folder if you want, rather than the whole SteamApps dir like i did) - Configure a profile in Stellar with "Normalize Mod File Path" enabled
- Deploy a mod that replaces existing files
- Note that the file is not replaced, with no error in logs
Workaround
Disable the "Normalize Mod File Path" option in Stellar to successfully deploy mods that replace files.
Suggestion
Perhaps it might be worth considering checking the inode attributes first before making the suggestion to the end user to enable the setting by default in linux systems, as normalization may not be necessary or may cause issues in certain filesystem configurations.
I get it though... Linux case sensitivity is the bane of every devs existence, including mine lol. I honestly appreciate you even adding a normalise function to begin with which is huge for modding on Linux. Thank you so much btw, you've made lots of lives much easier with this app!