From 2709f948faf8f5296c40f4b8a4a942fa9ad9200f Mon Sep 17 00:00:00 2001 From: Phil Carns Date: Tue, 2 Jul 2019 13:34:58 -0400 Subject: opa-psm2 package: correct installation prefixes and add 11.2.77 (#11658) This PR corrects a problem with the opa-psm2 package. It was installing headers into /usr/include and libraries into /usr/lib instead of /include and /lib. The extra level of usr/ subdirectories causes dependent packages like libfabric to fail to build. --- .../opa-psm2/opa-psm2-install-prefix.patch | 78 ++++++++++++++++++++++ .../repos/builtin/packages/opa-psm2/package.py | 6 ++ 2 files changed, 84 insertions(+) create mode 100644 var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch diff --git a/var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch b/var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch new file mode 100644 index 0000000000..e03f7276b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/opa-psm2/opa-psm2-install-prefix.patch @@ -0,0 +1,78 @@ +diff -Naupr opa-psm2-PSM2_11.2.68/Makefile opa-psm2-PSM2_11.2.68-pathfix/Makefile +--- opa-psm2-PSM2_11.2.68/Makefile 2018-09-27 19:48:03.000000000 -0400 ++++ opa-psm2-PSM2_11.2.68-pathfix/Makefile 2019-06-07 11:34:37.658270976 -0400 +@@ -135,9 +135,9 @@ endif + + ifndef LIBDIR + ifeq (${arch},x86_64) +- INSTALL_LIB_TARG=/usr/lib64 ++ INSTALL_LIB_TARG=/lib64 + else +- INSTALL_LIB_TARG=/usr/lib ++ INSTALL_LIB_TARG=/lib + endif + else + INSTALL_LIB_TARG=${LIBDIR} +@@ -177,7 +177,7 @@ UDEV_40_PSM_RULES := %{_udevrulesdir}/40 + + ifeq (fedora,$(DISTRO)) + # On Fedora, we change these two variables to these values: +- LIBPSM2_COMPAT_CONF_DIR := /usr/lib ++ LIBPSM2_COMPAT_CONF_DIR := /lib + LIBPSM2_COMPAT_SYM_CONF_DIR := %{_prefix}/lib + SPEC_FILE_RELEASE_DIST := %{?dist} + UDEV_40_PSM_RULES :=# +@@ -411,20 +411,20 @@ install: all + ln -sf ${TARGLIB}.so.${MAJOR} ${TARGLIB}.so) + install -D $(OUTDIR)/${TARGLIB}.a \ + ${DESTDIR}${INSTALL_LIB_TARG}/${TARGLIB}.a +- install -m 0644 -D psm2.h ${DESTDIR}/usr/include/psm2.h +- install -m 0644 -D psm2_mq.h ${DESTDIR}/usr/include/psm2_mq.h +- install -m 0644 -D psm2_am.h ${DESTDIR}/usr/include/psm2_am.h ++ install -m 0644 -D psm2.h ${DESTDIR}/include/psm2.h ++ install -m 0644 -D psm2_mq.h ${DESTDIR}/include/psm2_mq.h ++ install -m 0644 -D psm2_am.h ${DESTDIR}/include/psm2_am.h + ifneq (fedora,${DISTRO}) + install -m 0644 -D 40-psm.rules ${DESTDIR}$(UDEVDIR)/rules.d/40-psm.rules + endif + # The following files and dirs were part of the noship rpm: +- mkdir -p ${DESTDIR}/usr/include/hfi1diag +- mkdir -p ${DESTDIR}/usr/include/hfi1diag/linux-x86_64 +- install -m 0644 -D include/linux-x86_64/bit_ops.h ${DESTDIR}/usr/include/hfi1diag/linux-x86_64/bit_ops.h +- install -m 0644 -D include/linux-x86_64/sysdep.h ${DESTDIR}/usr/include/hfi1diag/linux-x86_64/sysdep.h +- install -m 0644 -D include/opa_udebug.h ${DESTDIR}/usr/include/hfi1diag/opa_udebug.h +- install -m 0644 -D include/opa_debug.h ${DESTDIR}/usr/include/hfi1diag/opa_debug.h +- install -m 0644 -D include/opa_intf.h ${DESTDIR}/usr/include/hfi1diag/opa_intf.h ++ mkdir -p ${DESTDIR}/include/hfi1diag ++ mkdir -p ${DESTDIR}/include/hfi1diag/linux-x86_64 ++ install -m 0644 -D include/linux-x86_64/bit_ops.h ${DESTDIR}/include/hfi1diag/linux-x86_64/bit_ops.h ++ install -m 0644 -D include/linux-x86_64/sysdep.h ${DESTDIR}/include/hfi1diag/linux-x86_64/sysdep.h ++ install -m 0644 -D include/opa_udebug.h ${DESTDIR}/include/hfi1diag/opa_udebug.h ++ install -m 0644 -D include/opa_debug.h ${DESTDIR}/include/hfi1diag/opa_debug.h ++ install -m 0644 -D include/opa_intf.h ${DESTDIR}/include/hfi1diag/opa_intf.h + for h in opa_user_gen1.h opa_service_gen1.h opa_common_gen1.h ; do \ + sed -e 's/#include "opa_user_gen1.h"/#include "opa_user.h"/' \ + -e 's/#include "opa_common_gen1.h"/#include "opa_common.h"/' \ +@@ -434,14 +434,14 @@ endif + done + cat include/opa_user.h $(TEMP_INST_DIR)/opa_user_gen1.h > $(TEMP_INST_DIR)/opa_user.h + cat include/opa_service.h $(TEMP_INST_DIR)/opa_service_gen1.h > $(TEMP_INST_DIR)/opa_service.h +- install -m 0644 -D $(TEMP_INST_DIR)/opa_user.h ${DESTDIR}/usr/include/hfi1diag/opa_user.h +- install -m 0644 -D $(TEMP_INST_DIR)/opa_service.h ${DESTDIR}/usr/include/hfi1diag/opa_service.h +- install -m 0644 -D $(TEMP_INST_DIR)/opa_common_gen1.h ${DESTDIR}/usr/include/hfi1diag/opa_common.h +- install -m 0644 -D include/opa_byteorder.h ${DESTDIR}/usr/include/hfi1diag/opa_byteorder.h +- install -m 0644 -D include/psm2_mock_testing.h ${DESTDIR}/usr/include/hfi1diag/psm2_mock_testing.h +- install -m 0644 -D include/opa_revision.h ${DESTDIR}/usr/include/hfi1diag/opa_revision.h +- install -m 0644 -D psmi_wrappers.h ${DESTDIR}/usr/include/hfi1diag/psmi_wrappers.h +- install -m 0644 -D psm_hal_gen1/hfi1_deprecated_gen1.h ${DESTDIR}/usr/include/hfi1diag/hfi1_deprecated.h ++ install -m 0644 -D $(TEMP_INST_DIR)/opa_user.h ${DESTDIR}/include/hfi1diag/opa_user.h ++ install -m 0644 -D $(TEMP_INST_DIR)/opa_service.h ${DESTDIR}/include/hfi1diag/opa_service.h ++ install -m 0644 -D $(TEMP_INST_DIR)/opa_common_gen1.h ${DESTDIR}/include/hfi1diag/opa_common.h ++ install -m 0644 -D include/opa_byteorder.h ${DESTDIR}/include/hfi1diag/opa_byteorder.h ++ install -m 0644 -D include/psm2_mock_testing.h ${DESTDIR}/include/hfi1diag/psm2_mock_testing.h ++ install -m 0644 -D include/opa_revision.h ${DESTDIR}/include/hfi1diag/opa_revision.h ++ install -m 0644 -D psmi_wrappers.h ${DESTDIR}/include/hfi1diag/psmi_wrappers.h ++ install -m 0644 -D psm_hal_gen1/hfi1_deprecated_gen1.h ${DESTDIR}/include/hfi1diag/hfi1_deprecated.h + rm -fr $(TEMP_INST_DIR) + + specfile: specfile_clean | $(OUTDIR) diff --git a/var/spack/repos/builtin/packages/opa-psm2/package.py b/var/spack/repos/builtin/packages/opa-psm2/package.py index 287945ba2e..4364b9daa9 100644 --- a/var/spack/repos/builtin/packages/opa-psm2/package.py +++ b/var/spack/repos/builtin/packages/opa-psm2/package.py @@ -12,6 +12,7 @@ class OpaPsm2(MakefilePackage): homepage = "http://github.com/intel/opa-psm2" url = "https://github.com/intel/opa-psm2/archive/PSM2_10.3-8.tar.gz" + version('11.2.77', sha256='5cc33d1e19d871a5861efe0bb897526f404b4bf2b88ac58bb277db96ac5ecb54') version('11.2.68', sha256='42e16a14fc8c90b50855dcea46af3315bee32fb1ae89d83060f9b2ebdce1ec26') version('10.3-37', '9bfca04f29b937b3856f893e1f8b1b60') version('10.3-17', 'e7263eb449939cb87612e2c7623ca21c') @@ -25,6 +26,11 @@ class OpaPsm2(MakefilePackage): depends_on('numactl') + # patch to prevent opa-psm2 from adding an additional "usr/" + # subdirectory within the installation prefix, which breaks paths for + # dependent packages like libfabric + patch('opa-psm2-install-prefix.patch', when='@11.2.68:') + def setup_environment(self, spack_env, run_env): spack_env.set('DESTDIR', self.prefix) -- cgit v1.2.3-70-g09d2