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


Reply via email to