Module Name: xsrc Committed By: mrg Date: Sun Nov 17 21:24:38 UTC 2024
Modified Files: xsrc/external/mit/libX11/dist: ChangeLog README.md aclocal.m4 configure configure.ac xsrc/external/mit/libX11/dist/modules/im/ximcp: imRmAttr.c xsrc/external/mit/libX11/dist/nls/en_US.UTF-8: Compose.pre xsrc/external/mit/libX11/dist/src/xcms: cmsTrig.c xsrc/external/mit/libX11/dist/src/xkb: XKBMAlloc.c Log Message: merge libX11 1.8.10 To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 xsrc/external/mit/libX11/dist/ChangeLog \ xsrc/external/mit/libX11/dist/configure \ xsrc/external/mit/libX11/dist/configure.ac cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/libX11/dist/README.md \ xsrc/external/mit/libX11/dist/aclocal.m4 cvs rdiff -u -r1.3 -r1.4 \ xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c cvs rdiff -u -r1.13 -r1.14 \ xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/libX11/dist/src/xcms/cmsTrig.c cvs rdiff -u -r1.5 -r1.6 xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: xsrc/external/mit/libX11/dist/ChangeLog diff -u xsrc/external/mit/libX11/dist/ChangeLog:1.7 xsrc/external/mit/libX11/dist/ChangeLog:1.8 --- xsrc/external/mit/libX11/dist/ChangeLog:1.7 Tue Jul 2 07:29:20 2024 +++ xsrc/external/mit/libX11/dist/ChangeLog Sun Nov 17 21:24:37 2024 @@ -1,3 +1,562 @@ +commit ed9fb5535efe1e5278654b6b3994a34337b4bf1a +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Sun Jul 28 10:37:55 2024 -0700 + + libX11 1.8.10 + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 92014b39634e0b0aa52d4bff955a7aac3ed0a915 +Author: Kelly Roadkill <roadk...@pm.me> +Date: Tue Jul 23 08:12:01 2024 +0500 + + Revert "nls: add compose seq's for symbols absent from Cyrillic layouts to ru_RU" + + Testing by multilingual typists revealed that the + proposed sequences are too complex for everyday + use. It seems that the inherent problems with + JCUKEN can only be fixed with better kbd layouts. + + This reverts commit 174df0b8b6ada7e1c741373c7d686e00f42d8bd5. + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/261> + +commit be137dffa6f0b7640ce80b4266539009544bb045 +Author: Kelly Roadkill <roadk...@pm.me> +Date: Fri Jul 19 16:47:40 2024 +0500 + + nls: add compose sequences for hryvnia currency + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/259> + +commit 39d57cbeda627115f7e8bd305b6cbd9df1daa007 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Sat Jul 13 10:14:02 2024 -0700 + + xlibi18n/lcFile.c: avoid use of possibly-NULL pointer with strcpy + + Fixes gcc warnings: + lcFile.c: In function ‘_XlcLocaleLibDirName’: + lcFile.c:708:5: warning: use of possibly-NULL ‘last_dir_name’ where + non-null expected [CWE-690] [-Wanalyzer-possible-null-argument] + 708 | strcpy (last_dir_name, dir_name); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/258> + +commit 8abcaba1a7ee363a35ad8d869715095096995c76 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Sat Jul 6 09:37:50 2024 -0700 + + Revert "unifdef __vax__" + + This reverts commit 4ce3962b701c502acc96b6eaf104a5ffc317c5d7. + Requested by NetBSD which still has a supported VAX port. + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/257> + +commit 751fbc59c30604980fdd19cb4b333d3cf2eccb24 +Author: Olivier Fourdan <ofour...@redhat.com> +Date: Fri Jun 21 14:37:24 2024 +0200 + + Fix deadlock in XRebindKeysym() + + Xlib is now built with threading support enabled from the constructor + by default. + + XRebindKeysym() acquires the display lock, then calls: + + | XRebindKeysym() + | LockDisplay() + | ComputeMaskFromKeytrans() + | -> XkbKeysymToModifiers() + | -> _XkbLoadDpy() + | -> XkbGetMap() + | -> XkbGetUpdatedMap() + | LockDisplay() + + And the dead lock: + + | Xlib ERROR: XKBGetMap.c line 575 thread 1fc6e580: locking display already + | locked at KeyBind.c line 937 + + To avoid the issue, call ComputeMaskFromKeytrans() from outside the display + lock. + + Signed-off-by: Olivier Fourdan <ofour...@redhat.com> + Closes: https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/216 + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/256> + +commit bc8c908ae8007d0bfe9b58c7752dd00fd282d999 +Author: Kelly Roadkill <roadk...@pm.me> +Date: Tue Jun 18 14:49:50 2024 +0500 + + nls: delete compose sequence with anomalous post-fixed cedilla + + The only sequence with post-fixed cedilla in the + whole en_US.UTF-8 was introduced in cf040016 with + the merge of GTK+ compose sequences 12 years ago. + It goes against the established patterns. + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/255> + +commit 1472048b7a02d1b7fc25cfeda761db23fba21eac +Author: Olivier Fourdan <ofour...@redhat.com> +Date: Fri Jun 7 09:05:55 2024 +0200 + + Make colormap private interfaces thread safe. + + Protect access to the dpy structure by a display lock, so that these can + be called outside of a global display lock. + + That allows the XCMS colormap functions to be thread safe without having + the whole functions within a display lock, to avoid deadlocks. + + Signed-off-by: Olivier Fourdan <ofour...@redhat.com> + See-also: https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/215 + See-also: https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/94 + Reviewed-by: Adam Jackson <a...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/254> + +commit 739fce4c12c7aa39112353d80c8a3bf25bdd5274 +Author: Olivier Fourdan <ofour...@redhat.com> +Date: Fri Jun 7 09:07:39 2024 +0200 + + Revert "Protect colormap add/removal with display lock" + + That commit 99a2cf1aa was moving the calls to the _Xcms*CmapRec*() + family of functions within a display lock to make the XCMS colormap + functions thread safe. + + Unfortunately, that causes a deadlock in XCopyColormapAndFree(), because + _XcmsCopyCmapRecAndFree() calls CmapRecForColormap() which calls + XGetVisualInfo() which also tries to acquire the display lock. + + So, instead of moving the entire functions within the display lock, + let's try to make the functions themselves thread safe in the following + commit, and revert this change which causes a deadlock. + + This reverts commit 99a2cf1aa0b58391078d5d3edf0a7dab18c7745d. + + Fixes: https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/215 + See-also: https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/94 + Reviewed-by: Adam Jackson <a...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/254> + +commit 5dfedaf4aa1a032ea6cb4e871abd2e065f798129 +Author: Olivier Fourdan <ofour...@redhat.com> +Date: Thu Jun 6 16:25:26 2024 +0200 + + Revert "Fix XTS regression in XCopyColormapAndFree" + + This change was to fix the next change that we are to revert as well. + + This reverts commit 68c72a7341b114277ab232f2499ee3bd035af8a0. + + Reviewed-by: Adam Jackson <a...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/254> + +commit c099d0105f7a4f969cf922f333cb54c177aceacb +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Sat May 18 11:41:36 2024 -0700 + + Avoid buffer overflow in _XimLookupMBText & _XimLookupUTF8Text + + Reported-by: u32i <u...@proton.me> + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/251> + +commit 0af3328dc330cbd8e097e2971b336b44466b1ab0 +Author: jmcwilliams403 <jmcwilliams...@gmail.com> +Date: Sun Jul 16 11:31:22 2023 -0400 + + NLS: Add 6 Multi_key sequences for Ezh + + Ezh is a Latin-Script letter belonging to several Uralic, Caucasian, + and West-African languages. It is present on some Finnish keyboards, + but users of many other layouts cannot presently type it. This commit + adds Multi_key sequences for both Capital and lowercase Ezh, as well + as Multi_key + dead_caron sequences for Ezh with a caron, which is + used in Laz and Skolt Sámi. + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/221> + +commit 174df0b8b6ada7e1c741373c7d686e00f42d8bd5 +Author: Kelly Roadkill <roadk...@pm.me> +Date: Sun Dec 3 00:53:55 2023 +0500 + + nls: add compose seq's for symbols absent from Cyrillic layouts to ru_RU + + JCUKEN (ЙЦУКЕН) - the default and de-facto standard layout for most Cyrillic scripts - lacks a number of ASCII symbols from QWERTY counterpart, forcing users to switch back-and-forth between layouts to type them. + This adds sequences for them to the ru_RU compose map in an intuitive and consistent manner. + + Fixes #200 for ru_RU (but other Cyrillic layouts might benefit too) + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/238> + +commit 763f3f938c24993e9ceb1d6960d939b022fa8dfe +Author: Mohamed Akram <mohd.ak...@outlook.com> +Date: Fri May 24 18:18:43 2024 +0400 + + nls: add Arabic hamza compose sequences + + These sequences are intended for use in the ara(mac-phonetic) and + my(phonetic) layouts. They are based on the following layouts listed in + the CLDR: + + - https://github.com/unicode-org/cldr/blob/release-43/keyboards/osx/ar-t-k0-osx-qwerty.xml + - https://github.com/unicode-org/cldr/blob/release-43/keyboards/osx/ms-t-k0-osx.xml + + The sequences are listed in the `<transforms>` section, and are + reproduced below: + + ``` + <transforms type="simple"> + <transform from="ء\u{64E}" to="آ"/> <!-- ءَ → آ --> + <transform from="ء\u{650}" to="إ"/> <!-- ءِ → إ --> + <transform from="ء " to="ء"/> + <transform from="ء\u{A0}" to="ء"/> + <transform from="ء!" to="إ"/> + <transform from="ء١" to="إ"/> + <transform from="ءا" to="أ"/> + <transform from="ءس" to="ئ"/> + <transform from="ءو" to="ؤ"/> + <transform from="ءي" to="ئ"/> + <transform from="ءى" to="ئ"/> + </transforms> + ``` + + We limit ourselves to the sequences that strictly combine a character + and a hamza, and generate that character with a hamza on it, following + the behavior in sequences of other dead keys. Additional sequences, + potentially for other layouts as well, could be added later on as + necessary. + + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/218> + +commit 97fb5bda3d0777380cd4b964f48771a82ef3f2a7 +Author: José Expósito <jexpo...@redhat.com> +Date: Tue Apr 30 18:21:08 2024 +0200 + + Fix buffer overrun in parse_omit_name + + When `num_fields == 12`, if the last character of the pattern is '-', + the `buf` array is overrun. + + This error has been found by a static analysis tool. This is the report: + + Error: OVERRUN (CWE-119): + libX11-1.8.7/modules/om/generic/omGeneric.c:691: cond_at_most: + Checking "length > 255" implies that "length" may be up to 255 on + the false branch. + libX11-1.8.7/modules/om/generic/omGeneric.c:695: alias: + Assigning: "last" = "buf + length - 1". "last" may now point to as + high as byte 254 of "buf" (which consists of 256 bytes). + libX11-1.8.7/modules/om/generic/omGeneric.c:718: ptr_incr: + Incrementing "last". "last" may now point to as high as byte 255 + of "buf" (which consists of 256 bytes). + libX11-1.8.7/modules/om/generic/omGeneric.c:720: ptr_incr: + Incrementing "last". "last" may now point to as high as byte 256 + of "buf" (which consists of 256 bytes). + libX11-1.8.7/modules/om/generic/omGeneric.c:720: overrun-local: + Overrunning array of 256 bytes at byte offset 256 by + dereferencing pointer "++last". + # 718| *++last = '*'; + # 719| + # 720|-> *++last = '-'; + # 721| break; + # 722| case 13: + + Signed-off-by: José Expósito <jexpo...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/250> + +commit f67a87dad40141f50f4da35b28a92a974bfdf7e1 +Author: José Expósito <jexpo...@redhat.com> +Date: Tue Apr 30 18:04:35 2024 +0200 + + Fix memory leak in _XimProtoSetIMValues + + This error has been found by a static analysis tool. This is the report: + + Error: RESOURCE_LEAK (CWE-772): + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1316: alloc_fn: + Storage is returned from allocation function "calloc". + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1316: var_assign: + Assigning: "tmp" = storage returned from + "calloc((size_t)((buf_size + data_len == 0) ? 1 : (buf_size + data_len)), 1UL)". + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1319: noescape: + Resource "tmp" is not freed or pointed-to in "memcpy". + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1320: var_assign: + Assigning: "buf" = "tmp". + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1302: var_assign: + Assigning: "data" = "buf". + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1303: noescape: + Resource "data" is not freed or pointed-to in + "_XimEncodeIMATTRIBUTE". + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1333: leaked_storage: + Variable "data" going out of scope leaks the storage it points to. + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1333: leaked_storage: + Variable "buf" going out of scope leaks the storage it points to. + libX11-1.8.7/modules/im/ximcp/imDefIm.c:1333: leaked_storage: + Variable "tmp" going out of scope leaks the storage it points to. + # 1331| + # 1332| if (!total) + # 1333|-> return (char *)NULL; + # 1334| + # 1335| buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE]; + + Signed-off-by: José Expósito <jexpo...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/250> + +commit af1312d2873d2ce49b18708a5029895aed477392 +Author: José Expósito <jexpo...@redhat.com> +Date: Tue Apr 30 17:37:39 2024 +0200 + + XKBMAlloc: Check that needed is >= 0 in XkbResizeKeyActions + + Passing a negative value in `needed` to the `XkbResizeKeyActions()` + function can create a `newActs` array of an unespected size. + Check the value and return if it is invalid. + + This error has been found by a static analysis tool. This is the report: + + Error: OVERRUN (CWE-119): + libX11-1.8.7/src/xkb/XKBMAlloc.c:811: cond_const: + Checking "xkb->server->size_acts == 0" implies that + "xkb->server->size_acts" is 0 on the true branch. + libX11-1.8.7/src/xkb/XKBMAlloc.c:811: buffer_alloc: + "calloc" allocates 8 bytes dictated by parameters + "(size_t)((xkb->server->size_acts == 0) ? 1 : xkb->server->size_acts)" + and "8UL". + libX11-1.8.7/src/xkb/XKBMAlloc.c:811: var_assign: + Assigning: "newActs" = "calloc((size_t)((xkb->server->size_acts == 0) ? 1 : xkb->server->size_acts), 8UL)". + libX11-1.8.7/src/xkb/XKBMAlloc.c:815: assignment: + Assigning: "nActs" = "1". + libX11-1.8.7/src/xkb/XKBMAlloc.c:829: cond_at_least: + Checking "nCopy > 0" implies that "nCopy" is at least 1 on the + true branch. + libX11-1.8.7/src/xkb/XKBMAlloc.c:830: overrun-buffer-arg: + Overrunning buffer pointed to by "&newActs[nActs]" of 8 bytes by + passing it to a function which accesses it at byte offset 15 + using argument "nCopy * 8UL" (which evaluates to 8). + # 828| + # 829| if (nCopy > 0) + # 830|-> memcpy(&newActs[nActs], XkbKeyActionsPtr(xkb, i), + # 831| nCopy * sizeof(XkbAction)); + # 832| if (nCopy < nKeyActs) + + Signed-off-by: José Expósito <jexpo...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/250> + +commit 836a8f2cf5e930c8a56b512273fdf9890282ba04 +Author: José Expósito <jexpo...@redhat.com> +Date: Tue Apr 30 16:49:26 2024 +0200 + + Fix use of uninitialized variable in _XimEncodeICATTRIBUTE + + In the `res->resource_size == XimType_NEST` code path, if + `res->xrm_name != pre_quark` and `res->xrm_name != sts_quark`, `len` can + be used uninitialized. + + This error has been found by a static analysis tool. This is the report: + + Error: UNINIT (CWE-457): + libX11-1.8.7/modules/im/ximcp/imRmAttr.c:1106: var_decl: + Declaring variable "len" without initializer. + libX11-1.8.7/modules/im/ximcp/imRmAttr.c:1179: uninit_use: + Using uninitialized value "len". + # 1177| } + # 1178| + # 1179|-> if (len == 0) { + # 1180| continue; + # 1181| } else if (len < 0) { + + Signed-off-by: José Expósito <jexpo...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/250> + +commit eaad761e24722b1743d3edee3383294bfb4947d6 +Author: José Expósito <jexpo...@redhat.com> +Date: Tue Apr 30 16:41:40 2024 +0200 + + Fix use of uninitialized variable in _XimExtension + + `_XimRead()` is being called with `reply` as target buffer instead of + using `preply`, accessing uninitialized memory a few lines later. + + This error has been found by a static analysis tool. This is the report: + + Error: UNINIT (CWE-457): + libX11-1.8.7/modules/im/ximcp/imExten.c:468: alloc_fn: + Calling "malloc" which returns uninitialized memory. + libX11-1.8.7/modules/im/ximcp/imExten.c:468: assign: + Assigning: "preply" = "malloc((size_t)((buf_size == 0) ? 1 : buf_size))", + which points to uninitialized data. + libX11-1.8.7/modules/im/ximcp/imExten.c:479: uninit_use: + Using uninitialized value "*((CARD8 *)preply)". + # 477| return False; + # 478| buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE); + # 479|-> if (*((CARD8 *)preply) == XIM_ERROR) { + # 480| _XimProcError(im, 0, (XPointer)&buf_s[3]); + # 481| if(reply != preply) + + Signed-off-by: José Expósito <jexpo...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/250> + +commit 4f5541193dd5a004ed5ea44c12fc25e227113c9b +Author: José Expósito <jexpo...@redhat.com> +Date: Tue Apr 30 16:37:21 2024 +0200 + + Fix use of uninitialized variable in _XimTriggerNotify + + `_XimRead()` is being called with `reply` as target buffer instead of + using `preply`, accessing uninitialized memory a few lines later. + + This error has been found by a static analysis tool. This is the report: + + Error: UNINIT (CWE-457): + libX11-1.8.7/modules/im/ximcp/imDefLkup.c:561: alloc_fn: + Calling "malloc" which returns uninitialized memory. + libX11-1.8.7/modules/im/ximcp/imDefLkup.c:561: assign: + Assigning: "preply" = "malloc((size_t)((len == 0) ? 1 : len))", + which points to uninitialized data. + libX11-1.8.7/modules/im/ximcp/imDefLkup.c:573: uninit_use: + Using uninitialized value "*((CARD8 *)preply)". + # 571| } + # 572| buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE); + # 573|-> if (*((CARD8 *)preply) == XIM_ERROR) { + # 574| _XimProcError(im, 0, (XPointer)&buf_s[3]); + # 575| if(reply != preply) + + Signed-off-by: José Expósito <jexpo...@redhat.com> + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/250> + +commit 90b8fc65da1e773b0091a50be46b23609591e8b7 +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 26 01:29:39 2024 +0900 + + imDefIm: Add LIBX11_ENABLE_FABRICATED_ORDER env + + If an XIM application does not return the XKeyEvent from XNextEvent() + to XFilterEvent(), a timeout is reached and the behavior is fallen + back to the previous one with a warning messsage and we can ask + the application to send the XKeyEvent to XFilterEvent() but also + libX11 provides LIBX11_ENABLE_FABRICATED_ORDER environment variable. + If the application runs with LIBX11_ENABLE_FABRICATED_ORDER=0, the + previous behavior is available until the application is fixed. + + Closes: !246 + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + +commit 898746f9b1fb384d6d24ed827c836ec8a0b3da3b +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 26 01:29:34 2024 +0900 + + ximcp: Unmark fabricated with serial 0 and Xic commit_info + + GTK2 XIM resets the XKeyEvent serial to 0 even if _XimCommitRecv() + sets the serial so now checks if the events are sent with + Xic->private.proto.commit_info. + + Closes: !246 + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + +commit 5a1e62d77b65ba148b1c6d1d22a81dc2b07e7d9e +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 26 01:29:26 2024 +0900 + + Accept anon windows in XFilterEvent to update XIM state + + When input focuses are switched quickly with shortcut keys in a Java + window, the focus is sometimes lost and the Window=0 is assigned in + XFilterEvent() but the XKeyEvent was forwarded by a XIM serer(IBus) + with XIM_FORWARD_EVENT -> XNextEvent() -> XFilterEvent() and the event + needs to be forwarded to the XIM XKeyEvent press and release filters + to update the XIM state with Window=0 likes _XimPendingFilter() and + _XimUnfabricateSerial(). + + Closes: #205, #206 + Fixes: 024d229f ("ximcp: Unmark to fabricate key events with XKeyEvent serial") + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + +commit 5a14178c7cc408f425fe298aeade3dee749b1ca1 +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 26 00:49:14 2024 +0900 + + ximcp: Add fabricated_time in XimProtoPrivate for timeout + + When users type keys quickly, some applications using Steam or Java + do not call XNextEvent() for a key event but _XimFilterKeypress() + and _XimFilterKeyrelease() expect to receive the key events + forwarded by input methods. + + Now fabricated_time Time value is added to XimProtoPrivate to check + the timeout value. + + Closes: #205 + Fixes: 024d229f ("ximcp: Unmark to fabricate key events with XKeyEvent serial") + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + +commit 1181abd6ffede3ac5663a3a3d4ee66aef1fa553b +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 12 10:50:33 2024 +0900 + + imDefLkup: Mark and unmark fabricated with serial 0 + + GTK2 applications with GTK_IM_MODULE=xim sets the serial number 0 + to the XKeyEvent and the previous _XimFabricateSerial() logic did + not work for the applications. + Now the API marks to fabricate with the serial 0. + + Closes: #205 + Fixes: 024d229f ("ximcp: Unmark to fabricate key events with XKeyEvent serial") + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + +commit c7790072657f9fdbe8cda031776617088c5f11db +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 12 10:21:43 2024 +0900 + + imDefLkup: Commit first info in XimCommitInfo + + Xic.private.proto.commit_info can receive multiple XimCommitInfo + when typing keys very quickly like an bar code scanner (or evemu-play) + and the first info in XimCommitInfo should be committed to keep + the typing key order. + + This and 041b5291 are same patches but the regression issues will be + fixed by the later patches. + + Closes: #198 + Fixes: 041b5291 ("imDefLkup: Commit first info in XimCommitInfo") + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + +commit 13e9ac4d458069c81d795f6b4842814d30431b4b +Author: Takao Fujiwara <tfuji...@redhat.com> +Date: Fri Apr 12 10:21:41 2024 +0900 + + ximcp: Unmark to fabricate key events with XKeyEvent serial + + _XimProtoKeypressFilter() and _XimProtoKeyreleaseFilter() can + receive XKeyEvent from both the typing on the keyboard and the + callback of XIM_FORWARD_EVENT. + + If the filter functions unmark to fabricate XKeyEvent from the typing + on the keyboard during receiving XKeyEvent from the callback of + XIM_FORWARD_EVENT with typing keys very quickly likes an bar code + scanner (or evemu-play), XIM server cannot receive some key events and + it causes the key typing order to get scrambled. + + Now XIM client saves the serial in XKeyEvent and the filter functions + unmark to fabricate XKeyEvent from the callback of XIM_FORWARD_EVENT + only. + + This and 024d229f are same patches but the regression issues will be + fixed by the later patches. + + Closes: #198 + Fixes: 024d229f ("ximcp: Unmark to fabricate key events with XKeyEvent serial") + Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/246> + commit a465588218c1643eedc35b3c24409cb775454eee Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Fri Apr 5 15:50:06 2024 -0700 Index: xsrc/external/mit/libX11/dist/configure diff -u xsrc/external/mit/libX11/dist/configure:1.7 xsrc/external/mit/libX11/dist/configure:1.8 --- xsrc/external/mit/libX11/dist/configure:1.7 Tue Jul 2 07:29:20 2024 +++ xsrc/external/mit/libX11/dist/configure Sun Nov 17 21:24:37 2024 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.72 for libX11 1.8.9. +# Generated by GNU Autoconf 2.72 for libX11 1.8.10. # # Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues>. # @@ -675,8 +675,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libX11' PACKAGE_TARNAME='libX11' -PACKAGE_VERSION='1.8.9' -PACKAGE_STRING='libX11 1.8.9' +PACKAGE_VERSION='1.8.10' +PACKAGE_STRING='libX11 1.8.10' PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues' PACKAGE_URL='' @@ -838,6 +838,8 @@ EGREP GREP SED LIBTOOL +am__xargs_n +am__rm_f_notfound AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V @@ -1546,7 +1548,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -'configure' configures libX11 1.8.9 to adapt to many kinds of systems. +'configure' configures libX11 1.8.10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1617,7 +1619,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libX11 1.8.9:";; + short | recursive ) echo "Configuration of libX11 1.8.10:";; esac cat <<\_ACEOF @@ -1790,7 +1792,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libX11 configure 1.8.9 +libX11 configure 1.8.10 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. @@ -2273,7 +2275,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libX11 $as_me 1.8.9, which was +It was created by libX11 $as_me 1.8.10, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -4406,7 +4408,7 @@ fi # Initialize Automake -am__api_version='1.16' +am__api_version='1.17' # Find a good install program. We prefer a C program (faster), @@ -4508,6 +4510,165 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 +printf %s "checking whether sleep supports fractional seconds... " >&6; } +if test ${am_cv_sleep_fractional_seconds+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if sleep 0.001 2>/dev/null +then : + am_cv_sleep_fractional_seconds=yes +else case e in #( + e) am_cv_sleep_fractional_seconds=no ;; +esac +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 +printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; } + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 +printf %s "checking filesystem timestamp resolution... " >&6; } +if test ${am_cv_filesystem_timestamp_resolution+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# <dollar><star>; be careful, easy to get confused.) +if ( + set X `ls -t conftest.ts[12]` && + { + test "$*" != "X conftest.ts1 conftest.ts2" || + test "$*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment. +See 'config.log' for more details" "$LINENO" 5; } +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$2" = conftest.ts3 && + test "$3" = conftest.ts2 && + test "$4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 +printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; } + +# This check should not be cached, as it may vary across builds of +# different projects. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory @@ -4528,49 +4689,45 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + test "$2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 +printf "%s\n" "$am_build_env_is_sane" >&6; } +if test "$am_build_env_is_sane" = no; then + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +if test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1 +then : + +else case e in #( + e) ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! + ;; +esac fi rm -f conftest.file @@ -4920,17 +5077,13 @@ else fi +AM_DEFAULT_VERBOSITY=1 # Check whether --enable-silent-rules was given. if test ${enable_silent_rules+y} then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac am_make=${MAKE-make} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 printf %s "checking whether $am_make supports nested variables... " >&6; } @@ -4953,15 +5106,45 @@ esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi AM_BACKSLASH='\' +am__rm_f_notfound= +if (rm -f && rm -fr && rm -rf) 2>/dev/null +then : + +else case e in #( + e) am__rm_f_notfound='""' ;; +esac +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 +printf %s "checking xargs -n works... " >&6; } +if test ${am_cv_xargs_n_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3" +then : + am_cv_xargs_n_works=yes +else case e in #( + e) am_cv_xargs_n_works=no ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 +printf "%s\n" "$am_cv_xargs_n_works" >&6; } +if test "$am_cv_xargs_n_works" = yes +then : + am__xargs_n='xargs -n' +else case e in #( + e) am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }' + ;; +esac +fi + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -4984,7 +5167,7 @@ fi # Define the identity of the package. PACKAGE='libX11' - VERSION='1.8.9' + VERSION='1.8.10' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -5125,7 +5308,7 @@ else case e in #( # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: + # When given -MP, icc 7.0 and 7.1 complain thus: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported @@ -5175,47 +5358,9 @@ fi -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-autom...@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <https://www.gnu.org/software/coreutils/>. -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi # Initialize libtool @@ -20398,48 +20543,8 @@ MAN_SUBSTS="\ -# Check whether --enable-silent-rules was given. -if test ${enable_silent_rules+y} -then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -printf %s "checking whether $am_make supports nested variables... " >&6; } -if test ${am_cv_make_support_nested_variables+y} -then : - printf %s "(cached) " >&6 -else case e in #( - e) if printf "%s\n" 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi ;; -esac -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' +AM_DEFAULT_VERBOSITY=0 @@ -23720,6 +23825,18 @@ if test -z "${am__fastdepCC_TRUE}" && te as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi + if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -24183,7 +24300,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libX11 $as_me 1.8.9, which was +This file was extended by libX11 $as_me 1.8.10, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -24251,7 +24368,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libX11 config.status 1.8.9 +libX11 config.status 1.8.10 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" Index: xsrc/external/mit/libX11/dist/configure.ac diff -u xsrc/external/mit/libX11/dist/configure.ac:1.7 xsrc/external/mit/libX11/dist/configure.ac:1.8 --- xsrc/external/mit/libX11/dist/configure.ac:1.7 Tue Jul 2 07:29:21 2024 +++ xsrc/external/mit/libX11/dist/configure.ac Sun Nov 17 21:24:37 2024 @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.70]) -AC_INIT([libX11], [1.8.9], +AC_INIT([libX11], [1.8.10], [https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues], [libX11]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h include/X11/XlibConf.h]) Index: xsrc/external/mit/libX11/dist/README.md diff -u xsrc/external/mit/libX11/dist/README.md:1.6 xsrc/external/mit/libX11/dist/README.md:1.7 --- xsrc/external/mit/libX11/dist/README.md:1.6 Tue Jul 2 07:29:20 2024 +++ xsrc/external/mit/libX11/dist/README.md Sun Nov 17 21:24:37 2024 @@ -31,6 +31,17 @@ For patch submission instructions, see: https://www.x.org/wiki/Development/Documentation/SubmittingPatches +## Release 1.8.10 + + * Re-fix XIM input sometimes jumbled (#205, #206, #207, #208, !246) + * Fix various static analysis errors (!250) + * Add compose sequences for Arabic hamza (!218), Ezh (!221), and + hryvnia currency (!259) + * Make colormap private interfaces thread safe (#215, !254) + * Fix deadlock in XRebindKeysym() (!256) + * Assorted memory handling cleanups (!251, !258) + * Restore VAX support still in use by NetBSD (!257) + ## Release 1.8.9 * Fix regressions introduced in 1.8.8 (!245, !248) - this includes reverting Index: xsrc/external/mit/libX11/dist/aclocal.m4 diff -u xsrc/external/mit/libX11/dist/aclocal.m4:1.6 xsrc/external/mit/libX11/dist/aclocal.m4:1.7 --- xsrc/external/mit/libX11/dist/aclocal.m4:1.6 Tue Jul 2 07:29:20 2024 +++ xsrc/external/mit/libX11/dist/aclocal.m4 Sun Nov 17 21:24:37 2024 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.5 -*- Autoconf -*- +# generated automatically by aclocal 1.17 -*- Autoconf -*- -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ You have another version of autoconf. I If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2021 Free Software Foundation, Inc. +# Copyright (C) 2002-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented b # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' +[am__api_version='1.17' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.5], [], +m4_if([$1], [1.17], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.5])dnl +[AM_AUTOMAKE_VERSION([1.17])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -273,7 +273,7 @@ AC_CACHE_CHECK([dependency style of $dep # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: + # When given -MP, icc 7.0 and 7.1 complain thus: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported @@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -400,7 +400,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS] # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -534,7 +534,7 @@ if test -z "$CSCOPE"; then fi AC_SUBST([CSCOPE]) -AC_REQUIRE([AM_SILENT_RULES])dnl +AC_REQUIRE([_AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. @@ -542,47 +542,9 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-autom...@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. +AC_REQUIRE([_AM_PROG_RM_F]) +AC_REQUIRE([_AM_PROG_XARGS_N]) -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <https://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. @@ -615,7 +577,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -636,7 +598,7 @@ if test x"${install_sh+set}" != xset; th fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2021 Free Software Foundation, Inc. +# Copyright (C) 2003-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -657,7 +619,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -700,7 +662,7 @@ AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -734,7 +696,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -763,7 +725,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -810,7 +772,23 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2022-2024 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_RM_F +# --------------- +# Check whether 'rm -f' without any arguments works. +# https://bugs.gnu.org/10828 +AC_DEFUN([_AM_PROG_RM_F], +[am__rm_f_notfound= +AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""']) +AC_SUBST(am__rm_f_notfound) +]) + +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -829,16 +807,169 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# _AM_SLEEP_FRACTIONAL_SECONDS +# ---------------------------- +AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl +AC_CACHE_CHECK([whether sleep supports fractional seconds], + am_cv_sleep_fractional_seconds, [dnl +AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes], + [am_cv_sleep_fractional_seconds=no]) +])]) + +# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION +# ----------------------------------- +# Determine the filesystem's resolution for file modification +# timestamps. The coarsest we know of is FAT, with a resolution +# of only two seconds, even with the most recent "exFAT" extensions. +# The finest (e.g. ext4 with large inodes, XFS, ZFS) is one +# nanosecond, matching clock_gettime. However, it is probably not +# possible to delay execution of a shell script for less than one +# millisecond, due to process creation overhead and scheduling +# granularity, so we don't check for anything finer than that. (See below.) +AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl +AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS]) +AC_CACHE_CHECK([filesystem timestamp resolution], + am_cv_filesystem_timestamp_resolution, [dnl +# Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# <dollar><star>; be careful, easy to get confused.) +if ( + set X `[ls -t conftest.ts[12]]` && + { + test "$[]*" != "X conftest.ts1 conftest.ts2" || + test "$[]*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + _AS_ECHO_UNQUOTED( + ["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""], + [AS_MESSAGE_LOG_FD]) + AC_MSG_FAILURE([ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment.]) +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$[]2" = conftest.ts3 && + test "$[]3" = conftest.ts2 && + test "$[]4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) +])]) + # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) +[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION]) +# This check should not be cached, as it may vary across builds of +# different projects. +AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -857,49 +988,40 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[]*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + test "$[]2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +AC_MSG_RESULT([$am_build_env_is_sane]) +if test "$am_build_env_is_sane" = no; then + AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT([yes]) + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl + ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! -fi +]) AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then @@ -910,18 +1032,18 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2021 Free Software Foundation, Inc. +# Copyright (C) 2009-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl +# _AM_SILENT_RULES +# ---------------- +# Enable less verbose build rules support. +AC_DEFUN([_AM_SILENT_RULES], +[AM_DEFAULT_VERBOSITY=1 +AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) @@ -929,11 +1051,6 @@ AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. @@ -952,14 +1069,6 @@ am__doit: else am_cv_make_support_nested_variables=no fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl @@ -968,9 +1077,33 @@ AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls +dnl to AM_SILENT_RULES to change the default value. +AC_CONFIG_COMMANDS_PRE([dnl +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +])dnl ]) -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or +# empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_REQUIRE([_AM_SILENT_RULES]) +AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])]) + +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -998,7 +1131,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2021 Free Software Foundation, Inc. +# Copyright (C) 2006-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1017,7 +1150,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2021 Free Software Foundation, Inc. +# Copyright (C) 2004-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1063,15 +1196,19 @@ m4_if([$1], [v7], am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) + if test x$am_uid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work]) + elif test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) else - AC_MSG_RESULT([no]) - _am_tools=none + AC_MSG_RESULT([no]) + _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) + if test x$gm_gid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work]) + elif test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none @@ -1148,6 +1285,26 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +# Copyright (C) 2022-2024 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_XARGS_N +# ---------------- +# Check whether 'xargs -n' works. It should work everywhere, so the fallback +# is not optimized at all as we never expect to use it. +AC_DEFUN([_AM_PROG_XARGS_N], +[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl +AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])]) +AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl + am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }' +])dnl +AC_SUBST(am__xargs_n) +]) + dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- dnl serial 11 (pkg-config-0.29) dnl @@ -1463,7 +1620,7 @@ dnl DEALINGS IN THE SOFTWARE. # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.20.0]) +m4_define([vers_have], [1.20.1]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, Index: xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c diff -u xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c:1.3 xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c:1.4 --- xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c:1.3 Sun Aug 30 04:53:28 2020 +++ xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c Sun Nov 17 21:24:38 2024 @@ -1115,6 +1115,7 @@ _XimEncodeICATTRIBUTE( *ret_len = 0; for (p = arg; p && p->name; p++) { + len = 0; buf_s = (CARD16 *)buf; if (!(res = _XimGetResourceListRec(res_list, res_num, p->name))) { if (_XimSetInnerICAttributes(ic, top, p, mode)) Index: xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre diff -u xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre:1.13 xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre:1.14 --- xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre:1.13 Tue Oct 3 19:17:42 2023 +++ xsrc/external/mit/libX11/dist/nls/en_US.UTF-8/Compose.pre Sun Nov 17 21:24:38 2024 @@ -204,7 +204,14 @@ XCOMM "₪" U20aa NEW SHEQEL SIGN XCOMM "₱" U20b1 PESO SIGN <Multi_key> <G> <bar> : "₲" U20b2 # GUARANI SIGN <Multi_key> <bar> <G> : "₲" U20b2 # GUARANI SIGN -XCOMM "₴" U20b4 HRYVNIA SIGN +<Multi_key> <H> <equal> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <equal> <H> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <h> <equal> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <equal> <h> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <Cyrillic_GHE> <equal> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <equal> <Cyrillic_GHE> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <Cyrillic_ghe> <equal> : "₴" U20b4 # HRYVNIA SIGN +<Multi_key> <equal> <Cyrillic_ghe> : "₴" U20b4 # HRYVNIA SIGN <Multi_key> <C> <bar> : "₵" U20b5 # CEDI SIGN <Multi_key> <bar> <C> : "₵" U20b5 # CEDI SIGN <Multi_key> <R> <equal> : "₹" U20b9 # INDIAN RUPEE SIGN @@ -912,7 +919,6 @@ XCOMM Latin Extended-A <Multi_key> <comma> <s> : "ş" U015F # LATIN SMALL LETTER S WITH CEDILLA <Multi_key> <s> <comma> : "ş" U015F # LATIN SMALL LETTER S WITH CEDILLA <Multi_key> <cedilla> <s> : "ş" U015F # LATIN SMALL LETTER S WITH CEDILLA -<Multi_key> <s> <cedilla> : "ş" U015F # LATIN SMALL LETTER S WITH CEDILLA <dead_caron> <S> : "Š" U0160 # LATIN CAPITAL LETTER S WITH CARON <Multi_key> <c> <S> : "Š" U0160 # LATIN CAPITAL LETTER S WITH CARON <Multi_key> <v> <S> : "Š" U0160 # LATIN CAPITAL LETTER S WITH CARON @@ -1065,6 +1071,7 @@ XCOMM Latin Extended-B <dead_stroke> <z> : "ƶ" U01B6 # LATIN SMALL LETTER Z WITH STROKE <Multi_key> <slash> <z> : "ƶ" U01B6 # LATIN SMALL LETTER Z WITH STROKE <Multi_key> <KP_Divide> <z> : "ƶ" U01B6 # LATIN SMALL LETTER Z WITH STROKE +<Multi_key> <Z> <H> : "Ʒ" U01B7 # LATIN CAPITAL LETTER EZH <dead_caron> <A> : "Ǎ" U01CD # LATIN CAPITAL LETTER A WITH CARON <Multi_key> <c> <A> : "Ǎ" U01CD # LATIN CAPITAL LETTER A WITH CARON <Multi_key> <v> <A> : "Ǎ" U01CD # LATIN CAPITAL LETTER A WITH CARON @@ -1234,9 +1241,15 @@ XCOMM Latin Extended-B <dead_caron> <EZH> : "Ǯ" U01EE # LATIN CAPITAL LETTER EZH WITH CARON <Multi_key> <c> <EZH> : "Ǯ" U01EE # LATIN CAPITAL LETTER EZH WITH CARON <Multi_key> <v> <EZH> : "Ǯ" U01EE # LATIN CAPITAL LETTER EZH WITH CARON +<dead_caron> <Multi_key> <Z> <H> : "Ǯ" U01EE # LATIN CAPITAL LETTER EZH WITH CARON +<Multi_key> <c> <space> <Z> <H> : "Ǯ" U01EE # LATIN CAPITAL LETTER EZH WITH CARON +<Multi_key> <v> <space> <Z> <H> : "Ǯ" U01EE # LATIN CAPITAL LETTER EZH WITH CARON <dead_caron> <ezh> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON <Multi_key> <c> <ezh> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON <Multi_key> <v> <ezh> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON +<dead_caron> <Multi_key> <z> <h> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON +<Multi_key> <c> <space> <z> <h> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON +<Multi_key> <v> <space> <z> <h> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON <dead_caron> <j> : "ǰ" U01F0 # LATIN SMALL LETTER J WITH CARON <Multi_key> <c> <j> : "ǰ" U01F0 # LATIN SMALL LETTER J WITH CARON <Multi_key> <v> <j> : "ǰ" U01F0 # LATIN SMALL LETTER J WITH CARON @@ -1416,6 +1429,7 @@ XCOMM IPA Extensions <dead_stroke> <i> : "ɨ" U0268 # LATIN SMALL LETTER I WITH STROKE <Multi_key> <slash> <i> : "ɨ" U0268 # LATIN SMALL LETTER I WITH STROKE <Multi_key> <KP_Divide> <i> : "ɨ" U0268 # LATIN SMALL LETTER I WITH STROKE +<Multi_key> <z> <h> : "ʒ" U0292 # LATIN SMALL LETTER EZH XCOMM Spacing Modifier Letters <Multi_key> <slash> <U0294> : "ʡ" U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE @@ -1678,7 +1692,12 @@ XCOMM Cyrillic <dead_diaeresis> <Cyrillic_yeru> : "ӹ" U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS <Multi_key> <quotedbl> <Cyrillic_yeru> : "ӹ" U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS -XCOMM Several other scripts +XCOMM Arabic +<dead_hamza> <space> : "ء" Arabic_hamza # ARABIC LETTER HAMZA +<dead_hamza> <dead_hamza> : "ء" Arabic_hamza # ARABIC LETTER HAMZA +<dead_hamza> <Arabic_alef> : "أ" Arabic_hamzaonalef # ARABIC LETTER ALEF WITH HAMZA ABOVE +<dead_hamza> <Arabic_waw> : "ؤ" Arabic_hamzaonwaw # ARABIC LETTER WAW WITH HAMZA ABOVE +<dead_hamza> <Arabic_yeh> : "ئ" Arabic_hamzaonyeh # ARABIC LETTER YEH WITH HAMZA ABOVE <Multi_key> <U0653> <Arabic_alef> : "آ" U0622 # ARABIC LETTER ALEF WITH MADDA ABOVE <Multi_key> <U0654> <Arabic_alef> : "أ" U0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE <Multi_key> <U0654> <Arabic_waw> : "ؤ" U0624 # ARABIC LETTER WAW WITH HAMZA ABOVE @@ -1687,6 +1706,8 @@ XCOMM Several other scripts <Multi_key> <U0654> <U06D5> : "ۀ" U06C0 # ARABIC LETTER HEH WITH YEH ABOVE <Multi_key> <U0654> <U06C1> : "ۂ" U06C2 # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE <Multi_key> <U0654> <U06D2> : "ۓ" U06D3 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE + +XCOMM Several other scripts <Multi_key> <U093C> <U0928> : "ऩ" U0929 # DEVANAGARI LETTER NNNA <Multi_key> <U093C> <U0930> : "ऱ" U0931 # DEVANAGARI LETTER RRA <Multi_key> <U093C> <U0933> : "ऴ" U0934 # DEVANAGARI LETTER LLLA Index: xsrc/external/mit/libX11/dist/src/xcms/cmsTrig.c diff -u xsrc/external/mit/libX11/dist/src/xcms/cmsTrig.c:1.6 xsrc/external/mit/libX11/dist/src/xcms/cmsTrig.c:1.7 --- xsrc/external/mit/libX11/dist/src/xcms/cmsTrig.c:1.6 Tue Jul 2 07:31:12 2024 +++ xsrc/external/mit/libX11/dist/src/xcms/cmsTrig.c Sun Nov 17 21:24:38 2024 @@ -72,7 +72,7 @@ _XcmsModuloF( #define XCMS_RADIANS(d) ((d) * XCMS_PI / 180.0) #define XCMS_DEGREES(r) ((r) * 180.0 / XCMS_PI) #ifdef __vax__ -#define XCMS_X6_UNDERFLOWS (3.784659e-07) /* X**6 almost underflows*/ +#define XCMS_X6_UNDERFLOWS (3.784659e-07) /* X**6 almost underflows*/ #else #define XCMS_X6_UNDERFLOWS (4.209340e-52) /* X**6 almost underflows */ #endif Index: xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c diff -u xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c:1.5 xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c:1.6 --- xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c:1.5 Wed Jul 13 19:57:49 2022 +++ xsrc/external/mit/libX11/dist/src/xkb/XKBMAlloc.c Sun Nov 17 21:24:38 2024 @@ -795,7 +795,7 @@ XkbResizeKeyActions(XkbDescPtr xkb, int register int i, nActs; XkbAction *newActs; - if (needed == 0) { + if (needed <= 0) { xkb->server->key_acts[key] = 0; return NULL; }