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-12-30 15:55:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/umockdev (Old) and /work/SRC/openSUSE:Factory/.umockdev.new.1896 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "umockdev" Thu Dec 30 15:55:35 2021 rev:7 rq:943063 version:0.17.1 Changes: -------- --- /work/SRC/openSUSE:Factory/umockdev/umockdev.changes 2021-09-28 19:16:31.528185375 +0200 +++ /work/SRC/openSUSE:Factory/.umockdev.new.1896/umockdev.changes 2021-12-30 15:56:00.140681458 +0100 @@ -1,0 +2,12 @@ +Fri Dec 24 20:39:50 UTC 2021 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 0.17.1: + * Fix /sys/dev/* symlinks; regression from 0.15.3 + (gh#martinpitt/umockdev#155). +- Changes from version 0.17.0: + * Add ioctls necessary to record/replay hidraw devices. + * meson: Respect includedir option. + * tests: Fix for Fedora koji emulated architectures s390x and + arm. + +------------------------------------------------------------------- Old: ---- umockdev-0.16.3.tar.xz New: ---- umockdev-0.17.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ umockdev.spec ++++++ --- /var/tmp/diff_new_pack.cafPiv/_old 2021-12-30 15:56:00.716681902 +0100 +++ /var/tmp/diff_new_pack.cafPiv/_new 2021-12-30 15:56:00.720681904 +0100 @@ -19,7 +19,7 @@ %define shlib libumockdev0 %define shlibpre libumockdev-preload0 Name: umockdev -Version: 0.16.3 +Version: 0.17.1 Release: 0 Summary: Mock hardware devices for creating unit tests and bug reporting License: LGPL-2.1-or-later ++++++ umockdev-0.16.3.tar.xz -> umockdev-0.17.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/NEWS new/umockdev-0.17.1/NEWS --- old/umockdev-0.16.3/NEWS 2021-09-15 07:38:31.155431500 +0200 +++ new/umockdev-0.17.1/NEWS 2021-12-14 07:27:23.384868000 +0100 @@ -1,3 +1,12 @@ +## [0.17.1] - 2021-12-14 +- Fix /sys/dev/* symlinks; regression from 0.15.3 (#155) + +## [0.17.0] - 2021-12-11 +- Add ioctls necessary to record/replay hidraw devices (thanks Daiki Ueno) +- meson: Respect includedir option (thanks Florentin Dubois) +- tests: Fix for Fedora koji emulated architectures s390x and arm +- Enable automatic Fedora package updates with packit + ## [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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/devices/hidraw/fido2.ioctl new/umockdev-0.17.1/devices/hidraw/fido2.ioctl --- old/umockdev-0.16.3/devices/hidraw/fido2.ioctl 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/devices/hidraw/fido2.ioctl 2021-12-14 07:27:23.392867800 +0100 @@ -0,0 +1,3 @@ +@DEV /dev/hidraw5 +HIDIOCGRDESCSIZE 0 22000000 +HIDIOCGRDESC 0 2200000006D0F10901A1010920150026FF007508954081020921150026FF00750895409102C0000082D63061000000000000000000000000B4E03E6100000000E2BC9928000000000000000000000000000000000000000000000000000000002F6C696236342F6C0000000400000000E0C1A517807F0000E05FFBB7FF7F000000B0A517807F0000705AFBB7FF7F00000000000000000000882EA317807F000001000000000000000000000400000000685AFBB7FF7F000000000000000000000000000000000000010000000000000000000000000000000075A217807F0000E0C1A517807F0000000000000000000019000000000000000000000000000000000000000000000000000000000000000075A217807F00009064FBB7FF7F00009064FBB7FF7F000000040000000000009064FBB7FF7F000003003E0001000000D0370000000000004000000000000000D84101000000000000000000400038000B0040001D001C000100000004000000000000000000000000000000000000000000000000000000D02D000000000000D02D00000000000000100000000000000100000005000000003000000000000000300000000000000030000000000000259200000000000025920000000000000010000000000000010000000400000000D000000000000000D000 000000000000D0000000000000B83F000000000000B83F00000000000000100000000000000100000006000000003C9F9EE58D9189782B0100000000000691FBB7FF7F00009064FBB7FF7F000000000000000000008064FBB7FF7F000002000000000000000691FBB7FF7F0000B8495517807F0000982B010000000000C084A017807F00003060FBB7FF7F0000205CFBB7FF7F00001191FBB7FF7F00001291FBB7FF7F00009064FBB7FF7F00002060FBB7FF7F00002000000000000000200000000000000008000000000000000400000004000000205CFBB7FF7F00000004000000000000C80200000000000024000000000000002400000000000000040000000000000053E5746404000000A802000000000000A802000000000000A80200000000000020000000000000002000000000000000080000000000000050E5746404000000D4F5000000000000D4F5000000000000D4F50000000000000C030000000000000C03000000000000040000000000000051E574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052E5746404000000781B010000000000782B010000000000782B010000000000880400000000000088040000000000000100000000000000040000001000000005000000474 E5500020000C0040000000300000000000000040000001400000003000000474E5500055148683701BA67CEB970BFD1400D1DCA8FD5E100000000430000003700000008000000090000004180C30042D0E9444C34611C0B80018204200020100111801CC40190001A9110224200088A408004BB8001044238C1220E902040610000A120910101C4820412000000000000000000000000000000000400000000000000F064FBB7FF7F00006F26A317807F00000000000000000000006002000000000068540200000000006854020000000000000000000000000001000000807F000000600200000000000030170000000000FC28170000000000FC2817000000000000600200000000000500000000000000003017000000000000F01B0000000000E2E41B0000000000E2E41B00000000000030170000000000010000000000000000001C000000000000601C000000000070541C0000000000D8E11C000000000000F01B0000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000003A0000000000000000000000000000000000000000000000000000000000 805FFBB7FF7F0000E370A417807F000000000000000000000000000000000000000000000000000000000000000000000400000000000000E05FFBB7FF7F0000E606A517807F0000FFA7A217807F00000000000000000000000000000000000100000000000000000000000000000000E05FFBB7FF7F0000E0C1A517807F000000000004000000002075A217807F0000E29EFBB7FF7F00007F03A517807F0000E05FFBB7FF7F0000F6B4A217807F0000000000000000000018000000000000006C6962756D6F636B6465762D7072656C6F61642E736F2E30002F72616E646F6D2E736F00000000000000000000000000000000000000000000000000000000003060FBB7FF7F0000000400000000000000000000000000000400000000000000B063FBB7FF7F00001B1AA317807F000000000000000000000020000000000000981F000000000000981F00000000000000000000000000000100000000000000002000000000000000D006000000000031C206000000000031C20600000000000020000000000000050000000000000000D00600000000000040090000000000CC3C090000000000CC3C09000000000000D0060000000000010000000000000000500900000000000070090000000000556109000000000030620900000000000040090000000000030000000000000090A10 1000000000048A40100000000000080010000000000030000000000000000700000000000000100000000000000009000000000000000B000000000000078A0000000000000E0A900000000000000800000000000000300000000000000009002000000000003000000000000000CEE0000000000000CEE00000000000000C0000000000000010000000000000000000100000000000020010000000000C010010000000000C81001000000000000F00000000000000300000000000000E88F010000000000000000000000000000B64717807F0000E05BA317807F00000040000000000000E0B54717807F00001700000000000000100000000000000088BA4717807F000000000000000000001500000000000000CC58A317807F0000B063FBB7FF7F000000B0A517807F0000B063FBB7FF7F0000C8D23917807F0000020000C000000000C424A317807F00000A6CFFF6FF0F00008864FBB7FF7F00000000000000000000C424A3170300000030324317807F00005060FBB7FF7F00006062FBB7FF7F00003062090000000000000000000000000000000000807F0000C0C0A517807F0000000000000000000058D13917807F0000FD364517807F0000E0B54717807F0000000000000300000005FD000000000000EC1400080000000005FD000000000000EC140008000000000100000000 000000ED81000000000000000000000000000000000000000000006871090000000000BC3BA317807F00003084A217807F0000F0165117807F000030B8820D00000000010000000000000068FF5017807F0000CF3FA317807F00009103000000000000B8F95117807F00003084A217807F00000864FBB7FF7F00000464FBB7FF7F00000000000000000000302B5017807F000000000000807F0000B8F95117807F0000DF23A217807F000030B8820D000000000464FBB7FF7F0000E00A36000000000028BC4717807F00001000000000000000D822A217807F0000D064FBB7FF7F0000C064FBB7FF7F00000000000000000000E0B54717807F0000E0C1A517000000000000000000000000100000000000000030B8820D000000006865FBB7FF7F0000DF23A217807F00007073A217807F0000C064FBB7FF7F0000D064FBB7FF7F00003149A317807F0000050000000000000010BE4717807F00000100000000000000000000000000000001000000000000000070A217807F00009064FBB7FF7F000010BE4717807F00000070A217807F00007073A217807F00000000000000000000762F6173736572745F706172616D00000100000000000000FFFFFFFF000000000020000000000000886C5117807F00003084A217807F000031A206000000000031A2060000000000001000000000000 0010000000400000000D006000000000000D006000000000000D00600000000002060A217807F00007069FBB7FF7F00001391FBB7FF7F00001391FBB7FF7F000020E3FDBB625500009002FEBB62550000148CA317807F00000100000000000000728CA317807F00000010000000000000886C5117807F00003069FBB7FF7F00003E02A417807F0000B0F7FDBB62550000001E6F17807F000008000000000000000100000000000000B0F7FDBB62550000B0F7FDBB6255000060DA6C17807F0000A802000000000000200000000000000020000000000000000800000000000000801F0000FFFF0200C802000000000000C802000000000000C80200000000000024000000000000002400000000000000040000000000000053E5746404000000A802000000000000A802000000000000A80200000000000020000000000000002000000000000000080000000000000050E574640400000050D10800000000009E515917807F00000000000000000000000000000000000040F7FDBB6255000040000000000000004D61594256775170626165734A392F426D4D57436C674A69356A394A634976310025732F696F63746C2F25730025732FFFFB8B17000000008977FBB7FF7F00006400000000000000200EDABB62550000000000000000000000000000000000006468693A6F3A7072743A 757600696E700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000310000000000000000000000000000000000000000000000000000007C000000770000006E0000005B000000000D4F17807F000000DA6C17807F00003800000000000000A0FFFFFFFFFFFFFFF8F5FDBB6255000090F5FDBB625500000200000000000000060000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080418317807F000000000000000000000100000000000000857F7A17807F000030000000000000009068FBB7FF7F0000D002FEBB62550000FF03000000000000D7FCFDBB625500009A457917807F00009068FBB7FF7F000004917917807F0000D002FEBB62550000D0F6FDBB625500000C00000000000000D002FEBB6255000020C29E17807F0000886AFBB7FF7F0000D002FEBB625500008D188817807F0000D0F6FDBB62550000806AFBB7FF7F0000D002FEBB62550000806AFBB7FF7F0000D002FEBB62550000544E8317807F0000D002FEBB625500000C4F59178 07F0000D002FEBB625500000000000000000000070000000000000007000000000000009000000000000000800000000000000009000000000000001700000000000000B0000000000000000200000000000000D0F6FDBB625500000070A217807F000001000000000000004131A217807F00007C000000 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/devices/hidraw/fido2.script new/umockdev-0.17.1/devices/hidraw/fido2.script --- old/umockdev-0.16.3/devices/hidraw/fido2.script 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/devices/hidraw/fido2.script 2021-12-14 07:27:23.392867800 +0100 @@ -0,0 +1,19 @@ +d 0 /dev/hidraw5 +w 2 ^@?????^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 1 ?????^@^Q^A^A^A^A^A^A^A^A^A?^@^C^B^E^A^B^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@^A?^@^C?^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 1 ^A?^@^C?^@V^@?^A?fU2F_V2hFIDO_2_0^B?khmac-secret^CP??^Q??^JM^U?^F^W^Q^_??}^D?brk^A?^@^C^@?bup?dplat?iclientPin?^E^Y^D?^F?^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@^A?^@^C?^@?^B?^Amrelying party^BX ???YF?^[^A#H?/?V?r??^L?Z?jP???^U{/??^C??bi^@^A?^@^C^@dX@N??[?????Q2=?G^X??^]&c^V^JX^I???%?/??2O?+?t"??^Jh??^E\^P?????^G?^@^A?^@^C^A?K???FJ1dtypejpublic-key^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 269 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 287 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 289 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 287 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 287 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^A?^@^C?^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 124 ^A?^@^C?^@?^@?^A?bidX@N??[?????Q2=?G^X??^]&c^V^JX^I???%?/??2O?+?t"??^Jh??^E\^P^A?^@^C^@?????^G??K???FJ1dtypejpublic-key^BX%??8?????u?W?r^F??xx??^J???^A?^@^C^A?7/?]?[T^A^@^@^A?^CXG0E^B!^@?mwhP?? 2?<^Y\I|???^OQ/^P?^X1??as?d?^B lz?w^A?^@^C^Br??H~(>????b=^I?^V^_???????$U??^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/devices/hidraw/fido2.umockdev new/umockdev-0.17.1/devices/hidraw/fido2.umockdev --- old/umockdev-0.16.3/devices/hidraw/fido2.umockdev 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/devices/hidraw/fido2.umockdev 2021-12-14 07:27:23.392867800 +0100 @@ -0,0 +1,428 @@ +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1/1-2/1-2.3/1-2.3:1.0/0003:1050:0120.000A/hidraw/hidraw5 +N: hidraw5 +E: DEVNAME=/dev/hidraw5 +E: MAJOR=240 +E: MINOR=5 +E: SUBSYSTEM=hidraw +E: ID_FIDO_TOKEN=1 +E: ID_SECURITY_TOKEN=1 +E: ID_PATH=pci-0000:05:00.3-usb-0:2.3:1.0 +E: ID_PATH_TAG=pci-0000_05_00_3-usb-0_2_3_1_0 +E: ID_FOR_SEAT=hidraw-pci-0000_05_00_3-usb-0_2_3_1_0 +E: TAGS=:seat:uaccess:security-device: +E: CURRENT_TAGS=:seat:uaccess:security-device: +A: dev=240:5\n +L: device=../../../0003:1050:0120.000A +A: power/control=auto\n +A: power/runtime_active_time=0\n +A: power/runtime_status=unsupported\n +A: power/runtime_suspended_time=0\n + +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1/1-2/1-2.3/1-2.3:1.0/0003:1050:0120.000A +E: DRIVER=hid-generic +E: HID_ID=0003:00001050:00000120 +E: HID_NAME=Yubico Security Key by Yubico +E: HID_PHYS=usb-0000:05:00.3-2.3/input0 +E: HID_UNIQ= +E: MODALIAS=hid:b0003g0001v00001050p00000120 +E: SUBSYSTEM=hid +A: country=00\n +L: driver=../../../../../../../../../bus/hid/drivers/hid-generic +A: modalias=hid:b0003g0001v00001050p00000120\n +A: power/control=auto\n +A: power/runtime_active_time=0\n +A: power/runtime_status=unsupported\n +A: power/runtime_suspended_time=0\n +H: report_descriptor=06D0F10901A1010920150026FF007508954081020921150026FF00750895409102C0 + +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1/1-2/1-2.3/1-2.3:1.0 +E: DEVTYPE=usb_interface +E: DRIVER=usbhid +E: PRODUCT=1050/120/512 +E: TYPE=0/0/0 +E: INTERFACE=3/0/0 +E: MODALIAS=usb:v1050p0120d0512dc00dsc00dp00ic03isc00ip00in00 +E: SUBSYSTEM=usb +E: ID_VENDOR_FROM_DATABASE=Yubico.com +E: ID_MODEL_FROM_DATABASE=Yubikey Touch U2F Security Key +E: ID_PATH=pci-0000:05:00.3-usb-0:2.3:1.0 +E: ID_PATH_TAG=pci-0000_05_00_3-usb-0_2_3_1_0 +A: authorized=1\n +A: bAlternateSetting= 0\n +A: bInterfaceClass=03\n +A: bInterfaceNumber=00\n +A: bInterfaceProtocol=00\n +A: bInterfaceSubClass=00\n +A: bNumEndpoints=02\n +L: driver=../../../../../../../../bus/usb/drivers/usbhid +A: modalias=usb:v1050p0120d0512dc00dsc00dp00ic03isc00ip00in00\n +A: supports_autosuspend=1\n + +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1/1-2/1-2.3 +N: bus/usb/001/012=12010002000000405010200112050102000109022900010100800F0904000002030000000921100100012222000705040340000207058403400002 +E: DEVNAME=/dev/bus/usb/001/012 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=1050/120/512 +E: TYPE=0/0/0 +E: BUSNUM=001 +E: DEVNUM=012 +E: MAJOR=189 +E: MINOR=11 +E: SUBSYSTEM=usb +E: ID_VENDOR=Yubico +E: ID_VENDOR_ENC=Yubico +E: ID_VENDOR_ID=1050 +E: ID_MODEL=Security_Key_by_Yubico +E: ID_MODEL_ENC=Security\x20Key\x20by\x20Yubico +E: ID_MODEL_ID=0120 +E: ID_REVISION=0512 +E: ID_SERIAL=Yubico_Security_Key_by_Yubico +E: ID_BUS=usb +E: ID_USB_INTERFACES=:030000: +E: ID_VENDOR_FROM_DATABASE=Yubico.com +E: ID_MODEL_FROM_DATABASE=Yubikey Touch U2F Security Key +E: ID_PATH=pci-0000:05:00.3-usb-0:2.3 +E: ID_PATH_TAG=pci-0000_05_00_3-usb-0_2_3 +E: ID_FOR_SEAT=usb-pci-0000_05_00_3-usb-0_2_3 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=00\n +A: bDeviceProtocol=00\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=30mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0512\n +A: bmAttributes=80\n +A: busnum=1\n +A: configuration= +H: descriptors=12010002000000405010200112050102000109022900010100800F0904000002030000000921100100012222000705040340000207058403400002 +A: dev=189:11\n +A: devnum=12\n +A: devpath=2.3\n +L: driver=../../../../../../../bus/usb/drivers/usb +A: idProduct=0120\n +A: idVendor=1050\n +A: ltm_capable=no\n +A: manufacturer=Yubico\n +A: maxchild=0\n +L: port=../1-2:1.0/1-2-port3 +A: power/active_duration=7291\n +A: power/autosuspend=2\n +A: power/autosuspend_delay_ms=2000\n +A: power/connected_duration=7292\n +A: power/control=on\n +A: power/level=on\n +A: power/persist=1\n +A: power/runtime_active_time=7118\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: product=Security Key by Yubico\n +A: quirks=0x0\n +A: removable=unknown\n +A: rx_lanes=1\n +A: speed=12\n +A: tx_lanes=1\n +A: urbnum=13\n +A: version= 2.00\n + +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1/1-2 +N: bus/usb/001/002=1201100209000240DA0B115404010102000109022900010100E0000904000001090001000705810301000C0904000101090002000705810301000C +E: DEVNAME=/dev/bus/usb/001/002 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=bda/5411/104 +E: TYPE=9/0/2 +E: BUSNUM=001 +E: DEVNUM=002 +E: MAJOR=189 +E: MINOR=1 +E: SUBSYSTEM=usb +E: ID_VENDOR=Generic +E: ID_VENDOR_ENC=Generic +E: ID_VENDOR_ID=0bda +E: ID_MODEL=4-Port_USB_2.0_Hub +E: ID_MODEL_ENC=4-Port\x20USB\x202.0\x20Hub +E: ID_MODEL_ID=5411 +E: ID_REVISION=0104 +E: ID_SERIAL=Generic_4-Port_USB_2.0_Hub +E: ID_BUS=usb +E: ID_USB_INTERFACES=:090001:090002: +E: ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Corp. +E: ID_MODEL_FROM_DATABASE=RTS5411 Hub +E: ID_PATH=pci-0000:05:00.3-usb-0:2 +E: ID_PATH_TAG=pci-0000_05_00_3-usb-0_2 +E: ID_FOR_SEAT=usb-pci-0000_05_00_3-usb-0_2 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=09\n +A: bDeviceProtocol=02\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=0mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0104\n +A: bmAttributes=e0\n +A: busnum=1\n +A: configuration= +H: descriptors=1201100209000240DA0B115404010102000109022900010100E0000904000001090001000705810301000C0904000101090002000705810301000C +A: dev=189:1\n +A: devnum=2\n +A: devpath=2\n +L: driver=../../../../../../bus/usb/drivers/usb +L: firmware_node=../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0e/device:16/device:17/device:19 +A: idProduct=5411\n +A: idVendor=0bda\n +A: ltm_capable=no\n +A: manufacturer=Generic\n +A: maxchild=4\n +L: port=../1-0:1.0/usb1-port2 +A: power/active_duration=40292203\n +A: power/autosuspend=0\n +A: power/autosuspend_delay_ms=0\n +A: power/connected_duration=40292204\n +A: power/control=auto\n +A: power/level=auto\n +A: power/runtime_active_time=40291955\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: product=4-Port USB 2.0 Hub\n +A: quirks=0x0\n +A: removable=removable\n +A: rx_lanes=1\n +A: speed=480\n +A: tx_lanes=1\n +A: urbnum=157\n +A: version= 2.10\n + +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1 +N: bus/usb/001/001=12010002090001406B1D020013050302010109021900010100E0000904000001090000000705810304000C +E: DEVNAME=/dev/bus/usb/001/001 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=1d6b/2/513 +E: TYPE=9/0/1 +E: BUSNUM=001 +E: DEVNUM=001 +E: MAJOR=189 +E: MINOR=0 +E: SUBSYSTEM=usb +E: ID_VENDOR=Linux_5.13.16-200.fc34.x86_64_xhci-hcd +E: ID_VENDOR_ENC=Linux\x205.13.16-200.fc34.x86_64\x20xhci-hcd +E: ID_VENDOR_ID=1d6b +E: ID_MODEL=xHCI_Host_Controller +E: ID_MODEL_ENC=xHCI\x20Host\x20Controller +E: ID_MODEL_ID=0002 +E: ID_REVISION=0513 +E: ID_SERIAL=Linux_5.13.16-200.fc34.x86_64_xhci-hcd_xHCI_Host_Controller_0000:05:00.3 +E: ID_SERIAL_SHORT=0000:05:00.3 +E: ID_BUS=usb +E: ID_USB_INTERFACES=:090000: +E: ID_VENDOR_FROM_DATABASE=Linux Foundation +E: ID_AUTOSUSPEND=1 +E: ID_MODEL_FROM_DATABASE=2.0 root hub +E: ID_PATH=pci-0000:05:00.3 +E: ID_PATH_TAG=pci-0000_05_00_3 +E: ID_FOR_SEAT=usb-pci-0000_05_00_3 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: authorized_default=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=09\n +A: bDeviceProtocol=01\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=0mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0513\n +A: bmAttributes=e0\n +A: busnum=1\n +A: configuration= +H: descriptors=12010002090001406B1D020013050302010109021900010100E0000904000001090000000705810304000C +A: dev=189:0\n +A: devnum=1\n +A: devpath=0\n +L: driver=../../../../../bus/usb/drivers/usb +L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0e/device:16/device:17 +A: idProduct=0002\n +A: idVendor=1d6b\n +A: interface_authorized_default=1\n +A: ltm_capable=no\n +A: manufacturer=Linux 5.13.16-200.fc34.x86_64 xhci-hcd\n +A: maxchild=4\n +A: power/active_duration=40292347\n +A: power/autosuspend=0\n +A: power/autosuspend_delay_ms=0\n +A: power/connected_duration=40292347\n +A: power/control=auto\n +A: power/level=auto\n +A: power/runtime_active_time=40292345\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: product=xHCI Host Controller\n +A: quirks=0x0\n +A: removable=unknown\n +A: rx_lanes=1\n +A: serial=0000:05:00.3\n +A: speed=480\n +A: tx_lanes=1\n +A: urbnum=44\n +A: version= 2.00\n + +P: /devices/pci0000:00/0000:00:08.1/0000:05:00.3 +E: DRIVER=xhci_hcd +E: PCI_CLASS=C0330 +E: PCI_ID=1022:15E0 +E: PCI_SUBSYS_ID=1849:7914 +E: PCI_SLOT_NAME=0000:05:00.3 +E: MODALIAS=pci:v00001022d000015E0sv00001849sd00007914bc0Csc03i30 +E: SUBSYSTEM=pci +E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller +E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller +E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI +E: ID_VENDOR_FROM_DATABASE=Advanced Micro Devices, Inc. [AMD] +E: ID_MODEL_FROM_DATABASE=Raven USB 3.1 +A: ari_enabled=0\n +A: broken_parity_status=0\n +A: class=0x0c0330\n +H: config=2210E015070410000030030C10008000040080FC00000000000000000000000000000000000000000000000049181479000000004800000000000000FF040000 +A: consistent_dma_mask_bits=64\n +A: current_link_speed=8.0 GT/s PCIe\n +A: current_link_width=16\n +A: d3cold_allowed=1\n +A: dbc=disabled\n +A: device=0x15e0\n +A: dma_mask_bits=64\n +L: driver=../../../../bus/pci/drivers/xhci_hcd +A: driver_override=(null)\n +A: enable=1\n +L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0e/device:16 +L: iommu=../../0000:00:00.2/iommu/ivhd0 +L: iommu_group=../../../../kernel/iommu_groups/14 +A: irq=34\n +A: link/l0s_aspm=0\n +A: link/l1_aspm=0\n +A: local_cpulist=0-3\n +A: local_cpus=0000000f\n +A: max_link_speed=8.0 GT/s PCIe\n +A: max_link_width=16\n +A: modalias=pci:v00001022d000015E0sv00001849sd00007914bc0Csc03i30\n +A: msi_bus=1\n +A: msi_irqs/35=msix\n +A: msi_irqs/36=msix\n +A: msi_irqs/37=msix\n +A: msi_irqs/38=msix\n +A: msi_irqs/39=msix\n +A: numa_node=-1\n +A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 17 18 2112 18\nxHCI ring segments 52 54 4096 54\nbuffer-2048 0 6 2048 3\nbuffer-512 0 0 512 0\nbuffer-128 18 32 128 1\nbuffer-32 0 0 32 0\n +A: power/control=on\n +A: power/runtime_active_time=40292436\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/wakeup=enabled\n +A: power/wakeup_abort_count=0\n +A: power/wakeup_active=0\n +A: power/wakeup_active_count=0\n +A: power/wakeup_count=0\n +A: power/wakeup_expire_count=0\n +A: power/wakeup_last_time_ms=0\n +A: power/wakeup_max_time_ms=0\n +A: power/wakeup_total_time_ms=0\n +A: power_state=D0\n +A: resource=0x00000000fc800000 0x00000000fc8fffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n +A: revision=0x00\n +A: subsystem_device=0x7914\n +A: subsystem_vendor=0x1849\n +A: vendor=0x1022\n + +P: /devices/pci0000:00/0000:00:08.1 +E: DRIVER=pcieport +E: PCI_CLASS=60400 +E: PCI_ID=1022:15DB +E: PCI_SUBSYS_ID=1022:0000 +E: PCI_SLOT_NAME=0000:00:08.1 +E: MODALIAS=pci:v00001022d000015DBsv00001022sd00000000bc06sc04i00 +E: SUBSYSTEM=pci +E: ID_PCI_CLASS_FROM_DATABASE=Bridge +E: ID_PCI_SUBCLASS_FROM_DATABASE=PCI bridge +E: ID_PCI_INTERFACE_FROM_DATABASE=Normal decode +E: ID_VENDOR_FROM_DATABASE=Advanced Micro Devices, Inc. [AMD] +E: ID_MODEL_FROM_DATABASE=Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A +A: ari_enabled=0\n +A: broken_parity_status=0\n +A: class=0x060400\n +H: config=2210DB15070410000000040610008100000000000000000000050500E1E1000070FCA0FC01E011F00000000000000000000000005000000000000000FF011200 +A: consistent_dma_mask_bits=32\n +A: current_link_speed=8.0 GT/s PCIe\n +A: current_link_width=16\n +A: d3cold_allowed=1\n +A: device=0x15db\n +A: dma_mask_bits=32\n +L: driver=../../../bus/pci/drivers/pcieport +A: driver_override=(null)\n +A: enable=2\n +L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0e +L: iommu=../0000:00:00.2/iommu/ivhd0 +L: iommu_group=../../../kernel/iommu_groups/6 +A: irq=30\n +A: local_cpulist=0-3\n +A: local_cpus=0000000f\n +A: max_link_speed=8.0 GT/s PCIe\n +A: max_link_width=16\n +A: modalias=pci:v00001022d000015DBsv00001022sd00000000bc06sc04i00\n +A: msi_bus=1\n +A: msi_irqs/30=msi\n +A: numa_node=-1\n +A: power/autosuspend_delay_ms=100\n +A: power/control=auto\n +A: power/runtime_active_time=40292453\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/wakeup=enabled\n +A: power/wakeup_abort_count=0\n +A: power/wakeup_active=0\n +A: power/wakeup_active_count=0\n +A: power/wakeup_count=0\n +A: power/wakeup_expire_count=0\n +A: power/wakeup_last_time_ms=0\n +A: power/wakeup_max_time_ms=0\n +A: power/wakeup_total_time_ms=0\n +A: power_state=D0\n +A: resource=0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x000000000000e000 0x000000000000efff 0x0000000000000101\n0x00000000fc700000 0x00000000fcafffff 0x0000000000000200\n0x00000000e0000000 0x00000000f01fffff 0x0000000000102201\n0x0000000000000000 0x0000000000000000 0x0000000000000000\ n +A: revision=0x00\n +A: secondary_bus_number=5\n +A: subordinate_bus_number=5\n +A: subsystem_device=0x0000\n +A: subsystem_vendor=0x1022\n +A: vendor=0x1022\n + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/meson.build new/umockdev-0.17.1/meson.build --- old/umockdev-0.16.3/meson.build 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/meson.build 2021-12-14 07:27:23.396868000 +0100 @@ -86,6 +86,7 @@ preload_lib = shared_library('umockdev-preload', ['src/libumockdev-preload.c', 'src/debug.c', + 'src/utils.c', 'src/ioctl_tree.c'], c_args: ['-fvisibility=default'], version: '0.0.0', @@ -111,6 +112,7 @@ 'src/uevent_sender.c', 'src/ioctl_tree.vapi', 'src/ioctl_tree.c', + 'src/utils.c', 'src/debug.c'], vala_vapi: 'umockdev-1.0.vapi', vala_gir: 'UMockdev-1.0.gir', @@ -128,7 +130,7 @@ include_directories: include_directories('src'), version: lib_version, install: true, - install_dir: [true, 'include/umockdev-1.0', true, true]) + install_dir: [true, get_option('includedir') / 'umockdev-1.0', true, true]) # no way to insert "Rename to:" into annotations, so hack it hacked_gir = custom_target('UMockdev-1.0 hacked gir', @@ -172,6 +174,7 @@ 'src/umockdev-spi.vala', 'src/ioctl_tree.vapi', 'src/ioctl_tree.c', + 'src/utils.c', 'src/debug.c'], dependencies: [glib, gobject, gio_unix, vapi_posix, vapi_config, vapi_ioctl, libpcap], link_with: [umockdev_utils_lib], @@ -238,6 +241,7 @@ test('ioctl-tree', executable('test-ioctl-tree', ['tests/test-ioctl-tree.c', 'src/ioctl_tree.c', + 'src/utils.c', 'src/debug.c'], include_directories: include_directories('src'), dependencies: [glib])) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/packaging/umockdev.spec new/umockdev-0.17.1/packaging/umockdev.spec --- old/umockdev-0.16.3/packaging/umockdev.spec 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/packaging/umockdev.spec 2021-12-14 07:27:23.396868000 +0100 @@ -0,0 +1,74 @@ +Name: umockdev +Version: 0 +Release: 1%{?dist} +Summary: Mock hardware devices + +License: LGPLv2+ +URL: https://github.com/martinpitt/%{name} +Source0: https://github.com/martinpitt/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz + +BuildRequires: git +BuildRequires: meson +BuildRequires: gtk-doc +BuildRequires: gobject-introspection-devel +BuildRequires: glib2-devel +BuildRequires: libgudev1-devel systemd-devel +BuildRequires: libpcap-devel +BuildRequires: vala +BuildRequires: chrpath +BuildRequires: systemd-udev + +%description +With this program and libraries you can easily create mock udev objects. +This is useful for writing tests for software which talks to +hardware devices. + +%package devel +Summary: Development packages for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains the libraries to develop +using %{name}. + +%prep +%autosetup -S git -n %{name}-%{version} + +%build +%meson -Dgtk_doc=true +%meson_build + +%check +%meson_test + +%install +%meson_install + +# Remove rpath +chrpath --delete %{buildroot}%{_bindir}/umockdev-record \ + %{buildroot}%{_bindir}/umockdev-run +chrpath --delete %{buildroot}%{_libdir}/libumockdev.so.* +chrpath --delete %{buildroot}%{_libdir}/libumockdev-preload.so.* + +rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/umockdev + +%ldconfig_scriptlets + +%files +%license COPYING +%doc README.md +%{_bindir}/umockdev-* +%{_libdir}/libumockdev.so.* +%{_libdir}/libumockdev-preload.so* +%{_libdir}/girepository-1.0/UMockdev-1.0.typelib + +%files devel +%doc docs/script-format.txt docs/examples/battery.c docs/examples/battery.py +%{_libdir}/libumockdev.so +%{_libdir}/pkgconfig/umockdev-1.0.pc +%{_datadir}/gir-1.0/UMockdev-1.0.gir +%{_includedir}/umockdev-1.0 +%{_datadir}/gtk-doc/html/umockdev/ +%{_datadir}/vala/vapi/umockdev-1.0.vapi + +%changelog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/packit.yaml new/umockdev-0.17.1/packit.yaml --- old/umockdev-0.16.3/packit.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/packit.yaml 2021-12-14 07:27:23.396868000 +0100 @@ -0,0 +1,30 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ +specfile_path: packaging/umockdev.spec +upstream_project_url: https://github.com/martinpitt/umockdev +copy_upstream_release_description: true +upstream_package_name: umockdev +downstream_package_name: umockdev + +synced_files: + - src: packaging/umockdev.spec + dest: umockdev.spec + +jobs: + - job: copr_build + trigger: pull_request + metadata: + targets: + - fedora-development-x86_64 + - fedora-development-i386 + - fedora-development-aarch64 + - fedora-development-ppc64le + - fedora-development-s390x + - fedora-development-armhfp + + - job: propose_downstream + trigger: release + metadata: + dist_git_branches: + - fedora-development + - fedora-stable diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/debug.c new/umockdev-0.17.1/src/debug.c --- old/umockdev-0.16.3/src/debug.c 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/src/debug.c 2021-12-14 07:27:23.396868000 +0100 @@ -3,6 +3,7 @@ #include <stdio.h> #include "debug.h" +#include "utils.h" unsigned debug_categories = 0; @@ -13,7 +14,7 @@ char *d_copy, *token; if (d == NULL) return; - d_copy = strdup(d); + d_copy = strdupx(d); for (token = strtok(d_copy, " ,"); token; token = strtok(NULL, " ,")) { if (strcmp (token, "all") == 0) debug_categories = ~0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/ioctl.vapi new/umockdev-0.17.1/src/ioctl.vapi --- old/umockdev-0.16.3/src/ioctl.vapi 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/src/ioctl.vapi 2021-12-14 07:27:23.396868000 +0100 @@ -119,5 +119,17 @@ uint8 word_delay_usecs; uint8 pad; } + + [CCode (cheader_filename = "linux/hidraw.h")] + public const int HIDIOCGRDESCSIZE; + [CCode (cheader_filename = "linux/hidraw.h")] + public const int HIDIOCGRDESC; + [CCode (cheader_filename = "linux/hid.h")] + public const int HID_MAX_DESCRIPTOR_SIZE; + [CCode (cname = "struct hidraw_report_descriptor", cheader_filename = "linux/hidraw.h")] + public struct hidraw_report_descriptor { + uint32 size; + uint8 value[HID_MAX_DESCRIPTOR_SIZE]; + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/ioctl_tree.c new/umockdev-0.17.1/src/ioctl_tree.c --- old/umockdev-0.16.3/src/ioctl_tree.c 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/src/ioctl_tree.c 2021-12-14 07:27:23.396868000 +0100 @@ -24,8 +24,10 @@ #include <linux/ioctl.h> #include <linux/usbdevice_fs.h> #include <linux/input.h> +#include <linux/hidraw.h> #include "debug.h" +#include "utils.h" #include "ioctl_tree.h" #define TRUE 1 @@ -33,16 +35,6 @@ #define UNUSED __attribute__ ((unused)) -static void * -callocx (size_t nmemb, size_t size) -{ - void *r = calloc (nmemb, size); - if (r == NULL) { - perror ("failed to allocate memory"); - abort (); - } - return r; -} /*********************************** * @@ -327,7 +319,7 @@ ioctl_node_list_new(void) { ioctl_node_list *l; - l = malloc(sizeof(ioctl_node_list)); + l = mallocx(sizeof(ioctl_node_list)); l->n = 0; l->capacity = 10; l->items = callocx(sizeof(ioctl_tree *), l->capacity); @@ -495,7 +487,7 @@ ioctl_simplestruct_init_from_bin(ioctl_tree * node, const void *data) { DBG(DBG_IOCTL_TREE, "ioctl_simplestruct_init_from_bin: %s(%X): size is %u bytes\n", node->type->name, (unsigned) node->id, (unsigned) NSIZE(node)); - node->data = malloc(NSIZE(node)); + node->data = mallocx(NSIZE(node)); memcpy(node->data, data, NSIZE(node)); } @@ -506,7 +498,7 @@ * correct length for data; this happens for variable length ioctls such as * EVIOCGBIT */ size_t data_len = strlen(data) / 2; - node->data = malloc(data_len); + node->data = mallocx(data_len); if (NSIZE(node) != data_len) { DBG(DBG_IOCTL_TREE, "ioctl_simplestruct_init_from_text: adjusting ioctl ID %X (size %u) to actual data length %zu\n", @@ -569,7 +561,7 @@ { size_t size = node->type->get_data_size(node->id, data); DBG(DBG_IOCTL_TREE, "ioctl_varlenstruct_init_from_bin: %s(%X): size is %zu bytes\n", node->type->name, (unsigned) node->id, size); - node->data = malloc(size); + node->data = mallocx(size); memcpy(node->data, data, size); } @@ -578,7 +570,7 @@ { size_t data_len = strlen(data) / 2; - node->data = malloc(data_len); + node->data = mallocx(data_len); if (!read_hex(data, node->data, data_len)) { fprintf(stderr, "ioctl_varlenstruct_init_from_text: failed to parse '%s'\n", data); @@ -944,6 +936,27 @@ I_NAMED_SIMPLE_STRUCT_IN(EVIOCGMTSLOTS(32), "EVIOCGMTSLOTS", 0, ioctl_insertion_parent_stateless), #endif + /* hidraw */ + I_SIMPLE_STRUCT_IN(HIDIOCGRDESCSIZE, 0, ioctl_insertion_parent_stateless), + I_SIMPLE_STRUCT_IN(HIDIOCGRDESC, 0, ioctl_insertion_parent_stateless), + I_SIMPLE_STRUCT_IN(HIDIOCGRAWINFO, 0, ioctl_insertion_parent_stateless), + /* we define these with len==32, but they apply to any len */ + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCGRAWNAME(32), "HIDIOCGRAWNAME", 0, ioctl_insertion_parent_stateless), + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCGRAWPHYS(32), "HIDIOCGRAWPHYS", 0, ioctl_insertion_parent_stateless), + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCSFEATURE(32), "HIDIOCSFEATURE", 0, ioctl_insertion_parent_stateless), + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCGFEATURE(32), "HIDIOCGFEATURE", 0, ioctl_insertion_parent_stateless), + /* this was introduced not too long ago */ +#ifdef HIDIOCGRAWUNIQ + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCGRAWUNIQ(32), "HIDIOCGRAWUNIQ", 0, ioctl_insertion_parent_stateless), +#endif + /* these were introduced not too long ago */ +#ifdef HIDIOCSINPUT + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCSINPUT(32), "HIDIOCSINPUT", 0, ioctl_insertion_parent_stateless), + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCGINPUT(32), "HIDIOCGINPUT", 0, ioctl_insertion_parent_stateless), + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCSOUTPUT(32), "HIDIOCSOUTPUT", 0, ioctl_insertion_parent_stateless), + I_NAMED_SIMPLE_STRUCT_IN(HIDIOCGOUTPUT(32), "HIDIOCGOUTPUT", 0, ioctl_insertion_parent_stateless), +#endif + /* terminator */ {0, 0, 0, "", NULL, NULL, NULL, NULL, NULL} }; @@ -977,7 +990,7 @@ long offset = 0; /* chop off real name from offset */ - real_name = strdup(name); + real_name = strdupx(name); parens = strchr(real_name, '('); if (parens != NULL) { *parens = '\0'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/libumockdev-preload.c new/umockdev-0.17.1/src/libumockdev-preload.c --- old/umockdev-0.16.3/src/libumockdev-preload.c 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/src/libumockdev-preload.c 2021-12-14 07:27:23.396868000 +0100 @@ -57,6 +57,7 @@ #include "config.h" #include "debug.h" +#include "utils.h" #include "ioctl_tree.h" /* fix missing O_TMPFILE on some systems */ @@ -483,9 +484,9 @@ } } - fdinfo = malloc(sizeof(struct ioctl_fd_info)); + fdinfo = mallocx(sizeof(struct ioctl_fd_info)); fdinfo->ioctl_sock = sock; - fdinfo->dev_path = strdup(dev_path); + fdinfo->dev_path = strdupx(dev_path); fdinfo->is_default = is_default; pthread_mutex_init(&fdinfo->sock_lock, NULL); @@ -856,7 +857,7 @@ } } - srinfo = malloc(sizeof(struct script_record_info)); + srinfo = mallocx(sizeof(struct script_record_info)); srinfo->log = log; if (clock_gettime(CLOCK_MONOTONIC, &srinfo->time) < 0) { fprintf(stderr, "libumockdev-preload: failed to clock_gettime: %m\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/uevent_sender.c new/umockdev-0.17.1/src/uevent_sender.c --- old/umockdev-0.16.3/src/uevent_sender.c 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/src/uevent_sender.c 2021-12-14 07:27:23.396868000 +0100 @@ -30,6 +30,7 @@ #include <libudev.h> +#include "utils.h" #include "uevent_sender.h" struct _uevent_sender { @@ -49,7 +50,7 @@ perror("uevent_sender_open: cannot allocate struct"); abort(); } - s->rootpath = strdup(rootpath); + s->rootpath = strdupx(rootpath); s->udev = udev_new(); snprintf(s->socket_glob, sizeof(s->socket_glob), "%s/event[0-9]*", rootpath); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/umockdev.vala new/umockdev-0.17.1/src/umockdev.vala --- old/umockdev-0.16.3/src/umockdev.vala 2021-09-15 07:38:31.167431600 +0200 +++ new/umockdev-0.17.1/src/umockdev.vala 2021-12-14 07:27:23.400868000 +0100 @@ -511,18 +511,18 @@ for (int i = 0; i < attributes.length - 1; i += 2) { this.set_attribute(dev_path, attributes[i], attributes[i+1]); if (attributes[i] == "dev" && dev_node != null) { + var val = attributes[i+1].strip(); // strip off trailing \n /* put the major/minor information into /dev for our preload */ string infodir = Path.build_filename(this.root_dir, "dev", ".node"); DirUtils.create_with_parents(infodir, 0755); - assert(FileUtils.symlink(attributes[i+1], - Path.build_filename(infodir, dev_node.replace("/", "_"))) == 0); + assert(FileUtils.symlink(val, Path.build_filename(infodir, dev_node.replace("/", "_"))) == 0); /* create a /sys/dev link for it, like in real sysfs */ string sysdev_dir = Path.build_filename(this.sys_dir, "dev", (dev_path.contains("/block/") ? "block" : "char")); if (DirUtils.create_with_parents(sysdev_dir, 0755) != 0) error("cannot create dir '%s': %s", sysdev_dir, strerror(errno)); - string dest = Path.build_filename(sysdev_dir, attributes[i+1]); + string dest = Path.build_filename(sysdev_dir, val); if (!FileUtils.test(dest, FileTest.EXISTS)) { if (FileUtils.symlink("../../" + dev_path.substring(5), dest) < 0) error("add_device %s: failed to symlink %s to %s: %s", name, dest, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/utils.c new/umockdev-0.17.1/src/utils.c --- old/umockdev-0.16.3/src/utils.c 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/src/utils.c 2021-12-14 07:27:23.400868000 +0100 @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "utils.h" + +static void +abort_errno (const char *msg) +{ + perror (msg); + abort (); +} + +void * +callocx (size_t nmemb, size_t size) +{ + void *r = calloc (nmemb, size); + if (r == NULL) + abort_errno ("failed to allocate memory"); + return r; +} + +void * +mallocx (size_t size) +{ + void *r = malloc (size); + if (r == NULL) + abort_errno ("failed to allocate memory"); + return r; +} + + +char * +strdupx (const char *s) +{ + char *r = strdup (s); + if (r == NULL) + abort_errno ("failed to allocate memory for strdup"); + return r; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/src/utils.h new/umockdev-0.17.1/src/utils.h --- old/umockdev-0.16.3/src/utils.h 1970-01-01 01:00:00.000000000 +0100 +++ new/umockdev-0.17.1/src/utils.h 2021-12-14 07:27:23.400868000 +0100 @@ -0,0 +1,6 @@ +#pragma once + +/* variants of glibc functions that abort() on ENOMEM */ +void *mallocx (size_t size); +void *callocx (size_t nmemb, size_t size); +char *strdupx (const char *s); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/tests/run-apt new/umockdev-0.17.1/tests/run-apt --- old/umockdev-0.16.3/tests/run-apt 2021-09-15 07:38:31.171431800 +0200 +++ new/umockdev-0.17.1/tests/run-apt 2021-12-14 07:27:23.400868000 +0100 @@ -27,8 +27,8 @@ apt-get install -y eatmydata eatmydata apt-get -y --purge dist-upgrade -# install build dependencies -eatmydata apt-get install -y --no-install-recommends meson git pkg-config valac libglib2.0-dev libudev-dev libgudev-1.0-dev libpcap-dev python3-gi gobject-introspection libgirepository1.0-dev gir1.2-glib-2.0 gir1.2-gudev-1.0 gtk-doc-tools udev xserver-xorg-video-dummy xserver-xorg-input-evdev xserver-xorg-input-synaptics xinput usbutils gphoto2 valgrind +# install build and test dependencies +eatmydata apt-get install -y --no-install-recommends meson git pkg-config valac libglib2.0-dev libudev-dev libgudev-1.0-dev libpcap-dev python3-gi gobject-introspection libgirepository1.0-dev gir1.2-glib-2.0 gir1.2-gudev-1.0 gtk-doc-tools udev xserver-xorg-video-dummy xserver-xorg-input-evdev xserver-xorg-input-synaptics xinput usbutils evtest gphoto2 valgrind # run build as user useradd build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/tests/run-dnf new/umockdev-0.17.1/tests/run-dnf --- old/umockdev-0.16.3/tests/run-dnf 2021-09-15 07:38:31.171431800 +0200 +++ new/umockdev-0.17.1/tests/run-dnf 2021-12-14 07:27:23.400868000 +0100 @@ -30,15 +30,15 @@ gtk_doc=true fi -# install build 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 +# 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 evtest gphoto2 valgrind \$packages # run build as user useradd guest 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 --werror +CFLAGS="-fanalyzer" 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/tests/test-umockdev-run.vala new/umockdev-0.17.1/tests/test-umockdev-run.vala --- old/umockdev-0.16.3/tests/test-umockdev-run.vala 2021-09-15 07:38:31.171431800 +0200 +++ new/umockdev-0.17.1/tests/test-umockdev-run.vala 2021-12-14 07:27:23.400868000 +0100 @@ -156,7 +156,6 @@ assert (Process.if_signaled (exit)); assert_cmpint (Process.term_sig (exit), CompareOperator.EQ, ProcessSignal.SEGV); assert_cmpstr (sout, CompareOperator.EQ, ""); - assert_cmpstr (serr, CompareOperator.EQ, ""); } static void @@ -183,6 +182,46 @@ } static void +t_run_udevadm_block () +{ + string umockdev_file; + + Posix.close (checked_open_tmp ("loop23.XXXXXX.umockdev", out umockdev_file)); + + checked_file_set_contents (umockdev_file, """P: /devices/virtual/block/loop23 +N: loop23 +E: DEVNAME=/dev/loop23 +E: DEVTYPE=disk +E: MAJOR=7 +E: MINOR=23 +E: SUBSYSTEM=block +A: dev=7:23\n +A: size=1048576\n +"""); + + string sout; + string serr; + int exit; + + // unfortunately the udevadm output between distros is not entirely constant + assert (get_program_out ( + "udevadm", + umockdev_run_command + "-d " + umockdev_file + " -- udevadm info --query=all --name=/dev/loop23", + out sout, out serr, out exit)); + + assert_cmpstr (serr, CompareOperator.EQ, ""); + assert_cmpint (exit, CompareOperator.EQ, 0); + assert (sout.contains ("P: /devices/virtual/block/loop23\n")); + assert (sout.contains ("P: /devices/virtual/block/loop23\n")); + assert (sout.contains ("E: DEVPATH=/devices/virtual/block/loop23")); + assert (sout.contains ("E: DEVNAME=/dev/loop23")); + assert (sout.contains ("E: MAJOR=7")); + assert (sout.contains ("E: MINOR=23")); + + FileUtils.remove (umockdev_file); +} + +static void t_run_invalid_args () { // missing program to run @@ -517,11 +556,15 @@ get_program_out ("xinput", "env DISPLAY=:5 xinput --list-props 'SynPS/2 Synaptics TouchPad'", out props_out, out props_err, out props_exit); - /* shut down X */ + /* shut down X; this requires extra force due to https://launchpad.net/bugs/1853266 */ #if VALA_0_40 Posix.kill (xorg_pid, Posix.Signal.TERM); + Posix.kill (xorg_pid, Posix.Signal.QUIT); + Posix.kill (xorg_pid, Posix.Signal.KILL); #else Posix.kill (xorg_pid, Posix.SIGTERM); + Posix.kill (xorg_pid, Posix.SIGQUIT); + Posix.kill (xorg_pid, Posix.SIGKILL); #endif int status; Posix.waitpid (xorg_pid, out status, 0); @@ -552,6 +595,12 @@ return; } + unowned string? preload = Environment.get_variable ("LD_PRELOAD"); + if (preload != null && preload.contains ("vgpreload")) { + stdout.printf ("[SKIP: this test does not work under valgrind] "); + return; + } + Pid evtest_pid; int outfd, errfd; @@ -626,6 +675,12 @@ return; } + unowned string? preload = Environment.get_variable ("LD_PRELOAD"); + if (preload != null && preload.contains ("vgpreload")) { + stdout.printf ("[SKIP: this test does not work under valgrind] "); + return; + } + Pid evtest_pid; int outfd, errfd; @@ -713,6 +768,9 @@ Test.add_func ("/umockdev-run/version", t_run_version); Test.add_func ("/umockdev-run/pipes", t_run_pipes); + // udevadm emulation + Test.add_func ("/umockdev-run/udevadm-block", t_run_udevadm_block); + // error conditions Test.add_func ("/umockdev-run/invalid-args", t_run_invalid_args); Test.add_func ("/umockdev-run/invalid-device", t_run_invalid_device); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/umockdev-0.16.3/tests/test-umockdev-vala.vala new/umockdev-0.17.1/tests/test-umockdev-vala.vala --- old/umockdev-0.16.3/tests/test-umockdev-vala.vala 2021-09-15 07:38:31.171431800 +0200 +++ new/umockdev-0.17.1/tests/test-umockdev-vala.vala 2021-12-14 07:27:23.400868000 +0100 @@ -685,6 +685,42 @@ } void +t_hidraw_ioctl () +{ + var tb = new UMockdev.Testbed (); + + string device; + checked_file_get_contents (Path.build_filename(rootdir + "/devices/hidraw/fido2.umockdev"), out device); + tb_add_from_string (tb, device); + + try { + tb.load_ioctl ("/dev/hidraw5", Path.build_filename(rootdir + "/devices/hidraw/fido2.ioctl")); + } catch (Error e) { + error ("Cannot load ioctl file: %s", e.message); + } + + int fd = Posix.open ("/dev/hidraw5", Posix.O_RDWR, 0); + assert_cmpint (fd, CompareOperator.GE, 0); + + int i = 0; + assert_cmpint (Posix.ioctl (fd, Ioctl.HIDIOCGRDESCSIZE, ref i), CompareOperator.EQ, 0); + assert_cmpint (Posix.errno, CompareOperator.EQ, 0); + // HACK: This actually works fine on real s390x (big endian), but fails in emulated QEMU (such as COPR) + if (Environment.get_variable ("RPM_ARCH") != "s390x") + assert_cmpint (i, CompareOperator.EQ, 34); + Ioctl.hidraw_report_descriptor desc = { 34, }; + assert_cmpint (Posix.ioctl (fd, Ioctl.HIDIOCGRDESC, ref desc), CompareOperator.EQ, 0); + assert_cmpint (Posix.errno, CompareOperator.EQ, 0); + uint8 desc_value[] = { + 0x06, 0xD0, 0xF1, 0x09, 0x01, 0xA1, 0x01, 0x09, 0x20, 0x15, 0x00, 0x26, + 0xFF, 0x00, 0x75, 0x08, 0x95, 0x40, 0x81, 0x02, 0x09, 0x21, 0x15, 0x00, + 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x40, 0x91, 0x02, 0xC0 + }; + assert_cmpint (Posix.memcmp(desc.value, desc_value, 34), CompareOperator.EQ, 0); + Posix.close (fd); +} + +void t_tty_stty () { var tb = new UMockdev.Testbed (); @@ -757,6 +793,13 @@ void t_detects_not_running_in_testbed () { + + if (Environment.get_variable ("RPM_ARCH") == "s390x" || Environment.get_variable ("RPM_ARCH") == "arm") { + stdout.printf ("[SKIP: test known broken in emulated architectures on koji] "); + stdout.flush (); + return; + } + int pipefds[2]; assert_cmpint (Posix.pipe(pipefds), CompareOperator.EQ, 0); @@ -1049,6 +1092,8 @@ Test.add_func ("/umockdev-testbed-vala/spidev_ioctl", t_spidev_ioctl); + Test.add_func ("/umockdev-testbed-vala/hidraw_ioctl", t_hidraw_ioctl); + /* tests for mocking TTYs */ Test.add_func ("/umockdev-testbed-vala/tty_stty", t_tty_stty); Test.add_func ("/umockdev-testbed-vala/tty_data", t_tty_data);