Hi Cygwin friends and users,

I released a new Cygwin TEST version 2.5.0-0.3.

Apart from a few bugfixes, this new test release introduces a pthread
barrier implementation, courtesy of Václav Haisman.  It exports the
following new functions:

- pthread_barrierattr_init, pthread_barrierattr_setpshared,
  pthread_barrierattr_getpshared, pthread_barrierattr_destroy,
  pthread_barrier_init, pthread_barrier_destroy, pthread_barrier_wait

The other big things are the introduction of a change to chmod, as well
as the introduction of the POSIX.1e ACL API:

- Usually POSIX.1e requires that chmod does not change the group
  permissions but the MASK permissions if additional user and group
  entries are present.  This may result in a confusing behaviour:

    $ getfacl -c foo
    user::rwx
    group::r--
    group:blah:r--
    mask::r--
    other::r--

  So the primary group only has read perms.  Now let's see what happens
  when calling `chmod g+w':

    $ ls -l foo
    -rwxr--r--+  [...] foo
    $ chmod g+w foo
    $ ls -l foo
    -rwxrw-r--+  [...] foo

  Looks good so far, but...

    $ getfacl -c foo
    user::rwx
    group::r--        <-- Still only read perms, no write perms
    group:blah:r--
    mask::rw-         <-- Only the mask has changed
    other::r--
 
  So chmod g+w does NOT result in the primary group getting write
  permissions if it doesn't already have them.  This is one of the
  more puzzling aspects of POSIX.1e.

  The chmod change in 2.5.0 now handles default Windows ACL with entries
  only for the owner, the group, other, SYSTEM and the Administrators
  group as if it's a standard POSIX ACL.  That is, chmod will not only
  influence the POSIX MASK entry, but also the owning group entry.  The
  result should be more along the lines of Windows user expectations
  when calling chmod.  Note that this is restricted to *only* the ACLs
  described above.  Any other group present in the ACL will switch
  chmod back to the POSIX.1e behaviour.

- The full set of POSIX.1e functions is now available.

- Most of the libacl extensions are available as well.  The only
  exceptions right now are the two functions perm_copy_file and
  perm_copy_fd.  These can be added later.  Somebody just has to do it :)

- The <sys/acl.h> header now *only* exposes the POSIX.1e API.

- To get access to the Solaris API, you will have to include
  <cygwin/acl.h> now.

- There's a new header <acl/libacl.h> which exposes the libacl extension
  functions.

- Fix potential hang when using LoadLibraryEx(LOAD_LIBRARY_SEARCH_SYSTEM32).
  Reported and tested via IRC.

- Fix a bug in ACL handling which might result in a spurious extra entry
  for the primary group.  Self-observed.

- printf(3): Handle multibyte decimal point in field size computation.
  Addresses: https://cygwin.com/ml/cygwin/2016-02/msg00014.html

- cygwin_conv_path: Always preserve trailing backslashes in conversion
  to POSIX paths.
  Addresses: https://cygwin.com/ml/cygwin/2016-01/msg00480.html


Have fun,
Corinna


(*) http://wt.tuxomania.net/publications/posix.1e/


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

Reply via email to