| <?xml version="1.0" encoding='UTF-8'?> |
| <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.5//EN" |
| "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
| |
| <sect1 id="ov-new"><title>What's new and what changed in Cygwin</title> |
| |
| <sect2 id="ov-new2.9"><title>What's new and what changed in 2.9</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New APIs: explicit_bzero, strnstr. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: pthread_mutex_timedwait, pthread_rwlock_timedrdlock, |
| pthread_rwlock_timedwrlock. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: renameat2. |
| </para></listitem> |
| |
| <listitem><para> |
| Improved implementation of <elf.h>. |
| </para></listitem> |
| |
| <listitem><para> |
| strptime(3) supports %s (seconds since Epoch) now, analogue to strftime. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.8"><title>What's new and what changed in 2.8</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New API: timingsafe_bcmp, timingsafe_memcmp |
| </para></listitem> |
| |
| <listitem><para> |
| New API: dladdr |
| </para></listitem> |
| |
| <listitem><para> |
| New API: getloadavg |
| </para></listitem> |
| |
| <listitem><para> |
| Cygcheck and strace now always generate output with Unix LF line endings, |
| rather than with DOS/Windows CR LF line endings. |
| </para></listitem> |
| |
| <listitem><para> |
| Fork now preserves the load order of unrelated dlopen'd modules. |
| </para></listitem> |
| |
| <listitem><para> |
| Pthread_cond_wait now acts like Linux and BSD: Resume waiting for the |
| condition variable as if it was not interrupted, rather than returning 0. |
| </para></listitem> |
| |
| <listitem><para> |
| The internal <sys/_locale.h> header was renamed to <xlocale.h> for |
| source compatibility with other systems. |
| </para></listitem> |
| |
| <listitem><para> |
| Try harder supporting Netapp drives. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.7"><title>What's new and what changed in 2.7</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Support for /proc/<PID>/environ. |
| </para></listitem> |
| |
| <listitem><para> |
| - New API: getentropy, getrandom. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.6"><title>What's new and what changed in 2.6</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Support for POSIX-1.2008 locale objects and per-thread locales. |
| </para> |
| |
| <para> |
| New API per POSIX-1.2008: newlocale, freelocale, duplocale, uselocale, |
| nl_langinfo_l, isalnum_l, isalpha_l, isblank_l, iscntrl_l, isdigit_l, |
| isgraph_l, islower_l, isprint_l, ispunct_l, isspace_l, isupper_l, iswalnum_l, |
| iswalpha_l, iswblank_l, iswcntrl_l, iswctype_l, iswdigit_l, iswgraph_l, |
| iswlower_l, iswprint_l, iswpunct_l, iswspace_l, iswupper_l, iswxdigit_l, |
| isxdigit_l, tolower_l, toupper_l, towctrans_l, towlower_l, towupper_l, |
| wctrans_l, wctype_l, strcasecmp_l, strcoll_l, strerror_l, strfmon_l, |
| strftime_l, strncasecmp_l, strxfrm_l, wcscasecmp_l, wcscoll_l, wcstrncasecmp_l, |
| wcstrxfrm_l. |
| </para> |
| |
| <para> |
| New API, GNU extensions: isascii_l, toascii_l, strptime_l, strtod_l, strtof_l, |
| strtol_l, strtold_l, strtoll_l, strtoul_l, strtoull_l, wcsftime_l, wcstod_l, |
| wcstof_l, wcstol_l, wcstold_l, wcstoll_l, wcstoul_l, wcstoull_l. |
| </para></listitem> |
| |
| <listitem><para> |
| locale(1) now supports a -i/--input option to fetch the current input locale |
| (this is basically equivalent to the current keyboard layout setting). |
| </para></listitem> |
| |
| <listitem><para> |
| Drop support for Windows XP and Windows Server 2003/2003 R2. |
| </para></listitem> |
| |
| <listitem><para> |
| Drop support for very old SUNWNFS filesystem. |
| </para></listitem> |
| |
| <listitem><para> |
| Raise number of supported partitions per disk (for raw access) to 63. |
| </para></listitem> |
| |
| <listitem><para> |
| Further header file improvements in terms of feature test macros. |
| </para></listitem> |
| |
| <listitem><para> |
| Add a workaround for filesystems not supporting the FileAllInformation |
| info class. |
| </para></listitem> |
| |
| <listitem><para> |
| Support AzureAD accounts. |
| </para></listitem> |
| |
| <listitem><para> |
| "nobody" account support for WinFSP. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: pthread_getname_np, pthread_setname_np. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.5"><title>What's new and what changed in 2.5</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Full set of POSIX.1e ACL API functions now implemented. |
| New APIs: acl_add_perm, acl_calc_mask, acl_clear_perms, acl_copy_entry, |
| acl_copy_ext, acl_copy_int, acl_create_entry, acl_delete_def_file, |
| acl_delete_entry, acl_delete_perm, acl_dup, acl_free, acl_from_text, |
| acl_get_entry, acl_get_fd, acl_get_file, acl_get_permset, acl_get_qualifier, |
| acl_get_tag_type, acl_init, acl_set_fd, acl_set_file, acl_set_permset, |
| acl_set_qualifier, acl_set_tag_type, acl_size, acl_to_text, acl_valid. |
| </para></listitem> |
| |
| <listitem><para> |
| Most libacl extensions now implemented, too: |
| New APIs: acl_check, acl_cmp, acl_entries, acl_equiv_mode, acl_error, |
| acl_extended_fd, acl_extended_file, acl_extended_file_nofollow, |
| acl_from_mode, acl_get_perm, acl_to_any_text. |
| </para></listitem> |
| |
| <listitem><para> |
| Including <sys/acl.h> now *only* includes the POSIX ACL API. To include |
| the old Solaris API, include <cygwin/acl.h>. |
| </para></listitem> |
| |
| <listitem><para> |
| First implementation of pthread_barrier/pthread_barrierattr functions. |
| New APIs: pthread_barrierattr_init, pthread_barrierattr_setpshared, |
| pthread_barrierattr_getpshared, pthread_barrierattr_destroy, |
| pthread_barrier_init, pthread_barrier_destroy, pthread_barrier_wait. |
| </para></listitem> |
| |
| <listitem><para> |
| Enabled console reports requested by escape sequences: Requesting primary |
| and secondary device attributes, requesting cursor position report; |
| see https://cygwin.com/ml/cygwin-patches/2012-q3/msg00019.html |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: clog10, clog10f, nexttoward, nexttowardf, nexttowardl. |
| </para></listitem> |
| |
| <listitem><para> |
| Add missing long double functions. New APIs: |
| acoshl, acosl, asinhl, asinl, atan2l, atanhl, atanl, cacoshl, cacosl, cargl, |
| casinhl, casinl, catanhl, catanl, ccoshl, ccosl, ceill, cexpl, clog10l, |
| clogl, conjl, copysignl, coshl, cosl, cpowl, cprojl, csinhl, csinl, csqrtl, |
| ctanhl, ctanl, dreml, erfcl, erfl, exp10l, exp2l, expl, expm1l, fabsl, |
| fdiml, floorl, fmal, fmaxl, fminl, fmodl, frexpl, ilogbl, isinfl, isnanl, |
| ldexpl, lgammal, lgammal_r, llroundl, log10l, log1pl, log2l, logbl, logl, |
| lroundl, modfl, nearbyintl, nextafterl, pow10l, powl, remainderl, remquol, |
| roundl, scalbl, scalblnl, scalbnl, sincosl, sinhl, sinl, tanhl, tanl, |
| tgammal, truncl. |
| </para></listitem> |
| |
| <listitem><para> |
| In calls to chmod treat ACLs with extra ACEs *only* for Admins and |
| SYSTEM like a trivial ACL. |
| </para></listitem> |
| |
| <listitem><para> |
| Bump POSIX option macros to POSIX.1-2008. |
| </para></listitem> |
| |
| <listitem><para> |
| Profiling data, specifically pc sampling, now covers all threads of a |
| program and not just the main thread. Environment variable GMON_OUT_PREFIX |
| enables multiple gmon.out files to preserve profiling data after fork or |
| from multiple program runs. |
| </para></listitem> |
| |
| <listitem><para> |
| Feature test macros, which control which symbols are exposed in the standard |
| headers, have been completely overhauled for compatibility with glibc. |
| </para></listitem> |
| |
| <listitem><para> |
| The isinf, isinff, and isinfl functions are signed, returning -1 for |
| negative infinity for compatibility with glibc. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.4"><title>What's new and what changed in 2.4</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| 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.</para> |
| |
| <para>To accommodate standard Windows ACLs, the POSIX permissions of |
| the owner and all other users in the ACL are computed using the Windows |
| AuthZ API. This may slow down the computation of POSIX permissions |
| noticably in some circumstances, but is generally more correct. |
| The new code also 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.</para> |
| |
| <para>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. |
| </para></listitem> |
| |
| <listitem><para> |
| cygpath has a new -U option, which creates cygdrive paths using the |
| unambiguous /proc/cygdrive prefix. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: rpmatch. |
| </para></listitem> |
| |
| <listitem><para> |
| Align setfacl(1) usage a bit closer to the usage on Linux. Rename -d option |
| to -x, --substitute to --set. Add --no-mask and --mask options. Allow to |
| use the -b and -k option combined to allow reducing an ACL to only reflect |
| standard POSIX permissions. |
| </para></listitem> |
| |
| <listitem><para> |
| Fix (numeric and monetary) decimal point and thousands separator in |
| fa_IR and ps_AF locales to be aligned with Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| utmpname/utmpxname are now defined as int functions as on Linux. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.3"><title>What's new and what changed in 2.3</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| strftime(3) supports %s (seconds since Epoch) now. |
| </para></listitem> |
| |
| <listitem><para> |
| posix_madvise(POSIX_MADV_WILLNEED) now utilizes OS functionality available |
| starting with Windows 8/Server 2012. |
| </para><para> |
| posix_madvise(POSIX_MADV_DONTNEED) now utilizes OS functionality available |
| starting with Windows 8.1/Server 2012R2. |
| </para></listitem> |
| |
| <listitem><para> |
| sysconf() now supports returning CPU cache information: |
| <screen> |
| _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 |
| </screen> |
| </para></listitem> |
| |
| <listitem><para> |
| New API: aligned_alloc, at_quick_exit, quick_exit. |
| </para></listitem> |
| |
| <listitem><para> |
| Add support for Parallels Desktop FS (prlfs). |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.2"><title>What's new and what changed in 2.2</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New APIs: getcontext, setcontext, makecontext, swapcontext. |
| </para></listitem> |
| |
| <listitem><para> |
| New functions: sigsetjmp, siglongjmp. |
| </para> |
| <para> |
| These were only available as macros up to now, but POSIX requires that |
| siglongjmp has to be available as function. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.1"><title>What's new and what changed in 2.1</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Handle pthread stacksizes as in GLibc: Default to RLIMIT_STACK resource. |
| Allow to set RLIMIT_STACK via setrlimit. Default RLIMIT_STACK to value |
| from executable header as described on the MSDN website |
| <ulink url="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686774.aspx">Thread Stack Size</ulink> |
| Default stacksize to 2 Megs in case RLIMIT_STACK is set to RLIM_INFINITY. |
| </para></listitem> |
| |
| <listitem><para> |
| First cut of an implementation to allow signal handlers running on an |
| alternate signal stack. |
| </para></listitem> |
| |
| <listitem><para> |
| New API sigaltstack, plus definitions for SA_ONSTACK, SS_ONSTACK, |
| SS_DISABLE, MINSIGSTKSZ, SIGSTKSZ. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: sethostname. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new2.0"><title>What's new and what changed in 2.0</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| basename(3) now comes in two flavors, POSIX and GNU. The POSIX version is |
| the default. You get the GNU version after |
| |
| <screen> |
| #define _GNU_SOURCE |
| #include <string.h> |
| </screen> |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.35"><title>What's new and what changed in 1.7.35</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Performance improvements of the new account DB handling. |
| </para></listitem> |
| |
| <listitem><para> |
| Since 1.7.34, chmod does not always affect the POSIX permission mask as |
| returned by stat(2) or printed by ls(1), due to the improved POSIX ACL |
| handling. However, that's still far from perfect, so, as a temporary |
| workaround, chmod now checks if secondary groups and users in the ACL |
| have more permissions than the primary group. If so, the permissions of |
| the secondary users and groups will be reduced according to the mask |
| given by the new primary group permissions. I.e, chmod 600 will remove |
| all permissions from the primary group as well as all secondary user and |
| group entries in the ACL. |
| </para></listitem> |
| |
| <listitem><para> |
| Change handling of group permissions if owner SID == group SID. Now the |
| group permissions don't mirror the user permissions anymore, thus |
| leading to less hassle with security-conscious applications. |
| </para></listitem> |
| |
| <listitem><para> |
| Allow group SID to be the same as owner SID for "Microsoft Accounts". |
| Those have the group in their user token set to the owner SID by |
| default. Drop the workaround to change their primary group to "Users". |
| It's not required anymore due to the aforementioned changes. |
| </para></listitem> |
| |
| <listitem><para> |
| Change getfacl long options from --all to --access and from --dir to |
| --default, along the lines of the Linux getfacl tool. |
| </para></listitem> |
| |
| <listitem><para> |
| Don't raise a SIGSYS signal in the XSI IPC functions if cygserver is not |
| running. Just return -1 with errno set to ENOSYS. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: cabsl, cimagl, creall, finitel, hypotl, sqrtl. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: issetugid. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.34"><title>What's new and what changed in 1.7.34</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Cygwin can now generate passwd/group entries directly from Windows user |
| databases (local SAM or Active Directory), thus allowing to run Cygwin |
| without having to create /etc/passwd and /etc/group files. Introduce |
| /etc/nsswitch.conf file to configure passwd/group handling. |
| </para> |
| |
| <para> |
| For bordercase which require to use /etc/passwd and /etc/group files, |
| change mkpasswd/mkgroup to generate passwd/group entries compatible with |
| the entries read from SAM/AD. |
| </para> |
| |
| <para>For a description of this exciting new feature see |
| <xref linkend="ntsec"></xref>. |
| </para></listitem> |
| |
| <listitem><para> |
| Add -b/--remove-all option to setfacl to reduce the ACL to only the entries |
| representing POSIX permission bits. |
| </para></listitem> |
| |
| <listitem><para> |
| Add -k/--remove-default option to setfacl to remove all default ACL entries |
| from an ACL. |
| </para></listitem> |
| |
| <listitem><para> |
| Add restore action to regtool. |
| </para></listitem> |
| |
| <listitem><para> |
| Make gethostbyname2 handle numeric host addresses as well as the |
| reserved domain names "localhost" and "invalid" per RFC 6761. |
| </para></listitem> |
| |
| <listitem><para> |
| Revamp Solaris ACL implementation to more closely work like POSIX ACLs |
| are supposed to work. Finally implement a CLASS_OBJ emulation. Update |
| getfacl(1)/setfacl(1) accordingly. |
| </para></listitem> |
| |
| <listitem><para> |
| The xdr functions are no longer exported for newly built executables. |
| Use libtirpc-devel instead. |
| </para></listitem> |
| |
| <listitem><para> |
| 32 bit only: Change default values for socket buffer size to raise |
| performance on 10Gb networks. |
| </para></listitem> |
| |
| <listitem><para> |
| When spawning a process under another user account, merge the user's |
| default Windows environment into the new process' environment. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: qsort_r, __bsd_qsort_r. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: wcstold. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: __fbufsize, __flbf, __fpending, __freadable, __freading, |
| __fsetlocking, __fwritable, __fwriting. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: clearerr_unlocked, feof_unlocked, ferror_unlocked, fflush_unlocked, |
| fgetc_unlocked, fgets_unlocked, fgetwc_unlocked, fgetws_unlocked, |
| fileno_unlocked, fputc_unlocked, fputs_unlocked, fputwc_unlocked, |
| fputws_unlocked, fread_unlocked, fwrite_unlocked, getwc_unlocked, |
| getwchar_unlocked, putwc_unlocked, putwchar_unlocked. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: sockatmark. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.33"><title>What's new and what changed in 1.7.33</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| /proc/cygdrive is a new symlink pointing to the current cygdrive prefix. |
| This can be utilized in scripts to access paths via cygdrive prefix, |
| even if the cygdrive prefix has been changed by the user. |
| </para></listitem> |
| |
| <listitem><para> |
| /proc/partitions now prints the windows mount points the device is |
| mounted on. This allows to recognize the underlying Windows devices of |
| the Cygwin raw device names. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: quotactl, designed after the Linux/BSD function, but severely |
| restricted: Windows only supports user block quotas on NTFS, no group |
| quotas, no inode quotas, no time constraints. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: ffsl, ffsll (glibc extensions). |
| </para></listitem> |
| |
| <listitem><para> |
| New API: stime (SVr4). |
| </para></listitem> |
| |
| <listitem><para> |
| Provide Cygwin documentation (PDFs and HTML) for offline usage in |
| <filename>/usr/share/doc/cygwin-${version}</filename>. |
| </para></listitem> |
| |
| <listitem><para> |
| New internal exception handling based on SEH on 64 bit Cygwin. |
| </para></listitem> |
| |
| <listitem><para> |
| When exec'ing applications, check if $PATH exists and is non-empty. If |
| not, add PATH variable with Cygwin installation directory as content to |
| Windows environment to allow loading of Cygwin system DLLs. |
| </para></listitem> |
| |
| <listitem><para> |
| Disable CYGWIN "dosfilewarning" option by default. |
| </para></listitem> |
| |
| <listitem><para> |
| Improve various header files for C++- and standards-compliance. |
| </para></listitem> |
| |
| <listitem><para> |
| Doug Lea malloc implementation update from 2.8.3 to the latest 2.8.6. |
| </para></listitem> |
| |
| <listitem><para> |
| atexit(3) is now exported as statically linked function from libcygwin.a. |
| This allows reliable access to the DSO handle of the caller for newly |
| built executables. The former atexit entry point into the DLL remains |
| for backward compatibility only. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.32"><title>What's new and what changed in 1.7.32</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Export __cxa_atexit and __cxa_finalize to allow C++ standards-compliant |
| destructor handling in libstdc++ and g++ compiled code. |
| |
| Please note that, in order to benefit from this new feature, C++ code |
| must be recompiled with the upcoming gcc 4.8.3-3 release which will |
| enable the -fuse-cxa-atexit flag by default, and that C++ applications |
| using this feature will not run on older Cygwin releases. |
| </para></listitem> |
| |
| <listitem><para> |
| Support more recent CPU flags in /proc/cpuinfo. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.31"><title>What's new and what changed in 1.7.31</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Improve performance of send(2), sendto(2), sendmsg(2) when using small |
| input buffers. |
| </para></listitem> |
| |
| <listitem><para> |
| The default pthread_mutex type is now PTHREAD_MUTEX_NORMAL, rather than |
| PTHREAD_MUTEX_ERRORCHECK, just as on Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| Align pthread_attr stack functions more closely to Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| Mark pthread_attr_getstackaddr and pthread_attr_setstackaddr as deprecated, |
| as on Linux. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.29"><title>What's new and what changed in 1.7.29</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Allow quoting of arguments to the CYGWIN environment variable, i.e., |
| set CYGWIN=error_start="c:\bin\someprogram -T" |
| </para></listitem> |
| |
| <listitem><para> |
| Console screen clearing works more like xterm or mintty. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.28"><title>What's new and what changed in 1.7.28</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| popen now supports the Glibc 'e' flag to set the FD_CLOEXEC flag on the pipe |
| in a thread-safe way. |
| </para></listitem> |
| |
| <listitem><para> |
| New netinet/ip6.h header. |
| </para></listitem> |
| |
| <listitem><para> |
| Switch to BSD FILE stream fopen/exit semantics, as in all BSD variants |
| and Linux/GLibc: Don't fflush/lseek a FILE stream on fclose and exit, |
| if it only has been read from. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.27"><title>What's new and what changed in 1.7.27</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Don't create native symlinks with target paths having long path prefixes |
| "\\?\" if the target path is shorter than MAX_PATH characters. This works |
| around a Windows 8.1 bug: The ShellExecuteW fails if the lpFile parameter |
| points to a native NTFS symlink with a target path prefixed with "\\?\". |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.26"><title>What's new and what changed in 1.7.26</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| getaddrinfo now supports glibc-specific International Domain Name (IDN) |
| extension flags: AI_IDN, AI_CANONIDN, AI_IDN_ALLOW_UNASSIGNED, |
| AI_IDN_USE_STD3_ASCII_RULES. |
| </para></listitem> |
| |
| <listitem><para> |
| getnameinfo now supports glibc-specific International Domain Name (IDN) |
| extension flags: NI_IDN, NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES. |
| </para></listitem> |
| |
| <listitem><para> |
| Slightly improve randomness of /dev/random emulation. |
| </para></listitem> |
| |
| <listitem><para> |
| Allow to use advisory locking on any device. POSIX fcntl and lockf locking |
| works with any device, BSD flock locking only with devices backed by an OS |
| handle. Right now this excludes console windows on pre Windows 8, as well as |
| almost all virtual files under /proc from BSD flock locking. |
| </para></listitem> |
| |
| <listitem><para> |
| The header /usr/include/exceptions.h, containing implementation details for |
| 32 bit Windows' exception handling only, has been removed. |
| </para></listitem> |
| |
| <listitem><para> |
| Preliminary, experimental support of the posix_spawn family of functions. |
| New associated header /usr/include/spawn.h. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.25"><title>What's new and what changed in 1.7.25</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Change magic number associated with process information block so that 32-bit |
| Cygwin processes don't try to interpret 64-bit information and vice-versa. |
| </para></listitem> |
| |
| <listitem><para> |
| Redefine content of mtget tape info struct to allow fetching the number of |
| partitions on a tape. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.24"><title>What's new and what changed in 1.7.24</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Allow application override of posix_memalign. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.23"><title>What's new and what changed in 1.7.23</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Added CYGWIN environment variable keyword "wincmdln" which causes Cygwin to |
| send the full windows command line to any subprocesses. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.22"><title>What's new and what changed in 1.7.22</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Support for /dev/mem, /dev/kmem and /dev/port removed, since OS support |
| was limited to 32 bit Windows XP only. |
| </para></listitem> |
| |
| <listitem><para> |
| Added cygwin GetCommandLine wrappers which will allow Cygwin programs to |
| (appear to) use the Windows command line functions. |
| </para></listitem> |
| |
| <listitem><para> |
| regcomp(3) now allows character values >= 0x80 if the current codeset is |
| ASCII (default codeset in the "C"/"POSIX" locale). This allows patterns |
| containing arbitrary byte values as GLibc's regcomp. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.21"><title>What's new and what changed in 1.7.21</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New API: rawmemchr. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.19"><title>What's new and what changed in 1.7.19</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Drop support for Windows 2000 and Windows XP pre-SP3. |
| </para></listitem> |
| |
| <listitem><para> |
| Add support for building a 64 bit version of Cygwin on x86_64 natively. |
| </para></listitem> |
| |
| <listitem><para> |
| Add support for creating native NTFS symlinks starting with Windows Vista |
| by setting the CYGWIN=winsymlinks:native or CYGWIN=winsymlinks:nativestrict |
| option. |
| </para></listitem> |
| |
| <listitem><para> |
| Add support for AFS filesystem. |
| </para></listitem> |
| |
| <listitem><para> |
| Preliminary support for mandatory locking via fcntl/flock/lockf, using Windows |
| locking semantics. New F_LCK_MANDATORY fcntl command. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: __b64_ntop, __b64_pton, arc4random, arc4random_addrandom, |
| arc4random_buf, arc4random_stir, arc4random_uniform. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.18"><title>What's new and what changed in 1.7.18</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para>Added Windows console cursor appearance support.</para> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Show/Hide Cursor mode (DECTCEM): "ESC[?25h" / "ESC[?25l" |
| </para></listitem> |
| |
| <listitem><para> |
| Set cursor style (DECSCUSR): "ESC[n q" (note the space before the q); |
| where n is 0, 1, 2 for block cursor, 3, 4 for underline cursor (all |
| disregarding blinking mode), or > 4 to set the cursor height to a |
| percentage of the cell height. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </listitem> |
| |
| <listitem><para> |
| For performance reasons, Cygwin does not try to create sparse files |
| automatically anymore, unless you use the new "sparse" mount option. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: cfsetspeed. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.17"><title>What's new and what changed in 1.7.17</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Support the "e" flag to fopen(3). This is a Glibc extension which |
| allows to fopen the file with the O_CLOEXEC flag set. |
| </para></listitem> |
| |
| <listitem><para> |
| Support the "x" flag to fopen(3). This is a Glibc/C11 extension which |
| allows to open the file with the O_EXCL flag set. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.16"><title>What's new and what changed in 1.7.16</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New API: getmntent_r, memrchr. |
| </para></listitem> |
| |
| <listitem><para> |
| Recognize ReFS filesystem. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.15"><title>What's new and what changed in 1.7.15</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| CYGWIN=pipe_byte option now forces the opening of pipes in byte mode rather than message mode. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.14"><title>What's new and what changed in 1.7.14</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Add mouse reporting modes 1005, 1006 and 1015 to console window. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.13"><title>What's new and what changed in 1.7.13</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| mkpasswd and mkgroup now try to print an entry for the TrustedInstaller |
| account existing since Windows Vista/Server 2008. |
| </para></listitem> |
| |
| <listitem><para> |
| Terminal typeahead when switching from canonical to non-canonical mode |
| is now properly flushed. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.12"><title>What's new and what changed in 1.7.12</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Cygwin now automatically populates the /dev directory with all existing |
| POSIX devices. |
| </para></listitem> |
| |
| <listitem><para> |
| Add virtual /proc/PID/mountinfo file. |
| </para></listitem> |
| |
| <listitem><para> |
| flock now additionally supports the following scenario, which requires |
| to propagate locks to the parent process: |
| <screen> |
| ( |
| flock -n 9 || exit 1 |
| # ... commands executed under lock ... |
| } 9>/var/lock/mylockfile |
| </screen> |
| Only propagation to the direct parent process is supported so far, |
| not to grand parents or sibling processes. |
| </para></listitem> |
| |
| <listitem><para> |
| Add a "detect_bloda" setting for the CYGWIN environment variable to help |
| finding potential BLODAs. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.11"><title>What's new and what changed in 1.7.11</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New <command>pldd</command> command for listing DLLs loaded by a process. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: scandirat. |
| </para></listitem> |
| |
| <listitem><para> |
| Change the way remote shares mapped to drive letters are recognized when |
| creating the cygdrive directory. If Windows claims the drive is |
| unavailable, don't show it in the cygdrive directory listing. |
| </para></listitem> |
| |
| <listitem><para> |
| Raise default stacksize of pthreads from 512K to 1 Meg. It can still be |
| changed using the pthread_attr_setstacksize call. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.10"><title>What's new and what changed in 1.7.10</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Drop support for Windows NT4. |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN environment variable options "envcache", "strip_title", "title", |
| "tty", and "upcaseenv" have been removed. |
| </para></listitem> |
| |
| <listitem><para> |
| If the executable (and the system) is large address aware, the application heap |
| will be placed in the large memory area. The <command>peflags</command> tool |
| from the <literal>rebase</literal> package can be used to set the large |
| address awareness flag in the executable file header. |
| </para></listitem> |
| |
| <listitem><para> |
| The registry setting "heap_chunk_in_mb" has been removed, in favor of a new |
| per-executable setting in the executable file header which can be set using the |
| <command>peflags</command> tool. See <xref linkend="setup-maxmem"></xref> |
| for more information. |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN=tty mode using pipes to communicate with the console in a pseudo |
| tty-like mode has been removed. Either just use the normal Windows console |
| as is, or use a terminal application like <command>mintty</command>. |
| </para></listitem> |
| |
| <listitem><para> |
| New <command>getconf</command> command for querying confstr(3), pathconf(3), |
| sysconf(3), and limits.h configuration. |
| </para></listitem> |
| |
| <listitem><para> |
| New <command>tzset</command> utility to generate a POSIX-compatible TZ |
| environment variable from the Windows timezone settings. |
| </para></listitem> |
| |
| <listitem><para> |
| The passwd command now allows an administrator to use the -R command for |
| other user accounts: passwd -R username. |
| </para></listitem> |
| |
| <listitem><para> |
| Pthread spinlocks. New APIs: pthread_spin_destroy, pthread_spin_init, |
| pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock. |
| </para></listitem> |
| |
| <listitem><para> |
| Pthread stack address management. New APIs: pthread_attr_getstack, |
| pthread_attr_getstackaddr, pthread_attr_getguardsize, pthread_attr_setstack, |
| pthread_attr_setstackaddr, pthread_attr_setguardsize, pthread_getattr_np. |
| </para></listitem> |
| |
| <listitem><para> |
| POSIX Clock Selection option. New APIs: clock_nanosleep, |
| pthread_condattr_getclock, pthread_condattr_setclock. |
| </para></listitem> |
| |
| <listitem><para> |
| clock_gettime(3) and clock_getres(3) accept per-process and per-thread CPU-time |
| clocks, including CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID. |
| New APIs: clock_getcpuclockid, pthread_getcpuclockid. |
| </para></listitem> |
| |
| <listitem><para> |
| GNU/glibc error.h error reporting functions. New APIs: error, error_at_line. |
| New exports: error_message_count, error_one_per_line, error_print_progname. |
| Also, perror and strerror_r no longer clobber strerror storage. |
| </para></listitem> |
| |
| <listitem><para> |
| C99 <tgmath.h> type-generic macros. |
| </para></listitem> |
| |
| <listitem><para> |
| /proc/loadavg now shows the number of currently running processes and the |
| total number of processes. |
| </para></listitem> |
| |
| <listitem><para> |
| Added /proc/devices and /proc/misc, which lists supported device types and |
| their device numbers. |
| </para></listitem> |
| |
| <listitem><para> |
| Added /proc/swaps, which shows the location and size of Windows paging file(s). |
| </para></listitem> |
| |
| <listitem><para> |
| Added /proc/sysvipc/msg, /proc/sysvipc/sem, and /proc/sysvipc/shm which |
| provide information about System V IPC message queues, semaphores, and |
| shared memory. |
| </para></listitem> |
| |
| <listitem><para> |
| /proc/version now shows the username of whomever compiled the Cygwin DLL |
| as well as the version of GCC used when compiling. |
| </para></listitem> |
| |
| <listitem><para> |
| dlopen now supports the Glibc-specific RTLD_NODELETE and RTLD_NOOPEN flags. |
| </para></listitem> |
| |
| <listitem><para> |
| The printf(3) and wprintf(3) families of functions now handle the %m |
| conversion flag. |
| </para></listitem> |
| |
| <listitem><para> |
| Other new API: clock_settime, __fpurge, getgrouplist, get_current_dir_name, |
| getpt, ppoll, psiginfo, psignal, ptsname_r, sys_siglist, pthread_setschedprio, |
| pthread_sigqueue, sysinfo. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.9"><title>What's new and what changed in 1.7.9</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New API: strchrnul. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.8"><title>What's new and what changed in 1.7.8</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Drop support for Windows NT4 prior to Service Pack 4. |
| </para></listitem> |
| |
| <listitem><para> |
| Reinstantiate Cygwin's ability to delete an empty directory which is the |
| current working directory of the same or another process. Same for any |
| other empty directory which has been opened by the same or another process. |
| </para></listitem> |
| |
| <listitem><para> |
| Cygwin now ships the C standard library fenv.h header file, and implements the |
| related APIs (including GNU/glibc extensions): feclearexcept, fedisableexcept, |
| feenableexcept, fegetenv, fegetexcept, fegetexceptflag, fegetprec, fegetround, |
| feholdexcept, feraiseexcept, fesetenv, fesetexceptflag, fesetprec, fesetround, |
| fetestexcept, feupdateenv, and predefines both default and no-mask FP |
| environments. See the |
| <ulink url="http://www.gnu.org/software/libc/manual/html_node/Arithmetic.html"> |
| GNU C Library manual</ulink> for full details of this functionality. |
| </para></listitem> |
| |
| <listitem><para> |
| Support for the C99 complex functions, except for the "long double" |
| implementations. New APIs: cacos, cacosf, cacosh, cacoshf, carg, cargf, casin, |
| casinf, casinh, casinhf, catan, catanf, catanh, catanhf, ccos, ccosf, ccosh, |
| ccoshf, cexp, cexpf, cimag, cimagf, clog, clogf, conj, conjf, cpow, cpowf, |
| cproj, cprojf, creal, crealf, csin, csinf, csinh, csinhf, csqrt, csqrtf, ctan, |
| ctanf, ctanh, ctanhf. |
| </para></listitem> |
| |
| <listitem><para> |
| Fix the width of "CJK Ambiguous Width" characters to 1 for singlebyte charsets |
| and 2 for East Asian multibyte charsets. (For UTF-8, it remains dependent on |
| the specified language, and the "@cjknarrow" locale modifier can still be used |
| to force width 1.) |
| </para></listitem> |
| |
| <listitem><para> |
| The strerror_r interface now has two flavors; if _GNU_SOURCE is |
| defined, it retains the previous behavior of returning char * |
| (but the result is now guaranteed to be NUL-terminated); otherwise |
| it now obeys POSIX semantics of returning int. |
| </para></listitem> |
| |
| <listitem><para> |
| /proc/sys now allows unfiltered access to the native NT namespace. Access |
| restrictions still apply. Direct device access via /proc/sys is not yet |
| supported. File system access via block devices works. For instance |
| (note the trailing slash!) |
| <screen> |
| bash$ cd /proc/sys/Device/HarddiskVolumeShadowCopy1/ |
| </screen> |
| </para></listitem> |
| |
| <listitem><para> |
| Other new APIs: llround, llroundf, madvise, pthread_yield. |
| Export program_invocation_name, program_invocation_short_name. |
| Support TIOCGPGRP, TIOCSPGRP ioctls. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.7"><title>What's new and what changed in 1.7.7</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Partially revert the 1.7.6 change to set the Win32 current working directory |
| (CWD) always to an invalid directory, since it breaks backward compatibility |
| too much. The Cygwin CWD and the Win32 CWD are now kept in sync again, unless |
| the Cygwin CWD is not usable as Win32 CWD. See the reworked |
| <xref linkend="pathnames-win32-api"></xref> for details. |
| </para></listitem> |
| |
| <listitem><para> |
| Make sure to follow the Microsoft security advisory concerning DLL hijacking. |
| See the <ulink url="http://www.microsoft.com/technet/security/advisory/2269637.mspx">Microsoft Security Advisory (2269637) "Insecure Library Loading Could Allow Remote Code Execution"</ulink> for details. |
| </para></listitem> |
| |
| <listitem><para> |
| Allow to link against -lbinmode instead of /lib/binmode.o. Same for |
| -ltextmode, -ltextreadmode and -lautomode. |
| See <xref linkend="textbin-devel"></xref> for details. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.6"><title>What's new and what changed in 1.7.6</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Add new mount options "dos" and "ihash" to allow overriding Cygwin default |
| behaviour on broken filesystems not recognized by Cygwin. |
| </para></listitem> |
| |
| <listitem><para> |
| Add new mount option "bind" to allow remounting parts of the POSIX file |
| hirarchy somewhere else. |
| </para></listitem> |
| |
| <listitem><para> |
| Ttys and ptys are handled as securable objects using file-like permissions |
| and owner/group information. <command>chmod</command> and |
| <command>chown</command> now work on ttys/ptys. A new mechanism is used |
| to propagate pty handles safely to other processes, which does not require |
| to use Cygserver. |
| </para></listitem> |
| |
| <listitem><para> |
| Pass on coresize settings made with setrlimit(2). This allows shells to |
| disable creating stackdump files in child processes via |
| <screen>ulimit -c 0</screen> in bash or <screen>limit coredumpsize 0</screen> |
| in tcsh. |
| </para></listitem> |
| |
| <listitem><para> |
| Locale categories contain all localization strings additionally as wide-char |
| strings. locale(1) prints these values just as on Linux. nl_langinfo(3) |
| allows to fetch them. |
| </para></listitem> |
| |
| <listitem><para> |
| New interfaces mkostemp(3) and mkostemps(3) are added. |
| </para></listitem> |
| |
| <listitem><para> |
| New virtual file /proc/filesystems. |
| </para></listitem> |
| |
| <listitem><para> |
| clock_gettime(3) and clock_getres(3) accept CLOCK_MONOTONIC. |
| </para></listitem> |
| |
| <listitem><para> |
| DEPRECATED with 1.7.7: Cygwin handles the current working directory entirely |
| on its own. The Win32 current working directory is set to an invalid path to |
| be out of the way. [...] |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.5"><title>What's new and what changed in 1.7.5</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Support for DEC Backarrow Key Mode escape sequences (ESC [ ? 67 h, ESC [ ? 67 l) |
| in Windows console. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.3"><title>What's new and what changed in 1.7.3</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Support for GB2312/EUC-CN. These charsets are implemented as aliases to GBK. |
| GB2312 is now the default charset name for the locales zh_CN and zh_SG, just |
| as on Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| Modification and access timestamps of devices reflect the current time. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.2"><title>What's new and what changed in 1.7.2</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para>Localization support has been much improved.</para> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Cygwin now handles locales using the underlying Windows locale |
| support. The locale must exist in Windows to be recognized. |
| Locale aliases from the file /usr/share/locale/locale.alias are also |
| allowed, as long as their replacement is supported by the underlying Windows. |
| </para></listitem> |
| |
| <listitem><para> |
| New tool "locale" to fetch locale information and default locales based on |
| the Windows default settings as well as lists of all supported locales |
| and character sets. |
| </para></listitem> |
| |
| <listitem><para> |
| Default charset for locales without explicit charset is now chosen |
| from a list of Linux-compatible charsets. |
| </para> |
| |
| <para> |
| For instance: en_US -> ISO-8859-1, ja_JP -> EUC-JP, zh_TW -> Big5. |
| </para></listitem> |
| |
| <listitem><para> |
| Added support for the charsets GEORGIAN-PS, PT154, and TIS-620. |
| </para></listitem> |
| |
| <listitem><para> |
| Support for the various locale modifiers to switch charsets as on Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| Default charset in the "C" or "POSIX" locale has been changed back |
| from UTF-8 to ASCII, to avoid problems with applications |
| expecting a singlebyte charset in the "C"/"POSIX" locale. Still use |
| UTF-8 internally for filename conversion in this case. |
| </para></listitem> |
| |
| <listitem><para> |
| LC_COLLATE, LC_MONETARY, LC_NUMERIC, and LC_TIME localization is |
| enabled via Windows locale support. LC_MESSAGES is enabled via a big |
| table with localized strings. |
| </para></listitem> |
| |
| <listitem><para> |
| fnmatch(3), regcomp(3), regexec(3) calls are now multibyte-aware. |
| </para></listitem> |
| |
| <listitem><para> |
| printf(3), wprintf(3) families of functions now handle the grouping |
| flag, the apostrophe <literal>'</literal>, per POSIX-1.2008. The |
| integer portion of the result of a decimal conversion (%i, %d, %u, %f, |
| %F, %g, %G) will be formatted with thousands' grouping characters. |
| </para></listitem> |
| |
| <listitem><para> |
| strftime(3), wcsftime(3), and strptime(3) now handle the E and O format |
| modifiers to print/scan alternative date and time representations or to |
| use alternative digits in locales which support this. Additionally these |
| functions now also support the padding modifiers '0' and '+', as well as |
| a field width per POSIX-1.2008. |
| </para></listitem> |
| |
| <listitem><para> |
| New strfmon(3) call. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </listitem> |
| |
| <listitem><para> |
| Support open(2) flags O_CLOEXEC and O_TTY_INIT flags. Support fcntl |
| flag F_DUPFD_CLOEXEC. Support socket flags SOCK_CLOEXEC and SOCK_NONBLOCK. |
| Add new Linux-compatible API calls accept4(2), dup3(2), and pipe2(2). |
| Support the signal SIGPWR. |
| </para></listitem> |
| |
| <listitem><para>Enhanced Windows console support.</para> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| The console's backspace keycode can be changed using 'stty erase'. |
| </para></listitem> |
| |
| <listitem><para> |
| Function keys send distinguished escape sequences compatible with rxvt. |
| Keypad keys send distinguished escape sequences, xterm-style. |
| </para></listitem> |
| |
| <listitem><para> |
| Support of combining Alt and AltGr modifiers in console window |
| (compatible with xterm and mintty), so that e.g. Alt-@ sends ESC @ |
| also on keyboards where @ is mapped to an AltGr combination. |
| </para></listitem> |
| |
| <listitem><para> |
| Report mouse wheel scroll events in mouse reporting mode 1000 (note: |
| this doesn't seem to work on all systems, assumedly due to driver |
| interworking issues). |
| Add mouse reporting mode 1002 to report mouse drag movement. |
| Add mouse reporting mode 1003 to report any mouse movement. |
| Add focus event reporting (mode 1004), compatible with xterm and mintty. |
| </para></listitem> |
| |
| <listitem><para> |
| Add escape sequences for not bold (22), not invisible (28), not |
| blinking (25) (compatible with xterm and mintty). |
| </para></listitem> |
| |
| <listitem><para> |
| Support VT100 line drawing graphics mode in console window (compatible |
| with xterm and mintty). |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </listitem> |
| |
| <listitem><para> |
| Handle native DOS paths always as if mounted with "posix=0,noacl". |
| </para></listitem> |
| |
| <listitem><para> |
| Handle UNC paths starting with slashes identical to /cygdrive paths. |
| In other words, use the /cygdrive mount flags for these paths as well. |
| </para></listitem> |
| |
| <listitem><para> |
| Recognize NWFS filesystem and workaround broken OS call. |
| </para></listitem> |
| |
| <listitem><para> |
| New support for eXtensible Data Record (XDR) encoding and decoding, |
| as defined by RFCs 1014, 1832, and 4506. The XDR protocol and |
| functions are useful for cross-platfrom data exchange, and are |
| commonly used as the core data interchange format for Remote |
| Procedure Call (RPC) and NFS. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect2> |
| |
| <sect2 id="ov-new1.7.1"><title>What's new and what changed from 1.5 to 1.7</title> |
| |
| <sect3 id="ov-new1.7-os"><title>OS related changes</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Windows 95, 98 and Me are not supported anymore. The new Cygwin 1.7 DLL |
| will not run on any of these systems. |
| </para></listitem> |
| |
| <listitem><para> |
| Add support for Windows 7 and Windows Server 2008 R2. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="ov-new1.7-file"><title>File Access related changes</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Mount points are no longer stored in the registry. Use /etc/fstab and |
| /etc/fstab.d/$USER instead. Mount points created with mount(1) are only |
| local to the current session and disappear when the last Cygwin process |
| in the session exits. |
| </para></listitem> |
| |
| <listitem><para> |
| Cygwin creates the mount points for /, /usr/bin, and /usr/lib |
| automatically from it's own position on the disk. They don't have to be |
| specified in /etc/fstab. |
| </para></listitem> |
| |
| <listitem><para> |
| If a filename cannot be represented in the current character set, the |
| character will be converted to a sequence Ctrl-X + UTF-8 representation |
| of the character. This allows to access all files, even those not |
| having a valid representation of their filename in the current character |
| set. To always have a valid string, use the UTF-8 charset by |
| setting the environment variable $LANG, $LC_ALL, or $LC_CTYPE to a valid |
| POSIX value, such as "en_US.UTF-8". |
| </para></listitem> |
| |
| <listitem><para> |
| PATH_MAX is now 4096. Internally, path names can be as long as the |
| underlying OS can handle (32K). |
| </para></listitem> |
| |
| <listitem><para> |
| struct dirent now supports d_type, filled out with DT_REG or DT_DIR. |
| All other file types return as DT_UNKNOWN for performance reasons. |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN environment variable options "ntsec" and "smbntsec" have been |
| replaced by the per-mount option "acl"/"noacl". |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN environment variable option "ntea" has been removed without |
| substitute. |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN environment variable option "check_case" has been removed in |
| favor of real case-sensitivity on file systems supporting it. |
| </para></listitem> |
| |
| <listitem><para> |
| Creating filenames with special DOS characters '"', '*', ':', '<', |
| '>', '|' is supported. |
| </para></listitem> |
| |
| <listitem><para> |
| Creating files with special DOS device filename components ("aux", |
| "nul", "prn") is supported. |
| </para></listitem> |
| |
| <listitem><para> |
| File names are case sensitive if the OS and the underlying file system |
| supports it. Works on NTFS and NFS. Does not work on FAT and Samba |
| shares. Requires to change a registry key (see the User's Guide). Can |
| be switched off on a per-mount basis. |
| </para></listitem> |
| |
| <listitem><para> |
| Due to the above changes, managed mounts have been removed. |
| </para></listitem> |
| |
| <listitem><para> |
| Incoming DOS paths are always handled case-insensitive and get no POSIX |
| permission, as if they are mounted with noacl,posix=0 mount flags. |
| </para></listitem> |
| |
| <listitem><para> |
| unlink(2) and rmdir(2) try very hard to remove files/directories even if |
| they are currently accessed or locked. This is done by utilizing the |
| hidden recycle bin directories and marking the files for deletion. |
| </para></listitem> |
| |
| <listitem><para> |
| rename(2) rewritten to be more POSIX conformant. |
| </para></listitem> |
| |
| <listitem><para> |
| access(2) now performs checks using the real user ID, as required by |
| POSIX; the old behavior of querying based on effective user ID is |
| available through the new faccessat(2) and euidaccess(2) APIs. |
| </para></listitem> |
| |
| <listitem><para> |
| Add st_birthtim member to struct stat. |
| </para></listitem> |
| |
| <listitem><para> |
| File locking is now advisory, not mandatory anymore. The fcntl(2) and |
| the new lockf(2) APIs create and maintain locks with POSIX semantics, |
| the flock(2) API creates and maintains locks with BSD semantics. POSIX |
| and BSD locks are independent of each other. |
| </para></listitem> |
| |
| <listitem><para> |
| Implement atomic O_APPEND mode. |
| </para></listitem> |
| |
| <listitem><para> |
| New open(2) flags O_DIRECTORY, O_EXEC and O_SEARCH. |
| </para></listitem> |
| |
| <listitem><para> |
| Make the "plain file with SYSTEM attribute set" style symlink default |
| again when creating symlinks. Only create Windows shortcut style |
| symlinks if CYGWIN=winsymlinks is set in the environment. |
| </para></listitem> |
| |
| <listitem><para> |
| Symlinks now use UTF-16 encoding for the target filename for better |
| internationalization support. Cygwin 1.7 can read all old style |
| symlinks, but the new style is not compatible with older Cygwin |
| releases. |
| </para></listitem> |
| |
| <listitem><para> |
| Handle NTFS native symlinks available since Vista/2008 as symlinks (but |
| don't create Vista/2008 symlinks due to unfortunate OS restrictions). |
| </para></listitem> |
| |
| <listitem><para> |
| Recognize NFS shares and handle them using native mechanisms. Recognize |
| and create real symlinks on NFS shares. Get correct stat(2) information |
| and set real mode bits on open(2), mkdir(2) and chmod(2). |
| </para></listitem> |
| |
| <listitem><para> |
| Recognize MVFS and workaround problems manipulating metadata and handling |
| DOS attributes. |
| </para></listitem> |
| |
| <listitem><para> |
| Recognize Netapp DataOnTap drives and fix inode number handling. |
| </para></listitem> |
| |
| <listitem><para> |
| Recognize Samba version beginning with Samba 3.0.28a using the new |
| extended version information negotiated with the Samba developers. |
| </para></listitem> |
| |
| <listitem><para> |
| Stop faking hardlinks by copying the file on filesystems which don't |
| support hardlinks natively (FAT, FAT32, etc.). Just return an error |
| instead, just like Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| List servers of all accessible domains and workgroups in // instead of |
| just the servers in the own domain/workgroup. |
| </para></listitem> |
| |
| <listitem><para> |
| Support Linux-like extended attributes ([fl]getxattr, [fl]listxattr, |
| [fl]setxattr, [fl]removexattr). |
| </para></listitem> |
| |
| <listitem><para> |
| New file conversion API for conversion from Win32 to POSIX path and vice |
| versa (cygwin_conv_path, cygwin_create_path, cygwin_conv_path_list). |
| </para></listitem> |
| |
| <listitem><para> |
| New openat family of functions: openat, faccessat, fchmodat, fchownat, |
| fstatat, futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, |
| renameat, symlinkat, unlinkat. |
| </para></listitem> |
| |
| <listitem><para> |
| Other new APIs: posix_fadvise, posix_fallocate, funopen, fopencookie, |
| open_memstream, open_wmemstream, fmemopen, fdopendir, fpurge, mkstemps, |
| eaccess, euidaccess, canonicalize_file_name, fexecve, execvpe. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="ov-new1.7-net"><title>Network related changes</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New implementation for blocking sockets and select on sockets which is |
| supposed to allow POSIX-compatible sharing of sockets between threads |
| and processes. |
| </para></listitem> |
| |
| <listitem><para> |
| send/sendto/sendmsg now send data in 64K chunks to circumvent an |
| internal buffer problem in WinSock (KB 201213). |
| </para></listitem> |
| |
| <listitem><para> |
| New send/recv option MSG_DONTWAIT. |
| </para></listitem> |
| |
| <listitem><para> |
| IPv6 support. New APIs getaddrinfo, getnameinfo, freeaddrinfo, |
| gai_strerror, in6addr_any, in6addr_loopback. On IPv6-less systems, |
| replacement functions are available for IPv4. On systems with IPv6 |
| enabled, the underlying WinSock functions are used. While I tried hard |
| to get the functionality as POSIXy as possible, keep in mind that a |
| *fully* conformant implementation of getaddrinfo and other stuff is only |
| available starting with Windows Vista/2008. |
| </para></listitem> |
| |
| <listitem><para> |
| Resolver functions (res_init, res_query, res_search, res_querydomain, |
| res_mkquery, res_send, dn_comp, dn_expand) are now part of Cygwin. |
| Applications don't have to link against minires anymore. Actually, this |
| *is* the former libminires.a. |
| </para></listitem> |
| |
| <listitem><para> |
| rcmd is now implemented inside of Cygwin, instead of calling the WinSock |
| function. This allows rsh(1) usage on Vista/2008 and later, which |
| dropped this function from WinSock. |
| </para></listitem> |
| |
| <listitem><para> |
| Define multicast structures in netinet/in.h. Note that fully conformant |
| multicast support is only available beginning with Vista/2008. |
| </para></listitem> |
| |
| <listitem><para> |
| Improve get_ifconf. Redefine struct ifreq and subsequent datastructures |
| to be able to keep more information. Support SIOCGIFINDEX, |
| SIOCGIFDSTADDR and the Cygwin specific SIOCGIFFRNDLYNAM. Support real |
| interface flags on systems supporting them. |
| </para></listitem> |
| |
| <listitem><para> |
| Other new APIs: bindresvport, bindresvport_sa, gethostbyname2, |
| iruserok_sa, rcmd_af, rresvport_af. getifaddrs, freeifaddrs, |
| if_nametoindex, if_indextoname, if_nameindex, if_freenameindex. |
| </para></listitem> |
| |
| <listitem><para> |
| Add /proc/net/if_inet6. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="ov-new1.7-device"><title>Device related changes</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Reworked pipe implementation which uses overlapped IO to create more |
| reliable interruptible pipes and fifos. |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN environment variable option "binmode" has been removed. |
| </para></listitem> |
| |
| <listitem><para> |
| Improved fifo handling by using native Windows named pipes. |
| </para></listitem> |
| |
| <listitem><para> |
| Detect when a stdin/stdout which looks like a pipe is really a tty. |
| Among other things, this allows a debugged application to recognize that |
| it is using the same tty as the debugger. |
| </para></listitem> |
| |
| <listitem><para> |
| Support UTF-8 in console window. |
| </para></listitem> |
| |
| <listitem><para> |
| In the console window the backspace key now emits DEL (0x7f) instead of |
| BS (0x08), Alt-Backspace emits ESC-DEL (0x1b,0x7f) instead of DEL |
| (0x7f), same as the Linux console and xterm. Control-Space now emits an |
| ASCII NUL (0x0) character. |
| </para></listitem> |
| |
| <listitem><para> |
| Support up to 64 serial interfaces using /dev/ttyS0 - /dev/ttyS63. |
| </para></listitem> |
| |
| <listitem><para> |
| Support up to 128 raw disk drives /dev/sda - /dev/sddx. |
| </para></listitem> |
| |
| <listitem><para> |
| New API: cfmakeraw, get_avphys_pages, get_nprocs, get_nprocs_conf, |
| get_phys_pages, posix_openpt. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="ov-new1.7-posix"><title>Other POSIX related changes</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| A lot of character sets are supported now via a call to setlocale(). |
| The setting of the environment variables $LANG, $LC_ALL or $LC_CTYPE |
| will be used. For instance, setting $LANG to "de_DE.ISO-8859-15" before |
| starting a Cygwin session will use the ISO-8859-15 character set in the |
| entire session. The default locale in the absence of one of the |
| aforementioned environment variables is "C.UTF-8". |
| </para> |
| |
| <para> |
| The full list of supported character sets: "ASCII", "ISO-8859-x" with x |
| in 1-16, except 12, "UTF-8", Windows codepages "CPxxx", with xxx in |
| (437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866, 874, 1125, 1250, |
| 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258), "KOI8-R", "KOI8-U", |
| "SJIS", "GBK", "eucJP", "eucKR", and "Big5". |
| </para> |
| |
| </listitem> |
| |
| <listitem><para> |
| Allow multiple concurrent read locks per thread for pthread_rwlock_t. |
| </para></listitem> |
| |
| <listitem><para> |
| Implement pthread_kill(thread, 0) as per POSIX. |
| </para></listitem> |
| |
| <listitem><para> |
| New API for POSIX IPC: Named semaphores: sem_open, sem_close, |
| sem_unlink. Message queues: mq_open, mq_getattr, mq_setattr, mq_notify, |
| mq_send, mq_timedsend, mq_receive, mq_timedreceive, mq_close, mq_unlink. |
| Shared memory: shm_open, shm_unlink. |
| </para></listitem> |
| |
| <listitem><para> |
| Only declare expected functions in <strings.h>, don't include |
| <string.h> from here. |
| </para></listitem> |
| |
| <listitem><para> |
| Support for WCONTINUED, WIFCONTINUED() added to waitpid and wait4. |
| </para></listitem> |
| |
| <listitem><para> |
| New APIs: _Exit, confstr, insque, remque, sys_sigabbrev, posix_madvise, |
| posix_memalign, reallocf, exp10, exp10f, pow10, pow10f, lrint, lrintf, |
| rint, rintf, llrint, llrintf, llrintl, lrintl, rintl, mbsnrtowcs, |
| strcasestr, stpcpy, stpncpy, wcpcpy, wcpncpy, wcsnlen, wcsnrtombs, |
| wcsftime, wcstod, wcstof, wcstoimax, wcstok, wcstol, wcstoll, wcstoul, |
| wcstoull, wcstoumax, wcsxfrm, wcscasecmp, wcsncasecmp, fgetwc, fgetws, |
| fputwc, fputws, fwide, getwc, getwchar, putwc, putwchar, ungetwc, |
| asnprintf, dprintf, vasnprintf, vdprintf, wprintf, fwprintf, swprintf, |
| vwprintf, vfwprintf, vswprintf, wscanf, fwscanf, swscanf, vwscanf, |
| vfwscanf, vswscanf. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="ov-new1.7-sec"><title>Security related changes</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| Getting a domain user's groups is hopefully more bulletproof now. |
| </para></listitem> |
| |
| <listitem><para> |
| Cygwin now comes with a real LSA authentication package. This must be |
| manually installed by a privileged user using the /bin/cyglsa-config |
| script. The advantages and disadvantages are noted in |
| https://cygwin.com/ml/cygwin-developers/2006-11/msg00000.html |
| </para></listitem> |
| |
| <listitem><para> |
| Cygwin now allows storage and use of user passwords in a hidden area of |
| the registry. This is tried first when Cygwin is called by privileged |
| processes to switch the user context. This allows, for instance, ssh |
| public key sessions with full network credentials to access shares on |
| other machines. |
| </para></listitem> |
| |
| <listitem><para> |
| New options have been added to the mkpasswd and mkgroup tools to ease |
| use in multi-machine and multi-domain environments. The existing |
| options have a slightly changed behaviour. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| <sect3 id="ov-new1.7-misc"><title>Miscellaneous</title> |
| |
| <itemizedlist mark="bullet"> |
| |
| <listitem><para> |
| New ldd utility, similar to Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| New link libraries libdl.a, libresolv.a, librt.a. |
| </para></listitem> |
| |
| <listitem><para> |
| Fallout from the long path names: If the current working directory is |
| longer than 260 bytes, or if the current working directory is a virtual |
| path (like /proc, /cygdrive, //server), don't call native Win32 programs |
| since they don't understand these paths. |
| </para></listitem> |
| |
| <listitem><para> |
| On the first usage of a DOS path (C:\foo, \\foo\bar), the Cygwin DLL |
| emits a scary warning that DOS paths shouldn't be used. This warning |
| may be disabled via the new CYGWIN=nodosfilewarning setting. |
| </para></listitem> |
| |
| <listitem><para> |
| The CYGWIN environment variable option "server" has been removed. |
| Cygwin automatically uses cygserver if it's available. |
| </para></listitem> |
| |
| <listitem><para> |
| Allow environment of arbitrary size instead of a maximum of 32K. |
| </para></listitem> |
| |
| <listitem><para> |
| Don't force uppercase environment when started from a non-Cygwin |
| process. Except for certain Windows and POSIX variables which are |
| always uppercased, preserve environment case. Switch back to old |
| behaviour with the new CYGWIN=upcaseenv setting. |
| </para></listitem> |
| |
| <listitem><para> |
| Detect and report a missing DLL on process startup. |
| </para></listitem> |
| |
| <listitem><para> |
| Add /proc/registry32 and /proc/registry64 paths to access 32 bit and 64 |
| bit registry on 64 bit systems. |
| </para></listitem> |
| |
| <listitem><para> |
| Add the ability to distinguish registry keys and registry values with |
| the same name in the same registry subtree. The key is called "foo" and |
| the value will be called "foo%val" in this case. |
| </para></listitem> |
| |
| <listitem><para> |
| Align /proc/cpuinfo more closly to Linux content. |
| </para></listitem> |
| |
| <listitem><para> |
| Add /proc/$PID/mounts entries and a symlink /proc/mounts pointing to |
| /proc/self/mounts as on Linux. |
| </para></listitem> |
| |
| <listitem><para> |
| Optimized strstr and memmem implementation. |
| </para></listitem> |
| |
| <listitem><para> |
| Remove backwards compatibility with old signal masks. (Some *very* old |
| programs which use signal masks may no longer work correctly). |
| </para></listitem> |
| |
| <listitem><para> |
| Cygwin now exports wrapper functions for libstdc++ operators new and |
| delete, to support the toolchain in implementing full C++ standards |
| conformance when working with shared libraries. |
| </para></listitem> |
| |
| <listitem><para> |
| Different Cygwin installations in different paths can be run in parallel |
| without knowing of each other. The path of the Cygwin DLL used in a |
| process is a key used when creating IPC objects. So different Cygwin |
| DLLs are running in different namespaces. |
| </para></listitem> |
| |
| <listitem><para> |
| Each Cygwin DLL stores its path and installation key in the registry. |
| This allows troubleshooting of problems which could be a result of |
| having multiple concurrent Cygwin installations. |
| </para></listitem> |
| |
| </itemizedlist> |
| |
| </sect3> |
| |
| </sect2> |
| |
| </sect1> |