diff --git a/.biosdevname.metadata b/.biosdevname.metadata new file mode 100644 index 0000000..5682bb2 --- /dev/null +++ b/.biosdevname.metadata @@ -0,0 +1 @@ +a31985f5cc19bd0a2bed7a32567d06f5ec72c0af SOURCES/v0.7.3.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..600a64e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/v0.7.3.tar.gz diff --git a/SOURCES/0001-Add-support-for-ExaNIC-network-cards-5.patch b/SOURCES/0001-Add-support-for-ExaNIC-network-cards-5.patch new file mode 100644 index 0000000..5c2c071 --- /dev/null +++ b/SOURCES/0001-Add-support-for-ExaNIC-network-cards-5.patch @@ -0,0 +1,27 @@ +From 7460046a5430e92cd6a4ef0c938f80e95669b5bc Mon Sep 17 00:00:00 2001 +From: Ka-Shu Wong <31426385+kashuwong@users.noreply.github.com> +Date: Fri, 1 Sep 2017 15:33:56 +1000 +Subject: [PATCH] Add support for ExaNIC network cards (#5) + +ExaNIC cards have multiple physical ports on the same PCI function and +need to be numbered using the dev_port attribute. +--- + src/bios_device.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/bios_device.c b/src/bios_device.c +index e9d5177..3cc528b 100644 +--- a/src/bios_device.c ++++ b/src/bios_device.c +@@ -221,6 +221,8 @@ int ismultiport(const char *driver) + return 1; + if (!strncmp(driver, "cxgb", 4)) + return 1; ++ if (!strncmp(driver, "exanic", 6)) ++ return 1; + return 0; + } + +-- +2.13.6 + diff --git a/SOURCES/0001-Place-udev-rules-to-usr-lib.patch b/SOURCES/0001-Place-udev-rules-to-usr-lib.patch new file mode 100644 index 0000000..8f7c721 --- /dev/null +++ b/SOURCES/0001-Place-udev-rules-to-usr-lib.patch @@ -0,0 +1,26 @@ +From 14a0cef248d2996cde90e64ae56d7bdb569b3995 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= +Date: Mon, 23 Sep 2013 14:05:59 +0200 +Subject: [PATCH] Place udev rules to /usr/lib + +--- + biosdevname.rules.in | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/biosdevname.rules.in b/biosdevname.rules.in +index e26ba98..8c12cb8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -68,7 +68,7 @@ AC_CHECK_FUNCS([dup2 gettimeofday memset munmap select socket strcasecmp strchr + + # this is ugly, but accounts for SLES 10, Red Hat/Fedora, and Ubuntu + # handles default udev rules as of udev 114 or thereabouts +-RULEDEST=/lib/udev/rules.d/71-biosdevname.rules ++RULEDEST=${prefix}/lib/udev/rules.d/71-biosdevname.rules + + if [[ -e /etc/udev/rules.d/60-net.rules ]]; then + # RHEL 5 / Fedora +-- +1.8.3.1 + diff --git a/SOURCES/0001-Prevent-infinite-recursion-in-dmidecode.c-smbios_set.patch b/SOURCES/0001-Prevent-infinite-recursion-in-dmidecode.c-smbios_set.patch new file mode 100644 index 0000000..e0647d4 --- /dev/null +++ b/SOURCES/0001-Prevent-infinite-recursion-in-dmidecode.c-smbios_set.patch @@ -0,0 +1,29 @@ +From d6fa84f8a80d5e1c526fe675c345f709a700e33e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Josef=20M=C3=B6llers?= +Date: Fri, 20 Jul 2018 08:56:48 +0200 +Subject: [PATCH] Prevent infinite recursion in dmidecode.c::smbios_setslot by + (#7) + +Checking that subordinate bus has a number greater than the +current bus. +Fixes SUSE bug#1093625 +--- + src/dmidecode/dmidecode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/dmidecode/dmidecode.c b/src/dmidecode/dmidecode.c +index 1d805bb..a01a6ce 100644 +--- a/src/dmidecode/dmidecode.c ++++ b/src/dmidecode/dmidecode.c +@@ -153,7 +153,7 @@ void smbios_setslot(const struct libbiosdevname_state *state, + } + + /* Found a PDEV, now is it a bridge? */ +- if (pdev->sbus != -1) { ++ if (pdev->sbus != -1 && pdev->sbus > bus) { + smbios_setslot(state, domain, pdev->sbus, -1, -1, type, slot, index, label); + } + } +-- +2.17.2 + diff --git a/SOURCES/0001-man-fix-all_ethN-indentation.patch b/SOURCES/0001-man-fix-all_ethN-indentation.patch new file mode 100644 index 0000000..c56f376 --- /dev/null +++ b/SOURCES/0001-man-fix-all_ethN-indentation.patch @@ -0,0 +1,26 @@ +From 42abae6e56f22245ac8d693ab88ad1e3ea75a220 Mon Sep 17 00:00:00 2001 +From: Dan Kenigsberg +Date: Sun, 27 Jan 2019 09:26:53 +0200 +Subject: [PATCH] man: fix all_ethN indentation + +all_ethN is not another .TP block under the physical policy, it is a paragraph of its own right. +--- + biosdevname.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/biosdevname.1 b/biosdevname.1 +index 22a53bd..643eae5 100644 +--- a/biosdevname.1 ++++ b/biosdevname.1 +@@ -60,7 +60,7 @@ for embedded NICs + pp[_] + for cards in PCI slots + .br +-.TP ++.PP + The + .B all_ethN + policy makes a best guess at what the device order should be, with +-- +2.17.2 + diff --git a/SOURCES/biosdevname-0.6.1-rules.patch b/SOURCES/biosdevname-0.6.1-rules.patch new file mode 100644 index 0000000..cb45e6c --- /dev/null +++ b/SOURCES/biosdevname-0.6.1-rules.patch @@ -0,0 +1,31 @@ +diff --git a/biosdevname.rules.in b/biosdevname.rules.in +index 0a32aa5..52aaea5 100644 +--- a/biosdevname.rules.in ++++ b/biosdevname.rules.in +@@ -4,6 +4,9 @@ NAME=="?*", GOTO="netdevicename_end" + ATTR{type}!="1", GOTO="netdevicename_end" + ENV{DEVTYPE}=="?*", GOTO="netdevicename_end" + ++# whitelist all Dell systems ++ATTR{[dmi/id]sys_vendor}=="Dell*", ENV{UDEV_BIOSDEVNAME}="1" ++ + # kernel command line "biosdevname={0|1}" can turn off/on biosdevname + IMPORT{cmdline}="biosdevname" + ENV{biosdevname}=="?*", ENV{UDEV_BIOSDEVNAME}="$env{biosdevname}" +@@ -12,13 +15,13 @@ ENV{biosdevname}=="?*", ENV{UDEV_BIOSDEVNAME}="$env{biosdevname}" + ENV{UDEV_BIOSDEVNAME}=="0", GOTO="netdevicename_end" + ENV{UDEV_BIOSDEVNAME}=="1", GOTO="netdevicename_start" + +-# uncomment the next line for biosdevname to be off by default +-# GOTO="netdevicename_end" ++# off by default ++GOTO="netdevicename_end" + + LABEL="netdevicename_start" + + # using NAME= instead of setting INTERFACE_NAME, so that persistent + # names aren't generated for these devices, they are "named" on each boot. +-SUBSYSTEMS=="pci", PROGRAM="/sbin/biosdevname --policy physical -i %k", NAME="%c", OPTIONS+="string_escape=replace" ++SUBSYSTEMS=="pci", PROGRAM="/sbin/biosdevname --smbios 2.6 --nopirq --policy physical -i %k", NAME="%c" OPTIONS+="string_escape=replace" + + LABEL="netdevicename_end" diff --git a/SPECS/biosdevname.spec b/SPECS/biosdevname.spec new file mode 100644 index 0000000..4609ad3 --- /dev/null +++ b/SPECS/biosdevname.spec @@ -0,0 +1,275 @@ +Name: biosdevname +Version: 0.7.3 +Release: 2%{?dist} +Summary: Udev helper for naming devices per BIOS names + +Group: System Environment/Base +License: GPLv2 +URL: https://github.com/dell/biosdevname +# SMBIOS only exists on these arches. It's also likely that other +# arches don't expect the PCI bus to be sorted breadth-first, or of +# so, there haven't been any comments about that on LKML. +ExclusiveArch: %{ix86} x86_64 ia64 +Source0: https://github.com/dell/%{name}/archive/v%{version}.tar.gz + +BuildRequires: pciutils-devel, zlib-devel +# to figure out how to name the rules file +BuildRequires: udev +#To generate the configure script +BuildRequires: autoconf +BuildRequires: automake +# for ownership of /etc/udev/rules.d +Requires: udev + +Patch0: biosdevname-0.6.1-rules.patch +Patch1: 0001-Place-udev-rules-to-usr-lib.patch +Patch2: 0001-Add-support-for-ExaNIC-network-cards-5.patch +Patch3: 0001-Prevent-infinite-recursion-in-dmidecode.c-smbios_set.patch +Patch4: 0001-man-fix-all_ethN-indentation.patch + +%description +biosdevname in its simplest form takes a kernel device name as an +argument, and returns the BIOS-given name it "should" be. This is necessary +on systems where the BIOS name for a given device (e.g. the label on +the chassis is "Gb1") doesn't map directly and obviously to the kernel +name (e.g. eth0). + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + +%build +autoreconf -iv +#If configure script doesn't exist generate it with autogen script +[ -e ./configure ] || ./autogen.sh --no-configure + +%configure --disable-rpath --prefix=%{_prefix} --sbindir=%{_prefix}/sbin +make %{?_smp_mflags} + + +%install +make install install-data DESTDIR=%{buildroot} + +%files +%defattr(-,root,root,-) +%doc COPYING README +%{_prefix}/sbin/%{name} +# hack for either /etc or /lib rules location +%{_prefix}/lib/udev/rules.d/*.rules +%{_mandir}/man1/%{name}.1* + + +%changelog +* Wed Mar 27 2019 Michal Sekletár - 0.7.3-2 +- prevent infinite recursion in dmidecode.c::smbios_setslot (#1642706) +- fix indentation in the man page (#1642706) + +* Wed Oct 25 2017 Michal Sekletar - 0.7.3-1 +- rebase to 0.7.3 (#1467144) + +* Fri Mar 31 2017 Michal Sekletar - 0.7.2-2 +- backport fixes from upstream (#1385889) + +* Thu May 26 2016 Michal Sekletar - 0.7.2-1 +- rebase to 0.7.2 (#1269524) + +* Fri Dec 18 2015 Michal Sekletar - 0.7.0-1 +- rebase to 0.7.0 (#1269524) + +* Fri Jun 12 2015 Michal Sekletar - 0.6.2-1 +- rebase to 0.6.2 (#1182849) + +* Thu Jan 08 2015 Michal Sekletar - 0.6.1-2 +- fix up incorrectly generated patch + +* Fri Dec 05 2014 Michal Sekletar - 0.6.1-1 +- rebase to 0.6.1 (#1145572) + +* Tue Mar 18 2014 Michal Sekletar - 0.5.0-10 +- rename Mellanox card correctly (#1067135) + +* Thu Mar 06 2014 Lukáš Nykrýn - 0.5.0-9 +- stop reading VPD data once VPD-R section has been read (#1054414) + +* Fri Feb 28 2014 Lukáš Nykrýn - 0.5.0-8 +- remove KERNEL!="eth*", GOTO="netdevicename_end" (#1069817) + +* Mon Feb 10 2014 Lukáš Nykrýn - 0.5.0-7 +- Change 71-biosdevname.rules to match rhel6 setup (#1054170) + +* Fri Dec 27 2013 Daniel Mach - 0.5.0-6 +- Mass rebuild 2013-12-27 + +* Fri Sep 20 2013 Václav Pavlín - 0.5.0-5 +- Fix regression introduced by the addslot function +- CoverityScan fixes +- Place udev rules to /usr/lib rather than /lib +Resolves: rhbz#1008899 + +* Mon Sep 02 2013 Harald Hoyer 0.5.0-3 +- not only NAME KERNEL=="eth*", but every ethernet device + +* Tue Jul 30 2013 Václav Pavlín - 0.5.0-2 +- Update help and man pages to cover all possible arguments +Resolves: rhbz#949021 + +* Tue Jul 30 2013 Václav Pavlín - 0.5.0-1 +- Updating the sources to 0.5.0 version. Following are the changes: +- Change scan of SMBIOS slot <-> PCI methods, recurse to set SMBIOS slot field +- Save off secondary bus of PCI device for PCI tree traversal +- Add version number to biosdevname + +* Wed Feb 13 2013 Fedora Release Engineering - 0.4.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Nov 14 2012 Václav Pavlín - 0.4.1-3 +- Source link update + +* Wed Jul 18 2012 Fedora Release Engineering - 0.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jul 18 2012 Praveen K Paladugu - 0.4.1-1 +- Fix autoconfig for Fedora systems +- Make sure that vpd scan only runs on Dell systems, also blacklist Atheros + wireless cards which hang when vpd is read. +- Add fixes to biosdevname to support cards that export multiple network + ports per PCI device (chelsio/mellanox). + + + +* Thu May 3 2012 Praveen K Paladugu - 0.4.0-1 +- Create detached signature +- Fix man page to use new naming convention +- Remove unused variables from Stephen Hemminger [shemminger@vyatta.com] +- Use Physical device for slot numbering for embedded SR-IOV cards +- Add tracking of ifindex to eths structure +- Fix naming for add-in network adapters when SMBIOS version is invalid +- Read VPD-R on Dell systems only + +* Thu Jan 12 2012 Fedora Release Engineering - 0.3.11-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Oct 4 2011 Praveen K Paladugu - 0.3.11-5 +- Added automake as a build dependency + +* Tue Oct 4 2011 Praveen K Paladugu - 0.3.11-4 +- Added autoconf as a build dependency + +* Tue Oct 4 2011 Praveen K Paladugu - 0.3.11-3 +- Generating the configure script if it doesn't exist + +* Tue Oct 4 2011 Praveen K Paladugu - 0.3.11-2 +- Fixed the dir structure inside the archive + +* Tue Oct 4 2011 Praveen K Paladugu - 0.3.11-1 +- Updating the sources to 0.3.11 version. Following are the changes: +- Fix man page for PCI slot naming +- Fix clearing of buffer for NPAR/SRIOV naming +- Add --nopirq and --smbios options to manpage. +- Verify length of VPD on network device +- Close file handle on sysfs read +- Fix naming policy for NPAR devices. + Match each PCI device to its VPD 'physical' device to get correct index +- Exclude building on ia64 arch +- Add support functions for determining PCIE slot +- Scan full path to parent when getting PCIE slot +- Fix NPAR naming for add-in cards +- Don't display _vf suffix on NPAR devices with single function +- Fix PCIe/PIRQ slot mapping + +* Thu Apr 21 2011 Praveen K Paladugu - 0.3.8-1 +- Add changes to parse VPD structure for device mapping on NPAR devices +- Fix pathname +- Cleanup and comment NPAR code +- Fix debian packaging rules to regenerate configure script +- Change pciX to pX for shortened names for PCI add-on devices +- Fix manpage typo +- Delete CR-LF in script +- Change default signing key +- Add command line arguments for checking SMBIOS version and ignore $PIRQ. + +* Thu Feb 17 2011 Matt Domsch - 0.3.7-1 +- drop dump_pirq, suggest use biosdecode instead +- don't use '#' in names, use 'p' instead, by popular demand +- properly look for SMBIOS, then $PIR, then recurse +- Add kernel command line parameter "biosdevname={0|1}" to turn off/on biosdevname +- Fix segfault when BIOS advertises zero sized PIRQ Routing Table +- Add 'bonding' and 'openvswitch' to the virtual devices list +- fail PIRQ lookups if device domain is not 0 +- Don't suggest names if running in a virtual machine (Xen, KVM, + VMware tested, but should work on others) +- Typo fixes + +* Mon Feb 07 2011 Fedora Release Engineering - 0.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 25 2011 Matt Domsch - 0.3.6-1 +- drop biosdevnameS, it's unused and fails to build on F15 + +* Tue Jan 25 2011 Matt Domsch - 0.3.5-1 +- install dump_pirq into /usr/sbin +- fix udev rule, skip running if NAME is already set +- move udev rule to /lib/udev/rules.d by default + +* Thu Dec 16 2010 Matt Domsch - 0.3.4-1 +- drop unnecessary explicit version requirement on udev +- bugfix: start indices at 1 not 0, to match Dell and HP server port designations +- bugfix: don't assign names to unknown devices +- bugfix: don't assign duplicate names + +* Thu Dec 9 2010 Matt Domsch - 0.3.3-1 +- add back in use of PCI IRQ Routing Table, if info is not provided by + sysfs or SMBIOS + +* Thu Dec 2 2010 Matt Domsch - 0.3.2-1 +- fix for multi-port cards with bridges +- removal of code for seriously obsolete systems + +* Sun Nov 28 2010 Matt Domsch 0.3.1-1 +- remove all policies except 'physical' and 'all_ethN' +- handle SR-IOV devices properly + +* Wed Nov 10 2010 Matt Domsch 0.3.0-1 +- add --policy=loms, make it default +- read index and labels from sysfs if available + +* Mon Jul 27 2009 Jordan Hargrave 0.2.5-1 +- fix mmap error checking + +* Fri Jul 24 2009 Fedora Release Engineering - 0.2.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Feb 23 2009 Fedora Release Engineering - 0.2.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Tue May 06 2008 Matt Domsch 0.2.4-5 +- use policy=all_names to find breakage + +* Sun Feb 10 2008 Matt Domsch 0.2.4-4 +- rebuild for gcc43 + +* Fri Sep 21 2007 Matt Domsch 0.2.4-3 +- fix manpage entry in files + +* Fri Sep 21 2007 Matt Domsch 0.2.4-2 +- rebuild with Requires: udev > 115-3.20070920git + +* Fri Sep 21 2007 Matt Domsch 0.2.4-1 +- coordinate udev rules usage with udev maintainer +- fix crashes in pcmcia search, in_ethernet(), and incorrect command + line parsing. + +* Mon Aug 27 2007 Matt Domsch 0.2.3-1 +- eliminate libbiosdevname.*, pre and post scripts + +* Fri Aug 24 2007 Matt Domsch 0.2.2-1 +- ExclusiveArch those arches with SMBIOS and PCI IRQ Routing tables +- eliminate libsysfs dependency, move app to / for use before /usr is mounted. +- build static + +* Mon Aug 20 2007 Matt Domsch 0.2.1-1 +- initial release