diff mbox series

[bug#57679,RFC] gnu: Add paraview.

Message ID 87bkpp8evk.fsf@elephly.net
State New
Headers show
Series [bug#57679,RFC] gnu: Add paraview. | expand

Checks

Context Check Description
cbaines/applying patch fail
cbaines/issue success View issue

Commit Message

Ricardo Wurmus Nov. 2, 2022, 4:50 p.m. UTC
Attached is an earlier version of Paraview (5.9.1) that has been
submitted by Ontje (in Cc).

@Ludo: there doesn’t seem to be a way to unbundle VTK, because Paraview
is closely tied to VTK, reuses its build system to some extent, and is
better understood as an *extension* to VTK than a client application
using VTK merely as a library.  Upstream also commented that unbundling
VTK is not a priority and would have to be supported by the community.

About the icons: when I run /gnu/store/7x3dxk0kl0rc1sw673z51cfran7q6hf1-paraview-5.9.1/bin/paraview I
don’t see most icons.  Even when I install it into a profile that has
adwaita-icon-theme and run it from the profile in a new shell session
the icons are not displayed.

According to strace the icons are found (after searching in all the
wrong places — probably an opportunity for performance improvement), but
they are not displayed.

This is the same problem as https://issues.guix.gnu.org/29905.  The
problem disappears when QT_PLUGIN_PATH is set.  I tested this by
installing qtsvg@5 in my profile alongside paraview-5.9.  The icons
show up.

So I suggest wrapping the executables in QT_PLUGIN_PATH just as we did
for krita and itk-snap.

Comments

Ludovic Courtès Nov. 3, 2022, 3:04 p.m. UTC | #1
Hi,

Ricardo Wurmus <rekado@elephly.net> skribis:

> Attached is an earlier version of Paraview (5.9.1) that has been
> submitted by Ontje (in Cc).

Good.  I think you can push so we have a feeling of progress on this.

> @Ludo: there doesn’t seem to be a way to unbundle VTK, because Paraview
> is closely tied to VTK, reuses its build system to some extent, and is
> better understood as an *extension* to VTK than a client application
> using VTK merely as a library.  Upstream also commented that unbundling
> VTK is not a priority and would have to be supported by the community.

Alright.  The ‘guix-hpc’ channel has an older version that I packaged:

  https://gitlab.inria.fr/guix-hpc/guix-hpc/-/blob/master/inria/staging.scm

There was a ‘PARAVIEW_USE_EXTERNAL_VTK’ CMake flag, though apparently it
wasn’t enough.

Anyway, please make sure the reasons for not unbundling are documented
in comments, with links to relevant resources.

Thanks!

Ludo’.
diff mbox series

Patch

From 2b067d0263210a6ac293cda9bdde906a871667ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ontje=20L=C3=BCnsdorf?= <Ontje.Luensdorf@dlr.de>
Date: Wed, 2 Nov 2022 17:35:51 +0100
Subject: [PATCH] gnu: Add paraview 5.9.1.

* gnu/packages/image-processing.scm (paraview-5.9): New variable.

Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
---
 gnu/packages/image-processing.scm | 93 +++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 778f6c8538..84494b770a 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -54,6 +54,7 @@  (define-module (gnu packages image-processing)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -86,6 +87,7 @@  (define-module (gnu packages image-processing)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tbb)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
@@ -868,6 +870,97 @@  (define-public nip2
 recalculates.")
     (license license:gpl2+)))
 
+;; This package bundles and extends VTK.  It also reuses the VTK build system
+;; to some degree.  Sadly, it does not seem to be possible to build with an
+;; external VTK, despite the CMake option PARAVIEW_USE_EXTERNAL_VTK.
+(define-public paraview-5.9
+  (package
+    (name "paraview")
+    (version "5.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.paraview.org/files/v"
+                           (version-major+minor version)
+                           "/ParaView-v" version ".tar.xz"))
+       (sha256
+        (base32 "13aczmfshzia324h9r2m675yyrklz2308rf98n444ppmzfv6qj0d"))))
+    (build-system cmake-build-system)
+    (propagated-inputs
+     (list mesa qtbase-5 qtsvg-5 glew))
+    (inputs
+     (list ;; XXX: We can't simply #:use-module due to a cycle somewhere.
+           (module-ref
+            (resolve-interface '(gnu packages engineering))
+            'cgns)
+           cli11
+           double-conversion
+           eigen
+           expat
+           ffmpeg
+           freetype
+           gdal
+           gl2ps
+           hdf5
+           jsoncpp
+           libharu
+           libjpeg-turbo
+           libpng
+           libtheora
+           libtiff
+           libxml2
+           lz4
+           netcdf
+           protobuf
+           pugixml
+           python
+           qttools-5
+           qtxmlpatterns
+           utfcpp
+           zlib))
+    (arguments
+     (list
+      #:build-type "Release"        ;Build without debug symbols to save space
+      #:configure-flags
+      '(list "-DPARAVIEW_BUILD_WITH_EXTERNAL=ON"
+             "-DPARAVIEW_BUILD_SHARED_LIBS=ON"
+             "-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF"
+             "-DPARAVIEW_USE_PYTHON=ON"
+             "-DPARAVIEW_ENABLE_FFMPEG=ON"
+             "-DPARAVIEW_ENABLE_GDAL=ON"
+             "-DPARAVIEW_ENABLE_WEB=OFF"
+
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_lzma=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_utf8=ON"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON"
+
+             "-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=OFF"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_cgns=OFF"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_fmt=OFF"
+             "-DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF")))
+    (home-page "https://www.paraview.org/")
+    (synopsis "Data analysis and visualization application")
+    (description "ParaView is a data analysis and visualization application.
+Users can quickly build visualizations to analyze their data using qualitative
+and quantitative techniques.  The data exploration can be done interactively
+in 3D or programmatically using ParaView’s batch processing capabilities.")
+    (license license:bsd-3)))
+
 (define-public vxl
   (package
     (name "vxl")
-- 
2.36.1