Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package setxkbmap for openSUSE:Factory checked in at 2026-07-06 12:27:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/setxkbmap (Old) and /work/SRC/openSUSE:Factory/.setxkbmap.new.1982 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "setxkbmap" Mon Jul 6 12:27:09 2026 rev:11 rq:1362666 version:1.3.5 Changes: -------- --- /work/SRC/openSUSE:Factory/setxkbmap/setxkbmap.changes 2023-05-16 14:27:14.107676342 +0200 +++ /work/SRC/openSUSE:Factory/.setxkbmap.new.1982/setxkbmap.changes 2026-07-06 12:27:12.712730542 +0200 @@ -1,0 +2,15 @@ +Sun Jun 28 17:51:44 UTC 2026 - Dirk Müller <[email protected]> + +- update to 1.3.5: + * Man page: update history from XFree86 4.3 to 3.2 + * setxkbmap references appear as far back as 3.2 in the XFree86 + Changelog. + * manual page: Rewrite in semantic markup + * Rewrite the reference manual in BSD-style mdoc(7) semantic + markup, providing greatly enhanced search on all supported manual + compilers. + * Improve man page formatting + * More closely follow common style as described on + * meson: Add option to build with meson + +------------------------------------------------------------------- Old: ---- setxkbmap-1.3.4.tar.xz New: ---- setxkbmap-1.3.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ setxkbmap.spec ++++++ --- /var/tmp/diff_new_pack.oUFGLE/_old 2026-07-06 12:27:13.128744976 +0200 +++ /var/tmp/diff_new_pack.oUFGLE/_new 2026-07-06 12:27:13.128744976 +0200 @@ -1,7 +1,7 @@ # # spec file for package setxkbmap # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: setxkbmap -Version: 1.3.4 +Version: 1.3.5 Release: 0 Summary: Utility to change the keyboard layout in X License: MIT ++++++ setxkbmap-1.3.4.tar.xz -> setxkbmap-1.3.5.tar.xz ++++++ ++++ 16583 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/ChangeLog new/setxkbmap-1.3.5/ChangeLog --- old/setxkbmap-1.3.4/ChangeLog 2023-05-15 03:58:28.000000000 +0200 +++ new/setxkbmap-1.3.5/ChangeLog 2026-03-29 00:40:45.000000000 +0100 @@ -1,3 +1,85 @@ +commit 66d92298f83dd3406303fd2b376d70f5cb1b704d +Author: Alan Coopersmith <[email protected]> +Date: Sat Mar 28 16:35:44 2026 -0700 + + setxkbmap 1.3.5 + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit f6757c7482553e390e054b3674daec80719f07eb +Author: Alan Coopersmith <[email protected]> +Date: Sat Jan 24 16:32:38 2026 -0800 + + Man page: update history from XFree86 4.3 to 3.2 + + setxkbmap references appear as far back as 3.2 in the XFree86 Changelog. + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/merge_requests/13> + +commit 67443deb584cd489c31e04e1c6ba6ee17af11bfe +Author: Alexander Ziaee <[email protected]> +Date: Tue May 6 15:28:01 2025 -0400 + + manual page: Rewrite in semantic markup + + Rewrite the reference manual in BSD-style mdoc(7) semantic markup, + providing greatly enhanced search on all supported manual compilers. + Massage usage for consistency. + + Signed-off-by: Alexander Ziaee <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/merge_requests/8> + +commit c7772933d6bf1a0d4ce5eaf13c645d53561841c4 +Author: Alan Coopersmith <[email protected]> +Date: Sun Jan 11 11:20:41 2026 -0800 + + gitlab CI: drop the ci-fairy check-mr job + + The only thing this checked was the checkbox for allowing maintainers to + edit the MR. Changed permissions checks now fail this job but luckily + the setting it checked has been the default for years anyway so we can + drop it. + + https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/81 + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/merge_requests/12> + +commit 8fe146750e70e83908c76f057492d9d9bf059287 +Author: Alan Coopersmith <[email protected]> +Date: Sun Apr 27 10:19:38 2025 -0700 + + Improve man page formatting + + More closely follow common style as described on + https://man7.org/linux/man-pages/man7/man-pages.7.html + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/merge_requests/11> + +commit 7a13fb1bb6924d381c2c22600809153662f82cc3 +Author: Peter Hutterer <[email protected]> +Date: Mon Mar 24 13:22:15 2025 +1000 + + CI: add workflow rules + + See https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/438 + + Part-of: <https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/merge_requests/10> + +commit e260ddf617b3ebabcb5c090e86672b9bc7d9465b +Author: Alan Coopersmith <[email protected]> +Date: Wed Feb 26 18:06:50 2025 -0800 + + meson: Add option to build with meson + + Also updates the gitlab CI config to test both build types + and compare the generated output/installed files. + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/merge_requests/9> + commit 094d979324efca8bbb2ad3756ee947c2d2b41a79 Author: Peter Hutterer <[email protected]> Date: Mon May 15 11:55:03 2023 +1000 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/Makefile.am new/setxkbmap-1.3.5/Makefile.am --- old/setxkbmap-1.3.4/Makefile.am 2023-05-15 03:58:23.000000000 +0200 +++ new/setxkbmap-1.3.5/Makefile.am 2026-03-29 00:40:35.000000000 +0100 @@ -51,4 +51,4 @@ $(LINT) $(ALL_LINT_FLAGS) $(setxkbmap_SOURCES) endif LINT -EXTRA_DIST = README.md +EXTRA_DIST = README.md meson.build meson.options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/compile new/setxkbmap-1.3.5/compile --- old/setxkbmap-1.3.4/compile 2023-05-15 03:58:26.000000000 +0200 +++ new/setxkbmap-1.3.5/compile 2026-03-29 00:40:39.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2018-03-07.03; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify @@ -37,11 +37,11 @@ file_conv= -# func_file_conv build_file lazy +# func_file_conv build_file unneeded_conversions # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. +# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no +# conversion will take place. func_file_conv () { file=$1 @@ -51,9 +51,20 @@ # lazily determine how to convert abs files case `uname -s` in MINGW*) - file_conv=mingw + if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then + # MSYS2 environment. + file_conv=cygwin + else + # Original MinGW environment. + file_conv=mingw + fi ;; - CYGWIN* | MSYS*) + MSYS*) + # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. + file_conv=cygwin + ;; + CYGWIN*) + # Cygwin environment. file_conv=cygwin ;; *) @@ -63,12 +74,14 @@ fi case $file_conv/,$2, in *,$file_conv,*) + # This is the optimization mentioned above: + # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert. ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/* | msys/*) - file=`cygpath -m "$file" || echo "$file"` + cygwin/*) + file=`cygpath -w "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` @@ -143,7 +156,7 @@ # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in - *.o | *.[oO][bB][jJ]) + *.o | *.lo | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift @@ -248,14 +261,17 @@ right script to run: please start by reading the file 'INSTALL'. Report bugs to <[email protected]>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>. EOF exit $? ;; -v | --v*) - echo "compile $scriptversion" + echo "compile (GNU Automake) $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; @@ -340,9 +356,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/config.h.in new/setxkbmap-1.3.5/config.h.in --- old/setxkbmap-1.3.4/config.h.in 2023-05-15 03:58:25.000000000 +0200 +++ new/setxkbmap-1.3.5/config.h.in 2026-03-29 00:40:39.000000000 +0100 @@ -57,7 +57,7 @@ /* Patch version of this package */ #undef PACKAGE_VERSION_PATCHLEVEL -/* Define to 1 if all of the C90 standard headers exist (not just the ones +/* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/configure.ac new/setxkbmap-1.3.5/configure.ac --- old/setxkbmap-1.3.4/configure.ac 2023-05-15 03:58:23.000000000 +0200 +++ new/setxkbmap-1.3.5/configure.ac 2026-03-29 00:40:35.000000000 +0100 @@ -24,8 +24,8 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([setxkbmap], - [1.3.4], - [https://gitlab.freedesktop.org/xorg/app/setxkbmap/issues], + [1.3.5], + [https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/issues], [setxkbmap]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/man/setxkbmap.man new/setxkbmap-1.3.5/man/setxkbmap.man --- old/setxkbmap-1.3.4/man/setxkbmap.man 2023-05-15 03:58:23.000000000 +0200 +++ new/setxkbmap-1.3.5/man/setxkbmap.man 2026-03-29 00:40:35.000000000 +0100 @@ -1,156 +1,185 @@ -.\" -.TH SETXKBMAP __appmansuffix__ __xorgversion__ -.SH NAME -setxkbmap -\- set the keyboard using the X Keyboard Extension -.SH SYNOPSIS -.B setxkbmap [ -.I args -.B ] [ -.I layout -.B [ -.I variant -.B [ -.I option ... -.B ] ] ] -.SH DESCRIPTION +.Dd March 29, 2025 +.Dt SETXKBMAP 1 +.Os +.Sh NAME +.Nm setxkbmap +.Nd set keymaps and layouts via the X Keyboard Extension +.Sh SYNOPSIS +.Nm +.Op Ar options +.Op Ar layout Op Ar variant Op Ar option Ar ... +.Sh DESCRIPTION The -.B setxkbmap -command maps the keyboard to use the layout determined by the options -specified on the command line. -.P -An XKB keymap is constructed from a number of components which are compiled -only as needed. The source for all of the components can be found in -.IR __xkbconfigroot__ . -.SH OPTIONS -.TP 8 -.B \-compat \fIname\fP -Specifies the name of the compatibility map component used to construct -a keyboard layout. -.TP 8 -.B \-config \fIfile\fP -Specifies the name of an XKB configuration file which describes the -keyboard to be used. -.TP 8 -.B \-device \fIdevice\fP -Specifies the numeric device id of the input device to be updated with -the new keyboard layout. If not specified, the core keyboard device of -the X server is updated. -.TP 8 -.B \-display \fIdisplay\fP -Specifies the display to be updated with the new keyboard layout. -.TP 8 -.B \-geometry \fIname\fP -Specifies the name of the geometry component used to construct -a keyboard layout. -.TP 8 -.B \-help -Prints a message describing the valid input to \fIsetxkbmap\fP. -.TP 8 -.B \-I \fIdirectory\fP -Adds a directory to the list of directories to be used to search for -specified layout or rules files. -.TP 8 -.B \-keycodes \fIname\fP -Specifies the name of the keycodes component used to construct -a keyboard layout. -.TP 8 -.B \-keymap \fIname\fP -Specifies the name of the keymap description used to construct -a keyboard layout. -.TP 8 -.B \-layout \fIname\fP -Specifies the name of the layout used to determine the components which -make up the keyboard description. The \fI-layout\fP option may only be used -once. Multiple layouts can be specified as a comma-separated list. -.TP 8 -.B \-model \fIname\fP -Specifies the name of the keyboard model used to determine the components -which make up the keyboard description. Only one model may be specified -on the command line. -.TP 8 -.B \-option \fIname\fP -Specifies the name of an option to determine the components which make up -the keyboard description; multiple options may be specified, one per -\fI-option\fP flag. Note that -.B setxkbmap -adds options specified in the command line to the options that were set -before (as saved in root window properties). If you want to replace all -previously specified options, use the \fI-option\fP flag with an empty -argument first. -.TP 8 -.B \-print -With this option \fBsetxkbmap\fP just prints component names in a format -acceptable by \fBxkbcomp\fP (an XKB keymap compiler) and exits. The option -can be used for tests instead of a verbose option and in cases when one needs -to run both the \fBsetxkbmap\fP and the \fBxkbcomp\fP in chain (see below). -.TP 8 -.B \-query -With this option \fBsetxkbmap\fP just prints the current rules, model, -layout, variant, and options, then exits. -.TP 8 -.B \-rules \fIfile\fP -Specifies the name of the rules file used to resolve the requested layout -and model to a set of component names. -.TP 8 -.B \-symbols \fIname\fP -Specifies the name of the symbols component used to construct -a keyboard layout. -.TP 8 -.B \-synch +.Nm +utility maps the keyboard to use the specified layout in an +.Xr X 7 +session. +For a table of available layouts and options, see +.Xr xkeyboard-config 7 . +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl ? , Fl help +Print a message describing the valid input to +.Nm . +.It Fl compat Ar name +Specify the name of the compatibility map component +used to construct a keyboard layout. +.It Fl config Ar file +Specify the name of an XKB configuration file +which describes the keyboard to be used. +.It Fl device Ar deviceid +Specify the numeric device id of the input device +to be updated with the new keyboard layout. +If not specified, the core keyboard device of the +.Xr Xorg 1 +server is updated. +.It Fl display Ar display +Specify the display to be updated with the new keyboard layout. +.It Fl geometry Ar name +Specify the name of the geometry component +used to construct a keyboard layout. +.It Fl I Ar directory +Add a directory to the list of directories to be used +to search for the specified layout or rules files. +.It Fl keycodes Ar name +Specify the name of the keycodes component +used to construct a keyboard layout. +.It Fl keymap Ar name +Specify the name of the keymap description +used to construct a keyboard layout. +.It Fl layout Ar name +Specify the name of the layout used to determine +the components which make up the keyboard description. +The +.Fl layout +option may only be used once. +Multiple layouts can be specified as a comma-separated list. +.It Fl model Ar name +Specify the name of the keyboard model used to determine +the components which make up the keyboard description. +Only one model may be specified on the command line. +.It Fl option Ar name +Specify the name of an option to determine the components +which make up the keyboard description; +multiple options may be specified, one per +.Fl option +flag. +Note that +.Nm +adds options specified in the command line +to the options that were set before +.Pq as saved in root window properties . +If you want to replace all previously specified options, +use the +.Fl option +flag with an empty argument first. +.It Fl print +Print component names in a format acceptable by the +.Xr xkbcomp 1 +keymap compiler and exit. +The option can be used for tests instead of a verbose option +and in cases when one needs to run both the +.Nm +and +.Xr xkbcomp 1 +utilities in chain +.Pq see below . +.It Fl query +Print the current rules, model, layout, variant, and options, +then exit. +.It Fl rules Ar file +Specify the name of the rules file used to resolve the requested +layout and model to a set of component names. +.It Fl symbols Ar name +Specify the name of the symbols component +used to construct a keyboard layout. +.It Fl synch Force synchronization for X requests. -.TP 8 -.B \-types \fIname\fP -Specifies the name of the types component used to construct -a keyboard layout. -.TP 8 -.B \-variant \fIname\fP -Specifies which variant of the keyboard layout should be used to determine -the components which make up the keyboard description. The \fI-variant\fP -option may only be used once. Multiple variants can be specified as a -comma-separated list and will be matched with the layouts specified with -\fI-layout\fP. -.TP 8 -.B \-verbose|\-v [\fIlevel\fP] -Specifies level of verbosity in output messages. Valid levels range from -0 (least verbose) to 10 (most verbose). The default verbosity level is 5. -If no level is specified, each \fI-v\fP or \fI-verbose\fP flag raises the -level by 1. -.TP 8 -.B \-version -Prints the program's version number. -.SH USING WITH xkbcomp -If you have an Xserver and a client shell running on different computers and -some XKB configuration files on those machines are different, you can get -problems specifying a keyboard map by model, layout, and options names. -This is because \fBsetxkbmap\fP converts its arguments to names of XKB -configuration files according to files that are on the client-side computer, -then sends these file names to the server where \fBxkbcomp\fP has to -compose a complete keyboard map using files which the server has. -Thus if the sets of files differ in some way, the names that -\fBsetxkbmap\fP generates can be unacceptable on the server side. You can -solve this problem by running the \fBxkbcomp\fP on the client side too. -With the \fI-print\fP option \fBsetxkbmap\fP just prints the file names -in an appropriate format to its stdout and this output can be piped -directly to the \fBxkbcomp\fP input. For example, the command - -\fBsetxkbmap us -print | xkbcomp - $DISPLAY\fP - -makes both steps run on the same (client) machine and loads a keyboard map into -the server. - -.SH "XWAYLAND" -Xwayland is an X server that uses a Wayland Compositor as backend. -Xwayland acts as translation layer between the X protocol and the Wayland -protocol but does not manage the keymaps - these are handled by the Wayland -Compositor. -.PP -Changing the keymap with \fBsetxkbmap\fP is not supported by Xwayland. -In most instances, using \fBsetxkbmap\fP on Xwayland is indicative of a -bug in a shell script and \fBsetxkbmap\fP will print a warning. Use the Wayland -Compositor's native XKB configuration methods instead. - -.SH SEE ALSO -xkbcomp(__appmansuffix__), xkeyboard-config(__miscmansuffix__) -.SH FILES -.I __xkbconfigroot__ +.It Fl types Ar name +Specify the name of the types component +used to construct a keyboard layout. +.It Fl variant Ar name +Specify which variant of the keyboard layout should be used to +determine the components which make up the keyboard description. +The +.Fl variant +option may only be used once. +Multiple variants can be specified as a comma-separated list +and will be matched with the layouts specified with +.Fl layout . +.It Fl v Ns Oo Sy erbose Oc Op Ar level +Specify level of verbosity in output messages. +Valid levels range from 0 +.Pq least verbose +to 10 +.Pq most verbose . +Default: 5. +If no level is specified, each +.Fl v +or +.Fl verbose +flag raises the level by 1. +.It Fl version +Print the utility's version number and exit. +.El +.Sh IMPLEMENTATION NOTES +An XKB keymap is constructed from a number of components +which are compiled only as needed by converting the arguments to +the names of XKB configuration files in +.Pa __xkbconfigroot__ +on the +.Xr X 7 +client. +Those filenames are then passed to the +.Xr Xorg 1 +server, unless printed to +.Xr stdout 4 , +with +.Fl print . +.Sh FILES +.Bl -tag -width __xkbconfigroot__ +.It Pa __xkbconfigroot__ +source for all XKB components +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +Rebind the Caps Lock key as an additional Left Control: +.Pp +.Dl setxkbmap -option ctrl:nocaps +.Pp +Set the layout to US, composing the keymap on the client for situations +where XKB component files may differ between the +.Xr Xserver 1 +and client: +.Pp +.Dl setxkbmap us -print | xkbcomp - $DISPLAY +.Pp +Reset XKB options: +.Pp +.Dl setxkbmap -option +.Sh DIAGNOSTICS +.Bl -diag +.It Cannot open display \&"default display\&" +The shell environment is not aware of a currently running +.Xr X 7 +session. +Start +.Xr X 7 +before using this utility, or set the +.Ev DISPLAY +environment variable. +.It Running setxkbmap against an Xwayland server +This utility will not run in an +.Xr Xwayland 1 +session. +Use the Wayland Compositor's native XKB configuration method instead. +.El +.Sh SEE ALSO +.Xr xkbcomp 1 , +.Xr X 7 , +.Xr xkeyboard-config 7 +.Sh HISTORY +.Nm +first appeared in XFree86 3.2. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/meson.build new/setxkbmap-1.3.5/meson.build --- old/setxkbmap-1.3.4/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/setxkbmap-1.3.5/meson.build 2026-03-29 00:40:35.000000000 +0100 @@ -0,0 +1,88 @@ +# SPDX-License-Identifier: MIT +# +# Copyright (c) 2025, Oracle and/or its affiliates. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +project( + 'setxkbmap', + 'c', + version: '1.3.5', + license: 'HPND', + license_files: 'COPYING', + meson_version: '>= 1.1.0', +) + +conf = configuration_data() +conf.set_quoted('PACKAGE_VERSION', meson.project_version()) + +# Replacement for XORG_DEFAULT_OPTIONS +cc = meson.get_compiler('c') +if cc.has_argument('-fno-strict-aliasing') + add_project_arguments('-fno-strict-aliasing', language: 'c') +endif + +xkbconfigroot = get_option('xkb-config-root') +if xkbconfigroot == '' + xkeyboard_config_dep = dependency('xkeyboard-config', required: false) + if xkeyboard_config_dep.found() + xkbconfigroot = xkeyboard_config_dep.get_variable(pkgconfig: 'xkb_base') + else + xkbconfigroot = get_option('prefix') / get_option('datadir') / 'X11' / 'xkb' + endif +endif +conf.set_quoted('DFLT_XKB_CONFIG_ROOT', xkbconfigroot) + +config_h = configure_file(output: 'config.h', configuration: conf) +add_project_arguments('-DHAVE_CONFIG_H', language : ['c']) + + +# Checks for pkg-config packages +dep_libxkbfile = dependency('xkbfile', required: true) +dep_libx11 = dependency('x11', required: true) +# xrandr is needed for the XWayland check +dep_libxrandr = dependency('xrandr', required: true) + +executable( + 'setxkbmap', + [config_h, 'setxkbmap.c'], + dependencies: [dep_libxkbfile, dep_libx11, dep_libxrandr], + install: true +) + +prog_sed = find_program('sed') + +custom_target( + 'setxkbmap.man', + input: 'man/setxkbmap.man', + output: 'setxkbmap.1', + command: [ + prog_sed, + '-e', 's/__xorgversion__/"setxkbmap @0@" "X Version 11"/'.format(meson.project_version()), + '-e', 's/__appmansuffix__/1/g', + '-e', 's/__miscmansuffix__/7/g', + '-e', f's|__xkbconfigroot__|"@xkbconfigroot@"|g', + '@INPUT@', + ], + capture: true, + install: true, + install_dir: get_option('prefix') / get_option('mandir') / 'man1', +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/meson.options new/setxkbmap-1.3.5/meson.options --- old/setxkbmap-1.3.4/meson.options 1970-01-01 01:00:00.000000000 +0100 +++ new/setxkbmap-1.3.5/meson.options 2026-03-29 00:40:35.000000000 +0100 @@ -0,0 +1,5 @@ +option( + 'xkb-config-root', + type: 'string', + description: 'The XKB config root [default=xkeyboard-config install path]', +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/missing new/setxkbmap-1.3.5/missing --- old/setxkbmap-1.3.4/missing 2023-05-15 03:58:26.000000000 +0200 +++ new/setxkbmap-1.3.5/missing 2026-03-29 00:40:39.000000000 +0100 @@ -1,9 +1,11 @@ #! /bin/sh -# Common wrapper for a few potentially missing GNU programs. +# Common wrapper for a few potentially missing GNU and other programs. -scriptversion=2018-03-07.03; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells + +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify @@ -54,18 +56,20 @@ -v, --version output version information and exit Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man +aclocal autoconf autogen autoheader autom4te automake autoreconf +bison flex help2man lex makeinfo perl yacc Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. -Send bug reports to <[email protected]>." +Report bugs to <[email protected]>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" + echo "missing (GNU Automake) $scriptversion" exit $? ;; @@ -108,7 +112,7 @@ program_details () { case $1 in - aclocal|automake) + aclocal|automake|autoreconf) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" @@ -123,6 +127,9 @@ echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; + *) + : + ;; esac } @@ -137,48 +144,55 @@ printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + autoheader_deps="'acconfig.h'" + automake_deps="'Makefile.am'" + aclocal_deps="'acinclude.m4'" case $normalized_program in + aclocal*) + echo "You should only need it if you modified $aclocal_deps or" + echo "$configure_deps." + ;; autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' + echo "You should only need it if you modified $configure_deps." + ;; + autogen*) + echo "You should only need it if you modified a '.def' or '.tpl' file." + echo "You may want to install the GNU AutoGen package:" + echo "<$gnu_software_URL/autogen/>" ;; autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" + echo "You should only need it if you modified $autoheader_deps or" echo "$configure_deps." - program_details 'autoheader' ;; automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" + echo "You should only need it if you modified $automake_deps or" echo "$configure_deps." - program_details 'aclocal' ;; - autom4te*) + autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' + ;; + autoreconf*) + echo "You should only need it if you modified $aclocal_deps or" + echo "$automake_deps or $autoheader_deps or $automake_deps or" + echo "$configure_deps." ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." @@ -189,6 +203,12 @@ echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; + perl*) + echo "You should only need it to run GNU Autoconf, GNU Automake, " + echo " assorted other tools, or if you modified a Perl source file." + echo "You may want to install the Perl 5 language interpreter:" + echo "<$perl_URL>" + ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" @@ -197,6 +217,7 @@ echo "case some other package contains this missing '$1' program." ;; esac + program_details "$normalized_program" } give_advice "$1" | sed -e '1s/^/WARNING: /' \ @@ -207,9 +228,9 @@ exit $st # Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/setxkbmap-1.3.4/setxkbmap.c new/setxkbmap-1.3.5/setxkbmap.c --- old/setxkbmap-1.3.4/setxkbmap.c 2023-05-15 03:58:23.000000000 +0200 +++ new/setxkbmap-1.3.5/setxkbmap.c 2026-03-29 00:40:35.000000000 +0100 @@ -244,26 +244,26 @@ "Usage: %s [options] [<layout> [<variant> [<option> ... ]]]\n" "Options:\n" " -?, -help Print this message\n" - " -compat <name> Specifies compatibility map component name\n" - " -config <file> Specifies configuration file to use\n" - " -device <deviceid> Specifies the device ID to use\n" - " -display <dpy> Specifies display to use\n" - " -geometry <name> Specifies geometry component name\n" - " -I <dir> Add <dir> to list of directories to be used\n" - " -keycodes <name> Specifies keycodes component name\n" - " -keymap <name> Specifies name of keymap to load\n" - " -layout <name> Specifies layout used to choose component names\n" - " -model <name> Specifies model used to choose component names\n" - " -option <name> Adds an option used to choose component names\n" + " -compat <name> Specify compatibility map component name\n" + " -config <file> Specify configuration file to use\n" + " -device <deviceid> Specify the device ID to use\n" + " -display <display> Specify display to use\n" + " -geometry <name> Specify geometry component name\n" + " -I <directory> Add <directory> to list of directories to be used\n" + " -keycodes <name> Specify keycodes component name\n" + " -keymap <name> Specify name of keymap to load\n" + " -layout <name> Specify layout used to choose component names\n" + " -model <name> Specify model used to choose component names\n" + " -option <name> Add an option used to choose component names\n" " -print Print a complete xkb_keymap description and exit\n" " -query Print the current layout settings and exit\n" - " -rules <name> Name of rules file to use\n" - " -symbols <name> Specifies symbols component name\n" + " -rules <name> Specify name of rules file to use\n" + " -symbols <name> Specify symbols component name\n" " -synch Synchronize request with X server\n" - " -types <name> Specifies types component name\n" - " -v[erbose] [<lvl>] Sets verbosity (1..10); higher values yield more messages\n" - " -version Print the program's version number\n" - " -variant <name> Specifies layout variant used to choose component names\n", + " -types <name> Specify types component name\n" + " -variant <name> Specify layout variant used to choose component names\n" + " -v[erbose] [<lvl>] Set verbosity (1..10); higher values yield more messages\n" + " -version Print the program's version number\n", argv[0] ); }
