From 40c64adcf084e9dc953d15a3caf7bdf9c98d7ab8 Mon Sep 17 00:00:00 2001 From: zyppe <210hcl@gmail.com> Date: Mon, 5 Feb 2024 14:46:39 +0800 Subject: [PATCH] Initialize for pciutils --- .gitignore | 2 + .pciutils.metadata | 2 + baselibs.conf | 7 + ...-Fixed-buffer-overflows-in-ls-tree.c.patch | 167 +++++ pciutils-3.1.9_pkgconfig.patch | 12 + pciutils-3.2.0_update-dist.patch | 40 ++ ...d-PCIe-5.0-data-rate-32-GT-s-support.patch | 33 + ...d-PCIe-6.0-data-rate-64-GT-s-support.patch | 32 + ...coding-of-vendor-specific-VPD-fields.patch | 52 ++ pciutils-VPD-Cleanup.patch | 47 ++ ...g-item-IDs-escape-non-ASCII-characte.patch | 57 ++ pciutils-add-decode-support-for-RCECs.patch | 420 +++++++++++++ pciutils-endianh.patch | 87 +++ pciutils-ocloexec.patch | 128 ++++ pciutils.changes | 594 ++++++++++++++++++ pciutils.keyring | 85 +++ pciutils.spec | 102 +++ 17 files changed, 1867 insertions(+) create mode 100644 .gitignore create mode 100644 .pciutils.metadata create mode 100644 baselibs.conf create mode 100644 lspci-Fixed-buffer-overflows-in-ls-tree.c.patch create mode 100644 pciutils-3.1.9_pkgconfig.patch create mode 100644 pciutils-3.2.0_update-dist.patch create mode 100644 pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch create mode 100644 pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch create mode 100644 pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch create mode 100644 pciutils-VPD-Cleanup.patch create mode 100644 pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch create mode 100644 pciutils-add-decode-support-for-RCECs.patch create mode 100644 pciutils-endianh.patch create mode 100644 pciutils-ocloexec.patch create mode 100644 pciutils.changes create mode 100644 pciutils.keyring create mode 100644 pciutils.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..906a0b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +pciutils-3.5.6.tar.sign +pciutils-3.5.6.tar.xz diff --git a/.pciutils.metadata b/.pciutils.metadata new file mode 100644 index 0000000..ab3736e --- /dev/null +++ b/.pciutils.metadata @@ -0,0 +1,2 @@ +24e4114efa4df3bb36ef54f4865ac5cfc4a3189533d2d24c7837568a2891ed59 pciutils-3.5.6.tar.sign +f2705b2623b5614906a250067ab69339fdcd9d8183a910a3cbf0b11299b53a79 pciutils-3.5.6.tar.xz diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..bc002fc --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,7 @@ +libpci3 + obsoletes "pciutils- < " + provides "pciutils- = " +pciutils-devel + requires -pciutils- + requires "libpci3- = " + diff --git a/lspci-Fixed-buffer-overflows-in-ls-tree.c.patch b/lspci-Fixed-buffer-overflows-in-ls-tree.c.patch new file mode 100644 index 0000000..f37c3b0 --- /dev/null +++ b/lspci-Fixed-buffer-overflows-in-ls-tree.c.patch @@ -0,0 +1,167 @@ +From 76d47191f9274991059a41e19e1999a12c0d3416 Mon Sep 17 00:00:00 2001 +From: Martin Mares +Date: Wed, 22 Jan 2020 09:49:18 +0100 +Subject: [PATCH] Fixed buffer overflows in ls-tree.c + +As reported in GitHub issue #24, tree dumping mode can smash the stack +if the hierarchy of buses is too deep. + +Increased line buffer size to 1024 and switched to use of snprintf +everywhere, so that in the worst case, the line is truncated. + +As snprintf can be problematic on obscure platforms, I wrapped it +in tree_printf(), so that we can add #ifdefs should problems arise. +--- + lib/sysdep.h | 2 ++ + ls-tree.c | 65 +++++++++++++++++++++++++++++++++++----------------- + 2 files changed, 47 insertions(+), 22 deletions(-) + +diff --git a/lib/sysdep.h b/lib/sysdep.h +index e525dc4..1a5cb16 100644 +--- a/lib/sysdep.h ++++ b/lib/sysdep.h +@@ -9,9 +9,11 @@ + #ifdef __GNUC__ + #define UNUSED __attribute__((unused)) + #define NONRET __attribute__((noreturn)) ++#define FORMAT_CHECK(x,y,z) __attribute__((format(x,y,z))) + #else + #define UNUSED + #define NONRET ++#define FORMAT_CHECK(x,y,z) + #define inline + #endif + +diff --git a/ls-tree.c b/ls-tree.c +index 6995dd2..aeb4087 100644 +--- a/ls-tree.c ++++ b/ls-tree.c +@@ -6,6 +6,7 @@ + * Can be freely distributed and used under the terms of the GNU GPL. + */ + ++#include + #include + #include + +@@ -167,6 +168,31 @@ + + static void show_tree_bridge(struct bridge *, char *, char *); + ++#define LINE_BUF_SIZE 1024 ++ ++static char * FORMAT_CHECK(printf, 3, 4) ++tree_printf(char *line, char *p, char *fmt, ...) ++{ ++ va_list args; ++ char *end = line + LINE_BUF_SIZE - 2; ++ ++ if (p >= end) ++ return p; ++ ++ va_start(args, fmt); ++ int res = vsnprintf(p, end - p, fmt, args); ++ if (res < 0) ++ { ++ /* Ancient C libraries return -1 on overflow */ ++ p += strlen(p); ++ } ++ else ++ p += res; ++ ++ va_end(args); ++ return p; ++} ++ + static void + show_tree_dev(struct device *d, char *line, char *p) + { +@@ -174,19 +200,19 @@ + struct bridge *b; + char namebuf[256]; + +- p += sprintf(p, "%02x.%x", q->dev, q->func); ++ p = tree_printf(line, p, "%02x.%x", q->dev, q->func); + for (b=&host_bridge; b; b=b->chain) + if (b->br_dev == d) + { + if (b->secondary == b->subordinate) +- p += sprintf(p, "-[%02x]-", b->secondary); ++ p = tree_printf(line, p, "-[%02x]-", b->secondary); + else +- p += sprintf(p, "-[%02x-%02x]-", b->secondary, b->subordinate); ++ p = tree_printf(line, p, "-[%02x-%02x]-", b->secondary, b->subordinate); + show_tree_bridge(b, line, p); + return; + } + if (verbose) +- p += sprintf(p, " %s", ++ p = tree_printf(line, p, " %s", + pci_lookup_name(pacc, namebuf, sizeof(namebuf), + PCI_LOOKUP_VENDOR | PCI_LOOKUP_DEVICE, + q->vendor_id, q->device_id)); +@@ -200,8 +226,7 @@ + print_it(line, p); + else if (!b->first_dev->next) + { +- *p++ = '-'; +- *p++ = '-'; ++ p = tree_printf(line, p, "--"); + show_tree_dev(b->first_dev, line, p); + } + else +@@ -209,25 +234,23 @@ + struct device *d = b->first_dev; + while (d->next) + { +- p[0] = '+'; +- p[1] = '-'; +- show_tree_dev(d, line, p+2); ++ char *p2 = tree_printf(line, p, "+-"); ++ show_tree_dev(d, line, p2); + d = d->next; + } +- p[0] = '\\'; +- p[1] = '-'; +- show_tree_dev(d, line, p+2); ++ p = tree_printf(line, p, "\\-"); ++ show_tree_dev(d, line, p); + } + } + + static void + show_tree_bridge(struct bridge *b, char *line, char *p) + { +- *p++ = '-'; ++ p = tree_printf(line, p, "-"); + if (!b->first_bus->sibling) + { + if (b == &host_bridge) +- p += sprintf(p, "[%04x:%02x]-", b->domain, b->first_bus->number); ++ p = tree_printf(line, p, "[%04x:%02x]-", b->domain, b->first_bus->number); + show_tree_bus(b->first_bus, line, p); + } + else +@@ -237,11 +260,11 @@ + + while (u->sibling) + { +- k = p + sprintf(p, "+-[%04x:%02x]-", u->domain, u->number); ++ k = tree_printf(line, p, "+-[%04x:%02x]-", u->domain, u->number); + show_tree_bus(u, line, k); + u = u->sibling; + } +- k = p + sprintf(p, "\\-[%04x:%02x]-", u->domain, u->number); ++ k = tree_printf(line, p, "\\-[%04x:%02x]-", u->domain, u->number); + show_tree_bus(u, line, k); + } + } +@@ -249,7 +272,7 @@ + void + show_forest(void) + { +- char line[256]; ++ char line[LINE_BUF_SIZE]; + + grow_tree(); + show_tree_bridge(&host_bridge, line, line); diff --git a/pciutils-3.1.9_pkgconfig.patch b/pciutils-3.1.9_pkgconfig.patch new file mode 100644 index 0000000..6413f2c --- /dev/null +++ b/pciutils-3.1.9_pkgconfig.patch @@ -0,0 +1,12 @@ +Index: pciutils-3.3.1/lib/libpci.pc.in +=================================================================== +--- pciutils-3.3.1.orig/lib/libpci.pc.in ++++ pciutils-3.3.1/lib/libpci.pc.in +@@ -6,6 +6,5 @@ idsdir=@IDSDIR@ + Name: libpci + Description: libpci + Version: @VERSION@ +-Libs: -L${libdir} -lpci ++Libs: -lpci @LDLIBS@ + Libs.private: @LDLIBS@ +-Cflags: -I${includedir} diff --git a/pciutils-3.2.0_update-dist.patch b/pciutils-3.2.0_update-dist.patch new file mode 100644 index 0000000..5a8046d --- /dev/null +++ b/pciutils-3.2.0_update-dist.patch @@ -0,0 +1,40 @@ +Index: pciutils-3.3.1/Makefile +=================================================================== +--- pciutils-3.3.1.orig/Makefile ++++ pciutils-3.3.1/Makefile +@@ -88,7 +88,7 @@ lspci: LDLIBS+=$(LIBKMOD_LIBS) + ls-kernel.o: CFLAGS+=$(LIBKMOD_CFLAGS) + + update-pciids: update-pciids.sh +- sed <$< >$@ "s@^DEST=.*@DEST=$(IDSDIR)/$(PCI_IDS)@;s@^PCI_COMPRESSED_IDS=.*@PCI_COMPRESSED_IDS=$(PCI_COMPRESSED_IDS)@" ++ sed <$< >$@ "s@^DEST=.*@DEST=$(IDSDIR)/pci.ids.d/pci.ids.dist@;s@^PCI_COMPRESSED_IDS=.*@PCI_COMPRESSED_IDS=@" + chmod +x $@ + + # The example of use of libpci +Index: pciutils-3.3.1/update-pciids.sh +=================================================================== +--- pciutils-3.3.1.orig/update-pciids.sh ++++ pciutils-3.3.1/update-pciids.sh +@@ -4,7 +4,7 @@ + + set -e + SRC="http://pci-ids.ucw.cz/v2.2/pci.ids" +-DEST=pci.ids ++DEST=pci.ids.d/pci.ids.dist + PCI_COMPRESSED_IDS= + GREP=grep + +@@ -66,6 +66,13 @@ fi + mv $DEST.neww $DEST + rm $DEST.new + ++if [ -x /usr/bin/merge-pciids -a -x /usr/bin/perl ]; then ++ merge-pciids ++else ++ echo "WARNING: merge-pciids or perl missing" ++ cp -p $DEST /usr/share/pci.ids ++fi ++ + # Older versions did not compress the ids file, so let's make sure we + # clean that up. + if [ ${DEST%.gz} != ${DEST} ] ; then diff --git a/pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch b/pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch new file mode 100644 index 0000000..2e6b0c5 --- /dev/null +++ b/pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch @@ -0,0 +1,33 @@ +From caca31a0eea41c7b051705704c1158fddc02fbd2 Mon Sep 17 00:00:00 2001 +From: Gustavo Pimentel +Date: Tue, 4 Jun 2019 18:24:46 +0200 +Subject: [PATCH] lspci: Add PCIe 5.0 data rate (32 GT/s) support + +This enables "lspci" to show PCIe 5.0 data rate (32 GT/s) properly +according to the contents in register PCI_EXP_LNKCAP, PCI_EXP_LNKSTA +and PCI_EXP_LNKCTL2. + +Signed-off-by: Gustavo Pimentel + +Index: pciutils-3.5.6/ls-caps.c +=================================================================== +--- pciutils-3.5.6.orig/ls-caps.c ++++ pciutils-3.5.6/ls-caps.c +@@ -728,6 +728,8 @@ static char *link_speed(int speed) + return "8GT/s"; + case 4: + return "16GT/s"; ++ case 5: ++ return "32GT/s"; + default: + return "unknown"; + } +@@ -1059,6 +1061,8 @@ static const char *cap_express_link2_spe + return "8GT/s"; + case 4: + return "16GT/s"; ++ case 5: ++ return "32GT/s"; + default: + return "Unknown"; + } diff --git a/pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch b/pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch new file mode 100644 index 0000000..a95eb28 --- /dev/null +++ b/pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch @@ -0,0 +1,32 @@ +From 5bdf63b6b1bc35b59c4b3f47f7ca83ca1868155b Mon Sep 17 00:00:00 2001 +From: Gustavo Pimentel +Date: Wed, 18 Nov 2020 23:56:52 +0100 +Subject: [PATCH] lspci: Add PCIe 6.0 data rate (64 GT/s) support + +This enables "lspci" to show PCIe 6.0 data rate (64 GT/s) properly +according to the contents in register PCI_EXP_LNKCAP, PCI_EXP_LNKSTA +and PCI_EXP_LNKCTL2. + +Signed-off-by: Gustavo Pimentel +Index: pciutils-3.5.6/ls-caps.c +=================================================================== +--- pciutils-3.5.6.orig/ls-caps.c ++++ pciutils-3.5.6/ls-caps.c +@@ -730,6 +730,8 @@ static char *link_speed(int speed) + return "16GT/s"; + case 5: + return "32GT/s"; ++ case 6: ++ return "64GT/s"; + default: + return "unknown"; + } +@@ -1063,6 +1065,8 @@ static const char *cap_express_link2_spe + return "16GT/s"; + case 5: + return "32GT/s"; ++ case 6: ++ return "64GT/s"; + default: + return "Unknown"; + } diff --git a/pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch b/pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch new file mode 100644 index 0000000..df606be --- /dev/null +++ b/pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch @@ -0,0 +1,52 @@ +From eff7cc9ee7f8b6efeb7d5854abbcfb8cdc486a95 Mon Sep 17 00:00:00 2001 +From: "return.0" +Date: Mon, 18 Jun 2018 17:00:31 -0500 +Subject: [PATCH] pciutils: Add decoding of vendor specific VPD fields + +References: bsc#1170554 ltc#185587 +Upstream: v3.6.0 +Git-commit: eff7cc9ee7f8b6efeb7d5854abbcfb8cdc486a95 + +IBM has defined several VPD fields that are not part of the PCI +spec, but are frequently used on embedded and pluggable pcie +adapters. + +Since these fields are "Unknown", they are listed in hex +and less readable. + +This patch adds commonly used vendor specific VPD keywords +described in "Table 160. LoPAPR VPD Fields" of the Linux on Power +Architecture Platform Reference (LoPAPR). + +Signed-off-by: John Walthour +--- + ls-vpd.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/ls-vpd.c b/ls-vpd.c +index b79abfc..cc279c3 100644 +--- a/ls-vpd.c ++++ b/ls-vpd.c +@@ -41,6 +41,19 @@ static const struct vpd_item { + { 'Y','A', F_TEXT, "Asset tag" }, + { 'V', 0 , F_TEXT, "Vendor specific" }, + { 'Y', 0 , F_TEXT, "System specific" }, ++/* ++ * The following VPD keywords are vendor specific or not part of any ++ * current PCI-SIG specification ++ */ ++ { 'C','C', F_TEXT, "CCIN" }, ++ { 'F','C', F_TEXT, "Feature code" }, ++ { 'F','N', F_TEXT, "FRU" }, ++ { 'N','A', F_TEXT, "Network address" }, ++ { 'R','M', F_TEXT, "Firmware version" }, ++ { 'Z', 0 , F_TEXT, "Product specific" }, ++/* ++ * End vendor specific VPD keywords ++ */ + { 0, 0 , F_BINARY, "Unknown" } + }; + +-- +2.26.2 + diff --git a/pciutils-VPD-Cleanup.patch b/pciutils-VPD-Cleanup.patch new file mode 100644 index 0000000..4c6adda --- /dev/null +++ b/pciutils-VPD-Cleanup.patch @@ -0,0 +1,47 @@ +From d9b702cde8550b245defa130f3d93a5b34ae68d7 Mon Sep 17 00:00:00 2001 +From: Martin Mares +Date: Tue, 19 Jun 2018 11:44:42 +0200 +Subject: [PATCH] VPD: Cleanup + +References: bsc#1170554 ltc#185587 +Upstream: v3.6.0 +Git-commit: d9b702cde8550b245defa130f3d93a5b34ae68d7 + +--- + ls-vpd.c | 20 +++++++------------- + 1 file changed, 7 insertions(+), 13 deletions(-) + +diff --git a/ls-vpd.c b/ls-vpd.c +index cc279c3..37217f0 100644 +--- a/ls-vpd.c ++++ b/ls-vpd.c +@@ -41,19 +41,13 @@ static const struct vpd_item { + { 'Y','A', F_TEXT, "Asset tag" }, + { 'V', 0 , F_TEXT, "Vendor specific" }, + { 'Y', 0 , F_TEXT, "System specific" }, +-/* +- * The following VPD keywords are vendor specific or not part of any +- * current PCI-SIG specification +- */ +- { 'C','C', F_TEXT, "CCIN" }, +- { 'F','C', F_TEXT, "Feature code" }, +- { 'F','N', F_TEXT, "FRU" }, +- { 'N','A', F_TEXT, "Network address" }, +- { 'R','M', F_TEXT, "Firmware version" }, +- { 'Z', 0 , F_TEXT, "Product specific" }, +-/* +- * End vendor specific VPD keywords +- */ ++ /* Non-standard extensions */ ++ { 'C','C', F_TEXT, "CCIN" }, ++ { 'F','C', F_TEXT, "Feature code" }, ++ { 'F','N', F_TEXT, "FRU" }, ++ { 'N','A', F_TEXT, "Network address" }, ++ { 'R','M', F_TEXT, "Firmware version" }, ++ { 'Z', 0 , F_TEXT, "Product specific" }, + { 0, 0 , F_BINARY, "Unknown" } + }; + +-- +2.26.2 + diff --git a/pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch b/pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch new file mode 100644 index 0000000..449df4e --- /dev/null +++ b/pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch @@ -0,0 +1,57 @@ +From 726b641b0dd842b920f7e1c985cb4a22494fe466 Mon Sep 17 00:00:00 2001 +From: Martin Mares +Date: Sat, 25 Jan 2020 20:42:03 +0100 +Subject: [PATCH] VPD: When printing item IDs, escape non-ASCII characters + +References: bsc#1170554 ltc#185587 +Upstream: v3.6.4 +Git-commit: 726b641b0dd842b920f7e1c985cb4a22494fe466 + +--- + ls-vpd.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/ls-vpd.c b/ls-vpd.c +index 37217f0..92627e4 100644 +--- a/ls-vpd.c ++++ b/ls-vpd.c +@@ -10,6 +10,7 @@ + */ + + #include ++#include + + #include "lspci.h" + +@@ -156,13 +157,14 @@ cap_vpd(struct device *d) + { + word read_len; + const struct vpd_item *item; +- byte id1, id2; ++ byte id[2], id1, id2; + + if (!read_vpd(d, res_addr + part_pos, buf, 3, &csum)) + break; + part_pos += 3; +- id1 = buf[0]; +- id2 = buf[1]; ++ memcpy(id, buf, 2); ++ id1 = id[0]; ++ id2 = id[1]; + part_len = buf[2]; + if (part_len > res_len - part_pos) + break; +@@ -178,7 +180,9 @@ cap_vpd(struct device *d) + if (!read_vpd(d, res_addr + part_pos, buf, read_len, &csum)) + break; + +- printf("\t\t\t[%c%c] %s: ", id1, id2, item->name); ++ printf("\t\t\t["); ++ print_vpd_string(id, 2); ++ printf("] %s: ", item->name); + + switch (item->format) + { +-- +2.26.2 + diff --git a/pciutils-add-decode-support-for-RCECs.patch b/pciutils-add-decode-support-for-RCECs.patch new file mode 100644 index 0000000..3d72398 --- /dev/null +++ b/pciutils-add-decode-support-for-RCECs.patch @@ -0,0 +1,420 @@ +Index: pciutils-3.5.6/lib/header.h +=================================================================== +--- pciutils-3.5.6.orig/lib/header.h 2017-04-29 20:05:07.000000000 +0200 ++++ pciutils-3.5.6/lib/header.h 2020-10-29 09:31:24.947599754 +0100 +@@ -216,7 +216,7 @@ + #define PCI_EXT_CAP_ID_PB 0x04 /* Power Budgeting */ + #define PCI_EXT_CAP_ID_RCLINK 0x05 /* Root Complex Link Declaration */ + #define PCI_EXT_CAP_ID_RCILINK 0x06 /* Root Complex Internal Link Declaration */ +-#define PCI_EXT_CAP_ID_RCECOLL 0x07 /* Root Complex Event Collector */ ++#define PCI_EXT_CAP_ID_RCEC 0x07 /* Root Complex Event Collector */ + #define PCI_EXT_CAP_ID_MFVC 0x08 /* Multi-Function Virtual Channel */ + #define PCI_EXT_CAP_ID_VC2 0x09 /* Virtual Channel (2nd ID) */ + #define PCI_EXT_CAP_ID_RBCB 0x0a /* Root Bridge Control Block */ +@@ -1007,6 +1007,12 @@ + #define PCI_RCLINK_LINK_ADDR 8 /* Link Entry: Address (64-bit) */ + #define PCI_RCLINK_LINK_SIZE 16 /* Link Entry: sizeof */ + ++/* Root Complex Event Collector Endpoint Association */ ++#define PCI_RCEC_EP_CAP_VER(reg) (((reg) >> 16) & 0xf) ++#define PCI_RCEC_BUSN_REG_VER 0x02 /* as per PCIe sec 7.9.10.1 */ ++#define PCI_RCEC_RCIEP_BMAP 0x0004 /* as per PCIe sec 7.9.10.2 */ ++#define PCI_RCEC_BUSN_REG 0x0008 /* as per PCIe sec 7.9.10.3 */ ++ + /* PCIe Vendor-Specific Capability */ + #define PCI_EVNDR_HEADER 4 /* Vendor-Specific Header */ + #define PCI_EVNDR_REGISTERS 8 /* Vendor-Specific Registers */ +Index: pciutils-3.5.6/ls-ecaps.c +=================================================================== +--- pciutils-3.5.6.orig/ls-ecaps.c 2017-04-29 20:05:07.000000000 +0200 ++++ pciutils-3.5.6/ls-ecaps.c 2020-10-29 09:31:24.947599754 +0100 +@@ -650,6 +650,61 @@ cap_l1pm(struct device *d, int where) + } + + static void ++cap_rcec(struct device *d, int where) ++{ ++ printf("Root Complex Event Collector Endpoint Association\n"); ++ if (verbose < 2) ++ return; ++ ++ if (!config_fetch(d, where, 12)) ++ return; ++ ++ u32 hdr = get_conf_long(d, where); ++ byte cap_ver = PCI_RCEC_EP_CAP_VER(hdr); ++ u32 bmap = get_conf_long(d, where + PCI_RCEC_RCIEP_BMAP); ++ printf("\t\tRCiEPBitmap: "); ++ if (bmap) ++ { ++ int prevmatched=0; ++ int adjcount=0; ++ int prevdev=0; ++ printf("RCiEP at Device(s):"); ++ for (int dev=0; dev < 32; dev++) ++ { ++ if (BITS(bmap, dev, 1)) ++ { ++ if (!adjcount) ++ printf("%s %u", (prevmatched) ? "," : "", dev); ++ adjcount++; ++ prevdev=dev; ++ prevmatched=1; ++ } ++ else ++ { ++ if (adjcount > 1) ++ printf("-%u", prevdev); ++ adjcount=0; ++ } ++ } ++ } ++ else ++ printf("%s", (verbose > 2) ? "00000000 [none]" : "[none]"); ++ printf("\n"); ++ ++ if (cap_ver < PCI_RCEC_BUSN_REG_VER) ++ return; ++ ++ u32 busn = get_conf_long(d, where + PCI_RCEC_BUSN_REG); ++ u8 lastbusn = BITS(busn, 16, 8); ++ u8 nextbusn = BITS(busn, 8, 8); ++ ++ if ((lastbusn == 0x00) && (nextbusn == 0xff)) ++ printf("\t\tAssociatedBusNumbers: %s\n", (verbose > 2) ? "ff-00 [none]" : "[none]"); ++ else ++ printf("\t\tAssociatedBusNumbers: %02x-%02x\n", nextbusn, lastbusn ); ++} ++ ++static void + cap_ptm(struct device *d, int where) + { + u32 buff; +@@ -759,8 +814,8 @@ show_ext_caps(struct device *d, int type + case PCI_EXT_CAP_ID_RCILINK: + printf("Root Complex Internal Link \n"); + break; +- case PCI_EXT_CAP_ID_RCECOLL: +- printf("Root Complex Event Collector \n"); ++ case PCI_EXT_CAP_ID_RCEC: ++ cap_rcec(d, where); + break; + case PCI_EXT_CAP_ID_MFVC: + printf("Multi-Function Virtual Channel \n"); +Index: pciutils-3.5.6/setpci.c +=================================================================== +--- pciutils-3.5.6.orig/setpci.c 2016-10-03 21:49:09.000000000 +0200 ++++ pciutils-3.5.6/setpci.c 2020-10-29 09:34:12.540466140 +0100 +@@ -293,7 +293,7 @@ static const struct reg_name pci_reg_nam + { 0x20004, 0, 0, "ECAP_PB" }, + { 0x20005, 0, 0, "ECAP_RCLINK" }, + { 0x20006, 0, 0, "ECAP_RCILINK" }, +- { 0x20007, 0, 0, "ECAP_RCECOLL" }, ++ { 0x20007, 0, 0, "ECAP_RCEC" }, + { 0x20008, 0, 0, "ECAP_MFVC" }, + { 0x2000a, 0, 0, "ECAP_RBCB" }, + { 0x2000b, 0, 0, "ECAP_VNDR" }, +Index: pciutils-3.5.6/tests/cap-rcec +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ pciutils-3.5.6/tests/cap-rcec 2020-10-29 09:31:24.947599754 +0100 +@@ -0,0 +1,299 @@ ++6a:00.4 Generic system peripheral [0807]: Intel Corporation Device 0b23 ++ Subsystem: Intel Corporation Device 0000 ++ Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- ++ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- +-#define cpu_to_le16 __cpu_to_le16 +-#define cpu_to_le32 __cpu_to_le32 +-#define le16_to_cpu __le16_to_cpu +-#define le32_to_cpu __le32_to_cpu +- +-#else +- +-#ifdef PCI_OS_LINUX + #include +-#define BYTE_ORDER __BYTE_ORDER +-#define BIG_ENDIAN __BIG_ENDIAN +-#endif +- +-#ifdef PCI_OS_SUNOS +-#include +-#if defined(__i386) && defined(LITTLE_ENDIAN) +-# define BYTE_ORDER LITTLE_ENDIAN +-#elif defined(__sparc) && defined(BIG_ENDIAN) +-# define BYTE_ORDER BIG_ENDIAN +-#else +-#define BIG_ENDIAN 4321 +-#endif +-#ifndef BYTE_ORDER +-#ifdef _LITTLE_ENDIAN +-#define BYTE_ORDER 1234 +-#else +-#define BYTE_ORDER 4321 +-#endif +-#endif /* BYTE_ORDER */ +-#endif /* PCI_OS_SUNOS */ +- +-#ifdef PCI_OS_WINDOWS +-#ifdef __MINGW32__ +- #include +-#else +- #include +- #define BIG_ENDIAN 4321 +- #define LITTLE_ENDIAN 1234 +- #define BYTE_ORDER LITTLE_ENDIAN +- #define snprintf _snprintf +-#endif +-#endif +- +-#if BYTE_ORDER == BIG_ENDIAN +-#define cpu_to_le16 swab16 +-#define cpu_to_le32 swab32 +-#define le16_to_cpu swab16 +-#define le32_to_cpu swab32 +- +-static inline word swab16(word w) +-{ +- return (w << 8) | ((w >> 8) & 0xff); +-} +- +-static inline u32 swab32(u32 w) +-{ +- return ((w & 0xff000000) >> 24) | +- ((w & 0x00ff0000) >> 8) | +- ((w & 0x0000ff00) << 8) | +- ((w & 0x000000ff) << 24); +-} +-#else +-#define cpu_to_le16(x) (x) +-#define cpu_to_le32(x) (x) +-#define le16_to_cpu(x) (x) +-#define le32_to_cpu(x) (x) +-#endif + +-#endif ++#define cpu_to_le16 htole16 ++#define cpu_to_le32 htole32 ++#define le16_to_cpu le16toh ++#define le32_to_cpu le32toh diff --git a/pciutils-ocloexec.patch b/pciutils-ocloexec.patch new file mode 100644 index 0000000..96881c0 --- /dev/null +++ b/pciutils-ocloexec.patch @@ -0,0 +1,128 @@ +Index: pciutils-3.4.0/lib/dump.c +=================================================================== +--- pciutils-3.4.0.orig/lib/dump.c ++++ pciutils-3.4.0/lib/dump.c +@@ -64,7 +64,7 @@ dump_init(struct pci_access *a) + + if (!name) + a->error("dump: File name not given."); +- if (!(f = fopen(name, "r"))) ++ if (!(f = fopen(name, "re"))) + a->error("dump: Cannot open %s: %s", name, strerror(errno)); + while (fgets(buf, sizeof(buf)-1, f)) + { +Index: pciutils-3.4.0/lib/names-cache.c +=================================================================== +--- pciutils-3.4.0.orig/lib/names-cache.c ++++ pciutils-3.4.0/lib/names-cache.c +@@ -63,7 +63,7 @@ pci_id_cache_load(struct pci_access *a, + return 0; + } + +- f = fopen(name, "rb"); ++ f = fopen(name, "rbe"); + if (!f) + { + a->debug("Cache file does not exist\n"); +@@ -136,7 +136,7 @@ pci_id_cache_flush(struct pci_access *a) + tmpname = pci_malloc(a, strlen(name) + strlen(hostname) + 64); + sprintf(tmpname, "%s.tmp-%s-%d", name, hostname, this_pid); + +- f = fopen(tmpname, "wb"); ++ f = fopen(tmpname, "wbe"); + if (!f) + { + a->warning("Cannot write to %s: %s", name, strerror(errno)); +Index: pciutils-3.4.0/lib/names-parse.c +=================================================================== +--- pciutils-3.4.0.orig/lib/names-parse.c ++++ pciutils-3.4.0/lib/names-parse.c +@@ -52,7 +52,7 @@ static pci_file pci_open(struct pci_acce + typedef FILE * pci_file; + #define pci_gets(f, l, s) fgets(l, s, f) + #define pci_eof(f) feof(f) +-#define pci_open(a) fopen(a->id_file_name, "r") ++#define pci_open(a) fopen(a->id_file_name, "re") + #define pci_close(f) fclose(f) + #define PCI_ERROR(f, err) if (!err && ferror(f)) err = "I/O error"; + #endif +Index: pciutils-3.4.0/lib/proc.c +=================================================================== +--- pciutils-3.4.0.orig/lib/proc.c ++++ pciutils-3.4.0/lib/proc.c +@@ -62,7 +62,7 @@ proc_scan(struct pci_access *a) + + if (snprintf(buf, sizeof(buf), "%s/devices", pci_get_param(a, "proc.path")) == sizeof(buf)) + a->error("File name too long"); +- f = fopen(buf, "r"); ++ f = fopen(buf, "re"); + if (!f) + a->error("Cannot open %s", buf); + while (fgets(buf, sizeof(buf)-1, f)) +@@ -129,7 +129,7 @@ proc_setup(struct pci_dev *d, int rw) + if (e < 0 || e >= (int) sizeof(buf)) + a->error("File name too long"); + a->fd_rw = a->writeable || rw; +- a->fd = open(buf, a->fd_rw ? O_RDWR : O_RDONLY); ++ a->fd = open(buf, (a->fd_rw ? O_RDWR : O_RDONLY) | O_CLOEXEC); + if (a->fd < 0) + { + e = snprintf(buf, sizeof(buf), "%s/%04x:%02x/%02x.%d", +@@ -137,7 +137,7 @@ proc_setup(struct pci_dev *d, int rw) + d->domain, d->bus, d->dev, d->func); + if (e < 0 || e >= (int) sizeof(buf)) + a->error("File name too long"); +- a->fd = open(buf, a->fd_rw ? O_RDWR : O_RDONLY); ++ a->fd = open(buf, (a->fd_rw ? O_RDWR : O_RDONLY) | O_CLOEXEC); + } + if (a->fd < 0) + a->warning("Cannot open %s", buf); +Index: pciutils-3.4.0/lib/sysfs.c +=================================================================== +--- pciutils-3.4.0.orig/lib/sysfs.c ++++ pciutils-3.4.0/lib/sysfs.c +@@ -96,7 +96,7 @@ sysfs_get_string(struct pci_dev *d, char + void (*warn)(char *msg, ...) = (mandatory ? a->error : a->warning); + + sysfs_obj_name(d, object, namebuf); +- fd = open(namebuf, O_RDONLY); ++ fd = open(namebuf, O_RDONLY|O_CLOEXEC); + if (fd < 0) + { + if (mandatory || errno != ENOENT) +@@ -139,7 +139,7 @@ sysfs_get_resources(struct pci_dev *d) + int i; + + sysfs_obj_name(d, "resource", namebuf); +- file = fopen(namebuf, "r"); ++ file = fopen(namebuf, "re"); + if (!file) + a->error("Cannot open %s: %s", namebuf, strerror(errno)); + for (i = 0; i < 7; i++) +@@ -245,7 +245,7 @@ sysfs_fill_slots(struct pci_access *a) + n = snprintf(namebuf, OBJNAMELEN, "%s/%s/%s", dirname, entry->d_name, "address"); + if (n < 0 || n >= OBJNAMELEN) + a->error("File name too long"); +- file = fopen(namebuf, "r"); ++ file = fopen(namebuf, "re"); + /* + * Old versions of Linux had a fakephp which didn't have an 'address' + * file. There's no useful information to be gleaned from these +@@ -331,7 +331,7 @@ sysfs_setup(struct pci_dev *d, int inten + if (a->fd_vpd < 0) + { + sysfs_obj_name(d, "vpd", namebuf); +- a->fd_vpd = open(namebuf, O_RDONLY); ++ a->fd_vpd = open(namebuf, O_RDONLY|O_CLOEXEC); + /* No warning on error; vpd may be absent or accessible only to root */ + } + return a->fd_vpd; +@@ -341,7 +341,7 @@ sysfs_setup(struct pci_dev *d, int inten + { + sysfs_obj_name(d, "config", namebuf); + a->fd_rw = a->writeable || intent == SETUP_WRITE_CONFIG; +- a->fd = open(namebuf, a->fd_rw ? O_RDWR : O_RDONLY); ++ a->fd = open(namebuf, (a->fd_rw ? O_RDWR : O_RDONLY) | O_CLOEXEC); + if (a->fd < 0) + a->warning("Cannot open %s", namebuf); + a->fd_pos = 0; diff --git a/pciutils.changes b/pciutils.changes new file mode 100644 index 0000000..fb673c2 --- /dev/null +++ b/pciutils.changes @@ -0,0 +1,594 @@ +* Wed Oct 4 2023 psimons@suse.com +- Apply "lspci-Fixed-buffer-overflows-in-ls-tree.c.patch" to fix a + buffer overflow error that would cause lspci to crash on systems + with complex topologies. [bsc#1215265] +- Add "pciutils.keyring" so that the tarball's signature can be + verified at build time. +- Use "%%license" tag instead of "%%doc" to install the package's + license file. +* Mon Jan 24 2022 vliaskovitis@suse.com +- Add pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch + Add pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch + (bsc#1192862) +* Thu Oct 29 2020 pgajdos@suse.com +- Add decode support for RCECs [jsc#SLE-13735] +- added patches + https://github.com/pciutils/pciutils/commit/e12bd01eea67ca8cf539263124843ba281eb6ecc + + pciutils-add-decode-support-for-RCECs.patch +* Thu May 21 2020 msuchanek@suse.com +- Fix lspci outputs few of the VPD data fields are displayed as unknown (bsc#1170554, ltc#185587). + Added: + * pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch + * pciutils-VPD-Cleanup.patch + * pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch +* Sun Nov 19 2017 aavindraa@gmail.com +- Update to version 3.5.6 + * MN VPD keyword is decoded correctly. + * As usual, updated pci.ids to the current snapshot of the + database. + * FreeBSD back-end: read-only access for non-root, support + DragonFly BSD, support extended config space. +* Sat Nov 11 2017 aavindraa@gmail.com +- Update to version 3.5.5 + * Better decoding of AER capability. + * "Slot Implemented" flag is decoded for PCI/PCI-X to PCIe bridges. + * Minor fixes of decoding other capabilities. + * As usual, updated pci.ids to the current snapshot of the + database. +- cleanup with spec-cleaner +- switch from ftp to https +- track signature +* Mon Feb 27 2017 mpluskal@suse.com +- Update to version 3.5.4: + * Previous version broke compilation on systems, for which + lib/types.h did not provide a 64-bit integer type. It is + provided everywhere now. +- Changes for version 3.5.3: + * When lspci looks for Linux kernel modules, it uses the default + path to module directory provided by libkmod. Previously, + it tried to construct the path explicitly, which need not + work on all systems. + * Improved formatting of memory and I/O ranges behind a bridge. + * PCIe link capabilities now display GEN4 speed (16GT/s). + * PCIe device capabilities now show bits related to atomic + operations. +- Changes for version 3.5.2: + * The L1 power management capability is now decoded more + thoroughly. Thanks to Rajat Jain for the patch. + * The table of configuration registers used by setpci + had a bug in the definition of SUBSYSTEM_VENDOR_ID. +* Wed May 25 2016 mpluskal@suse.com +- Update to version 3.5.1: + * Fixed symbol versioning of pci_init(). +* Fri May 20 2016 mpluskal@suse.com +- Update to version 3.5.0: + * New capabilities decoded: Downstream Port Containment, + Precision Time Measurement. Thanks to Keith Busch and + Jonathan Yong. + * Domain numbers extended to 31 bits. This will be used by the + Linux kernel on some machines in near future. + * Enhanced allocation regions are now decoded on Linux. + * The NetBSD back-end supports PCIe extended configuration space. + * Updated pci.ids to the current snapshot of the database. +* Fri Jan 8 2016 tchvatal@suse.com +- Version update to 3.4.1: + * New capabilities decoded: Process Address Space, Page Request + Interface, Enhanced Allocation. Thanks to David Daney and + David Woodhouse. + * DevCap SlotPowerLimit is now decoded for all components with + upstream ports. +* Sat Nov 21 2015 jengelh@inai.de +- Summary update +* Fri Nov 13 2015 mpluskal@suse.com +- Update to 3.4.0 + * On Linux, we report NUMA nodes of devices. + * The sysfs back-end does not die on read errors + of optional attributes. Instead, a warning is produced. + * Fixed several minor bugs. + * Updated pci.ids to the current snapshot of the database. +* Sun Sep 6 2015 mpluskal@suse.com +- Update to 3.3.1 + * Removed hacks for backward compatibility with Linux libc5, + which were breaking newer non-glibc Linux systems. Thanks + to Felix Janda. + * Display VirtIO vendor-specific capability. Patch by Gerd + Hoffmann. + * Fixed memory leak in name cache. + * Updated pci.ids to the current snapshot of the database. +* Tue Nov 18 2014 tchvatal@suse.com +- Version bump to 3.3.0: + * Device names exported by BIOS are displayed on Linux. + * On Linux systems, HWDB is used to look up device names + when our ID database gives no match. (More precisely, + HWDB is consulted after local pci.ids, but before using + network to query online pci.ids.) Thanks to Tom Gundersen + for the initial patch. + * Added experimental back-end for OS X / Darwin. Thanks to + Richard Yao for providing it. + * Filters now support matching by device class. Original + patch by Matthew Wilcox, wrappers for ABI compatibility + by me. + * Interrupt Pin and Interrupt Line registers are displayed + for bridge devices, too. + * Several portability bugs have been fixed. + * Several typos have been fixed. Also, use of questionable + constructs in man pages has been reduced. + * PCIe link capabilities now include the ASPMOptComp bit. + * The "CRS Software Visibility" bit is now decoded properly. + * Updated pci.ids to the current snapshot of the database. +- Refresh patch: + * pciutils-endianh.patch +* Mon Aug 18 2014 fcrozat@suse.com +- Add obsoletes/provides to baselibs.conf. +* Tue May 13 2014 tchvatal@suse.com +- Remove COPYING from obs it is in tarball directly +- Version bump to 3.2.1: + * CardBus bridge capabilities are displayed. + * PCIe L1 PM substates are decoded. + * Various bugs were fixed in decoding of PCIe capabilities. + * The sysfs back-end does not spit out unnecessary warnings when + empty slots report only a partial device address. This actually + happens on IBM pSeries. + * Updated pci.ids to the today's snapshot of the database. +- Cleanup with spec-cleaner +* Tue Jul 30 2013 sweet_f_a@gmx.de +- Update to 3.2.0 + * On newer Linux systems, we use libkmod to look up kernel + modules (modules.pcimap no longer exists.) To facilitate this, + libpci is able to look up module aliases in sysfs. + * Various minor bug fixes. + * Updated pci.ids to the today's snapshot of the database. +- Update to 3.1.10 + * Decoding of LTR/OBFF in PCIe capabilities. + * Various minor bug fixes. + * Updated pci.ids to the today's snapshot of the database. +- rebase patches +- require libkmod +* Mon Apr 15 2013 idonmez@suse.com +- Add Source URL, see https://en.opensuse.org/SourceUrls +* Mon Dec 31 2012 crrodriguez@opensuse.org +- pciutils-endianh.patch Use the documented/optimized byteswapping + routines from endian.h +* Sun Mar 18 2012 jengelh@medozas.de +- Shared library policy: new subpackage libpci3 +* Sun Jan 29 2012 tabraham@novell.com +- Update to 3.1.9 + * Whereever we mention the PCI ID database, we now refer to + http://pci-ids.ucw.cz/ and the sf.net site is mentioned only + as a mirror. This includes update-pciids. + * Decode PCIe Gen 3 speeds and link status fields + * various minor bug fixes + * Updated pci.ids to the 2012-01-14 snapshot of the database +- Update to 3.1.8 + * More capabilities: Transaction Processing Hints, Latency + Tolerance Reporting. Thanks to Jesse Barnes. + * Added BeOS and Haiku ports. Contributed by Francois Revol. + * pciutils.pc now uses Libs.private properly. + * When we format a name and it does not fit in the buffer, we + truncate it instead of returning "buffer too small" instead. + This works on all platforms with sane (i.e., C99-compatible) + snprintf(). + * various minor bug fixes +* Mon Nov 14 2011 crrodriguez@opensuse.org +- open all file descriptors with O_CLOEXEC,specially important + on libpci and calling apps may fork() and we end up leaking + information to child processes. +* Mon Mar 21 2011 coolo@novell.com +- licenses package is about to die +* Mon Jun 28 2010 jengelh@medozas.de +- use %%_smp_mflags +* Sat Apr 24 2010 coolo@novell.com +- buildrequire pkg-config to fix provides +* Thu Feb 25 2010 anicka@suse.cz +- update to 3.1.7 + * Minor improvements and bug fixes in decoding of the Virtual Channel + capability. + * Released as 3.1.6. + * More capabilities decoded: Virtual Channel (except arbitration + tables), Root Complex Link, Vendor-Specific (header only), SATA HBA. + * All extended capabilities have their version displayed (-vv or more). +* Mon Feb 1 2010 jengelh@medozas.de +- package baselibs.conf +* Fri Jan 22 2010 anicka@suse.cz +- update to 1.3.5 + * Updated pci.ids to the today's snapshot of the database. + * When scanning extended capabilities, properly mask the lowest 2 bits, + which are currently reserved. This avoids unaligned access errors on + broken hardware (see tests/broken-ecaps). + * Large bar sizes are displayed in human-readable format (with units). + * Physical slot information is displayed correctly for multi-function cards. + * Fixed a couple of typos everywhere. + * Library: Fixed bugs in freeing of capabilities. + * Windows back-end compiles again. +* Tue Dec 15 2009 jengelh@medozas.de +- enable parallel building +* Thu Dec 10 2009 anicka@suse.cz +- update to 3.1.4 + * Updated pci.ids to the today's snapshot of the database. + * Fixed memory and file descriptor leak in the dump back-end. + * The SR-IOV capability decoder now prints the VF BAR's. + * On request of certain company's lawyers, we now include a copy + of the GPL with our package. It seems that the pciutils are getting + mature if the most important bug of the month was this one ;-) +* Tue Nov 3 2009 coolo@novell.com +- updated patches to apply with fuzz=0 +* Fri Aug 14 2009 anicka@suse.cz +- add COPYING file to fix (bnc#518238) +- fix last patch +* Mon Aug 10 2009 anicka@suse.cz +- add fclose to dump_init (bnc#529469) +* Mon Aug 3 2009 anicka@suse.cz +- update to 3.1.3 + * The VPD parser now reports unknown and vendor-defined items + properly. It also stops on any item in unknown format, + avoiding long output on bogus VPD data. + * The MSI-X table size now matches the spec. + * The Power Management capability now includes the soft reset bit. + * Decoding of the Advanced Features capability has been added. + * The whole package compiles on GNU/kFreeBSD again. + * The procfs back-end is able to cope with /proc/bus/pci + containing names with domains, which occur on sparc64 and + possibly other architectures due to a kernel bug. + * The sysfs back-end no longer complains when a slot address + is missing, which happens with old versions of Linux fakephp. + * The Device Serial Number capability is printed in the right + byte order. + * The MSI and MSI-X capabilities are printed in a prettier way. + * The tree output mode (`lspci -t') shows domain numbers only + at the root, which makes the output more compact. + * Updated documentation on the bus mapping mode (`lspci -M'). +* Thu Feb 5 2009 anicka@suse.cz +- update to 3.1.2 + * Fixed another silly bug in the command-line parser of setpci. + * The configure script now sets LC_ALL to avoid being fooled by + locale-dependent behavior of `tr'. + * The command-line parser of setpci did sometimes segfault on invalid + input. + * The Cygwin backend now works on Windows Vista. + * Fixed a bug in decoding of the SR-IOV capability. + * Details of some PCIe capabilities are displayed only with -vv. + * When a BAR is reported by the OS, but not by the device (i.e., + it is marked as [virtual] in lspci), the [disabled] flag is + suppressed, because it does not make sense in such cases. + * The source code of lspci has been split to multiple files, hopefully + making it easier to maintain. + * The library and lspci now know about physical slot names. So far, + they are provided by the sysfs back-end only. + * When a device has the VPD (Vital Product Data) capability and the + VPD data are supplied by the OS, they are decoded and printed in the + verbose mode. This currently works only on Linux with the sysfs + back-end. + * `setpci --version' now works properly. + * `setpci --dumpregs' prints a table of all known names of + registers and capabilities. This replaces the table of registers + in the setpci man page. + * The dry-run mode of setpci gives better feedback. + * The setpci utility is now able to address registers stored in PCI + capabilities (actually it allows a more general form of relative + addressing). + * The library has gained functions for working with PCI capabilities. + * Address Translation Services capability is now decoded. + * `lspci -k' now displays the subsystem ID, too. This makes `-k' + show everything needed to identify the device and the available + drivers, which was called for by many users. + * Fixed spelling of MSI. + * Better support for cross-compilation. + * Fixed printing of the AER capability. + * HT 1.02 capabilities are decoded as HT 1.03. + * Fixed Cygwin build. + * Fixed a minor bug in the configure script, which caused warnings + about redefinition of symbols during compilation. +* Wed Jan 7 2009 olh@suse.de +- obsolete old -XXbit packages (bnc#437293) +* Thu Sep 11 2008 anicka@suse.cz +- update to 3.0.1 + * Added a Cygwin port. + * Worked around compatibility problems with various default + settings of wget + * Fixed printing of MSI capabilities. + * Added decoding of several PCI-X capabilities: device/link/slot 2, + Advanced Error Reporting, Access Control Services, Alternative + Routing-ID, Single Root I/O Virtualization. + * Fixed bug in filters which caused them to refuse + vendor/device ID 0xffff. + * Fixed several build problems: builds without PCI_USE_DNS + on Linux and with PCI_USE_DNS on Solaris and *BSD. Static + library mode also compiles again on old versions of GCC. +* Fri Apr 11 2008 mrueckert@suse.de +- move shared libs to /%%{_lib} +- added pciutils-3.0.0_pkgconfig.patch: + clean up the pkgconfig file so we can include it +- package the pkgconfig file +* Thu Apr 10 2008 mrueckert@suse.de +- if we no longer provide the static lib we should at least provide + the symlink to link against libpci +* Thu Apr 10 2008 anicka@suse.cz +- update to 3.0.0 + * The makefile system has been reworked. All configuration + settings are now passed to the configure script in environment + variables, allowing for easy tweaking in the top-level Makefile. + All control knobs are now described in the README. + * The libpci can be built as a shared library with properly + restricted symbol exports. Use `make SHARED=yes' to enable that + or `make SHARED=local' for a local testing build (with hardwired + paths to the library, so that it does not need installation). + * Support for resolving of PCI ID's using DNS together with a local + cache of resolved entries has been added. See the `-q' and `-Q' + options of lspci. + * The library now has a generic system of settable parameters, which + also include settings of the DNS resolver and cache. An `-O' + option has been added to lspci and setpci to allow setting + of these options. + * Configuration of the access methods are now specified by the new + parameter system, replacing the pci_access->method_params array. + * Access methods now also have sensible names and help texts and it + is possible to look up method ID by a name. + * An `-A' switch has been added to both lspci and setpci, allowing + to select an arbitrary access method. The `-P' switch (configure + proc backend) has been removed as it is no longer needed + and I do not know any its user. + * Several source files have been split for better maintainability + (most notably the resolving of ID's). + * Man pages and help texts have been updated. A new man page + `pcilib(7)' has been added and description of library options + has been moved there. + * When an unknown device ID is encountered, we print `Device ' + instead of `Unknown device '. It uses less space and it also + should reduce the number of inexperienced users complaining that + the device is not supported by the OS. To lookup up OS drivers, + use the `-k' option. + * Makefile: stripping of the binaries during installation can be + overridden by the STRIP variable. + * lib/types.h: We use the integer types from if the + compiler claims C99 support. +- remove strip patch +* Thu Apr 10 2008 ro@suse.de +- added baselibs.conf file to build xxbit packages + for multilib support +* Wed Apr 9 2008 anicka@suse.cz +- update to 2.2.10 + * lspci.c, setpci.c: Cleaned up the list of options. + * lib/names.c: Fix displaying of errors reported by zlib. + Previously, the buffer containing the error message had + been deallocated by gzclose() before the message was printed. + * update-pciids.sh: Added quiet mode (-q). Clean up uncompressed + files left by previous versions of the pciutils. + * update-pciids.man: Mention the -q switch. + * lib/dump.c: Squashed compiler warnings about code with + no effect (there really were surplus *'s). +* Tue Nov 6 2007 anicka@suse.cz +- update to 2.2.9 + * lspci.c: Added a new switch `-k' which requests printing + of information on kernel drivers attached to each device + and on kernel modules reporting the ability to handle the + device. + * Makefile, lib/Makefile: Moved -lz from LDFLAGS to LDLIBS. + Also added an explicit pattern rule for linking to make sure + that LDLIBS is used on all platforms. + * pci.ids: Revised class codes to match Conventional PCI 3.0 + specs. + * lspci.c: Decode the Debug port capability (per EHCI 0.96 spec). + * lspci.c: Big code cleanup: re-arranged functions in the code, + renamed everything related to capabilities to cap_* and + all options except verbose to opt_*. + * Capability loop detection introduced 2.2.7 did not work + properly with extended capabilities. Fixed. +* Wed Oct 24 2007 anicka@suse.cz +- drop the patch backporting upstream bug in + a machine readable output [#330533] +- fix typo in show_ext_caps in lspci +* Fri Oct 5 2007 anicka@suse.cz +- update to 2.2.7 + * lspci.c (show_caps, show_ext_caps): Detect and report loops in + capability lists. + * lspci.c, lib/header.h: Finished decoding of the PCI Express + capability. The extended capabilities remain undecoded for now, + but at least the list of them has been updated to reflect the + current PCI Express 2.0 spec. + * lspci.c, lib/header.h: Decode new bits of traditional registers + as defined by PCIE / PCI-X. This includes discard timers in + the bridge control register and INTx enable/status in device + control/status registers. + * Makefile, lib/Makefile: `ar' and `ranlib' can be overriden to + allow cross-compilation. + * lspci.c (show_ht): Added decoding of Hypertransport MSI + mapping capability + * tests/cap-MSI-mapping: Added a test case. +* Tue Jul 3 2007 anicka@suse.cz +- update to 2.2.6 + * Makefile: Added an "install-lib" target. + * Makefile, lib/Makefile: Generate and install pkg-config file + for libpci. + * lib/i386-io-hurd.h: Rewritten for new Hurd kernels. +* Fri May 4 2007 anicka@suse.cz +- update to 2.2.5 + * pci.ids: Updated to the current snapshot of the database. + * lspci.c (show_express): Added PCI/PCI-X to PCI-Express + Bridge type. + * pci.ids: Updated to the current snapshot of the database. + * Replaced bzero() by memset() everywhere, it's better to lose + a tiny bit of readability than maintain hacks to make it work + on various systems. + * lib/configure: tr on Solaris is a bit weird and it requires + `[A-Z]' instead of `A-Z'. Fortunately, the extra brackets + don't hurt otherwise. + * lib/types.h, lib/configure: Solaris should use + to get precise integer types. + * lspci.c: alloca() needs . + * lib/dump.c: Fixed a couple of bugs in the dump backend which + caused devices with domains or with extended config space + to be read incorrectly. Also, dumps with partial lines are + allowed now. + * lspci.c (scan_device): If an error occurs when reading the + standard config header of a device, report it and ignore the + device and return with exit code 2 at the end. +- remove noabort.diff (implemented by upstream) +* Thu Mar 29 2007 rguenther@suse.de +- add zlib-devel BuildRequires +- require zlib-devel from pciutils-devel package +* Mon Jan 29 2007 anicka@suse.cz +- change dependency from python to perl in update-pciids [#221276] +* Sat Jan 20 2007 garloff@suse.de +- Change update-pciids to download to pci.ids.d/pci.ids.dist + and call merge-pciids if possible. [FATE 301145, bug 221276] +* Fri Oct 13 2006 aj@suse.de +- Fix to build (remove pci.ids.gz as well). +* Fri Oct 13 2006 mjancar@suse.cz +- update to 2.2.4 + * many bugfixes and cleanups +- branch separate package for pci.ids +* Mon May 22 2006 schwab@suse.de +- Don't strip binaries. +* Wed Mar 22 2006 kukuk@suse.de +- Remove pciids-suse patch (has to be fixed upstream) +* Wed Mar 22 2006 kukuk@suse.de +- Auto-Update pci.ids +* Wed Jan 25 2006 mls@suse.de +- converted neededforbuild to BuildRequires +* Fri Jan 20 2006 mjancar@suse.cz +- update pci.ids (#144200) +* Fri Jan 13 2006 mjancar@suse.cz +- reintroduce "Class" printed in numeric output (#143042) +* Mon Dec 19 2005 mjancar@suse.cz +- update to 2.2.1 +* Fri Aug 26 2005 mjancar@suse.cz +- add types.h to pciutils-devel (#113294) +* Wed Aug 24 2005 mjancar@suse.cz +- update to 2.1.99-test9 (#98896) +- update pci.ids (#104381) +* Mon Mar 14 2005 mjancar@suse.cz +- fix non-ascii characters in pci.ids (#72345) +* Sat Mar 5 2005 schwab@suse.de +- Fix syntax error in pci.ids. +* Tue Feb 22 2005 mjancar@suse.cz +- fix sysfs parsing (#63326) +- update pci.ids +* Fri Sep 17 2004 tcrhak@suse.cz +- updated pci.ids to the latest snapshot (fixes bug #45370) +* Thu May 27 2004 tcrhak@suse.cz +- changed "SGI IO9/IO10 Gigabit Ethernet (Copper)" + to "SGI IO9/IO10 Gigabit Ethernet (Copper)" (bug #40175) +* Wed Apr 28 2004 tcrhak@suse.cz +- updated pci.ids +* Thu Mar 4 2004 tcrhak@suse.cz +- some pci.ids fixes: + * changed SubDevice of Dell Inspiron 2100 internal modem (bug #32842) + * added 1291 - Auxiliary Diva Serial Port (bug #31984) + * added PCI IDs for InfiniBand HCAs (bug #34928) +* Tue Feb 24 2004 tcrhak@suse.cz +- added support for domains to device filter (lspci -s, setpci -s) + (fixes bug #33382, patch sysfs-filter) +- updated pci.ids +* Sat Nov 29 2003 olh@suse.de +- use default owner for pciutils-devel files +* Wed Nov 5 2003 olh@suse.de +- remove pcimodules again, it doesnt do anything right +* Tue Oct 28 2003 olh@suse.de +- add patch for 2.6 /proc/bus/pci layout + http://ftp.linux.org.uk/pub/linux/willy/patches/pciutils-sysfs.diff +* Wed Oct 8 2003 tcrhak@suse.cz +- added pcimodules [bug #31953] +* Mon Aug 25 2003 tcrhak@suse.cz +- updated pci.ids to the latest version from http://pciids.sourceforge.net +* Tue Feb 18 2003 tcrhak@suse.cz +- fixed NIC PCI IDs for Compaq [bug #22795], + patch pciids.diff +- also included the diff for the latest pci.ids + into the patch +* Wed Jan 15 2003 tcrhak@suse.cz +- fixed install paths +* Mon Jan 6 2003 tcrhak@suse.cz +- update to version 2.1.11 +- updated pci.ids to the latest version from http://pciids.sourceforge.net +* Tue Sep 17 2002 ro@suse.de +- removed bogus self-provides +* Fri Sep 6 2002 olh@suse.de +- update description of pcnet32 cards (#18892) +* Thu Aug 29 2002 tcrhak@suse.cz +- updated pci.ids to latest version from http://pciids.sourceforge.net + this version contains entries needed by Hammer systems (bug #17549) +* Thu Aug 8 2002 olh@suse.de +- the acenic gigabit card can be either fibre or utp + update pci.ids entry (#17502) +* Tue Jul 30 2002 tcrhak@suse.cz +- updated to version 2.1.10 +- updated pci.ids to latest version from http://pciids.sourceforge.net +* Tue Mar 26 2002 tcrhak@suse.cz +- updated pci.ids to latest version from http://pciids.sourceforge.net +* Fri Jan 18 2002 tcrhak@suse.cz +- used macros %%{_lib} and %%{_libdir} +* Tue Jan 8 2002 schwab@suse.de +- Fix warnings. +* Mon Dec 17 2001 tcrhak@suse.cz +- updated pciutils to 2.1.9 +- updated pci.ids to latest version from + http://pciids.sourceforge.net/ +* Wed Dec 12 2001 grimmer@suse.de +- updated pci.ids to latest version from + http://pciids.sourceforge.net/ +- added pci.ids.bz2 as a separate source file and removed + pci.ids.add.dif (now included upstream) +* Mon Sep 24 2001 grimmer@suse.de +- added some missing PCI IDs for LSI Logic Fibre Channel + controllers to pci.ids.add.diff +- corrected typos in pci.ids (Fiber Channel -> Fibre Channel) +- added LSI Logic Inc. to vendor ID 0x1000 +* Wed Sep 19 2001 grimmer@suse.de +- added some missing PCI IDs for Compaq NICs to pci.ids.add.diff + see [#8918] for the list +* Mon Sep 10 2001 grimmer@suse.de +- corrected some Intel NIC entries upon request from Intel +- merged pci.ids.riva.diff and the Intel changes in pci.ids.add.diff +* Mon Sep 3 2001 garloff@suse.de +- Riva TnT corrections from snbarth: + * The name of Riva TnT 128 is Riva TnT. + * NVidia/SGS Joint Venture (12d2) never built TNT or later. +* Wed Aug 29 2001 grimmer@suse.de +- merged pci.ids.244ac6.diff and pci.ids.add.diff into a single + patch (again named pci.ids.add.diff) and added some more PCI IDs + collected by Dave Jones from various sources, + including the current pciutils CVS tree. +- beautyfied the spec file a bit (added clean section and defattr + in file list) +* Mon May 21 2001 poeml@suse.de +- add -devel subpackage +* Thu May 10 2001 garloff@suse.de +- Merge pci.ids from 2.4.4ac6 +- bzip2 tarball +* Thu May 3 2001 garloff@suse.de +- Also don't die on failing to read data of a normal device, + just complain loudly (and return 2 in the end) +- Updated pci.ids from linux-2.4.4 and added DFE-660. +* Wed Jan 17 2001 garloff@suse.de +- Don't die on failure to read ext. cardbus data. [#5817] +* Sun Dec 17 2000 garloff@suse.de +- Added pci.ids from linux-2.4.0-test12 +- Added pci.ids floating around (lkml, RH) +- Added pci.ids for i820, ICH2/-M +* Mon Sep 18 2000 schwab@suse.de +- Add `-Wno-format' to avoid spurious compile errors. +* Thu Aug 17 2000 ro@suse.de +- cleanup srcdir +* Sun Jun 11 2000 olh@suse.de +- update to 2.1.8 +* Mon Jan 24 2000 aj@suse.de +- update to 2.1.4, fix build problems with latest glibc, use patch + for make file from Martin Mares. +* Thu Jan 20 2000 aj@suse.de +- update to 2.1.3, /usr/man -> /usr/share/man +* Tue Jan 4 2000 ro@suse.de +- update to 2.1.2 +* Mon Oct 25 1999 ro@suse.de +- fixed to compile on axp +* Sat Oct 23 1999 ro@suse.de +- update to 2.1pre8 / using Buildroot +* Mon Sep 13 1999 bs@suse.de +- ran old prepare_spec on spec file to switch to new prepare_spec. +* Thu May 20 1999 ro@suse.de +- update to 2.0 +* Wed Mar 31 1999 bs@suse.de +- don't use lx_hack for build +* Mon Feb 22 1999 ro@suse.de +- update to 1.10 +* Wed Nov 25 1998 ro@suse.de +- created package, version 1.08 diff --git a/pciutils.keyring b/pciutils.keyring new file mode 100644 index 0000000..ef63543 --- /dev/null +++ b/pciutils.keyring @@ -0,0 +1,85 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 ++wy3OGqhxFrvSisPD49xVMZ8J5n0SYISHA== +=yy6O +-----END PGP PUBLIC KEY BLOCK----- diff --git a/pciutils.spec b/pciutils.spec new file mode 100644 index 0000000..875c0c9 --- /dev/null +++ b/pciutils.spec @@ -0,0 +1,102 @@ +# +# spec file for package pciutils +# +# Copyright (c) 2022-2023 ZhuningOS +# + + +%define lname libpci3 +Name: pciutils +Version: 3.5.6 +Release: 150300.13.6.1 +Summary: PCI utilities for the Linux Kernel +License: GPL-2.0+ +Group: Hardware/Other +Url: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml +Source: https://www.kernel.org/pub/software/utils/%{name}/%{name}-%{version}.tar.xz +Source1: https://www.kernel.org/pub/software/utils/%{name}/%{name}-%{version}.tar.sign +Source2: baselibs.conf +Source3: pciutils.keyring +Patch0: pciutils-3.2.0_update-dist.patch +Patch1: pciutils-3.1.9_pkgconfig.patch +Patch2: pciutils-ocloexec.patch +Patch3: pciutils-endianh.patch +Patch4: pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch +Patch5: pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch +Patch6: pciutils-VPD-Cleanup.patch +# https://github.com/pciutils/pciutils/commit/e12bd01eea67ca8cf539263124843ba281eb6ecc +Patch7: pciutils-add-decode-support-for-RCECs.patch +Patch8: pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch +Patch9: pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch +Patch10: lspci-Fixed-buffer-overflows-in-ls-tree.c.patch +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libkmod) +BuildRequires: pkgconfig(zlib) +Requires: pciutils-ids + +%description +lspci: This program displays detailed information about all PCI busses +and devices in the system, replacing the original /proc/pci interface. + +setpci: This program allows reading from and writing to PCI device +configuration registers. For example, you can adjust the latency timers +with it. + +update-pciids: This program downloads the current version of the +pci.ids file. + +%package -n %{lname} +Summary: PCI utility library +Group: System/Libraries + +%description -n %{lname} +libpci offers access to the PCI configuration space. + +%package devel +Summary: Library and Include Files of the PCI utilities +Group: Development/Libraries/C and C++ +Requires: %{lname} = %{version} + +%description devel +This package contains the files that are necessary for software +development using the PCI utilities. + +%prep +%autosetup -p1 + +%build +make %{?_smp_mflags} OPT="%{optflags}" PREFIX=%{_prefix} LIBDIR=/%{_lib} SBINDIR=/sbin STRIP="" SHARED="yes" + +%install +make install PREFIX=%{buildroot}%{_prefix} SBINDIR=%{buildroot}/sbin \ + ROOT=%{buildroot}/ MANDIR=%{buildroot}/%{_mandir} STRIP="" \ + SHARED="yes" LIBDIR=%{buildroot}/%{_lib} +mkdir -p %{buildroot}%{_includedir}/pci +cp -p lib/{pci,header,config,types}.h %{buildroot}%{_includedir}/pci/ +rm -rf %{buildroot}%{_datadir}/pci.ids* +install -D -m 0644 lib/libpci.pc %{buildroot}%{_libdir}/pkgconfig/libpci.pc +ln -sf /%{_lib}/libpci.so.3 %{buildroot}%{_libdir}/libpci.so + +%post -n %{lname} -p /sbin/ldconfig +%postun -n %{lname} -p /sbin/ldconfig + +%files +%license COPYING +%doc README +/sbin/lspci +/sbin/setpci +/sbin/update-pciids +%{_mandir}/man7/pcilib.7%{ext_man} +%{_mandir}/man8/lspci.8%{ext_man} +%{_mandir}/man8/setpci.8%{ext_man} +%{_mandir}/man8/update-pciids.8%{ext_man} + +%files -n %{lname} +/%{_lib}/libpci.so.* + +%files devel +%{_includedir}/pci/ +%{_libdir}/libpci.so +%{_libdir}/pkgconfig/libpci.pc + +%changelog