Hello community, here is the log from the commit of package lsvpd for openSUSE:Factory checked in at 2017-12-19 10:58:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lsvpd (Old) and /work/SRC/openSUSE:Factory/.lsvpd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lsvpd" Tue Dec 19 10:58:19 2017 rev:48 rq:557961 version:1.7.8 Changes: -------- --- /work/SRC/openSUSE:Factory/lsvpd/lsvpd.changes 2017-09-26 21:17:28.252681937 +0200 +++ /work/SRC/openSUSE:Factory/.lsvpd.new/lsvpd.changes 2017-12-19 10:58:21.381730147 +0100 @@ -1,0 +2,12 @@ +Mon Dec 18 08:08:09 UTC 2017 - [email protected] + +- bug fixes (bsc#1072079) + - Add host number in device location code to distinguish + different devices + - Add workaround for std::ios_base::failure issue + +- added patches: + * lsvpd.bug-1072079_add_host_number.patch + * lsvpd.bug-1072079_std_io_base_failure_workaround.patch + +------------------------------------------------------------------- New: ---- lsvpd.bug-1072079_add_host_number.patch lsvpd.bug-1072079_std_io_base_failure_workaround.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lsvpd.spec ++++++ --- /var/tmp/diff_new_pack.4P6vhE/_old 2017-12-19 10:58:22.057697516 +0100 +++ /var/tmp/diff_new_pack.4P6vhE/_new 2017-12-19 10:58:22.061697322 +0100 @@ -24,6 +24,8 @@ Group: System/Monitoring Url: http://sourceforge.net/projects/linux-diag/ Source0: http://sourceforge.net/projects/linux-diag/files/lsvpd-new/%{version}/%{name}-%{version}.tar.gz +Patch0: lsvpd.bug-1072079_add_host_number.patch +Patch1: lsvpd.bug-1072079_std_io_base_failure_workaround.patch BuildRequires: gcc-c++ BuildRequires: librtas-devel BuildRequires: libvpd2-devel @@ -45,6 +47,8 @@ %prep %setup -q +%patch0 -p1 +%patch1 -p1 %build export CFLAGS="%{optflags} -UPCI_IDS -DPCI_IDS='\"%{_datadir}/pci.ids\"' -UUSB_IDS -DUSB_IDS='\"%{_datadir}/usb.ids\"'" ++++++ lsvpd.bug-1072079_add_host_number.patch ++++++ commit f5a8a079dff00e3d71631a9d8899bfa5c11028e1 Author: Ankit Kumar <[email protected]> Date: Wed Nov 15 15:40:02 2017 +0530 Add host number in device location code to distinguish different devices This patch adds host number in location code as well to differentiate two different devices if both has same bus, target and lun number. H1-B0-T0-L0 [on] H0-B0-T0-L0 [off] Signed-off-by: Ankit Kumar <[email protected]> [Added host value check and removing hyphen so that location code start with H<x> - Vasant] Signed-off-by: Vasant Hegde <[email protected]> diff --git a/src/internal/sys_interface/devicetreecollector.cpp b/src/internal/sys_interface/devicetreecollector.cpp index dc7ff54..6afbe85 100644 --- a/src/internal/sys_interface/devicetreecollector.cpp +++ b/src/internal/sys_interface/devicetreecollector.cpp @@ -765,7 +765,7 @@ ERROR: { Component *parent; ostringstream val; - const DataItem *target, *lun, *bus; + const DataItem *target, *lun, *bus, *host; /* Build up a distinct YL based on parents YL - for device such as * scsi, ide, usb, etc that do not generate ibm,loc-code @@ -778,7 +778,9 @@ ERROR: target = fillMe->getDeviceSpecific("XT"); lun = fillMe->getDeviceSpecific("XL"); bus = fillMe->getDeviceSpecific("XB"); - if (target != NULL && lun != NULL && bus != NULL) { + host = fillMe->getDeviceSpecific("XH"); + if (host != NULL && target != NULL && + lun != NULL && bus != NULL) { if (fillMe->mPhysicalLocation.dataValue != "") val << fillMe->mPhysicalLocation.dataValue; else if @@ -787,8 +789,8 @@ ERROR: else val << getAttrValue( parent->deviceTreeNode.dataValue, "ibm,loc-code" ); - val << "-B" << bus->dataValue << "-T" << target->dataValue - << "-L" << lun->dataValue; + val << "H" << host->dataValue << "-B" << bus->dataValue + << "-T" << target->dataValue << "-L" << lun->dataValue; fillMe->mPhysicalLocation.setValue( val.str( ), 60 , __FILE__, __LINE__ ); } ++++++ lsvpd.bug-1072079_std_io_base_failure_workaround.patch ++++++ commit c36b20b7dc2e787f7285e459851df1a74368e8e3 Author: Vasant Hegde <[email protected]> Date: Wed Sep 20 16:52:35 2017 +0530 lsvpd: Add workaround for std::ios_base::failure' issue Recently on P9 we started seeing below error. #vpdupdate terminate called after throwing an instance of 'std::ios_base::failure' what(): basic_filebuf::underflow error reading the file Aborted (core dumped) It turns out that we needed c++ fix. Lets add workaround so that we don't crash. Signed-off-by: Vasant Hegde <[email protected]> Reviewed-by: Ankit Kumar <[email protected]> diff --git a/src/internal/sys_interface/icollector.cpp b/src/internal/sys_interface/icollector.cpp index 0d48c93..d6407d9 100644 --- a/src/internal/sys_interface/icollector.cpp +++ b/src/internal/sys_interface/icollector.cpp @@ -104,6 +104,17 @@ namespace lsvpd */ string ICollector::getBinaryData( const string& path ) { + struct stat sbuf; + + /* + * Check file existence and size before calling ifstream + * + * Workaround for libstdc++ issue. + * https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=250545 + */ + if ((stat(path.c_str(), &sbuf) != 0) || (sbuf.st_size == 0)) + return ""; + ifstream fi(path.c_str(), ios::binary); string str;
