# # spec file for package biosdevname # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: biosdevname Version: 0.4.1 Release: 0 Summary: Udev helper for naming devices per BIOS names License: GPL-2.0 Group: System/Base Url: http://linux.dell.com/files/biosdevname/ # SMBIOS and PCI IRQ Routing Tables only exist 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 Source0: http://linux.dell.com/files/%{name}/%{name}-%{version}/%{name}-%{version}.tar.gz Source1: setup-biosdevname.sh Patch2: ignore-broken-BIOSes Patch3: whitelist-dell Patch4: udev-rule-path.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: pciutils-devel BuildRequires: pkgconfig BuildRequires: zlib-devel # to figure out how to name/location of the rules file BuildRequires: libudev-devel # because of mkinitrd_setup in %post and %postun PreReq: mkinitrd # for ownership of /lib/udev/rules.d Requires: udev %define _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d %description biosdevname in its simplest form takes an kernel name 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). You can enable/disable usage of biosdevname with boot option "biosdevname=[0|1]" %prep %setup -q %patch2 -p1 %patch3 -p1 %patch4 -p1 %build # this is a udev rule, so it needs to live in / rather than /usr %configure --disable-rpath --prefix=/ --bindir=/bin --sbindir=/sbin make %{?_smp_mflags} cp %{S:1} . %install make install DESTDIR=$RPM_BUILD_ROOT rm %{buildroot}/sbin/%{name}S || : mkdir -p $RPM_BUILD_ROOT/lib/mkinitrd/scripts install -m 0755 setup-biosdevname.sh \ $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-biosdevname.sh # remain disabled by default perl -pi -e 's,^# GOTO,GOTO,g;' \ $RPM_BUILD_ROOT/%{_udevrulesdir}/*-biosdevname.rules %files %defattr(-,root,root,-) %doc COPYING README /sbin/%{name} %config(noreplace) %{_udevrulesdir}/*%{name}.rules %{_mandir}/man1/* /lib/mkinitrd/scripts/setup-biosdevname.sh %post /sbin/ldconfig mkinitrd_setup %postun /sbin/ldconfig mkinitrd_setup %changelog