X-Git-Url: https://git.whamcloud.com/gitweb?a=blobdiff_plain;f=lustre.spec.in;h=d5ec2b685885727f97f43297b0ab79b39ee91930;hb=c81b47a724dd4414b8bd79eb99b9737a70fd5855;hp=ff26158582206924f8023aac68fa3e2a398f965c;hpb=7bad15c69c8baef6965db2d296e5b5175670af6a;p=fs%2Flustre-release.git diff --git a/lustre.spec.in b/lustre.spec.in index ff26158..d5ec2b6 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -1,7 +1,22 @@ # lustre.spec %{!?version: %define version @VERSION@} -%{!?kversion: %define kversion @LINUXRELEASE@} -%{!?release: %define release @RELEASE@} +%{!?kver: %define kver ""} +%{!?kdir: %define kdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else if [ -n "%kver" ]; then kversion="%kver"; else kversion="$(uname -r)"; fi; echo "/lib/modules/$kversion/source"; fi)} + +%{!?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)} + +%{!?downstream_release: %define downstream_release "@DOWNSTREAM_RELEASE@"} + +%define buildid %(if [ -n "@BUILDID@" ]; then echo "_@BUILDID@"; fi) + +%{!?myrelease: %define myrelease %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; echo %kversion | tr '-' '_')} + +# always append the buildid, even when the caller defines %release +%define fullrelease %{myrelease}%{buildid} + %{!?lustre_name: %define lustre_name lustre} %{!?build_lustre_tests: %define build_lustre_tests 1} @@ -26,8 +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 on the end of %kversion -%define krequires %(bash -c "echo %{kversion} | sed -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/-ppc64$//' -e 's/-default$//'") +# 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") @@ -38,7 +54,7 @@ Summary: Lustre File System Name: %{lustre_name} Version: %{version} -Release: %{release} +Release: %{fullrelease} License: GPL Group: Utilities/System Source: lustre-%{version}.tar.gz @@ -143,13 +159,29 @@ cd $RPM_BUILD_DIR/lustre-%{version} # override %optflags so that the vendor's overzealous flags don't create # build failures %define optflags -g -O2 -Werror -CONFIGURE_ARGS="" +CONFIGURE_ARGS="%{?configure_args} --with-release=%release" %if %{build_lustre_tests} CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-tests --enable-liblustre-tests" %else CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-tests --disable-liblustre-tests" %endif -%configure %{?configure_args:%configure_args} $CONFIGURE_ARGS + +# if %%kdir was given, make sure it's not in the configure arguments +if [ -n "%kdir" ]; then + CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux=[^ ][^ ]* \?//') +fi +# ditto for %%kobjdir +if [ -n "%kobjdir" ]; then + CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux-obj=[^ ][^ ]* \?//') +fi + +# we need to eval "configure" because $CONFIGURE_ARGS could have a quoted +# string in it which we don't want word splitted by the shell +%define eval_configure %(echo '%configure' | sed -e 's#\./configure#eval ./configure#') + +%eval_configure \ + %{?kdir: --with-linux=%kdir} %{?kobjdir: --with-linux-obj=%kobjdir} \ + $CONFIGURE_ARGS make -j $RPM_BUILD_NCPUS -s %install @@ -232,6 +264,7 @@ fi %endif pushd $RPM_BUILD_ROOT >/dev/null +> $RPM_BUILD_DIR/lustre-%{version}/lustre-modules.files find lib/modules/%{kversion}/updates -type f | awk "!/(ZZZZZZZZZZ$modules_excludes)/ {print \"%attr(-, root, root) /\"\$0}" >>$RPM_BUILD_DIR/lustre-%{version}/lustre-modules.files popd >/dev/null