diff --git a/.gitignore b/.gitignore index 261f240..15838e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/pciutils-3.7.0.tar.xz +pciutils-3.13.0.tar.xz diff --git a/.pciutils.metadata b/.pciutils.metadata deleted file mode 100644 index 117e504..0000000 --- a/.pciutils.metadata +++ /dev/null @@ -1 +0,0 @@ -f7d6860ffe405b4ebb23b013866a64c9f80c2fa3 SOURCES/pciutils-3.7.0.tar.xz diff --git a/SOURCES/pciutils-3.5.6-freefix.patch b/SOURCES/pciutils-3.5.6-freefix.patch deleted file mode 100644 index 7cb8c24..0000000 --- a/SOURCES/pciutils-3.5.6-freefix.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up pciutils-3.5.6/lspci.c.freefix pciutils-3.5.6/lspci.c ---- pciutils-3.5.6/lspci.c.freefix 2018-08-21 16:52:35.087706662 +0200 -+++ pciutils-3.5.6/lspci.c 2018-08-21 16:52:35.124706469 +0200 -@@ -128,6 +128,7 @@ scan_device(struct pci_dev *p) - fprintf(stderr, "lspci: Unable to read the standard configuration space header of device %04x:%02x:%02x.%d\n", - p->domain, p->bus, p->dev, p->func); - seen_errors++; -+ free(d); - return NULL; - } - if ((d->config[PCI_HEADER_TYPE] & 0x7f) == PCI_HEADER_TYPE_CARDBUS) diff --git a/SOURCES/pciutils-3.7.0-decodercec.patch b/SOURCES/pciutils-3.7.0-decodercec.patch deleted file mode 100644 index 036cba1..0000000 --- a/SOURCES/pciutils-3.7.0-decodercec.patch +++ /dev/null @@ -1,444 +0,0 @@ -From e12bd01eea67ca8cf539263124843ba281eb6ecc Mon Sep 17 00:00:00 2001 -From: Sean V Kelley -Date: Wed, 24 Jun 2020 15:39:40 -0700 -Subject: pciutils: Add decode support for RCECs - -Root Complex Event Collectors provide support for terminating error -and PME messages from RCiEPs. This patch provides basic decoding for -the lspci RCEC Endpoint Association Extended Capability. See PCIe 5.0-1, -sec 7.9.10 for further details. - -Suggested-by: Bjorn Helgaas -Signed-off-by: Sean V Kelley ---- - lib/header.h | 8 +- - ls-ecaps.c | 59 +++++++++++- - setpci.c | 2 +- - tests/cap-rcec | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 364 insertions(+), 4 deletions(-) - create mode 100644 tests/cap-rcec - -diff --git a/lib/header.h b/lib/header.h -index 472816e..57a9343 100644 ---- a/lib/header.h -+++ b/lib/header.h -@@ -219,7 +219,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_RCRB 0x0a /* Root Complex Register Block */ -@@ -1048,6 +1048,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 */ -diff --git a/ls-ecaps.c b/ls-ecaps.c -index e71209e..99c55ff 100644 ---- a/ls-ecaps.c -+++ b/ls-ecaps.c -@@ -634,6 +634,61 @@ cap_rclink(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_dvsec_cxl(struct device *d, int where) - { -@@ -991,8 +1046,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"); -diff --git a/setpci.c b/setpci.c -index 90ca726..2cb70fa 100644 ---- a/setpci.c -+++ b/setpci.c -@@ -350,7 +350,7 @@ static const struct reg_name pci_reg_names[] = { - { 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" }, - { 0x20009, 0, 0, "ECAP_VC2" }, - { 0x2000a, 0, 0, "ECAP_RBCB" }, -diff --git a/tests/cap-rcec b/tests/cap-rcec -new file mode 100644 -index 0000000..836d9a1 ---- /dev/null -+++ b/tests/cap-rcec -@@ -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- id_load_failed = 1; + a->id_load_attempted = 1; if (!(f = pci_open(a))) - return 0; - err = id_parse_list(a, f, &lino); @@ -45,12 +45,11 @@ diff -up pciutils-3.0.0/lib/names-parse.c.dird pciutils-3.0.0/lib/names-parse.c pci_close(f); if (err) a->error("%s at %s, line %d\n", err, a->id_file_name, lino); - a->id_load_failed = 0; + pci_new_load_name_list(a); return 1; } -@@ -249,3 +253,49 @@ pci_set_name_list_path(struct pci_access +@@ -251,3 +255,49 @@ pci_set_name_list_path(struct pci_access a->id_file_name = name; a->free_id_name = to_be_freed; } @@ -100,10 +99,10 @@ diff -up pciutils-3.0.0/lib/names-parse.c.dird pciutils-3.0.0/lib/names-parse.c + closedir(pci_ids_dir); + return 1; +} -diff -up pciutils-3.0.0/lib/pci.h.dird pciutils-3.0.0/lib/pci.h ---- pciutils-3.0.0/lib/pci.h.dird 2008-04-10 21:23:05.000000000 +0200 -+++ pciutils-3.0.0/lib/pci.h 2008-09-01 15:17:23.000000000 +0200 -@@ -194,6 +194,7 @@ int pci_load_name_list(struct pci_access +diff -up pciutils-3.11.0/lib/pci.h.2 pciutils-3.11.0/lib/pci.h +--- pciutils-3.11.0/lib/pci.h.2 2024-02-23 14:56:07.000000000 +0100 ++++ pciutils-3.11.0/lib/pci.h 2024-02-26 20:09:44.908200417 +0100 +@@ -292,6 +292,7 @@ int pci_load_name_list(struct pci_access void pci_free_name_list(struct pci_access *a) PCI_ABI; /* Called automatically by pci_cleanup() */ void pci_set_name_list_path(struct pci_access *a, char *name, int to_be_freed) PCI_ABI; void pci_id_cache_flush(struct pci_access *a) PCI_ABI; diff --git a/SPECS/pciutils.spec b/pciutils.spec similarity index 78% rename from SPECS/pciutils.spec rename to pciutils.spec index 8d03338..8bd15af 100644 --- a/SPECS/pciutils.spec +++ b/pciutils.spec @@ -1,28 +1,25 @@ Name: pciutils -Version: 3.7.0 -Release: 3%{?dist} -Source: https://mirrors.edge.kernel.org/pub/software/utils/pciutils/%{name}-%{version}.tar.xz -Source1: multilibconfigh +Version: 3.13.0 +Release: 1%{?dist} +Summary: PCI bus related utilities +License: GPL-2.0-or-later +URL: https://mj.ucw.cz/sw/pciutils/ + +Source0: https://www.kernel.org/pub/software/utils/pciutils/%{name}-%{version}.tar.xz +Source1: multilibconfigh +Source2: libpci_symbols.lst #change pci.ids directory to hwdata, fedora/rhel specific Patch1: pciutils-2.2.1-idpath.patch #add support for directory with another pci.ids, rejected by upstream, rhbz#195327 Patch2: pciutils-dir-d.patch -Patch4: pciutils-3.5.6-freefix.patch -# from upstream, for pciutils <= 3.7.0 -Patch5: pciutils-3.7.0-decodercec.patch - -License: GPLv2+ -URL: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml -ExclusiveOS: Linux Requires: hwdata Requires: %{name}-libs = %{version}-%{release} -BuildRequires: sed kmod-devel -Summary: PCI bus related utilities -Group: Applications/System +BuildRequires: gcc make sed kmod-devel Provides: /sbin/lspci /sbin/setpci +Provides: /bin/lspci %description The pciutils package contains various utilities for inspecting and @@ -30,8 +27,7 @@ setting devices connected to the PCI bus. %package devel Summary: Linux PCI development library -Group: Development/Libraries -Requires: zlib-devel pkgconfig %{name}-libs%{?_isa} = %{version}-%{release} +Requires: zlib-devel pkgconfig %{name}%{?_isa} = %{version}-%{release} %description devel This package contains a library for inspecting and setting @@ -39,7 +35,6 @@ devices connected to the PCI bus. %package libs Summary: Linux PCI library -Group: System Environment/Libraries %description libs This package contains a library for inspecting and setting @@ -47,7 +42,6 @@ devices connected to the PCI bus. %package devel-static Summary: Linux PCI static library -Group: System Environment/Libraries Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description devel-static @@ -55,50 +49,44 @@ This package contains a static library for inspecting and setting devices connected to the PCI bus. %prep -%setup -q -n pciutils-%{version} -%patch1 -p1 -b .idpath -%patch2 -p1 -b .dird -%patch4 -p1 -b .freefix -%patch5 -p1 -b .decodercec +%autosetup -p1 %build -make SHARED="no" ZLIB="no" LIBKMOD=yes STRIP="" OPT="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" PREFIX="/usr" LIBDIR="%{_libdir}" IDSDIR="/usr/share/hwdata" PCI_IDS="pci.ids" %{?_smp_mflags} +%make_build SHARED="no" ZLIB="no" LIBKMOD=yes STRIP="" OPT="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" PREFIX="/usr" LIBDIR="%{_libdir}" IDSDIR="/usr/share/hwdata" PCI_IDS="pci.ids" mv lib/libpci.a lib/libpci.a.toinstall make clean -make SHARED="yes" ZLIB="no" LIBKMOD=yes STRIP="" OPT="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" PREFIX="/usr" LIBDIR="%{_libdir}" IDSDIR="/usr/share/hwdata" PCI_IDS="pci.ids" %{?_smp_mflags} - -#fix lib vs. lib64 in libpci.pc (static Makefile is used) -sed -i "s|^libdir=.*$|libdir=/%{_libdir}|" lib/libpci.pc - +%make_build SHARED="yes" ZLIB="no" LIBKMOD=yes STRIP="" OPT="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" PREFIX="/usr" LIBDIR="%{_libdir}" IDSDIR="/usr/share/hwdata" PCI_IDS="pci.ids" %install -rm -rf $RPM_BUILD_ROOT - -install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man8,%{_libdir},%{_libdir}/pkgconfig,%{_includedir}/pci} +install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man{7,8},%{_libdir},%{_libdir}/pkgconfig,%{_includedir}/pci} install -p lspci setpci update-pciids $RPM_BUILD_ROOT%{_sbindir} +ln -sr $RPM_BUILD_ROOT%{_sbindir}/lspci $RPM_BUILD_ROOT%{_bindir}/lspci install -p -m 644 lspci.8 setpci.8 update-pciids.8 $RPM_BUILD_ROOT%{_mandir}/man8 +install -p -m 644 pcilib.7 $RPM_BUILD_ROOT%{_mandir}/man7 install -p lib/libpci.so.* $RPM_BUILD_ROOT%{_libdir}/ ln -s $(basename $RPM_BUILD_ROOT%{_libdir}/*.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpci.so mv lib/libpci.a.toinstall lib/libpci.a install -p -m 644 lib/libpci.a $RPM_BUILD_ROOT%{_libdir} -/sbin/ldconfig -N $RPM_BUILD_ROOT/%{_libdir} -install -p lib/pci.h $RPM_BUILD_ROOT%{_includedir}/pci -install -p lib/header.h $RPM_BUILD_ROOT%{_includedir}/pci -install -p %{SOURCE1} $RPM_BUILD_ROOT%{_includedir}/pci/config.h -install -p lib/config.h $RPM_BUILD_ROOT%{_includedir}/pci/config.%{_lib}.h -install -p lib/types.h $RPM_BUILD_ROOT%{_includedir}/pci -install -p lib/libpci.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig +install -p -m 644 lib/pci.h $RPM_BUILD_ROOT%{_includedir}/pci +install -p -m 644 lib/header.h $RPM_BUILD_ROOT%{_includedir}/pci +install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_includedir}/pci/config.h +install -p -m 644 lib/config.h $RPM_BUILD_ROOT%{_includedir}/pci/config.%{_lib}.h +install -p -m 644 lib/types.h $RPM_BUILD_ROOT%{_includedir}/pci +install -p -m 644 lib/libpci.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig -%post libs -p /sbin/ldconfig +%ldconfig_scriptlets libs -%postun libs -p /sbin/ldconfig +%check +nm -gDC $RPM_BUILD_ROOT/%{_libdir}/libpci.so.%{version} | sed -n -e 's/@@/@/g' -e 's/^.* \([^ ]*@LIBPCI_.*\)$/\1/p' | sort | uniq >libpci_symbols_new.lst +diff -u %{SOURCE2} libpci_symbols_new.lst %files %doc README ChangeLog pciutils.lsm +%{_bindir}/lspci %{_sbindir}/lspci %{_sbindir}/setpci %{_sbindir}/update-pciids @@ -112,31 +100,94 @@ install -p lib/libpci.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig %{_libdir}/libpci.a %files devel -%defattr(0644, root, root, 0755) %{_libdir}/pkgconfig/libpci.pc %{_libdir}/libpci.so %{_includedir}/pci +%{_mandir}/man7/* %changelog -* Tue Sep 06 2022 Michal Hlavinka - 3.7.0-3 -- fix dependency of devel subpkg on libs (#2111644) +* Tue Jun 11 2024 Michal Hlavinka - 3.13.0-1 +- updated to 3.13, adds support for cxl1.1 device link status information (#RHEL-29153) +- add riscv64 build support (#RHEL-40383) -* Tue Sep 06 2022 Michal Hlavinka - 3.7.0-2 -- fix locations wrt UsrMove(#2111644) +* Thu Jan 25 2024 Fedora Release Engineering - 3.10.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 3.10.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Sep 25 2023 Neal Gompa - 3.10.0-3 +- Add /usr/bin/lspci symlink to fix detection by some games (#1858437) + +* Thu Jul 20 2023 Fedora Release Engineering - 3.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue May 16 2023 Michal Hlavinka - 3.10.0-1 +- updated to 3.10.0 + +* Tue Mar 14 2023 Michal Hlavinka - 3.9.0-4 +- update license tag format (SPDX migration) for https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 + +* Thu Jan 19 2023 Fedora Release Engineering - 3.9.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 15 2022 Michal Hlavinka - 3.9.0-2 +- fix gcc optimizing-out versioned symbols when -flto is used (gccbz#48200) + +* Tue Nov 29 2022 Michal Hlavinka - 3.9.0-1 +- updated to 3.9.0 + +* Fri Jul 22 2022 Fedora Release Engineering - 3.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Apr 20 2022 Michal Hlavinka - 3.8.0-1 +- updated to 3.8.0 + +* Thu Jan 20 2022 Fedora Release Engineering - 3.7.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 3.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Feb 02 2021 Michal Hlavinka - 3.7.0-3 +- spec file cleanup + +* Tue Jan 26 2021 Fedora Release Engineering - 3.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Fri Oct 30 2020 Michal Hlavinka - 3.7.0-1 -- pciutils updated to 3.7.0, add support for basic DVSEC and CXL DVSEC (#1856436) -- add support for RCEC Associated Endpoint (#1856440) +- updated to 3.7.0 -* Wed May 06 2020 Michal Hlavinka - 3.6.4-2 -- rebuild package +* Tue Jul 28 2020 Fedora Release Engineering - 3.6.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild -* Mon May 04 2020 Michal Hlavinka - 3.6.4-1 +* Fri Feb 28 2020 Michal Hlavinka - 3.6.4-1 - pciutils updated to 3.6.4 -- some of the VPD data fields were displayed as unknown (#1828741) -* Tue Oct 16 2018 Michal Hlavinka - 3.5.6-4 -- fix covscan found issues (#1607017) +* Wed Jan 29 2020 Fedora Release Engineering - 3.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 22 2020 Peter Robinson 3.6.3-1 +- pciutils updated to 3.6.3 +- spec cleanups, use %%license, use kernel.org download + +* Fri Jul 26 2019 Fedora Release Engineering - 3.6.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 3.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Aug 13 2018 Michal Hlavinka - 3.6.2-1 +- pciutils updated to 3.6.2 + +* Fri Jul 13 2018 Michal Hlavinka - 3.6.1-1 +- pciutils updated to 3.6.1 + +* Mon Jul 09 2018 Michal Hlavinka - 3.6.0-1 +- pciutils updated to 3.6.0 + +* Wed Mar 07 2018 Michal Hlavinka - 3.5.6-4 +- add gcc buildrequire * Sat Feb 24 2018 Florian Weimer - 3.5.6-3 - Use LDFLAGS from redhat-rpm-config diff --git a/sources b/sources new file mode 100644 index 0000000..ec4f746 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (pciutils-3.13.0.tar.xz) = 2c0a26d42a6f3b193ae0a7705344e22cf3f729b860a7cf0843e8102e4dfc3243b8112ed8fd79bd51b54773a172ab8fd75246c82b4d20add3f0773d86d4595712