From: Keith M. <kei...@us...> - 2007-09-30 07:07:57
|
On Sat, 2007-09-29 at 15:37 -0700, Suresh Govindachar wrote: > > ... on a case insensitive file system, I *cannot* have two > > distinct files in a single directory, having names which are the > > same, except for differing capitalisation of the name; on such a > > system `./foo == ./FOO' is an incontrovertible truth. > > I wish that were true, but not so -- details below. It turns out > one can argue that both make and csmake are "broken": Sorry. I realised afterwards that I could have been rather more explicit. It is implicit that, "on a case insensitive file system ... `./foo == ./FOO' is an incontrovertible truth" refers to two files WHICH LIVE ON THE CASE INSENSITIVE FILE SYSTEM. Your case is different. You have a CASE SENSITIVE file system, where `./foo == ./FOO' is an incontrovertible falsehood. When you remotely mount that file system on a host where the native file system is case insensitive, the case sensitive rules still apply for the remote mount. What is really required, is tools which can recognise the heterogeneous nature of network file systems, and act according to the rules which apply for individual mount points. At present, we don't have that, and package maintainers must work within the constraints of the more restrictive case. If all package maintainers did that, we would not need to have this discussion. In some imagined Utopia, this sort of think might work. We don't live in Utopia, and we must adapt to reality. It is easier to adapt package design to fit reality, than to make today's tools behave in a Utopian manner. Regards, Keith. |