File r8168.spec of Package r8168

#
# spec file for package r8168
#
# Copyright (c) 2019 Packman Team <packman@links2linux.de>
# Copyright (c) 2017 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 https://bugs.links2linux.org/
#

#!BuildIgnore: enough-build-resources
Name:           r8168
Version:        8.048.00
Release:        0
Summary:        Device driver for RealTek Gigabit Ethernet controllers
License:        GPL-2.0-or-later
Group:          System/Kernel
# Compare with https://github.com/mtorromeo/r8168 and
# http://www.realtek.com.tw/Downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2
URL:            https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
Source0:        %{name}-%{version}.tar.bz2
Source1:        preamble
Source2:        Module.supported
Patch0:         r8168-kernel_version.patch
Patch1:         r8168-configuration.patch
BuildRequires:  kernel-source
BuildRequires:  kernel-syms
BuildRequires:  libelf-devel
BuildRequires:  module-init-tools
Requires:       r8168-kmp
ExclusiveArch:  %{ix86} x86_64
%kernel_module_package -p preamble

%description
This is the Linux device driver released for RealTek RTL8168B/8111B,
RTL8168C/8111C, RTL8168CP/8111CP, RTL8168D/8111D, RTL8168DP/8111DP,
and RTL8168E/8111E Gigabit Ethernet controllers with PCI-Express interface.

%package blacklist-r8169
Summary:        To favour r8168 blacklist the r8169 device driver
Group:          Hardware/Wifi
##BuildArch:      noarch
Requires:       %{name}-kmp = %{version}

%description blacklist-r8169
On many Realtek Ethernet controllers the old device driver r8169 does
not work reliably.  To solve this the r8169 kernel module has to be
blacklisted to enable the system to load the new device driver r8168.

%prep
%setup -q
%patch0 -b .p0
%patch1 -b .p1
cp %{S:1} .
cp %{S:2} .

%build
ln -sf $(type -p kmod) modinfo
mkdir obj
for flavor in %{flavors_to_build}
do
    rm   -rf obj/$flavor
    cp   -rp src obj/$flavor
    make -C %{kernel_source $flavor} M=$PWD/obj/$flavor modules
    ./modinfo -F alias $(find $PWD/obj/$flavor/ -name '%{name}.ko')
done

%install
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=updates
for flavor in %{flavors_to_build}
do
    make -C %{kernel_source $flavor} M=$PWD/obj/$flavor modules_install
done
mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d/
cat > %{buildroot}%{_sysconfdir}/modprobe.d/50-blacklist-r8169.conf<<-'EOF'
	# On many Realtek Ethernet controllers the old device driver r8169 does
	# not work reliably.  To solve this the r8169 kernel module has to be
	# blacklisted to enable the system to load the new device driver r8168.
	blacklist r8169
	EOF

%files blacklist-r8169
%config %{_sysconfdir}/modprobe.d/50-blacklist-r8169.conf

%changelog