From af7f57b9fbe78eb8fa0d834b1ddcdbcc6eb42ece Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sun, 24 Jan 2010 15:08:01 +0000 Subject: [PATCH] * new-features.sgml: Rework layout to use itemizedlist. Fix typo. Add two missing entries. --- winsup/doc/ChangeLog | 5 + winsup/doc/new-features.sgml | 786 ++++++++++++++++++++++------------- 2 files changed, 508 insertions(+), 283 deletions(-) diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog index b0c281e3a..02833db73 100644 --- a/winsup/doc/ChangeLog +++ b/winsup/doc/ChangeLog @@ -1,3 +1,8 @@ +2010-01-24 Corinna Vinschen + + * new-features.sgml: Rework layout to use itemizedlist. Fix typo. + Add two missing entries. + 2010-01-23 Corinna Vinschen * setup2.sgml (setup-locale-charsetlist): Add CP932. Change description diff --git a/winsup/doc/new-features.sgml b/winsup/doc/new-features.sgml index 872a90d8f..8c09db05d 100644 --- a/winsup/doc/new-features.sgml +++ b/winsup/doc/new-features.sgml @@ -2,379 +2,599 @@ What's new and what changed from 1.7.1 to 1.7.2 - -- Localization support has been much improved. + - - Cygwin now handles locales using the underlying Windows locale support. - The locale must exists in Windows to be recognized. +Localization support has been much improved. - - New tool "getlocale" to fetch valid locale values from Windows. + - - Default charset for locales without explicit charset is now choosen - from a list of Linx-compatible charsets. For instance en_US -> ISO-8859-1, - ja_JP -> EUC-JP. + + Cygwin now handles locales using the underlying Windows locale + support. The locale must exists in Windows to be recognized. + - - Support for the @euro locale modifier to switch to the ISO-8859-15 - charset. + + New tool "getlocale" to fetch valid locale values from Windows. + - - Default charset in the "C" or "POSIX" locale has been changed back from - UTF-8 to ASCII, to circumvent problems with applications expecting a - singlebyte charset in the "C"/"POSIX" locale. Still use UTF-8 internally - for filename conversion in this case. + + Default charset for locales without explicit charset is now choosen + from a list of Linux-compatible charsets. + + + + For instance: en_US -> ISO-8859-1, ja_JP -> EUC-JP, zh_TW -> Big5. + - - LC_COLLATE, LC_MONETARY, LC_NUMERIC, and LC_TIME localization is enabled - via Windows locale support. - - - New strfmon(3) call. + + Support for the @euro locale modifier to switch to the ISO-8859-15 charset. + -- 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). + + Default charset in the "C" or "POSIX" locale has been changed back + from UTF-8 to ASCII, to circumvent problems with applications + expecting a singlebyte charset in the "C"/"POSIX" locale. Still use + UTF-8 internally for filename conversion in this case. + -- Add new Linux-compatible API calls accept4(2), dup3(2), and pipe2(2). + + LC_COLLATE, LC_MONETARY, LC_NUMERIC, and LC_TIME localization is + enabled via Windows locale support. + -- fnmatch(3) call is now multibyte-aware. - + + fnmatch(3) call is now multibyte-aware. + + + + New strfmon(3) call. + + + + + + + +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). + + + +Recognize NWFS filesystem and workaround broken OS call. + + + OS related changes - -- Windows 95, 98 and Me are not supported anymore. The new Cygwin 1.7 DLL - will not run on any of these systems. + -- Add support for Windows 7 and Windows Server 2008 R2. - + +Windows 95, 98 and Me are not supported anymore. The new Cygwin 1.7 DLL +will not run on any of these systems. + + + +Add support for Windows 7 and Windows Server 2008 R2. + + + File Access related changes + + + +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. + + + +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. + + + +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 (codepage). 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, for instance in Cygwin.bat like this: + + -- 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. - -- 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. - -- 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 (codepage). 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, for instance in Cygwin.bat like this: - - set LC_CTYPE=en_US.UTF-8 - -- PATH_MAX is now 4096. Internally, path names can be as long as the - underlying OS can handle (32K). - -- 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. - -- The CYGWIN environment variable options "ntsec" and "smbntsec" have - been replaced by the per-mount option "acl"/"noacl". - -- The CYGWIN environment variable option "ntea" has been removed without - substitute. - -- The CYGWIN environment variable option "check_case" has been removed - in favor of real case-sensitivity on file systems supporting it. - -- Creating filenames with special DOS characters '"', '*', ':', '<', - '>', '|' is supported. - -- Creating files with special DOS device filename components ("aux", - "nul", "prn") is supported. - -- 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 base. - -- Due to the above changes, managed mounts have been removed. - -- Incoming DOS paths are always handled case-insensitive and get no POSIX - permission, as if they are mounted with noacl,posix=0 mount flags. - -- 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. - -- rename(2) rewritten to be more POSIX conformant. - -- 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. - -- Add st_birthtim member to struct stat. - -- 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. - -- Implement atomic O_APPEND mode. - -- New open(2) flags O_DIRECTORY, O_EXEC and O_SEARCH. - -- 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. - -- 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. - -- Handle NTFS native symlinks available since Vista/2008 as symlinks - (but don't create Vista/2008 symlinks due to unfortunate OS restrictions). - -- 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). - -- Recognize Netapp DataOnTap drives and fix inode number handling. - -- Recognize Samba version beginning with Samba 3.0.28a using the new - extended version information negotiated with the Samba developers. - -- 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. - -- List servers of all accessible domains and workgroups in // instead of - just the servers in the own domain/workgroup. - -- Support Linux-like extended attributes ([fl]getxattr, [fl]listxattr, - [fl]setxattr, [fl]removexattr). - -- New file conversion API for conversion from Win32 to POSIX path and - vice versa (cygwin_conv_path, cygwin_create_path, cygwin_conv_path_list). - -- New openat family of functions: openat, faccessat, fchmodat, fchownat, - fstatat, futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, renameat, - symlinkat, unlinkat. - -- Other new APIs: posix_fadvise, posix_fallocate, funopen, fopencookie, - open_memstream, open_wmemstream, fmemopen, fdopendir, fpurge, - mkstemps, eaccess, euidaccess, canonicalize_file_name, fexecve, execvpe. +set LC_CTYPE=en_US.UTF-8 + + + +PATH_MAX is now 4096. Internally, path names can be as long as the +underlying OS can handle (32K). + + + +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. + + + +The CYGWIN environment variable options "ntsec" and "smbntsec" have been +replaced by the per-mount option "acl"/"noacl". + + + +The CYGWIN environment variable option "ntea" has been removed without +substitute. + + + +The CYGWIN environment variable option "check_case" has been removed in +favor of real case-sensitivity on file systems supporting it. + + + +Creating filenames with special DOS characters '"', '*', ':', '<', +'>', '|' is supported. + + + +Creating files with special DOS device filename components ("aux", +"nul", "prn") is supported. + + + +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 base. + + + +Due to the above changes, managed mounts have been removed. + + + +Incoming DOS paths are always handled case-insensitive and get no POSIX +permission, as if they are mounted with noacl,posix=0 mount flags. + + + +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. + + + +rename(2) rewritten to be more POSIX conformant. + + + +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. + + + +Add st_birthtim member to struct stat. + + + +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. + + + +Implement atomic O_APPEND mode. + + + +New open(2) flags O_DIRECTORY, O_EXEC and O_SEARCH. + + + +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. + + + +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. + + + +Handle NTFS native symlinks available since Vista/2008 as symlinks (but +don't create Vista/2008 symlinks due to unfortunate OS restrictions). + + + +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). + + + +Recognize MVFS and workaround problems manipulating metadata and handling +DOS attributes. + + + +Recognize Netapp DataOnTap drives and fix inode number handling. + + + +Recognize Samba version beginning with Samba 3.0.28a using the new +extended version information negotiated with the Samba developers. + + + +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. + + + +List servers of all accessible domains and workgroups in // instead of +just the servers in the own domain/workgroup. + + + +Support Linux-like extended attributes ([fl]getxattr, [fl]listxattr, +[fl]setxattr, [fl]removexattr). + + + +New file conversion API for conversion from Win32 to POSIX path and vice +versa (cygwin_conv_path, cygwin_create_path, cygwin_conv_path_list). + + + +New openat family of functions: openat, faccessat, fchmodat, fchownat, +fstatat, futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, +renameat, symlinkat, unlinkat. + + + +Other new APIs: posix_fadvise, posix_fallocate, funopen, fopencookie, +open_memstream, open_wmemstream, fmemopen, fdopendir, fpurge, mkstemps, +eaccess, euidaccess, canonicalize_file_name, fexecve, execvpe. + + + + Network related changes - -- New implementation for blocking sockets and select on sockets which - is supposed to allow POSIX-compatible sharing of sockets between - threads and processes. + -- send/sendto/sendmsg now send data in 64K chunks to circumvent an - internal buffer problem in WinSock (KB 201213). + +New implementation for blocking sockets and select on sockets which is +supposed to allow POSIX-compatible sharing of sockets between threads +and processes. + -- New send/recv option MSG_DONTWAIT. + +send/sendto/sendmsg now send data in 64K chunks to circumvent an +internal buffer problem in WinSock (KB 201213). + -- IPv6 support. New API 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. + +New send/recv option MSG_DONTWAIT. + -- 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. + +IPv6 support. New API 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. + -- 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. + +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. + -- Define multicast structures in netinet/in.h. Note that fully - conformant multicast support is only available beginning with Vista/2008. + +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. + -- 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. + +Define multicast structures in netinet/in.h. Note that fully conformant +multicast support is only available beginning with Vista/2008. + -- Other new APIs: bindresvport, bindresvport_sa, gethostbyname2, iruserok_sa, - rcmd_af, rresvport_af. getifaddrs, freeifaddrs, if_nametoindex, - if_indextoname, if_nameindex, if_freenameindex. + +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. + -- Add /proc/net/if_inet6. - + +Other new APIs: bindresvport, bindresvport_sa, gethostbyname2, +iruserok_sa, rcmd_af, rresvport_af. getifaddrs, freeifaddrs, +if_nametoindex, if_indextoname, if_nameindex, if_freenameindex. + + + +Add /proc/net/if_inet6. + + + Device related changes - -- Reworked pipe implementation which uses overlapped IO to create - more reliable interruptible pipes and fifos. + -- The CYGWIN environment variable option "binmode" has been removed. + +Reworked pipe implementation which uses overlapped IO to create more +reliable interruptible pipes and fifos. + -- Improved fifo handling by using native Windows named pipes. + +The CYGWIN environment variable option "binmode" has been removed. + -- 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. + +Improved fifo handling by using native Windows named pipes. + -- Support UTF-8 in console window. + +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. + -- 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. + +Support UTF-8 in console window. + -- Support up to 64 serial interfaces using /dev/ttyS0 - /dev/ttyS63. + +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. + -- Support up to 128 raw disk drives /dev/sda - /dev/sddx. + +Support up to 64 serial interfaces using /dev/ttyS0 - /dev/ttyS63. + -- New API: cfmakeraw, get_avphys_pages, get_nprocs, get_nprocs_conf, - get_phys_pages, posix_openpt. - + +Support up to 128 raw disk drives /dev/sda - /dev/sddx. + + + +New API: cfmakeraw, get_avphys_pages, get_nprocs, get_nprocs_conf, +get_phys_pages, posix_openpt. + + + Other POSIX related changes - -- 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 charset is "UTF-8", even in the - default locale "C". The default locale in the absence of one of the - aforementioned environment variables is "C.UTF-8". + - 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". The leading language and - territory part (en_US, for instance) is not used by Cygwin yet, but is - required for POSIX compatibility. + +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 charset is "UTF-8", even in the default +locale "C". The default locale in the absence of one of the +aforementioned environment variables is "C.UTF-8". + -- Allow multiple concurrent read locks per thread for pthread_rwlock_t. + +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". The leading language and +territory part (en_US, for instance) is not used by Cygwin yet, but is +required for POSIX compatibility. + -- Implement pthread_kill(thread, 0) as per POSIX. + -- 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. + +Allow multiple concurrent read locks per thread for pthread_rwlock_t. + -- Only declare expected functions in <strings.h>, don't include - <string.h> from here. + +Implement pthread_kill(thread, 0) as per POSIX. + -- Support for WCONTINUED, WIFCONTINUED() added to waitpid and wait4. + +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. + -- 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. - + +Only declare expected functions in <strings.h>, don't include +<string.h> from here. + + + +Support for WCONTINUED, WIFCONTINUED() added to waitpid and wait4. + + + +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. + + + Security related changes - -- Getting a domain user's groups is hopefully more bulletproof now. + -- 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 - http://cygwin.com/ml/cygwin-developers/2006-11/msg00000.html + +Getting a domain user's groups is hopefully more bulletproof now. + -- 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. + +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 +http://cygwin.com/ml/cygwin-developers/2006-11/msg00000.html + -- 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. - + +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. + + + +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. + + + Miscellaneous - -- New ldd utility, similar to Linux. + -- New link libraries libdl.a, libresolve.a, librt.a. + +New ldd utility, similar to Linux. + -- 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. + +New link libraries libdl.a, libresolve.a, librt.a. + -- 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. + +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. + -- The CYGWIN environment variable option "server" has been removed. - Cygwin automatically uses cygserver if it's available. + +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. + -- Allow environment of arbitrary size instead of a maximum of 32K. + +The CYGWIN environment variable option "server" has been removed. +Cygwin automatically uses cygserver if it's available. + -- 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. + +Allow environment of arbitrary size instead of a maximum of 32K. + -- Detect and report a missing DLL on process startup. + +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. + -- Add /proc/registry32 and /proc/registry64 paths to access 32 bit and - 64 bit registry on 64 bit systems. + +Detect and report a missing DLL on process startup. + -- 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. + +Add /proc/registry32 and /proc/registry64 paths to access 32 bit and 64 +bit registry on 64 bit systems. + -- Align /proc/cpuinfo more closly to Linux content. + +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. + -- Add /proc/$PID/mounts entries and a symlink /proc/mounts pointing to - /proc/self/mounts as on Linux. + +Align /proc/cpuinfo more closly to Linux content. + -- Optimized strstr and memmem implementation. + +Add /proc/$PID/mounts entries and a symlink /proc/mounts pointing to +/proc/self/mounts as on Linux. + -- Remove backwards compatibility with old signal masks. (Some *very* old - programs which use signal masks may no longer work correctly). + +Optimized strstr and memmem implementation. + -- 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. + +Remove backwards compatibility with old signal masks. (Some *very* old +programs which use signal masks may no longer work correctly). + -- 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. + +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. + -- 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. - + +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. + + + +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. + + +