Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.3.0-0.5

2015-11-03 Thread Corinna Vinschen
On Nov  3 11:56, Ken Brown wrote:
> On 11/2/2015 11:39 AM, Corinna Vinschen wrote:
> >Hi Cygwin friends and users,
> >
> >
> >I released a new TEST version of Cygwin, 2.3.0-0.5.
> 
> I tried to build cygport with this release of Cygwin installed, and I found
> that a call to aclocal seemed to hang (or infloop?), with high CPU usage.
> This is on Windows 10, with both 32-bit and 64-bit Cygwin.  The problem
> doesn't occur with 2.3.0-0.4.
> 
> To reproduce:
> 
> git clone  git://github.com/cygwinports/cygport.git
> cd cygport
> ./autogen.sh

Yeah.  Immediately reproducible.  What a STUPID mistake in my code.
Expect a 2.3.0-0.6 soon.


Thanks for the report,
Corinna

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


pgpXaybk1fw7V.pgp
Description: PGP signature


Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.3.0-0.5

2015-11-03 Thread Ken Brown

On 11/2/2015 11:39 AM, Corinna Vinschen wrote:

Hi Cygwin friends and users,


I released a new TEST version of Cygwin, 2.3.0-0.5.


I tried to build cygport with this release of Cygwin installed, and I 
found that a call to aclocal seemed to hang (or infloop?), with high CPU 
usage.  This is on Windows 10, with both 32-bit and 64-bit Cygwin.  The 
problem doesn't occur with 2.3.0-0.4.


To reproduce:

git clone  git://github.com/cygwinports/cygport.git
cd cygport
./autogen.sh

Ken

--
Problem reports:   http://cygwin.com/problems.html
FAQ:   http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple



[ANNOUNCEMENT] TEST RELEASE: Cygwin 2.3.0-0.5

2015-11-02 Thread Corinna Vinschen
Hi Cygwin friends and users,


I released a new TEST version of Cygwin, 2.3.0-0.5.

This test release adds all Cygwin-related patches applied after the 
2.3.0-0.4 test release.  The support for the Parallels Desktop FS
is apparently not working yet, but that might get fixed in the next
test release.

Other than that, the original intention, testing the "new POSIX ACL
handling reloaded" code, still applies.

This is the "new POSIX ACL handling reloaded" release.

In local testing I successfully integrated AuthZ into the current Cygwin
code to generate more correct user permissions by being able to generate
effective permissions for arbitrary users.

This success convinced me that it might be possible to pick up the POSIX
permission rewrite originally targeted for the 2.0.0 release and try to
update it using AuthZ and generally revamp it to reflect effective
permissions better.

My local testing looks good, but this is a major change, so this code
really needs a lot more testing in various scenarios.  Especially
some Windows ACLs created in corporate environments are often a hard
nut to crack, and the example from

https://cygwin.com/ml/cygwin/2015-04/msg00513.html

which was the ultimate downfall of the original implementation is
the stuff which needs some good testing.

There's, as usual, a downside: AuthZ leans a bit to the slow side.
Cygwin caches information already gathered once on a per-process basis,
but in locally crafted worst case scenarios (`ls' on lots of file owned
by lots of different users and groups) the slowdown may be up to 25%.
But that's really just a worst case, in the usual scenarios the slowdown
should be mostly unnoticable.

To alleviate the problem, the AuthZ code is fortunately only called for
non-Cygwin ACLs and Cygwin ACLs created before this release.  Within a
pure Cygwin environment (e.g., some build directory only used with
Cygwin tools) AuthZ should be practically unused.

Apart from the aforementioned code changes to "just do it right", there
are two additional changes I implemented for this new POSIX ACL revamp
release:

- I reverted the questionable change I added to 2.0.0-0.7 in terms of
  chmod group permission handling.  The original description of this
  change was:

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.

- setfacl(1) now accepts the combination of the -b and -k options, just as
  on Linux (here's looking at you Achim ;)).

As for the description what this implementation strives for, please see
http://linux.die.net/man/5/acl

All changes in this release so far:



What's new:
---

- strftime(3) supports %s (seconds since Epoch) now.

- posix_madvise(POSIX_MADV_WILLNEED) now utilizes OS functionality available
  starting with Windows 8/Server 2012.  Still a no-op on older systems.

- posix_madvise(POSIX_MADV_DONTNEED) now utilizes OS functionality available
  starting with Windows 8.1/Server 2012R2.  Still a no-op on older systems.

- sysconf() now supports returning CPU cache information:
  _SC_LEVEL1_ICACHE_SIZE, _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE,
  _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC, _SC_LEVEL1_DCACHE_LINESIZE,
  _SC_LEVEL2_CACHE_SIZE, _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE,
  _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC, _SC_LEVEL3_CACHE_LINESIZE,
  _SC_LEVEL4_CACHE_SIZE, _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE

- New API: aligned_alloc, at_quick_exit, quick_exit.


What changed:
-

- setfacl(1) now allows to use the -b and -k option combined to allow reducing
  an ACL to only reflect standard POSIX permissions.

- Add support for Parallels Desktop FS (prlfs).


Bug Fixes
-

- Fix a hang when stracing a forking or spawning process without activating
  stracing of child processes.
  Addresses: https://cygwin.com/ml/cygwin/2015-08/msg00390.html

- Fix long-standing potential SEGV on 32 bit Cygwin when the dynamic loader
  for OS functions fails to load a function on Windows 7 or later.
  Addresses: No actual bug report known.

- sysconf _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN now handle more than
  64 CPUs on Windows 7 and later.

- Fix a potential crash in advisory file locking due to usage of stack space
  out of scope.
  Addresses: https://cygwin.com/ml/cygwin/2015-09/msg00079.html

- Fix