Compare commits

...

No commits in common. 'c9' and 'i8c' have entirely different histories.
c9 ... i8c

@ -1,7 +1,7 @@
From 71cf63b7bb7bb212580cc7c8e6c75a4f645d79f1 Mon Sep 17 00:00:00 2001
From: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Date: Wed, 20 May 2020 06:27:05 -0500
Subject: [PATCH 22/65] Fix few memory leaks
Subject: [PATCH 01/18] Fix few memory leaks
Valgrind showed some leaks with scandir usage in sysfs.cc.
Patch audits all the scandir usage and fixes where required.
@ -14,7 +14,7 @@ Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
3 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/src/core/parisc.cc b/src/core/parisc.cc
index 80344d2..1e531e3 100644
index 80344d28c6ba..1e531e32bbc2 100644
--- a/src/core/parisc.cc
+++ b/src/core/parisc.cc
@@ -561,11 +561,13 @@ static bool scan_device(hwNode & node, string name = "")
@ -36,7 +36,7 @@ index 80344d2..1e531e3 100644
}
free(namelist);
diff --git a/src/core/spd.cc b/src/core/spd.cc
index 061d0fd..a304d06 100644
index 061d0fd3e186..a304d061a008 100644
--- a/src/core/spd.cc
+++ b/src/core/spd.cc
@@ -192,8 +192,12 @@ static bool scan_eeproms(hwNode & memory)
@ -53,7 +53,7 @@ index 061d0fd..a304d06 100644
return true;
}
diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
index ee8b1da..4e2df1c 100644
index ee8b1da06c78..4e2df1c9cb09 100644
--- a/src/core/sysfs.cc
+++ b/src/core/sysfs.cc
@@ -83,7 +83,7 @@ static string sysfs_getbustype(const string & path)
@ -145,5 +145,5 @@ index ee8b1da..4e2df1c 100644
}
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 74e23540335254b8fca6a81cc891c52d96937d40 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 29 Apr 2021 16:40:37 +0200
Subject: [PATCH 48/65] Fix getting size of memory banks <32GiB
Subject: [PATCH] Fix getting size of memory banks <32GiB
PR65 on Github (thanks to Z.Bitter)
@ -40,5 +40,5 @@ index fe6ad39..96b6506 100644
size = (1024ULL * (u & 0x7FFF) * ((u & 0x8000) ? 1 : 1024ULL));
description += string(dmi_memory_device_form_factor(data[0x0E]));
--
2.33.1
2.29.2

@ -1,40 +0,0 @@
From 9bf4e4c9c1bc90eee01bf26799afe64008bf5d70 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 10 Mar 2022 00:08:09 +0100
Subject: [PATCH 1/2] Github PR85 Set product name for all netdevs sharing the
same PCI number
Some network drivers can create multiple netdevs with the same PCI number
(bus info), e.g. in case of port representors in switchdev mode. In this
case, lshw displays the PCI branding string as description only for the
first netdev (lshw -c net -businfo). The remaining netdevs with the same
PCI number get a generic description ("Ethernet interface"). Moreover, the
decision which one of the netdevs gets the PCI branding string is not
deterministic, as it depends on the order of netdevs in /proc/net/dev file.
With this change, all netdevs sharing the same PCI number will get the same
description, taken from PCI branding string.
Signed-off-by: Marcin Szycik marcin.szycik@intel.com
---
src/core/network.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/core/network.cc b/src/core/network.cc
index 746ac1b..4f58ad5 100644
--- a/src/core/network.cc
+++ b/src/core/network.cc
@@ -813,6 +813,10 @@ bool scan_network(hwNode & n)
existing = n.findChildByBusInfo(interface.getBusInfo());
// Multiple NICs can exist on one PCI function.
+
+ if (existing && !existing->getBusInfo().empty() && (interface.getBusInfo() == existing->getBusInfo()) && interface.getProduct().empty())
+ interface.setProduct(existing->getProduct());
+
// Only merge if MACs also match.
if (existing && (existing->getSerial() == "" || interface.getSerial() == existing->getSerial()))
{
--
2.33.1

@ -1,45 +0,0 @@
From 42fef565731411a784101de614a54bff79d1858e Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Wed, 31 Aug 2022 11:14:23 +0200
Subject: [PATCH 1/3] PA-RISC: handle pushd failure
from https://github.com/lyonel/lshw/pull/89
When /sys/devices/parisc does not exist, any directory with a name consisting of only numbers in current working directory was being interpreted as a device, for example:
krzys_h@krzysh-laptop:/mnt/ramdisk $ ls /sys/devices/parisc
ls: cannot access '/sys/devices/parisc': No such file or directory
krzys_h@krzysh-laptop:/mnt/ramdisk $ mkdir 13374242
krzys_h@krzysh-laptop:/mnt/ramdisk $ sudo lshw | grep 13374242 -B3 -A3
width: 64 bits
clock: 1600MHz (0.6ns)
*-generic UNCLAIMED
physical id: 13374242
bus info: parisc@13374242
*-pci
description: Host bridge
product: Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
This commit fixes that by properly checking the return value from pushd.
---
src/core/parisc.cc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/core/parisc.cc b/src/core/parisc.cc
index 1e531e3..8a8c4d8 100644
--- a/src/core/parisc.cc
+++ b/src/core/parisc.cc
@@ -593,7 +593,9 @@ bool scan_parisc(hwNode & node)
if(core->getDescription()=="")
core->setDescription("Motherboard");
- pushd(DEVICESPARISC);
+
+ if(!pushd(DEVICESPARISC))
+ return false;
scan_device(*core);
popd();
--
2.33.1

@ -1,15 +1,16 @@
From 5c4bfb1a4baae1bea11cc9f629bc48ee12e733a7 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sun, 10 Jan 2021 00:38:10 +0100
Subject: [PATCH 40/65] Report correct memory size on SMBIOS < 2.7
Subject: [PATCH] Report correct memory size on SMBIOS < 2.7
Github PR#60
---
src/core/dmi.cc | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index 30b3ab3..d33d487 100644
index 30b3ab3b995c..d33d4879bdca 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -1567,10 +1567,13 @@ int dmiversionrev)
@ -31,5 +32,5 @@ index 30b3ab3..d33d487 100644
else
if (u != 0xFFFF)
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 9c5c2f0706db330114ff4624e0931ac40c1d6fe2 Mon Sep 17 00:00:00 2001
From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Date: Wed, 20 Jan 2021 11:28:47 +0530
Subject: [PATCH 47/65] devtree: Add UUID property
Subject: [PATCH] devtree: Add UUID property
Add UUID property to PowerVM LPAR.
@ -11,7 +11,7 @@ Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
1 file changed, 2 insertions(+)
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
index d3188c6..7df6a4e 100644
index d3188c6a8a27..7df6a4ee074c 100644
--- a/src/core/device-tree.cc
+++ b/src/core/device-tree.cc
@@ -1503,6 +1503,8 @@ bool scan_device_tree(hwNode & n)
@ -24,5 +24,5 @@ index d3188c6..7df6a4e 100644
}
else {
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From f914f225975bb4a146792c2b0181b8d0e01ff3a6 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sat, 28 Mar 2020 11:54:10 +0100
Subject: [PATCH 03/65] report CPU family/model/stepping
Subject: [PATCH 01/17] report CPU family/model/stepping
---
src/core/cpuinfo.cc | 21 +++++++++++++++++++--
@ -10,7 +10,7 @@ Subject: [PATCH 03/65] report CPU family/model/stepping
3 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/src/core/cpuinfo.cc b/src/core/cpuinfo.cc
index 33085fd..eceb83a 100644
index 33085fda1159..eceb83aa4e3a 100644
--- a/src/core/cpuinfo.cc
+++ b/src/core/cpuinfo.cc
@@ -463,6 +463,14 @@ string value)
@ -49,7 +49,7 @@ index 33085fd..eceb83a 100644
return true;
}
diff --git a/src/core/hw.cc b/src/core/hw.cc
index 4522c1a..a592730 100644
index 4522c1af0fc3..a59273008862 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -2432,6 +2432,26 @@ string value::asString() const
@ -80,7 +80,7 @@ index 4522c1a..a592730 100644
{
if(!This) return false;
diff --git a/src/core/hw.h b/src/core/hw.h
index 3cb782b..451e9b3 100644
index 3cb782b0e635..451e9b3cf26a 100644
--- a/src/core/hw.h
+++ b/src/core/hw.h
@@ -79,6 +79,7 @@ namespace hw
@ -92,5 +92,5 @@ index 3cb782b..451e9b3 100644
private:
--
2.33.1
2.17.1

@ -0,0 +1,96 @@
From ad4ecfd29c29f6895aaf02092e6574299a2b5aa9 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 03:12:51 +0200
Subject: [PATCH 02/18] Build against gtk3 instead of gtk2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since gtk2 is on life support, it makes sense to build the gui code with
gtk3 nowadays.
I went for 3.24 because thats the version I have available on my
system, but it is probable that previous versions would also work, I
dont know.
[lijiang added the following comment]
Note: Because rhel8 uses the cmake, update the CMakeLists instead of
Makefile.
In addition, currently, rhel8 only supports the gtk-3.22 instead of
gtk-3.24, so downgrade to gtk-3.22, otherwise the build will fail.
---
README.md | 2 +-
lshw.spec.in | 4 ++--
src/gui/CMakeLists.txt | 6 +++---
src/gui/gtk-lshw.ui | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 294888c71ff0..cf50e5151228 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ Installation
- cmake, GNU make or Ninja
- an ANSI (or close enough to ANSI compliance) C++ compiler (tested with g++ 2.95.4 and 3.x)
- for the (optional) GTK+ graphical user interface, you will need a
- complete GTK+ development environment (gtk2-devel on RedHat/Fedora derivatives)
+ complete GTK+ development environment (gtk3-devel on RedHat/Fedora derivatives)
- for optional SQLite feature install SQLite
- for optional zlib feature install zlib and gzip
diff --git a/lshw.spec.in b/lshw.spec.in
index 3fe23c2ef360..78018211e1af 100644
--- a/lshw.spec.in
+++ b/lshw.spec.in
@@ -31,8 +31,8 @@ http://lshw.ezix.org/
Summary: HardWare LiSter (GUI version)
Group: Applications/System
Requires: %{name} >= %{version}
-Requires: gtk2 >= 2.4
-BuildRequires: gtk2-devel >= 2.4
+Requires: gtk3 >= 3.22
+BuildRequires: gtk3-devel >= 3.22
%description gui
lshw (Hardware Lister) is a small tool to provide detailed informaton on
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index 34890535a070..34c9e4383c3e 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -4,17 +4,17 @@ if(NOT GUI OR STATIC)
endif()
find_package(PkgConfig)
-pkg_check_modules(GTK2 REQUIRED gtk+-2.0 gmodule-2.0)
+pkg_check_modules(GTK3 REQUIRED gtk+-3.0 gmodule-2.0)
file(GLOB GTK_SOURCES "*.c*")
include_directories("${PROJECT_BINARY_DIR}")
include_directories("${PROJECT_SOURCE_DIR}/src/core")
-include_directories("${GTK2_INCLUDE_DIRS}")
+include_directories("${GTK3_INCLUDE_DIRS}")
add_executable(gtk-lshw ${GTK_SOURCES})
-target_link_libraries(gtk-lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} ${GTK2_LIBRARIES} core resolv)
+target_link_libraries(gtk-lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} ${GTK3_LIBRARIES} core resolv)
install(TARGETS gtk-lshw DESTINATION sbin)
if(POLICYKIT)
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 73fc08a58d1e..25ab1ad03349 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <requires lib="gtk+" version="2.22"/>
+ <requires lib="gtk+" version="3.22"/>
<object class="GtkDialog" id="aboutlshw">
<property name="can_focus">False</property>
<property name="title" translatable="yes">About</property>
--
2.17.1

@ -1,34 +0,0 @@
From e7cde935da1017976b51761fd0e14e598d98e26f Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Fri, 17 Mar 2023 14:58:53 +0100
Subject: [PATCH 2/3] NVMe: fix logical name with native multipath
address Github #92
---
src/core/nvme.cc | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/core/nvme.cc b/src/core/nvme.cc
index 6042788..9ede109 100644
--- a/src/core/nvme.cc
+++ b/src/core/nvme.cc
@@ -50,7 +50,15 @@ bool scan_nvme(hwNode & n)
ns.setBusInfo(guessBusInfo(n.name()));
ns.setPhysId(n.string_attr("nsid"));
ns.setDescription("NVMe disk");
- ns.setLogicalName(n.name());
+ // try to guess correct logical name when native NVMe multipath is enabled for NVMe devices
+ if(!exists("/dev/"+n.name()) &&
+ uppercase(get_string("/sys/module/nvme_core/parameters/multipath"))=="Y" &&
+ matches(n.name(), "^nvme[0-9]+c[0-9]+n[0-9]+$")) {
+ size_t indexc = n.name().find("c");
+ size_t indexn = n.name().find("n", indexc);
+ ns.setLogicalName(n.name().erase(indexc, indexn - indexc));
+ } else
+ ns.setLogicalName(n.name());
ns.setConfig("wwid",n.string_attr("wwid"));
scan_disk(ns);
device->addChild(ns);
--
2.33.1

@ -1,68 +0,0 @@
From d76afbaaf40e953243da921844cddff8185324f3 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 28 Jun 2022 10:22:38 +0200
Subject: [PATCH 2/2] make version check optional
cf. Github PR#86
Rather than using an LSM such as SELinux to limit network access, or
having to add exceptions into network monitoring, allow lshw to be built
so that it doesn't do the DNS lookup to check for upstream version
updates.
Signed-off-by: Stewart Smith trawets@amazon.com
---
src/core/version.cc | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/src/core/version.cc b/src/core/version.cc
index 1f64b3a..ea8dd4a 100644
--- a/src/core/version.cc
+++ b/src/core/version.cc
@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
+#ifdef REMOTE_VERSION_CHECK
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
@@ -21,7 +22,7 @@
#ifndef PACKETSZ
#define PACKETSZ 512
#endif
-
+#endif
const char *getpackageversion()
{
@@ -31,6 +32,7 @@ const char *getpackageversion()
return "unknown";
}
+#ifdef REMOTE_VERSION_CHECK
static char *txtquery(const char *name, const char *domain, unsigned int *ttl)
{
unsigned char answer[PACKETSZ], *pt;
@@ -84,13 +86,18 @@ static char *txtquery(const char *name, const char *domain, unsigned int *ttl)
return txt;
}
+#endif
const char * checkupdates()
{
+#ifdef REMOTE_VERSION_CHECK
static char *latest = NULL;
if(!latest)
latest = txtquery(PACKAGE, "ezix.org", NULL);
return latest;
+#else
+ return NULL;
+#endif
}
--
2.33.1

@ -1,14 +1,14 @@
From 126bc4387648fabf0478d0b869fe6bc52676b447 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sun, 29 Mar 2020 19:25:39 +0200
Subject: [PATCH 04/65] move PnP devices to the ISA/LPC bridge
Subject: [PATCH 02/17] move PnP devices to the ISA/LPC bridge
---
src/core/pnp.cc | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/core/pnp.cc b/src/core/pnp.cc
index 8c92adf..6a39185 100644
index 8c92adf647a0..6a391856ec52 100644
--- a/src/core/pnp.cc
+++ b/src/core/pnp.cc
@@ -165,6 +165,11 @@ hw::hwClass pnp_class(const string & pnpid)
@ -49,5 +49,5 @@ index 8c92adf..6a39185 100644
return true;
}
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From b79101ccdbb609e3dccfe097952ab2d3d7b55951 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 03:39:46 +0200
Subject: [PATCH 24/65] Remove deprecated stock messages
Subject: [PATCH 03/18] Remove deprecated stock messages
---
src/gui/gtk-lshw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gui/gtk-lshw.c b/src/gui/gtk-lshw.c
index 50dfb83..9ac525c 100644
index 50dfb8329a5c..9ac525c715d8 100644
--- a/src/gui/gtk-lshw.c
+++ b/src/gui/gtk-lshw.c
@@ -31,8 +31,8 @@ main (int argc, char *argv[])
@ -23,5 +23,5 @@ index 50dfb83..9ac525c 100644
proceed = (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT);
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From bb82dda52da2029a527577a796daffcbc97d8e83 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Mon, 30 Mar 2020 23:36:15 +0200
Subject: [PATCH 05/65] correctly format SMBIOS UUID
Subject: [PATCH 03/17] correctly format SMBIOS UUID
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -9,12 +9,13 @@ Content-Transfer-Encoding: 8bit
cf. https://en.wikipedia.org/wiki/Universally_unique_identifier (RFC 4122 Section 3 requires that the characters be generated in lower case, while being case-insensitive on input.)
cf. https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf §7.2.1
---
src/core/dmi.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index c4c01e0..30b3ab3 100644
index c4c01e02a392..30b3ab3b995c 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -195,8 +195,8 @@ static string dmi_uuid(const u8 * p)
@ -29,5 +30,5 @@ index c4c01e0..30b3ab3 100644
return hw::strip(string(buffer));
--
2.33.1
2.17.1

@ -1,26 +0,0 @@
From b4e067307906ec6f277cce5c8a882f5edd03cbbc Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Mon, 20 Mar 2023 13:37:30 +0100
Subject: [PATCH 3/3] fix NVMe multipath detection
cf. github #93
---
src/core/nvme.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/nvme.cc b/src/core/nvme.cc
index 9ede109..fb93cbd 100644
--- a/src/core/nvme.cc
+++ b/src/core/nvme.cc
@@ -52,7 +52,7 @@ bool scan_nvme(hwNode & n)
ns.setDescription("NVMe disk");
// try to guess correct logical name when native NVMe multipath is enabled for NVMe devices
if(!exists("/dev/"+n.name()) &&
- uppercase(get_string("/sys/module/nvme_core/parameters/multipath"))=="Y" &&
+ uppercase(hw::strip(get_string("/sys/module/nvme_core/parameters/multipath")))=="Y" &&
matches(n.name(), "^nvme[0-9]+c[0-9]+n[0-9]+$")) {
size_t indexc = n.name().find("c");
size_t indexn = n.name().find("n", indexc);
--
2.33.1

@ -1,14 +1,14 @@
From 8d696376c0f044507575e933b3e438e104f3ecd2 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 03:40:04 +0200
Subject: [PATCH 25/65] Remove hack which is apparently not useful anymore
Subject: [PATCH 04/18] Remove hack which is apparently not useful anymore
---
src/gui/stock.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/src/gui/stock.c b/src/gui/stock.c
index 08675db..46dfbe7 100644
index 08675db8f037..46dfbe7173b5 100644
--- a/src/gui/stock.c
+++ b/src/gui/stock.c
@@ -89,7 +89,6 @@ lshw_gtk_stock_init(void)
@ -40,5 +40,5 @@ index 08675db..46dfbe7 100644
gtk_icon_size_register(LSHW_ICON_SIZE_LOGO, LSHW_DEFAULT_ICON_SIZE, LSHW_DEFAULT_ICON_SIZE);
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From aea375aeb4f58a35afd1ec2998a04060bc8fccfa Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 31 Mar 2020 23:27:36 +0200
Subject: [PATCH 06/65] cosmetic clean-up
Subject: [PATCH 04/17] cosmetic clean-up
---
src/core/mmc.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/mmc.cc b/src/core/mmc.cc
index 96c2c49..1385e11 100644
index 96c2c49e4597..1385e116c7ae 100644
--- a/src/core/mmc.cc
+++ b/src/core/mmc.cc
@@ -327,8 +327,8 @@ bool scan_mmc(hwNode & n)
@ -23,5 +23,5 @@ index 96c2c49..1385e11 100644
const sysfs::entry & d = *i;
--
2.33.1
2.17.1

@ -1,16 +1,17 @@
From 41c04d1c5ee84b1f42a9fabf7623a98ff02b9bf1 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 04:37:55 +0200
Subject: [PATCH 26/65] Use GtkFileChooserNative instead of
Subject: [PATCH 05/18] Use GtkFileChooserNative instead of
GtkFileChooserDialog
This class allows it to work even in containers.
---
src/gui/engine.cc | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/gui/engine.cc b/src/gui/engine.cc
index 2d2e58b..21e446e 100644
index 2d2e58bb9a21..21e446e0359d 100644
--- a/src/gui/engine.cc
+++ b/src/gui/engine.cc
@@ -460,7 +460,7 @@ static void redirect_cout(std::ofstream &out, bool enable = true)
@ -55,5 +56,5 @@ index 2d2e58b..21e446e 100644
+ g_object_unref (dialog);
}
--
2.33.1
2.17.1

@ -1,23 +1,24 @@
From 691ed58e2838ca3e50e899f013e259ea84f6bfe9 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Wed, 1 Apr 2020 00:43:15 +0200
Subject: [PATCH 07/65] begin work on input devices
Subject: [PATCH 05/17] begin work on input devices
still missing:
* capabilities
* properties
* report at least as much information as /proc/bus/input/devices
---
src/core/hw.cc | 2 +-
src/core/input.cc | 146 ++++++++++++++++++++++++++++++++++++++++++++++
src/core/input.h | 8 +++
src/core/main.cc | 4 ++
5 files changed, 160 insertions(+), 2 deletions(-)
4 files changed, 159 insertions(+), 1 deletions(-)
create mode 100644 src/core/input.cc
create mode 100644 src/core/input.h
diff --git a/src/core/hw.cc b/src/core/hw.cc
index a592730..f7da370 100644
index a59273008862..f7da370816c5 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1083,7 +1083,7 @@ void hwNode::setLogicalName(const string & name)
@ -31,7 +32,7 @@ index a592730..f7da370 100644
This->dev = get_devid(n);
diff --git a/src/core/input.cc b/src/core/input.cc
new file mode 100644
index 0000000..1f14fa9
index 000000000000..1f14fa9d8b56
--- /dev/null
+++ b/src/core/input.cc
@@ -0,0 +1,146 @@
@ -183,7 +184,7 @@ index 0000000..1f14fa9
+}
diff --git a/src/core/input.h b/src/core/input.h
new file mode 100644
index 0000000..1bf2383
index 000000000000..1bf2383bc53b
--- /dev/null
+++ b/src/core/input.h
@@ -0,0 +1,8 @@
@ -196,7 +197,7 @@ index 0000000..1bf2383
+
+#endif
diff --git a/src/core/main.cc b/src/core/main.cc
index d0d7f10..ad0e586 100644
index d0d7f1057c29..ad0e586ef549 100644
--- a/src/core/main.cc
+++ b/src/core/main.cc
@@ -45,6 +45,7 @@
@ -218,5 +219,5 @@ index d0d7f10..ad0e586 100644
if (enabled("s390"))
scan_s390_devices(computer);
--
2.33.1
2.17.1

@ -1,11 +1,12 @@
From e342333d936293e82ff889aa6745b93a8c975543 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 05:04:19 +0200
Subject: [PATCH 27/65] Replace deprecated GtkIconFactory with GHashTable
Subject: [PATCH 06/18] Replace deprecated GtkIconFactory with GHashTable
This removes most warnings. A possible further improvement would be to
use GtkIconTheme instead, but it will require reorganising the SVG files
around.
---
src/gui/engine.cc | 3 ++-
src/gui/print-gui.cc | 19 ++++++++-----------
@ -15,7 +16,7 @@ around.
5 files changed, 17 insertions(+), 34 deletions(-)
diff --git a/src/gui/engine.cc b/src/gui/engine.cc
index 21e446e..c66279e 100644
index 21e446e0359d..c66279e5f498 100644
--- a/src/gui/engine.cc
+++ b/src/gui/engine.cc
@@ -40,6 +40,7 @@ extern GtkWidget *description;
@ -36,7 +37,7 @@ index 21e446e..c66279e 100644
}
diff --git a/src/gui/print-gui.cc b/src/gui/print-gui.cc
index 861ec4c..4138424 100644
index 861ec4c695da..4138424d172e 100644
--- a/src/gui/print-gui.cc
+++ b/src/gui/print-gui.cc
@@ -66,15 +66,12 @@ static void printsize(long long value, const hwNode & node, const string & name,
@ -97,7 +98,7 @@ index 861ec4c..4138424 100644
(void) &id; // avoid "id defined but not used" warning
}
diff --git a/src/gui/print-gui.h b/src/gui/print-gui.h
index 055f7cd..d419461 100644
index 055f7cdf3087..d41946161f02 100644
--- a/src/gui/print-gui.h
+++ b/src/gui/print-gui.h
@@ -4,7 +4,7 @@
@ -110,7 +111,7 @@ index 055f7cd..d419461 100644
string gethwpath(hwNode & node, hwNode & base);
#endif
diff --git a/src/gui/stock.c b/src/gui/stock.c
index 46dfbe7..9e7c366 100644
index 46dfbe7173b5..9e7c3664427a 100644
--- a/src/gui/stock.c
+++ b/src/gui/stock.c
@@ -16,6 +16,7 @@ GtkWidget *description = NULL;
@ -186,7 +187,7 @@ index 46dfbe7..9e7c366 100644
{
gtk_window_set_icon(GTK_WINDOW(mainwindow), icon);
diff --git a/src/gui/stock.h b/src/gui/stock.h
index a0fef5b..58f788e 100644
index a0fef5b882b2..58f788e5b573 100644
--- a/src/gui/stock.h
+++ b/src/gui/stock.h
@@ -43,7 +43,6 @@
@ -198,5 +199,5 @@ index a0fef5b..58f788e 100644
void lshw_gtk_stock_init(void);
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 7edaa09faa5755e44f2c6226f3447536658300af Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 2 Apr 2020 13:21:58 +0200
Subject: [PATCH 08/65] cosmetic fixes
Subject: [PATCH 06/17] cosmetic fixes
---
src/core/input.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/input.cc b/src/core/input.cc
index 1f14fa9..a8d8eaf 100644
index 1f14fa9d8b56..a8d8eaf45cb3 100644
--- a/src/core/input.cc
+++ b/src/core/input.cc
@@ -79,7 +79,7 @@ bool scan_input(hwNode & n)
@ -30,5 +30,5 @@ index 1f14fa9..a8d8eaf 100644
case BUS_GSC:
device->addCapability("gsc", "GSC bus");
--
2.33.1
2.17.1

@ -1,15 +1,16 @@
From 8ff4b056e8fd371dca868f8967b36c6e9a4590ab Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 05:06:38 +0200
Subject: [PATCH 28/65] Replace the last GtkStock in overwrite dialog
Subject: [PATCH 07/18] Replace the last GtkStock in overwrite dialog
Also add a mnemonic for better keyboard access to the overwrite button.
---
src/gui/engine.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gui/engine.cc b/src/gui/engine.cc
index c66279e..ff06074 100644
index c66279e5f498..ff0607490673 100644
--- a/src/gui/engine.cc
+++ b/src/gui/engine.cc
@@ -556,8 +556,8 @@ void save_as(GtkWidget *mainwindow)
@ -24,5 +25,5 @@ index c66279e..ff06074 100644
proceed = (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT);
gtk_widget_destroy (dialog);
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 1cc52cac74ea735faae92dc963d10292608d7a4d Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 2 Apr 2020 13:39:42 +0200
Subject: [PATCH 09/65] detect sound devices
Subject: [PATCH 07/17] detect sound devices
---
src/core/main.cc | 4 ++++
@ -9,12 +9,12 @@ Subject: [PATCH 09/65] detect sound devices
src/core/sound.h | 8 +++++++
src/core/sysfs.cc | 5 +++++
src/core/sysfs.h | 1 +
6 files changed, 72 insertions(+), 1 deletion(-)
5 files changed, 71 insertions(+)
create mode 100644 src/core/sound.cc
create mode 100644 src/core/sound.h
diff --git a/src/core/main.cc b/src/core/main.cc
index ad0e586..e35258c 100644
index ad0e586ef549..e35258c56141 100644
--- a/src/core/main.cc
+++ b/src/core/main.cc
@@ -46,6 +46,7 @@
@ -37,7 +37,7 @@ index ad0e586..e35258c 100644
scan_input(computer);
diff --git a/src/core/sound.cc b/src/core/sound.cc
new file mode 100644
index 0000000..05edf23
index 000000000000..05edf2352267
--- /dev/null
+++ b/src/core/sound.cc
@@ -0,0 +1,53 @@
@ -96,7 +96,7 @@ index 0000000..05edf23
+}
diff --git a/src/core/sound.h b/src/core/sound.h
new file mode 100644
index 0000000..c2caf04
index 000000000000..c2caf04687bf
--- /dev/null
+++ b/src/core/sound.h
@@ -0,0 +1,8 @@
@ -109,7 +109,7 @@ index 0000000..c2caf04
+
+#endif
diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
index 32d6564..ee8b1da 100644
index 32d65642f157..ee8b1da06c78 100644
--- a/src/core/sysfs.cc
+++ b/src/core/sysfs.cc
@@ -343,6 +343,11 @@ string entry::classname() const
@ -125,7 +125,7 @@ index 32d6564..ee8b1da 100644
{
return string(basename(dirname(dirname(This->devpath)).c_str())) == "virtual";
diff --git a/src/core/sysfs.h b/src/core/sysfs.h
index 9cc1b2b..c25430b 100644
index 9cc1b2b0a500..c25430b834df 100644
--- a/src/core/sysfs.h
+++ b/src/core/sysfs.h
@@ -26,6 +26,7 @@ namespace sysfs
@ -137,5 +137,5 @@ index 9cc1b2b..c25430b 100644
string businfo() const;
string driver() const;
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 0a290c29faa083767698d77b3454ca08fe2a71eb Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 05:18:25 +0200
Subject: [PATCH 29/65] Remove deprecated widgets
Subject: [PATCH 08/18] Remove deprecated widgets
---
src/gui/gtk-lshw.ui | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 25ab1ad..5f21da0 100644
index 25ab1ad03349..5f21da08e8e1 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -114,9 +114,10 @@
@ -44,5 +44,5 @@ index 25ab1ad..5f21da0 100644
<object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
--
2.33.1
2.17.1

@ -1,19 +1,19 @@
From 755371fc1590e752380822ffdb320484e3b6851f Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 2 Apr 2020 14:54:03 +0200
Subject: [PATCH 10/65] detect framebuffers
Subject: [PATCH 08/17] detect framebuffers
---
src/core/graphics.cc | 44 ++++++++++++++++++++++++++++++++++++++++++++
src/core/graphics.h | 8 ++++++++
src/core/main.cc | 4 ++++
4 files changed, 57 insertions(+), 1 deletion(-)
3 files changed, 56 insertions(+)
create mode 100644 src/core/graphics.cc
create mode 100644 src/core/graphics.h
diff --git a/src/core/graphics.cc b/src/core/graphics.cc
new file mode 100644
index 0000000..a8d490c
index 000000000000..a8d490cd1d61
--- /dev/null
+++ b/src/core/graphics.cc
@@ -0,0 +1,44 @@
@ -63,7 +63,7 @@ index 0000000..a8d490c
+}
diff --git a/src/core/graphics.h b/src/core/graphics.h
new file mode 100644
index 0000000..c30f0bf
index 000000000000..c30f0bf8112b
--- /dev/null
+++ b/src/core/graphics.h
@@ -0,0 +1,8 @@
@ -76,7 +76,7 @@ index 0000000..c30f0bf
+
+#endif
diff --git a/src/core/main.cc b/src/core/main.cc
index e35258c..ac2fba0 100644
index e35258c56141..ac2fba0146f0 100644
--- a/src/core/main.cc
+++ b/src/core/main.cc
@@ -47,6 +47,7 @@
@ -98,5 +98,5 @@ index e35258c..ac2fba0 100644
if (enabled("input"))
scan_input(computer);
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 6cf78e942827dd01b91607704c7bfad9a1a1541d Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 06:45:43 +0200
Subject: [PATCH 30/65] Remove deprecated use_action_appearance property
Subject: [PATCH 09/18] Remove deprecated use_action_appearance property
---
src/gui/gtk-lshw.ui | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 5f21da0..1656f80 100644
index 5f21da08e8e1..1656f80ddd53 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -27,7 +27,6 @@
@ -124,5 +124,5 @@ index 5f21da0..1656f80 100644
<signal name="clicked" handler="gtk_main_quit" swapped="no"/>
</object>
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From f6138333811f7f2bf01551c70f5726f7c556dd36 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Fri, 3 Apr 2020 22:42:21 +0200
Subject: [PATCH 11/65] try to connect input devices to the right parent
Subject: [PATCH 09/17] try to connect input devices to the right parent
---
src/core/input.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/core/input.cc b/src/core/input.cc
index a8d8eaf..ab37d37 100644
index a8d8eaf45cb3..ab37d37c3863 100644
--- a/src/core/input.cc
+++ b/src/core/input.cc
@@ -52,6 +52,12 @@ bool scan_input(hwNode & n)
@ -25,5 +25,5 @@ index a8d8eaf..ab37d37 100644
device = n.addChild(hwNode("input", hw::input));
else
--
2.33.1
2.17.1

@ -1,16 +1,17 @@
From 5fd82e398ba94766f0981f97988c8f14ab4297c5 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 05:53:57 +0200
Subject: [PATCH 31/65] Move to GtkApplication
Subject: [PATCH 10/18] Move to GtkApplication
This will eventually let us use GActions to build our menus and buttons.
---
src/gui/gtk-lshw.c | 36 ++++++++++++++++++++++--------------
src/gui/gtk-lshw.ui | 3 +--
2 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/src/gui/gtk-lshw.c b/src/gui/gtk-lshw.c
index 9ac525c..6c0f0bb 100644
index 9ac525c715d8..6c0f0bbdf77f 100644
--- a/src/gui/gtk-lshw.c
+++ b/src/gui/gtk-lshw.c
@@ -11,17 +11,10 @@ static char *id = "@(#) $Id$";
@ -74,7 +75,7 @@ index 9ac525c..6c0f0bb 100644
+ return status;
}
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 1656f80..7504c76 100644
index 1656f80ddd53..7504c76d1a1b 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -102,14 +102,13 @@
@ -94,5 +95,5 @@ index 1656f80..7504c76 100644
<child>
<object class="GtkBox" id="main-box">
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 4c19563dae05d3a730bb67917f1810eb33a54613 Mon Sep 17 00:00:00 2001
From: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Date: Fri, 6 Mar 2020 04:41:33 -0600
Subject: [PATCH 12/65] devtree: Add chip-id from the dimm module
Subject: [PATCH 10/17] devtree: Add chip-id from the dimm module
Add chip-id from dimm module into the configuration if available. DIMM's are
behind the CHIP on Power systems. By adding chip-id it helps to map what dimm
@ -22,7 +22,7 @@ Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
1 file changed, 2 insertions(+)
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
index 490e197..f43d34f 100644
index 490e1976e619..f43d34f072b6 100644
--- a/src/core/device-tree.cc
+++ b/src/core/device-tree.cc
@@ -1031,6 +1031,8 @@ static void add_memory_bank(string name, string path, hwNode & core)
@ -35,5 +35,5 @@ index 490e197..f43d34f 100644
if(exists("ibm,loc-code"))
bank.setSlot(hw::strip(get_string("ibm,loc-code")));
--
2.33.1
2.17.1

@ -1,9 +1,10 @@
From d1690196a9007568bfce3847841ea2b509eb3150 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 06:28:06 +0200
Subject: [PATCH 32/65] Replace signals with GSimpleActions
Subject: [PATCH 11/18] Replace signals with GSimpleActions
This unifies actions pertaining to the application.
---
src/gui/callbacks.c | 62 ++++++++++++++++++++++-----------------------
src/gui/callbacks.h | 35 ++++++++++++++++---------
@ -12,7 +13,7 @@ This unifies actions pertaining to the application.
4 files changed, 76 insertions(+), 51 deletions(-)
diff --git a/src/gui/callbacks.c b/src/gui/callbacks.c
index f8aa0cb..eec3e55 100644
index f8aa0cb0f968..eec3e5571741 100644
--- a/src/gui/callbacks.c
+++ b/src/gui/callbacks.c
@@ -17,17 +17,36 @@ static char *id = "@(#) $Id$";
@ -110,7 +111,7 @@ index f8aa0cb..eec3e55 100644
-}
-
diff --git a/src/gui/callbacks.h b/src/gui/callbacks.h
index cc856e4..b9b9141 100644
index cc856e45ddb4..b9b9141c0eb7 100644
--- a/src/gui/callbacks.h
+++ b/src/gui/callbacks.h
@@ -1,8 +1,29 @@
@ -161,7 +162,7 @@ index cc856e4..b9b9141 100644
-on_savebutton_clicked (GtkToolButton *toolbutton,
- gpointer user_data);
diff --git a/src/gui/gtk-lshw.c b/src/gui/gtk-lshw.c
index 6c0f0bb..0dc3aff 100644
index 6c0f0bbdf77f..0dc3aff6d322 100644
--- a/src/gui/gtk-lshw.c
+++ b/src/gui/gtk-lshw.c
@@ -6,11 +6,21 @@
@ -198,7 +199,7 @@ index 6c0f0bb..0dc3aff 100644
lshw_ui_init();
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 7504c76..d24e05c 100644
index 7504c76d1a1b..d24e05c3aa20 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -136,7 +136,7 @@
@ -274,5 +275,5 @@ index 7504c76..d24e05c 100644
<packing>
<property name="expand">False</property>
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 872b0996df37aae586575ca8021c2509c05067b0 Mon Sep 17 00:00:00 2001
From: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Date: Fri, 6 Mar 2020 04:41:33 -0600
Subject: [PATCH 13/65] devtree: Add chip-id from CPU node
Subject: [PATCH 11/17] devtree: Add chip-id from CPU node
Add chip-id from CPU node into the configuration if available. CPU's are
behind the CHIP on Power systems. By adding chip-id it helps to map what cpus
@ -23,7 +23,7 @@ Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
1 file changed, 2 insertions(+)
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
index f43d34f..af665a4 100644
index f43d34f072b6..af665a4d8e1a 100644
--- a/src/core/device-tree.cc
+++ b/src/core/device-tree.cc
@@ -492,6 +492,8 @@ static void fill_core_vpd(hwNode & cpu, string & basepath,
@ -36,5 +36,5 @@ index f43d34f..af665a4 100644
xscom_path = xscoms[chip_id];
--
2.33.1
2.17.1

@ -1,10 +1,11 @@
From a116b319adf51d4eafcb264de027647244340708 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Wed, 15 Jul 2020 17:32:45 +0200
Subject: [PATCH 33/65] Enable/Disable GSimpleAction instead of button
Subject: [PATCH 12/18] Enable/Disable GSimpleAction instead of button
sensitivity
This also fixes the Save menu item not having been disabled properly.
---
src/gui/engine.cc | 24 +++++++-----------------
src/gui/gtk-lshw.c | 7 +++++++
@ -13,7 +14,7 @@ This also fixes the Save menu item not having been disabled properly.
4 files changed, 14 insertions(+), 23 deletions(-)
diff --git a/src/gui/engine.cc b/src/gui/engine.cc
index ff06074..2962ec8 100644
index ff0607490673..2962ec80d81a 100644
--- a/src/gui/engine.cc
+++ b/src/gui/engine.cc
@@ -37,10 +37,10 @@ static hwNode *selected3 = NULL;
@ -82,7 +83,7 @@ index ff06074..2962ec8 100644
display(mainwindow);
}
diff --git a/src/gui/gtk-lshw.c b/src/gui/gtk-lshw.c
index 0dc3aff..7b91ec5 100644
index 0dc3aff6d322..7b91ec5e4f01 100644
--- a/src/gui/gtk-lshw.c
+++ b/src/gui/gtk-lshw.c
@@ -11,6 +11,8 @@
@ -107,7 +108,7 @@ index 0dc3aff..7b91ec5 100644
lshw_gtk_stock_init();
lshw_ui_init();
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index d24e05c..76fcd19 100644
index d24e05c3aa20..76fcd19379f2 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -222,7 +222,6 @@
@ -127,7 +128,7 @@ index d24e05c..76fcd19 100644
<property name="stock_id">gtk-save</property>
<property name="action_name">app.save</property>
diff --git a/src/gui/stock.c b/src/gui/stock.c
index 9e7c366..fa18f9e 100644
index 9e7c3664427a..fa18f9ed7f85 100644
--- a/src/gui/stock.c
+++ b/src/gui/stock.c
@@ -13,8 +13,6 @@ GtkWidget *list1 = NULL;
@ -149,5 +150,5 @@ index 9e7c366..fa18f9e 100644
gtk_builder_connect_signals( builder, mainwindow );
g_object_unref( G_OBJECT( builder ) );
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 82df4fa7d3705f2f61282ed5b22074d4e0a6efc4 Mon Sep 17 00:00:00 2001
From: Harry Mallon <hjmallon@gmail.com>
Date: Thu, 23 Apr 2020 21:18:47 +0100
Subject: [PATCH 14/65] volumes: fix segfault in apfs volume code
Subject: [PATCH 12/17] volumes: fix segfault in apfs volume code
---
src/core/volumes.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/core/volumes.cc b/src/core/volumes.cc
index e703523..6fce2ee 100644
index e70352377f84..6fce2ee3de1c 100644
--- a/src/core/volumes.cc
+++ b/src/core/volumes.cc
@@ -784,12 +784,13 @@ struct apfs_super_block {
@ -27,5 +27,5 @@ index e703523..6fce2ee 100644
if(readlogicalblocks(apfsvolume, buffer, 0, 1)!=1)
return false;
--
2.33.1
2.17.1

@ -1,13 +1,14 @@
From bc5046d9917fe9cf84dd899f90aef5b90b7d4b04 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Wed, 15 Jul 2020 16:54:27 +0200
Subject: [PATCH 34/65] Move from GtkMenuBar to GMenu
Subject: [PATCH 13/18] Move from GtkMenuBar to GMenu
This moves forward with gtk4 support, while also allowing a global menu
for environments which use one, such as GNOME.
I also added shortcuts so that users can press ^Q, ^R and ^S to quit,
refresh and save.
---
src/gui/gtk-lshw.c | 2 +-
src/gui/gtk-lshw.ui | 138 ++++++++++++--------------------------------
@ -16,7 +17,7 @@ refresh and save.
4 files changed, 47 insertions(+), 103 deletions(-)
diff --git a/src/gui/gtk-lshw.c b/src/gui/gtk-lshw.c
index 7b91ec5..d3e531c 100644
index 7b91ec5e4f01..d3e531c4ceb3 100644
--- a/src/gui/gtk-lshw.c
+++ b/src/gui/gtk-lshw.c
@@ -57,7 +57,7 @@ activate (GApplication *app,
@ -29,7 +30,7 @@ index 7b91ec5..d3e531c 100644
if(!mainwindow)
return;
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 76fcd19..cf9d678 100644
index 76fcd19379f2..cf9d678f00d9 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -103,7 +103,6 @@
@ -190,7 +191,7 @@ index 76fcd19..cf9d678 100644
+ </menu>
</interface>
diff --git a/src/gui/stock.c b/src/gui/stock.c
index fa18f9e..ce0b42a 100644
index fa18f9ed7f85..ce0b42abea58 100644
--- a/src/gui/stock.c
+++ b/src/gui/stock.c
@@ -14,6 +14,7 @@ GtkWidget *list2 = NULL;
@ -221,7 +222,7 @@ index fa18f9e..ce0b42a 100644
icon = g_hash_table_lookup(pixbufs, LSHW_STOCK_LOGO);
diff --git a/src/gui/stock.h b/src/gui/stock.h
index 58f788e..1c732df 100644
index 58f788e5b573..1c732dfb541e 100644
--- a/src/gui/stock.h
+++ b/src/gui/stock.h
@@ -45,6 +45,8 @@
@ -235,5 +236,5 @@ index 58f788e..1c732df 100644
+void lshw_ui_init(GtkApplication *);
#endif /* _STOCK_H_ */
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 89759485f86a48526b4f508a10f7478c76a3f71e Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Fri, 15 May 2020 16:00:08 +0200
Subject: [PATCH 15/65] merge Github PR #53
Subject: [PATCH 13/17] merge Github PR #53
---
src/core/cpuinfo.cc | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/core/cpuinfo.cc b/src/core/cpuinfo.cc
index eceb83a..49f3052 100644
index eceb83aa4e3a..49f3052d8da1 100644
--- a/src/core/cpuinfo.cc
+++ b/src/core/cpuinfo.cc
@@ -446,6 +446,7 @@ string value)
@ -54,5 +54,5 @@ index eceb83a..49f3052 100644
return true;
}
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From e96f82ce459a6d503f70d6c7b0f762bf0d133edf Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Sat, 1 Aug 2020 15:03:23 +0200
Subject: [PATCH 35/65] Replace the about GtkDialog with a GtkAboutDialog
Subject: [PATCH 14/18] Replace the about GtkDialog with a GtkAboutDialog
This reduces the amount of code needed for this feature, and integrates
better with the rest of the system.
@ -13,7 +13,7 @@ better with the rest of the system.
4 files changed, 12 insertions(+), 141 deletions(-)
diff --git a/src/gui/callbacks.c b/src/gui/callbacks.c
index eec3e55..b108777 100644
index eec3e5571741..b108777fe11f 100644
--- a/src/gui/callbacks.c
+++ b/src/gui/callbacks.c
@@ -10,7 +10,6 @@
@ -101,7 +101,7 @@ index eec3e55..b108777 100644
void
on_treeview1_row_activated (GtkTreeView *treeview,
diff --git a/src/gui/callbacks.h b/src/gui/callbacks.h
index b9b9141..e7636ef 100644
index b9b9141c0eb7..e7636efdcae5 100644
--- a/src/gui/callbacks.h
+++ b/src/gui/callbacks.h
@@ -25,10 +25,6 @@ on_quit_activated (GSimpleAction *action,
@ -116,13 +116,13 @@ index b9b9141..e7636ef 100644
on_treeview1_row_activated (GtkTreeView * treeview,
GtkTreePath * path,
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index cf9d678..a3c6248 100644
index b61bedf501ee..57817fd58b39 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -1,107 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="gtk+" version="3.22"/>
- <object class="GtkDialog" id="aboutlshw">
- <property name="can_focus">False</property>
- <property name="title" translatable="yes">About</property>
@ -228,10 +228,10 @@ index cf9d678..a3c6248 100644
<property name="can_focus">False</property>
<property name="title" translatable="yes">lshw</property>
diff --git a/src/gui/stock.c b/src/gui/stock.c
index ce0b42a..c3159b8 100644
index 7b98c642d43f..db2e98189662 100644
--- a/src/gui/stock.c
+++ b/src/gui/stock.c
@@ -8,7 +8,6 @@ static char *id = "@(#) $Id$";
@@ -9,7 +9,6 @@ static char *id = "@(#) $Id$";
#define UIFILE "gtk-lshw.ui"
GtkWidget *mainwindow = NULL;
@ -239,7 +239,7 @@ index ce0b42a..c3159b8 100644
GtkWidget *list1 = NULL;
GtkWidget *list2 = NULL;
GtkWidget *list3 = NULL;
@@ -145,7 +144,6 @@ void lshw_ui_init(GtkApplication *app)
@@ -146,7 +145,6 @@ void lshw_ui_init(GtkApplication *app)
g_free(uiname);
mainwindow = GTK_WIDGET( gtk_builder_get_object( builder, "mainwindow" ) );
@ -248,5 +248,5 @@ index ce0b42a..c3159b8 100644
list2 = GTK_WIDGET(gtk_builder_get_object( builder, "treeview2"));
list3 = GTK_WIDGET(gtk_builder_get_object( builder, "treeview3"));
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 29f69ac618fd5ace9ed9aae7839b5cfdc1fb5130 Mon Sep 17 00:00:00 2001
From: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Date: Wed, 1 Apr 2020 09:25:52 -0500
Subject: [PATCH 16/65] devtree: Add capabilites to the OPAL Firmware
Subject: [PATCH 14/17] devtree: Add capabilites to the OPAL Firmware
On OpenPower systems, the presence of the "/ibm,opal" entry in the device tree
signifies machines are running under OPAL firmware (i.e skiboot). Under this
@ -27,7 +27,7 @@ Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
1 file changed, 42 insertions(+)
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
index af665a4..e7227e1 100644
index af665a4d8e1a..e7227e1f74b7 100644
--- a/src/core/device-tree.cc
+++ b/src/core/device-tree.cc
@@ -219,11 +219,48 @@ static void scan_devtree_bootrom(hwNode & core)
@ -92,5 +92,5 @@ index af665a4..e7227e1 100644
}
free(namelist[i]);
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 60c906d385b933fb6f5f0f2b14bfc9ea6de43a99 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Fri, 21 Aug 2020 11:38:20 +0200
Subject: [PATCH 36/65] Update 'docs/TODO'
Subject: [PATCH 15/18] Update 'docs/TODO'
---
docs/TODO | 2 ++
1 file changed, 2 insertions(+)
diff --git a/docs/TODO b/docs/TODO
index 1e74710..ff0f288 100644
index 1e74710cb37b..ff0f288e2333 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -7,3 +7,5 @@
@ -18,5 +18,5 @@ index 1e74710..ff0f288 100644
+
+report SSD/rotational devices: /sys/block/DEV/queue/rotational
--
2.33.1
2.17.1

@ -1,7 +1,7 @@
From 4348e283f8a0bdd40b97c5d0b6e12354576b3113 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Mon, 25 May 2020 09:31:05 +0200
Subject: [PATCH 17/65] =?UTF-8?q?fix=20issue=20with=20logical=20names=20be?=
Subject: [PATCH 15/17] =?UTF-8?q?fix=20issue=20with=20logical=20names=20be?=
=?UTF-8?q?ing=20truncated=20(`/dev/sda`=20=E2=86=92=20`sda`)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@ -12,7 +12,7 @@ Content-Transfer-Encoding: 8bit
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/hw.cc b/src/core/hw.cc
index f7da370..aca424c 100644
index f7da370816c5..aca424c3f221 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1083,7 +1083,7 @@ void hwNode::setLogicalName(const string & name)
@ -25,5 +25,5 @@ index f7da370..aca424c 100644
if(This->dev == "")
This->dev = get_devid(n);
--
2.33.1
2.17.1

@ -1,14 +1,14 @@
From 358e65f92dec01f13b632d1d13fb8c76e1d50ca4 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Wed, 26 Aug 2020 23:36:59 +0200
Subject: [PATCH 37/65] Update 'docs/TODO'
Subject: [PATCH 16/18] Update 'docs/TODO'
---
docs/TODO | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/TODO b/docs/TODO
index ff0f288..0b33782 100644
index ff0f288e2333..0b337826dc86 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -9,3 +9,4 @@
@ -18,5 +18,5 @@ index ff0f288..0b33782 100644
+better handle containers
\ No newline at end of file
--
2.33.1
2.17.1

@ -1,17 +1,18 @@
From 37c3f3934b9d03be2d0ec70caf3779e03c003c5a Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Mon, 25 May 2020 15:24:38 +0200
Subject: [PATCH 18/65] code clean-up for read(3)
Subject: [PATCH 16/17] code clean-up for read(3)
use ssize_t instead of size_t
cf. Github PR #52
---
src/core/cpuinfo.cc | 2 +-
src/core/osutils.cc | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/core/cpuinfo.cc b/src/core/cpuinfo.cc
index 49f3052..9e41a42 100644
index 49f3052d8da1..9e41a42184a6 100644
--- a/src/core/cpuinfo.cc
+++ b/src/core/cpuinfo.cc
@@ -597,7 +597,7 @@ bool scan_cpuinfo(hwNode & n)
@ -24,7 +25,7 @@ index 49f3052..9e41a42 100644
string description = "", version = "";
string plat = platform();
diff --git a/src/core/osutils.cc b/src/core/osutils.cc
index f023a46..a53ed89 100644
index f023a465921b..a53ed89e9d7b 100644
--- a/src/core/osutils.cc
+++ b/src/core/osutils.cc
@@ -148,7 +148,7 @@ vector < string > &list)
@ -46,5 +47,5 @@ index f023a46..a53ed89 100644
memset(buffer, 0, sizeof(buffer));
result = "";
--
2.33.1
2.17.1

@ -1,15 +1,16 @@
From 3775782808e8b9b8aa72ed2ce23e145433e193cf Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Wed, 27 May 2020 01:16:20 +0200
Subject: [PATCH 21/65] report product model on Power systems
Subject: [PATCH 17/17] report product model on Power systems
Github PR #54
---
src/core/device-tree.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
index e7227e1..027ad16 100644
index e7227e1f74b7..027ad16fc557 100644
--- a/src/core/device-tree.cc
+++ b/src/core/device-tree.cc
@@ -1396,7 +1396,7 @@ static void get_ibm_model(hwNode & n)
@ -22,5 +23,5 @@ index e7227e1..027ad16 100644
n.setConfig("chassis", ibm_model_defs[i].chassis);
return;
--
2.33.1
2.17.1

@ -1,16 +1,17 @@
From 2c235e6bf21e30b8e2da4d20f358df1e540a5b69 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 15 Oct 2020 14:11:58 +0200
Subject: [PATCH 38/65] update man page
Subject: [PATCH 17/18] update man page
add `-notime` option
---
src/lshw.1 | 9 ++++++---
src/lshw.sgml | 5 +++++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/lshw.1 b/src/lshw.1
index 79c3619..ae6fa34 100644
index 79c36197c32d..ae6fa34cea50 100644
--- a/src/lshw.1
+++ b/src/lshw.1
@@ -1,5 +1,5 @@
@ -49,7 +50,7 @@ index 79c3619..ae6fa34 100644
.PP
\fBlshw\fR currently does not detect
diff --git a/src/lshw.sgml b/src/lshw.sgml
index 8c1c49e..5e92cbf 100644
index 8c1c49e0898b..5e92cbfd4665 100644
--- a/src/lshw.sgml
+++ b/src/lshw.sgml
@@ -43,6 +43,7 @@ list hardware
@ -72,5 +73,5 @@ index 8c1c49e..5e92cbf 100644
</para>
--
2.33.1
2.17.1

@ -1,16 +1,17 @@
From 56f1de9d1e4d6ff92d98530c0d3d91b353a311b9 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Thu, 15 Oct 2020 14:22:05 +0200
Subject: [PATCH 39/65] fix man page after previous update
Subject: [PATCH 18/18] fix man page after previous update
SGML source was not in sync with man page
---
src/lshw.1 | 2 +-
src/lshw.sgml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lshw.1 b/src/lshw.1
index ae6fa34..74b0e42 100644
index ae6fa34cea50..74b0e42afcad 100644
--- a/src/lshw.1
+++ b/src/lshw.1
@@ -53,7 +53,7 @@ Outputs the device tree showing hardware paths, very much like the output of HP-
@ -23,7 +24,7 @@ index ae6fa34..74b0e42 100644
\fB-class \fIclass\fB\fR
Only show the given class of hardware. \fIclass\fR can be found using \fBlshw -short\fR or \fBlshw -businfo\fR\&.
diff --git a/src/lshw.sgml b/src/lshw.sgml
index 5e92cbf..d190279 100644
index 5e92cbfd4665..d190279e96d5 100644
--- a/src/lshw.sgml
+++ b/src/lshw.sgml
@@ -101,7 +101,7 @@ Outputs the device list showing bus information, detailing <productname>SCSI</pr
@ -36,5 +37,5 @@ index 5e92cbf..d190279 100644
<varlistentry><term>-class <replaceable class="parameter">class</replaceable></term>
<listitem><para>
--
2.33.1
2.17.1

@ -1,49 +0,0 @@
From 2b1c730b493d647bbab4854713571458e82a81e7 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 26 May 2020 01:00:37 +0200
Subject: [PATCH 19/65] JSON output clean-up (list/object)
---
src/core/hw.cc | 5 ++---
src/lshw.cc | 1 +
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/core/hw.cc b/src/core/hw.cc
index aca424c..ab345fe 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1400,7 +1400,7 @@ string hwNode::asJSON(unsigned level)
config = getConfigKeys();
resources = getResources("\" value=\"");
- if (level == 0)
+ if (::enabled("output:list") && level == 0)
{
out << "[" << endl;
}
@@ -1665,9 +1665,8 @@ string hwNode::asJSON(unsigned level)
out << "}";
}
- if (level == 0)
+ if (::enabled("output:list") && level == 0)
{
- out.seekp(-2, std::ios_base::end);
out << endl << "]" << endl;
}
diff --git a/src/lshw.cc b/src/lshw.cc
index 219a008..571b1c3 100644
--- a/src/lshw.cc
+++ b/src/lshw.cc
@@ -84,6 +84,7 @@ char **argv)
disable("isapnp");
+ disable("output:list");
disable("output:json");
disable("output:db");
disable("output:xml");
--
2.33.1

@ -1,62 +0,0 @@
From 15565229509455527de9ce7cbb9530e2b31d043b Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Wed, 27 May 2020 01:07:16 +0200
Subject: [PATCH 20/65] clean-up JSON output
---
src/core/hw.cc | 29 +++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)
diff --git a/src/core/hw.cc b/src/core/hw.cc
index ab345fe..6aea7cf 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1650,13 +1650,20 @@ string hwNode::asJSON(unsigned level)
resources.clear();
}
- for (unsigned int i = 0; i < countChildren(); i++)
+ if(!::enabled("output:list") && countChildren()>0)
{
- out << getChild(i)->asJSON(visible(getClassName()) ? level + 2 : 1);
- if (visible(getChild(i)->getClassName()))
+ out << "," << endl;
+ out << spaces(2*level+2);
+ out << "\"children\" : [";
+ for (unsigned int i = 0; i < countChildren(); i++)
{
- out << "," << endl;
+ out << getChild(i)->asJSON(visible(getClassName()) ? level + 2 : 1);
+ if (visible(getChild(i)->getClassName()) && i<countChildren()-1)
+ {
+ out << "," << endl;
+ }
}
+ out << "]";
}
if(visible(getClassName()))
@@ -1665,6 +1672,20 @@ string hwNode::asJSON(unsigned level)
out << "}";
}
+ if(::enabled("output:list") && countChildren()>0)
+ {
+ bool needcomma = visible(getClassName());
+ for (unsigned int i = 0; i < countChildren(); i++)
+ {
+ string json = getChild(i)->asJSON(visible(getClassName()) ? level + 2 : 1);
+
+ if(needcomma && strip(json)!="")
+ out << "," << endl;
+ out << getChild(i)->asJSON(visible(getClassName()) ? level + 2 : 1);
+ needcomma |= strip(json)!="";
+ }
+ }
+
if (::enabled("output:list") && level == 0)
{
out << endl << "]" << endl;
--
2.33.1

@ -1,49 +0,0 @@
From ad4ecfd29c29f6895aaf02092e6574299a2b5aa9 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Fri, 10 Jul 2020 03:12:51 +0200
Subject: [PATCH 23/65] Build against gtk3 instead of gtk2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since gtk2 is on life support, it makes sense to build the gui code with
gtk3 nowadays.
I went for 3.24 because thats the version I have available on my
system, but it is probable that previous versions would also work, I
dont know.
---
lshw.spec.in | 4 ++--
src/gui/gtk-lshw.ui | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lshw.spec.in b/lshw.spec.in
index e837fd4..f6884ab 100644
--- a/lshw.spec.in
+++ b/lshw.spec.in
@@ -31,8 +31,8 @@ http://lshw.ezix.org/
Summary: HardWare LiSter (GUI version)
Group: Applications/System
Requires: %{name} >= %{version}
-Requires: gtk2 >= 2.4
-BuildRequires: gtk2-devel >= 2.4
+Requires: gtk3 >= 3.24
+BuildRequires: gtk3-devel >= 3.24
%description gui
lshw (Hardware Lister) is a small tool to provide detailed informaton on
diff --git a/src/gui/gtk-lshw.ui b/src/gui/gtk-lshw.ui
index 73fc08a..25ab1ad 100644
--- a/src/gui/gtk-lshw.ui
+++ b/src/gui/gtk-lshw.ui
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <requires lib="gtk+" version="2.22"/>
+ <requires lib="gtk+" version="3.24"/>
<object class="GtkDialog" id="aboutlshw">
<property name="can_focus">False</property>
<property name="title" translatable="yes">About</property>
--
2.33.1

@ -1,25 +0,0 @@
From 156a95e949beaaf41650134b34160d7e2bcecae6 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sun, 10 Jan 2021 00:55:16 +0100
Subject: [PATCH 41/65] Add JEDEC manufacturer
cf. Github PR#59
---
src/core/jedec.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/core/jedec.cc b/src/core/jedec.cc
index dc7fe5e..502bd3d 100644
--- a/src/core/jedec.cc
+++ b/src/core/jedec.cc
@@ -17,6 +17,7 @@ static const char * jedec_id[] = {
"0500", "Elpida",
"07", "Hitachi",
"8007", "Hitachi",
+ "081A", "Xi'an UnilC Semiconductors",
"08", "Inmos",
"8008", "Inmos",
"0B", "Intersil",
--
2.33.1

@ -1,27 +0,0 @@
From 2017dad4e66ec7c9e6b25d551c6867107b958ddd Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sun, 10 Jan 2021 00:57:48 +0100
Subject: [PATCH 42/65] Avoid crash on device-tree parsing
cf. Github PR#58
---
src/core/device-tree.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/core/device-tree.cc b/src/core/device-tree.cc
index 027ad16..d3188c6 100644
--- a/src/core/device-tree.cc
+++ b/src/core/device-tree.cc
@@ -1506,7 +1506,8 @@ bool scan_device_tree(hwNode & n)
scan_devtree_cpu_power(*core);
}
else {
- scan_devtree_cpu(*core);
+ if (exists(DEVICETREE "/cpus"))
+ scan_devtree_cpu(*core);
}
scan_devtree_memory(*core);
scan_devtree_memory_ibm(*core);
--
2.33.1

@ -1,26 +0,0 @@
From ff634c9a714fe25d3394c9713929c80888c0c01d Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sun, 10 Jan 2021 01:03:50 +0100
Subject: [PATCH 44/65] fix potential crash
cf. Github PR#47
---
src/core/dmi.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index d33d487..fe6ad39 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -1924,6 +1924,8 @@ static bool scan_dmi_sysfs(hwNode & n)
ifstream ep_stream(SYSFSDMI "/smbios_entry_point",
ifstream::in | ifstream::binary | ifstream::ate);
+ if (!ep_stream)
+ return false;
ifstream::pos_type ep_len = ep_stream.tellg();
vector < u8 > ep_buf(ep_len);
ep_stream.seekg(0, ifstream::beg);
--
2.33.1

@ -1,120 +0,0 @@
From d3c66a6b2a0799d6982f4dc77b291934fcba80c9 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Sun, 10 Jan 2021 01:19:24 +0100
Subject: [PATCH 45/65] improve portability (esp. musl)
cf. Github PR#56
---
src/core/abi.cc | 4 +---
src/core/sysfs.cc | 21 +++++++++++----------
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/src/core/abi.cc b/src/core/abi.cc
index adff7b5..76c664c 100644
--- a/src/core/abi.cc
+++ b/src/core/abi.cc
@@ -20,9 +20,7 @@ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $");
bool scan_abi(hwNode & system)
{
// are we compiled as 32- or 64-bit process ?
- long sc = sysconf(LONG_BIT);
- if(sc==-1) sc = sysconf(_SC_LONG_BIT);
- if(sc!=-1) system.setWidth(sc);
+ system.setWidth(LONG_BIT);
pushd(PROC_SYS);
diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
index 4e2df1c..d7a20c9 100644
--- a/src/core/sysfs.cc
+++ b/src/core/sysfs.cc
@@ -16,6 +16,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/mount.h>
+#include <libgen.h>
__ID("@(#) $Id$");
@@ -103,7 +104,7 @@ static string sysfs_getbustype(const string & path)
{
string devname =
string(fs.path + "/bus/") + string(namelist[i]->d_name) +
- "/devices/" + basename(path.c_str());
+ "/devices/" + basename(const_cast<char*>(path.c_str()));
if (samefile(devname, path))
{
@@ -151,7 +152,7 @@ static string sysfstobusinfo(const string & path)
if (bustype == "usb")
{
- string name = basename(path.c_str());
+ string name = basename(const_cast<char*>(path.c_str()));
if (matches(name, "^[0-9]+-[0-9]+(\\.[0-9]+)*:[0-9]+\\.[0-9]+$"))
{
size_t colon = name.rfind(":");
@@ -162,7 +163,7 @@ static string sysfstobusinfo(const string & path)
if (bustype == "virtio")
{
- string name = basename(path.c_str());
+ string name = basename(const_cast<char*>(path.c_str()));
if (name.compare(0, 6, "virtio") == 0)
return "virtio@" + name.substr(6);
else
@@ -170,10 +171,10 @@ static string sysfstobusinfo(const string & path)
}
if (bustype == "vio")
- return string("vio@") + basename(path.c_str());
+ return string("vio@") + basename(const_cast<char*>(path.c_str()));
if (bustype == "ccw")
- return string("ccw@") + basename(path.c_str());
+ return string("ccw@") + basename(const_cast<char*>(path.c_str()));
if (bustype == "ccwgroup")
{
@@ -251,7 +252,7 @@ string entry::driver() const
string driverlink = This->devpath + "/driver";
if (!exists(driverlink))
return "";
- return basename(readlink(driverlink).c_str());
+ return basename(const_cast<char*>(readlink(driverlink).c_str()));
}
@@ -339,7 +340,7 @@ string entry::name_in_class(const string & classname) const
string entry::name() const
{
- return basename(This->devpath.c_str());
+ return basename(const_cast<char*>(This->devpath.c_str()));
}
@@ -351,17 +352,17 @@ entry entry::parent() const
string entry::classname() const
{
- return basename(dirname(This->devpath).c_str());
+ return basename(const_cast<char*>(dirname(This->devpath).c_str()));
}
string entry::subsystem() const
{
- return basename(realpath(This->devpath+"/subsystem").c_str());
+ return basename(const_cast<char*>(realpath(This->devpath+"/subsystem").c_str()));
}
bool entry::isvirtual() const
{
- return string(basename(dirname(dirname(This->devpath)).c_str())) == "virtual";
+ return string(basename(const_cast<char*>(dirname(dirname(This->devpath)).c_str()))) == "virtual";
}
string entry::string_attr(const string & name, const string & def) const
--
2.33.1

@ -1,178 +0,0 @@
From 0140f7f28a09d33dc46531212d095da5e021b027 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Fri, 15 Jan 2021 00:30:13 +0100
Subject: [PATCH 46/65] code clean-up
get rid of the basename() mess
---
src/core/hw.cc | 2 +-
src/core/osutils.cc | 10 ++++++++++
src/core/osutils.h | 1 +
src/core/pci.cc | 5 ++---
src/core/sysfs.cc | 21 ++++++++++-----------
5 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/src/core/hw.cc b/src/core/hw.cc
index 6aea7cf..1c1dad4 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1083,7 +1083,7 @@ void hwNode::setLogicalName(const string & name)
This->logicalnames.push_back("/dev/" + n);
}
else
- This->logicalnames.push_back((n[0]=='/')?n:basename(n.c_str()));
+ This->logicalnames.push_back((n[0]=='/')?n:shortname(n));
if(This->dev == "")
This->dev = get_devid(n);
diff --git a/src/core/osutils.cc b/src/core/osutils.cc
index a53ed89..8cce54c 100644
--- a/src/core/osutils.cc
+++ b/src/core/osutils.cc
@@ -455,6 +455,16 @@ string dirname(const string & path)
return result;
}
+string shortname(const string & path)
+{
+ size_t len = path.length();
+ char *buffer = new char[len + 1];
+ path.copy(buffer, len);
+ buffer[len] = '\0';
+ string result = basename(buffer);
+ delete[] buffer;
+ return result;
+}
string spaces(unsigned int count, const string & space)
{
diff --git a/src/core/osutils.h b/src/core/osutils.h
index 549258e..75c42e3 100644
--- a/src/core/osutils.h
+++ b/src/core/osutils.h
@@ -15,6 +15,7 @@ bool samefile(const std::string & path1, const std::string & path2);
std::string readlink(const std::string & path);
std::string realpath(const std::string & path);
std::string dirname(const std::string & path);
+std::string shortname(const std::string & path);
bool loadfile(const std::string & file, std::vector < std::string > &lines);
size_t splitlines(const std::string & s,
diff --git a/src/core/pci.cc b/src/core/pci.cc
index 21b9033..a1dd5c7 100644
--- a/src/core/pci.cc
+++ b/src/core/pci.cc
@@ -9,7 +9,6 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <stdint.h>
-#include <libgen.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
@@ -1172,9 +1171,9 @@ bool scan_pci(hwNode & n)
string drivername = readlink(string(devices[i]->d_name)+"/driver");
string modulename = readlink(string(devices[i]->d_name)+"/driver/module");
- device->setConfig("driver", basename(const_cast<char *>(drivername.c_str())));
+ device->setConfig("driver", shortname(drivername));
if(exists(modulename))
- device->setConfig("module", basename(const_cast<char *>(modulename.c_str())));
+ device->setConfig("module", shortname(modulename));
if(exists(string(devices[i]->d_name)+"/rom"))
{
diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
index d7a20c9..fda1e9b 100644
--- a/src/core/sysfs.cc
+++ b/src/core/sysfs.cc
@@ -16,7 +16,6 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/mount.h>
-#include <libgen.h>
__ID("@(#) $Id$");
@@ -104,7 +103,7 @@ static string sysfs_getbustype(const string & path)
{
string devname =
string(fs.path + "/bus/") + string(namelist[i]->d_name) +
- "/devices/" + basename(const_cast<char*>(path.c_str()));
+ "/devices/" + shortname(path);
if (samefile(devname, path))
{
@@ -152,7 +151,7 @@ static string sysfstobusinfo(const string & path)
if (bustype == "usb")
{
- string name = basename(const_cast<char*>(path.c_str()));
+ string name = shortname(path);
if (matches(name, "^[0-9]+-[0-9]+(\\.[0-9]+)*:[0-9]+\\.[0-9]+$"))
{
size_t colon = name.rfind(":");
@@ -163,7 +162,7 @@ static string sysfstobusinfo(const string & path)
if (bustype == "virtio")
{
- string name = basename(const_cast<char*>(path.c_str()));
+ string name = shortname(path);
if (name.compare(0, 6, "virtio") == 0)
return "virtio@" + name.substr(6);
else
@@ -171,10 +170,10 @@ static string sysfstobusinfo(const string & path)
}
if (bustype == "vio")
- return string("vio@") + basename(const_cast<char*>(path.c_str()));
+ return string("vio@") + shortname(path);
if (bustype == "ccw")
- return string("ccw@") + basename(const_cast<char*>(path.c_str()));
+ return string("ccw@") + shortname(path);
if (bustype == "ccwgroup")
{
@@ -252,7 +251,7 @@ string entry::driver() const
string driverlink = This->devpath + "/driver";
if (!exists(driverlink))
return "";
- return basename(const_cast<char*>(readlink(driverlink).c_str()));
+ return shortname(readlink(driverlink));
}
@@ -340,7 +339,7 @@ string entry::name_in_class(const string & classname) const
string entry::name() const
{
- return basename(const_cast<char*>(This->devpath.c_str()));
+ return shortname(This->devpath);
}
@@ -352,17 +351,17 @@ entry entry::parent() const
string entry::classname() const
{
- return basename(const_cast<char*>(dirname(This->devpath).c_str()));
+ return shortname(dirname(This->devpath));
}
string entry::subsystem() const
{
- return basename(const_cast<char*>(realpath(This->devpath+"/subsystem").c_str()));
+ return shortname(realpath(This->devpath+"/subsystem"));
}
bool entry::isvirtual() const
{
- return string(basename(const_cast<char*>(dirname(dirname(This->devpath)).c_str()))) == "virtual";
+ return shortname(dirname(dirname(This->devpath))) == "virtual";
}
string entry::string_attr(const string & name, const string & def) const
--
2.33.1

@ -1,39 +0,0 @@
From 4c91193fb6ba22be13e8d342dcb1db4a7738d38c Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Fri, 18 Jun 2021 00:40:51 -0600
Subject: [PATCH 49/65] Fix typos in translatable messages
---
src/core/dmi.cc | 2 +-
src/lshw.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index 96b6506..df5db6b 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -277,7 +277,7 @@ static const char *dmi_board_type(u8 data)
"",
"",
N_("Server Blade"),
- N_("Connectivitiy Switch"),
+ N_("Connectivity Switch"),
N_("System Management Module"),
N_("Processor Module"),
N_("I/O Module"),
diff --git a/src/lshw.cc b/src/lshw.cc
index 571b1c3..e5d6b4f 100644
--- a/src/lshw.cc
+++ b/src/lshw.cc
@@ -35,7 +35,7 @@ void usage(const char *progname)
fprintf(stderr, _("\t-X use graphical interface\n"));
fprintf(stderr, _("\noptions can be\n"));
#ifdef SQLITE
- fprintf(stderr, _("\t-dump filename displays output and dump collected information into a file (SQLite database)\n"));
+ fprintf(stderr, _("\t-dump filename display output and dump collected information into a file (SQLite database)\n"));
#endif
fprintf(stderr, _("\t-class CLASS only show a certain class of hardware\n"));
fprintf(stderr, _("\t-C CLASS same as '-class CLASS'\n"));
--
2.33.1

@ -1,25 +0,0 @@
From a252ea923c747a548e0012ef41ec588e0179907f Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Tue, 29 Jun 2021 20:34:35 -0600
Subject: [PATCH 50/65] Fix another typo
---
src/core/dmi.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index df5db6b..c356c29 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -462,7 +462,7 @@ u8 cachetype = 0)
switch ((config >> 8) & 3)
{
case 0:
- n.addCapability("write-through", _("Write-trough"));
+ n.addCapability("write-through", _("Write-through"));
break;
case 1:
n.addCapability("write-back", _("Write-back"));
--
2.33.1

@ -1,134 +0,0 @@
From f5ff9f26bff19f8fd487f75410c6f62c8035d33d Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Tue, 29 Jun 2021 20:46:45 -0600
Subject: [PATCH 51/65] Translate all words of a phrase together
The translation of the word "Battery" or "volume" can be in the
beginning, middle, or end of the fully translated phrase, depending on
the language.
---
src/core/dmi.cc | 20 ++++++++--------
src/core/volumes.cc | 58 ++++++++++++++++++++++-----------------------
2 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index df5db6b..b18de1f 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -152,19 +152,19 @@ static const char *dmi_battery_chemistry(u8 code)
{
static const char *chemistry[]=
{
- N_("Other"), /* 0x01 */
- N_("Unknown"),
- N_("Lead Acid"),
- N_("Nickel Cadmium"),
- N_("Nickel Metal Hydride"),
- N_("Lithium Ion"),
- N_("Zinc Air"),
- N_("Lithium Polymer") /* 0x08 */
+ N_("Other Battery"), /* 0x01 */
+ N_("Unknown Battery"),
+ N_("Lead Acid Battery"),
+ N_("Nickel Cadmium Battery"),
+ N_("Nickel Metal Hydride Battery"),
+ N_("Lithium Ion Battery"),
+ N_("Zinc Air Battery"),
+ N_("Lithium Polymer Battery") /* 0x08 */
};
if(code>=0x01 && code<=0x08)
return _(chemistry[code-0x01]);
- return "";
+ return _("Battery");
}
@@ -1735,7 +1735,7 @@ int dmiversionrev)
else
batt.setCapacity(dmi_battery_capacity(data[0x0A] + 256*data[0x0B], data[0x15]));
if(data[0x09]!=0x02 || dm->length<0x1A)
- batt.setDescription(hw::strip(string(dmi_battery_chemistry(data[0x09])) + " Battery"));
+ batt.setDescription(dmi_battery_chemistry(data[0x09]));
node.addChild(batt);
}
diff --git a/src/core/volumes.cc b/src/core/volumes.cc
index 6fce2ee..03b90b0 100644
--- a/src/core/volumes.cc
+++ b/src/core/volumes.cc
@@ -45,34 +45,34 @@ static bool detect_swap(hwNode & n, source & s);
static struct fstypes fs_types[] =
{
- {"blank", "Blank", "", NULL},
- {"fat", "Windows FAT", "", detect_fat},
- {"ntfs", "Windows NTFS", "secure", detect_ntfs},
- {"hpfs", "OS/2 HPFS", "secure", NULL},
- {"ext2", "EXT2/EXT3", "secure", detect_ext2},
- {"reiserfs", "Linux ReiserFS", "secure,journaled", detect_reiserfs},
- {"romfs", "Linux ROMFS", "ro", NULL},
- {"squashfs", "Linux SquashFS", "ro", NULL},
- {"cramfs", "Linux CramFS", "ro", NULL},
- {"minixfs", "MinixFS", "secure", NULL},
- {"sysvfs", "System V FS", "secure", NULL},
- {"jfs", "Linux JFS", "secure,journaled", NULL},
- {"xfs", "Linux XFS", "secure,journaled", NULL},
- {"iso9660", "ISO-9660", "secure,ro", NULL},
- {"xboxdvd", "X-Box DVD", "ro", NULL},
- {"udf", "UDF", "secure,ro", NULL},
- {"ufs", "UFS", "secure", NULL},
- {"hphfs", "HP-UX HFS", "secure", NULL},
- {"vxfs", "VxFS", "secure,journaled", NULL},
- {"ffs", "FFS", "secure", NULL},
- {"befs", "BeOS BFS", "journaled", NULL},
- {"qnxfs", "QNX FS", "", NULL},
- {"mfs", "MacOS MFS", "", NULL},
- {"hfsplus", "MacOS HFS+", "secure,journaled", detect_hfsx},
- {"hfs", "MacOS HFS", "", detect_hfs},
- {"apfs", "MacOS APFS", "", detect_apfs},
- {"luks", "Linux Unified Key Setup", "encrypted", detect_luks},
- {"swap", "Linux swap", "", detect_swap},
+ {"blank", N_("Blank volume"), "", NULL},
+ {"fat", N_("Windows FAT volume"), "", detect_fat},
+ {"ntfs", N_("Windows NTFS volume"), "secure", detect_ntfs},
+ {"hpfs", N_("OS/2 HPFS volume"), "secure", NULL},
+ {"ext2", N_("EXT2/EXT3 volume"), "secure", detect_ext2},
+ {"reiserfs", N_("Linux ReiserFS volume"), "secure,journaled", detect_reiserfs},
+ {"romfs", N_("Linux ROMFS volume"), "ro", NULL},
+ {"squashfs", N_("Linux SquashFS volume"), "ro", NULL},
+ {"cramfs", N_("Linux CramFS volume"), "ro", NULL},
+ {"minixfs", N_("MinixFS volume"), "secure", NULL},
+ {"sysvfs", N_("System V FS volume"), "secure", NULL},
+ {"jfs", N_("Linux JFS volume"), "secure,journaled", NULL},
+ {"xfs", N_("Linux XFS volume"), "secure,journaled", NULL},
+ {"iso9660", N_("ISO-9660 volume"), "secure,ro", NULL},
+ {"xboxdvd", N_("X-Box DVD volume"), "ro", NULL},
+ {"udf", N_("UDF volume"), "secure,ro", NULL},
+ {"ufs", N_("UFS volume"), "secure", NULL},
+ {"hphfs", N_("HP-UX HFS volume"), "secure", NULL},
+ {"vxfs", N_("VxFS volume"), "secure,journaled", NULL},
+ {"ffs", N_("FFS volume"), "secure", NULL},
+ {"befs", N_("BeOS BFS volume"), "journaled", NULL},
+ {"qnxfs", N_("QNX FS volume"), "", NULL},
+ {"mfs", N_("MacOS MFS volume"), "", NULL},
+ {"hfsplus", N_("MacOS HFS+ volume"), "secure,journaled", detect_hfsx},
+ {"hfs", N_("MacOS HFS volume"), "", detect_hfs},
+ {"apfs", N_("MacOS APFS volume"), "", detect_apfs},
+ {"luks", N_("Linux Unified Key Setup volume"), "encrypted", detect_luks},
+ {"swap", N_("Linux swap volume"), "", detect_swap},
{ NULL, NULL, NULL, NULL }
};
@@ -1154,7 +1154,7 @@ bool scan_volume(hwNode & n, source & s)
n.setConfig("filesystem", fs_types[i].id);
n.addCapability("initialized", _("initialized volume"));
if(n.getDescription()=="")
- n.setDescription(string(fs_types[i].description) + " "+string(_("volume")));
+ n.setDescription(_(fs_types[i].description));
return true;
}
i++;
--
2.33.1

@ -1,29 +0,0 @@
From dbe5708e7f3f14f13aee4b498070aab4fac45f6e Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Tue, 29 Jun 2021 20:47:37 -0600
Subject: [PATCH 52/65] Remove unnecessary space before closing parenthesis
Some messages had this space and others did not.
---
src/lshw.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lshw.cc b/src/lshw.cc
index e5d6b4f..5a2d594 100644
--- a/src/lshw.cc
+++ b/src/lshw.cc
@@ -41,9 +41,9 @@ void usage(const char *progname)
fprintf(stderr, _("\t-C CLASS same as '-class CLASS'\n"));
fprintf(stderr, _("\t-c CLASS same as '-class CLASS'\n"));
fprintf(stderr,
- _("\t-disable TEST disable a test (like pci, isapnp, cpuid, etc. )\n"));
+ _("\t-disable TEST disable a test (like pci, isapnp, cpuid, etc.)\n"));
fprintf(stderr,
- _("\t-enable TEST enable a test (like pci, isapnp, cpuid, etc. )\n"));
+ _("\t-enable TEST enable a test (like pci, isapnp, cpuid, etc.)\n"));
fprintf(stderr, _("\t-quiet don't display status\n"));
fprintf(stderr, _("\t-sanitize sanitize output (remove sensitive information like serial numbers, etc.)\n"));
fprintf(stderr, _("\t-numeric output numeric IDs (for PCI, USB, etc.)\n"));
--
2.33.1

@ -1,49 +0,0 @@
From 353866cf8f9d2fff89d226598c97dfd33229fe35 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 12 Oct 2021 16:28:35 +0200
Subject: [PATCH 55/65] code clean-up
be more prudent before freeing memory
---
src/core/usb.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/core/usb.cc b/src/core/usb.cc
index da65e10..7074d87 100644
--- a/src/core/usb.cc
+++ b/src/core/usb.cc
@@ -311,6 +311,7 @@ static bool load_usbids(const string & name)
buffer[linelen-1] = '\0'; // chop \n
string line = string(buffer);
free(buffer);
+ buffer = NULL;
description = NULL;
t = 0;
@@ -338,6 +339,7 @@ static bool load_usbids(const string & name)
}
}
}
+ if(buffer != NULL) free(buffer);
}
fclose(usbids);
@@ -393,6 +395,7 @@ bool scan_usb(hwNode & n)
{
string line = hw::strip(string(buffer));
free(buffer);
+ buffer = NULL;
if(line.length()<=0)
{
@@ -497,6 +500,7 @@ bool scan_usb(hwNode & n)
}
}
}
+ if(buffer != NULL) free(buffer);
}
if(defined)
addUSBChild(n, device, bus, lev, prnt);
--
2.33.1

@ -1,34 +0,0 @@
From 9555d6cfc33a58a7cf91d137f7209ccf1bee86a8 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 12 Oct 2021 22:02:22 +0200
Subject: [PATCH 56/65] code clean-up
get rid of warning complaining about `register` storage of CRC
---
src/core/partitions.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/core/partitions.cc b/src/core/partitions.cc
index 4268903..7b9fd4f 100644
--- a/src/core/partitions.cc
+++ b/src/core/partitions.cc
@@ -520,7 +520,6 @@ hwNode & partition)
* - Now pass seed as an arg
* - changed unsigned long to uint32_t, added #include<stdint.h>
* - changed len to be an unsigned long
- * - changed crc32val to be a register
* - License remains unchanged! It's still GPL-compatable!
*/
@@ -626,7 +625,7 @@ uint32_t
__efi_crc32(const void *buf, unsigned long len, uint32_t seed)
{
unsigned long i;
- register uint32_t crc32val;
+ uint32_t crc32val;
const unsigned char *s = (const unsigned char *)buf;
crc32val = seed;
--
2.33.1

@ -1,368 +0,0 @@
From 1a39de2d0af780c06b55f5a96d5f696da1a6fda3 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 12 Oct 2021 23:33:08 +0200
Subject: [PATCH 57/65] support for new ethtool capabilities
merge Github PR#73
---
src/core/network.cc | 299 +++++++++++++++++++++++++++++---------------
1 file changed, 195 insertions(+), 104 deletions(-)
diff --git a/src/core/network.cc b/src/core/network.cc
index 5aab06d..613c1af 100644
--- a/src/core/network.cc
+++ b/src/core/network.cc
@@ -53,6 +53,7 @@ typedef unsigned long long u64;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
+typedef int8_t s8;
struct ethtool_cmd
{
@@ -70,6 +71,28 @@ struct ethtool_cmd
u32 reserved[4];
};
+#define MAX_LINK_MODE_MASK_SIZE 64
+struct ethtool_link_settings
+{
+ u32 cmd;
+ u32 speed; /* The forced speed, 10Mb, 100Mb, gigabit */
+ u8 duplex; /* Duplex, half or full */
+ u8 port; /* Which connector port */
+ u8 phy_address;
+ u8 autoneg; /* Enable or disable autonegotiation */
+ u8 mdio_support;
+ u8 eth_tp_mdix;
+ u8 eth_tp_mdix_ctrl;
+ s8 link_mode_masks_nwords;
+ u8 transceiver; /* Which tranceiver to use */
+ u8 master_slave_cfg;
+ u8 master_slave_state;
+ u8 reserved1[1];
+ u32 reserved[7];
+ u32 link_mode_masks[3 * MAX_LINK_MODE_MASK_SIZE]; /* Link mode mask fields for modes:
+ supported, advertised, peer advertised. */
+};
+
#ifndef IFNAMSIZ
#define IFNAMSIZ 32
#endif
@@ -108,6 +131,7 @@ struct ethtool_value
#define ETHTOOL_GSET 0x00000001 /* Get settings. */
#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */
#define ETHTOOL_GLINK 0x0000000a /* Get link status (ethtool_value) */
+#define ETHTOOL_GLINKSETTINGS 0x0000004c /* Get link mode settings. */
/* Indicates what features are supported by the interface. */
#define SUPPORTED_10baseT_Half (1 << 0)
@@ -124,10 +148,17 @@ struct ethtool_value
#define SUPPORTED_BNC (1 << 11)
#define SUPPORTED_10000baseT_Full (1 << 12)
-/* The forced speed, 10Mb, 100Mb, gigabit, 10GbE. */
+/* Indicates what features are supported by the interface,
+ * in the second word of the extended bitmap. */
+#define SUPPORTED2_2500baseT_Full (1 << 15)
+#define SUPPORTED2_5000baseT_Full (1 << 16)
+
+/* The forced speed, 10Mb, 100Mb, gigabit, 2.5GbE, 5GbE, 10GbE. */
#define SPEED_10 10
#define SPEED_100 100
#define SPEED_1000 1000
+#define SPEED_2500 2500
+#define SPEED_5000 5000
#define SPEED_10000 10000
/* Duplex, half or full. */
@@ -308,6 +339,168 @@ static bool isVirtual(const string & MAC)
}
+static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2, u32 speed, u8 duplex, u8 port, u8 autoneg)
+{
+ if(supported & SUPPORTED_TP)
+ interface.addCapability("tp", _("twisted pair"));
+ if(supported & SUPPORTED_AUI)
+ interface.addCapability("aui", _("AUI"));
+ if(supported & SUPPORTED_BNC)
+ interface.addCapability("bnc", _("BNC"));
+ if(supported & SUPPORTED_MII)
+ interface.addCapability("mii", _("Media Independant Interface"));
+ if(supported & SUPPORTED_FIBRE)
+ interface.addCapability("fibre",_( "optical fibre"));
+ if(supported & SUPPORTED_10baseT_Half)
+ {
+ interface.addCapability("10bt", _("10Mbit/s"));
+ interface.setCapacity(10000000ULL);
+ }
+ if(supported & SUPPORTED_10baseT_Full)
+ {
+ interface.addCapability("10bt-fd", _("10Mbit/s (full duplex)"));
+ interface.setCapacity(10000000ULL);
+ }
+ if(supported & SUPPORTED_100baseT_Half)
+ {
+ interface.addCapability("100bt", _("100Mbit/s"));
+ interface.setCapacity(100000000ULL);
+ }
+ if(supported & SUPPORTED_100baseT_Full)
+ {
+ interface.addCapability("100bt-fd", _("100Mbit/s (full duplex)"));
+ interface.setCapacity(100000000ULL);
+ }
+ if(supported & SUPPORTED_1000baseT_Half)
+ {
+ interface.addCapability("1000bt", "1Gbit/s");
+ interface.setCapacity(1000000000ULL);
+ }
+ if(supported & SUPPORTED_1000baseT_Full)
+ {
+ interface.addCapability("1000bt-fd", _("1Gbit/s (full duplex)"));
+ interface.setCapacity(1000000000ULL);
+ }
+ if(supported2 & SUPPORTED2_2500baseT_Full)
+ {
+ interface.addCapability("2500bt-fd", _("2.5Gbit/s (full duplex)"));
+ interface.setCapacity(2500000000ULL);
+ }
+ if(supported2 & SUPPORTED2_5000baseT_Full)
+ {
+ interface.addCapability("5000bt-fd", _("5Gbit/s (full duplex)"));
+ interface.setCapacity(5000000000ULL);
+ }
+ if(supported & SUPPORTED_10000baseT_Full)
+ {
+ interface.addCapability("10000bt-fd", _("10Gbit/s (full duplex)"));
+ interface.setCapacity(10000000000ULL);
+ }
+ if(supported & SUPPORTED_Autoneg)
+ interface.addCapability("autonegotiation", _("Auto-negotiation"));
+
+ switch(speed)
+ {
+ case SPEED_10:
+ interface.setConfig("speed", "10Mbit/s");
+ interface.setSize(10000000ULL);
+ break;
+ case SPEED_100:
+ interface.setConfig("speed", "100Mbit/s");
+ interface.setSize(100000000ULL);
+ break;
+ case SPEED_1000:
+ interface.setConfig("speed", "1Gbit/s");
+ interface.setSize(1000000000ULL);
+ break;
+ case SPEED_2500:
+ interface.setConfig("speed", "2.5Gbit/s");
+ interface.setSize(2500000000ULL);
+ break;
+ case SPEED_5000:
+ interface.setConfig("speed", "5Gbit/s");
+ interface.setSize(5000000000ULL);
+ break;
+ case SPEED_10000:
+ interface.setConfig("speed", "10Gbit/s");
+ interface.setSize(10000000000ULL);
+ break;
+ }
+ switch(duplex)
+ {
+ case DUPLEX_HALF:
+ interface.setConfig("duplex", "half");
+ break;
+ case DUPLEX_FULL:
+ interface.setConfig("duplex", "full");
+ break;
+ }
+ switch(port)
+ {
+ case PORT_TP:
+ interface.setConfig("port", "twisted pair");
+ break;
+ case PORT_AUI:
+ interface.setConfig("port", "AUI");
+ break;
+ case PORT_BNC:
+ interface.setConfig("port", "BNC");
+ break;
+ case PORT_MII:
+ interface.setConfig("port", "MII");
+ break;
+ case PORT_FIBRE:
+ interface.setConfig("port", "fibre");
+ break;
+ }
+ interface.setConfig("autonegotiation", (autoneg == AUTONEG_DISABLE) ? "off" : "on");
+}
+
+
+static void scan_modes(hwNode & interface, int fd)
+{
+ struct ifreq ifr;
+ struct ethtool_cmd ecmd;
+ struct ethtool_link_settings elink;
+ s8 mask_size;
+
+ elink.cmd = ETHTOOL_GLINKSETTINGS;
+ elink.link_mode_masks_nwords = 0;
+ memset(&ifr, 0, sizeof(ifr));
+ strcpy(ifr.ifr_name, interface.getLogicalName().c_str());
+ ifr.ifr_data = (caddr_t) &elink;
+ // Probe link mode mask count.
+ if (ioctl(fd, SIOCETHTOOL, &ifr) == 0)
+ {
+ mask_size = -elink.link_mode_masks_nwords;
+ if (mask_size > 1 && mask_size <= MAX_LINK_MODE_MASK_SIZE)
+ {
+ elink.cmd = ETHTOOL_GLINKSETTINGS;
+ elink.link_mode_masks_nwords = mask_size;
+ memset(&ifr, 0, sizeof(ifr));
+ strcpy(ifr.ifr_name, interface.getLogicalName().c_str());
+ ifr.ifr_data = (caddr_t) &elink;
+ // Read link mode settings.
+ if (ioctl(fd, SIOCETHTOOL, &ifr) == 0)
+ {
+ updateCapabilities(interface, elink.link_mode_masks[0], elink.link_mode_masks[1],
+ elink.speed, elink.duplex, elink.port, elink.autoneg);
+ return;
+ }
+ }
+ }
+
+ ecmd.cmd = ETHTOOL_GSET;
+ memset(&ifr, 0, sizeof(ifr));
+ strcpy(ifr.ifr_name, interface.getLogicalName().c_str());
+ ifr.ifr_data = (caddr_t) &ecmd;
+ if (ioctl(fd, SIOCETHTOOL, &ifr) == 0)
+ {
+ updateCapabilities(interface, ecmd.supported, 0, ecmd.speed, ecmd.duplex, ecmd.port, ecmd.autoneg);
+ }
+}
+
+
bool scan_network(hwNode & n)
{
vector < string > interfaces;
@@ -322,7 +515,6 @@ bool scan_network(hwNode & n)
{
struct ifreq ifr;
struct ethtool_drvinfo drvinfo;
- struct ethtool_cmd ecmd;
struct ethtool_value edata;
for (unsigned int i = 0; i < interfaces.size(); i++)
@@ -417,108 +609,7 @@ bool scan_network(hwNode & n)
interface.setConfig("link", edata.data ? "yes":"no");
}
- ecmd.cmd = ETHTOOL_GSET;
- memset(&ifr, 0, sizeof(ifr));
- strcpy(ifr.ifr_name, interfaces[i].c_str());
- ifr.ifr_data = (caddr_t) &ecmd;
- if (ioctl(fd, SIOCETHTOOL, &ifr) == 0)
- {
- if(ecmd.supported & SUPPORTED_TP)
- interface.addCapability("tp", _("twisted pair"));
- if(ecmd.supported & SUPPORTED_AUI)
- interface.addCapability("aui", _("AUI"));
- if(ecmd.supported & SUPPORTED_BNC)
- interface.addCapability("bnc", _("BNC"));
- if(ecmd.supported & SUPPORTED_MII)
- interface.addCapability("mii", _("Media Independant Interface"));
- if(ecmd.supported & SUPPORTED_FIBRE)
- interface.addCapability("fibre",_( "optical fibre"));
- if(ecmd.supported & SUPPORTED_10baseT_Half)
- {
- interface.addCapability("10bt", _("10Mbit/s"));
- interface.setCapacity(10000000ULL);
- }
- if(ecmd.supported & SUPPORTED_10baseT_Full)
- {
- interface.addCapability("10bt-fd", _("10Mbit/s (full duplex)"));
- interface.setCapacity(10000000ULL);
- }
- if(ecmd.supported & SUPPORTED_100baseT_Half)
- {
- interface.addCapability("100bt", _("100Mbit/s"));
- interface.setCapacity(100000000ULL);
- }
- if(ecmd.supported & SUPPORTED_100baseT_Full)
- {
- interface.addCapability("100bt-fd", _("100Mbit/s (full duplex)"));
- interface.setCapacity(100000000ULL);
- }
- if(ecmd.supported & SUPPORTED_1000baseT_Half)
- {
- interface.addCapability("1000bt", "1Gbit/s");
- interface.setCapacity(1000000000ULL);
- }
- if(ecmd.supported & SUPPORTED_1000baseT_Full)
- {
- interface.addCapability("1000bt-fd", _("1Gbit/s (full duplex)"));
- interface.setCapacity(1000000000ULL);
- }
- if(ecmd.supported & SUPPORTED_10000baseT_Full)
- {
- interface.addCapability("10000bt-fd", _("10Gbit/s (full duplex)"));
- interface.setCapacity(10000000000ULL);
- }
- if(ecmd.supported & SUPPORTED_Autoneg)
- interface.addCapability("autonegotiation", _("Auto-negotiation"));
-
- switch(ecmd.speed)
- {
- case SPEED_10:
- interface.setConfig("speed", "10Mbit/s");
- interface.setSize(10000000ULL);
- break;
- case SPEED_100:
- interface.setConfig("speed", "100Mbit/s");
- interface.setSize(100000000ULL);
- break;
- case SPEED_1000:
- interface.setConfig("speed", "1Gbit/s");
- interface.setSize(1000000000ULL);
- break;
- case SPEED_10000:
- interface.setConfig("speed", "10Gbit/s");
- interface.setSize(10000000000ULL);
- break;
- }
- switch(ecmd.duplex)
- {
- case DUPLEX_HALF:
- interface.setConfig("duplex", "half");
- break;
- case DUPLEX_FULL:
- interface.setConfig("duplex", "full");
- break;
- }
- switch(ecmd.port)
- {
- case PORT_TP:
- interface.setConfig("port", "twisted pair");
- break;
- case PORT_AUI:
- interface.setConfig("port", "AUI");
- break;
- case PORT_BNC:
- interface.setConfig("port", "BNC");
- break;
- case PORT_MII:
- interface.setConfig("port", "MII");
- break;
- case PORT_FIBRE:
- interface.setConfig("port", "fibre");
- break;
- }
- interface.setConfig("autonegotiation", (ecmd.autoneg == AUTONEG_DISABLE) ? "off" : "on");
- }
+ scan_modes(interface, fd);
drvinfo.cmd = ETHTOOL_GDRVINFO;
memset(&ifr, 0, sizeof(ifr));
--
2.33.1

@ -1,135 +0,0 @@
From 62d96b016b04219e76e2de2f5dd585c7bbdae9c1 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 12 Oct 2021 23:35:54 +0200
Subject: [PATCH 58/65] cosmetic fixes
Github PR#71
---
README.md | 4 ++--
docs/Changelog | 12 ++++++------
docs/TODO | 2 +-
lshw.spec.in | 2 +-
src/Makefile | 2 +-
src/core/Makefile | 2 +-
src/core/dmi.cc | 6 +++---
src/gui/Makefile | 2 +-
src/po/Makefile | 2 +-
9 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index 6659f9c..0c610f5 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ Getting help
1. the lshw home page is http://lshw.ezix.org/
2. bug reports and feature requests: http://ezix.org/project/newticket?component=lshw
-
+
Please make sure you include enough information in your bug report: XML output from lshw is preferred over text or HTML, indicate the affected version of lshw, your platform (i386, x86-64, PA-RISC, PowerPC, etc.) and your distribution.
NOTE TO DISTRIBUTIONS
diff --git a/docs/Changelog b/docs/Changelog
index 6ea288c..0f648f5 100644
--- a/docs/Changelog
+++ b/docs/Changelog
@@ -3,17 +3,17 @@
detection of SD/MMC and SDIO devices
bug fixes
code cleanup
- updated data files
+ updated data files
* lshw B.02.18
migrated to git
bug fixes
code cleanup
- updated data files
+ updated data files
* lshw B.02.17
bug fixes
code cleanup
improved support for FAT-formatted disks
- updated data files
+ updated data files
* lshw B.02.16
bug fixes
code cleanup
@@ -27,7 +27,7 @@
updated data files
* lshw B.02.14
bug fixes
- support for EXT4 partitions
+ support for EXT4 partitions
* lshw B.02.13
fix bug #402: properly detect 64 bit systems (even when compiled for i386)
fix bug #401: SMP-related crash on IA-64
@@ -70,7 +70,7 @@
* lshw B.02.09
minor bugfixes (#26, #27)
added support for PCI domains (#28)
- use of /sys (sysfs) when possible for PCI devices
+ use of /sys (sysfs) when possible for PCI devices
* B.02.08.01
bugfix release for non-x86 platforms (#24)
* B.02.08
@@ -99,7 +99,7 @@
the GUI now uses a GtkTextView instead of a GtkLabel
SVG icons are now displayed for USB, Firewire, SCSI, etc.
added support for reporting VMX (Vanderpool) capabilities (untested)
- fixed a compilation problem with GCC 4
+ fixed a compilation problem with GCC 4
* B.02.03
added support for PA-RISC devices (IODC-controlled) on 2.6 kernels
the GUI can now be launched by invoking lshw with the '-X' option
diff --git a/docs/TODO b/docs/TODO
index 0b33782..2d4d3af 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -9,4 +9,4 @@
* use MPTABLE for reporting of CPUs
report SSD/rotational devices: /sys/block/DEV/queue/rotational
-better handle containers
\ No newline at end of file
+better handle containers
diff --git a/lshw.spec.in b/lshw.spec.in
index f6884ab..b3b636f 100644
--- a/lshw.spec.in
+++ b/lshw.spec.in
@@ -35,7 +35,7 @@ Requires: gtk3 >= 3.24
BuildRequires: gtk3-devel >= 3.24
%description gui
-lshw (Hardware Lister) is a small tool to provide detailed informaton on
+lshw (Hardware Lister) is a small tool to provide detailed information on
the hardware configuration of the machine. It can report exact memory
configuration, firmware version, mainboard configuration, CPU version
and speed, cache configuration, bus speed, etc. on DMI-capable x86s
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
index df5db6b..6d76c53 100644
--- a/src/core/dmi.cc
+++ b/src/core/dmi.cc
@@ -1648,9 +1648,9 @@ int dmiversionrev)
uint64_t(data[0x1C]) << 40 | uint64_t(data[0x1B]) << 32 |
uint64_t(data[0x1A]) << 24 | uint64_t(data[0x19]) << 16 |
uint64_t(data[0x18]) << 8 | uint64_t(data[0x17]);
- if (end - start < 512) // memory range is smaller thant 512KB
+ if (end - start < 512) // memory range is smaller than 512KB
{
-// consider that values were expressed in megagytes
+// consider that values were expressed in megabytes
start *= 1024;
end *= 1024;
}
@@ -1688,7 +1688,7 @@ int dmiversionrev)
uint64_t(data[0x18]) << 8 | uint64_t(data[0x17]);
if (end - start < 512) // memory range is smaller than 512KB
{
-// consider that values were expressed in megagytes
+// consider that values were expressed in megabytes
start *= 1024;
end *= 1024;
}
--
2.33.1

@ -1,25 +0,0 @@
From 5a0bad9020f731cf5b5a0744a9323f97b3a1efe9 Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 12 Oct 2021 23:37:40 +0200
Subject: [PATCH 59/65] fix typo
---
src/core/network.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/network.cc b/src/core/network.cc
index 613c1af..d66c978 100644
--- a/src/core/network.cc
+++ b/src/core/network.cc
@@ -348,7 +348,7 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
if(supported & SUPPORTED_BNC)
interface.addCapability("bnc", _("BNC"));
if(supported & SUPPORTED_MII)
- interface.addCapability("mii", _("Media Independant Interface"));
+ interface.addCapability("mii", _("Media Independent Interface"));
if(supported & SUPPORTED_FIBRE)
interface.addCapability("fibre",_( "optical fibre"));
if(supported & SUPPORTED_10baseT_Half)
--
2.33.1

@ -1,232 +0,0 @@
From 9d9b7103257abc6fe26b383253e1f15f726f31cd Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 12 Oct 2021 23:42:02 +0200
Subject: [PATCH 60/65] add some includes
maybe needed for newer GCCs
---
src/core/cdrom.cc | 1 +
src/core/cpuid.cc | 1 +
src/core/fb.cc | 1 +
src/core/ideraid.cc | 1 +
src/core/mounts.cc | 2 +-
src/core/osutils.cc | 1 +
src/core/partitions.cc | 2 ++
src/core/pci.cc | 1 +
src/core/pcmcia-legacy.cc | 1 +
src/core/pcmcia.cc | 2 ++
src/core/smp.cc | 1 +
src/core/spd.cc | 1 +
src/core/usb.cc | 2 ++
src/core/volumes.cc | 1 +
src/gui/engine.cc | 2 ++
src/gui/print-gui.cc | 1 +
16 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/src/core/cdrom.cc b/src/core/cdrom.cc
index 11b9a84..58fa7b0 100644
--- a/src/core/cdrom.cc
+++ b/src/core/cdrom.cc
@@ -25,6 +25,7 @@
#include <unistd.h>
#include <limits.h>
#include <linux/cdrom.h>
+#include <climits>
__ID("@(#) $Id$");
diff --git a/src/core/cpuid.cc b/src/core/cpuid.cc
index c40dc98..3cb60ac 100644
--- a/src/core/cpuid.cc
+++ b/src/core/cpuid.cc
@@ -7,6 +7,7 @@
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/time.h>
+#include <cstring>
__ID("@(#) $Id$");
diff --git a/src/core/fb.cc b/src/core/fb.cc
index 5456204..d198982 100644
--- a/src/core/fb.cc
+++ b/src/core/fb.cc
@@ -14,6 +14,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <cstring>
__ID("@(#) $Id$");
diff --git a/src/core/ideraid.cc b/src/core/ideraid.cc
index 5cff28f..5e84ab0 100644
--- a/src/core/ideraid.cc
+++ b/src/core/ideraid.cc
@@ -20,6 +20,7 @@
#include <string.h>
#include <dirent.h>
#include <ctype.h>
+#include <cstring>
#include <vector>
#include <linux/hdreg.h>
#include <regex.h>
diff --git a/src/core/mounts.cc b/src/core/mounts.cc
index 495a3c2..79b682e 100644
--- a/src/core/mounts.cc
+++ b/src/core/mounts.cc
@@ -14,7 +14,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-
+#include <cstdlib>
__ID("@(#) $Id$");
diff --git a/src/core/osutils.cc b/src/core/osutils.cc
index 8cce54c..cfa09ca 100644
--- a/src/core/osutils.cc
+++ b/src/core/osutils.cc
@@ -3,6 +3,7 @@
#include <sstream>
#include <iomanip>
#include <stack>
+#include <cstring>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
diff --git a/src/core/partitions.cc b/src/core/partitions.cc
index 7b9fd4f..69fdc2c 100644
--- a/src/core/partitions.cc
+++ b/src/core/partitions.cc
@@ -21,6 +21,8 @@
#include "volumes.h"
#include "osutils.h"
#include <stdio.h>
+#include <stdlib.h>
+#include <cstring>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/src/core/pci.cc b/src/core/pci.cc
index a1dd5c7..5040d75 100644
--- a/src/core/pci.cc
+++ b/src/core/pci.cc
@@ -14,6 +14,7 @@
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
+#include <cstring>
__ID("@(#) $Id$");
diff --git a/src/core/pcmcia-legacy.cc b/src/core/pcmcia-legacy.cc
index bf68911..8983ccb 100644
--- a/src/core/pcmcia-legacy.cc
+++ b/src/core/pcmcia-legacy.cc
@@ -9,6 +9,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <cstring>
__ID("@(#) $Id$");
diff --git a/src/core/pcmcia.cc b/src/core/pcmcia.cc
index 1db47b2..4d93947 100644
--- a/src/core/pcmcia.cc
+++ b/src/core/pcmcia.cc
@@ -6,6 +6,8 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
+#include <cstdlib>
+#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/core/smp.cc b/src/core/smp.cc
index 9bd3631..df1c88b 100644
--- a/src/core/smp.cc
+++ b/src/core/smp.cc
@@ -11,6 +11,7 @@
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
+#include <cstring>
#include "osutils.h"
diff --git a/src/core/spd.cc b/src/core/spd.cc
index a304d06..babdf1b 100644
--- a/src/core/spd.cc
+++ b/src/core/spd.cc
@@ -9,6 +9,7 @@
#include <string>
#include <dirent.h>
#include <stdio.h>
+#include <cstring>
__ID("@(#) $Id$");
diff --git a/src/core/usb.cc b/src/core/usb.cc
index da65e10..353036d 100644
--- a/src/core/usb.cc
+++ b/src/core/usb.cc
@@ -14,6 +14,7 @@
#include "heuristics.h"
#include "options.h"
#include <stdio.h>
+#include <stdlib.h>
#include <map>
#include <sys/types.h>
#include <sys/stat.h>
@@ -24,6 +25,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
+#include <cstring>
#define PROCBUSUSBDEVICES "/proc/bus/usb/devices"
#define SYSKERNELDEBUGUSBDEVICES "/sys/kernel/debug/usb/devices"
diff --git a/src/core/volumes.cc b/src/core/volumes.cc
index 6fce2ee..53096ba 100644
--- a/src/core/volumes.cc
+++ b/src/core/volumes.cc
@@ -22,6 +22,7 @@
#include <unistd.h>
#include <stdint.h>
#include <time.h>
+#include <cstring>
__ID("@(#) $Id$");
diff --git a/src/gui/engine.cc b/src/gui/engine.cc
index 2962ec8..ea442cc 100644
--- a/src/gui/engine.cc
+++ b/src/gui/engine.cc
@@ -6,6 +6,8 @@
#include "osutils.h"
#include "options.h"
+#include <cstring>
+#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sys/utsname.h>
diff --git a/src/gui/print-gui.cc b/src/gui/print-gui.cc
index 4138424..916f25d 100644
--- a/src/gui/print-gui.cc
+++ b/src/gui/print-gui.cc
@@ -10,6 +10,7 @@
#include "version.h"
#include "osutils.h"
#include "stock.h"
+#include <cstring>
#include <sstream>
#include <iomanip>
#include <unistd.h>
--
2.33.1

@ -1,115 +0,0 @@
From 663869cc6276811fec884dd76394c7d8656d326a Mon Sep 17 00:00:00 2001
From: Lyonel Vincent <lyonel@ezix.org>
Date: Tue, 19 Oct 2021 01:09:20 +0200
Subject: [PATCH 61/65] Add more network speeds
cf. Github PR#75
---
src/core/network.cc | 58 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 57 insertions(+), 1 deletion(-)
diff --git a/src/core/network.cc b/src/core/network.cc
index d66c978..01a1f51 100644
--- a/src/core/network.cc
+++ b/src/core/network.cc
@@ -147,19 +147,38 @@ struct ethtool_value
#define SUPPORTED_FIBRE (1 << 10)
#define SUPPORTED_BNC (1 << 11)
#define SUPPORTED_10000baseT_Full (1 << 12)
+#define SUPPORTED_2500baseX_Full (1 << 15)
+#define SUPPORTED_1000baseKX_Full (1 << 17)
+#define SUPPORTED_10000baseKX4_Full (1 << 18)
+#define SUPPORTED_10000baseKR_Full (1 << 19)
+#define SUPPORTED_40000baseKR4_Full (1 << 23)
+#define SUPPORTED_40000baseCR4_Full (1 << 24)
+#define SUPPORTED_40000baseSR4_Full (1 << 25)
+#define SUPPORTED_40000baseLR4_Full (1 << 26)
+#define SUPPORTED_25000baseCR_Full (1 << 31)
/* Indicates what features are supported by the interface,
* in the second word of the extended bitmap. */
+#define SUPPORTED2_25000baseKR_Full (1 << 0)
+#define SUPPORTED2_25000baseSR_Full (1 << 1)
+#define SUPPORTED2_1000baseX_Full (1 << 9)
+#define SUPPORTED2_10000baseCR_Full (1 << 10)
+#define SUPPORTED2_10000baseSR_Full (1 << 11)
+#define SUPPORTED2_10000baseLR_Full (1 << 12)
+#define SUPPORTED2_10000baseLRM_Full (1 << 13)
+#define SUPPORTED2_10000baseER_Full (1 << 14)
#define SUPPORTED2_2500baseT_Full (1 << 15)
#define SUPPORTED2_5000baseT_Full (1 << 16)
-/* The forced speed, 10Mb, 100Mb, gigabit, 2.5GbE, 5GbE, 10GbE. */
+/* The forced speed, 10Mb, 100Mb, gigabit, 2.5GbE, 5GbE, 10GbE and up. */
#define SPEED_10 10
#define SPEED_100 100
#define SPEED_1000 1000
#define SPEED_2500 2500
#define SPEED_5000 5000
#define SPEED_10000 10000
+#define SPEED_25000 25000
+#define SPEED_40000 40000
/* Duplex, half or full. */
#define DUPLEX_HALF 0x00
@@ -381,6 +400,16 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
interface.addCapability("1000bt-fd", _("1Gbit/s (full duplex)"));
interface.setCapacity(1000000000ULL);
}
+ if((supported & SUPPORTED_1000baseKX_Full) || (supported2 & SUPPORTED2_1000baseX_Full))
+ {
+ interface.addCapability("1000bx-fd", _("1Gbit/s (full duplex)"));
+ interface.setCapacity(1000000000ULL);
+ }
+ if(supported & SUPPORTED_2500baseX_Full)
+ {
+ interface.addCapability("2500bx-fd", _("2.5Gbit/s (full duplex)"));
+ interface.setCapacity(2500000000ULL);
+ }
if(supported2 & SUPPORTED2_2500baseT_Full)
{
interface.addCapability("2500bt-fd", _("2.5Gbit/s (full duplex)"));
@@ -396,6 +425,25 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
interface.addCapability("10000bt-fd", _("10Gbit/s (full duplex)"));
interface.setCapacity(10000000000ULL);
}
+ if((supported & (SUPPORTED_10000baseKX4_Full | SUPPORTED_10000baseKR_Full)) ||
+ (supported2 & (SUPPORTED2_10000baseCR_Full | SUPPORTED2_10000baseSR_Full | SUPPORTED2_10000baseLR_Full |
+ SUPPORTED2_10000baseLRM_Full | SUPPORTED2_10000baseER_Full)))
+ {
+ interface.addCapability("10000bx-fd", _("10Gbit/s (full duplex)"));
+ interface.setCapacity(10000000000ULL);
+ }
+ if((supported & SUPPORTED_25000baseCR_Full) ||
+ (supported2 & (SUPPORTED2_25000baseKR_Full | SUPPORTED2_25000baseSR_Full)))
+ {
+ interface.addCapability("25000bx-fd", _("25Gbit/s (full duplex)"));
+ interface.setCapacity(25000000000ULL);
+ }
+ if(supported & (SUPPORTED_40000baseKR4_Full | SUPPORTED_40000baseCR4_Full |
+ SUPPORTED_40000baseSR4_Full | SUPPORTED_40000baseLR4_Full))
+ {
+ interface.addCapability("40000bx-fd", _("40Gbit/s (full duplex)"));
+ interface.setCapacity(40000000000ULL);
+ }
if(supported & SUPPORTED_Autoneg)
interface.addCapability("autonegotiation", _("Auto-negotiation"));
@@ -425,6 +473,14 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
interface.setConfig("speed", "10Gbit/s");
interface.setSize(10000000000ULL);
break;
+ case SPEED_25000:
+ interface.setConfig("speed", "25Gbit/s");
+ interface.setSize(25000000000ULL);
+ break;
+ case SPEED_40000:
+ interface.setConfig("speed", "40Gbit/s");
+ interface.setSize(40000000000ULL);
+ break;
}
switch(duplex)
{
--
2.33.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,172 +0,0 @@
From 9a7ded387a87accd6437b3e36748d4451e8135f4 Mon Sep 17 00:00:00 2001
From: Erik Ekman <erik@kryo.se>
Date: Tue, 2 Nov 2021 14:56:25 +0100
Subject: [PATCH 65/65] merge Github PR#77
---
src/core/network.cc | 128 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
diff --git a/src/core/network.cc b/src/core/network.cc
index 01a1f51..746ac1b 100644
--- a/src/core/network.cc
+++ b/src/core/network.cc
@@ -93,6 +93,41 @@ struct ethtool_link_settings
supported, advertised, peer advertised. */
};
+/* Recognized module eeprom standards. */
+#define ETH_MODULE_SFF_8079 0x1
+#define ETH_MODULE_SFF_8472 0x2
+#define ETH_MODULE_SFF_8636 0x3
+#define ETH_MODULE_SFF_8436 0x4
+
+struct ethtool_modinfo {
+ u32 cmd;
+ u32 type; /* SFF standard used in module */
+ u32 eeprom_len; /* Length of module eeprom */
+ u32 reserved[8];
+};
+
+/* Known id types. */
+#define SFF_8024_ID_SOLDERED 0x2
+#define SFF_8024_ID_SFP 0x3
+#define SFF_8024_EXT_ID_DEFINED_BY_2WIRE_ID 0x4
+
+/* Common connector types. */
+#define SFF_8024_CONNECTOR_SC 0x1
+#define SFF_8024_CONNECTOR_LC 0x7
+#define SFF_8024_CONNECTOR_OPTICAL_PIGTAIL 0xb
+#define SFF_8024_CONNECTOR_COPPER_PIGTAIL 0x21
+#define SFF_8024_CONNECTOR_RJ45 0x22
+#define SFF_8024_CONNECTOR_NON_SEPARABLE 0x23
+
+#define MAX_EEPROM_SIZE 256
+struct ethtool_eeprom {
+ u32 cmd;
+ u32 magic; /* Only used for eeprom writes */
+ u32 offset; /* Read or write offset */
+ u32 len; /* Length of read/write */
+ u8 data[MAX_EEPROM_SIZE]; /* Buffer */
+};
+
#ifndef IFNAMSIZ
#define IFNAMSIZ 32
#endif
@@ -131,6 +166,8 @@ struct ethtool_value
#define ETHTOOL_GSET 0x00000001 /* Get settings. */
#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */
#define ETHTOOL_GLINK 0x0000000a /* Get link status (ethtool_value) */
+#define ETHTOOL_GMODULEINFO 0x00000042 /* Get plug-in module information */
+#define ETHTOOL_GMODULEEEPROM 0x00000043 /* Get plug-in module eeprom */
#define ETHTOOL_GLINKSETTINGS 0x0000004c /* Get link mode settings. */
/* Indicates what features are supported by the interface. */
@@ -358,6 +395,96 @@ static bool isVirtual(const string & MAC)
}
+// Get data for connected transceiver module.
+static void scan_module(hwNode & interface, int fd)
+{
+ struct ifreq ifr;
+ struct ethtool_modinfo emodinfo;
+ struct ethtool_eeprom eeeprom;
+
+ emodinfo.cmd = ETHTOOL_GMODULEINFO;
+ memset(&ifr, 0, sizeof(ifr));
+ strcpy(ifr.ifr_name, interface.getLogicalName().c_str());
+ ifr.ifr_data = (caddr_t) &emodinfo;
+ // Skip interface if module info not supported.
+ if (ioctl(fd, SIOCETHTOOL, &ifr) != 0)
+ return;
+
+ eeeprom.cmd = ETHTOOL_GMODULEEEPROM;
+ eeeprom.offset = 0;
+ eeeprom.len = emodinfo.eeprom_len;
+ if (eeeprom.len > MAX_EEPROM_SIZE)
+ eeeprom.len = MAX_EEPROM_SIZE;
+ memset(&ifr, 0, sizeof(ifr));
+ strcpy(ifr.ifr_name, interface.getLogicalName().c_str());
+ ifr.ifr_data = (caddr_t) &eeeprom;
+ if (ioctl(fd, SIOCETHTOOL, &ifr) != 0)
+ return;
+
+ switch (emodinfo.type)
+ {
+ /* SFF 8472 eeprom layout starts with same data as SFF 8079. */
+ case ETH_MODULE_SFF_8079:
+ case ETH_MODULE_SFF_8472:
+ if ((eeeprom.data[0] == SFF_8024_ID_SOLDERED || eeeprom.data[0] == SFF_8024_ID_SFP) &&
+ eeeprom.data[1] == SFF_8024_EXT_ID_DEFINED_BY_2WIRE_ID)
+ {
+ char buffer[32];
+ /* Get part number (padded with space). String is stripped inside setConfig. */
+ interface.setConfig("module", string((const char*)&eeeprom.data[40], 16));
+ int wavelength = eeeprom.data[60] << 8 | eeeprom.data[61];
+ /* Skip wavelength for SFP+ cables, they use byte 60 for other data. */
+ if ((eeeprom.data[8] & 0x0C) == 0 && wavelength > 0)
+ {
+ snprintf(buffer, sizeof(buffer), "%dnm", wavelength);
+ interface.setConfig("wavelength", buffer);
+ }
+ int max_length = 0;
+ int length;
+ length = eeeprom.data[14] * 1000; /* SMF, km */
+ if (length > max_length) max_length = length;
+ length = eeeprom.data[15] * 100; /* SMF, meter */
+ if (length > max_length) max_length = length;
+ length = eeeprom.data[16] * 10; /* 50um (OM2), meter */
+ if (length > max_length) max_length = length;
+ length = eeeprom.data[17] * 10; /* 62.5um (OM1), meter */
+ if (length > max_length) max_length = length;
+ length = eeeprom.data[18]; /* Copper, meter */
+ if (length > max_length) max_length = length;
+ length = eeeprom.data[19] * 10; /* OM3, meter */
+ if (length > max_length) max_length = length;
+ if (max_length > 0)
+ {
+ snprintf(buffer, sizeof(buffer), "%dm", max_length);
+ interface.setConfig("maxlength", buffer);
+ }
+ switch (eeeprom.data[2])
+ {
+ case SFF_8024_CONNECTOR_SC:
+ interface.setConfig("connector", "SC");
+ break;
+ case SFF_8024_CONNECTOR_LC:
+ interface.setConfig("connector", "LC");
+ break;
+ case SFF_8024_CONNECTOR_OPTICAL_PIGTAIL:
+ interface.setConfig("connector", "optical pigtail");
+ break;
+ case SFF_8024_CONNECTOR_COPPER_PIGTAIL:
+ interface.setConfig("connector", "copper pigtail");
+ break;
+ case SFF_8024_CONNECTOR_RJ45:
+ interface.setConfig("connector", "RJ45");
+ break;
+ case SFF_8024_CONNECTOR_NON_SEPARABLE:
+ interface.setConfig("connector", "non separable");
+ break;
+ }
+ }
+ break;
+ }
+}
+
+
static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2, u32 speed, u8 duplex, u8 port, u8 autoneg)
{
if(supported & SUPPORTED_TP)
@@ -666,6 +793,7 @@ bool scan_network(hwNode & n)
}
scan_modes(interface, fd);
+ scan_module(interface, fd);
drvinfo.cmd = ETHTOOL_GDRVINFO;
memset(&ifr, 0, sizeof(ifr));
--
2.33.1

@ -1,95 +0,0 @@
From d67d67a7d9d3288a1ddadc8fafeb6143cbafcbac Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Tue, 9 Nov 2021 09:21:24 -0700
Subject: [PATCH 1/2] Fix mistakes in Catalan translation
---
src/po/ca.po | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/po/ca.po b/src/po/ca.po
index 09710a9..f1c8cb4 100644
--- a/src/po/ca.po
+++ b/src/po/ca.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: @(#) $Id$\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-22 00:36-0600\n"
-"PO-Revision-Date: 2021-10-22 01:05-0600\n"
+"PO-Revision-Date: 2021-11-09 09:21-0700\n"
"Last-Translator: Alex Henrie <alexhenrie24@gmail.com>\n"
"Language-Team: Catalan <ca@li.org>\n"
"Language: ca\n"
@@ -1312,11 +1312,11 @@ msgstr "Atributs extensos"
#: ../core/volumes.cc:318
msgid "4GB+ files"
-msgstr "fitxers 4GB+"
+msgstr "fitxers de 4GB+"
#: ../core/volumes.cc:320
msgid "16TB+ files"
-msgstr "fitxers 16TB+"
+msgstr "fitxers de 16TB+"
#: ../core/volumes.cc:322
msgid "directories with 65000+ subdirs"
@@ -1406,7 +1406,7 @@ msgstr "\t-html emet l'arbre de maquinari com a HTML\n"
#: ../lshw.cc:30
#, c-format
msgid "\t-xml output hardware tree as XML\n"
-msgstr "\t-xml emet l'arbre demaquinari com a XML\n"
+msgstr "\t-xml emet l'arbre de maquinari com a XML\n"
#: ../lshw.cc:31
#, c-format
@@ -1443,7 +1443,7 @@ msgid ""
"\t-dump filename display output and dump collected information into a file "
"(SQLite database)\n"
msgstr ""
-"\t-dump fitxer mostra la sortida i bolca la informació recollida en un "
+"\t-dump fitxer mostra la sortida i bolca la informació recollida en un "
"fitxer (base de dades SQL)\n"
#: ../lshw.cc:40
@@ -1454,24 +1454,24 @@ msgstr "\t-class CLASSE mostra només una classe determinada de maquinari\n"
#: ../lshw.cc:41
#, c-format
msgid "\t-C CLASS same as '-class CLASS'\n"
-msgstr "\t-C CLASSE ho mateix que '-class CLASSE'\n"
+msgstr "\t-C CLASSE ho mateix que '-class CLASSE'\n"
#: ../lshw.cc:42
#, c-format
msgid "\t-c CLASS same as '-class CLASS'\n"
-msgstr "\t-c CLASSE ho mateix que '-class CLASSE'\n"
+msgstr "\t-c CLASSE ho mateix que '-class CLASSE'\n"
#: ../lshw.cc:44
#, c-format
msgid "\t-disable TEST disable a test (like pci, isapnp, cpuid, etc.)\n"
msgstr ""
-"\t-disable TEST deshabilita una prova (com a pci, isapnp, cpuid, etc.)\n"
+"\t-disable PROVA deshabilita una prova (com a pci, isapnp, cpuid, etc.)\n"
#: ../lshw.cc:46
#, c-format
msgid "\t-enable TEST enable a test (like pci, isapnp, cpuid, etc.)\n"
msgstr ""
-"\t-enable TEST habilita una prova (com a pci, isapnp, cpuid, etc.)\n"
+"\t-enable PROVA habilita una prova (com a pci, isapnp, cpuid, etc.)\n"
#: ../lshw.cc:47
#, c-format
@@ -1484,7 +1484,7 @@ msgid ""
"\t-sanitize sanitize output (remove sensitive information like serial "
"numbers, etc.)\n"
msgstr ""
-"\t-sanitize saneja la sortida (elimina informació sensitiva com als "
+"\t-sanitize expurga la sortida (elimina informació sensitiva com als "
"nombres serials etc.)\n"
#: ../lshw.cc:49
--
2.33.1

File diff suppressed because it is too large Load Diff

@ -0,0 +1,66 @@
commit 135a853c60582b14c5b67e5cd988a8062d9896f4
Author: Lyonel Vincent <lyonel@ezix.org>
Date: Fri Apr 28 16:54:42 2017 +0200
Fix JSON output format
cf. https://github.com/lyonel/lshw/pull/28
diff --git a/src/core/hw.cc b/src/core/hw.cc
index 68e5912..9defd26 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
@@ -1368,9 +1368,14 @@ string hwNode::asJSON(unsigned level)
config = getConfigKeys();
resources = getResources("\" value=\"");
+ if (level == 0)
+ {
+ out << "[" << endl;
+ }
+
if(visible(getClassName()))
{
- out << "{" << endl;
+ out << spaces(2*level) << "{" << endl;
out << spaces(2*level+2) << "\"id\" : \"" << getId() << "\"," << endl;
out << spaces(2*level+2) << "\"class\" : \"" << getClassName() << "\"";
@@ -1613,20 +1618,13 @@ string hwNode::asJSON(unsigned level)
resources.clear();
}
-
- if(countChildren()>0)
+ for (unsigned int i = 0; i < countChildren(); i++)
{
- if(visible(getClassName()))
- out << "," << endl << spaces(2*level+2) << "\"children\" : [" << endl;
-
- for (unsigned int i = 0; i < countChildren(); i++)
+ out << getChild(i)->asJSON(visible(getClassName()) ? level + 2 : 1);
+ if (visible(getChild(i)->getClassName()))
{
- out << spaces(2*level+4) << getChild(i)->asJSON(visible(getClassName()) ? level + 2 : 1);
- if(visible(getChild(i)->getClassName()) && (i < countChildren()-1)) out << "," << endl;
+ out << "," << endl;
}
-
- if(visible(getClassName()))
- out << endl << spaces(2*level+2) << "]";
}
if(visible(getClassName()))
@@ -1635,6 +1633,12 @@ string hwNode::asJSON(unsigned level)
out << "}";
}
+ if (level == 0)
+ {
+ out.seekp(-2, std::ios_base::end);
+ out << endl << "]" << endl;
+ }
+
return out.str();
}

@ -0,0 +1,28 @@
From 5c3b96616ecec2345c6b785352192c033738f2e1 Mon Sep 17 00:00:00 2001
From: Lianbo Jiang <lijiang@redhat.com>
Date: Thu, 25 Apr 2019 12:37:38 +0800
Subject: [PATCH] Add the "FindPkgConfig" to CMakeLists.txt.
Include the "FindPkgConfig" in order to fix "Unknown CMake command
pkg_check_modules"
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
---
CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6c69c37336c8..688863130291 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,7 @@
cmake_minimum_required(VERSION 3.0)
+include(FindPkgConfig)
+
project(lshw)
set(VERSION "B.02.19.2")
--
2.17.1

@ -43,7 +43,7 @@ new file mode 100644
index 0000000..3b1d4d6
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,44 @@
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 3.0)
+
+project(lshw)
@ -71,7 +71,6 @@ index 0000000..3b1d4d6
+option(NOLOGO "Don't install vendor logos" OFF)
+option(STATIC "Do a static (will disable other features)" OFF)
+option(POLICYKIT "Install PolicyKit file and pfexec wrapper" OFF)
+option(REMOTE_VERSION_CHECK "Enable remote version check" OFF)
+
+include(GNUInstallDirs)
+set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE STRING "Install prefix")
@ -301,7 +300,7 @@ new file mode 100644
index 0000000..8b97a16
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,108 @@
@@ -0,0 +1,102 @@
+if(STATIC)
+ set(ZLIB OFF)
+ set(SQLITE OFF)
@ -309,7 +308,6 @@ index 0000000..8b97a16
+
+# SQLite support
+if(SQLITE)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(SQLITE3 sqlite3)
+ if(SQLITE3_FOUND)
+ message("-- Enabling SQLite support")
@ -386,12 +384,7 @@ index 0000000..8b97a16
+ set_target_properties(lshw PROPERTIES LINK_FLAGS "-static" )
+endif()
+
+if(REMOTE_VERSION_CHECK)
+ add_compile_definitions(REMOTE_VERSION_CHECK)
+ target_link_libraries(lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} core resolv)
+else()
+ target_link_libraries(lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} core)
+endif()
+target_link_libraries(lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} core resolv)
+
+if(NOT ZLIB)
+ if(HWDATA)
@ -741,25 +734,24 @@ new file mode 100644
index 0000000..3489053
--- /dev/null
+++ b/src/gui/CMakeLists.txt
@@ -0,0 +1,68 @@
@@ -0,0 +1,67 @@
+if(NOT GUI OR STATIC)
+ message("-- gtk-${PROJECT_NAME} disabled")
+ return()
+endif()
+
+find_package(PkgConfig)
+pkg_check_modules(GTK3 REQUIRED gtk+-3.0 gmodule-2.0)
+pkg_check_modules(GTK2 REQUIRED gtk+-2.0 gmodule-2.0)
+
+file(GLOB GTK_SOURCES "*.c*")
+list(FILTER GTK_SOURCES EXCLUDE REGEX ".*support.c$")
+
+include_directories("${PROJECT_BINARY_DIR}")
+include_directories("${PROJECT_SOURCE_DIR}/src/core")
+
+include_directories("${GTK3_INCLUDE_DIRS}")
+include_directories("${GTK2_INCLUDE_DIRS}")
+
+add_executable(gtk-lshw ${GTK_SOURCES})
+target_link_libraries(gtk-lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} ${GTK3_LIBRARIES} core resolv)
+target_link_libraries(gtk-lshw ${SQLITE3_LIBRARIES} ${Z_LIBRARIES} ${GTK2_LIBRARIES} core resolv)
+install(TARGETS gtk-lshw DESTINATION sbin)
+
+if(POLICYKIT)

@ -1,160 +0,0 @@
.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "LSHW-GTK 1"
.TH LSHW-GTK 1 "2007-12-05" "perl v5.8.8" "User Contributed Perl Documentation"
.SH "NAME"
lshw\-gtk \- list hardware (GTK version)
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
lshw is a small tool to extract detailed information on the hardware
configuration of the machine. It can report exact memory
configuration, firmware version, mainboard configuration,
\&\s-1CPU\s0 version
and speed, cache configuration, bus speed, etc. on
DMI-capable x86 or \s-1IA\-64\s0
systems and on some PowerPC
machines (PowerMac G4 is known to work).
.PP
It currently supports \s-1DMI\s0 (x86 and \s-1IA\-64\s0 only), OpenFirmware device tree (PowerPC only),
\&\s-1PCI/AGP\s0, \s-1CPUID\s0 (x86), \s-1IDE/ATA/ATAPI\s0, \s-1PCMCIA\s0 (only tested on x86), \s-1SCSI\s0 and \s-1USB\s0.
.SH "NOTES"
.IX Header "NOTES"
lshw-gtk must be run as super user or it will only report
.SH "COPYING"
.IX Header "COPYING"
lshw is distributed under the \s-1GNU\s0 \s-1GENERAL\s0 \s-1PUBLIC\s0 \s-1LICENSE\s0 (\s-1GPL\s0) version 2.
.SH "AUTOR"
.IX Header "AUTOR"
lshw is maintained by Lyonel Vincent
<lyonel@ezix.org>.
.SH "OTHER INFO"
.IX Header "OTHER INFO"
The webpage for lshw is at http://ezix.org/software/lshw.html

@ -0,0 +1,263 @@
From 9093e083aa78aee6b85345e8fd15424549d01cac Mon Sep 17 00:00:00 2001
From: Lianbo Jiang <lijiang@redhat.com>
Date: Thu, 3 Dec 2020 10:58:33 +0800
Subject: [PATCH] cleanup: remove unused support.c/support.h generated by Glade
The support.c and support.h are automatically generated by Glade, and these
files are not used any more, so let's remove the redundant files and make a
cleanup, which can also make ninja-build happy.
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
---
src/gui/callbacks.c | 1 -
src/gui/engine.cc | 5 --
src/gui/gtk-lshw.c | 1 -
src/gui/support.c | 144 --------------------------------------------
src/gui/support.h | 44 --------------
5 files changed, 195 deletions(-)
delete mode 100644 src/gui/support.c
delete mode 100644 src/gui/support.h
diff --git a/src/gui/callbacks.c b/src/gui/callbacks.c
index b108777fe11f..6b88c82e6098 100644
--- a/src/gui/callbacks.c
+++ b/src/gui/callbacks.c
@@ -5,7 +5,6 @@
#include <gtk/gtk.h>
#include "callbacks.h"
-#include "support.h"
#include "version.h"
#include "engine.h"
#include <string.h>
diff --git a/src/gui/engine.cc b/src/gui/engine.cc
index 2962ec80d81a..b537ef11db23 100644
--- a/src/gui/engine.cc
+++ b/src/gui/engine.cc
@@ -15,11 +15,6 @@
static const char *id = "@(#) $Id$";
-extern "C"
-{
-#include "support.h"
-};
-
#define AUTOMATIC "automatic file format"
#define LSHW_XML "lshw XML format (.lshw, .xml)"
#define PLAIN_TEXT "plain text document (.text, .txt)"
diff --git a/src/gui/gtk-lshw.c b/src/gui/gtk-lshw.c
index d3e531c4ceb3..090484317c6e 100644
--- a/src/gui/gtk-lshw.c
+++ b/src/gui/gtk-lshw.c
@@ -2,7 +2,6 @@
#include <unistd.h>
#include <gtk/gtk.h>
-#include "support.h"
#include "config.h"
#include "stock.h"
#include "engine.h"
diff --git a/src/gui/support.c b/src/gui/support.c
deleted file mode 100644
index 7dc3c78cb605..000000000000
--- a/src/gui/support.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * DO NOT EDIT THIS FILE - it is generated by Glade.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <gtk/gtk.h>
-
-#include "support.h"
-
-GtkWidget*
-lookup_widget (GtkWidget *widget,
- const gchar *widget_name)
-{
- GtkWidget *parent, *found_widget;
-
- for (;;)
- {
- if (GTK_IS_MENU (widget))
- parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
- else
- parent = widget->parent;
- if (!parent)
- parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
- if (parent == NULL)
- break;
- widget = parent;
- }
-
- found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
- widget_name);
- if (!found_widget)
- g_warning ("Widget not found: %s", widget_name);
- return found_widget;
-}
-
-static GList *pixmaps_directories = NULL;
-
-/* Use this function to set the directory containing installed pixmaps. */
-void
-add_pixmap_directory (const gchar *directory)
-{
- pixmaps_directories = g_list_prepend (pixmaps_directories,
- g_strdup (directory));
-}
-
-/* This is an internally used function to find pixmap files. */
-static gchar*
-find_pixmap_file (const gchar *filename)
-{
- GList *elem;
-
- /* We step through each of the pixmaps directory to find it. */
- elem = pixmaps_directories;
- while (elem)
- {
- gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data,
- G_DIR_SEPARATOR_S, filename);
- if (g_file_test (pathname, G_FILE_TEST_EXISTS))
- return pathname;
- g_free (pathname);
- elem = elem->next;
- }
- return NULL;
-}
-
-/* This is an internally used function to create pixmaps. */
-GtkWidget*
-create_pixmap (GtkWidget *widget,
- const gchar *filename)
-{
- gchar *pathname = NULL;
- GtkWidget *pixmap;
-
- if (!filename || !filename[0])
- return gtk_image_new ();
-
- pathname = find_pixmap_file (filename);
-
- if (!pathname)
- {
- g_warning ("Couldn't find pixmap file: %s", filename);
- return gtk_image_new ();
- }
-
- pixmap = gtk_image_new_from_file (pathname);
- g_free (pathname);
- return pixmap;
-}
-
-/* This is an internally used function to create pixmaps. */
-GdkPixbuf*
-create_pixbuf (const gchar *filename)
-{
- gchar *pathname = NULL;
- GdkPixbuf *pixbuf;
- GError *error = NULL;
-
- if (!filename || !filename[0])
- return NULL;
-
- pathname = find_pixmap_file (filename);
-
- if (!pathname)
- {
- g_warning ("Couldn't find pixmap file: %s", filename);
- return NULL;
- }
-
- pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
- if (!pixbuf)
- {
- fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
- pathname, error->message);
- g_error_free (error);
- }
- g_free (pathname);
- return pixbuf;
-}
-
-/* This is used to set ATK action descriptions. */
-void
-glade_set_atk_action_description (AtkAction *action,
- const gchar *action_name,
- const gchar *description)
-{
- gint n_actions, i;
-
- n_actions = atk_action_get_n_actions (action);
- for (i = 0; i < n_actions; i++)
- {
- if (!strcmp (atk_action_get_name (action, i), action_name))
- atk_action_set_description (action, i, description);
- }
-}
-
diff --git a/src/gui/support.h b/src/gui/support.h
deleted file mode 100644
index 2dea079c2a42..000000000000
--- a/src/gui/support.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * DO NOT EDIT THIS FILE - it is generated by Glade.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gtk/gtk.h>
-
-/*
- * Public Functions.
- */
-
-/*
- * This function returns a widget in a component created by Glade.
- * Call it with the toplevel widget in the component (i.e. a window/dialog),
- * or alternatively any widget in the component, and the name of the widget
- * you want returned.
- */
-GtkWidget* lookup_widget (GtkWidget *widget,
- const gchar *widget_name);
-
-
-/* Use this function to set the directory containing installed pixmaps. */
-void add_pixmap_directory (const gchar *directory);
-
-
-/*
- * Private Functions.
- */
-
-/* This is used to create the pixmaps used in the interface. */
-GtkWidget* create_pixmap (GtkWidget *widget,
- const gchar *filename);
-
-/* This is used to create the pixbufs used in the interface. */
-GdkPixbuf* create_pixbuf (const gchar *filename);
-
-/* This is used to set ATK action descriptions. */
-void glade_set_atk_action_description (AtkAction *action,
- const gchar *action_name,
- const gchar *description);
-
--
2.17.1

@ -1,96 +1,67 @@
%undefine __cmake_in_source_build
Summary: Hardware lister
Name: lshw
Version: B.02.19.2
Release: 10%{?dist}
Release: 6%{?dist}
License: GPLv2
Group: Applications/System
URL: http://ezix.org/project/wiki/HardwareLiSter
Source0: http://www.ezix.org/software/files/lshw-%{version}.tar.gz
Source1: https://salsa.debian.org/openstack-team/third-party/lshw/raw/debian/stein/debian/patches/lshw-gtk.1
Patch1: lshw-B.02.18-scandir.patch
Patch4: lshw-B.02.19.2-cmake.patch
Patch9: 0003-report-CPU-family-model-stepping.patch
Patch10: 0004-move-PnP-devices-to-the-ISA-LPC-bridge.patch
Patch11: 0005-correctly-format-SMBIOS-UUID.patch
Patch12: 0006-cosmetic-clean-up.patch
Patch13: 0007-begin-work-on-input-devices.patch
Patch14: 0008-cosmetic-fixes.patch
Patch15: 0009-detect-sound-devices.patch
Patch16: 0010-detect-framebuffers.patch
Patch17: 0011-try-to-connect-input-devices-to-the-right-parent.patch
Patch18: 0012-devtree-Add-chip-id-from-the-dimm-module.patch
Patch19: 0013-devtree-Add-chip-id-from-CPU-node.patch
Patch20: 0014-volumes-fix-segfault-in-apfs-volume-code.patch
Patch21: 0015-merge-Github-PR-53.patch
Patch22: 0016-devtree-Add-capabilites-to-the-OPAL-Firmware.patch
Patch23: 0017-fix-issue-with-logical-names-being-truncated-dev-sda.patch
Patch24: 0018-code-clean-up-for-read-3.patch
Patch25: 0019-JSON-output-clean-up-list-object.patch
Patch26: 0020-clean-up-JSON-output.patch
Patch27: 0021-report-product-model-on-Power-systems.patch
Patch28: 0022-Fix-few-memory-leaks.patch
Patch29: 0023-Build-against-gtk3-instead-of-gtk2.patch
Patch30: 0024-Remove-deprecated-stock-messages.patch
Patch31: 0025-Remove-hack-which-is-apparently-not-useful-anymore.patch
Patch32: 0026-Use-GtkFileChooserNative-instead-of-GtkFileChooserDi.patch
Patch33: 0027-Replace-deprecated-GtkIconFactory-with-GHashTable.patch
Patch34: 0028-Replace-the-last-GtkStock-in-overwrite-dialog.patch
Patch35: 0029-Remove-deprecated-widgets.patch
Patch36: 0030-Remove-deprecated-use_action_appearance-property.patch
Patch37: 0031-Move-to-GtkApplication.patch
Patch38: 0032-Replace-signals-with-GSimpleActions.patch
Patch39: 0033-Enable-Disable-GSimpleAction-instead-of-button-sensi.patch
Patch40: 0034-Move-from-GtkMenuBar-to-GMenu.patch
Patch41: 0035-Replace-the-about-GtkDialog-with-a-GtkAboutDialog.patch
Patch42: 0036-Update-docs-TODO.patch
Patch43: 0037-Update-docs-TODO.patch
Patch44: 0038-update-man-page.patch
Patch45: 0039-fix-man-page-after-previous-update.patch
Patch46: 0040-Report-correct-memory-size-on-SMBIOS-2.7.patch
Patch47: 0041-Add-JEDEC-manufacturer.patch
Patch48: 0042-Avoid-crash-on-device-tree-parsing.patch
#Patch49: 0043-add-static-target-to-Makefile.patch
Patch50: 0044-fix-potential-crash.patch
Patch51: 0045-improve-portability-esp.-musl.patch
Patch52: 0046-code-clean-up.patch
Patch53: 0047-devtree-Add-UUID-property.patch
Patch54: 0048-Fix-getting-size-of-memory-banks-32GiB.patch
Patch55: 0049-Fix-typos-in-translatable-messages.patch
Patch56: 0050-Fix-another-typo.patch
Patch57: 0051-Translate-all-words-of-a-phrase-together.patch
Patch58: 0052-Remove-unnecessary-space-before-closing-parenthesis.patch
#Patch59: 0053-allow-pkg-config-override.patch
#Patch60: 0054-allow-pkg-config-override.patch
Patch61: 0055-code-clean-up.patch
Patch62: 0056-code-clean-up.patch
Patch63: 0057-support-for-new-ethtool-capabilities.patch
Patch64: 0058-cosmetic-fixes.patch
Patch65: 0059-fix-typo.patch
Patch66: 0060-add-some-includes.patch
Patch67: 0061-Add-more-network-speeds.patch
Patch68: 0062-Update-POT-file.patch
Patch69: 0063-Add-Catalan-translation.patch
#Patch70: 0064-use-max-9-Gzip-compression.patch
Patch71: 0065-merge-Github-PR-77.patch
Patch72: 0066-Fix-mistakes-in-Catalan-translation.patch
Patch73: 0067-Add-Spanish-translation.patch
Patch74: 0001-Github-PR85-Set-product-name-for-all-netdevs-sharing.patch
Patch75: 0002-make-version-check-optional.patch
Patch76: 0001-PA-RISC-handle-pushd-failure.patch
Patch77: 0002-NVMe-fix-logical-name-with-native-multipath.patch
Patch78: 0003-fix-NVMe-multipath-detection.patch
Patch2: lshw-B.02.18-revert-json.patch
Patch3: lshw-B.02.19.2-cmake.patch
Patch4: lshw-B.02.19.2-Add-the-FindPkgConfig-to-CMakeLists.patch
Patch5: 0001-report-CPU-family-model-stepping.patch
Patch6: 0002-move-PnP-devices-to-the-ISA-LPC-bridge.patch
Patch7: 0003-correctly-format-SMBIOS-UUID.patch
Patch8: 0004-cosmetic-clean-up.patch
Patch9: 0005-begin-work-on-input-devices.patch
Patch10: 0006-cosmetic-fixes.patch
Patch11: 0007-detect-sound-devices.patch
Patch12: 0008-detect-framebuffers.patch
Patch13: 0009-try-to-connect-input-devices-to-the-right-parent.patch
Patch14: 0010-devtree-Add-chip-id-from-the-dimm-module.patch
Patch15: 0011-devtree-Add-chip-id-from-CPU-node.patch
Patch16: 0012-volumes-fix-segfault-in-apfs-volume-code.patch
Patch17: 0013-merge-Github-PR-53.patch
Patch18: 0014-devtree-Add-capabilites-to-the-OPAL-Firmware.patch
Patch19: 0015-fix-issue-with-logical-names-being-truncated-dev-sda.patch
Patch20: 0016-code-clean-up-for-read-3.patch
Patch21: 0017-report-product-model-on-Power-systems.patch
Patch22: 0001-Fix-few-memory-leaks.patch
Patch23: 0002-Build-against-gtk3-instead-of-gtk2.patch
Patch24: 0003-Remove-deprecated-stock-messages.patch
Patch25: 0004-Remove-hack-which-is-apparently-not-useful-anymore.patch
Patch26: 0005-Use-GtkFileChooserNative-instead-of-GtkFileChooserDi.patch
Patch27: 0006-Replace-deprecated-GtkIconFactory-with-GHashTable.patch
Patch28: 0007-Replace-the-last-GtkStock-in-overwrite-dialog.patch
Patch29: 0008-Remove-deprecated-widgets.patch
Patch30: 0009-Remove-deprecated-use_action_appearance-property.patch
Patch31: 0010-Move-to-GtkApplication.patch
Patch32: 0011-Replace-signals-with-GSimpleActions.patch
Patch33: 0012-Enable-Disable-GSimpleAction-instead-of-button-sensi.patch
Patch34: 0013-Move-from-GtkMenuBar-to-GMenu.patch
Patch35: 0014-Replace-the-about-GtkDialog-with-a-GtkAboutDialog.patch
Patch36: 0015-Update-docs-TODO.patch
Patch37: 0016-Update-docs-TODO.patch
Patch38: 0017-update-man-page.patch
Patch39: 0018-fix-man-page-after-previous-update.patch
Patch40: rhelonly-cleanup-remove-unused-support.c-support.h-generated-.patch
Patch41: 0001-Report-correct-memory-size-on-SMBIOS-2.7.patch
Patch42: 0001-devtree-Add-UUID-property.patch
Patch43: 0001-Fix-getting-size-of-memory-banks-32GiB.patch
BuildRequires: cmake
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: gtk3-devel >= 3.24
BuildRequires: gtk3-devel >= 3.22
BuildRequires: libappstream-glib
BuildRequires: ninja-build
BuildRequires: python3-devel
BuildRequires: sqlite
BuildRequires: sqlite-devel
Requires: hwdata
Requires: sqlite-libs
%description
lshw is a small tool to provide detailed informaton on the hardware
configuration of the machine. It can report exact memory
@ -102,7 +73,9 @@ Information can be output in plain text, XML or HTML.
%package gui
Summary: Graphical hardware lister
Group: Applications/System
Requires: polkit
Requires: gtk3 >= 3.22
Requires: %{name} = %{version}-%{release}
%description gui
Graphical frontend for the hardware lister (lshw) tool. If desired,
@ -112,8 +85,14 @@ format.
%prep
%setup -q
%patch01 -p1
%patch02 -R -p1
%patch03 -p1
%patch04 -p1
%patch9 -p1
%patch05 -p1
%patch06 -p1
%patch07 -p1
%patch08 -p1
%patch09 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
@ -148,60 +127,27 @@ format.
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
#%patch49 -p1 changes only on Makefile, not needed
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
%patch57 -p1
%patch58 -p1
#%patch59 -p1 changes only on src/Makefile, not needed
#%patch60 -p1 changes only on src/gui/Makefile, not needed
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
#%patch70 -p1 changes only on src/Makefile, not needed
%patch71 -p1
%patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%patch77 -p1
%patch78 -p1
%build
%cmake -DNOLOGO=ON -DHWDATA=OFF -DPOLICYKIT=ON -DSQLITE=ON -DBUILD_SHARED_LIBS=OFF -GNinja
%cmake_build
mkdir build && pushd build
%cmake .. -DNOLOGO=ON -DHWDATA=OFF -DPOLICYKIT=ON -DBUILD_SHARED_LIBS=OFF -DSQLITE=ON -GNinja
%ninja_build
%install
%cmake_install
install -m0644 -D %{SOURCE1} %{buildroot}%{_mandir}/man1/lshw-gui.1
pushd build
%ninja_install
ln -s gtk-lshw %{buildroot}%{_sbindir}/lshw-gui
# translations seems borken, remove for now
#find_lang %{name}
rm -rf %{buildroot}%{_datadir}/locale/*/
rm -rf %{buildroot}%{_datadir}/locale/fr/
%check
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml
# check json output is valid
%{_vpath_builddir}/src/lshw -json \
pushd build
src/lshw -json \
-disable usb -disable pcmcia -disable isapnp \
-disable ide -disable scsi -disable dmi -disable memory \
-disable cpuinfo 2>/dev/null | %{__python3} -m json.tool
@ -218,7 +164,6 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata
%{_bindir}/lshw-gui
%{_sbindir}/gtk-lshw
%{_sbindir}/lshw-gui
%{_mandir}/man1/lshw-gui.1*
%dir %{_datadir}/lshw
%{_datadir}/lshw/artwork
%dir %{_datadir}/lshw/ui
@ -229,59 +174,59 @@ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata
%{_datadir}/polkit-1/actions/org.ezix.lshw.gui.policy
%changelog
* Wed May 24 2023 Tao Liu <ltao@redhat.com> - B.02.19.2-10
- Update lshw to upstream latest(b4e06730790)
* Tue Jul 19 2022 Tao Liu <ltao@redhat.com> - B.02.19.2-9
- Fix patch issue in B.02.19.2-8
* Fri Jul 15 2022 Tao Liu <ltao@redhat.com> - B.02.19.2-8
- Update lshw to upstream latest(d76afbaaf40)
* Fri Dec 24 2021 Tao Liu <ltao@redhat.com> - B.02.19.2-7
- Update lshw to upstream latest(a2b731e7ecf)
* Wed Jul 26 2023 MSVSphere Packaging Team <packager@msvsphere.ru> - B.02.19.2-6
- Rebuilt for MSVSphere 8.8
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - B.02.19.2-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Tue Jun 08 2021 Tao Liu <ltao@redhat.com> - B.02.19.2-6
- Fix getting size of memory banks <32GiB
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - B.02.19.2-5
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Feb 02 2021 Lianbo Jiang <lijiang@redhat.com> - B.02.19.2-5
- Fix the wrong memory information in azure m or mv2 series
- Add UUID property to PowerVM LPAR
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - B.02.19.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Dec 16 2020 Lianbo Jiang <lijiang@redhat.com> - B.02.19.2-4
- Fix the gtk3 dependency for lshw-gui instead of lshw
- Resolves: rhbz#1905816
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - B.02.19.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Dec 03 2020 Lianbo Jiang <lijiang@redhat.com> - B.02.19.2-3
- Update to upstream master 56f1de9d1e4d
- Resolves: rhbz#1844426
* Fri Apr 24 2020 Terje Rosten <terje.rosten@ntnu.no> - B.02.19.2-2
- Add patch from openSUSE to fix rhbz#1822455
* Wed May 27 2020 Lianbo Jiang <lijiang@redhat.com> - B.02.19.2-2
- Update to upstream master 3775782808e8
* Tue Mar 24 2020 Terje Rosten <terje.rosten@ntnu.no> - B.02.19.2-1
* Tue May 26 2020 Lianbo Jiang <lijiang@redhat.com> - B.02.19.2-1
- B.02.19.2
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - B.02.18-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Feb 10 2020 Lianbo Jiang <lijiang@redhat.com> - B.02.18-23
- Do not show modified time with -notime option
- Resolves: rhbz#1733126
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - B.02.18-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Nov 21 2019 Lianbo Jiang <lijiang@redhat.com> - B.02.18-22
- Display proper logical name of network device
- Resolves: rhbz#1724087
- Add DIMM running speed and Print dimm rank information
- Resolves: rhbz#1725199
* Tue May 28 2019 Terje Rosten <terje.rosten@ntnu.no> - B.02.18-21
- Update to commit 6cc0581
- Rebase cmake patch on top 6cc0581
- Add NVME patch from PR#45
* Mon May 13 2019 Lianbo Jiang <lijiang@redhat.com> - B.02.18-21
- Update to upstream master 6cc0581bc805.
- Resolves: rhbz#1664092
* Sat May 25 2019 Terje Rosten <terje.rosten@ntnu.no> - B.02.18-20
- Add lshw-gui man page (from Debian, thanks!)
* Thu Apr 25 2019 Lianbo Jiang <lijiang@redhat.com> - B.02.18-20
- Change python to python3 in selftest/Makefile for the CI gating test.
- Resolves: rhbz#1680623
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - B.02.18-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Apr 25 2019 Lianbo Jiang <lijiang@redhat.com> - B.02.18-19
- Enable SQLite and fix the CI gating test.
- Resolves: rhbz#1680623
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - B.02.18-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Apr 23 2019 Lianbo Jiang <lijiang@redhat.com> - B.02.18-18
- Fix:59a8e99ab22d ("Porting the code from /CoreOS/lshw/sanity/check-output for the CI gating")
- Resolves: rhbz#1680623
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - B.02.18-17
- Rebuilt for Python 3.7
* Fri Apr 19 2019 Lianbo Jiang <lijiang@redhat.com> - B.02.18-17
- Add the CI gating test
- Resolves: rhbz#1680623
* Mon Apr 02 2018 Terje Rosten <terje.rosten@ntnu.no> - B.02.18-16
- Update to commit 20cda77

Loading…
Cancel
Save