- Update to version B.02.19.2:
* New release tagged, no significant changes from previous version (git snapsho) - Drop no longer needed patches: * lshw-display-latest-version.patch * lshw-add-notime-option-to-manpage.patch * lshw-nvme.patch OBS-URL: https://build.opensuse.org/package/show/hardware/lshw?expand=0&rev=40
This commit is contained in:
parent
c49810b6b3
commit
ddfbd2ada2
14
_service
14
_service
@ -1,14 +0,0 @@
|
||||
<services>
|
||||
<service mode="disabled" name="tar_scm">
|
||||
<param name="url">https://github.com/lyonel/lshw.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="filename">lshw</param>
|
||||
<param name="versionformat">B.02.18+git.%cd</param>
|
||||
</service>
|
||||
<service mode="disabled" name="recompress">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
<service mode="disabled" name="set_version"/>
|
||||
</services>
|
@ -1,4 +0,0 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://github.com/lyonel/lshw.git</param>
|
||||
<param name="changesrevision">89b3b6b9ed03f22ca98954712db5a90acf2c6755</param></service></servicedata>
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9caaed85389fd0f5bdc32fb20d976015e886a016234c3636d27d74991ffeb82d
|
||||
size 1696040
|
3
lshw-B.02.19.2.tar.gz
Normal file
3
lshw-B.02.19.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9bb347ac87142339a366a1759ac845e3dbb337ec000aa1b99b50ac6758a80f80
|
||||
size 2467937
|
@ -1,37 +0,0 @@
|
||||
From 53d80a099d9b607f6104e4010f02d642decfa588 Mon Sep 17 00:00:00 2001
|
||||
From: Brahadambal Srinivasan <latha@linux.vnet.ibm.com>
|
||||
Date: Mon, 23 Dec 2019 11:59:39 +0530
|
||||
Subject: [PATCH] add notime option to manpage
|
||||
|
||||
lshw man page and --help are not in sync and the 'notime' option
|
||||
is not present in man page.
|
||||
|
||||
This patch adds the option in the manpages.
|
||||
|
||||
Signed-off-by: Brahadambal Srinivasan <latha@linux.vnet.ibm.com>
|
||||
---
|
||||
src/lshw.1 | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: lshw-B.02.18+git.20191228/src/lshw.1
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/lshw.1
|
||||
+++ lshw-B.02.18+git.20191228/src/lshw.1
|
||||
@@ -10,7 +10,7 @@ lshw \- list hardware
|
||||
.sp
|
||||
\fBlshw\fR [ \fB-X\fR ]
|
||||
.sp
|
||||
-\fBlshw\fR [ \fB [ -html ] [ -short ] [ -xml ] [ -json ] [ -businfo ] \fR ] [ \fB-dump \fIfilename\fB\fR ] [ \fB-class \fIclass\fB\fR\fI...\fR ] [ \fB-disable \fItest\fB\fR\fI...\fR ] [ \fB-enable \fItest\fB\fR\fI...\fR ] [ \fB-sanitize\fR ] [ \fB-numeric\fR ] [ \fB-quiet\fR ]
|
||||
+\fBlshw\fR [ \fB [ -html ] [ -short ] [ -xml ] [ -json ] [ -businfo ] \fR ] [ \fB-dump \fIfilename\fB\fR ] [ \fB-class \fIclass\fB\fR\fI...\fR ] [ \fB-disable \fItest\fB\fR\fI...\fR ] [ \fB-enable \fItest\fB\fR\fI...\fR ] [ \fB-sanitize\fR ] [ \fB-numeric\fR ] [ \fB-notime\fR ] [ \fB-quiet\fR ]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
|
||||
@@ -74,6 +74,8 @@ Remove potentially sensitive information
|
||||
.TP
|
||||
\fB-numeric\fR
|
||||
Also display numeric IDs (for PCI and USB devices).
|
||||
+\fB-notime\fR
|
||||
+exclude volatile attributes (timestamps) from output
|
||||
.SH "BUGS"
|
||||
.PP
|
||||
\fBlshw\fR currently does not detect
|
@ -1,29 +0,0 @@
|
||||
From 5e58d66598908249f44d349d22efdc4524f0cfcb Mon Sep 17 00:00:00 2001
|
||||
From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
||||
Date: Mon, 29 Apr 2019 22:39:08 +0530
|
||||
Subject: [PATCH] Fix version output
|
||||
|
||||
Display latest version only when its greater than current version.
|
||||
|
||||
"lshw -version" tries to get current version from upstream repository.
|
||||
If it contains old version then output becomes confusing (as running
|
||||
version > latest version).
|
||||
|
||||
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
||||
---
|
||||
src/lshw.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: lshw-B.02.18+git.20191228/src/lshw.cc
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/lshw.cc
|
||||
+++ lshw-B.02.18+git.20191228/src/lshw.cc
|
||||
@@ -121,7 +121,7 @@ char **argv)
|
||||
printf("%s\n", getpackageversion());
|
||||
if(latest)
|
||||
{
|
||||
- if(strcmp(latest, getpackageversion()) != 0)
|
||||
+ if(strcmp(latest, getpackageversion()) >= 0)
|
||||
fprintf(stderr, _("the latest version is %s\n"), latest);
|
||||
}
|
||||
exit(0);
|
329
lshw-nvme.patch
329
lshw-nvme.patch
@ -1,329 +0,0 @@
|
||||
From 7b1863bd61c1751a67b020820f4243a4df4b379a Mon Sep 17 00:00:00 2001
|
||||
From: Harry Mallon <harry.mallon@codex.online>
|
||||
Date: Mon, 25 Mar 2019 19:44:14 +0000
|
||||
Subject: [PATCH] add support for /dev/nvmeX NVMe controllers
|
||||
|
||||
* Added nvme scanning for controllers /dev/nvme[0-9]+
|
||||
* Added nvme scanning for namespaces /dev/nvme[0-9]+n[0-9]+
|
||||
* Fill in namespaces as disks
|
||||
* Teach partition scanning about nvme partitions /dev/nvme[0-9]+n[0-9]+p[0-9]+
|
||||
---
|
||||
src/core/Makefile | 5 +-
|
||||
src/core/main.cc | 4 ++
|
||||
src/core/nvme.cc | 156 +++++++++++++++++++++++++++++++++++++++++
|
||||
src/core/nvme.h | 7 ++
|
||||
src/core/partitions.cc | 17 +++--
|
||||
src/core/sysfs.cc | 15 ++++
|
||||
src/core/sysfs.h | 3 +
|
||||
7 files changed, 199 insertions(+), 8 deletions(-)
|
||||
create mode 100644 src/core/nvme.cc
|
||||
create mode 100644 src/core/nvme.h
|
||||
|
||||
Index: lshw-B.02.18+git.20191228/src/core/Makefile
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/core/Makefile
|
||||
+++ lshw-B.02.18+git.20191228/src/core/Makefile
|
||||
@@ -8,7 +8,7 @@ LDFLAGS=
|
||||
LDSTATIC=
|
||||
LIBS=
|
||||
|
||||
-OBJS = hw.o main.o print.o mem.o dmi.o device-tree.o cpuinfo.o osutils.o pci.o version.o cpuid.o ide.o cdrom.o pcmcia-legacy.o scsi.o s390.o disk.o spd.o network.o isapnp.o pnp.o fb.o options.o usb.o sysfs.o display.o heuristics.o parisc.o cpufreq.o partitions.o blockio.o lvm.o ideraid.o pcmcia.o volumes.o mounts.o smp.o abi.o jedec.o dump.o fat.o virtio.o vio.o
|
||||
+OBJS = hw.o main.o print.o mem.o dmi.o device-tree.o cpuinfo.o osutils.o pci.o version.o cpuid.o ide.o cdrom.o pcmcia-legacy.o scsi.o nvme.o s390.o disk.o spd.o network.o isapnp.o pnp.o fb.o options.o usb.o sysfs.o display.o heuristics.o parisc.o cpufreq.o partitions.o blockio.o lvm.o ideraid.o pcmcia.o volumes.o mounts.o smp.o abi.o jedec.o dump.o fat.o virtio.o vio.o
|
||||
ifeq ($(SQLITE), 1)
|
||||
OBJS+= db.o
|
||||
endif
|
||||
@@ -23,7 +23,7 @@ lib$(PACKAGENAME).a: $(OBJS)
|
||||
$(AR) rs $@ $^
|
||||
|
||||
install: all
|
||||
-
|
||||
+
|
||||
clean:
|
||||
rm -f $(OBJS) lib$(PACKAGENAME).a
|
||||
|
||||
@@ -51,6 +51,7 @@ ide.o: version.h cpuinfo.h hw.h osutils.
|
||||
cdrom.o: version.h cdrom.h hw.h partitions.h
|
||||
pcmcia-legacy.o: version.h pcmcia-legacy.h hw.h osutils.h
|
||||
scsi.o: version.h mem.h hw.h cdrom.h disk.h osutils.h heuristics.h sysfs.h
|
||||
+nvme.o: version.h hw.h disk.h osutils.h sysfs.h
|
||||
disk.o: version.h disk.h hw.h osutils.h heuristics.h partitions.h
|
||||
spd.o: version.h spd.h hw.h osutils.h
|
||||
network.o: version.h config.h network.h hw.h osutils.h sysfs.h options.h
|
||||
Index: lshw-B.02.18+git.20191228/src/core/main.cc
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/core/main.cc
|
||||
+++ lshw-B.02.18+git.20191228/src/core/main.cc
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "pcmcia-legacy.h"
|
||||
#include "ide.h"
|
||||
#include "scsi.h"
|
||||
+#include "nvme.h"
|
||||
#include "spd.h"
|
||||
#include "network.h"
|
||||
#include "isapnp.h"
|
||||
@@ -132,6 +133,9 @@ bool scan_system(hwNode & system)
|
||||
status("SCSI");
|
||||
if (enabled("scsi"))
|
||||
scan_scsi(computer);
|
||||
+ status("NVMe");
|
||||
+ if (enabled("nvme"))
|
||||
+ scan_nvme(computer);
|
||||
status("S/390 devices");
|
||||
if (enabled("s390"))
|
||||
scan_s390_devices(computer);
|
||||
Index: lshw-B.02.18+git.20191228/src/core/nvme.cc
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ lshw-B.02.18+git.20191228/src/core/nvme.cc
|
||||
@@ -0,0 +1,156 @@
|
||||
+#include "version.h"
|
||||
+#include "disk.h"
|
||||
+#include "osutils.h"
|
||||
+#include "sysfs.h"
|
||||
+#include "hw.h"
|
||||
+#include <glob.h>
|
||||
+#include <libgen.h>
|
||||
+
|
||||
+#include <string>
|
||||
+
|
||||
+__ID("@(#) $Id$");
|
||||
+
|
||||
+#define CLASS_NVME "nvme"
|
||||
+#define NVMEX "/dev/nvme[0-9]*"
|
||||
+#define NVMEXNX "/dev/nvme[0-9]*n[0-9]*"
|
||||
+
|
||||
+static void scan_controllers(hwNode & n)
|
||||
+{
|
||||
+ glob_t entries;
|
||||
+ size_t j;
|
||||
+
|
||||
+ if(glob(NVMEX, 0, NULL, &entries) == 0)
|
||||
+ {
|
||||
+ for(j=0; j < entries.gl_pathc; j++)
|
||||
+ {
|
||||
+ if(matches(entries.gl_pathv[j], "^/dev/nvme[[:digit:]]+$"))
|
||||
+ {
|
||||
+ string businfo = "";
|
||||
+ string logicalname = "";
|
||||
+ hwNode *device = NULL;
|
||||
+
|
||||
+ logicalname = basename(entries.gl_pathv[j]);
|
||||
+ if (logicalname.empty())
|
||||
+ continue;
|
||||
+
|
||||
+ businfo = sysfs::entry::byClass(CLASS_NVME, logicalname).businfo();
|
||||
+
|
||||
+ if (!businfo.empty())
|
||||
+ device = n.findChildByBusInfo(businfo);
|
||||
+
|
||||
+ if (!device)
|
||||
+ device = n.findChildByLogicalName(logicalname);
|
||||
+
|
||||
+ if (!device)
|
||||
+ {
|
||||
+ hwNode *core = n.getChild("core");
|
||||
+
|
||||
+ if (core)
|
||||
+ device = n.getChild("nvme");
|
||||
+
|
||||
+ if (core && !device)
|
||||
+ device = core->addChild(hwNode("nvme", hw::storage));
|
||||
+ }
|
||||
+
|
||||
+ if (!device)
|
||||
+ device = n.addChild(hwNode("nvme", hw::storage));
|
||||
+
|
||||
+ if (device)
|
||||
+ {
|
||||
+ if(device->getBusInfo().empty())
|
||||
+ device->setBusInfo(businfo);
|
||||
+ device->setLogicalName(logicalname);
|
||||
+ device->claim();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ globfree(&entries);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void scan_namespaces(hwNode & n)
|
||||
+{
|
||||
+ glob_t entries;
|
||||
+ size_t j;
|
||||
+
|
||||
+ if(glob(NVMEXNX, 0, NULL, &entries) == 0)
|
||||
+ {
|
||||
+ for(j=0; j < entries.gl_pathc; j++)
|
||||
+ {
|
||||
+ if(matches(entries.gl_pathv[j], "^/dev/nvme[[:digit:]]+n[[:digit:]]+$"))
|
||||
+ {
|
||||
+ // We get this information from sysfs rather than doing an NVMe Identify command
|
||||
+ // so they may not all be available from all kernels.
|
||||
+ string path = entries.gl_pathv[j];
|
||||
+ string logicalname = "";
|
||||
+ string parentlogicalname = "";
|
||||
+ string model;
|
||||
+ string serial;
|
||||
+ string firmware_rev;
|
||||
+ hwNode *parent = NULL;
|
||||
+ hwNode device = hwNode("disk", hw::disk);
|
||||
+
|
||||
+ logicalname = basename(entries.gl_pathv[j]);
|
||||
+ if (logicalname.empty())
|
||||
+ continue;
|
||||
+
|
||||
+ parentlogicalname = path.substr(0, path.find_last_of("n"));
|
||||
+
|
||||
+ sysfs::entry e = sysfs::entry::byClass("block", logicalname);
|
||||
+
|
||||
+ model = e.model();
|
||||
+ serial = e.serial();
|
||||
+ firmware_rev = e.firmware_rev();
|
||||
+
|
||||
+ device.setDescription("NVMe disk");
|
||||
+ device.setLogicalName(logicalname);
|
||||
+ device.claim();
|
||||
+
|
||||
+ if (!model.empty())
|
||||
+ device.setProduct(model);
|
||||
+ if (!serial.empty())
|
||||
+ device.setSerial(serial);
|
||||
+ if (!firmware_rev.empty())
|
||||
+ device.setVersion(firmware_rev);
|
||||
+
|
||||
+ scan_disk(device);
|
||||
+
|
||||
+ if (!parentlogicalname.empty())
|
||||
+ parent = n.findChildByLogicalName(parentlogicalname);
|
||||
+
|
||||
+ if (!parent)
|
||||
+ {
|
||||
+ hwNode *core = n.getChild("core");
|
||||
+
|
||||
+ if (core)
|
||||
+ parent = n.getChild("nvme");
|
||||
+
|
||||
+ if (core && !parent)
|
||||
+ parent = core->addChild(hwNode("nvme", hw::storage));
|
||||
+ }
|
||||
+
|
||||
+ if (!parent)
|
||||
+ parent = n.addChild(hwNode("nvme", hw::storage));
|
||||
+
|
||||
+ if (parent)
|
||||
+ {
|
||||
+ parent->addChild(device);
|
||||
+ parent->claim();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ globfree(&entries);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
+
|
||||
+bool scan_nvme(hwNode & n)
|
||||
+{
|
||||
+ scan_controllers(n);
|
||||
+
|
||||
+ scan_namespaces(n);
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
Index: lshw-B.02.18+git.20191228/src/core/nvme.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ lshw-B.02.18+git.20191228/src/core/nvme.h
|
||||
@@ -0,0 +1,7 @@
|
||||
+#ifndef _NVME_H_
|
||||
+#define _NVME_H_
|
||||
+
|
||||
+#include "hw.h"
|
||||
+
|
||||
+bool scan_nvme(hwNode & n);
|
||||
+#endif
|
||||
Index: lshw-B.02.18+git.20191228/src/core/partitions.cc
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/core/partitions.cc
|
||||
+++ lshw-B.02.18+git.20191228/src/core/partitions.cc
|
||||
@@ -295,6 +295,7 @@ static bool guess_logicalname(source & s
|
||||
struct stat buf;
|
||||
char name[10];
|
||||
int dev = 0;
|
||||
+ string devname;
|
||||
|
||||
snprintf(name, sizeof(name), "%d", n);
|
||||
if(disk.getBusInfo()!="")
|
||||
@@ -304,9 +305,16 @@ static bool guess_logicalname(source & s
|
||||
if(!S_ISBLK(buf.st_mode)) return false;
|
||||
|
||||
if(s.diskname!="")
|
||||
- dev = open_dev(buf.st_rdev + n, S_IFBLK, s.diskname+string(name));
|
||||
+ devname = s.diskname;
|
||||
else
|
||||
- dev = open_dev(buf.st_rdev + n, S_IFBLK, disk.getLogicalName()+string(name));
|
||||
+ devname = disk.getLogicalName();
|
||||
+
|
||||
+ // NVMe partitions are like /dev/nvme0n1p2
|
||||
+ if(matches(devname, "^/dev/nvme[[:digit:]]+n[[:digit:]]+$"))
|
||||
+ devname += "p";
|
||||
+ devname += string(name);
|
||||
+
|
||||
+ dev = open_dev(buf.st_rdev + n, S_IFBLK, devname);
|
||||
|
||||
if(dev>=0)
|
||||
{
|
||||
@@ -330,10 +338,7 @@ static bool guess_logicalname(source & s
|
||||
if(memcmp(buffer1, buffer2, BLOCKSIZE)==0)
|
||||
{
|
||||
partition.claim();
|
||||
- if(s.diskname!="")
|
||||
- partition.setLogicalName(s.diskname+string(name));
|
||||
- else
|
||||
- partition.setLogicalName(disk.getLogicalName()+string(name));
|
||||
+ partition.setLogicalName(devname);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Index: lshw-B.02.18+git.20191228/src/core/sysfs.cc
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/core/sysfs.cc
|
||||
+++ lshw-B.02.18+git.20191228/src/core/sysfs.cc
|
||||
@@ -368,6 +368,21 @@ string entry::vendor() const
|
||||
return get_string(This->devpath+"/vendor");
|
||||
}
|
||||
|
||||
+string entry::model() const
|
||||
+{
|
||||
+ return get_string(This->devpath+"/model");
|
||||
+}
|
||||
+
|
||||
+string entry::serial() const
|
||||
+{
|
||||
+ return get_string(This->devpath+"/serial");
|
||||
+}
|
||||
+
|
||||
+string entry::firmware_rev() const
|
||||
+{
|
||||
+ return get_string(This->devpath+"/firmware_rev");
|
||||
+}
|
||||
+
|
||||
vector < entry > sysfs::entries_by_bus(const string & busname)
|
||||
{
|
||||
vector < entry > result;
|
||||
Index: lshw-B.02.18+git.20191228/src/core/sysfs.h
|
||||
===================================================================
|
||||
--- lshw-B.02.18+git.20191228.orig/src/core/sysfs.h
|
||||
+++ lshw-B.02.18+git.20191228/src/core/sysfs.h
|
||||
@@ -28,6 +28,9 @@ namespace sysfs
|
||||
string modalias() const;
|
||||
string device() const;
|
||||
string vendor() const;
|
||||
+ string model() const;
|
||||
+ string serial() const;
|
||||
+ string firmware_rev() const;
|
||||
entry parent() const;
|
||||
string name_in_class(const string &) const;
|
||||
string string_attr(const string & name, const string & def = "") const;
|
11
lshw.changes
11
lshw.changes
@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 30 06:49:19 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
|
||||
|
||||
- Update to version B.02.19.2:
|
||||
* New release tagged, no significant changes from previous
|
||||
version (git snapsho)
|
||||
- Drop no longer needed patches:
|
||||
* lshw-display-latest-version.patch
|
||||
* lshw-add-notime-option-to-manpage.patch
|
||||
* lshw-nvme.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 16 12:14:54 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
|
||||
|
||||
|
11
lshw.spec
11
lshw.spec
@ -18,19 +18,15 @@
|
||||
|
||||
|
||||
Name: lshw
|
||||
Version: B.02.18+git.20191228
|
||||
Version: B.02.19.2
|
||||
Release: 0
|
||||
Summary: HardWare LiSter
|
||||
License: GPL-2.0-only
|
||||
Group: Hardware/Other
|
||||
URL: https://www.ezix.org/project/wiki/HardwareLiSter
|
||||
Source: lshw-%{version}.tar.xz
|
||||
Source: https://www.ezix.org/software/files/lshw-%{version}.tar.gz
|
||||
Source1: lshw.desktop.in
|
||||
Source2: lshw.png
|
||||
# PATCH-FIX-UPSTREAM lshw-display-latest-version.patch lshw-help-man.patch lshw-modified-time.patch bsc##1130818
|
||||
Patch1: lshw-display-latest-version.patch
|
||||
Patch4: lshw-add-notime-option-to-manpage.patch
|
||||
Patch5: lshw-nvme.patch
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: hicolor-icon-theme
|
||||
BuildRequires: libpng-devel
|
||||
@ -78,10 +74,9 @@ included documentation or go to the lshw Web page,
|
||||
http://www.ezix.org/software/lshw.html
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
%define _lto_cflags %{nil}
|
||||
%make_build \
|
||||
SBINDIR="%{_sbindir}" \
|
||||
RPM_OPT_FLAGS="%{optflags} -fno-strict-aliasing" \
|
||||
|
Loading…
Reference in New Issue
Block a user