On 2025-03-30 15:43, Corinna Vinschen wrote:
Hi Brian

Regression in 9.5 and 9.6:

   $ ls -l /bin/setfacl*
   -rwxr-xr-x 1 corinna Administrators 109379 Mar 30 21:24 /bin/setfacl.exe
   $ cd <cygwin-build-dir>
   $ ls -l x86_64-pc-cygwin/winsup/utils/setfacl*
   -rwxr-xr-x 1 corinna vinschen 109379 Mar 30 21:19 
x86_64-pc-cygwin/winsup/utils/setfacl.exe
   -rw-r--r-- 1 corinna vinschen  46188 Mar 30 21:19 
x86_64-pc-cygwin/winsup/utils/setfacl.o

With coreutils 9.0:

   $ cp x86_64-pc-cygwin/winsup/utils/setfacl /bin
   $ echo $?
   0
   $ ls -l /bin/setfacl*
   -rwxr-xr-x 1 corinna Administrators 109379 Mar 30 21:25 /bin/setfacl.exe

With coreutils 9.5 and 9.6:

   $ cp x86_64-pc-cygwin/winsup/utils/setfacl /bin
   cp: cannot create regular file '/bin/setfacl': File exists

I think the .exe suffix handling affects not only cp(1), but I didn't
check explicitely.  It looks like code from 9.0 is missing in 9.5 and 9.6.

In coreutils 9.1 the approach changed to using the dir FD relative API ...at functions:

faccessat, fchmodat, fchownat, fstatat, futimesat, linkat, mkdirat, mkfifoat, mknodat, openat/2, readlinkat, renameat/2, scandirat, symlinkat, unlinkat, utimensat

which required splitting Eric's former single patch, reworking many file patches extensively, and I still had to withdraw 9.1 because of issues; some patches need changes for each release, and may not all be complete yet, which is why I have managed only test releases so far.

The changes and patches require a cygwin.[ch]:cygwin_spelling() function (by Eric) which only handles .exe not .lnk etc, and affects lib/same.c same_name() function, and copy, install, ls, and stat program sources, as far as I can tell.

As well as the acl issues identified, there are also issues with sparse file detection (not "supported", even though it works), and testing, and the usual confusion between Cygwin, Msys, Mingw, and Windows histories.

Recent releases have also become more difficult to test because more cases just hang or loop and need killed to proceed: perl test timeouts do not break out reliably!
And file system loops create gigs of permission denied errors and log diffs.

Please (anyone!) feel free to review and suggest alternate/better approaches to patching and testing.

https://cygwin.com/git/?p=git/cygwin-packages/coreutils.git;a=tree;h=refs/heads/playground;hb=refs/heads/playground

[Ports might have been easier had we kept to targeting BSD, SunOS, Solaris, plus POSIX, user lands, and ignored Linux, as being Linux-like but not supporting their headers, syscalls, and roots, seems to confuse some upstreams ;^> ]

--
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                -- Antoine de Saint-Exupéry

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

Reply via email to