gnu: cube: Deprecate.

* gnu/packages/profiling.scm (cube): Deprecate in favor of cubegui.

Fixes: guix/guix#2188
Change-Id: I5d647a9c5ee95f312f8db074b0408d87f09e5281
This commit is contained in:
Andreas Enge 2025-09-22 11:41:08 +02:00
parent ed5f5d471f
commit 961fe736aa
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3

View file

@ -212,136 +212,6 @@ and hybrid codes. It surrounds OpenMP directives and runtime library calls
with calls to the POMP2 measurement interface.")
(license license:bsd-3)))
(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 "cube-nocheck.patch"))))
(inputs (list dbus zlib))
(native-inputs (list perl qtbase-5 ; native because of qmake
which))
;; 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
`("--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* (#: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)))
#t)))
(add-before 'install 'includes-cube
;; It tries to install here before include exists.
(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"))
#t)))
(add-after 'install 'licence
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "lib")
"/share/doc/cube")))
(install-file "COPYING" doc)
#t)))
;; XXX: Commented due to cycle (see comment above.)
;; (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.*")))
#t)))
(add-after 'install 'move-include
;; Most of the headers end up under %output for some reason,
;; despite --includedir in configure.
(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"))
#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"))
;; (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* (#: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)
(install-file (string-append %output "/bin/cube-config-backend")
libbin)
(substitute* (list (string-append libbin "/cube-config"))
(("^source .*frontend.*$") "")
(((assoc-ref outputs "out")) lib))
#t))))))
(home-page "https://www.scalasca.org/software/cube-4.x/download.html")
(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)))
;; Since version 4.4, CUBE has been split in three different packages: CubeW,
;; CubeLib, CubeGUI. They are still released together, so we conventionally
;; define cubew as the parent package for cubelib and cubegui to factorize
@ -438,6 +308,10 @@ project.")))
of performance metrics for parallel programs including MPI and OpenMP
applications. CubeGUI is the graphical explorer of the CUBE project.")))
;; deprecated on 2025-09-22
(define-public cube
(deprecated-package "cube" cubegui))
(define-public tracy-wayland
(package
(name "tracy-wayland")