+%{!?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: %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: %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: %global downstream_release "@DOWNSTREAM_RELEASE@"}
+
+%define buildid %(if [ -n "@BUILDID@" ]; then echo "_@BUILDID@"; fi)
+
+%{!?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: %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-
+# erator needs to be disabled
+# this is done with (reduce the double % down to a single %):
+#
+# %%global _use_internal_dependency_generator 0
+#
+# on SLES10, /usr/lib/rpm/macros already sets this, so no harm in also
+# defining it here (until Suse changes their mind)
+#
+# on RHEL5, however, we do need to explicitly disable the internal dep-
+# endency generator and allow the external one be used
+# but since RedHat's kABI is only a subset of the total kernel ABI, it
+# doesn't include all of the symbols we (or OFED for that matter) need
+# until RedHat includes all of the symbols we need in their symsets we
+# cannot support weak-modules
+# we did e-mail the maintainer of all of this stuff @redhat but got no
+# response from them
+#%%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")
+
+%if %sles10
+%define flavor %(bash -c "echo %{kversion} | sed -e 's/^.*-//'")
+%endif