Skip to content
Snippets Groups Projects
Commit 5b1e2881 authored by Christopher J. Morrone's avatar Christopher J. Morrone Committed by Oleg Drokin
Browse files

LU-1199 build: Change various %defines to %globals


As a general rule, "%define" should not be used inside
of %{ } blocks.  %define is locally scoped.  While it
appears to work with constructs like this:

   %{!?foo: %define foo bar}

that is only because of an rpm quirk that fails to
free non-global scope variables immediately.  Later use
of parameterized macros in the file can trigger cleanup
of the local variables, and "foo" will be once again
undefined.

The solution is to use %global like so:

   %{!?foo: %global foo bar}

Signed-off-by: default avatarChristopher J. Morrone <morrone2@llnl.gov>
Change-Id: Ie18b0b86324334330b726bf69249d97e47e9350e
Reviewed-on: http://review.whamcloud.com/3420


Tested-by: Hudson
Tested-by: default avatarMaloo <whamcloud.maloo@gmail.com>
Reviewed-by: default avatarAndreas Dilger <adilger@whamcloud.com>
Reviewed-by: default avatarKeith Mannthey <keith.mannthey@intel.com>
Reviewed-by: default avatarOleg Drokin <green@whamcloud.com>
parent cbefadd8
No related branches found
No related tags found
No related merge requests found
# lustre.spec
%{!?version: %define version @VERSION@}
%{!?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)}
%{!?version: %global version @VERSION@}
%{!?kver: %global kver ""}
%{!?kdir: %global 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)}
%{!?kobjdir: %global 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/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)}
%{!?kversion: %global 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@"}
%{!?downstream_release: %global 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 '-' '_')}
%{!?myrelease: %global 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}
%{!?lustre_name: %global lustre_name lustre}
%{!?build_lustre_tests: %global build_lustre_tests 1}
# in order to get kernel symset and/or kernel module dependencies into
# the RPM, in order to support weak-modules, the internal dependency gen-
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment