-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Storing data in case insensitive format #232
Comments
This fails why exactly? You can't really store the files case-insensitive. What you rather want is case-insensitive lookup when accessing the data. This could definitely be an option to the FUSE driver, but I wouldn't mind if there was an off-the-shelf solution for the problem. |
@diablo00001 either you provide some context on the incredibly fishy looking link, or I'm going to report/delete your comments. |
Also, we certainly don't need that link twice. |
Deleted comments and reported @diablo00001. |
I see. Thank you for clarifying.
I'm unsure of why it is failing at step 5, perhaps cicpoffs does not play well with fuse-overlay-fs? It certainly works fine on its own. If I follow from steps 1 through 3 and then launch the game directly it works fine. |
I did a quick proof-of-concept to make sure there isn't a problem with the low-level FUSE API that DwarFS uses.
So this is entirely feasible. |
On testing, ciopfs works, however the following requirement
Makes it's utility rather limited for me because of the added requirement of preprocessing all files to lowercase. |
So this could also be a bug in cicpoffs considering it works with ciopfs? Have you tried swapping (3) and (4)? I don't see why the order would matter (on the contrary, if e.g. the Windows code wrote to |
Yes. That seems to be the case.
For cicpoffs? It crashes. Ciopfs works fine in both cases. |
Shame. Maybe worth opening an issue for cicpoffs? I'm not opposed to adding this to DwarFS, but doing it properly will require a bit of work. It's unlikely going to happen in the next 1-2 months. |
Will do that.
Cheers. I have no problem waiting. |
While beautifully archived, result from dwarfs' case-sensitive lookup, case-insensitive queries are bound to bring failure state for a lot of assets & software under Windows.
I tried wrapping with ntptfs: By the way, when providing a UNC VolumePrefix, please change Silly being limited to < 26 mounts - and where drive letters are needed for surprise pnp. |
I have no idea what you're talking about. Please assume that I know nothing about Windows. |
My lousy wording, in a nutshell: Windows has always used drive letter mappings A:\ to Z:\ for storage devices and whatnot. (Compare usage of this old DOS style versus the naming freedom of UNC paths in my provided example where path case insensitivity is shown to be a requisite on Windows; given an instance where a system command line program, FC.exe, turns its arguments uppercase for some inane reason.) Users lose a drive letter assigned to each mount, whether from virtual volume or surprise insertion of physical media, and we cannot mount more than there are letters in the alphabet. WinFsp insists that this old convention is followed, and responsibility for said drive letter mappings corresponds to the mountpoint parameter. (An aside, Windows’ file manager gui, Explorer, for some reason cannot reach the unfettered alternative \UNC\paths probably trying to hand it off to SMB networking, I don't know - may be good reason for the questionable decision to force the creation of drive letters; a question that I’d put to the WinFsp developer.) And on account of the WinFsp-FUSE abstracting out of sight the call to FspFileSystemSetMountPoint; not even exposed to you, I’m guessing, to even be able to make conditional. Somewhere down the line a drive letter is automatically alotted whether we like it or not. Rclone also has this issue. Sorry to bother a wizard such as yourself if being the case it appears to be out of your hands, hence maybe it falls on to myself to hack together a proxy WinFsp library to bypass its forced drive letter creation for all filesystems employing the WinFSP-FUSE layer. |
Is that really the case? If I do
I may be totally wrong (as I said, I know almost nothing about Windows). If the drive letter is somehow consumed "invisibly" by something WinFsp does under the hood, this issue must indeed be addressed by WinFsp. |
- denoting no volume letter taken. I forgot mount points could be used in substitute. I recall some 3rd-party compatibility [or preference] reason I didn't resort to them. And it's either-or, can't seem use them in combination with --VolumePrefix=\UNC\test With regards to native WinFsp ntptfs, commenting out FspFileSystemSetMountPoint (and related cmd line args parsing) was sufficient to avoid necessity of mountpoint altogether. Whereas in order to use UNC prefix with a WinFsp-FUSE wrapper, my typical mount line has been & continues to be a wildcard:
(I wonder where least system overhead might rest but leave that for another occasion.) We can rest this by-the-way issue erm by the wayside, too, as yes, up to WinFsp guy. Thanks for your input and making the most-excellent DwarFS project [available to all]! |
Implemented in d6b620b. You can check if this works for your use case using the artifacts from the CI pipeline.
This works on all platforms, not just Windows. Not sure, but that might also help with running stuff under This should work with pretty much any file name, e.g. even a name like |
Hello. I use dwarfs to store Windows games and use a script to mount them via fuse and run via wine. As Windows does not care about case sensitivity, game devs occasionally use the incorrect case which causes no problem on windows but causes issues on Linux. To that end, I would like to request an option to store files in dwarfs in a case insensitive format.
My current (unsuccessful attempt) to get it working.
The text was updated successfully, but these errors were encountered: