From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42081) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eBl65-0000lU-Vd for guix-patches@gnu.org; Mon, 06 Nov 2017 12:22:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eBl62-0006sU-JH for guix-patches@gnu.org; Mon, 06 Nov 2017 12:22:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:45769) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eBl62-0006sP-FW for guix-patches@gnu.org; Mon, 06 Nov 2017 12:22:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eBl62-000482-7Y for guix-patches@gnu.org; Mon, 06 Nov 2017 12:22:02 -0500 Subject: [bug#29172] [PATCH] gnu: Add psm. Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41820) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eBl5L-0000Sn-G7 for guix-patches@gnu.org; Mon, 06 Nov 2017 12:21:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eBl5J-00064c-PD for guix-patches@gnu.org; Mon, 06 Nov 2017 12:21:19 -0500 From: Dave Love Date: Mon, 6 Nov 2017 17:16:26 +0000 Message-Id: <20171106171626.29830-2-fx@gnu.org> In-Reply-To: <20171106171626.29830-1-fx@gnu.org> References: <20171106171626.29830-1-fx@gnu.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 29172@debbugs.gnu.org Cc: Dave Love * gnu/packages/linux.scm (psm): New variable. (libfabric): Use it. * gnu/packages/mpi.scm (openmpi)[inputs]: Add psm. * gnu/packages/patches/psm-arch.patch, gnu/packages/patches/psm-ldflags.patch, gnu/packages/patches/psm-repro.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 3 +++ gnu/packages/linux.scm | 45 +++++++++++++++++++++++++++++++++- gnu/packages/mpi.scm | 1 + gnu/packages/patches/psm-arch.patch | 11 +++++++++ gnu/packages/patches/psm-ldflags.patch | 11 +++++++++ gnu/packages/patches/psm-repro.patch | 12 +++++++++ 6 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/psm-arch.patch create mode 100644 gnu/packages/patches/psm-ldflags.patch create mode 100644 gnu/packages/patches/psm-repro.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6b70300ff..d7b162d31 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -957,6 +957,9 @@ dist_patch_DATA = \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \ %D%/packages/patches/proot-test-fhs.patch \ + %D%/packages/patches/psm-arch.patch \ + %D%/packages/patches/psm-ldflags.patch \ + %D%/packages/patches/psm-repro.patch \ %D%/packages/patches/pt-scotch-build-parallelism.patch \ %D%/packages/patches/pulseaudio-fix-mult-test.patch \ %D%/packages/patches/pulseaudio-longer-test-timeout.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 49665e24d..1a3ffa347 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4387,7 +4387,7 @@ comparing system environments.") (base32 "19l2m1frna1l765z4j7wl8hp4rb9wrh0hy5496685hd183hmy5pv")))) (build-system gnu-build-system) (inputs `(("rdma-core" ,rdma-core) - ;; TODO: add psm, psm(2). + ("psm" ,psm) ("libnl" ,libnl))) (home-page "https://ofiwg.github.io/libfabric/") (synopsis "Open Fabric Interfaces") @@ -4403,3 +4403,46 @@ exports the user-space API of OFI, and is typically the only software that applications deal with directly. It works in conjunction with provider libraries, which are often integrated directly into libfabric.") (license (list license:bsd-2 license:gpl2)))) ;dual + +(define-public psm + (package + (name "psm") + (version "3.3.20170428") + (source + (origin + (method git-fetch) + (uri (git-reference (url "http://github.com/01org/psm") + (commit "604758e76dc31e68d1de736ccf5ddf16cb22355b"))) + (file-name (string-append "psm-" version ".tar.gz")) + (sha256 + (base32 "0nsb325dmhn5ia3d2cnksqr0gdvrrx2hmvlylfgvmaqdpq76zm85")) + (patches (search-patches + "psm-arch.patch" ; uname -p returns "unknown" on Debian 9 + "psm-ldflags.patch" ; build shared lib with LDFLAGS + "psm-repro.patch")))) ; reproducibility + (build-system gnu-build-system) + (inputs `(("libuuid" ,util-linux))) + (arguments + '(#:make-flags `("PSM_USE_SYS_UUID=1" "CC=gcc" "WERROR=" + ,(string-append "INSTALL_PREFIX=" %output) + ,(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:tests? #f + #:phases (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-/usr/include + (lambda _ + (substitute* "Makefile" + (("\\$\\{DESTDIR}/usr/include") + (string-append %output "/include"))) + (substitute* "Makefile" + (("/lib64") "/lib")) + #t))))) + (home-page "https://github.com/01org/psm") + (synopsis "Intel Performance Scaled Messaging (PSM) Libraries") + (description + "The PSM Messaging API, or PSM API, is Intel's low-level +user-level communications interface for the True Scale +family of products. PSM users are enabled with mechanisms +necessary to implement higher level communications +interfaces in parallel environments.") + (license (list license:bsd-2 license:gpl2)))) ;dual diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 741d30a8c..9f14d2c18 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -125,6 +125,7 @@ bind processes, and much more.") (inputs `(("hwloc" ,hwloc "lib") ("libfabric" ,libfabric) + ("psm" ,psm) ("rdma-core" ,rdma-core) ("valgrind" ,valgrind))) (native-inputs diff --git a/gnu/packages/patches/psm-arch.patch b/gnu/packages/patches/psm-arch.patch new file mode 100644 index 000000000..a17d6ac3a --- /dev/null +++ b/gnu/packages/patches/psm-arch.patch @@ -0,0 +1,11 @@ +--- psm-3.3/buildflags.mak~ 2014-08-20 21:00:18.000000000 +0100 ++++ psm-3.3/buildflags.mak 2017-10-22 12:02:12.855291447 +0100 +@@ -38,7 +38,7 @@ + endif + + export os ?= $(shell uname -s | tr '[A-Z]' '[a-z]') +-export arch := $(shell uname -p | sed -e 's,\(i[456]86\|athlon$$\),i386,') ++export arch := $(shell uname -m | sed -e 's,\(i[456]86\|athlon$$\),i386,') + + CC ?= gcc + diff --git a/gnu/packages/patches/psm-ldflags.patch b/gnu/packages/patches/psm-ldflags.patch new file mode 100644 index 000000000..be053c637 --- /dev/null +++ b/gnu/packages/patches/psm-ldflags.patch @@ -0,0 +1,11 @@ +--- psm-3.3/ipath/Makefile~ 1970-01-01 01:00:00.000000000 +0100 ++++ psm-3.3/ipath/Makefile 2017-10-22 15:10:10.269177711 +0100 +@@ -73,7 +73,7 @@ + ${TARGLIB}.so.${MAJOR}.${MINOR}: ${${TARGLIB}-objs} + date +'static __attribute__ ((unused)) char __psc_infinipath_revision[] ="$$""Date: %F %R ${rpm_extra_description}InfiniPath $$";' > _revision.c + $(CC) -c $(BASECFLAGS) $(INCLUDES) _revision.c -o _revision.o +- $(CC) -o $@ -Wl,-soname=${TARGLIB}.so.${MAJOR} -shared \ ++ $(CC) -o $@ -Wl,-soname=${TARGLIB}.so.${MAJOR} $(LDFLAGS) -shared \ + -Wl,--unique='*fastpath*' \ + ${${TARGLIB}-objs} _revision.o $(LDFLAGS) $(if $(MIC:0=),$(SCIF_LINK_FLAGS)) + diff --git a/gnu/packages/patches/psm-repro.patch b/gnu/packages/patches/psm-repro.patch new file mode 100644 index 000000000..12dab1855 --- /dev/null +++ b/gnu/packages/patches/psm-repro.patch @@ -0,0 +1,12 @@ +--- psm-3.3/Makefile~ 1970-01-01 01:00:00.000000000 +0100 ++++ psm-3.3/Makefile 2017-10-22 15:32:11.736949002 +0100 +@@ -326,7 +326,7 @@ + # file around. Generate it such that the ident command can find it + # and strings -a | grep InfiniPath does a reasonable job as well. + ${TARGLIB}.so.${MAJOR}.${MINOR}: ${${TARGLIB}-objs} +- date +'char psmi_infinipath_revision[] ="$$""Date: %F %R ${rpm_extra_description}InfiniPath $$";' > ${lib_build_dir}/_revision.c ++ echo 'char psmi_infinipath_revision[] ="$$""Date: 1970-01-01 00:00 ${rpm_extra_description}InfiniPath $$";' > ${lib_build_dir}/_revision.c + $(CC) -c $(BASECFLAGS) $(INCLUDES) _revision.c -o _revision.o + $(CC) $(LDFLAGS) -o $@ -Wl,-soname=${TARGLIB}.so.${MAJOR} -shared -Wl,--unique='*fastpath*' \ + ${${TARGLIB}-objs} _revision.o -L$(build_dir)/ipath $(LDLIBS) + -- 2.11.0