%define module amdgpu %define modsrc %{buildroot}/usr/src/%{module}-%{version}-%{release} %define dracutd %{_sysconfdir}/dracut.conf.d %define force %{_datadir}/dkms/modules_to_force_install Summary: The amdgpu Linux kernel driver Name: amdgpu-dkms Version: 5.4.7.53 Release: 1048554%{?dist} Epoch: 1 Group: System Environment/Kernel License: GPLv2 and Redistributable, no modification permitted BuildArch: noarch URL: http://www.amd.com/ Source1: rbh.sh Source2: rbh.conf Source100: dkms.rbh Source101: firmware.rbh Source102: dkms-5.4.7.53.tar.gz Source103: utils-20.10.tar.gz Source104: firmware-20.10.tar.gz Patch0: 0001-drm-amd-dkms-use-amdgpu-as-dkms-package-name-to-be-c.patch Requires: amdgpu-core Obsoletes: kernel-debug-devel %if 0%{?suse_version} Requires: kernel-syms %else Requires: kernel-devel %endif Requires: %{name}-firmware = %{epoch}:%{version}-%{release} Requires(post): %{name}-firmware = %{epoch}:%{version}-%{release} Requires: gcc, make Requires: dkms >= 1.95 BuildRequires: git BuildRequires: autoconf BuildRequires: automake Provides: %{module}-kmod = %{version}-%{release} %description The AMD display driver kernel module in DKMS format for AMD graphics S/W %package firmware Summary: Firmware for %{name} Requires: amdgpu-core %description firmware The AMD display driver firmware blobs used by kernel module in DKMS format %prep tar -C %{_sourcedir} -zxvf %{SOURCE102} tar -C %{_sourcedir} -zxvf %{SOURCE103} tar -C %{_sourcedir} -zxvf %{SOURCE104} %{SOURCE1} --prep dkms_uni %setup -D -T -n linux pushd %{_sourcedir}/linux %patch0 -p1 popd %build %{SOURCE1} --build dkms_uni %install %{SOURCE1} --install dkms_uni cat << EOF >> %{modsrc}/pre-build.sh FW_DIR="/lib/firmware/\$KERNELVER" mkdir -p \$FW_DIR cp -ar /usr/src/%{module}-%{version}-%{release}/firmware/amdgpu \$FW_DIR echo "add_drivers+=\" amdgpu \"" >%{dracutd}/%{module}-\$KERNELVER.conf echo "fw_dir+=\"\$FW_DIR\"" >>%{dracutd}/%{module}-\$KERNELVER.conf EOF cat << EOF > %{modsrc}/post-remove.sh #!/bin/bash FW_DIR="/lib/firmware" rm -rf \$FW_DIR/*/amdgpu [[ ! \$(ls -A \$FW_DIR) ]] && rm -rf \$FW_DIR rm -f %{dracutd}/%{module}-*.conf EOF chmod +x %{modsrc}/post-remove.sh cat << EOF >> %{modsrc}/dkms.conf POST_REMOVE="post-remove.sh \$kernelver" EOF mkdir -p %{buildroot}/%{force} cat << EOF >> %{buildroot}/%{force}/%{module} %{module} EOF %pre cat << EOF > %{_sysconfdir}/modprobe.d/blacklist-amdgpu.conf blacklist amdgpu EOF %post rc=0 postinst=/usr/lib/dkms/common.postinst if [ -x $postinst ]; then $postinst %{module} %{version}-%{release} rc=$? else echo "WARNING: $postinst does not exist." fi if [ ! $rc ]; then echo -e "ERROR: DKMS version is too old and %{module} was not" echo -e "built with legacy DKMS support." echo -e "You must either rebuild %{module} with legacy postinst" echo -e "support or upgrade DKMS to a more current version." fi rm -f %{_sysconfdir}/modprobe.d/blacklist-amdgpu.conf exit $rc %preun dkms remove -m %{module} -v %{version}-%{release} --all --rpm_safe_upgrade exit $? %postun if [ $1 == 0 ]; then rm -f %{dracutd}/%{module}-*.conf fi exit $? %clean rm -rf %{buildroot} %{_builddir}/linux rm -rf %{_sourcedir}/linux rm -rf %{_sourcedir}/utils rm -rf %{_sourcedir}/linux-firmware %files %config %{_sysconfdir}/modprobe.d/blacklist-radeon.conf %config %{_sysconfdir}/udev/rules.d/70-%{module}.rules /usr/src/%{module}-%{version}-%{release} %exclude /usr/src/%{module}-%{version}-%{release}/firmware %dir %{force} %{force}/%{module} %{_docdir}/amdgpu-dkms %files firmware %license LICENSE.firmware /usr/src/%{module}-%{version}-%{release}/firmware %{_docdir}/amdgpu-dkms-firmware %changelog * Wed Apr 08 2020 AMD automated build system 5.4.7.53-1048554.el8 - linux - gerritgit/releases/amd-20.10 - 40e7f46b521bc8e1f9e496be727dea5ee3cc9d08 - build ID: 1048554