unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#28673] [PATCH 1/6] gnu: Add papi.
@ 2017-10-02 20:48 Dave Love
  2017-10-02 20:48 ` [bug#28673] [PATCH 2/6] gnu: Add otf2 Dave Love
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Dave Love @ 2017-10-02 20:48 UTC (permalink / raw)
  To: 28673; +Cc: Dave Love

* gnu/packages/profiling.scm: New file.
* gnu/local.mk: Add it.
---
 gnu/local.mk               |   1 +
 gnu/packages/profiling.scm | 122 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 123 insertions(+)
 create mode 100644 gnu/packages/profiling.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index edd6d8237..016c46c6c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -326,6 +326,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/plotutils.scm			\
   %D%/packages/polkit.scm			\
   %D%/packages/popt.scm				\
+  %D%/packages/profiling.scm			\
   %D%/packages/pth.scm				\
   %D%/packages/pulseaudio.scm			\
   %D%/packages/pumpio.scm			\
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
new file mode 100644
index 000000000..cd678cfea
--- /dev/null
+++ b/gnu/packages/profiling.scm
@@ -0,0 +1,122 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Dave Love <fx@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages profiling)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)      ;for "which"
+  #:use-module (gnu packages fabric-management)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages libunwind)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses))
+
+;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
+;; output(?); build libmsr and add that component.
+(define-public papi
+  (package
+    (name "papi")
+    (version "5.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://icl.utk.edu/projects/papi/downloads/papi-"
+                           version ".tar.gz"))
+       (sha256 (base32 "1m62s8fkjjgq04ayf18jcxc33rqfd7nrkdw1gr54q5pn4cijrp29"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("lm-sensors" ,lm-sensors "lib")
+       ("rdma-core" ,rdma-core)
+       ("infiniband-diags" ,infiniband-diags "lib")
+       ("net-tools" ,net-tools)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("gfortran" ,gfortran)))
+    (arguments
+     '(#:tests? #f ; no check target
+       #:configure-flags
+       ;; These are roughly per Fedora, but elide mx (assumed to be dead, even
+       ;; Open-MX) and add and powercap -- I don't know the pros/cons of
+       ;; infiniband and infiniband_mad, but you can't use them together, and
+       ;; the umad version needs at least one patch.
+       ;; Implicit enabled components: perf_event perf_event_uncore
+       `("--with-perf-events" "--with-shared-lib=yes" "--with-shlib"
+         "--with-static-lib=no"
+         "--with-components=appio coretemp example lustre micpower net rapl \
+stealtime lmsensors infiniband powercap"
+         ;; So utils get rpath set correctly:
+         ,(string-append "LDFLAGS=-Xlinker -rpath -Xlinker "
+                         (assoc-ref %outputs "out") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'autoconf
+           (lambda _
+             (chdir "src")
+             (zero? (system* "autoconf"))))
+         ;; Amalgamating with the following clause gives double substitution.
+         (add-before 'patch-source-shebangs 'patch-components
+           (lambda _
+             (with-directory-excursion "src/components"
+               (substitute* '("lmsensors/configure" "infiniband_umad/configure")
+                 (("/bin/sh") (which "sh"))))))
+         (add-after 'configure 'components
+           (lambda*  (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "components"
+               (and
+                (with-directory-excursion "infiniband_umad"
+                  (zero? (system* "./configure")))
+                (with-directory-excursion "lmsensors"
+                  (let ((base  (assoc-ref inputs "lm-sensors")))
+                    (zero?
+                     (system*
+                      "./configure"
+                      (string-append "--with-sensors_incdir=" base
+                                     "/include/sensors")
+                      (string-append "--with-sensors_libdir=" base "/lib")))))))))
+         (add-after 'install 'extra-doc
+           (lambda _
+             (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+               (mkdir-p doc)
+               (chdir "..")             ; we went into src above
+               (for-each (lambda (file)
+                           (install-file file doc))
+                         '("README" "RELEASENOTES.txt" "LICENSE.txt"))))))))
+    (home-page "http://icl.cs.utk.edu/papi/")
+    (synopsis "Performance Application Programming Interface")
+    (description "PAPI provides the tool designer and application engineer with a consistent
+interface and methodology for use of the performance counter hardware found in
+most major microprocessors.  PAPI enables software engineers to see, in near
+real time, the relation between software performance and processor events.
+
+In addition, PAPI provides access to a collection of components that expose
+performance measurement opportunites across the hardware and software stack.")
+    ;; See Debian papi copyright file.
+    (license (list license:bsd-3
+                   license:lgpl2.1+     ;src/components/infiniband/pscanf.h
+                   ;; not used in output
+                   license:gpl2+ ;src/components/appio/tests/iozone/gengnuplot.sh
+                                 ;src/libpfm-3.y/*/multiplex*
+                   ;; "BSD-like": src/libpfm-3.y/*, src/libpfm4/*
+                   ;; lgpl2.1+: src/perfctr-2.*/*
+                   ))))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 2/6] gnu: Add otf2.
  2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
@ 2017-10-02 20:48 ` Dave Love
  2017-10-03 14:09   ` Ludovic Courtès
  2017-10-02 20:48 ` [bug#28673] [PATCH 3/6] gnu: Add cube Dave Love
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Dave Love @ 2017-10-02 20:48 UTC (permalink / raw)
  To: 28673; +Cc: Dave Love

* gnu/packages/profiling.scm (otf2): New variable.
---
 gnu/packages/profiling.scm | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index cd678cfea..5eed6ba0d 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -29,7 +29,8 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages ncurses))
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages python))
 
 ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
 ;; output(?); build libmsr and add that component.
@@ -120,3 +121,38 @@ performance measurement opportunites across the hardware and software stack.")
                    ;; "BSD-like": src/libpfm-3.y/*, src/libpfm4/*
                    ;; lgpl2.1+: src/perfctr-2.*/*
                    ))))
+
+;; NB. there's a potential name clash with libotf.
+(define-public otf2
+  (package
+    (name "otf2")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.vi-hps.org/upload/packages/otf2/otf2-"
+                           version ".tar.gz"))
+       (sha256 (base32 "1lyaqhdfaqm1kd23yk71g71vkscw83s7m57j017y768h8sh8xlwa"))))
+    (native-inputs `(("python" ,python)))
+    (outputs '("doc"                    ; 18MB
+               "lib"
+               "out"))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-shared" "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'licence
+           (lambda _
+             (for-each
+              (lambda (op)
+                (let ((doc (string-append (assoc-ref %outputs op) "/share/doc")))
+                  (mkdir-p doc)
+                  (install-file "COPYING" doc)))
+              '("lib" "doc"))
+             #t)))))
+    (home-page "http://www.vi-hps.org/projects/score-p/")
+    (synopsis "Open Trace Format 2 library")
+    (description "The Open Trace Format 2 (OTF2) is a highly scalable, memory efficient event
+trace data format plus support library.")
+    (license license:bsd-3)))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 3/6] gnu: Add cube.
  2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
  2017-10-02 20:48 ` [bug#28673] [PATCH 2/6] gnu: Add otf2 Dave Love
@ 2017-10-02 20:48 ` Dave Love
  2017-10-03 14:44   ` Ludovic Courtès
  2017-10-02 20:48 ` [bug#28673] [PATCH 4/6] gnu: Add opari2 Dave Love
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Dave Love @ 2017-10-02 20:48 UTC (permalink / raw)
  To: 28673; +Cc: Dave Love

* gnu/packages/profiling.scm(cube): New variable.
* gnu/packages/patches/cube-nocheck.patch: New file.
* gnu/local.mk: Add it.
---
 gnu/local.mk                            |   1 +
 gnu/packages/patches/cube-nocheck.patch |  14 ++++
 gnu/packages/profiling.scm              | 128 +++++++++++++++++++++++++++++++-
 3 files changed, 142 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/cube-nocheck.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 016c46c6c..ed5346474 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -576,6 +576,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/crda-optional-gcrypt.patch		\
   %D%/packages/patches/crossmap-allow-system-pysam.patch	\
   %D%/packages/patches/clucene-contribs-lib.patch               \
+  %D%/packages/patches/cube-nocheck.patch			\
   %D%/packages/patches/curl-bounds-check.patch			\
   %D%/packages/patches/cursynth-wave-rand.patch			\
   %D%/packages/patches/cvs-2017-12836.patch			\
diff --git a/gnu/packages/patches/cube-nocheck.patch b/gnu/packages/patches/cube-nocheck.patch
new file mode 100644
index 000000000..cbfaf0884
--- /dev/null
+++ b/gnu/packages/patches/cube-nocheck.patch
@@ -0,0 +1,14 @@
+diff -u /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp\~ /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp
+--- cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp~	2016-04-03 00:05:37.942066948 +0100
++++ cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp	2016-05-06 17:16:31.648143908 +0100
+@@ -52,7 +52,8 @@
+     url              = QUrl( UPDATE_CHECK_URL );
+     download         = NULL;
+     update_Available = false;
+-    bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) );
++    // bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) );
++    bool no_http = true;
+     if ( !no_http )
+     {
+         updateDescription =   tr( "Check for update is not performed yet." );
+
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 5eed6ba0d..3f08f7e3d 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -25,12 +25,15 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)      ;for "which"
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages fabric-management)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages qt))
 
 ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
 ;; output(?); build libmsr and add that component.
@@ -156,3 +159,126 @@ performance measurement opportunites across the hardware and software stack.")
     (description "The Open Trace Format 2 (OTF2) is a highly scalable, memory efficient event
 trace data format plus support library.")
     (license license:bsd-3)))
+
+;; FIXME: The doc is 14MB, but adding a doc output results in a cycle
+(define-public cube
+  (package
+    (name "cube")
+    (version "4.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-"
+             version ".tar.gz"))
+       (sha256 (base32 "04irflia4rfw02093w9nx7rr98r640y4q8hisjywvd4b7r3nzhhx"))
+       (patches (search-patches
+                 ;; Disable network check for new versions (from Fedora)
+                 "cube-nocheck.patch"))))
+    (inputs `(("dbus" ,dbus)
+              ("zlib" ,zlib)))
+    (native-inputs `(("perl" ,perl)
+                     ("qtbase" ,qtbase) ; native because of qmake
+                     ("which" ,which)))
+    (outputs '("out" ;"doc"
+               "lib"))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       `("--enable-shared" "--disable-static" "--disable-silent-rules"
+         ,(string-append "LDFLAGS=-L" (assoc-ref %outputs "lib") "/lib"))
+       #:parallel-tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'rpath
+           ;; Account for moving GUI stuff
+           (lambda _
+             (let ((wl (string-append "-Wl,-rpath=" %output "/lib")))
+               (substitute* "build-backend/Makefile"
+                 (("^cube_LDFLAGS =") (string-append "cube_LDFLAGS = " wl))
+                 (("^libheatmap_plugin_la_LDFLAGS =")
+                  (string-append "libheatmap_plugin_la_LDFLAGS = " wl))
+                 (("^libbarplot_plugin_la_LDFLAGS =")
+                  (string-append "libbarplot_plugin_la_LDFLAGS = " wl))))))
+         (add-before 'install 'includes-cube
+           ;; It tries to install here before include exists.
+           (lambda _
+             (let ((inc (string-append (assoc-ref %outputs "lib") "/include")))
+               (mkdir-p (string-append inc "/cube"))
+               (mkdir-p (string-append inc "/cubew")))))
+         (add-after 'install 'licence
+           (lambda _
+             (let ((doc (string-append (assoc-ref %outputs "lib") "/share/doc")))
+               (mkdir-p doc)
+               (install-file "COPYING" doc)
+               #t)))
+         ;; FIXME: cycle
+         ;; (add-after 'install 'doc
+         ;;   (lambda _
+         ;;     (let ((share (string-append (assoc-ref %outputs "doc")
+         ;;                                 "/share")))
+         ;;       (mkdir-p share)
+         ;;       (rename-file (string-append %output "/share/doc")
+         ;;                    (string-append share "/doc")))))
+         (add-after 'install 'gui-stuff
+           ;; Get the Qt horror dependencies out of the lib closure
+           (lambda _
+             (let ((outlib (string-append (assoc-ref %outputs "out") "/lib"))
+                   (lib (string-append (assoc-ref %outputs "lib") "/lib")))
+               (mkdir-p outlib)
+               (rename-file (string-append lib "/cube-plugins")
+                            (string-append outlib "/cube-plugins"))
+               (for-each (lambda (file)
+                           (rename-file
+                            file (string-append outlib "/" (basename file))))
+                         (append (find-files lib "libgraphwidgetcommon-plugin.*")
+                                 (find-files lib "libcube4gui.so.*"))))))
+         (add-after 'install 'move-include
+           ;; Most of the headers end up under %output for some reason,
+           ;; despite --includedir in configure.
+           (lambda _
+             (let ((outinc (string-append %output "/include"))
+                   (libinc (string-append (assoc-ref %outputs "lib") "/include")))
+               (for-each (lambda (file)
+                           (let ((from (string-append outinc "/" file)))
+                             (copy-recursively from libinc)
+                             (delete-file-recursively from)))
+                         '("cube" "cubew")))))
+         ;; FIXME: This doesn't work because cube-config, which is needed for
+         ;; building stuff, sources cube-config-frontend.  We don't want that
+         ;; in the lib output because it pulls in >1GB via QT.
+
+         ;; (add-after 'install 'cube-config
+         ;;   (lambda _
+         ;;     (let* ((lib (assoc-ref %outputs "lib"))
+         ;;            (libbin (string-append lib "/bin")))
+         ;;       (mkdir-p libbin)
+         ;;       (system (string-append "mv " (assoc-ref %outputs "out")
+         ;;                              "/bin/cube-config* " libbin))
+         ;;       (substitute* (list (string-append libbin "/cube-config"))
+         ;;         (("^prefix=.*") (string-append "prefix=" lib))
+         ;;         (("^exec_prefix=\"\\$\\{prefix\\}\"")
+         ;;          (string-append "exec_prefix=" lib))))))
+         (add-after 'install 'cube-config
+           (lambda _
+             (let* ((lib (assoc-ref %outputs "lib"))
+                    (libbin (string-append lib "/bin")))
+               (mkdir-p libbin)
+               (install-file (string-append %output "/bin/cube-config") libbin)
+               (install-file (string-append %output "/bin/cube-config-backend")
+                             libbin)
+               (substitute* (list (string-append libbin "/cube-config"))
+                 (("^source .*frontend.*$") "")
+                 ((%output) lib))))))))
+    (home-page "http://www.scalasca.org/software/cube-4.x/download.html")
+    (synopsis "CUBE Uniform Behavioral Encoding generic presentation component")
+    (description "CUBE (CUBE Uniform Behavioral Encoding) is a generic presentation component
+suitable for displaying a wide variety of performance metrics for parallel
+programs including MPI and OpenMP applications.  CUBE allows interactive
+exploration of a multidimensional performance space in a scalable fashion.
+Scalability is achieved in two ways: hierarchical decomposition of individual
+dimensions and aggregation across different dimensions.  All performance
+metrics are uniformly accommodated in the same display and thus provide the
+ability to easily compare the effects of different kinds of performance
+behavior.")
+    (license license:bsd-3)))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 4/6] gnu: Add opari2.
  2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
  2017-10-02 20:48 ` [bug#28673] [PATCH 2/6] gnu: Add otf2 Dave Love
  2017-10-02 20:48 ` [bug#28673] [PATCH 3/6] gnu: Add cube Dave Love
@ 2017-10-02 20:48 ` Dave Love
  2017-10-03 14:13   ` Ludovic Courtès
  2017-10-02 20:48 ` [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes Dave Love
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Dave Love @ 2017-10-02 20:48 UTC (permalink / raw)
  To: 28673; +Cc: Dave Love

* gnu/packages/profiling.scm (opari2): New variable.
---
 gnu/packages/profiling.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 3f08f7e3d..cef363dee 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fabric-management)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages libunwind)
@@ -282,3 +283,36 @@ metrics are uniformly accommodated in the same display and thus provide the
 ability to easily compare the effects of different kinds of performance
 behavior.")
     (license license:bsd-3)))
+
+(define-public opari2
+  (package
+    (name "opari2")
+    (version "2.0.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (let* ((parts (string-split version #\.) )
+                  (major (car parts))
+                  (minor (cadr parts)))
+             (string-append "http://www.vi-hps.org/upload/packages/opari2/opari2-"
+                            version ".tar.gz")))
+      (sha256 (base32 "1ph8l5c646bm9l5vcn8rrbjvkyi7y8yvn2ny95r6kmlzs766g3q8"))))
+    (build-system gnu-build-system)
+    (inputs `(("gfortran" ,gfortran)))
+    (native-inputs `(("gawk" ,gawk)     ;for tests
+                     ("which" ,which)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'licence
+           (lambda _
+             (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+               (mkdir-p doc)
+               (install-file "COPYING" doc)
+               #t))))))
+    (home-page "http://www.vi-hps.org/projects/score-p")
+    (synopsis "An OpenMP runtime performance measurement instrumenter")
+    (description "OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid
+codes.  It surrounds OpenMP directives and runtime library calls with calls
+to the POMP2 measurement interface.")
+    (license license:bsd-3)))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes.
  2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
                   ` (2 preceding siblings ...)
  2017-10-02 20:48 ` [bug#28673] [PATCH 4/6] gnu: Add opari2 Dave Love
@ 2017-10-02 20:48 ` Dave Love
  2017-10-03 14:46   ` Ludovic Courtès
  2017-10-02 20:48 ` [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi Dave Love
  2017-10-03 13:43 ` [bug#28673] [PATCH 1/6] gnu: Add papi Ludovic Courtès
  5 siblings, 1 reply; 13+ messages in thread
From: Dave Love @ 2017-10-02 20:48 UTC (permalink / raw)
  To: 28673; +Cc: Dave Love

* gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch:
New file.
* gnu/packages/patches/libunwind-ppc_lib64.patch: New file.
* gnu/packages/libunwind.scm (libunwind)[source]: Use them.
(libunwind)(native-inputs): Add autotools.
(libunwind)(arguments): Enable tests; run autoreconf.
* gnu/local.mk: Update dependencies.
---
 gnu/local.mk                                       |  3 +++
 gnu/packages/libunwind.scm                         | 22 ++++++++++++++++------
 ...bunwind-known_test_failure_to_XFAIL_TESTS.patch | 11 +++++++++++
 gnu/packages/patches/libunwind-ppc_lib64.patch     | 17 +++++++++++++++++
 4 files changed, 47 insertions(+), 6 deletions(-)
 create mode 100644 gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
 create mode 100644 gnu/packages/patches/libunwind-ppc_lib64.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ed5346474..c80298a9c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -812,6 +812,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/libtirpc-CVE-2017-8779.patch		\
   %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch	\
   %D%/packages/patches/libtool-skip-tests2.patch		\
+  %D%/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch \
+  %D%/packages/patches/libunwind-ppc_lib64.patch		\
   %D%/packages/patches/libunistring-gnulib-multi-core.patch	\
   %D%/packages/patches/libusb-0.1-disable-tests.patch		\
   %D%/packages/patches/libvpx-CVE-2016-2818.patch		\
@@ -912,6 +914,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch		\
+  %D%/packages/patches/orangefs-ldshared.patch			\
   %D%/packages/patches/openssl-c-rehash-in.patch		\
   %D%/packages/patches/orpheus-cast-errors-and-includes.patch	\
   %D%/packages/patches/osip-CVE-2017-7853.patch			\
diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm
index e747d3778..370c433d7 100644
--- a/gnu/packages/libunwind.scm
+++ b/gnu/packages/libunwind.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2017 Dave Love <fx@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +23,8 @@
   #:use-module (gnu packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (guix licenses))
+  #:use-module (guix licenses)
+  #:use-module (gnu packages autotools))
 
 (define-public libunwind
   (package
@@ -34,13 +36,21 @@
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1jsslwkilwrsj959dc8b479qildawz67r8m4lzxm7glcwa8cngiz"))))
+               "1jsslwkilwrsj959dc8b479qildawz67r8m4lzxm7glcwa8cngiz"))
+             (patches (search-patches
+                       ;; (adapted) from Debian
+                       "libunwind-known_test_failure_to_XFAIL_TESTS.patch"
+                       "libunwind-ppc_lib64.patch"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (build-system gnu-build-system)
     (arguments
-     ;; FIXME: As of glibc 2.25, we get 1 out of 34 test failures (2 are
-     ;; expected to fail).
-     ;; Report them upstream.
-     '(#:tests? #f))
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'autoreconf
+                    (lambda _
+                      (zero? (system* "autoreconf" "-vif")))))))
     (home-page "http://www.nongnu.org/libunwind")
     (synopsis "Determining the call chain of a program")
     (description
diff --git a/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
new file mode 100644
index 000000000..44ba44892
--- /dev/null
+++ b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
@@ -0,0 +1,11 @@
+--- libunwind-1.2.1/tests/Makefile.am~	1970-01-01 01:00:00.000000000 +0100
++++ libunwind-1.2.1/tests/Makefile.am	2017-09-06 13:32:52.331888031 +0100
+@@ -97,7 +97,7 @@
+ XFAIL_TESTS =
+ 
+ if !ARCH_IA64
+-XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1
++XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1 test-ptrace
+ endif
+ 
+ # Use if arch defines but does not support PTRACE_SINGLESTEP
diff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patch
new file mode 100644
index 000000000..9ab0108ae
--- /dev/null
+++ b/gnu/packages/patches/libunwind-ppc_lib64.patch
@@ -0,0 +1,17 @@
+Index: pkg-libunwind/configure.ac
+===================================================================
+--- pkg-libunwind.orig/configure.ac	2014-05-07 15:13:28.247711669 +0900
++++ pkg-libunwind/configure.ac	2014-05-07 15:14:25.924958386 +0900
+@@ -164,12 +164,6 @@
+ AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
+ AC_MSG_RESULT([$use_dwarf])
+ 
+-if test x$target_arch = xppc64; then
+-        libdir='${exec_prefix}/lib64'
+-        AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
+-        AC_SUBST([libdir])
+-fi
+-
+ AC_MSG_CHECKING([whether to restrict build to remote support])
+ if test x$target_arch != x$host_arch; then
+   CPPFLAGS="${CPPFLAGS} -DUNW_REMOTE_ONLY"
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi.
  2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
                   ` (3 preceding siblings ...)
  2017-10-02 20:48 ` [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes Dave Love
@ 2017-10-02 20:48 ` Dave Love
  2017-10-03 15:07   ` Ludovic Courtès
  2017-10-03 13:43 ` [bug#28673] [PATCH 1/6] gnu: Add papi Ludovic Courtès
  5 siblings, 1 reply; 13+ messages in thread
From: Dave Love @ 2017-10-02 20:48 UTC (permalink / raw)
  To: 28673; +Cc: Dave Love

* gnu/packages/profiling.scm (make-scorep): New function.
(scorep-openmpi): New variable.
---
 gnu/packages/profiling.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index cef363dee..e81747c0d 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -25,15 +25,20 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)      ;for "which"
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fabric-management)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qt))
 
 ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
@@ -316,3 +321,66 @@ behavior.")
 codes.  It surrounds OpenMP directives and runtime library calls with calls
 to the POMP2 measurement interface.")
     (license license:bsd-3)))
+
+(define (make-scorep mpi)
+  (package
+    (name (string-append "scorep-" (package-name mpi)))
+    (version "3.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (let* ((parts (string-split version #\.) )
+                  (major (car parts))
+                  (minor (cadr parts)))
+             (string-append
+              "http://www.vi-hps.org/upload/packages/scorep/scorep-"
+              version ".tar.gz")))
+      (sha256 (base32 "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("mpi" ,mpi)
+       ("papi" ,papi)
+       ("opari2" ,opari2)
+       ("libunwind" ,libunwind)
+       ("otf2" ,otf2)
+       ("cube" ,cube)                   ;for cube-config, as above
+       ("cubelib" ,cube "lib")          ;for lib, include
+       ("openmpi" ,openmpi)
+       ("doxygen" ,doxygen)
+       ("zlib" ,zlib)
+       ("which" ,which)))
+    (native-inputs `(("gfortran" ,gfortran)
+                     ("flex" ,flex)
+                     ("bison" ,bison)
+                     ("python" ,python)))
+    (arguments
+     `(#:configure-flags
+       (list "--enable-shared" "--disable-static"
+             (string-append "--with-opari2=" (assoc-ref %build-inputs "opari2"))
+             (string-append "--with-cube=" (assoc-ref %build-inputs "cube")))
+       #:parallel-tests? #f
+       #:make-flags '("V=1")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'clean-source
+           (lambda _
+             (map delete-file-recursively '("vendor/opari2" "vendor/cube"))))
+         (add-after 'install 'licence
+           (lambda _
+             (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+               (mkdir-p doc)
+               (install-file "COPYING" doc)
+               #t))))))
+    (home-page "http://www.vi-hps.org/projects/score-p/")
+    (synopsis
+     (format #f "\
+Scalable Performance Measurement Infrastructure for Parallel Codes, ~a version"
+             (package-name mpi)))
+    (description (format #f "The Score-P (Scalable Performance Measurement Infrastructure for Parallel
+Codes) measurement infrastructure is a highly scalable and easy-to-use tool
+suite for profiling, event trace recording, and online analysis of HPC
+applications.
+This is the ~a version." (package-name mpi)))
+    (license license:cpl1.0)))
+
+(define-public scorep-openmpi (make-scorep openmpi))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 1/6] gnu: Add papi.
  2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
                   ` (4 preceding siblings ...)
  2017-10-02 20:48 ` [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi Dave Love
@ 2017-10-03 13:43 ` Ludovic Courtès
  5 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-10-03 13:43 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673

[-- Attachment #1: Type: text/plain, Size: 174 bytes --]

Dave Love <fx@gnu.org> skribis:

> * gnu/packages/profiling.scm: New file.
> * gnu/local.mk: Add it.

Neat.  Applied with the following changes.

Thanks,
Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 2088 bytes --]

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index cd678cfea..6d62aa260 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -79,7 +79,8 @@ stealtime lmsensors infiniband powercap"
            (lambda _
              (with-directory-excursion "src/components"
                (substitute* '("lmsensors/configure" "infiniband_umad/configure")
-                 (("/bin/sh") (which "sh"))))))
+                 (("/bin/sh") (which "sh"))))
+             #t))
          (add-after 'configure 'components
            (lambda*  (#:key inputs #:allow-other-keys)
              (with-directory-excursion "components"
@@ -95,16 +96,19 @@ stealtime lmsensors infiniband powercap"
                                      "/include/sensors")
                       (string-append "--with-sensors_libdir=" base "/lib")))))))))
          (add-after 'install 'extra-doc
-           (lambda _
-             (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((doc (string-append (assoc-ref outputs "out")
+                                       "/share/doc")))
                (mkdir-p doc)
                (chdir "..")             ; we went into src above
                (for-each (lambda (file)
                            (install-file file doc))
-                         '("README" "RELEASENOTES.txt" "LICENSE.txt"))))))))
+                         '("README" "RELEASENOTES.txt" "LICENSE.txt"))
+               #t))))))
     (home-page "http://icl.cs.utk.edu/papi/")
     (synopsis "Performance Application Programming Interface")
-    (description "PAPI provides the tool designer and application engineer with a consistent
+    (description
+     "PAPI provides the tool designer and application engineer with a consistent
 interface and methodology for use of the performance counter hardware found in
 most major microprocessors.  PAPI enables software engineers to see, in near
 real time, the relation between software performance and processor events.

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 2/6] gnu: Add otf2.
  2017-10-02 20:48 ` [bug#28673] [PATCH 2/6] gnu: Add otf2 Dave Love
@ 2017-10-03 14:09   ` Ludovic Courtès
  0 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-10-03 14:09 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673

[-- Attachment #1: Type: text/plain, Size: 152 bytes --]

Dave Love <fx@gnu.org> skribis:

> * gnu/packages/profiling.scm (otf2): New variable.

Applied with the minor changes below, thanks!

Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1874 bytes --]

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 1d0a5d6c4..7c0ab6e95 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -138,7 +138,7 @@ performance measurement opportunites across the hardware and software stack.")
                            version ".tar.gz"))
        (sha256 (base32 "1lyaqhdfaqm1kd23yk71g71vkscw83s7m57j017y768h8sh8xlwa"))))
     (native-inputs `(("python" ,python)))
-    (outputs '("doc"                    ; 18MB
+    (outputs '("doc"                              ; 18MB
                "lib"
                "out"))
     (build-system gnu-build-system)
@@ -147,16 +147,15 @@ performance measurement opportunites across the hardware and software stack.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'licence
-           (lambda _
-             (for-each
-              (lambda (op)
-                (let ((doc (string-append (assoc-ref %outputs op) "/share/doc")))
-                  (mkdir-p doc)
-                  (install-file "COPYING" doc)))
-              '("lib" "doc"))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each (lambda (output)
+                         (let ((doc (string-append (assoc-ref outputs output)
+                                                   "/share/doc/otf2")))
+                           (install-file "COPYING" doc)))
+                       '("lib" "doc"))
              #t)))))
     (home-page "http://www.vi-hps.org/projects/score-p/")
     (synopsis "Open Trace Format 2 library")
-    (description "The Open Trace Format 2 (OTF2) is a highly scalable, memory efficient event
-trace data format plus support library.")
+    (description "The Open Trace Format 2 (OTF2) is a scalable, memory
+efficient event trace data format plus support library.")
     (license license:bsd-3)))

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 4/6] gnu: Add opari2.
  2017-10-02 20:48 ` [bug#28673] [PATCH 4/6] gnu: Add opari2 Dave Love
@ 2017-10-03 14:13   ` Ludovic Courtès
  0 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-10-03 14:13 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673

[-- Attachment #1: Type: text/plain, Size: 374 bytes --]

Dave Love <fx@gnu.org> skribis:

> * gnu/packages/profiling.scm (opari2): New variable.

Applied with the change below.

BTW, I’m not satisfied with all the custom phases to install license
files.  I think we should fix it once and for all in the build system in
‘core-updates’.  I’ll see if I can propose a patch if nobody beats me.

Thanks,
Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1381 bytes --]

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 7340b0172..9a2f2a664 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -182,14 +182,14 @@ efficient event trace data format plus support library.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'licence
-           (lambda _
-             (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
-               (mkdir-p doc)
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((doc (string-append (assoc-ref outputs "out")
+                                       "/share/doc/opari2")))
                (install-file "COPYING" doc)
                #t))))))
     (home-page "http://www.vi-hps.org/projects/score-p")
-    (synopsis "An OpenMP runtime performance measurement instrumenter")
-    (description "OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid
-codes.  It surrounds OpenMP directives and runtime library calls with calls
-to the POMP2 measurement interface.")
+    (synopsis "OpenMP runtime performance measurement instrumenter")
+    (description "OPARI2 is a source-to-source instrumentation tool for OpenMP
+and hybrid codes.  It surrounds OpenMP directives and runtime library calls
+with calls to the POMP2 measurement interface.")
     (license license:bsd-3)))

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 3/6] gnu: Add cube.
  2017-10-02 20:48 ` [bug#28673] [PATCH 3/6] gnu: Add cube Dave Love
@ 2017-10-03 14:44   ` Ludovic Courtès
  0 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-10-03 14:44 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673

[-- Attachment #1: Type: text/plain, Size: 228 bytes --]

Dave Love <fx@gnu.org> skribis:

> * gnu/packages/profiling.scm(cube): New variable.
> * gnu/packages/patches/cube-nocheck.patch: New file.
> * gnu/local.mk: Add it.

Applied with the changes below, thanks!

Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 8334 bytes --]

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 300c6fc94..598633c3e 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qt))
 
@@ -198,7 +199,6 @@ and hybrid codes.  It surrounds OpenMP directives and runtime library calls
 with calls to the POMP2 measurement interface.")
     (license license:bsd-3)))
 
-;; FIXME: The doc is 14MB, but adding a doc output results in a cycle
 (define-public cube
   (package
     (name "cube")
@@ -210,16 +210,17 @@ with calls to the POMP2 measurement interface.")
              "http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-"
              version ".tar.gz"))
        (sha256 (base32 "04irflia4rfw02093w9nx7rr98r640y4q8hisjywvd4b7r3nzhhx"))
-       (patches (search-patches
-                 ;; Disable network check for new versions (from Fedora)
-                 "cube-nocheck.patch"))))
+       (patches (search-patches "cube-nocheck.patch"))))
     (inputs `(("dbus" ,dbus)
               ("zlib" ,zlib)))
     (native-inputs `(("perl" ,perl)
-                     ("qtbase" ,qtbase) ; native because of qmake
+                     ("qtbase" ,qtbase)           ; native because of qmake
                      ("which" ,which)))
-    (outputs '("out" ;"doc"
+
+    ;; FIXME: The doc is 14MB, but adding a doc output results in a cycle.
+    (outputs '("out"                              ;"doc"
                "lib"))
+
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -230,27 +231,30 @@ with calls to the POMP2 measurement interface.")
        (modify-phases %standard-phases
          (add-after 'configure 'rpath
            ;; Account for moving GUI stuff
-           (lambda _
-             (let ((wl (string-append "-Wl,-rpath=" %output "/lib")))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((wl (string-append "-Wl,-rpath=" (assoc-ref outputs "out")
+                                      "/lib")))
                (substitute* "build-backend/Makefile"
                  (("^cube_LDFLAGS =") (string-append "cube_LDFLAGS = " wl))
                  (("^libheatmap_plugin_la_LDFLAGS =")
                   (string-append "libheatmap_plugin_la_LDFLAGS = " wl))
                  (("^libbarplot_plugin_la_LDFLAGS =")
-                  (string-append "libbarplot_plugin_la_LDFLAGS = " wl))))))
+                  (string-append "libbarplot_plugin_la_LDFLAGS = " wl)))
+               #t)))
          (add-before 'install 'includes-cube
            ;; It tries to install here before include exists.
-           (lambda _
-             (let ((inc (string-append (assoc-ref %outputs "lib") "/include")))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((inc (string-append (assoc-ref outputs "lib") "/include")))
                (mkdir-p (string-append inc "/cube"))
-               (mkdir-p (string-append inc "/cubew")))))
+               (mkdir-p (string-append inc "/cubew"))
+               #t)))
          (add-after 'install 'licence
-           (lambda _
-             (let ((doc (string-append (assoc-ref %outputs "lib") "/share/doc")))
-               (mkdir-p doc)
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((doc (string-append (assoc-ref outputs "lib")
+                                       "/share/doc/cube")))
                (install-file "COPYING" doc)
                #t)))
-         ;; FIXME: cycle
+         ;; XXX: Commented due to cycle (see comment above.)
          ;; (add-after 'install 'doc
          ;;   (lambda _
          ;;     (let ((share (string-append (assoc-ref %outputs "doc")
@@ -269,23 +273,28 @@ with calls to the POMP2 measurement interface.")
                (for-each (lambda (file)
                            (rename-file
                             file (string-append outlib "/" (basename file))))
-                         (append (find-files lib "libgraphwidgetcommon-plugin.*")
-                                 (find-files lib "libcube4gui.so.*"))))))
+                         (append (find-files lib "libgraphwidgetcommon-plugin\\..*")
+                                 (find-files lib "libcube4gui\\.so.*")))
+               #t)))
          (add-after 'install 'move-include
            ;; Most of the headers end up under %output for some reason,
            ;; despite --includedir in configure.
-           (lambda _
-             (let ((outinc (string-append %output "/include"))
-                   (libinc (string-append (assoc-ref %outputs "lib") "/include")))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((outinc (string-append (assoc-ref outputs "out")
+                                          "/include"))
+                   (libinc (string-append (assoc-ref outputs "lib")
+                                          "/include")))
                (for-each (lambda (file)
                            (let ((from (string-append outinc "/" file)))
                              (copy-recursively from libinc)
                              (delete-file-recursively from)))
-                         '("cube" "cubew")))))
-         ;; FIXME: This doesn't work because cube-config, which is needed for
+                         '("cube" "cubew"))
+               #t)))
+
+         ;; XXX: This doesn't work because cube-config, which is needed for
          ;; building stuff, sources cube-config-frontend.  We don't want that
          ;; in the lib output because it pulls in >1GB via QT.
-
+         ;;
          ;; (add-after 'install 'cube-config
          ;;   (lambda _
          ;;     (let* ((lib (assoc-ref %outputs "lib"))
@@ -298,8 +307,8 @@ with calls to the POMP2 measurement interface.")
          ;;         (("^exec_prefix=\"\\$\\{prefix\\}\"")
          ;;          (string-append "exec_prefix=" lib))))))
          (add-after 'install 'cube-config
-           (lambda _
-             (let* ((lib (assoc-ref %outputs "lib"))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((lib (assoc-ref outputs "lib"))
                     (libbin (string-append lib "/bin")))
                (mkdir-p libbin)
                (install-file (string-append %output "/bin/cube-config") libbin)
@@ -307,16 +316,17 @@ with calls to the POMP2 measurement interface.")
                              libbin)
                (substitute* (list (string-append libbin "/cube-config"))
                  (("^source .*frontend.*$") "")
-                 ((%output) lib))))))))
+                 (((assoc-ref outputs "out")) lib))
+               #t))))))
     (home-page "http://www.scalasca.org/software/cube-4.x/download.html")
-    (synopsis "CUBE Uniform Behavioral Encoding generic presentation component")
-    (description "CUBE (CUBE Uniform Behavioral Encoding) is a generic presentation component
-suitable for displaying a wide variety of performance metrics for parallel
-programs including MPI and OpenMP applications.  CUBE allows interactive
-exploration of a multidimensional performance space in a scalable fashion.
-Scalability is achieved in two ways: hierarchical decomposition of individual
-dimensions and aggregation across different dimensions.  All performance
-metrics are uniformly accommodated in the same display and thus provide the
-ability to easily compare the effects of different kinds of performance
-behavior.")
+    (synopsis "Performance report explorer for parallel programs")
+    (description
+     "CUBE (CUBE Uniform Behavioral Encoding) is a tool to display a variety
+of performance metrics for parallel programs including MPI and OpenMP
+applications.  CUBE allows interactive exploration of a multidimensional
+performance space in a scalable fashion.  Scalability is achieved in two ways:
+hierarchical decomposition of individual dimensions and aggregation across
+different dimensions.  All performance metrics are uniformly accommodated in
+the same display and thus provide the ability to easily compare the effects of
+different kinds of performance behavior.")
     (license license:bsd-3)))

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes.
  2017-10-02 20:48 ` [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes Dave Love
@ 2017-10-03 14:46   ` Ludovic Courtès
  2017-11-16  9:47     ` bug#28673: " Ludovic Courtès
  0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2017-10-03 14:46 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673

Dave Love <fx@gnu.org> skribis:

> * gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch:
> New file.
> * gnu/packages/patches/libunwind-ppc_lib64.patch: New file.
> * gnu/packages/libunwind.scm (libunwind)[source]: Use them.
> (libunwind)(native-inputs): Add autotools.
> (libunwind)(arguments): Enable tests; run autoreconf.
> * gnu/local.mk: Update dependencies.

[...]

> +++ b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
> @@ -0,0 +1,11 @@
> +--- libunwind-1.2.1/tests/Makefile.am~	1970-01-01 01:00:00.000000000 +0100
> ++++ libunwind-1.2.1/tests/Makefile.am	2017-09-06 13:32:52.331888031 +0100
> +@@ -97,7 +97,7 @@
> + XFAIL_TESTS =
> + 
> + if !ARCH_IA64
> +-XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1
> ++XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1 test-ptrace
> + endif
> + 
> + # Use if arch defines but does not support PTRACE_SINGLESTEP
> diff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patch
> new file mode 100644
> index 000000000..9ab0108ae
> --- /dev/null
> +++ b/gnu/packages/patches/libunwind-ppc_lib64.patch
> @@ -0,0 +1,17 @@
> +Index: pkg-libunwind/configure.ac
> +===================================================================
> +--- pkg-libunwind.orig/configure.ac	2014-05-07 15:13:28.247711669 +0900
> ++++ pkg-libunwind/configure.ac	2014-05-07 15:14:25.924958386 +0900
> +@@ -164,12 +164,6 @@
> + AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
> + AC_MSG_RESULT([$use_dwarf])
> + 
> +-if test x$target_arch = xppc64; then
> +-        libdir='${exec_prefix}/lib64'
> +-        AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
> +-        AC_SUBST([libdir])
> +-fi

Could you avoid this patch and instead use ‘substitute*’ on ‘configure’
and ‘tests/Makefile.in’ such that we don’t need the extra dependency on
the autotools?

Please make sure to add a comment explaining why we’re doing this (the
Makefile.am bit is not obvious to me.)

TIA!

Ludo’.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi.
  2017-10-02 20:48 ` [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi Dave Love
@ 2017-10-03 15:07   ` Ludovic Courtès
  0 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-10-03 15:07 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673

[-- Attachment #1: Type: text/plain, Size: 184 bytes --]

Dave Love <fx@gnu.org> skribis:

> * gnu/packages/profiling.scm (make-scorep): New function.
> (scorep-openmpi): New variable.

Applied with these changes, thanks!

Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 4330 bytes --]

diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index ab5381d75..4fdf260c6 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -339,16 +339,19 @@ different kinds of performance behavior.")
   (package
     (name (string-append "scorep-" (package-name mpi)))
     (version "3.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (let* ((parts (string-split version #\.) )
-                  (major (car parts))
-                  (minor (cadr parts)))
-             (string-append
-              "http://www.vi-hps.org/upload/packages/scorep/scorep-"
-              version ".tar.gz")))
-      (sha256 (base32 "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://www.vi-hps.org/upload/packages/scorep/scorep-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Remove bundled software.
+               '(for-each delete-file-recursively
+                          '("vendor/opari2" "vendor/cube")))))
     (build-system gnu-build-system)
     (inputs
      `(("mpi" ,mpi)
@@ -356,44 +359,41 @@ different kinds of performance behavior.")
        ("opari2" ,opari2)
        ("libunwind" ,libunwind)
        ("otf2" ,otf2)
-       ("cube" ,cube)                   ;for cube-config, as above
-       ("cubelib" ,cube "lib")          ;for lib, include
+       ("cubelib" ,cube "lib")                    ;for lib, include
        ("openmpi" ,openmpi)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("flex" ,flex)
+       ("cube" ,cube)                             ;for cube-config
+       ("bison" ,bison)
+       ("python" ,python)
        ("doxygen" ,doxygen)
-       ("zlib" ,zlib)
        ("which" ,which)))
-    (native-inputs `(("gfortran" ,gfortran)
-                     ("flex" ,flex)
-                     ("bison" ,bison)
-                     ("python" ,python)))
     (arguments
      `(#:configure-flags
        (list "--enable-shared" "--disable-static"
-             (string-append "--with-opari2=" (assoc-ref %build-inputs "opari2"))
-             (string-append "--with-cube=" (assoc-ref %build-inputs "cube")))
+             (string-append "--with-opari2="
+                            (assoc-ref %build-inputs "opari2"))
+             (string-append "--with-cube="
+                            (assoc-ref %build-inputs "cube")))
        #:parallel-tests? #f
        #:make-flags '("V=1")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'clean-source
-           (lambda _
-             (map delete-file-recursively '("vendor/opari2" "vendor/cube"))))
          (add-after 'install 'licence
-           (lambda _
-             (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
-               (mkdir-p doc)
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((doc (string-append (assoc-ref outputs "out")
+                                       "/share/doc/scorep")))
                (install-file "COPYING" doc)
                #t))))))
     (home-page "http://www.vi-hps.org/projects/score-p/")
-    (synopsis
-     (format #f "\
-Scalable Performance Measurement Infrastructure for Parallel Codes, ~a version"
-             (package-name mpi)))
-    (description (format #f "The Score-P (Scalable Performance Measurement Infrastructure for Parallel
-Codes) measurement infrastructure is a highly scalable and easy-to-use tool
-suite for profiling, event trace recording, and online analysis of HPC
-applications.
-This is the ~a version." (package-name mpi)))
+    (synopsis "Performance measurement infrastructure for parallel code")
+    (description
+     "The Score-P (Scalable Performance Measurement Infrastructure for
+Parallel Codes) measurement infrastructure is a scalable and easy-to-use tool
+suite for profiling, event trace recording, and online analysis of
+high-performance computing (HPC) applications.")
     (license license:cpl1.0)))
 
 (define-public scorep-openmpi (make-scorep openmpi))

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* bug#28673: [PATCH 5/6] gnu: libunwind: Merge update and test changes.
  2017-10-03 14:46   ` Ludovic Courtès
@ 2017-11-16  9:47     ` Ludovic Courtès
  0 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-11-16  9:47 UTC (permalink / raw)
  To: Dave Love; +Cc: 28673-done

Hi Dave,

ludo@gnu.org (Ludovic Courtès) skribis:

> Dave Love <fx@gnu.org> skribis:
>
>> * gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch:
>> New file.
>> * gnu/packages/patches/libunwind-ppc_lib64.patch: New file.
>> * gnu/packages/libunwind.scm (libunwind)[source]: Use them.
>> (libunwind)(native-inputs): Add autotools.
>> (libunwind)(arguments): Enable tests; run autoreconf.
>> * gnu/local.mk: Update dependencies.
>
> [...]
>
>> +++ b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
>> @@ -0,0 +1,11 @@
>> +--- libunwind-1.2.1/tests/Makefile.am~	1970-01-01 01:00:00.000000000 +0100
>> ++++ libunwind-1.2.1/tests/Makefile.am	2017-09-06 13:32:52.331888031 +0100
>> +@@ -97,7 +97,7 @@
>> + XFAIL_TESTS =
>> + 
>> + if !ARCH_IA64
>> +-XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1
>> ++XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1 test-ptrace
>> + endif
>> + 
>> + # Use if arch defines but does not support PTRACE_SINGLESTEP
>> diff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patch
>> new file mode 100644
>> index 000000000..9ab0108ae
>> --- /dev/null
>> +++ b/gnu/packages/patches/libunwind-ppc_lib64.patch
>> @@ -0,0 +1,17 @@
>> +Index: pkg-libunwind/configure.ac
>> +===================================================================
>> +--- pkg-libunwind.orig/configure.ac	2014-05-07 15:13:28.247711669 +0900
>> ++++ pkg-libunwind/configure.ac	2014-05-07 15:14:25.924958386 +0900
>> +@@ -164,12 +164,6 @@
>> + AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
>> + AC_MSG_RESULT([$use_dwarf])
>> + 
>> +-if test x$target_arch = xppc64; then
>> +-        libdir='${exec_prefix}/lib64'
>> +-        AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
>> +-        AC_SUBST([libdir])
>> +-fi
>
> Could you avoid this patch and instead use ‘substitute*’ on ‘configure’
> and ‘tests/Makefile.in’ such that we don’t need the extra dependency on
> the autotools?
>
> Please make sure to add a comment explaining why we’re doing this (the
> Makefile.am bit is not obvious to me.)

Since these libunwind changes do not seem to relate to the rest of this
PAPI series (which has been applied), I’m closing it now.  Feel free to
resubmit separately if you think it’s still relevant!

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-11-16  9:48 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-02 20:48 [bug#28673] [PATCH 1/6] gnu: Add papi Dave Love
2017-10-02 20:48 ` [bug#28673] [PATCH 2/6] gnu: Add otf2 Dave Love
2017-10-03 14:09   ` Ludovic Courtès
2017-10-02 20:48 ` [bug#28673] [PATCH 3/6] gnu: Add cube Dave Love
2017-10-03 14:44   ` Ludovic Courtès
2017-10-02 20:48 ` [bug#28673] [PATCH 4/6] gnu: Add opari2 Dave Love
2017-10-03 14:13   ` Ludovic Courtès
2017-10-02 20:48 ` [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes Dave Love
2017-10-03 14:46   ` Ludovic Courtès
2017-11-16  9:47     ` bug#28673: " Ludovic Courtès
2017-10-02 20:48 ` [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi Dave Love
2017-10-03 15:07   ` Ludovic Courtès
2017-10-03 13:43 ` [bug#28673] [PATCH 1/6] gnu: Add papi Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).