Hello community, here is the log from the commit of package libvpd2 for openSUSE:Leap:15.2 checked in at 2020-02-22 17:53:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/libvpd2 (Old) and /work/SRC/openSUSE:Leap:15.2/.libvpd2.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvpd2" Sat Feb 22 17:53:15 2020 rev:13 rq:778156 version:2.2.6 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/libvpd2/libvpd2.changes 2020-01-15 15:25:40.402585000 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.libvpd2.new.26092/libvpd2.changes 2020-02-22 17:53:15.585870473 +0100 @@ -1,0 +2,24 @@ +Wed Feb 19 14:03:34 UTC 2020 - Josef Möllers <[email protected]> + +- Amended existing patch + udev-rules-don-t-generate-multiple-vpdupdate-events-.patch + with a single initial rule to avoid anything not /device/. + [bsc#1164300, + udev-rules-don-t-generate-multiple-vpdupdate-events-.patch] + +------------------------------------------------------------------- +Tue Jan 28 15:59:32 UTC 2020 - Martin Wilck <[email protected]> + +- Avoid boot stalls due to excessive udev rule execution + (bsc#1154837) + * added udev-rules-don-t-touch-run.vpdupdate-for-ignored-dev.patch + * added udev-rules-more-software-devices-to-ignore.patch + * added udev-rules-don-t-generate-multiple-vpdupdate-events-.patch + +------------------------------------------------------------------- +Wed Jan 16 08:20:27 UTC 2019 - Tomáš Chvátal <[email protected]> + +- Switch to pkgconfig dependencies +- Use %license macro + +------------------------------------------------------------------- New: ---- udev-rules-don-t-generate-multiple-vpdupdate-events-.patch udev-rules-don-t-touch-run.vpdupdate-for-ignored-dev.patch udev-rules-more-software-devices-to-ignore.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libvpd2.spec ++++++ --- /var/tmp/diff_new_pack.L0dq3U/_old 2020-02-22 17:53:16.393872105 +0100 +++ /var/tmp/diff_new_pack.L0dq3U/_new 2020-02-22 17:53:16.393872105 +0100 @@ -1,7 +1,7 @@ # # spec file for package libvpd2 # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -20,21 +20,23 @@ Version: 2.2.6 Release: 0 Summary: VPD Database access library for lsvpd -License: LGPL-2.1+ +License: LGPL-2.1-or-later Group: Development/Libraries/Other -Url: http://linux-diag.sourceforge.net/Lsvpd.html +URL: https://github.com/open-power-host-os/libvpd Source: http://downloads.sourceforge.net/project/linux-diag/libvpd/%{version}/libvpd-%{version}.tar.gz Source2: baselibs.conf Patch1: libvpd2.makefile.patch +Patch2: udev-rules-don-t-touch-run.vpdupdate-for-ignored-dev.patch +Patch3: udev-rules-more-software-devices-to-ignore.patch +Patch4: udev-rules-don-t-generate-multiple-vpdupdate-events-.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: libtool -BuildRequires: pkg-config -BuildRequires: sqlite3-devel -BuildRequires: udev -BuildRequires: zlib-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: pkgconfig +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(udev) +BuildRequires: pkgconfig(zlib) %description The libvpd_cxx package contains the classes that are used to access a @@ -44,7 +46,7 @@ Summary: VPD Database access library for lsvpd Group: Development/Languages/C and C++ Requires: %{name} = %{version} -Requires: sqlite3-devel +Requires: pkgconfig(sqlite3) %description devel The libvpd-devel package contains development libraries and header @@ -53,7 +55,7 @@ %prep %setup -q -n libvpd-%{version} -%patch1 -p1 +%autopatch -p1 %build autoreconf -fiv @@ -63,20 +65,18 @@ %install %make_install -rm -f %{buildroot}%{_libdir}/*.la +find %{buildroot} -type f -name "*.la" -delete -print %post -p /sbin/ldconfig - %postun -p /sbin/ldconfig %files -%defattr(-,root,root) %{_libdir}/*.so.* -/%{_udevrulesdir}/90-vpdupdate.rules +%{_udevrulesdir}/90-vpdupdate.rules %files devel -%defattr(-,root,root) -%doc COPYING README +%license COPYING +%doc README %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/* ++++++ udev-rules-don-t-generate-multiple-vpdupdate-events-.patch ++++++ >From 3ec780310cca88698fccbf4fb0de20d822ecf88e Mon Sep 17 00:00:00 2001 From: Martin Wilck <[email protected]> Date: Tue, 28 Jan 2020 16:07:43 +0100 Subject: [PATCH 3/3] udev rules: don't generate multiple vpdupdate events for SCSI/NVMe lsvpd lists SCSI devices, not partitions or block devices. Currently, addition of e.g. /dev/sda will generate events for a "scsi_device", "scsi_disk", "bsg", and "block" device, plus events for partitions, and every event will trigger a "touch /run/run.vpdupdate" command, where touching the file once would be obviously sufficient. Add rules that touch vpdupdate for SCSI hosts and devices, but not for the additional sysfs nodes. Similar reasoning for NVMe. --- 90-vpdupdate.rules | 12 ++++++++++++ 1 file changed, 12 insertions(+) Index: libvpd-2.2.6/90-vpdupdate.rules =================================================================== --- libvpd-2.2.6.orig/90-vpdupdate.rules +++ libvpd-2.2.6/90-vpdupdate.rules @@ -1,3 +1,4 @@ +DEVPATH!="/devices/*", GOTO="vpd_end" # See SysFSTreeCollector::filterDevicePath() DEVPATH=="/devices/virtual/*", GOTO="vpd_end" DEVPATH=="/devices/system/*", GOTO="vpd_end" @@ -18,6 +19,18 @@ DEVPATH=="/devices/uprobe/*", GOTO="vpd_ DEVPATH=="/devices/kprobe/*", GOTO="vpd_end" DEVPATH=="/devices/rbd/*", GOTO="vpd_end" +SUBSYSTEM=="scsi_device", GOTO="vpd_update" +SUBSYSTEM=="scsi_host", GOTO="vpd_update" +# Don't generate extra events, we have one for the scsi_device already +# This rule also skips SCSI block device uevents +# (but the corresponding scsi_device will have triggered vpdupdate). +SUBSYSTEMS=="scsi*", GOTO="vpd_end" + +# virtual NVMe devices (NVMeoF) are skipped because of the rule above +SUBSYSTEM=="nvme", GOTO="vpd_update" +SUBSYSTEM=="nvme-subsystem", GOTO="vpd_update" +SUBSYSTEMS=="nvme*", GOTO="vpd_end" + LABEL="vpd_update" RUN+="/bin/touch /run/run.vpdupdate" LABEL="vpd_end" ++++++ udev-rules-don-t-touch-run.vpdupdate-for-ignored-dev.patch ++++++ >From 34f8ba2c35e278af38693f6a91d65690d1faf6bf Mon Sep 17 00:00:00 2001 From: Martin Wilck <[email protected]> Date: Tue, 28 Jan 2020 16:04:42 +0100 Subject: [PATCH 1/3] udev rules: don't touch run.vpdupdate for ignored devices vpdupdate ignores certain sysfs devices. It's pointless to trigger VPD database updates from uevents for these devices. --- 90-vpdupdate.rules | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/90-vpdupdate.rules b/90-vpdupdate.rules index 5a4b42d..43eb75b 100644 --- a/90-vpdupdate.rules +++ b/90-vpdupdate.rules @@ -1 +1,18 @@ -KERNELS=="*", ACTION=="*", DEVPATH=="/devices/*", RUN+="/bin/touch /run/run.vpdupdate" +# See SysFSTreeCollector::filterDevicePath() +DEVPATH=="/devices/virtual/*", GOTO="vpd_end" +DEVPATH=="/devices/system/*", GOTO="vpd_end" +DEVPATH=="/devices/cpu/*", GOTO="vpd_end" +DEVPATH=="/devices/breakpoint/*", GOTO="vpd_end" +DEVPATH=="/devices/tracepoint/*", GOTO="vpd_end" +DEVPATH=="/devices/software/*", GOTO="vpd_end" + +# See SysFSTreeCollector::filterDevice() +ENV{DEVTYPE}=="scsi_target", GOTO="vpd_end" +SUBSYSTEM=="enclosure", GOTO="vpd_end" + +# See SysFSTreeCollector::isDevice() +ENV{DEVTYPE}=="partition", GOTO="vpd_end" + +LABEL="vpd_update" +RUN+="/bin/touch /run/run.vpdupdate" +LABEL="vpd_end" -- 2.25.0 ++++++ udev-rules-more-software-devices-to-ignore.patch ++++++ >From b15caf51a61628e4e5de0539beb3a35b34310369 Mon Sep 17 00:00:00 2001 From: Martin Wilck <[email protected]> Date: Tue, 28 Jan 2020 16:06:33 +0100 Subject: [PATCH 2/3] udev rules: more software devices to ignore Additional subdirectories under /sys/devices that don't contain nodes usable for vpdupdate. --- 90-vpdupdate.rules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/90-vpdupdate.rules b/90-vpdupdate.rules index 43eb75b..d906ffa 100644 --- a/90-vpdupdate.rules +++ b/90-vpdupdate.rules @@ -13,6 +13,11 @@ SUBSYSTEM=="enclosure", GOTO="vpd_end" # See SysFSTreeCollector::isDevice() ENV{DEVTYPE}=="partition", GOTO="vpd_end" +# More devices that aren't covered by VPD +DEVPATH=="/devices/uprobe/*", GOTO="vpd_end" +DEVPATH=="/devices/kprobe/*", GOTO="vpd_end" +DEVPATH=="/devices/rbd/*", GOTO="vpd_end" + LABEL="vpd_update" RUN+="/bin/touch /run/run.vpdupdate" LABEL="vpd_end" -- 2.25.0
