Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xwd for openSUSE:Factory checked in at 2026-07-13 14:28:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xwd (Old) and /work/SRC/openSUSE:Factory/.xwd.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xwd" Mon Jul 13 14:28:48 2026 rev:10 rq:1365281 version:1.0.10 Changes: -------- --- /work/SRC/openSUSE:Factory/xwd/xwd.changes 2023-06-11 19:57:37.260006641 +0200 +++ /work/SRC/openSUSE:Factory/.xwd.new.1991/xwd.changes 2026-07-13 14:29:15.609864617 +0200 @@ -1,0 +2,11 @@ +Mon Jul 13 09:44:22 UTC 2026 - Stefan Dirsch <[email protected]> + +- Update to version 1.0.10 + * Improve man page formatting + * man page: fix warnings from `mandoc -T lint` + * gitlab CI: drop the ci-fairy check-mr job + * Check for malloc failures + * meson: Add option to build with meson +- Switch to meson build + +------------------------------------------------------------------- Old: ---- xwd-1.0.9.tar.xz New: ---- xwd-1.0.10.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xwd.spec ++++++ --- /var/tmp/diff_new_pack.OMSzCK/_old 2026-07-13 14:29:16.289887864 +0200 +++ /var/tmp/diff_new_pack.OMSzCK/_new 2026-07-13 14:29:16.293888000 +0200 @@ -1,7 +1,7 @@ # # spec file for package xwd # -# 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,21 +17,21 @@ Name: xwd -Version: 1.0.9 +Version: 1.0.10 Release: 0 Summary: Utility to dump an image of an X window License: MIT Group: System/X11/Utilities -URL: http://xorg.freedesktop.org/ -Source0: http://xorg.freedesktop.org/releases/individual/app/%{name}-%{version}.tar.xz -BuildRequires: pkg-config +URL: https://xorg.freedesktop.org/ +Source0: https://xorg.freedesktop.org/releases/individual/app/%{name}-%{version}.tar.xz +BuildRequires: meson >= 1.1.0 +BuildRequires: ninja +BuildRequires: pkgconfig BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xkbfile) -BuildRequires: pkgconfig(xorg-macros) >= 1.8 -BuildRequires: pkgconfig(xproto) >= 7.0.17 +BuildRequires: pkgconfig(xproto) >= 7.0.25 # This was part of the xorg-x11 package up to version 7.6 Conflicts: xorg-x11 <= 7.6 -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Xwd is an X Window System window dumping utility. It allows X users to @@ -43,15 +43,15 @@ %setup -q %build -%configure -make %{?_smp_mflags} +%meson +%meson_build %install -%make_install +%meson_install %files -%defattr(-,root,root) -%doc ChangeLog COPYING README.md +%license COPYING +%doc ChangeLog README.md %{_bindir}/xwd %{_mandir}/man1/xwd.1%{?ext_man} ++++++ xwd-1.0.9.tar.xz -> xwd-1.0.10.tar.xz ++++++ ++++ 14342 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/xwd-1.0.9/ChangeLog new/xwd-1.0.10/ChangeLog --- old/xwd-1.0.9/ChangeLog 2023-06-03 19:26:54.000000000 +0200 +++ new/xwd-1.0.10/ChangeLog 2026-07-12 02:56:12.000000000 +0200 @@ -1,3 +1,92 @@ +commit f702eb03b6a5553f3da3a5db636234f5b38ec464 +Author: Alan Coopersmith <[email protected]> +Date: Sat Jul 11 17:53:07 2026 -0700 + + xwd 1.0.10 + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit 6ba79a7a49daca895439bcf166095542ea7db107 +Author: Alan Coopersmith <[email protected]> +Date: Sun May 17 14:06:20 2026 -0700 + + 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/xwd/-/merge_requests/8> + +commit 10cad26f344239b7d0c1663503b0e4deae6d7869 +Author: Alan Coopersmith <[email protected]> +Date: Sun May 17 12:39:19 2026 -0700 + + Check for malloc failures + + Clears 6 -Wanalyzer-possible-null-dereference warnings from gcc 15.2.0 + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/xwd/-/merge_requests/8> + +commit 3d31cff54b318f60fb59b3ba7fcbee18e68602e9 +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/xwd/-/merge_requests/8> + +commit 0ea6b315b72696af2540b0cd02b6b386af61ba39 +Author: Alan Coopersmith <[email protected]> +Date: Sat May 31 13:17:46 2025 -0700 + + man page: fix warnings from `mandoc -T lint` + + mandoc: xwd.1:76:81: STYLE: input text line longer than 80 bytes: It selects \[lq]XY\[... + mandoc: xwd.1:25:11: WARNING: cannot parse date, using it verbatim: TH xwd 1.0.9 + mandoc: xwd.1:35:2: WARNING: skipping paragraph macro: PP after SH + mandoc: xwd.1:46:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:50:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:55:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:59:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:66:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:72:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:77:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:81:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:86:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:92:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:98:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:104:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:110:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:119:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:124:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:131:2: WARNING: skipping paragraph macro: PP empty + mandoc: xwd.1:136:2: WARNING: skipping paragraph macro: PP empty + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/xwd/-/merge_requests/7> + +commit 46b33f96f3f1943c0d6a70f0966e97250dcbee15 +Author: Alan Coopersmith <[email protected]> +Date: Sat Apr 12 14:52:12 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/xwd/-/merge_requests/6> + commit a6663cdafe97e3e7a1c60d03fc576dfe62b20d88 Author: Alan Coopersmith <[email protected]> Date: Sat Jun 3 10:23:24 2023 -0700 @@ -181,7 +270,7 @@ Signed-off-by: Alan Coopersmith <[email protected]> commit bab5bb9bbcb7e7424ec3276f6d74ca1a7dfa863f -Author: Stéphane Aulery <[email protected]> +Author: Stéphane Aulery <[email protected]> Date: Sun Jul 7 03:03:59 2013 +0200 Ensure consistency between the manpage and the output of the -help option @@ -423,7 +512,7 @@ Signed-off-by: Jeremy Huddleston <[email protected]> commit 7d88d8ab44b17247753f7225a1d8133d55d8423e -Author: Pär Lidberg <[email protected]> +Author: Pär Lidberg <[email protected]> Date: Mon Oct 3 00:24:06 2011 -0700 Fix LP64 bug @@ -831,7 +920,7 @@ configure cache, you cache it, and the cached value is probably wrong. commit 504daf4567c93ac5ec425ab122cd88f29089ea7d -Author: Søren Sandmann Pedersen <[email protected]> +Author: Søren Sandmann Pedersen <[email protected]> Date: Fri Jul 8 20:59:16 2005 +0000 Add build system for xwd 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/xwd-1.0.9/Makefile.am new/xwd-1.0.10/Makefile.am --- old/xwd-1.0.9/Makefile.am 2023-06-03 19:26:44.000000000 +0200 +++ new/xwd-1.0.10/Makefile.am 2026-07-12 02:56:01.000000000 +0200 @@ -49,4 +49,4 @@ dist-hook: ChangeLog INSTALL -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/xwd-1.0.9/compile new/xwd-1.0.10/compile --- old/xwd-1.0.9/compile 2023-06-03 19:26:48.000000000 +0200 +++ new/xwd-1.0.10/compile 2026-07-12 02:56:06.000000000 +0200 @@ -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/xwd-1.0.9/config.h.in new/xwd-1.0.10/config.h.in --- old/xwd-1.0.9/config.h.in 2023-06-03 19:26:47.000000000 +0200 +++ new/xwd-1.0.10/config.h.in 2026-07-12 02:56:05.000000000 +0200 @@ -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/xwd-1.0.9/configure.ac new/xwd-1.0.10/configure.ac --- old/xwd-1.0.9/configure.ac 2023-06-03 19:26:44.000000000 +0200 +++ new/xwd-1.0.10/configure.ac 2026-07-12 02:56:01.000000000 +0200 @@ -23,8 +23,8 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([xwd], [1.0.9], - [https://gitlab.freedesktop.org/xorg/app/xwd/issues], [xwd]) +AC_INIT([xwd], [1.0.10], + [https://gitlab.freedesktop.org/xorg/app/xwd/-/issues], [xwd]) 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/xwd-1.0.9/man/xwd.man new/xwd-1.0.10/man/xwd.man --- old/xwd-1.0.9/man/xwd.man 2023-06-03 19:26:44.000000000 +0200 +++ new/xwd-1.0.10/man/xwd.man 2026-07-12 02:56:01.000000000 +0200 @@ -22,118 +22,108 @@ .\" other dealings in this Software without prior written authorization .\" from The Open Group. .\" -.TH XWD 1 __xorgversion__ +.TH XWD 1 2025-04-12 __xorgversion__ .SH NAME xwd - dump an image of an X window .SH SYNOPSIS -.B "xwd" -[-debug] [-help] [-nobdrs] [-out \fIfile\fP] [-xy] [-frame] [-add \fIvalue\fP] -[-root | -id \fIwdid\fP | -name \fIwdname\fP ] [-icmap] [-screen] [-silent] -[-display \fIhost:dpy\fP] [-version] +.nf +\fBxwd\fP [\fB\-debug\fP] [\fB\-help\fP] [\fB\-nobdrs\fP] [\fB\-out\fP \fIfile\fP] [\fB\-xy\fP] [\fB\-frame\fP] [\fB\-add\fP \fIvalue\fP] + [\fB\-root\fP | \fB\-id\fP \fIwdid\fP | \fB\-name\fP \fIwdname\fP] [\fB\-icmap\fP] [\fB\-screen\fP] [\fB\-silent\fP] + [\fB\-display\fP \fIhost:dpy\fP] [\fB\-version\fP] +.fi .SH DESCRIPTION -.PP -.I Xwd +.B Xwd is an X Window System window dumping utility. -.I Xwd -allows X users to store window images in a specially formatted dump -file. This file can then be read by various other X utilities for +.B Xwd +allows X users to store window images in a specially formatted dump file. +This file can then be read by various other X utilities for redisplay, printing, editing, formatting, archiving, image processing, etc. The target window is selected by clicking the pointer in the desired window. The keyboard bell is rung once at the beginning of the dump and twice when the dump is completed. .SH OPTIONS -.PP .TP 8 -.B "-debug" +.B "\-debug" Enable debug mode. -.PP .TP 8 -.B "-d, -display \fIhost:dpy\fP" -This argument allows you to specify the server to connect to; see \fIX(__miscmansuffix__)\fP. -.PP +.B "\-d, \-display \fIhost:dpy\fP" +This argument allows you to specify the server to connect to; see +.BR X (__miscmansuffix__). .TP 8 -.B "-help" -Print out the `Usage:' command syntax summary. -.PP +.B "\-help" +Print out the \[lq]Usage:\[rq] command syntax summary. .TP 8 -.B "-nobdrs" +.B "\-nobdrs" This argument specifies that the window dump should not include the -pixels that compose the X window border. This is useful in situations -where you may wish to include the window contents in a document -as an illustration. -.PP +pixels that compose the X window border. +This is useful in situations where you may wish to include the +window contents in a document as an illustration. .TP 8 -.B "-out \fIfile\fP" +.B "\-out \fIfile\fP" This argument allows the user to explicitly specify the output -file on the command line. The default is to output to standard out. -.PP +file on the command line. +The default is to output to standard out. .TP 8 -.B "-xy" -This option applies to color displays only. It selects `XY' format dumping -instead of the default `Z' format. -.PP +.B "\-xy" +This option applies to color displays only. +It selects \[lq]XY\[rq] format dumping instead of +the default \[lq]Z\[rq] format. .TP 8 -.B "-add \fIvalue\fP" +.B "\-add \fIvalue\fP" This option specifies a signed value to be added to every pixel. -.PP .TP 8 -.B "-frame" +.B "\-frame" This option indicates that the window manager frame should be included when manually selecting a window. -.PP .TP 8 -.B "-root" -This option indicates that the root window should be selected for the -window dump, without requiring the user to select a window with the pointer. -.PP +.B "\-root" +This option indicates that the root window +should be selected for the window dump, +without requiring the user to select a window with the pointer. .TP 8 -.B "-id \fIwdid\fP" +.B "\-id \fIwdid\fP" This option indicates that the window with the specified resource id -should be selected for the window dump, without requiring the user to -select a window with the pointer. -.PP +should be selected for the window dump, +without requiring the user to select a window with the pointer. .TP 8 -.B "-name \fIwdname\fP" +.B "\-name \fIwdname\fP" This option indicates that the window with the specified WM_NAME property -should be selected for the window dump, without requiring the user to -select a window with the pointer. -.PP +should be selected for the window dump, +without requiring the user to select a window with the pointer. .TP 8 -.B "-icmap" +.B "\-icmap" Normally the colormap of the chosen window is used to obtain RGB values. This option forces the first installed colormap of the screen to be used instead. -.PP .TP 8 -.B "-screen" +.B "\-screen" This option indicates that the GetImage request used to obtain the image -should be done on the root window, rather than directly on the specified -window. In this way, you can obtain pieces of other windows that overlap +should be done on the root window, +rather than directly on the specified window. +In this way, you can obtain pieces of other windows that overlap the specified window, and more importantly, you can capture menus or other popups that are independent windows but appear over the specified window. -.PP .TP 8 -.B "-silent" -Operate silently, i.e. don't ring any bells before and after dumping +.B "\-silent" +Operate silently, i.e., don't ring any bells before and after dumping the window. -.PP .TP 8 -.B "-version" +.B "\-version" This option indicates that -.I xwd +.B xwd should print its version information and exit. .SH ENVIRONMENT -.PP .TP 8 .B DISPLAY To get default host and display number. .SH FILES -.PP .TP 8 .B XWDFile.h X Window Dump File format definition file. .SH SEE ALSO -xwud(__appmansuffix__), X(__miscmansuffix__) +.BR xpr (__appmansuffix__), +.BR xwud (__appmansuffix__), +.BR X (__miscmansuffix__) .SH AUTHORS Tony Della Fera, Digital Equipment Corp., MIT Project Athena .br 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/xwd-1.0.9/meson.build new/xwd-1.0.10/meson.build --- old/xwd-1.0.9/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/xwd-1.0.10/meson.build 2026-07-12 02:56:01.000000000 +0200 @@ -0,0 +1,96 @@ +# SPDX-License-Identifier: MIT +# +# Copyright (c) 2026, 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( + 'xwd', + 'c', + version: '1.0.10', + license: 'MIT-open-group AND HPND-sell-variant', + license_files: 'COPYING', + meson_version: '>= 1.1.0', +) + +conf = configuration_data() +package_string = ' '.join(meson.project_name(), meson.project_version()) +conf.set_quoted('PACKAGE_STRING', package_string) + +cc = meson.get_compiler('c') + +# Replacement for XORG_DEFAULT_OPTIONS +if cc.has_argument('-fno-strict-aliasing') + add_project_arguments('-fno-strict-aliasing', language: 'c') +endif + +# Optional dependencies +dep_xkbfile = dependency('xkbfile', required: get_option('xkb')) +conf.set('XKB', dep_xkbfile.found() ? '1' : false, + description: 'Define to use XkbStdBell') + +# Checks for pkg-config packages +dep_libx11 = dependency('x11', required: true) +dep_xproto = dependency('xproto', required: true, version: '>= 7.0.25') +deps = [dep_xkbfile, dep_libx11, dep_xproto] + +config_h = configure_file(output: 'config.h', configuration: conf) +add_project_arguments('-DHAVE_CONFIG_H', language: ['c']) + +xwd_sources = [ + 'clientwin.c', + 'clientwin.h', + 'dsimple.c', + 'dsimple.h', + 'list.c', + 'list.h', + 'multiVis.c', + 'multiVis.h', + 'wsutils.h', + 'xwd.c', +] + +executable( + 'xwd', + xwd_sources, + dependencies: deps, + install: true, +) + +# Man page +prog_sed = find_program('sed') + +custom_target( + 'xwd.man', + input: 'man/xwd.man', + output: 'xwd.1', + command: [ + prog_sed, + '-e', f's/__xorgversion__/"@package_string@" "X Version 11"/', + '-e', 's/__appmansuffix__/1/g', + '-e', 's/__miscmansuffix__/7/g', + '@INPUT@', + ], + capture: true, + install: true, + install_dir: get_option('mandir') / 'man1', + install_tag: 'man', +) 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/xwd-1.0.9/meson.options new/xwd-1.0.10/meson.options --- old/xwd-1.0.9/meson.options 1970-01-01 01:00:00.000000000 +0100 +++ new/xwd-1.0.10/meson.options 2026-07-12 02:56:01.000000000 +0200 @@ -0,0 +1,6 @@ +option( + 'xkb', + type: 'feature', + value : 'enabled', + description: 'Use XKB to sound bells (default is enabled)', +) 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/xwd-1.0.9/missing new/xwd-1.0.10/missing --- old/xwd-1.0.9/missing 2023-06-03 19:26:48.000000000 +0200 +++ new/xwd-1.0.10/missing 2026-07-12 02:56:06.000000000 +0200 @@ -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/xwd-1.0.9/multiVis.c new/xwd-1.0.10/multiVis.c --- old/xwd-1.0.9/multiVis.c 2023-06-03 19:26:44.000000000 +0200 +++ new/xwd-1.0.10/multiVis.c 2026-07-12 02:56:01.000000000 +0200 @@ -154,6 +154,11 @@ ncolors = (unsigned) src_vis->map_entries; *src_colors = colors = calloc(ncolors, sizeof(XColor)); + if (colors == NULL) { + perror("xwd"); + exit(1); + } + if (src_vis->class != TrueColor && src_vis->class != DirectColor) { for (unsigned int i = 0; i < ncolors; i++) { colors[i].pixel = i; @@ -340,7 +345,7 @@ XRectangle bbox, /* bounding box of grabbed area */ list_ptr regions) /* list of regions to read from */ { - int datalen; + unsigned int datamul; XImage *reg_image, *ximage; int bytes_per_line; @@ -349,11 +354,14 @@ 8, 0); bytes_per_line = ximage->bytes_per_line; - datalen = height * bytes_per_line; + datamul = height; if (format != ZPixmap) - datalen *= depth; - ximage->data = malloc(datalen); - memset(ximage->data, 0, datalen); + datamul *= depth; + ximage->data = calloc(datamul, bytes_per_line); + if (ximage->data == NULL) { + perror("xwd"); + exit(1); + } ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/ @@ -1060,6 +1068,8 @@ *numImageVisuals = 0; nImageVisualsAlloced = 1; pIVis = *pImageVisuals = malloc(sizeof(XVisualInfo *)); + if (pIVis == NULL) + return (1); while (--nVisuals >= 0) { int nOVisuals = *numOverlayVisuals; OverlayInfo *pOVis = *pOverlayVisuals; 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/xwd-1.0.9/xwd.c new/xwd-1.0.10/xwd.c --- old/xwd-1.0.9/xwd.c 2023-06-03 19:26:44.000000000 +0200 +++ new/xwd-1.0.10/xwd.c 2026-07-12 02:56:01.000000000 +0200 @@ -248,6 +248,10 @@ XColor *tcol; *colors = tcol = malloc(sizeof(XColor) * ncolors); + if (tcol == NULL) { + perror("xwd"); + exit(1); + } for (i = 0; i < ncolors; i++) { tcol[i].pixel = i << 16 | i << 8 | i;
