TEST RELEASE: Cygwin 2.0.0-0.7

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Apr 17 11:03:00 GMT 2015


Hi Cygwin friends and users,


New 2.0.0-0.7 test release:

- Improved setfacl tool.  It now handles mask recomputation just like
  the Linux tool.  -d option renamed to -x (but -d is still accepted
  for backward compat).  New -n,--no-mask and --mask options.

- Improved getfacl tool.  It now prints effective permissions just like
  the Linux tool.  --noname optioned renamed to --numeric (but --noname
  is still accepted for backward compat).  New -c,--omit-header,
  -e,--all-effective, and -E,--no-effective options.

- Fix a bug in account handling.  In certain scenarios a PSID pointer
  was pointing into a buffer space which got moved away due to a call to
  realloc.  This bug seems to be the problem of the reported "Permission
  denied" problems when trying to chmod.
  
- Add a missing check for uid/gid values which can't be resolved to
  Windows accounts.  chmod now returns EINVAL now in this case, just as
  the pre 2.0 DLLs.

- I introduced a change in chmod behaviour which is not exactly in
  line with POSIX 1003.1e draft 17:
  
  If you have a non-trivial ACL with secondary accounts and thus a mask
  value, chmod is supposed to change only the mask, not the permissions
  of the primary group.  However, if the primary group has few permissions
  to begin with, the result is really surprising.  ls -l would, e.g.,
  show read/write perms for the group, but the group might still have
  only read perms.

  Personally I find this chmod behaviour really, really bad, so I took
  the liberty to change it in a way which gives a much less surprising
  result:  If you call chmod on a non-trivial ACL, the group permissions
  will be used for the primary group and the mask.  I hope that this
  is working out ok.

- Fix a bug when reading DENAY ACEs of accounts with multiple entries
  (typically in the owner == group case).

- Fix how group perms are merged into owner perms in owner == group case.

- Fix a bug in SID handling which may result in broken SID info in
  passwd/group entries of unknown accounts.


Other than that...

The important change in this release is the POSIX permission handling
change, a rewrite of the underlying routines reading and creating
Windows ACLs following POSIX permission rules and POSIX ACL creating
rules per POSIX 1003.1e draft 17, as on Linux.

For a description of POSIX ACLs, see http://linux.die.net/man/5/acl


All changes in this release so far:
===================================

- New, unified implementation of POSIX permission and ACL handling.  The
  new ACLs now store the POSIX ACL MASK/CLASS_OBJ permission mask, and
  they allow to inherit the S_ISGID bit.  ACL inheritance now really
  works as desired, in a limited, but theoretically equivalent fashion
  even for non-Cygwin processes.

  To accommodate Windows default ACLs, the new code ignores SYSTEM and
  Administrators group permissions when computing the MASK/CLASS_OBJ
  permission mask on old ACLs, and it doesn't deny access to SYSTEM and
  Administrators group based on the value of MASK/CLASS_OBJ when
  creating the new ACLs.
  
  The new code now handles the S_ISGID bit on directories as on Linux:
  Setting S_ISGID on a directory causes new files and subdirs created
  within to inherit its group, rather than the primary group of the user
  who created the file.  This only works for files and directories
  created by Cygwin processes.
  
- basename(3) now comes in two flavors, POSIX and GNU.  The POSIX version is
  the default.  You get the GNU version after
  
    #define _GNU_SOURCE
    #include <string.h> 

- The maximum number of PTYs has been raised from 64 to 128.


Bug Fixes
---------
  
- Fix potential hang in pseudo ttys when generating ECHO output while the slave
  is flooding the pty with output.
  Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00019.html
  
- Fix potential premature SIGHUP in pty code.
  Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00070.html
  
- Fix a name change from symlink to target name in calls to execvp, system, etc.
  Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00270.html
      
- Fix internal error in pty -ONLCR handling.  Fix timing bug in pty OPOST 
  handling.
  Addresses: https://cygwin.com/ml/cygwin/2015-02/msg00929.html

  NOTE: This change introduces a not yet addressed regression.
  Native Windows tools generating output with Unix LF instead of
  Windows CRLF line endings will not get OPOST handling.  This
  prominently affects icacls.

- Avoid creating passwd and group records from fully qualified Windows
  account names (domain\name, name@domain).
  Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00528.html

- Avoid potential crash at startup or in getgroups(2).
  Addresses: https://cygwin.com/ml/cygwin/2015-04/msg00010.html

- Fix UTF-16 surrogate handling in wctomb and friends.
  Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00452.html


To install 32-bit Cygwin use https://cygwin.com/setup-x86.exe
To install 64 bit Cygwin use https://cygwin.com/setup-x86_64.exe

If you're already running a 32 bit version of Cygwin on 64 bit Windows
machines, you can continue to do so.  If you're planning a new install
of Cygwin on a 64 bit Windows machine, consider to use the new 64 bit
Cygwin version, unless you need certain packages not yet available in
the 64 bit release.


Have fun,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat



More information about the Cygwin-announce mailing list