Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package umockdev for openSUSE:Factory 
checked in at 2026-10-24 22:03:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/umockdev (Old)
 and      /work/SRC/openSUSE:Factory/.umockdev.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "umockdev"

Sat Oct 24 22:03:37 2026 rev:28 rq:1392138 version:0.19.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/umockdev/umockdev.changes        2026-04-19 
14:21:06.153456300 +0200
+++ /work/SRC/openSUSE:Factory/.umockdev.new.2252680/umockdev.changes   
2026-10-24 22:04:04.167203301 +0200
@@ -1,0 +2,11 @@
+Fri Oct 23 17:39:14 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 0.19.9:
+  * pcap: Adapt to libpcap 1.11 USB pseudo-header definition
+    (fixes SIGBUS on sparc64 reading DLT_USB_LINUX_MMAPPED records)
+- Changes from version 0.19.8:
+  * preload: Fix libc name on alpha architecture
+  * preload: Check dlopen(libc) failure
+  * ioctl: Fix array handling to work with gcc 16 fortify checks
+
+-------------------------------------------------------------------

Old:
----
  umockdev-0.19.7.tar.xz

New:
----
  umockdev-0.19.9.tar.xz

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

Other differences:
------------------
++++++ umockdev.spec ++++++
--- /var/tmp/diff_new_pack.zt1lyU/_old  2026-10-24 22:04:04.728226721 +0200
+++ /var/tmp/diff_new_pack.zt1lyU/_new  2026-10-24 22:04:04.730226805 +0200
@@ -19,7 +19,7 @@
 %define shlib libumockdev0
 %define shlibpre libumockdev-preload0
 Name:           umockdev
-Version:        0.19.7
+Version:        0.19.9
 Release:        0
 Summary:        Mock hardware devices for creating unit tests and bug reporting
 License:        LGPL-2.1-or-later

++++++ umockdev-0.19.7.tar.xz -> umockdev-0.19.9.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/.github/workflows/tests.yml 
new/umockdev-0.19.9/.github/workflows/tests.yml
--- old/umockdev-0.19.7/.github/workflows/tests.yml     2026-03-26 
10:10:08.000000000 +0100
+++ new/umockdev-0.19.9/.github/workflows/tests.yml     2026-09-20 
18:49:42.000000000 +0200
@@ -25,8 +25,7 @@
           - alpine-docker.io/i386/alpine
           - [email protected]/alpine
           - nix-docker.io/nixos/nix
-          # https://github.com/martinpitt/umockdev/issues/276
-          # - gentoo-
+          - gentoo-
         include:
           - scenario: alpine@gudev-alpine
             env: EXTRA_PACKAGES=libgudev-dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/.version new/umockdev-0.19.9/.version
--- old/umockdev-0.19.7/.version        2026-03-26 10:15:29.885627500 +0100
+++ new/umockdev-0.19.9/.version        2026-09-20 19:28:17.868545300 +0200
@@ -1 +1 @@
-0.19.7
+0.19.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/meson.build 
new/umockdev-0.19.9/meson.build
--- old/umockdev-0.19.7/meson.build     2026-03-26 10:10:08.000000000 +0100
+++ new/umockdev-0.19.9/meson.build     2026-09-20 18:49:42.000000000 +0200
@@ -97,6 +97,11 @@
 gio_unix = dependency('gio-unix-2.0', version: '>= 2.32.0')
 libudev = dependency('libudev')
 libpcap = dependency('libpcap')
+# 1.11 fixed 64 bit access alignment on USB headers
+if libpcap.version().version_compare('>= 1.11')
+  add_project_arguments('-DHAVE_PCAP_ALIGNED_USB_HEADER', language: 'c')
+  optional_defines += ['--define=HAVE_PCAP_ALIGNED_USB_HEADER']
+endif
 pthread = cc.find_library('pthread', required: true)
 gudev = dependency('gudev-1.0', required: false)
 python = find_program('python3', 'python', required: false)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/src/libpcap.vapi 
new/umockdev-0.19.9/src/libpcap.vapi
--- old/umockdev-0.19.7/src/libpcap.vapi        2026-03-26 10:10:08.000000000 
+0100
+++ new/umockdev-0.19.9/src/libpcap.vapi        2026-09-20 18:49:42.000000000 
+0200
@@ -25,10 +25,19 @@
     uint32 len;
 }
 
-/* Representing the of ; not a direct copy from the usb.h header */
-[CCode (cname="pcap_usb_header_mmapped", cheader_filename = "pcap/usb.h")]
+/* These come from our own pcap_usb.h rather than from <pcap/usb.h>; see there
+ * for which definition of the USB pseudo-header it picks, and why.
+ */
+[CCode (cname="pcap_4_byte_aligned_uint64", cheader_filename = "pcap_usb.h", 
has_type_id = false)]
+public struct aligned_uint64 {
+    /* libpcap only grew pcap_4_byte_aligned_uint64_val() in 1.11 */
+    [CCode (cname="umockdev_pcap_uint64_val")]
+    public uint64 val();
+}
+
+[CCode (cname="pcap_usb_header_mmapped", cheader_filename = "pcap_usb.h", 
has_type_id = false)]
 public struct usb_header_mmapped {
-    uint64 id;
+    aligned_uint64 id;
 
     uint8 event_type;
     uint8 transfer_type;
@@ -38,7 +47,7 @@
     uint8 setup_flag;
     uint8 data_flag;
 
-    uint64 ts_sec;
+    aligned_uint64 ts_sec;
 
     uint32 ts_usec;
     int32 status;
@@ -46,12 +55,12 @@
     uint32 urb_len;
     uint32 data_len;
 
-    uint64 s; /* Really a union of setup/iso information */
+    aligned_uint64 s; /* Really a union of setup/iso information */
 
     uint32 interval;
     uint32 start_frame;
-    uint32 transfer_flags;
-    uint32 iso_numdesc;
+    uint32 xfer_flags;
+    uint32 ndesc;
 }
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/src/libumockdev-preload.c 
new/umockdev-0.19.9/src/libumockdev-preload.c
--- old/umockdev-0.19.7/src/libumockdev-preload.c       2026-03-26 
10:10:08.000000000 +0100
+++ new/umockdev-0.19.9/src/libumockdev-preload.c       2026-09-20 
18:49:42.000000000 +0200
@@ -119,8 +119,15 @@
     void *fp;
     static void *nextlib;
 
-    if (nextlib == NULL)
+    if (nextlib == NULL) {
+#ifdef __alpha
+       nextlib = dlopen("libc.so.6.1", RTLD_LAZY);
+#else
        nextlib = dlopen("libc.so.6", RTLD_LAZY);
+#endif
+       if (nextlib == NULL)
+           errx(EXIT_FAILURE, "umockdev: %s", dlerror());
+    }
 
     fp = dlsym(nextlib, f);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/src/pcap-usb-1.11.h 
new/umockdev-0.19.9/src/pcap-usb-1.11.h
--- old/umockdev-0.19.7/src/pcap-usb-1.11.h     1970-01-01 01:00:00.000000000 
+0100
+++ new/umockdev-0.19.9/src/pcap-usb-1.11.h     2026-09-20 18:49:42.000000000 
+0200
@@ -0,0 +1,164 @@
+/*
+ * Copyright (c) 2006 Paolo Abeni (Italy)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Basic USB data struct
+ * By Paolo Abeni <[email protected]>
+ */
+
+#ifndef lib_pcap_usb_h
+#define lib_pcap_usb_h
+
+#include <pcap/pcap-inttypes.h>
+
+/*
+ * umockdev: the two typedefs below are the only things this header needs from
+ * libpcap 1.11's pcap/pcap-inttypes.h, copied verbatim from it. We cannot ship
+ * that header as a whole, as it uses the same include guard as the installed
+ * one, so the two would silently shadow each other depending on include order.
+ * Everything else in this file is pcap/usb.h from the libpcap-1.11.0 tag.
+ */
+typedef struct {
+       uint32_t halves[2];
+} pcap_4_byte_aligned_uint64;
+
+typedef struct {
+       uint32_t halves[2];
+} pcap_4_byte_aligned_int64;
+
+/*
+ * possible transfer mode
+ */
+#define URB_TRANSFER_IN   0x80
+#define URB_ISOCHRONOUS   0x0
+#define URB_INTERRUPT     0x1
+#define URB_CONTROL       0x2
+#define URB_BULK          0x3
+
+/*
+ * possible event type
+ */
+#define URB_SUBMIT        'S'
+#define URB_COMPLETE      'C'
+#define URB_ERROR         'E'
+
+/*
+ * USB setup header as defined in USB specification.
+ * Appears at the front of each Control S-type packet in DLT_USB captures.
+ */
+typedef struct _usb_setup {
+       uint8_t bmRequestType;
+       uint8_t bRequest;
+       uint16_t wValue;
+       uint16_t wIndex;
+       uint16_t wLength;
+} pcap_usb_setup;
+
+/*
+ * Information from the URB for Isochronous transfers.
+ */
+typedef struct _iso_rec {
+       int32_t error_count;
+       int32_t numdesc;
+} iso_rec;
+
+/*
+ * Header prepended by linux kernel to each event.
+ * Appears at the front of each packet in DLT_USB_LINUX captures.
+ */
+typedef struct _usb_header {
+       pcap_4_byte_aligned_uint64 id;
+       uint8_t event_type;
+       uint8_t transfer_type;
+       uint8_t endpoint_number;
+       uint8_t device_address;
+       uint16_t bus_id;
+       char setup_flag;/*if !=0 the urb setup header is not present*/
+       char data_flag; /*if !=0 no urb data is present*/
+       pcap_4_byte_aligned_int64 ts_sec;
+       int32_t ts_usec;
+       int32_t status;
+       uint32_t urb_len;
+       uint32_t data_len; /* amount of urb data really present in this event*/
+       pcap_usb_setup setup;
+} pcap_usb_header;
+
+/*
+ * Header prepended by linux kernel to each event for the 2.6.31
+ * and later kernels; for the 2.6.21 through 2.6.30 kernels, the
+ * "iso_rec" information, and the fields starting with "interval"
+ * are zeroed-out padding fields.
+ *
+ * Appears at the front of each packet in DLT_USB_LINUX_MMAPPED captures.
+ */
+typedef struct _usb_header_mmapped {
+       pcap_4_byte_aligned_uint64 id;
+       uint8_t event_type;
+       uint8_t transfer_type;
+       uint8_t endpoint_number;
+       uint8_t device_address;
+       uint16_t bus_id;
+       char setup_flag;/*if !=0 the urb setup header is not present*/
+       char data_flag; /*if !=0 no urb data is present*/
+       pcap_4_byte_aligned_int64 ts_sec;
+       int32_t ts_usec;
+       int32_t status;
+       uint32_t urb_len;
+       uint32_t data_len; /* amount of urb data really present in this event*/
+       union {
+               pcap_usb_setup setup;
+               iso_rec iso;
+       } s;
+       int32_t interval;       /* for Interrupt and Isochronous events */
+       int32_t start_frame;    /* for Isochronous events */
+       uint32_t xfer_flags;    /* copy of URB's transfer flags */
+       uint32_t ndesc; /* number of isochronous descriptors */
+} pcap_usb_header_mmapped;
+
+/*
+ * Maximum number of descriptors supported.
+ * It's currently 128 in the Linux binary USB monitoring code.
+ */
+#define USB_MAXDESC    128
+
+/*
+ * Isochronous descriptors; for isochronous transfers there might be
+ * one or more of these at the beginning of the packet data.  The
+ * number of descriptors is given by the "ndesc" field in the header;
+ * as indicated, in older kernels that don't put the descriptors at
+ * the beginning of the packet, that field is zeroed out, so that field
+ * can be trusted even in captures from older kernels.
+ */
+typedef struct _usb_isodesc {
+       int32_t         status;
+       uint32_t        offset;
+       uint32_t        len;
+       uint8_t pad[4];
+} usb_isodesc;
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/src/pcap_usb.h 
new/umockdev-0.19.9/src/pcap_usb.h
--- old/umockdev-0.19.7/src/pcap_usb.h  1970-01-01 01:00:00.000000000 +0100
+++ new/umockdev-0.19.9/src/pcap_usb.h  2026-09-20 18:49:42.000000000 +0200
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * pcap_usb.h - Reading the 64 bit members of a DLT_USB_LINUX_MMAPPED record
+ *
+ * pcap_next() only aligns the records it hands out to 4 bytes, so the 64 bit
+ * members of the USB pseudo-header must not be read as uint64_t: that asks for
+ * an 8 byte aligned load, which is a SIGBUS on architectures like sparc64.
+ *
+ * libpcap 1.11 declares them as a pair of 32 bit halves for that reason. Older
+ * versions still declare them as uint64_t, so for those we use the header from
+ * 1.11 instead of the installed one. Drop src/pcap-usb-1.11.h and this switch
+ * once we can require libpcap >= 1.11.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <string.h>
+
+#ifdef HAVE_PCAP_ALIGNED_USB_HEADER
+#include <pcap/usb.h>
+#else
+#include "pcap-usb-1.11.h"
+#endif
+
+/* libpcap only grew pcap_4_byte_aligned_uint64_val() in 1.11 */
+static inline uint64_t
+umockdev_pcap_uint64_val(const pcap_4_byte_aligned_uint64 *value)
+{
+    uint64_t result;
+
+    memcpy(&result, value, sizeof(result));
+    return result;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/src/umockdev-ioctl.vala 
new/umockdev-0.19.9/src/umockdev-ioctl.vala
--- old/umockdev-0.19.7/src/umockdev-ioctl.vala 2026-03-26 10:10:08.000000000 
+0100
+++ new/umockdev-0.19.9/src/umockdev-ioctl.vala 2026-09-20 18:49:42.000000000 
+0200
@@ -189,8 +189,8 @@
     public bool reload() throws IOError {
         load_data();
 
-        children.resize(0);
-        children_offset.resize(0);
+        children = {};
+        children_offset = {};
 
         return true;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/src/umockdev-pcap.vala 
new/umockdev-0.19.9/src/umockdev-pcap.vala
--- old/umockdev-0.19.7/src/umockdev-pcap.vala  2026-03-26 10:10:08.000000000 
+0100
+++ new/umockdev-0.19.9/src/umockdev-pcap.vala  2026-09-20 18:49:42.000000000 
+0200
@@ -207,16 +207,16 @@
             usb_header_mmapped *urb_hdr = (void*) cur_buf;
 
             cur_waiting_since = now;
-            last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 1000;
+            last_pkt_time_ms = urb_hdr.ts_sec.val() * 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) {
-            assert(cur_hdr.caplen >= 64);
+            assert(cur_hdr.caplen >= sizeof(usb_header_mmapped));
 
             usb_header_mmapped *urb_hdr = (void*) cur_buf;
 
-            uint64 cur_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 
1000;
+            uint64 cur_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + 
urb_hdr.ts_usec / 1000;
 
             /* Discard anything from a different bus/device */
             if (urb_hdr.bus_id != bus || urb_hdr.device_address != device)
@@ -317,10 +317,10 @@
                     }
 
                     /* Everything matches, mark as submitted */
-                    urb_data.pcap_id = urb_hdr.id;
+                    urb_data.pcap_id = urb_hdr.id.val();
 
                     /* Packet was handled. */
-                    last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec 
/ 1000;
+                    last_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + 
urb_hdr.ts_usec / 1000;
                     break;
                 }
 
@@ -337,7 +337,7 @@
                 for (int i = 0; i < urbs.length; i++) {
                     urb_info = urbs.index(i);
 
-                    if (urb_info.pcap_id == urb_hdr.id) {
+                    if (urb_info.pcap_id == urb_hdr.id.val()) {
                         urb = (Ioctl.usbdevfs_urb*) urb_info.urb_data.data;
                         urbs.remove_index(i);
                         break;
@@ -375,7 +375,7 @@
                 assert(urb_hdr.start_frame == 0);
                 urb.start_frame = (int) urb_hdr.start_frame;
 
-                last_pkt_time_ms = urb_hdr.ts_sec * 1000 + urb_hdr.ts_usec / 
1000;
+                last_pkt_time_ms = urb_hdr.ts_sec.val() * 1000 + 
urb_hdr.ts_usec / 1000;
 
                 return urb_info;
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/tests/run-apt 
new/umockdev-0.19.9/tests/run-apt
--- old/umockdev-0.19.7/tests/run-apt   2026-03-26 10:10:08.000000000 +0100
+++ new/umockdev-0.19.9/tests/run-apt   2026-09-20 18:49:42.000000000 +0200
@@ -42,7 +42,7 @@
 
 # run build as user
 useradd --create-home build
-su -s /bin/sh - build << EOG
+runuser -u build bash << EOG
 set -ex
 git config --global safe.directory /source
 export BRITTLE_TESTS="${BRITTLE_TESTS:-}"
@@ -76,7 +76,7 @@
 # install and run check-installed; make sure there is nothing on stderr (for 
Debian/Ubuntu autopkgtests)
 meson install -C /tmp/dbg
 ldconfig
-su -c 'meson test -C /tmp/dbg -v --num-processes=1 --setup installed 
2>/tmp/installed-err' - build
+runuser -u build -- meson test -C /tmp/dbg -v --num-processes=1 --setup 
installed 2>/tmp/installed-err
 if [ -s /tmp/installed-err ]; then
     echo "installed tests have output on stderr:" >&2
     cat /tmp/installed-err >&2
@@ -84,7 +84,7 @@
 fi
 
 # check build without assertions
-su - build <<EOG
+runuser -u build bash <<EOG
 set -ex
 cd /source
 meson setup /tmp/rel --buildtype release -Db_ndebug=true --prefix /usr 
-Dgtk_doc=true --werror
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/tests/run-dnf 
new/umockdev-0.19.9/tests/run-dnf
--- old/umockdev-0.19.7/tests/run-dnf   2026-03-26 10:10:08.000000000 +0100
+++ new/umockdev-0.19.9/tests/run-dnf   2026-09-20 18:49:42.000000000 +0200
@@ -45,11 +45,11 @@
 fi
 
 # install build and test dependencies
-dnf -y \${repos:-} install meson git gcc clang glib2-devel gtk-doc 
libgudev1-devel libtool libudev-devel libpcap-devel make python3 
python3-gobject-base usbutils vala xz systemd-udev valgrind \$packages
+dnf -y \${repos:-} install meson git gcc clang glib2-devel gtk-doc 
libgudev1-devel libtool libudev-devel libpcap-devel make python3 
python3-gobject-base usbutils vala xz systemd-udev util-linux valgrind 
\$packages
 
 # run build as user
 useradd guest
-su -s /bin/sh - guest << EOG
+runuser -u guest bash << EOG
 set -eux
 git config --global safe.directory /source
 export BRITTLE_TESTS="${BRITTLE_TESTS:-}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/tests/run-gentoo 
new/umockdev-0.19.9/tests/run-gentoo
--- old/umockdev-0.19.7/tests/run-gentoo        2026-03-26 10:10:08.000000000 
+0100
+++ new/umockdev-0.19.9/tests/run-gentoo        2026-09-20 18:49:42.000000000 
+0200
@@ -18,13 +18,20 @@
   --volume `pwd`:/source:ro --volume gentooportage:/var/db/repos/gentoo \
   --cap-add=CAP_SYS_ADMIN --cap-add=CAP_NET_ADMIN --cap-add=CAP_SYS_PTRACE \
   docker.io/gentoo/stage3 /bin/sh -eux <<EOF
-echo 'FEATURES="\${FEATURES} binpkg-request-signature"' >> 
/etc/portage/make.conf
-# install build dependencies
-ACCEPT_KEYWORDS="~*" emerge dev-util/umockdev --with-test-deps --onlydeps 
--getbinpkg
-# HACK: for some reason not part of build deps any more
-emerge --getbinpkg dev-lang/vala
-# install git, "meson dist" dependency
-emerge --getbinpkg dev-vcs/git
+# noman/noinfo/nodoc: skip documentation, not needed for running tests
+echo 'FEATURES="\${FEATURES} binpkg-request-signature noman noinfo nodoc"' >> 
/etc/portage/make.conf
+
+# only allow unstable keywords for umockdev itself, to pick up dependency 
changes;
+# unstable keywords for the whole deptree would miss most binpkgs, which only 
exist for stable
+echo 'dev-util/umockdev ~*' >> /etc/portage/package.accept_keywords/umockdev
+
+# install build dependencies; umockdev itself is built from source below, but 
all
+# dependencies are binary packages, so don't pull in their transitive build 
dependencies
+# (--getbinpkg implies --with-bdeps=n)
+emerge --getbinpkg dev-util/umockdev --with-test-deps --onlydeps
+# --with-bdeps=n misses umockdev's own BDEPEND, so install those explicitly: 
vala and meson;
+# also git, "meson dist" dependency
+emerge --getbinpkg dev-lang/vala dev-build/meson dev-vcs/git
 
 git config --global safe.directory /source
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/umockdev-0.19.7/tests/test-umockdev-vala.vala 
new/umockdev-0.19.9/tests/test-umockdev-vala.vala
--- old/umockdev-0.19.7/tests/test-umockdev-vala.vala   2026-03-26 
10:10:08.000000000 +0100
+++ new/umockdev-0.19.9/tests/test-umockdev-vala.vala   2026-09-20 
18:49:42.000000000 +0200
@@ -575,12 +575,18 @@
   string device;
   Ioctl.usbdevfs_urb* urb_reap = null;
 
+#if !HAVE_PCAP_ALIGNED_USB_HEADER
+  /* Our recording is little endian, so libpcap has to byte swap it here. 
Before
+   * 1.11 it did that with 64 bit loads on a record that it only aligns to 4
+   * bytes, which is a SIGBUS on architectures that do not do unaligned access.
+   */
   GLibc.Utsname utsbuf;
   GLibc.uname (out utsbuf);
   if (utsbuf.machine ==  "sparc64") {
-      stdout.printf ("[SKIP pre-recorded pcap does not work on sparc64]\n");
+      stdout.printf ("[SKIP libpcap < 1.11 crashes on big endian strict 
alignment machines]\n");
       return;
   }
+#endif
 
   /* NOTE: This test is a bit ugly. It wasn't the best idea to use a USB 
keyboard. */
 

Reply via email to