Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package wmutils for openSUSE:Factory checked 
in at 2026-09-17 17:09:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wmutils (Old)
 and      /work/SRC/openSUSE:Factory/.wmutils.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wmutils"

Thu Sep 17 17:09:48 2026 rev:4 rq:1378616 version:1.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/wmutils/wmutils.changes  2024-02-21 
17:57:26.861540875 +0100
+++ /work/SRC/openSUSE:Factory/.wmutils.new.383539/wmutils.changes      
2026-09-17 17:09:50.497337788 +0200
@@ -1,0 +2,13 @@
+Wed Sep 16 20:28:10 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 1.7:
+  * New tools: atomx (get/set/delete X atoms) and pdw (print
+    decoration window)
+  * atomx: multiple windows, more atom types, no atom name in
+    output, arg-count segfault fix
+  * Add atomx(1) and pdw(1) manpages
+- Rebase wmutils-cflags.patch and wmutils-conflict.patch
+- Install pdw.1, omitted from upstream man/Makefile
+- Add gcc and make BuildRequires; drop Group; use %make_build
+
+-------------------------------------------------------------------

Old:
----
  wmutils-1.5.tar.gz

New:
----
  wmutils-1.7.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ wmutils.spec ++++++
--- /var/tmp/diff_new_pack.sM4mFA/_old  2026-09-17 17:09:51.243369108 +0200
+++ /var/tmp/diff_new_pack.sM4mFA/_new  2026-09-17 17:09:51.245369192 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package wmutils
 #
-# Copyright (c) 2021 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,17 +17,18 @@
 
 
 Name:           wmutils
-Version:        1.5
+Version:        1.7
 Release:        0
 Summary:        Set of tools for X windows manipulation
 License:        ISC
-Group:          System/X11/Utilities
 URL:            https://github.com/wmutils/core
 Source:         
https://github.com/%{name}/core/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
 # PATCH-FIX-OPENSUSE wmutils-cflags.patch fixes spurious "compiled without 
$RPM_OPT_FLAGS" warning -- [email protected]
 Patch0:         wmutils-cflags.patch
 # PATCH-FIX-OPENSUSE wmutils-conflict.patch fixes conflict with wtf from 
bsd-games -- [email protected]
 Patch1:         wmutils-conflict.patch
+BuildRequires:  gcc
+BuildRequires:  make
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(xcb)
 BuildRequires:  pkgconfig(xcb-cursor)
@@ -41,22 +42,26 @@
 %autosetup -p1 -n core-%{version}
 
 %build
-make %{?_smp_mflags}
+%make_build
 
 %install
 %make_install \
   PREFIX=%{_prefix}    \
   MANPREFIX=%{_mandir}
+# v1.7 ships man/pdw.1 but omits it from man/Makefile
+install -m 0644 man/pdw.1 %{buildroot}%{_mandir}/man1/pdw.1
 
 %files
 %license LICENSE
 %doc README.md
+%{_bindir}/atomx
 %{_bindir}/chwb
 %{_bindir}/chwso
 %{_bindir}/ignw
 %{_bindir}/killw
 %{_bindir}/lsw
 %{_bindir}/mapw
+%{_bindir}/pdw
 %{_bindir}/pfw
 %{_bindir}/slw
 %{_bindir}/wattr
@@ -65,19 +70,21 @@
 %{_bindir}/wm_wtf
 %{_bindir}/wrs
 %{_bindir}/wtp
-%{_mandir}/man1/chwb.1%{ext_man}
-%{_mandir}/man1/chwso.1%{ext_man}
-%{_mandir}/man1/ignw.1%{ext_man}
-%{_mandir}/man1/killw.1%{ext_man}
-%{_mandir}/man1/lsw.1%{ext_man}
-%{_mandir}/man1/mapw.1%{ext_man}
-%{_mandir}/man1/pfw.1%{ext_man}
+%{_mandir}/man1/atomx.1%{?ext_man}
+%{_mandir}/man1/chwb.1%{?ext_man}
+%{_mandir}/man1/chwso.1%{?ext_man}
+%{_mandir}/man1/ignw.1%{?ext_man}
+%{_mandir}/man1/killw.1%{?ext_man}
+%{_mandir}/man1/lsw.1%{?ext_man}
+%{_mandir}/man1/mapw.1%{?ext_man}
+%{_mandir}/man1/pdw.1%{?ext_man}
+%{_mandir}/man1/pfw.1%{?ext_man}
 %{_mandir}/man1/slw.1%{?ext_man}
-%{_mandir}/man1/wattr.1%{ext_man}
-%{_mandir}/man1/wmp.1%{ext_man}
-%{_mandir}/man1/wmutils.1%{ext_man}
-%{_mandir}/man1/wmv.1%{ext_man}
-%{_mandir}/man1/wm_wtf.1%{ext_man}
-%{_mandir}/man1/wrs.1%{ext_man}
-%{_mandir}/man1/wtp.1%{ext_man}
+%{_mandir}/man1/wattr.1%{?ext_man}
+%{_mandir}/man1/wmp.1%{?ext_man}
+%{_mandir}/man1/wmutils.1%{?ext_man}
+%{_mandir}/man1/wmv.1%{?ext_man}
+%{_mandir}/man1/wm_wtf.1%{?ext_man}
+%{_mandir}/man1/wrs.1%{?ext_man}
+%{_mandir}/man1/wtp.1%{?ext_man}
 

++++++ wmutils-1.5.tar.gz -> wmutils-1.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/Makefile new/core-1.7/Makefile
--- old/core-1.5/Makefile       2019-10-14 12:31:31.000000000 +0200
+++ new/core-1.7/Makefile       2022-07-01 22:47:48.000000000 +0200
@@ -3,6 +3,7 @@
 HDR = arg.h util.h
 SRC =           \
        pfw.c   \
+       pdw.c   \
        lsw.c   \
        mapw.c  \
        killw.c \
@@ -15,7 +16,8 @@
        chwb.c  \
        ignw.c  \
        wmp.c   \
-       slw.c
+       slw.c   \
+       atomx.c
 
 OBJ = $(SRC:.c=.o)
 BIN = $(SRC:.c=)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/README.md new/core-1.7/README.md
--- old/core-1.5/README.md      2019-10-14 12:31:31.000000000 +0200
+++ new/core-1.7/README.md      2022-07-01 22:47:48.000000000 +0200
@@ -28,9 +28,6 @@
 utilities
 ---------
 
-Here are the tools. This project is quite young, new tools can arrive
-without being added to this list, so take it with a grain of salt.
-
 * chwb  - change window's border
 * chwso - change window's stacking order
 * ignw  - ignore/unignore window
@@ -38,6 +35,7 @@
 * lsw   - list windows
 * mapw  - map/unmap windows
 * pfw   - print focused window
+* pdw   - print decoration window
 * slw   - select window interactively
 * wattr - show window's attributes
 * wmp   - move the mouse pointer
@@ -45,6 +43,7 @@
 * wrs   - resize a window
 * wtf   - focus a window
 * wtp   - teleport a window
+* atomx - modify atoms on a window
 
 All these tools come with a manpage ! read them for further informations.
 
@@ -67,7 +66,7 @@
     $ make
     # make install
 
-Here are the varialbes you can override, along with their default values:
+Here are the variables you can override, along with their default values:
 
     CC         =  cc
     LD         =  $(CC)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/atomx.c new/core-1.7/atomx.c
--- old/core-1.5/atomx.c        1970-01-01 01:00:00.000000000 +0100
+++ new/core-1.7/atomx.c        2022-07-01 22:47:48.000000000 +0200
@@ -0,0 +1,145 @@
+/* See LICENSE file for copyright and license details. */
+
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <xcb/xcb.h>
+#include <xcb/xcb_aux.h>
+
+#include "util.h"
+#include "arg.h"
+
+#define MAXLEN 512
+
+static xcb_connection_t *conn;
+
+void
+usage(char *name)
+{
+       fprintf(stderr, "%s [-d] atom[=value] wid\n", name);
+}
+
+xcb_atom_t
+add_atom(xcb_atom_t type, char *name, size_t len)
+{
+       xcb_atom_t atom;
+       xcb_intern_atom_cookie_t c;
+       xcb_intern_atom_reply_t *r;
+
+       c = xcb_intern_atom(conn, 0, len, name);
+       r = xcb_intern_atom_reply(conn, c, NULL);
+       if (!r)
+               return 0;
+
+       atom = r->atom;
+       free(r);
+
+       return atom;
+}
+
+int
+set_atom(xcb_window_t wid, xcb_atom_t atom, xcb_atom_t type, size_t len, void 
*data)
+{
+       int errcode;
+       xcb_void_cookie_t c;
+       xcb_generic_error_t *e;
+
+       c = xcb_change_property_checked(conn, XCB_PROP_MODE_REPLACE,
+               wid, atom, type, 8, len, data);
+       e = xcb_request_check(conn, c);
+       if (!e)
+               return 0;
+
+       errcode = e->error_code;
+       free(e);
+
+       return errcode;
+}
+
+int
+get_atom(xcb_window_t wid, xcb_atom_t atom, char *data, xcb_atom_t *type)
+{
+       size_t n;
+       xcb_get_property_cookie_t c;
+       xcb_get_property_reply_t *r;
+
+       c = xcb_get_property(conn, 0, wid, atom, XCB_ATOM_ANY, 0, MAXLEN);
+       r = xcb_get_property_reply(conn, c, NULL);
+       if (!r)
+               return -1;
+
+       if (!(n = xcb_get_property_value_length(r))) {
+               free(r);
+               return -1;
+       }
+
+       strncpy(data, xcb_get_property_value(r), n);
+       data[n] = 0;
+
+       *type = r->type;
+
+       free(r);
+
+       return 0;
+}
+
+
+int
+main(int argc, char **argv)
+{
+       int i, dflag = 0;
+       char *key, *val, *argv0;
+       char data[MAXLEN];
+       xcb_window_t wid;
+       xcb_atom_t atom;
+
+       ARGBEGIN {
+       case 'd':
+               dflag = 1;
+               break;
+       default:
+               usage(argv0);
+               return -1;
+       } ARGEND;
+
+       if (argc < 1)
+               return -1;
+
+       key = strtok(argv[0], "=");
+       val = strtok(NULL, "=");
+
+       init_xcb(&conn);
+
+       for (i = 0; i < argc - 1; i++) {
+               wid = strtoul(argv[i+1], NULL, 16);
+
+               /* retrieve atom ID from server */
+               atom = add_atom(XCB_ATOM_STRING, key, strlen(key));
+               if (!atom)
+                       return -1;
+
+               /* set property on window (must be a string) */
+               if (val)
+                       set_atom(wid, atom, XCB_ATOM_STRING, strlen(val), val);
+
+               /* remove property from window */
+               if (dflag)
+                       xcb_delete_property(conn, wid, atom);
+
+               /* retrieve and print atom value to stdout */
+               xcb_atom_t type;
+               if (!get_atom(wid, atom, data, &type))
+                       switch (type) {
+                               case XCB_ATOM_INTEGER:
+                                       printf("%d\n", *data);
+                                       break;
+                               default:
+                                       printf("%s\n", data);
+                       }
+       }
+
+       kill_xcb(&conn);
+
+       return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/man/Makefile new/core-1.7/man/Makefile
--- old/core-1.5/man/Makefile   2019-10-14 12:31:31.000000000 +0200
+++ new/core-1.7/man/Makefile   2022-07-01 22:47:48.000000000 +0200
@@ -15,6 +15,7 @@
        ignw.1  \
        wmp.1   \
        slw.1   \
+       atomx.1 \
        wmutils.1
 
 .POSIX:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/man/atomx.1 new/core-1.7/man/atomx.1
--- old/core-1.5/man/atomx.1    1970-01-01 01:00:00.000000000 +0100
+++ new/core-1.7/man/atomx.1    2022-07-01 22:47:48.000000000 +0200
@@ -0,0 +1,43 @@
+.Dd November 21, 2019
+.Dt ATOMX 1
+.Os wmutils
+.Sh NAME
+.Nm atomx
+.Nd manage X atoms on a window
+.Sh SYNOPSIS
+.Nm atomx
+.Op Fl d
+.Ar atom
+.Op Ar =value
+.Ar wid
+.Sh DESCRIPTION
+.Nm
+will print, add, change and remove X atoms on the window with ID
+.Ar wid .
+By default
+.Nm
+will print the value of the atom
+.Ar atom
+if it exists.
+.Pp
+To set an atom on a window, you must specify it as
+.Ar atom=value .
+.Bl -tag -width Ds
+.It Fl d
+Delete atom
+.Ar atom
+from the window.
+.Sh ENVIRONMENT
+.Nm
+acts on the X display specified by the
+.Ev DISPLAY
+variable.
+.Sh EXAMPLES
+Print value of property "WM_CLASS"
+.Dl $ atomx WM_CLASS 0x00e00005
+.Pp
+Change window name to "atomx"
+.Dl $ atomx WM_NAME=atomx 0x00e00005
+.Pp
+Delete property "IS_FULLSCREEN" on a window
+.Dl $ atomx -d IS_FULLSCREEN 0x00e00005
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/man/pdw.1 new/core-1.7/man/pdw.1
--- old/core-1.5/man/pdw.1      1970-01-01 01:00:00.000000000 +0100
+++ new/core-1.7/man/pdw.1      2022-07-01 22:47:48.000000000 +0200
@@ -0,0 +1,24 @@
+.Dd July 01, 2022
+.Dt PDW 1
+.Os wmutils
+.Sh NAME
+.Nm pdw
+.Nd print decoration window
+.Sh SYNOPSIS
+.Nm pdw
+.Op Ar wid
+.Sh DESCRIPTION
+Print the ID of the highest parent related to
+.Ar wid
+(or currently focused window when
+.Ar wid
+is omitted).
+.Pp
+In reparenting environments, this is usually the decoration window.
+.Sh ENVIRONMENT
+.Nm
+acts on the X display specified by the
+.Ev DISPLAY
+variable.
+.Sh SEE ALSO
+.Xr pfw 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/man/wmutils.1 new/core-1.7/man/wmutils.1
--- old/core-1.5/man/wmutils.1  2019-10-14 12:31:31.000000000 +0200
+++ new/core-1.7/man/wmutils.1  2022-07-01 22:47:48.000000000 +0200
@@ -23,6 +23,8 @@
 map/unmap windows
 .It pfw
 print focused window
+.It pdw
+print decoration window
 .It wattr
 show window's attributes
 .It wmp
@@ -35,6 +37,8 @@
 focus a window
 .It wtp
 teleport a window
+.It atomx
+modify atoms on a window
 .El
 .Sh ENVIRONMENT
 .Nm
@@ -49,10 +53,12 @@
 .Xr lsw 1 ,
 .Xr mapw 1 ,
 .Xr pfw 1 ,
+.Xr pdw 1 ,
 .Xr wattr 1 ,
 .Xr wmp 1 ,
 .Xr wmv 1 ,
 .Xr wname 1 ,
 .Xr wrs 1 ,
 .Xr wtf 1 ,
-.Xr wtp 1
+.Xr wtp 1 ,
+.Xr atomx 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/core-1.5/pdw.c new/core-1.7/pdw.c
--- old/core-1.5/pdw.c  1970-01-01 01:00:00.000000000 +0100
+++ new/core-1.7/pdw.c  2022-07-01 22:47:48.000000000 +0200
@@ -0,0 +1,81 @@
+/* See LICENSE file for copyright and license details. */
+
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <xcb/xcb.h>
+#include <xcb/xcb_aux.h>
+
+#include "util.h"
+
+static xcb_connection_t *conn;
+static xcb_screen_t *scrn;
+
+static void usage(char *);
+static xcb_window_t focus_window(void);
+static xcb_window_t parent(xcb_window_t);
+
+static void
+usage(char *name)
+{
+       fprintf(stderr, "usage: %s [wid]\n", name);
+       exit(1);
+}
+
+static xcb_window_t
+focus_window(void)
+{
+       xcb_window_t w = 0;
+       xcb_get_input_focus_cookie_t c;
+       xcb_get_input_focus_reply_t *r;
+
+       c = xcb_get_input_focus(conn);
+       r = xcb_get_input_focus_reply(conn, c, NULL);
+       if (r == NULL)
+               errx(1, "xcb_get_input_focus");
+
+       w = r->focus;
+       free(r);
+
+       if (w == XCB_NONE || w == XCB_INPUT_FOCUS_POINTER_ROOT)
+               errx(1, "focus not set");
+
+       return w;
+}
+
+static xcb_window_t
+parent(xcb_window_t w)
+{
+       xcb_query_tree_cookie_t c;
+       xcb_query_tree_reply_t *r;
+
+       c = xcb_query_tree(conn, w);
+       r = xcb_query_tree_reply(conn, c, NULL);
+       if (r == NULL)
+               errx(1, "failed to get parent");
+
+       w = (!r->parent || r->parent == scrn->root) ? w : parent(r->parent);
+       free(r);
+
+       return w;
+}
+
+int
+main(int argc, char **argv)
+{
+       xcb_window_t w;
+
+       if (argc > 2 || (argc > 1 && (!strncmp(argv[1], "-h", 2))))
+               usage(argv[0]);
+
+       init_xcb(&conn);
+       get_screen(conn, &scrn);
+
+       w = (argc > 1) ? strtoul(argv[1], NULL, 16) : focus_window();
+
+       printf("0x%08x\n", parent(w));
+
+       kill_xcb(&conn);
+       return 0;
+}

++++++ wmutils-cflags.patch ++++++
--- /var/tmp/diff_new_pack.sM4mFA/_old  2026-09-17 17:09:51.395375490 +0200
+++ /var/tmp/diff_new_pack.sM4mFA/_new  2026-09-17 17:09:51.401375742 +0200
@@ -1,8 +1,8 @@
-Index: core-1.4/Makefile
+Index: core-1.7/Makefile
 ===================================================================
---- core-1.4.orig/Makefile
-+++ core-1.4/Makefile
-@@ -30,12 +30,12 @@ binutils: $(BIN)
+--- core-1.7.orig/Makefile
++++ core-1.7/Makefile
+@@ -33,12 +33,12 @@ binutils: $(BIN)
  $(OBJ): $(HDR) util.o
  
  .o:

++++++ wmutils-conflict.patch ++++++
--- /var/tmp/diff_new_pack.sM4mFA/_old  2026-09-17 17:09:51.433377085 +0200
+++ /var/tmp/diff_new_pack.sM4mFA/_new  2026-09-17 17:09:51.439377337 +0200
@@ -1,8 +1,8 @@
-Index: core-1.5/Makefile
+Index: core-1.7/Makefile
 ===================================================================
---- core-1.5.orig/Makefile
-+++ core-1.5/Makefile
-@@ -40,6 +40,7 @@ $(OBJ): $(HDR) util.o
+--- core-1.7.orig/Makefile
++++ core-1.7/Makefile
+@@ -43,6 +43,7 @@ $(OBJ): $(HDR) util.o
  install: $(BIN)
        mkdir -p $(DESTDIR)$(PREFIX)/bin/
        cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin/
@@ -10,11 +10,11 @@
        cd man; $(MAKE) install
  
  uninstall:
-Index: core-1.5/man/Makefile
+Index: core-1.7/man/Makefile
 ===================================================================
---- core-1.5.orig/man/Makefile
-+++ core-1.5/man/Makefile
-@@ -21,6 +21,7 @@ MAN =           \
+--- core-1.7.orig/man/Makefile
++++ core-1.7/man/Makefile
+@@ -23,6 +23,7 @@ MAN =           \
  install: $(MAN)
        mkdir -p $(DESTDIR)$(MANPREFIX)/man1/
        cp -f $(MAN) $(DESTDIR)$(MANPREFIX)/man1/
@@ -22,30 +22,11 @@
  
  uninstall:
        @echo "uninstalling manpages"
-Index: core-1.5/man/wtf.1
+Index: core-1.7/man/wmutils.1
 ===================================================================
---- core-1.5.orig/man/wtf.1
-+++ core-1.5/man/wtf.1
-@@ -1,11 +1,11 @@
- .Dd December 13, 2014
--.Dt WTF 1
-+.Dt WM_WTF 1
- .Os wmutils
- .Sh NAME
--.Nm wtf
-+.Nm wm_wtf
- .Nd transfer window focus
- .Sh SYNOPSIS
--.Nm wtf
-+.Nm wm_wtf
- .Ar wid
- .Sh DESCRIPTION
- .Nm
-Index: core-1.5/man/wmutils.1
-===================================================================
---- core-1.5.orig/man/wmutils.1
-+++ core-1.5/man/wmutils.1
-@@ -29,10 +29,10 @@ show window's attributes
+--- core-1.7.orig/man/wmutils.1
++++ core-1.7/man/wmutils.1
+@@ -31,10 +31,10 @@ show window's attributes
  move the mouse pointer
  .It wmv
  move a window
@@ -57,12 +38,32 @@
 -focus a window
  .It wtp
  teleport a window
- .El
-@@ -54,5 +54,5 @@ variable.
+ .It atomx
+@@ -59,6 +59,6 @@ variable.
  .Xr wmv 1 ,
  .Xr wname 1 ,
  .Xr wrs 1 ,
 -.Xr wtf 1 ,
 +.Xr wm_wtf 1 ,
- .Xr wtp 1
+ .Xr wtp 1 ,
+ .Xr atomx 1
+Index: core-1.7/man/wtf.1
+===================================================================
+--- core-1.7.orig/man/wtf.1
++++ core-1.7/man/wtf.1
+@@ -1,11 +1,11 @@
+ .Dd December 13, 2014
+-.Dt WTF 1
++.Dt WM_WTF 1
+ .Os wmutils
+ .Sh NAME
+-.Nm wtf
++.Nm wm_wtf
+ .Nd transfer window focus
+ .Sh SYNOPSIS
+-.Nm wtf
++.Nm wm_wtf
+ .Ar wid
+ .Sh DESCRIPTION
+ .Nm
 

Reply via email to