X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre.spec.in;h=ae67085272115253f0fd2113e84c4b6eabc9d4dc;hb=1bdeabf2eb49e6c3dcfe83994b59426b36e724a0;hp=c644ff3bf539c61a3b4b578094aafb253d026d74;hpb=3d6db8ae1070fbf9048bb5d949ff7c6d2dfa758d;p=fs%2Flustre-release.git diff --git a/lustre.spec.in b/lustre.spec.in index c644ff3..ae67085 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -6,7 +6,7 @@ %{!?kobjdir: %define kobjdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux-obj=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else if [ -n "%kver" ]; then kversion="%kver"; else kversion="$(uname -r)"; fi; if [ "%kdir" = "/lib/modules/$kversion/source" ]; then echo "/lib/modules/$kversion/build"; else echo "%kdir"; fi; fi)} # as an alternative to this implementation we could simply "make -C $kdir kernelversion" -%{!?kversion: %define kversion %(if test -s %kobjdir/include/linux/utsrelease.h ; then LINUXRELEASEHEADER=utsrelease.h; else LINUXRELEASEHEADER=version.h; fi; sed -ne '/^#define UTS_RELEASE/s/.*"\\(.*\\)"$/\\1/p' %kobjdir/include/linux/$LINUXRELEASEHEADER)} +%{!?kversion: %define kversion %(if test -s %kobjdir/include/generated/utsrelease.h ; then LINUXRELEASEHEADER=%kobjdir/include/generated/utsrelease.h ; elif test -s %kobjdir/include/linux/utsrelease.h ; then LINUXRELEASEHEADER=%kobjdir/include/linux/utsrelease.h ; else LINUXRELEASEHEADER=%kobjdir/include/linux/version.h; fi; sed -ne '/^#define UTS_RELEASE/s/.*"\\(.*\\)"$/\\1/p' $LINUXRELEASEHEADER)} %{!?downstream_release: %define downstream_release "@DOWNSTREAM_RELEASE@"} @@ -41,6 +41,9 @@ #%%global _use_internal_dependency_generator 0 %define is_client %(bash -c "if [[ %{lustre_name} = *-client ]]; then echo -n '1'; else echo -n '0'; fi") +# for those uses that don't want the -smp/-bigsmp (or the .arch) on the end +# of %kversion +%define krequires %(bash -c "echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/-ppc64$//' -e 's/-default$//'") %define sles10 %(bash -c "if [ "%sles_version" = "10" ]; then echo -n '1'; else echo -n '0'; fi") @@ -67,10 +70,16 @@ Userspace tools and files for the Lustre file system. %package modules Summary: Kernel Lustre modules for Linux %{kversion} -# for RHEL5 and SLES11, we need nothing here +# for SLES11, we need nothing here # for SLES10, we need (where %{flavor} is, i.e. smp): %if %sles10 Requires: kernel-%{flavor} +%else +%if %{_vendor}=="redhat" || %{_vendor}=="fedora" +# for RHEL we need to require the specific kernel still since weak-modules +# support on RH is, well, weak, to be punny about it +Requires: kernel = %{krequires} +%endif %endif %if ! %{is_client} Requires: lustre-backend-fs @@ -216,13 +225,22 @@ cat >lustre.files <>lustre.files fi -if [ -f $RPM_BUILD_DIR/lustre-%{version}/lustre/utils/libiam.c ] ; then +if [ -f $RPM_BUILD_ROOT%{_libdir}/libiam.a ] ; then echo '%attr(-, root, root) %{_libdir}/libiam.a' >>lustre.files fi @@ -293,15 +311,16 @@ else depmod -ae %{kversion} || exit 0 fi +MODULES_RPM_NAME=$(rpm -q %{name}-modules | grep "%{version}-%{release}") # "weak modules" support # Suse if [ -x /usr/lib/module-init-tools/weak-modules ]; then - rpm -ql %{name}-modules-%{version}-%{release} | grep '\.ko$' | + rpm -ql $MODULES_RPM_NAME | grep '\.ko$' | /usr/lib/module-init-tools/weak-modules --add-modules fi # RedHat if [ -x /sbin/weak-modules ]; then - rpm -ql %{name}-modules-%{version}-%{release} | grep '\.ko$' | + rpm -ql $MODULES_RPM_NAME | grep '\.ko$' | /sbin/weak-modules --add-modules fi @@ -321,7 +340,8 @@ if sysctl kernel.unsupported >/dev/null 2>&1 && fi %preun modules -rpm -ql %{name}-modules-%{version}-%{release} | grep '\.ko$' > /var/run/%{name}-modules +MODULES_RPM_NAME=$(rpm -q %{name}-modules | grep "%{version}-%{release}") +rpm -ql $MODULES_RPM_NAME | grep '\.ko$' > /var/run/%{name}-modules || true %postun modules if [ -f /boot/System.map-%{kversion} ]; then @@ -333,12 +353,12 @@ fi # "weak modules" support # Suse if [ -x /usr/lib/module-init-tools/weak-modules ]; then - cat /var/run/%{name}-modules | grep '\.ko$' | + cat /var/run/%{name}-modules | /usr/lib/module-init-tools/weak-modules --remove-modules fi # RedHat if [ -x /sbin/weak-modules ]; then - cat /var/run/%{name}-modules | grep '\.ko$' | + cat /var/run/%{name}-modules | /sbin/weak-modules --remove-modules fi rm /var/run/%{name}-modules