From 0f9c4747281679d90497d8128239379daa5a1bc8 Mon Sep 17 00:00:00 2001 From: Minh Diep Date: Tue, 13 Sep 2016 15:42:59 -0700 Subject: [PATCH] LU-8519 build: make SLES use lbuild kernel-devel SLES %kernel_module_package assume kernel-devel installed in standard location /usr/src/. However, lbuild extracts kernel-devel into its location; so we need to change %kernel_module_package macros to use lbuild's kernel obj Create a cleanup_rpmmacros to remove the change afterward Test-parameters: trivial Change-Id: I8f1d8ac50436455be23e15b0a277afb6c7def7c3 Signed-off-by: Minh Diep Reviewed-on: http://review.whamcloud.com/22484 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Bob Glossman Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin --- contrib/lbuild/lbuild | 3 +++ contrib/lbuild/lbuild-rhel7 | 4 ++++ contrib/lbuild/lbuild-sles | 24 ++++++++++++++++++++---- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/contrib/lbuild/lbuild b/contrib/lbuild/lbuild index 83a40e5..cac706e 100755 --- a/contrib/lbuild/lbuild +++ b/contrib/lbuild/lbuild @@ -843,6 +843,9 @@ build_lustre() { mv -f lustre-*.src.rpm $TOPDIR/SRPMS/ popd >/dev/null + if type -p cleanup_rpmmacros; then + cleanup_rpmmacros + fi return 0 } diff --git a/contrib/lbuild/lbuild-rhel7 b/contrib/lbuild/lbuild-rhel7 index e7c1766..d831430 100644 --- a/contrib/lbuild/lbuild-rhel7 +++ b/contrib/lbuild/lbuild-rhel7 @@ -104,3 +104,7 @@ kernel_srpm_location() { echo "http://vault.centos.org/centos/7/updates/Source/SPackages/" } + +cleanup_rpmmacros() { + sed -i "/^%kernel_module_package/,/^)}$/d" $RMAC +} diff --git a/contrib/lbuild/lbuild-sles b/contrib/lbuild/lbuild-sles index 6a9bebd..8ceccd0 100644 --- a/contrib/lbuild/lbuild-sles +++ b/contrib/lbuild/lbuild-sles @@ -6,6 +6,8 @@ BUILD_GEN+=".1" #LU-3337 add missing build files for sles11sp2 server DEVEL_KERNEL_TYPE="default-devel" RPM_HELPERS_DIR="/usr/lib/rpm" +RMAC=$HOME/.rpmmacros +SUSE_MACROS=/etc/rpm/macros.kernel-source prepare_and_build_srpm() { @@ -115,12 +117,21 @@ resolve_arch() { } find_linux_devel_paths() { - local path="$1" + local path="$1" + local linuxobjpath=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}-obj/$(resolve_arch $TARGET_ARCH $PATCHLESS)/$RPMSMPTYPE - LINUX=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel} - LINUXOBJ=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}-obj/$(resolve_arch $TARGET_ARCH $PATCHLESS)/$RPMSMPTYPE + LINUX=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel} + LINUXOBJ=$path/usr/src/linux-obj/$(resolve_arch $TARGET_ARCH $PATCHLESS)/$RPMSMPTYPE - return 0 + # symlink the linux-obj to linux-version-obj + ln -s $linuxobjpath $LINUXOBJ + + # We modify %kernel_module_package macro to use the linux obj + # that lbuild install, not the OS installed /usr/src + sed -i "/^%kernel_module_package/,/^)}$/d" $RMAC + sed -e "s/\/usr\/src/${path//\//\\/}\/usr\/src/" ${SUSE_MACROS} >> $RMAC + + return 0 } mcpu_rpmbuild_opt() { @@ -133,3 +144,8 @@ mcpu_rpmbuild_opt() { find_linux_release() { _find_linux_release $LINUXOBJ } + +# cleanup the modified/added rpmmacros +cleanup_rpmmacros() { + sed -i "/^%kernel_module_package/,/^)}$/d" $RMAC +} -- 1.8.3.1