Skip to content
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

Colliding case-sensitive file paths on a case-insensitive filesystem #36

Open
HofiOne opened this issue Jul 29, 2024 · 6 comments
Open

Comments

@HofiOne
Copy link
Contributor

HofiOne commented Jul 29, 2024

git clone https://github.com/buytenh/ivykis.git .

Cloning into '.'...
remote: Enumerating objects: 5440, done.
remote: Counting objects: 100% (161/161), done.
remote: Compressing objects: 100% (69/69), done.
remote: Total 5440 (delta 98), reused 153 (delta 92), pack-reused 5279
Receiving objects: 100% (5440/5440), 3.04 MiB | 452.00 KiB/s, done.
Resolving deltas: 100% (3468/3468), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:

'man3/IV_FD_PUMP_INIT.3'
'man3/iv_fd_pump_init.3'

@buytenh
Copy link
Owner

buytenh commented Jul 29, 2024

This came up previously: #7

How do you suggest we address this?

@HofiOne
Copy link
Contributor Author

HofiOne commented Jul 29, 2024

I cannot see here why the capital versions are needed at all, probably using only the lowercase versions can be a fool-proof solution (but, I guess it is intentional for some reason the doubled files)

@buytenh
Copy link
Owner

buytenh commented Jul 29, 2024

IV_FD_PUMP_INIT() is a macro to pre-initialize a struct iv_fd_pump object, and iv_fd_pump_init() is a function to finalize the initialization -- in other words, they are distinct entities, and on case sensitive filesystems, they therefore require distinct man pages.

@HofiOne
Copy link
Contributor Author

HofiOne commented Jul 29, 2024

I see, thanks for the explanation.
I guess the manpages (and their names) are auto-generated, but probably there might be an option to specify a custom name for a given item

@HofiOne
Copy link
Contributor Author

HofiOne commented Jul 30, 2024

The problem we have currently is that if the dist release tar.gz is created on a case-sensitive filesystem, but the package is being built on a case-insensitive one later (like the default macOS) then at the unpacking only one of the files remains (usually the capital one).

This can lead to the issue described in #7.

What I suggest is to use different file names and explicitly move/rename/delete as needed during the make phase depending on the filesystem case sensitivity.

@buytenh
Copy link
Owner

buytenh commented Sep 13, 2024

Case-insensitive filesystems are not currently supported (neither for
generating dist tarballs on nor for building on), and this is not
something I can make work myself, as I don't have access to any MacOS
systems, but if you can come up with a patch that makes it work for you,
I will merge it if it looks reasonable and doesn't break case-sensitive
filesystems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants