+#
+# Conditional build:
+%bcond_without udev # device names resolving fallback using HWDB
+
Summary: Linux PCI utilities
Summary(cs.UTF-8): Linuxové utility pro PCI
Summary(da.UTF-8): PCI-bus-relaterede værktøjer
Summary(uk.UTF-8): Утиліти роботи з PCI пристроями
Summary(zh_CN.UTF-8): PCI 总线相关的工具。
Name: pciutils
-Version: 2.2.4
+Version: 3.5.0
Release: 1
-License: GPL
+License: GPL v2+
Group: Applications/System
Source0: ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/%{name}-%{version}.tar.gz
-# Source0-md5: 5629fdb049f189fb853e7021f85553d2
+# Source0-md5: 6eeea209e4eea9eb8ce3faaedb3a10d0
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: 1ac48f433b1995044e14c24513992211
-Source2: http://pciids.sourceforge.net/pci.ids
-# NoSource2-md5: 9c87ad014531ef6225dec3646ca89829
-Patch0: %{name}-devel.patch
-Patch1: %{name}-pci_h.patch
-Patch2: %{name}-pcimodules.patch
-URL: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml
+Patch0: %{name}-pci_h.patch
+Patch1: %{name}-pcimodules.patch
+Patch2: %{name}-nowhich.patch
+Patch3: %{name}-pci_init-error.patch
+Patch4: hwdata.patch
+URL: http://mj.ucw.cz/pciutils.html
+BuildRequires: kmod-devel
+%{?with_udev:BuildRequires: udev-devel}
BuildRequires: zlib-devel
+Requires: %{name}-libs = %{version}-%{release}
+Requires: hwdata >= 0.243-2
+Conflicts: xorg-lib-libpciaccess < 0.13.1-2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _exec_prefix /
%define _libdir %{_prefix}/%{_lib}
-%define _datadir /etc
%define _sbindir /sbin
+%define hwdatadir /lib/hwdata
+
+%define specflags -fomit-frame-pointer
%description
This package contains various utilities for inspecting and setting of
пристроїв, під'єднаних до PCI шини. Для роботи ці утиліти потребують
наявності інтерфейсу /proc/bus/pci.
+%package libs
+Summary: Linux PCI library
+Summary(pl.UTF-8): Biblioteka Linux PCI
+Group: Libraries
+Conflicts: pciutils < 3.3.1-2
+
+%description libs
+This package contains a library for inspecting and setting devices
+connected to the PCI bus.
+
+%description libs -l pl.UTF-8
+Ten pakiet zawiera bibliotekę do badania i konfiguracji urządzeń
+podłączonych do szyny PCI.
+
%package devel
Summary: Linux PCI development library
Summary(cs.UTF-8): Linuxová vývojová knihovna pro PCI
Summary(uk.UTF-8): Хедери та інші файли для розробки програм, що працюють з шиною PCI
Summary(zh_CN.UTF-8): Linux PCI 开发程序库。
Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
Requires: zlib-devel
%description devel
%description devel -l zh_CN.UTF-8
此软件包包含一个程序库,用于检查和设置与 PCI 总线连接的设备。
+%package static
+Summary: Static version of PCI library
+Summary(pl.UTF-8): Statyczna wersja biblioteki PCI
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static version of PCI library.
+
+%description static -l pl.UTF-8
+Statyczna wersja biblioteki PCI.
+
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
-# paranoid check whether pci.ids in _sourcedir isn't too old
-if [ "`wc -l < %{SOURCE2}`" -lt "`wc -l < pci.ids`" ] ; then
- echo "pci.ids needs to be updated"
- exit 1
-fi
-cp -f %{SOURCE2} .
+%{__rm} pci.ids
-cp -rf lib pci
+ln -sf lib pci
%build
-%{__make} lib/config.h pci/config.h \
- SHAREDIR=%{_datadir}
+%define config ZLIB=yes DNS=yes SHARED=yes LIBKMOD=yes %{?with_udev:HWDB=yes}%{!?with_udev:HWDB=no} PCI_IDS=
-%{__make} -C lib \
+%{__make} lib/libpci.a \
+ %{config} SHARED=no \
CC="%{__cc}" \
- CFLAGS="%{rpmcflags} -fPIC"
+ OPT="%{rpmcppflags} %{rpmcflags}" \
+ PREFIX=%{_prefix} \
+ INCDIR=%{_includedir} \
+ LIBDIR=%{_libdir}
+
+%{__rm} lib/*.o lib/config.h lib/config.mk lib/libpci.pc
%{__make} \
+ %{config} \
CC="%{__cc}" \
- OPT="%{rpmcflags} %{!?debug:-fomit-frame-pointer}" \
- SHAREDIR=%{_sysconfdir}
+ OPT="%{rpmcflags}" \
+ LDFLAGS="%{rpmldflags}" \
+ PREFIX=%{_prefix} \
+ INCDIR=%{_includedir} \
+ LIBDIR=%{_libdir}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sbindir},%{_datadir},%{_mandir}/man8,%{_libdir},%{_includedir}/pci}
+%{__make} install install-lib \
+ DESTDIR=$RPM_BUILD_ROOT \
+ %{config} \
+ INSTALL="install -p" \
+ PREFIX=%{_prefix} \
+ LIBDIR=%{_libdir} \
+ SBINDIR=%{_sbindir} \
+
+install -d $RPM_BUILD_ROOT/%{_lib}
+mv $RPM_BUILD_ROOT%{_libdir}/libpci.so.* $RPM_BUILD_ROOT/%{_lib}
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libpci.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpci.so
+/sbin/ldconfig -n $RPM_BUILD_ROOT/%{_lib}
+
+# let rpm find deps
+chmod 755 $RPM_BUILD_ROOT/%{_lib}/libpci.so.*
+
+cp -p lib/libpci.a $RPM_BUILD_ROOT%{_libdir}
+
+install -p pcimodules $RPM_BUILD_ROOT%{_sbindir}
+# private pciutils header, what does it use?
+cp -p pciutils.h $RPM_BUILD_ROOT%{_includedir}/pci
-install lspci setpci pcimodules $RPM_BUILD_ROOT%{_sbindir}
-install *.h lib/[chts]*.h $RPM_BUILD_ROOT%{_includedir}/pci
-install *.8 $RPM_BUILD_ROOT%{_mandir}/man8
-install pci.ids $RPM_BUILD_ROOT%{_datadir}
-install lib/libpci.a $RPM_BUILD_ROOT%{_libdir}
bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-cp -f lib/pci.h $RPM_BUILD_ROOT%{_includedir}/pci
-rm -f $RPM_BUILD_ROOT%{_mandir}/{README.pciutils-non-english-man-pages,/pciutils-non_en_man.patch}
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/{README.pciutils-non-english-man-pages,/pciutils-non_en_man.patch}
%clean
rm -rf $RPM_BUILD_ROOT
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
%doc ChangeLog README TODO
-%{_datadir}/pci.ids
-%attr(755,root,root) %{_sbindir}/*
-%{_mandir}/man8/*
+%attr(755,root,root) %{_sbindir}/lspci
+%attr(755,root,root) %{_sbindir}/setpci
+%attr(755,root,root) %{_sbindir}/pcimodules
+%attr(755,root,root) %{_sbindir}/update-pciids
+%{_mandir}/man7/pcilib.7*
+%{_mandir}/man8/lspci.8*
+%{_mandir}/man8/setpci.8*
+%{_mandir}/man8/update-pciids.8*
%lang(ja) %{_mandir}/ja/man8/*
%lang(pl) %{_mandir}/pl/man8/*
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/libpci.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libpci.so.3
+
%files devel
%defattr(644,root,root,755)
-%{_libdir}/libpci.a
+%attr(755,root,root) %{_libdir}/libpci.so
%dir %{_includedir}/pci
%{_includedir}/pci/*.h
+%{_pkgconfigdir}/libpci.pc
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libpci.a