Skip to content

File Replacement Issue with Casefolding inode attributes enabled #17

@EmptyVisual

Description

@EmptyVisual

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 and Loop_21_9_H264.bk2
  • Location: Oblivion Remastered/OblivionRemastered/Content/Movies/Modern

Steps to Reproduce

  1. Use a filesystem formatted specifically with casefolding support (e.g., EXT4)
  2. 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)
  3. Configure a profile in Stellar with "Normalize Mod File Path" enabled
  4. Deploy a mod that replaces existing files
  5. 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions