dkms/dkms.spec

149 lines
4.4 KiB
RPMSpec
Raw Normal View History

2020-02-14 12:30:39 +08:00
Summary: Dynamic Kernel Module Support Framework
Name: dkms
2023-10-23 17:50:41 +08:00
Version: 3.0.12
Release: 1
2020-02-14 12:30:39 +08:00
License: GPLv2+
BuildArch: noarch
URL: https://github.com/dell/dkms
2020-09-11 11:15:48 +08:00
Source0: https://github.com/dell/dkms/archive/v%{version}.tar.gz#/dkms-%{version}.tar.gz
2020-02-14 12:30:39 +08:00
# because Mandriva calls this package dkms-minimal
Provides: dkms-minimal = %{version}
Requires: coreutils
Requires: cpio
Requires: findutils
Requires: gawk
Requires: gcc
Requires: clang llvm lld
2020-02-14 12:30:39 +08:00
Requires: grep
Requires: gzip
Requires: kernel-devel
Requires: sed
Requires: tar
Requires: which
Requires: bash > 1.99
Requires: kmod
BuildRequires: systemd
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires: kernel-devel
2023-10-23 17:50:41 +08:00
Recommends: openssl
2020-02-14 12:30:39 +08:00
%description
This package contains the framework for the Dynamic Kernel Module Support (DKMS)
method for installing module RPMS as originally developed by Dell.
%prep
%autosetup -p1
2020-02-14 12:30:39 +08:00
%build
%triggerpostun -- %{name} < 1.90.00-1
for dir in `find %{_localstatedir}/%{name} -type d -maxdepth 1 -mindepth 1`; do
mv -f $dir %{_localstatedir}/lib/%{name}
done
[ -e %{_sysconfdir}/dkms_framework.conf ] && ! [ -e %{_sysconfdir}/%{name}/framework.conf ] && mkdir %{_sysconfdir}/%{name} && cp -a %{_sysconfdir}/dkms_framework.conf %{_sysconfdir}/%{name}/framework.conf
arch_used=""
[ `uname -m` == "x86_64" ] && [ `cat /proc/cpuinfo | grep -c "Intel"` -gt 0 ] && arch_used="ia32e" || arch_used=`uname -m`
echo ""
echo "ALERT! ALERT! ALERT!"
echo ""
echo "You are using a version of DKMS which does not support multiple system"
echo "architectures. Your DKMS tree will now be modified to add this support."
echo ""
echo "The upgrade will assume all built modules are for arch: $arch_used"
current_kernel=`uname -r`
dkms_tree="%{_localstatedir}/lib/%{name}"
source_tree="%{_prefix}/src"
tmp_location="/tmp"
dkms_frameworkconf="%{_sysconfdir}/%{name}/framework.conf"
. $dkms_frameworkconf 2>/dev/null
echo ""
echo "Fixing directories."
for directory in `find $dkms_tree -type d -name "module" -mindepth 3 -maxdepth 4`; do
dir_to_fix=`echo $directory | sed 's#/module$##'`
echo "Creating $dir_to_fix/$arch_used..."
mkdir $dir_to_fix/$arch_used
mv -f $dir_to_fix/* $dir_to_fix/$arch_used 2>/dev/null
done
echo ""
echo "Fixing symlinks."
for symlink in `find $dkms_tree -type l -name "kernel*" -mindepth 2 -maxdepth 2`; do
symlink_kernelname=`echo $symlink | sed 's#.*/kernel-##'`
dir_of_symlink=`echo $symlink | sed 's#/kernel-.*$##'`
cd $dir_of_symlink
read_link="$symlink"
while [ -L "$read_link" ]; do
read_link=`ls -l $read_link | sed 's/.*-> //'`
done
if [ `echo $read_link | sed 's#/# #g' | wc -w | awk {'print $1'}` -lt 3 ]; then
echo "Updating $symlink..."
ln -sf $read_link/$arch_used kernel-$symlink_kernelname-$arch_used
rm -f $symlink
fi
cd -
done
echo ""
%install
rm -rf $RPM_BUILD_ROOT
2023-10-23 17:50:41 +08:00
make install-redhat DESTDIR=%{buildroot}
# Move 40-dkms.install to read only area (no configuration file):
mkdir -p %{buildroot}%{_prefix}/lib/kernel/
mv %{buildroot}%{_sysconfdir}/kernel/install.d %{buildroot}%{_prefix}/lib/kernel/
sed -i -e 's/# modprobe_on_install="true"/modprobe_on_install="true"/g' %{buildroot}%{_sysconfdir}/%{name}/framework.conf
2020-02-14 12:30:39 +08:00
%clean
rm -rf $RPM_BUILD_ROOT
%post
systemctl enable %{name}.service>/dev/null 2>&1
%preun
if [ $1 -eq 0 ]; then
# Package removal, not upgrade
/bin/systemctl --no-reload disable %{name}.service >/dev/null 2>&1 || :
fi
%systemd_preun %{name}.service
%postun
%systemd_postun %{name}.service
%files
%defattr(-,root,root)
2023-10-23 17:50:41 +08:00
%doc COPYING README.md images
2020-02-14 12:30:39 +08:00
%{_unitdir}/%{name}.service
%{_prefix}/lib/%{name}
2023-10-23 17:50:41 +08:00
%{_prefix}/lib/kernel/install.d/40-%{name}.install
2020-02-14 12:30:39 +08:00
%{_mandir}/*/*
%{_sbindir}/%{name}
%{_localstatedir}/lib/%{name}
2023-10-23 17:50:41 +08:00
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/framework.conf
%dir %{_sysconfdir}/%{name}/framework.conf.d
2020-02-14 12:30:39 +08:00
# these dirs are for plugins - owned by other packages
%{_sysconfdir}/kernel/postinst.d/%{name}
%{_sysconfdir}/kernel/prerm.d/%{name}
2023-10-23 17:50:41 +08:00
%{_datadir}/bash-completion/completions/%{name}
2020-02-14 12:30:39 +08:00
%changelog
2023-10-23 17:50:41 +08:00
* Fri Oct 20 2023 chenyaqiang <chengyaqiang@huawei.com> - 3.0.12-1
- update to 3.0.12
* Tue Sep 19 2023 liyunfei <liyunfei@huawei.com> - 2.6.1-8
- Add clang compile support
* Mon Mar 27 2023 wangkai <wangkai385@h-partners.com> - 2.6.1-7
- Change deprecated egrep for grep -E
* Mon Sep 7 2020 Ge Wang <wangge20@huawei.com> - 2.6.1-6
2020-09-11 11:15:48 +08:00
- Modify the Source0 Url
2020-02-14 12:30:39 +08:00
* Fri Feb 14 2020 Tianfei <tianfei16@huawei.com> - 2.6.1-5
- Package init