From: Junio C Hamano <hidden> Date: 2016-06-15 22:48:32
Eric Blake [off-list ref] writes:
Now that Cygwin 1.7.x has enabled lots of new features, and Cygwin 1.5
is no longer actively supported by the Cygwin mailing lists, we might
as well update the defaults to cater to those new features.
NO_TRUSTABLE_FILEMODE is only necessary on FAT drives; the Cygwin
community recommends NTFS drives, but there is still too much use
for FAT to switch the default. Likewise, UNRELIABLE_FSTAT is probably
file-system specific, but worth keeping unchanged.
This commit does not change the default for NO_MMAP, although definitive
proof of whether this option is necessary is lacking.
Signed-off-by: Eric Blake <redacted>
Thanks; as I lack Cygwin environment to test this myself, I'll apply this
directly on 'master' and see if anybody screams ;-)
Do we need to update this part when Cygwin 1.8 is released? Replacing
this with "ifeq(... ,1 5)" may not be an improvement either, unless we are
sure that nobody is using 1.4 or older, but I wonder if somebody else have
better ideas?
Do we need to update this part when Cygwin 1.8 is released?
Odd numbers are public cygwin releases (1.5, 1.7), even numbers are Red
Hat releases (1.6, 1.8), so cygwin 1.8 already does exist for Red Hat
licensed customers. It will probably be years before cygwin 1.9/1.10
exists, at which point 1.5/1.6 will be such a distant memory that we
could just delete this block altogether at that time.
Replacing
this with "ifeq(... ,1 5)" may not be an improvement either, unless we are
sure that nobody is using 1.4 or older, but I wonder if somebody else have
better ideas?
Nothing short of using $(shell) and doing some actual computation on the
string in $(uname_R). But that's not too hard, if people think it's
worth it; speak up if you want me to rework it along those lines,
otherwise I'll assume that things are good enough as-is.
--
Eric Blake eblake@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
From: Jonathan Nieder <hidden> Date: 2016-06-15 22:48:33
Eric Blake wrote:
On 04/02/2010 12:47 AM, Junio C Hamano wrote:
quoted
Replacing
this with "ifeq(... ,1 5)" may not be an improvement either, unless we are
sure that nobody is using 1.4 or older, but I wonder if somebody else have
better ideas?
Nothing short of using $(shell) and doing some actual computation on the
string in $(uname_R). But that's not too hard, if people think it's
worth it; speak up if you want me to rework it along those lines,
otherwise I'll assume that things are good enough as-is.
Red Hat internal people might want to be able to use 1.8 when it comes
out. Maybe something like this would do the trick? I don’t know whether
Cygwin 1.6 has the fixes 1.7 does, so in my ignorance I lumped it with
1.5.
What you sent is probably good enough already; just trying to avoid
future work.
-- %< --
Subject: Makefile: future-proof Cygwin version check
Tweak the condition that detects old Cygwin versions to not include
versions such as 1.8, 1.11, and 2.1.
Signed-off-by: Jonathan Nieder <redacted>
---
From: Eric Blake <hidden> Date: 2016-06-15 22:48:33
On 04/03/2010 01:47 AM, Jonathan Nieder wrote:
Red Hat internal people might want to be able to use 1.8 when it comes
out. Maybe something like this would do the trick? I don’t know whether
Cygwin 1.6 has the fixes 1.7 does, so in my ignorance I lumped it with
1.5.
Cygwin 1.6 is on par with 1.5 feature-wise, so your cutoff of 1.6 as the
last old version is correct.
It would be nice to use fewer processes, since forking is so expensive
on cygwin:
ifeq ($(shell case '$(uname_R)' in 1.[1-6].*) echo old;; esac),old)
But does that work to have unbalanced ) in a makefile $(shell)? On the
other hand, this is already in a chunk guarded by $(uname_S) being
cygwin, and we know that cygwin shells understand:
ifeq ($(shell case '$(uname_R)' in (1.[1-6].*) echo old;; esac),old)
even though it is not portable to other shells, like Solaris /bin/sh.
--
Eric Blake eblake@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
From: Jonathan Nieder <hidden> Date: 2016-06-15 22:48:33
Eric Blake wrote:
Cygwin 1.6 is on par with 1.5 feature-wise, so your cutoff of 1.6 as the
last old version is correct.
Thanks for explaining.
ifeq ($(shell case '$(uname_R)' in (1.[1-6].*) echo old;; esac),old)
Looks good to me.
While I have your attention, do you know of a simple way to test
Cygwin programs under Linux? setup.exe does not work well under wine,
so I am asking mostly in the hope that there is a .tar.gz or .zip
binary distribution somewhere I could play with.
Thanks,
Jonathan
From: Eric Blake <hidden> Date: 2016-06-15 22:48:33
On 04/05/2010 08:30 AM, Jonathan Nieder wrote:
Eric Blake wrote:
quoted
Cygwin 1.6 is on par with 1.5 feature-wise, so your cutoff of 1.6 as the
last old version is correct.
Thanks for explaining.
quoted
ifeq ($(shell case '$(uname_R)' in (1.[1-6].*) echo old;; esac),old)
Looks good to me.
Junio mentioned he had already queued your first version of the patch;
are you going to re-submit it with this tweak?
While I have your attention, do you know of a simple way to test
Cygwin programs under Linux? setup.exe does not work well under wine,
so I am asking mostly in the hope that there is a .tar.gz or .zip
binary distribution somewhere I could play with.
Sadly, the fact that wine is not yet able to run setup.exe is evidence
that wine is still lacking some emulation abilities, and while I am
aware that the situation is trying to be improved, I am not actively
participating in that effort. For now, I am only aware of the ability
to run cygwin on native windows boxes (including virtual machines). In
fact, I'm currently using a 240-day evaluation license of Windows Sever
2008 inside a VM to experiment with cygwin on my Linux box, without
having spent any extra money.
--
Eric Blake eblake@redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
From: Jonathan Nieder <hidden> Date: 2016-06-15 22:48:33
From: Eric Blake <redacted>
It is nice to use fewer processes, since forking is so expensive on
cygwin. So use a case statement instead of expr.
But does that work to have unbalanced ) in a makefile $(shell)? On
the other hand, this is already in a chunk guarded by $(uname_S) being
cygwin, and we know that cygwin shells understand:
case '$(uname_R)' in (1.[1-6].*) echo old;; esac
even though it is not portable to other shells, like NetBSD ash.
Signed-off-by: Jonathan Nieder <redacted>
---
Eric Blake wrote:
quoted
Eric Blake wrote:
quoted
quoted
ifeq ($(shell case '$(uname_R)' in (1.[1-6].*) echo old;; esac),old)
[...]
Junio mentioned he had already queued your first version of the patch;
are you going to re-submit it with this tweak?
Since the patch to future-proof the version check has already hit master,
here’s the change as an independent patch against master.
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)