Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package umockdev for openSUSE:Factory 
checked in at 2021-09-20 23:32:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umockdev (Old)
 and      /work/SRC/openSUSE:Factory/.umockdev.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "umockdev"

Mon Sep 20 23:32:57 2021 rev:5 rq:920069 version:0.16.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/umockdev/umockdev.changes        2021-09-13 
16:25:41.898825669 +0200
+++ /work/SRC/openSUSE:Factory/.umockdev.new.1899/umockdev.changes      
2021-09-20 23:34:31.871275720 +0200
@@ -1,0 +2,13 @@
+Wed Sep 15 08:15:19 UTC 2021 - Atri Bhattacharya <badshah...@gmail.com>
+
+- Update to version 0.16.3:
+  * Several pcap replay fixes.
+  * Immediately create "bus" and "class" directories in /sys to
+    fix udev enumerator (gh#martinpitt/umockdev#144).
+  * preload: Avoid some unaligned access to fix failure on sparc
+    (gh#martinpitt/umockdev#147).
+  * Fix build on Alpine.
+  * Don't build with -Werror by default; use meson setup --werror
+    to re-enable.
+
+-------------------------------------------------------------------

Old:
----
  umockdev-0.16.2.tar.xz

New:
----
  umockdev-0.16.3.tar.xz

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

Other differences:
------------------
++++++ umockdev.spec ++++++
--- /var/tmp/diff_new_pack.sfpGaY/_old  2021-09-20 23:34:32.263276205 +0200
+++ /var/tmp/diff_new_pack.sfpGaY/_new  2021-09-20 23:34:32.263276205 +0200
@@ -19,7 +19,7 @@
 %define shlib libumockdev0
 %define shlibpre libumockdev-preload0
 Name:           umockdev
-Version:        0.16.2
+Version:        0.16.3
 Release:        0
 Summary:        Mock hardware devices for creating unit tests and bug reporting
 License:        LGPL-2.1-or-later

++++++ umockdev-0.16.2.tar.xz -> umockdev-0.16.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/NEWS new/umockdev-0.16.3/NEWS
--- old/umockdev-0.16.2/NEWS    2021-08-25 11:26:23.118824700 +0200
+++ new/umockdev-0.16.3/NEWS    2021-09-15 07:38:31.155431500 +0200
@@ -1,3 +1,11 @@
+## [0.16.3] - 2021-09-15
+- Several pcap replay fixes (thanks Benjamin Berg)
+- Immediately create "bus" and "class" directories in /sys to fix udev 
enumerator
+  (thanks David Lechner) (#144)
+- preload: Avoid some unaligned access to fix failure on sparc (#147)
+- Fix build on Alpine
+- Don't build with `-Werror` by default; use `meson setup --werror` to 
re-enable
+
 ## [0.16.2] - 2021-08-25
 - Implement pcap control transfer replaying
 - Fix Coverity errors
@@ -30,8 +38,6 @@
 ## [0.15.2] - 2020-11-25
 - Fix "installed-tests" setup to not produce stderr output with grep ??? 3.5
 
-[0.15.2]: https://github.com/martinpitt/umockdev/compare/0.15.1...0.15.2
-
 ## [0.15.1] - 2020-11-17
 - Fix include file install location (#111)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/docs/reference/meson.build 
new/umockdev-0.16.3/docs/reference/meson.build
--- old/umockdev-0.16.2/docs/reference/meson.build      2021-08-25 
11:26:23.126824900 +0200
+++ new/umockdev-0.16.3/docs/reference/meson.build      2021-09-15 
07:38:31.167431600 +0200
@@ -3,18 +3,13 @@
   output: 'version.xml',
   configuration: conf)
 
-# HACK: need to find valac'ed umockdev.c for gtk-doc; 
https://github.com/mesonbuild/meson/issues/3892
-# this isn't predictable between meson versions
-umockdev_c = run_command('sh', '-ec', 'find -name umockdev.c| xargs 
dirname').stdout().strip()
-umockdev_ioctl_c = run_command('sh', '-ec', 'find -name umockdev-ioctl.c| 
xargs dirname').stdout().strip()
-
 gnome = import('gnome')
 gnome.gtkdoc('umockdev',
   main_xml: 'umockdev-docs.xml',
-  src_dir: [meson.build_root(), umockdev_c, umockdev_ioctl_c],
+  src_dir: [meson.build_root()],
   content_files: [version_xml],
+  gobject_typesfile: 'umockdev.types',
   ignore_headers: ['uevent_sender.h', 'ioctl_tree.h', 'debug.h'],
-  scan_args: ['--rebuild-types'],
   dependencies: [glib, gobject, declare_dependency(link_with : 
[umockdev_lib])],
   install: true,
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/docs/reference/umockdev.types 
new/umockdev-0.16.3/docs/reference/umockdev.types
--- old/umockdev-0.16.2/docs/reference/umockdev.types   1970-01-01 
01:00:00.000000000 +0100
+++ new/umockdev-0.16.3/docs/reference/umockdev.types   2021-09-15 
07:38:31.167431600 +0200
@@ -0,0 +1,4 @@
+umockdev_ioctl_base_get_type
+umockdev_ioctl_client_get_type
+umockdev_ioctl_data_get_type
+umockdev_testbed_get_type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/meson.build 
new/umockdev-0.16.3/meson.build
--- old/umockdev-0.16.2/meson.build     2021-08-25 11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/meson.build     2021-09-15 07:38:31.167431600 +0200
@@ -7,7 +7,6 @@
 lib_version = '0.3.0'
 
 add_project_arguments(
-  '-Werror',
   '-Werror=missing-prototypes',
   '-Werror=strict-prototypes',
   '-Werror=nested-externs',
@@ -21,11 +20,13 @@
   '-Werror=unused-variable',
   '-Werror=return-type',
   '-Werror=uninitialized',
+  # experimental: first check this on all Debian architectures
+  '-Wcast-align',
   language: 'c')
 
 # let's not clutter the code with too many #ifdefs
 if get_option('b_ndebug') == 'true'
-  add_project_arguments('-Wno-error=unused-but-set-variable', language: 'c')
+  add_project_arguments('-Wno-error=unused-but-set-variable', 
'-Wno-error=unused-variable', language: 'c')
 endif
 
 conf = configuration_data()
@@ -121,7 +122,9 @@
     '-Wl,--no-undefined',
     '-Wl,--version-script,@0@/umockdev.map'.format(srcdir),
   ],
-  vala_args: [ '--vapidir=@0@/src'.format(meson.current_source_dir()) ],
+  vala_args: ['--define=INTERNAL_REGISTER_API',
+              '--define=INTERNAL_UNREGISTER_PATH_API',
+              '--vapidir=@0@/src'.format(meson.current_source_dir())],
   include_directories: include_directories('src'),
   version: lib_version,
   install: true,
@@ -172,7 +175,9 @@
    'src/debug.c'],
   dependencies: [glib, gobject, gio_unix, vapi_posix, vapi_config, vapi_ioctl, 
libpcap],
   link_with: [umockdev_utils_lib],
-  vala_args: [ '--vapidir=@0@/src'.format(meson.current_source_dir()) ],
+  vala_args: ['--define=INTERNAL_REGISTER_API',
+              '--define=INTERNAL_UNREGISTER_ALL_API',
+              '--vapidir=@0@/src'.format(meson.current_source_dir())],
   include_directories: include_directories('src'),
   install: true)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/ioctl.vapi 
new/umockdev-0.16.3/src/ioctl.vapi
--- old/umockdev-0.16.2/src/ioctl.vapi  2021-08-25 11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/src/ioctl.vapi  2021-09-15 07:38:31.167431600 +0200
@@ -46,13 +46,13 @@
     [CCode (cheader_filename = "linux/usbdevice_fs.h")]
     public const int USBDEVFS_CAP_SUSPEND;
 
-    [CCode (cheader_filename = "sys/ioctl.h")]
+    [CCode (cheader_filename = "linux/ioctl.h")]
     public const int _IOC_SIZEBITS;
-    [CCode (cheader_filename = "sys/ioctl.h")]
+    [CCode (cheader_filename = "linux/ioctl.h")]
     public const int _IOC_SIZESHIFT;
-    [CCode (cheader_filename = "sys/ioctl.h")]
+    [CCode (cheader_filename = "linux/ioctl.h")]
     public const int _IOC_TYPEBITS;
-    [CCode (cheader_filename = "sys/ioctl.h")]
+    [CCode (cheader_filename = "linux/ioctl.h")]
     public const int _IOC_TYPESHIFT;
 
     [CCode (cname="struct usbdevfs_connectinfo", cheader_filename = 
"linux/usbdevice_fs.h")]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/ioctl_tree.c 
new/umockdev-0.16.3/src/ioctl_tree.c
--- old/umockdev-0.16.2/src/ioctl_tree.c        2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/src/ioctl_tree.c        2021-09-15 07:38:31.167431600 
+0200
@@ -31,6 +31,8 @@
 #define TRUE 1
 #define FALSE 0
 
+#define UNUSED __attribute__ ((unused))
+
 static void *
 callocx (size_t nmemb, size_t size)
 {
@@ -816,7 +818,7 @@
  ***********************************/
 
 static int
-ioctl_execute_success(const ioctl_tree * node, IOCTL_REQUEST_TYPE id, void 
*arg, int *ret)
+ioctl_execute_success(UNUSED const ioctl_tree * _node, UNUSED 
IOCTL_REQUEST_TYPE _id, UNUSED void *_arg, int *ret)
 {
     errno = 0;
     *ret = 0;
@@ -824,7 +826,7 @@
 }
 
 static int
-ioctl_execute_enodata(const ioctl_tree * node, IOCTL_REQUEST_TYPE id, void 
*arg, int *ret)
+ioctl_execute_enodata(UNUSED const ioctl_tree * _node, UNUSED 
IOCTL_REQUEST_TYPE _id, UNUSED void *_arg, int *ret)
 {
     errno = ENODATA;
     *ret = -1;
@@ -832,7 +834,7 @@
 }
 
 static int
-ioctl_execute_enotty(const ioctl_tree * node, IOCTL_REQUEST_TYPE id, void 
*arg, int *ret)
+ioctl_execute_enotty(UNUSED const ioctl_tree * _node, UNUSED 
IOCTL_REQUEST_TYPE _id, UNUSED void *_arg, int *ret)
 {
     errno = ENOTTY;
     *ret = -1;
@@ -840,7 +842,7 @@
 }
 
 static ioctl_tree *
-ioctl_insertion_parent_stateless(ioctl_tree * tree, ioctl_tree * node)
+ioctl_insertion_parent_stateless(ioctl_tree * tree, UNUSED ioctl_tree *_node)
 {
     return tree;
 }
@@ -956,7 +958,7 @@
     return NULL;
 }
 
-const int ioctl_data_size_by_id(IOCTL_REQUEST_TYPE id)
+int ioctl_data_size_by_id(IOCTL_REQUEST_TYPE id)
 {
     ioctl_type *cur;
     for (cur = ioctl_db; cur->name[0] != '\0'; ++cur)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/ioctl_tree.h 
new/umockdev-0.16.3/src/ioctl_tree.h
--- old/umockdev-0.16.2/src/ioctl_tree.h        2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/src/ioctl_tree.h        2021-09-15 07:38:31.167431600 
+0200
@@ -95,7 +95,7 @@
     return (t != NULL) ? t : tree;
 }
 
-const int ioctl_data_size_by_id(IOCTL_REQUEST_TYPE id);
+int ioctl_data_size_by_id(IOCTL_REQUEST_TYPE id);
 
 /* database of known ioctls; return NULL for unknown ones */
 const ioctl_type *ioctl_type_get_by_id(IOCTL_REQUEST_TYPE id);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/libumockdev-preload.c 
new/umockdev-0.16.3/src/libumockdev-preload.c
--- old/umockdev-0.16.2/src/libumockdev-preload.c       2021-08-25 
11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/src/libumockdev-preload.c       2021-09-15 
07:38:31.167431600 +0200
@@ -34,10 +34,11 @@
 #include <fcntl.h>
 #include <dlfcn.h>
 #include <limits.h>
-#include <stdlib.h>
 #include <stdarg.h>
-#include <string.h>
+#include <stddef.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <time.h>
 #include <signal.h>
 #include <inttypes.h>
@@ -199,14 +200,14 @@
     static char buf[PATH_MAX];
     static char link[PATH_MAX];
     int name_offset;
-    int i, major, minor, orig_errno;
+    int major, minor, orig_errno;
 
     name_offset = snprintf(buf, sizeof(buf), "%s/dev/.node/", 
getenv("UMOCKDEV_DIR"));
     buf[sizeof(buf) - 1] = 0;
 
     /* append nodename and replace / with _ */
     strncpy(buf + name_offset, nodename, sizeof(buf) - name_offset - 1);
-    for (i = name_offset; i < sizeof(buf); ++i)
+    for (size_t i = name_offset; i < sizeof(buf); ++i)
        if (buf[i] == '/')
            buf[i] = '_';
 
@@ -373,7 +374,7 @@
 }
 
 static int
-netlink_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
+netlink_bind(int sockfd)
 {
     libc_func(bind, int, int, const struct sockaddr *, socklen_t);
 
@@ -397,7 +398,7 @@
 }
 
 static void
-netlink_recvmsg(int sockfd, struct msghdr * msg, int flags, ssize_t ret)
+netlink_recvmsg(int sockfd, struct msghdr * msg, ssize_t ret)
 {
     struct cmsghdr *cmsg;
     struct sockaddr_nl *sender;
@@ -415,8 +416,9 @@
        /* fake sender credentials to be uid 0 */
        cmsg = CMSG_FIRSTHDR(msg);
        if (cmsg != NULL) {
-           struct ucred *cred = (struct ucred *)CMSG_DATA(cmsg);
-           cred->uid = 0;
+           const uid_t uid0 = 0;
+           /* don't cast into a struct ucred *, as that increases alignment 
requirement */
+           memcpy(CMSG_DATA(cmsg) + offsetof(struct ucred, uid), &uid0, sizeof 
uid0);
        }
     }
 }
@@ -895,7 +897,7 @@
 }
 
 static void
-script_record_connect(int sockfd, const struct sockaddr *addr, socklen_t 
addrlen, int res)
+script_record_connect(int sockfd, const struct sockaddr *addr, int res)
 {
     size_t i;
 
@@ -952,8 +954,6 @@
     unsigned long delta;
     libc_func(fwrite, size_t, const void *, size_t, size_t, FILE *);
     static char header[100];
-    const unsigned char *cur;
-    int i, r;
 
     if (!fd_map_get(&script_recorded_fds, fd, (const void **)&srinfo))
        return;
@@ -972,12 +972,13 @@
                if (srinfo->op != 0)
                    putc('\n', srinfo->log);
                snprintf(header, sizeof(header), "%c %lu ", op, delta);
-               r = _fwrite(header, strlen(header), 1, srinfo->log);
+               size_t r = _fwrite(header, strlen(header), 1, srinfo->log);
                assert(r == 1);
            }
 
            /* escape ASCII control chars */
-           for (i = 0, cur = buf; i < size; ++i, ++cur) {
+           const unsigned char *cur = buf;
+           for (ssize_t i = 0; i < size; ++i, ++cur) {
                if (*cur < 32) {
                    putc('^', srinfo->log);
                    putc(*cur + 64, srinfo->log);
@@ -1487,7 +1488,7 @@
     size_t res;
 
     res = _fread(ptr, size, nmemb, stream);
-    script_record_op('r', fileno(stream), ptr, (res == 0 && ferror(stream)) ? 
-1 : res * size);
+    script_record_op('r', fileno(stream), ptr, (res == 0 && ferror(stream)) ? 
-1 : (ssize_t) (res * size));
     return res;
 }
 
@@ -1498,7 +1499,7 @@
     size_t res;
 
     res = _fwrite(ptr, size, nmemb, stream);
-    script_record_op('w', fileno(stream), ptr, (res == 0 && ferror(stream)) ? 
-1 : res * size);
+    script_record_op('w', fileno(stream), ptr, (res == 0 && ferror(stream)) ? 
-1 : (ssize_t) (res * size));
     return res;
 }
 
@@ -1545,7 +1546,7 @@
     libc_func(recvmsg, int, int, struct msghdr *, int);
     ssize_t ret = _recvmsg(sockfd, msg, flags);
 
-    netlink_recvmsg(sockfd, msg, flags, ret);
+    netlink_recvmsg(sockfd, msg, ret);
 
     return ret;
 }
@@ -1569,7 +1570,7 @@
     libc_func(bind, int, int, const struct sockaddr *, socklen_t);
     int res;
 
-    res = netlink_bind(sockfd, addr, addrlen);
+    res = netlink_bind(sockfd);
     if (res != UNHANDLED)
        return res;
 
@@ -1606,7 +1607,7 @@
     }
 
     res = _connect(sockfd, addr, addrlen);
-    script_record_connect(sockfd, addr, addrlen, res);
+    script_record_connect(sockfd, addr, res);
 
     return res;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/uevent_sender.c 
new/umockdev-0.16.3/src/uevent_sender.c
--- old/umockdev-0.16.2/src/uevent_sender.c     2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/src/uevent_sender.c     2021-09-15 07:38:31.167431600 
+0200
@@ -65,7 +65,7 @@
 }
 
 static void
-sendmsg_one(uevent_sender * sender, struct msghdr *msg, const char *path)
+sendmsg_one(struct msghdr *msg, const char *path)
 {
     struct sockaddr_un event_addr;
     int fd;
@@ -111,7 +111,7 @@
     if (res == 0) {
        size_t i;
        for (i = 0; i < gl.gl_pathc; ++i)
-           sendmsg_one(sender, msg, gl.gl_pathv[i]);
+           sendmsg_one(msg, gl.gl_pathv[i]);
     } else {
        /* ensure that we only fail due to that, not due to bad globs */
        if (res != GLOB_NOMATCH) {
@@ -148,27 +148,27 @@
     unsigned int filter_tag_bloom_lo;
 };
 
-/* taken from systemd/src/libudev/libudev-util.c */
-static unsigned int
+/* taken from systemd/src/basic/MurmurHash2.c */
+static uint32_t
 string_hash32(const char *str)
 {
     /*
      *  'm' and 'r' are mixing constants generated offline.
      *  They're not really 'magic', they just happen to work well.
      */
-    const unsigned int m = 0x5bd1e995;
+    const uint32_t m = 0x5bd1e995;
     const int r = 24;
     int len = strlen(str);
 
     /* initialize the hash to a 'random' value */
-    unsigned int h = len;
+    uint32_t h = len;
 
     /* mix 4 bytes at a time into the hash */
     const unsigned char *data = (const unsigned char *)str;
 
     while (len >= 4) {
-       unsigned int k = *(unsigned int *)data;
-
+       uint32_t k = 0;
+        memcpy(&k, data, sizeof(uint32_t));
        k *= m;
        k ^= k >> r;
        k *= m;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/umockdev-ioctl.vala 
new/umockdev-0.16.3/src/umockdev-ioctl.vala
--- old/umockdev-0.16.2/src/umockdev-ioctl.vala 2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/src/umockdev-ioctl.vala 2021-09-15 07:38:31.167431600 
+0200
@@ -741,6 +741,7 @@
           listeners.remove(devnode);
     }
 
+#if INTERNAL_REGISTER_API
     internal void register_path(GLib.MainContext? ctx, string devnode, string 
sockpath)
     {
         assert(DirUtils.create_with_parents(Path.get_dirname(sockpath), 0755) 
== 0);
@@ -768,12 +769,15 @@
         ctx.invoke(tmp.cb);
     }
 
+#if INTERNAL_UNREGISTER_PATH_API
     internal void unregister_path(string devnode)
     {
         lock (listeners)
           listeners[devnode].cancel();
     }
+#endif
 
+#if INTERNAL_UNREGISTER_ALL_API
     internal void unregister_all()
     {
         lock (listeners) {
@@ -782,6 +786,9 @@
             });
         }
     }
+#endif
+
+#endif // INTERNAL_REGISTER_API
 
     public virtual signal void client_connected(IoctlClient client) {
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/umockdev-pcap.vala 
new/umockdev-0.16.3/src/umockdev-pcap.vala
--- old/umockdev-0.16.2/src/umockdev-pcap.vala  2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/src/umockdev-pcap.vala  2021-09-15 07:38:31.167431600 
+0200
@@ -27,6 +27,20 @@
 const int URB_CONTROL = 0x2;
 const int URB_BULK = 0x3;
 
+private string urb_type_to_string(int type)
+{
+    switch (type) {
+        case URB_INTERRUPT:
+            return "INTERRUPT";
+        case URB_CONTROL:
+            return "CONTROL";
+        case URB_BULK:
+            return "BULK";
+        default:
+            return "UNKNOWN (%d)".printf(type);
+    }
+}
+
 private struct UrbInfo {
     IoctlData urb_data;
     IoctlData buffer_data;
@@ -141,8 +155,8 @@
                      * we are timing out on URBs that will not replay.
                      */
                     if (urb_info.pcap_id == 0) {
-                        message("Replay may be stuck: Reaping discard URB of 
type %d, for endpoint 0x%02x with length %d without corresponding submit",
-                                urb.type, urb.endpoint, urb.buffer_length);
+                        message("Replay may be stuck: Reaping discard URB of 
type %s, for endpoint 0x%02x with length %d without corresponding submit",
+                                urb_type_to_string(urb.type), urb.endpoint, 
urb.buffer_length);
                     }
                 } else {
                     urb_info = next_reapable_urb();
@@ -167,6 +181,7 @@
      * packet. As such, keep it in a global state.
      */
     private pcap.pkthdr cur_hdr;
+    private uint64 start_time_ms;
     private uint64 last_pkt_time_ms;
     private uint64 cur_waiting_since;
     private unowned uint8[]? cur_buf = null;
@@ -193,6 +208,7 @@
 
             cur_waiting_since = now;
             last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 1000;
+            start_time_ms = last_pkt_time_ms;
         }
 
         for (; cur_buf != null; cur_buf = rec.next(ref cur_hdr), 
cur_waiting_since = now) {
@@ -213,16 +229,16 @@
                 message("Stuck for %lu ms, recording needed %lu ms",
                         (ulong) (now - cur_waiting_since) / 1000,
                         (ulong) (cur_pkt_time_ms - last_pkt_time_ms));
-                message("Trying to reap at recording position %c packet of 
type %d, for endpoint 0x%02x with length %u, replay may be stuck",
-                        urb_hdr.event_type, urb_hdr.transfer_type, 
urb_hdr.endpoint_number, urb_hdr.urb_len);
+                message("Trying to reap at recording position %c %s packet, 
for endpoint 0x%02x with length %u, replay may be stuck (time: %.3f)",
+                        urb_hdr.event_type, 
urb_type_to_string(urb_hdr.transfer_type), urb_hdr.endpoint_number, 
urb_hdr.urb_len, (cur_pkt_time_ms - start_time_ms) / 1000.0);
                 message("The device has currently %u in-flight URBs:", 
urbs.length);
 
                 for (var i = 0; i < urbs.length; i++) {
                     unowned UrbInfo? urb_data = urbs.index(i);
                     Ioctl.usbdevfs_urb *urb = (Ioctl.usbdevfs_urb*) 
urb_data.urb_data.data;
 
-                    message("   URB of type %d, for endpoint 0x%02x with 
length %d; %ssubmitted",
-                            urb.type, urb.endpoint, urb.buffer_length,
+                    message("   %s URB, for endpoint 0x%02x with length %d; 
%ssubmitted",
+                            urb_type_to_string(urb.type), urb.endpoint, 
urb.buffer_length,
                             urb_data.pcap_id == 0 ? "NOT " : "");
                 }
                 cur_waiting_since = now;
@@ -256,8 +272,11 @@
                         urb_buffer_length -= 8;
                     }
 
+                    /* libusb always sets URB_CONTROL endpoint to 0x00, but the
+                     * kernel exposes it as 0x80/0x00 depending on the 
direction
+                     */
                     if ((urb.type != urb_hdr.transfer_type) ||
-                        (urb.endpoint != urb_hdr.endpoint_number) ||
+                        ((urb.type != URB_CONTROL) && (urb.endpoint != 
urb_hdr.endpoint_number)) ||
                         (urb_buffer_length != urb_hdr.urb_len)) {
 
                         if (debug)
@@ -362,11 +381,16 @@
             }
 
             /* Packet not handled.
-             * If it was a control transfer, still just ignore it as it is
-             * probably one generated by the kernel rather than the 
application.
+             * Now, if it was a control transfer of "standard" type, then we
+             * should just ignore it (and ignore the subsequent response).
+             *
+             * Note that we use a different mechanism to ignore the replies.
              */
-            if (urb_hdr.transfer_type == URB_CONTROL)
-                continue;
+            if (urb_hdr.transfer_type == URB_CONTROL) {
+                /* 0x60 -> any direction, standard transfer, any recepient */
+                if (urb_hdr.event_type == 'S' && urb_hdr.setup_flag == 0 && 
((*(uint8*)&urb_hdr.s) & 0x60) == 0x00)
+                    continue;
+            }
 
             /* The current packet cannot be reaped at this point, give up. */
             return null;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/src/umockdev.vala 
new/umockdev-0.16.3/src/umockdev.vala
--- old/umockdev-0.16.2/src/umockdev.vala       2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/src/umockdev.vala       2021-09-15 07:38:31.167431600 
+0200
@@ -87,6 +87,12 @@
         this.sys_dir = Path.build_filename(this.root_dir, "sys");
         DirUtils.create(this.sys_dir, 0755);
 
+        /* Create "bus" and "class" directories to make libudev happy */
+        string bus_path = Path.build_filename(this.sys_dir, "bus");
+        DirUtils.create(bus_path, 0755);
+        string class_path = Path.build_filename(this.sys_dir, "class");
+        DirUtils.create(class_path, 0755);
+
         this.dev_fd = new HashTable<string, int> (str_hash, str_equal);
         this.dev_script_runner = new HashTable<string, ScriptRunner> 
(str_hash, str_equal);
         this.custom_handlers = new HashTable<string, IoctlBase> (str_hash, 
str_equal);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/tests/run-alpine 
new/umockdev-0.16.3/tests/run-alpine
--- old/umockdev-0.16.2/tests/run-alpine        2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/tests/run-alpine        2021-09-15 07:38:31.171431800 
+0200
@@ -11,6 +11,8 @@
 fi
 
 $RUNC run --interactive ${OPTS:-} --volume `pwd`:/source:ro 
${1:-docker.io/alpine} /bin/sh <<EOF
+# avoid meson exit code 125; https://github.com/containers/podman/issues/11540
+trap '[ \$? -eq 0 ] || exit 1' EXIT
 
 # install build dependencies
 apk add --no-cache meson gcc musl-dev glib-dev eudev-dev libpcap-dev make vala 
linux-headers xz usbutils ${EXTRA_PACKAGES:-}
@@ -19,7 +21,7 @@
 su -s /bin/sh - guest << EOG
 set -ex
 cd /source
-meson setup /tmp/dbg --buildtype debug
+meson setup /tmp/dbg --buildtype debug --werror
 meson test -C /tmp/dbg -v --num-processes=1
 DESTDIR=/tmp/inst meson install -C /tmp/dbg
 echo "===== tests done; install tree: ===="
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/tests/run-apt 
new/umockdev-0.16.3/tests/run-apt
--- old/umockdev-0.16.2/tests/run-apt   2021-08-25 11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/tests/run-apt   2021-09-15 07:38:31.171431800 +0200
@@ -12,9 +12,12 @@
 
 [ -n "${PUBLISH_TAR:-}" ] || MOUNT_MODE=":ro"
 
-$RUNC run --interactive ${OPTS:-} --volume `pwd`:/source${MOUNT_MODE:-} 
${1:-docker.io/amd64/ubuntu:rolling} /bin/sh << EOF
+$RUNC run --interactive ${RUNC_OPTIONS:-} ${OPTS:-} --volume 
`pwd`:/source${MOUNT_MODE:-} ${1:-docker.io/amd64/ubuntu:rolling} /bin/sh << EOF
 set -ex
 
+# avoid meson exit code 125; https://github.com/containers/podman/issues/11540
+trap '[ \$? -eq 0 ] || exit 1' EXIT
+
 # go-faster apt
 echo  'Acquire::Languages "none";' > /etc/apt/apt.conf.d/90nolanguages
 
@@ -32,7 +35,7 @@
 su -s /bin/sh - build << EOG
 set -ex
 cd /source
-meson setup /tmp/dbg --buildtype debug --prefix /usr -Dgtk_doc=true
+meson setup /tmp/dbg --buildtype debug --prefix /usr -Dgtk_doc=true --werror
 cd /tmp/dbg
 if meson dist --help | grep -q no-tests; then
     meson dist --no-test
@@ -58,7 +61,7 @@
 su - build <<EOG
 set -ex
 cd /source
-meson setup /tmp/rel --buildtype release -Db_ndebug=true --prefix /usr 
-Dgtk_doc=true
+meson setup /tmp/rel --buildtype release -Db_ndebug=true --prefix /usr 
-Dgtk_doc=true --werror
 meson test -C /tmp/rel -v --num-processes=1
 EOG
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/tests/run-dnf 
new/umockdev-0.16.3/tests/run-dnf
--- old/umockdev-0.16.2/tests/run-dnf   2021-08-25 11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/tests/run-dnf   2021-09-15 07:38:31.171431800 +0200
@@ -12,6 +12,10 @@
 
 $RUNC run --interactive ${RUNC_OPTIONS:-} ${OPTS:-} --volume `pwd`:/source:ro 
${1:-registry.fedoraproject.org/fedora} /bin/sh << EOF
 set -eu
+
+# avoid meson exit code 125; https://github.com/containers/podman/issues/11540
+trap '[ \$? -eq 0 ] || exit 1' EXIT
+
 dnf -y update
 
 if grep -q ID=.*centos /etc/os-release; then
@@ -34,7 +38,7 @@
 su -s /bin/sh - guest << EOG
 set -eux
 cd /source
-meson setup /tmp/dbg --buildtype debug --prefix /usr -Dgtk_doc=\${gtk_doc} 
-Db_coverage=\$coverage
+meson setup /tmp/dbg --buildtype debug --prefix /usr -Dgtk_doc=\${gtk_doc} 
-Db_coverage=\$coverage --werror
 cd /tmp/dbg
 DESTDIR=/tmp/inst meson install
 meson test -v --num-processes=1
@@ -46,7 +50,7 @@
 
 # build with clang
 cd /source
-CC=clang meson setup /tmp/clang -Dgtk_doc=false
+CC=clang meson setup /tmp/clang -Dgtk_doc=false --werror
 meson test -C /tmp/clang -v --num-processes=1
 EOG
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/tests/run-nix 
new/umockdev-0.16.3/tests/run-nix
--- old/umockdev-0.16.2/tests/run-nix   2021-08-25 11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/tests/run-nix   2021-09-15 07:38:31.171431800 +0200
@@ -9,6 +9,9 @@
 
 # sandboxing requires privileged container; 
https://github.com/NixOS/docker#limitations
 $RUNC run --interactive ${DEBUG:+--tty} --privileged --volume `pwd`:/source:ro 
${1:-docker.io/nixos/nix} /bin/sh <<EOF
+# avoid meson exit code 125; https://github.com/containers/podman/issues/11540
+trap '[ \$? -eq 0 ] || exit 1' EXIT
+
 sed -i '/sandbox/ s/false/true/' /etc/nix/nix.conf
 
 cat <<EOG > /tmp/default.nix
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/tests/test-umockdev-vala.vala 
new/umockdev-0.16.3/tests/test-umockdev-vala.vala
--- old/umockdev-0.16.2/tests/test-umockdev-vala.vala   2021-08-25 
11:26:23.130824800 +0200
+++ new/umockdev-0.16.3/tests/test-umockdev-vala.vala   2021-09-15 
07:38:31.171431800 +0200
@@ -159,14 +159,14 @@
   assert_cmpstr (syspath, CompareOperator.EQ, "/sys/devices/dev1");
 
   // absolute paths
-  assert_listdir ("/sys", {"bus", "devices"});
+  assert_listdir ("/sys", {"bus", "class", "devices"});
   assert_listdir ("/sys/devices", {"dev1"});
   assert_listdir ("/sys/bus", {"pci"});
   assert_listdir ("/sys/devices/dev1", {"a", "subsystem", "uevent"});
 
   // change directory into trapped /sys
   assert_cmpint (Posix.chdir ("/sys"), CompareOperator.EQ, 0);
-  assert_listdir (".", {"bus", "devices"});
+  assert_listdir (".", {"bus", "class", "devices"});
   assert_listdir ("bus", {"pci"});
   assert_cmpstr (Environment.get_current_dir (), CompareOperator.EQ, "/sys");
 
@@ -174,9 +174,6 @@
   assert_listdir (".", {"a", "subsystem", "uevent"});
   assert_cmpstr (Environment.get_current_dir (), CompareOperator.EQ, 
"/sys/devices/dev1");
 
-  assert_cmpint (Posix.chdir ("/sys/class"), CompareOperator.EQ, -1);
-  assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.ENOENT);
-
   // relative paths into trapped /sys; this only works if the real /sys 
exists, as otherwise realpath() fails in trap_path()
   if (!have_real_sys) {
       stdout.printf ("[SKIP relative paths: environment has no real /sys]\n");
@@ -184,12 +181,12 @@
   }
 
   assert_cmpint (Posix.chdir ("/"), CompareOperator.EQ, 0);
-  assert_listdir ("sys", {"bus", "devices"});
+  assert_listdir ("sys", {"bus", "class", "devices"});
   assert_listdir ("sys/devices", {"dev1"});
   assert_listdir ("sys/bus", {"pci"});
 
   assert_cmpint (Posix.chdir ("/etc"), CompareOperator.EQ, 0);
-  assert_listdir ("../sys", {"bus", "devices"});
+  assert_listdir ("../sys", {"bus", "class", "devices"});
   assert_listdir ("../sys/devices", {"dev1"});
   assert_listdir ("../sys/bus", {"pci"});
 
@@ -504,6 +501,10 @@
 {
   var tb = new UMockdev.Testbed ();
   string device;
+  Ioctl.usbdevfs_urb* urb_reap = null;
+
+  /* NOTE: This test is a bit ugly. It wasn't the best idea to use a USB 
keyboard. */
+
   checked_file_get_contents (Path.build_filename(rootdir + 
"/devices/input/usbkbd.pcap.umockdev"), out device);
   tb_add_from_string (tb, device);
 
@@ -516,15 +517,58 @@
   int fd = Posix.open ("/dev/bus/usb/001/011", Posix.O_RDWR, 0);
   assert_cmpint (fd, CompareOperator.GE, 0);
 
+  /* We can submit this early, even if it comes later in the recording! */
   var urb_buffer_ep1 = new uint8[8];
   Ioctl.usbdevfs_urb urb_ep1 = {1, 0x81, 0, 0, urb_buffer_ep1, 8, 0};
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_ep1), 
CompareOperator.EQ, 0);
   assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (urb_ep1.status, CompareOperator.EQ, 0);
 
+  /* Not all control transfers are skipped in this case, we need to speak 
USBHID */
+  /* SET_IDLE request */
+  uint8 urb_buffer_setup_set_idle[8] = { 0x21, 0x0a, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00};
+  Ioctl.usbdevfs_urb urb_set_idle = {2, 0x00, 0, 0, urb_buffer_setup_set_idle, 
8, 0};
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_set_idle), 
CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+  assert (urb_reap == &urb_set_idle);
+
+  /* GET DESCIPTOR is skipped again. */
+
+  /* SET_REPORT request */
+  uint8 urb_buffer_setup_set_report[9] = { 0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 
0x01, 0x00, 0x00};
+  Ioctl.usbdevfs_urb urb_set_report = {2, 0x00, 0, 0, 
urb_buffer_setup_set_report, 9, 0};
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref 
urb_set_report), CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+
+  /* Now we'll receive the SET_REPORT response as EP 1 has been submitted 
already */
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+  assert (urb_reap == &urb_set_report);
+
+  /* We cannot reap any urbs yet as we are waiting for SET_IDLE */
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, -1);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.EAGAIN);
+
+  /* Another SET_IDLE */
+  urb_buffer_setup_set_idle = { 0x21, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 
0x00};
+  urb_set_idle = {2, 0x00, 0, 0, urb_buffer_setup_set_idle, 8, 0};
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref urb_set_idle), 
CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+  assert (urb_reap == &urb_set_idle);
+
+  /* Another SET_REPORT request */
+  urb_buffer_setup_set_report = { 0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 0x01, 
0x00, 0x01};
+  urb_set_report = {2, 0x00, 0, 0, urb_buffer_setup_set_report, 9, 0};
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_SUBMITURB, ref 
urb_set_report), CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
 
   /* We cannot reap any urbs yet, because we didn't make a request on EP 2 */
-  Ioctl.usbdevfs_urb* urb_reap = null;
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, -1);
   assert_cmpint (Posix.errno, CompareOperator.EQ, Posix.EAGAIN);
 
@@ -535,6 +579,11 @@
   assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
   assert_cmpuint (urb_ep2.status, CompareOperator.EQ, 0);
 
+  /* Now we'll receive the SET_REPORT response as EP 1 has been submitted 
already */
+  assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
+  assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
+  assert (urb_reap == &urb_set_report);
+
   /* The first report is: 00000c0000000000 (EP1) */
   assert_cmpint (Posix.ioctl (fd, Ioctl.USBDEVFS_REAPURB, ref urb_reap), 
CompareOperator.EQ, 0);
   assert_cmpint (Posix.errno, CompareOperator.EQ, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.16.2/tests/test-umockdev.c 
new/umockdev-0.16.3/tests/test-umockdev.c
--- old/umockdev-0.16.2/tests/test-umockdev.c   2021-08-25 11:26:23.130824800 
+0200
+++ new/umockdev-0.16.3/tests/test-umockdev.c   2021-09-15 07:38:31.171431800 
+0200
@@ -45,6 +45,9 @@
 #define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
 #endif
 
+#define UNUSED __attribute__ ((unused))
+#define UNUSED_DATA UNUSED gconstpointer data
+
 static gboolean has_real_sysfs;
 
 static int slow_testbed_factor = 1;
@@ -56,7 +59,7 @@
 } UMockdevTestbedFixture;
 
 static void
-t_testbed_fixture_setup(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_fixture_setup(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     fixture->testbed = umockdev_testbed_new();
     g_assert(fixture->testbed != NULL);
@@ -65,7 +68,7 @@
 }
 
 static void
-t_testbed_fixture_teardown(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_fixture_teardown(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     g_object_unref(fixture->testbed);
 
@@ -104,27 +107,37 @@
 static guint
 num_udev_devices(void)
 {
-    GUdevEnumerator *enumerator;
-    GList *result;
-    guint num;
+    struct udev *udev;
+    struct udev_enumerate *enumerate;
+    struct udev_list_entry *entry;
+    int err;
+    guint num = 0;
 
-    g_autoptr (GUdevClient) client = g_udev_client_new(NULL);
-    g_assert(client);
+    udev = udev_new();
+    g_assert(udev);
 
-    enumerator = g_udev_enumerator_new(client);
-    g_assert(enumerator);
-    result = g_udev_enumerator_execute(enumerator);
-    num = g_list_length(result);
+    enumerate = udev_enumerate_new(udev);
+    g_assert(enumerate);
+    
+    // NB: using libudev here instead of GUdev so that we can check the return
+    // value of udev_enumerate_scan_devices().
+    // https://github.com/martinpitt/umockdev/issues/144
+    err = udev_enumerate_scan_devices(enumerate);
+    g_assert_cmpint(err, >=, 0);
 
-    g_list_free_full(result, g_object_unref);
-    g_object_unref(enumerator);
+    udev_list_entry_foreach(entry, udev_enumerate_get_list_entry(enumerate)) {
+        num++;
+    }
+
+    udev_enumerate_unref(enumerate);
+    udev_unref(udev);
 
     return num;
 }
 
 /* Empty UMockdevTestbed without any devices */
 static void
-t_testbed_empty(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_empty(UNUSED UMockdevTestbedFixture *fixture, UNUSED_DATA)
 {
     g_assert_cmpuint(num_udev_devices(), ==, 0);
 }
@@ -166,7 +179,7 @@
 
 /* UMockdevTestbed add_devicev() with adding one device */
 static void
-t_testbed_add_devicev(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_add_devicev(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     gchar *attributes[] = { "idVendor", "0815", "idProduct", "AFFE", NULL };
     gchar *properties[] = { "ID_INPUT", "1", "ID_INPUT_KEYBOARD", "1", NULL };
@@ -198,7 +211,7 @@
 
 /* UMockdevTestbed add_device() with adding one device */
 static void
-t_testbed_add_device(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_add_device(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     struct udev *udev;
     struct udev_monitor *udev_mon;
@@ -234,7 +247,7 @@
 
 /* UMockdevTestbed add_device() with adding a child device */
 static void
-t_testbed_child_device(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_child_device(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     gchar *dev, *iface, *input;
     GUdevDevice *device, *device2;
@@ -369,7 +382,7 @@
 
 /* UMockdevTestbed add_device() with adding a block device */
 static void
-t_testbed_add_block_device(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_add_block_device(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     g_autofree gchar *syspath = umockdev_testbed_add_device(
             fixture->testbed, "block", "scribble", NULL,
@@ -400,7 +413,7 @@
 };
 
 static gboolean
-t_testbed_error_catcher(const gchar * log_domain, GLogLevelFlags log_level, 
const gchar * message, gpointer user_data)
+t_testbed_error_catcher(UNUSED const gchar *log_domain, GLogLevelFlags 
log_level, const gchar * message, gpointer user_data)
 {
     struct TestbedErrorCatcherData *data = (struct TestbedErrorCatcherData 
*)user_data;
 
@@ -412,14 +425,14 @@
 }
 
 static void
-ignore_log_handler (const gchar *log_domain, GLogLevelFlags log_level,
-                    const gchar *message, gpointer user_data)
+ignore_log_handler (UNUSED const gchar *log_domain, UNUSED GLogLevelFlags 
log_level,
+                    UNUSED const gchar *message, UNUSED gpointer user_data)
 {
 }
 
 /* UMockdevTestbed add_device() error conditions */
 static void
-t_testbed_add_device_errors(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_add_device_errors(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     gchar *syspath;
     struct TestbedErrorCatcherData errors = { 0, 0, NULL };
@@ -467,7 +480,7 @@
 }
 
 static void
-t_testbed_set_attribute(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_set_attribute(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GUdevDevice *device;
     g_autofree gchar *contents = NULL;
@@ -515,7 +528,7 @@
 }
 
 static void
-t_testbed_set_property(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_set_property(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GUdevDevice *device;
     gchar *prop;
@@ -566,7 +579,7 @@
 };
 
 static void
-on_uevent(GUdevClient * client, const gchar * action, GUdevDevice * device, 
gpointer user_data)
+on_uevent(UNUSED GUdevClient *client, const gchar *action, GUdevDevice 
*device, gpointer user_data)
 {
     struct event_counter *counter = (struct event_counter *)user_data;
 
@@ -593,7 +606,7 @@
 }
 
 static void
-t_testbed_uevent_libudev(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_uevent_libudev(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     struct udev *udev;
     struct udev_monitor *udev_mon, *kernel_mon;
@@ -646,7 +659,7 @@
 }
 
 static void
-t_testbed_uevent_libudev_filter(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_uevent_libudev_filter(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     struct udev *udev;
     struct udev_monitor *mon;
@@ -702,7 +715,7 @@
 }
 
 static void
-t_testbed_uevent_gudev(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_uevent_gudev(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GMainLoop *mainloop;
     struct event_counter counter = { 0, 0, 0 };
@@ -750,7 +763,7 @@
 }
 
 static void
-t_testbed_uevent_no_listener(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_uevent_no_listener(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     g_autofree gchar *syspath = umockdev_testbed_add_device(fixture->testbed, 
"pci", "mydev", NULL, NULL, NULL);
     g_assert(syspath);
@@ -760,7 +773,7 @@
 }
 
 static void
-t_testbed_uevent_error(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_uevent_error(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     struct udev *udev;
     struct udev_monitor *mon;
@@ -796,7 +809,7 @@
 }
 
 static void
-t_testbed_uevent_null_action(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_uevent_null_action(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     g_autofree gchar *syspath = umockdev_testbed_add_device(fixture->testbed, 
"pci", "mydev", NULL, NULL, NULL);
     g_assert(syspath);
@@ -810,7 +823,7 @@
 }
 
 static void
-t_testbed_uevent_action_overflow(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_uevent_action_overflow(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     g_autofree gchar *syspath = umockdev_testbed_add_device(fixture->testbed, 
"pci", "mydev", NULL, NULL, NULL);
     g_assert(syspath);
@@ -828,7 +841,7 @@
 }
 
 static void
-t_testbed_add_from_string(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_add_from_string(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GUdevDevice *device;
     gchar *contents;
@@ -930,7 +943,7 @@
 }
 
 static void
-t_testbed_add_from_string_errors(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_add_from_string_errors(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GError *error = NULL;
 
@@ -968,7 +981,7 @@
 }
 
 static void
-t_testbed_add_from_file(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_add_from_file(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     gboolean success;
     GError *error = NULL;
@@ -1011,7 +1024,7 @@
 }
 
 static void
-t_testbed_libc(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_libc(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     gboolean success;
     GError *error = NULL;
@@ -1101,7 +1114,7 @@
 }
 
 static void
-t_testbed_usb_lsusb(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_usb_lsusb(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     g_autofree gchar *out = NULL, *err = NULL;
     int exit_status;
@@ -1152,7 +1165,7 @@
 }
 
 static void
-t_testbed_dev_access(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_dev_access(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GStatBuf st;
     gchar *devpath;
@@ -1258,7 +1271,7 @@
 }
 
 static void
-t_testbed_add_from_string_dev_char(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_add_from_string_dev_char(UMockdevTestbedFixture * fixture, 
UNUSED_DATA)
 {
     GError *error = NULL;
     gchar *contents, *target;
@@ -1318,7 +1331,7 @@
 }
 
 static void
-t_testbed_add_from_string_dev_block(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_add_from_string_dev_block(UMockdevTestbedFixture * fixture, 
UNUSED_DATA)
 {
     GError *error = NULL;
     gchar *contents;
@@ -1356,7 +1369,7 @@
 }
 
 static void
-t_testbed_dev_query_gudev(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_dev_query_gudev(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GError *error = NULL;
     GUdevDevice *device;
@@ -1396,7 +1409,7 @@
   errno = 0;
 
 static void
-t_testbed_script_replay_evdev_event_framing(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_script_replay_evdev_event_framing(UMockdevTestbedFixture * fixture, 
UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1472,7 +1485,7 @@
 }
 
 static void
-t_testbed_script_replay_simple(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_script_replay_simple(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1581,7 +1594,7 @@
 }
 
 static void
-t_testbed_script_replay_default_device(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_script_replay_default_device(UMockdevTestbedFixture * fixture, 
UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1621,7 +1634,7 @@
 }
 
 static void
-t_testbed_script_replay_override_default_device(UMockdevTestbedFixture * 
fixture, gconstpointer data)
+t_testbed_script_replay_override_default_device(UMockdevTestbedFixture * 
fixture, UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1661,7 +1674,7 @@
 }
 
 static void
-t_testbed_script_replay_socket_stream(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_script_replay_socket_stream(UMockdevTestbedFixture * fixture, 
UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1727,7 +1740,7 @@
 }
 
 static void
-t_testbed_script_replay_fuzz(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_script_replay_fuzz(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1790,7 +1803,7 @@
 }
 
 static void
-t_testbed_replay_evemu_events(UMockdevTestbedFixture * fixture, gconstpointer 
data)
+t_testbed_replay_evemu_events(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1875,7 +1888,7 @@
 }
 
 static void
-t_testbed_replay_evemu_events_default_device(UMockdevTestbedFixture * fixture, 
gconstpointer data)
+t_testbed_replay_evemu_events_default_device(UMockdevTestbedFixture * fixture, 
UNUSED_DATA)
 {
   gboolean success;
   GError *error = NULL;
@@ -1920,7 +1933,7 @@
 }
 
 static void
-t_testbed_clear(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_clear(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GError *error = NULL;
     gchar *dev_path, *sysdev_path;
@@ -1951,7 +1964,7 @@
 }
 
 static void
-t_testbed_disable(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_disable(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     if (!has_real_sysfs) {
        g_printf("SKIP: no real /sys on this system. ");
@@ -1993,7 +2006,7 @@
 }
 
 static void
-t_testbed_remove(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_remove(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     GError *error = NULL;
 
@@ -2061,7 +2074,7 @@
 }
 
 static void
-t_testbed_proc(UMockdevTestbedFixture * fixture, gconstpointer data)
+t_testbed_proc(UMockdevTestbedFixture * fixture, UNUSED_DATA)
 {
     gchar *contents;
     gchar *procdir, *path;

Reply via email to