if MODULES
if BUILT_IN_KO2IBLND
modulenet_DATA = in-kernel-ko2iblnd$(KMODEXT)
-in-kernel-ko2iblnd$(KMODEXT): sources
+ko2iblnd$(KMODEXT): sources
+in-kernel-ko2iblnd$(KMODEXT): ko2iblnd$(KMODEXT)
+ cp -vf ko2iblnd$(KMODEXT) in-kernel-ko2iblnd$(KMODEXT)
if EXTERNAL_KO2IBLND
else
-ko2iblnd$(KMODEXT): in-kernel-ko2iblnd$(KMODEXT)
- cp -vf in-kernel-ko2iblnd$(KMODEXT) ko2iblnd$(KMODEXT)
-
install-exec-hook:
(cd "$(DESTDIR)$(modulenetdir)"; \
$(LN_S) -f in-kernel-ko2iblnd$(KMODEXT) ko2iblnd$(KMODEXT))
if MODULES
if BUILT_IN_KO2IBLND
-if EXTERNAL_KO2IBLND
-# in-kernel and mofed
-all-local: $(in-kernel-ko2iblnd_headers) $(in-kernel-ko2iblnd_sources)
-else
-# in-kernel-only
-all-local: $(in-kernel-ko2iblnd_headers) $(in-kernel-ko2iblnd_sources) ko2iblnd$(KMODEXT)
-endif
+all-local: $(in-kernel-ko2iblnd_headers) $(in-kernel-ko2iblnd_sources) in-kernel-ko2iblnd$(KMODEXT)
endif
endif
CLEANFILES = $(in-kernel-ko2iblnd_headers) $(in-kernel-ko2iblnd_sources)
clean-local:
- rm -rf $(in-kernel-ko2iblnd_headers) $(in-kernel-ko2iblnd_sources) ko2iblnd$(KMODEXT)
+ rm -rf $(in-kernel-ko2iblnd_headers) $(in-kernel-ko2iblnd_sources) ko2iblnd$(KMODEXT) in-kernel-ko2iblnd$(KMODEXT)
%global krequires %(echo %{kver} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/[-.]ppc64$//' -e 's/\.aarch64$//' -e 's/-default$//' -e 's/-%{_flavor}//')
%if "%{_vendor}" == "redhat" || "%{_vendor}" == "fedora" || 0%{?openEuler}
- %global requires_kmod_name kmod-%{lustre_name}
- %global requires_kmod_osd_zfs_name kmod-%{lustre_name}-osd-zfs
- %if %{with lustre_tests}
- %global requires_kmod_tests_name kmod-%{lustre_name}-tests
- %endif
+ %global kmod_prefix kmod-
+ %global kmod_postfix %{nil}
+ %global kmod_flavor %{nil}
%global requires_kmod_version %{version}
- %global kmod_devel_pkg kmod-%{lustre_name}-devel
#for Suse
%else
- %global requires_kmod_name %{lustre_name}-kmp
- %global requires_kmod_osd_zfs_name %{lustre_name}-osd-zfs-kmp
- %if %{with lustre_tests}
- %global requires_kmod_tests_name %{lustre_name}-tests-kmp
- %endif
+ %global kmod_prefix %{nil}
+ %global kmod_postfix -kmp
+ %global kmod_flavor -%{_flavor}
%if 0%{?suse_version} >= 1200
%global requires_kmod_version %{version}_k%(echo %{krequires} | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/;')
%else
%global requires_kmod_version %{version}_%(echo %{krequires} | sed -r 'y/-/_/; s/^(2\.6\.[0-9]+)_/\\1.0_/;')
%endif
- %global kmod_devel_pkg %{lustre_name}-kmp-devel
%endif
+%global requires_kmod_name %{kmod_prefix}%{lustre_name}%{kmod_postfix}
+%global requires_kmod_osd_zfs_name %{kmod_prefix}%{lustre_name}-osd-zfs%{kmod_postfix}
+%if %{with lustre_tests}
+ %global requires_kmod_tests_name %{kmod_prefix}%{lustre_name}-tests%{kmod_postfix}
+%endif
+%global kmod_devel_pkg %{kmod_prefix}%{lustre_name}%{kmod_postfix}-devel
%global requires_release_major_minor %(echo %version | cut -d. -f1).%(echo %version | cut -d. -f2)
%endif
# begin multiple_lnds
%kernel_module_package -n %{name}-lnet-socklnd -p %SOURCE11 -f %SOURCE12 %{_flavor}
%if %{with o2ib}
-## re-write post/preun generated by kmodtool [ls -s and rm -f]
+## in-kernel: re-write post/preun generated by kmodtool [ls -s and rm -f]
%define inkernmod %{modules_fs_path}/%{lustre_name}/net/in-kernel-ko2iblnd.ko
%define inkernsym %{modules_fs_path}/%{lustre_name}/net/ko2iblnd.ko
+%if 0%{?rhel} >= 8 || 0%{?fedora} >= 34
+%define inkernpost %%posttrans -n %{kmod_prefix}%{name}-lnet-in-kernel-o2iblnd%{kmod_postfix}%{kmod_flavor}
+%define inkernaction ln -sf %{inkernmod} %{inkernsym}
+%else
+%define inkernpost %{nil}
+%define inkernaction %{nil}
+%endif
%define ofed_module_package %{expand:%(
TMPFILE=`mktemp`
cat <<EOF > $TMPFILE
%kernel_module_package -n %{name}-lnet-in-kernel-o2iblnd -p %SOURCE19 -f %SOURCE20 %{_flavor}
+%inkernpost
+%inkernaction
EOF
-sed -i -e '/^%%post.*/a ln -sf %{inkernmod} %{inkernsym}' -e '/^%%preun.*/a rm -f %{inkernsym}' $TMPFILE
+sed -i -e '/^%%post .*/a ln -sf %{inkernmod} %{inkernsym}' -e '/^%%preun.*/a if test -L %{inkernsym}; then rm -f %{inkernsym} ; fi' $TMPFILE
echo $TMPFILE
)}
%{expand:%(cat '%{ofed_module_package}')}
%endif
+## mofed: add a posttrans rule on el8 and later
%if %{with mofed}
+%if 0%{?rhel} >= 8 || 0%{?fedora} >= 34
+%define exkernmod %{modules_fs_path}/%{lustre_name}/net/ko2iblnd.ko
+%define exkernpost %%posttrans -n %{kmod_prefix}%{name}-lnet-o2iblnd%{kmod_postfix}%{kmod_flavor}
+%define exkernaction if test -L %{exkernmod}; then rm -f %{exkernmod}; fi
+%else
+%define exkernpost %{nil}
+%define exkernaction %{nil}
+%endif
+%define ext_ofed_module_package %{expand:%(
+TMPEXT=`mktemp`
+cat <<EOF > $TMPEXT
%kernel_module_package -n %{name}-lnet-o2iblnd -p %SOURCE13 -f %SOURCE14 %{_flavor}
+%exkernpost
+%exkernaction
+EOF
+echo $TMPEXT
+)}
+%{expand:%(cat '%{ext_ofed_module_package}')}
%endif
%if %{with gni}
%kernel_module_package -n %{name}-lnet-gnilnd -p %SOURCE15 -f %SOURCE16 %{_flavor}