bug#55583: guix-daemon doesn't cleanly error-out on case-insensitive file systems.

2022-05-24 Thread Brian Cully via Bug reports for GNU Guix



Maxime Devos  writes:

Create a file /gnu/store/case-sensitivity-test (if it doesn't 
already
exist).  Open /gnu/store/CASE-SENSITIVITY-TEST.  If it succeeds, 
you

have a case-sensitive file system.


Hah. I was so wrapped up in thinking about kernel or POSIX APIs I 
missed the obvious thing. ;)


/If/ we go this route, though, I’d suggest a small change to 
handle so-called “mixed-case” file-systems, where you can have two 
files differentiated by case, but if there’s no ambiguity, then 
one may address a file using any case:


- echo lower-case > case-sensitivity-test
- echo UPPER-CASE > CASE-SENSITIVITY-TEST
- test x$(cat CASE-SENSITIVITY-TEST) = xUPPER-CASE

-bjc





bug#55583: guix-daemon doesn't cleanly error-out on case-insensitive file systems.

2022-05-23 Thread Maxime Devos
Brian Cully schreef op ma 23-05-2022 om 12:54 [-0400]:
> I don’t know of a good way to check this in a file-system 
> independent manner

Create a file /gnu/store/case-sensitivity-test (if it doesn't already
exist).  Open /gnu/store/CASE-SENSITIVITY-TEST.  If it succeeds, you
have a case-sensitive file system.

Greetings,
Maxime.


signature.asc
Description: This is a digitally signed message part


bug#55583: guix-daemon doesn't cleanly error-out on case-insensitive file systems.

2022-05-23 Thread Brian Cully via Bug reports for GNU Guix



Maxime Devos  writes:
Not sure how a case-insensitivity would cause this, but I think 
we
can keep this open -- wouldn't it be better if "guix-daemon" 
just says

‘nope, case-sensitivity is required (*), not continuing)?

(*) For reproducible builds, and apparently for substitution.


The issue is wide-spread: there are a number of packages that will 
install files who’s names only vary by case. It’s also 
per-package; most work fine, but some will just break 
randomly. Some don’t seem to break until you try to use them, and 
then they yell and complain. This is something I run into often 
enough that it’s familiar to me and know how to fix, but not often 
enough to prevent my surprise when it happens.


Guix can’t fix it, unfortunately. Maybe checking case sensitivity 
would be a worthwhile thing to do, just to warn people, but: I 
don’t know of a good way to check this in a file-system 
independent manner, and I honestly doubt it’s something that 
actually happens that often. I’ve been trucking a ZFS storage pool 
around since I first installed it on macOS about a decade ago, and 
since macOS is case-insensitive, that’s how it was installed (case 
sensitivity causes its own issues there). Short of running Guix on 
Windows or macOS, I don’t see this being a problem.


-bjc





bug#55583: guix-daemon doesn't cleanly error-out on case-insensitive file systems.

2022-05-23 Thread Maxime Devos
retitle 55583 guix-daemon doesn't cleanly error-out on case-sensitive file 
systems.
thanks

Brian Cully schreef op ma 23-05-2022 om 09:00 [-0400]:
This bug was caused by having my Guix filesystem mounted on a 
case-insensitive file system. Re-running pull within the Docker 
container mounted on a case-sensitive file system works correctly.

This bug can be closed. Sorry for the noise.

-bjc

Not sure how a case-insensitivity would cause this, but I think we
can keep this open -- wouldn't it be better if "guix-daemon" just says
‘nope, case-sensitivity is required (*), not continuing)?

(*) For reproducible builds, and apparently for substitution.

Greetings,
Maxime


signature.asc
Description: This is a digitally signed message part