Subject: [PATCH 2/7] gnu: Remove fenics.

From: Andreas Enge <[email-masked]>
Date: Mon, 31 Mar 2025 23:52:51 +0200

* gnu/packages/simulation.scm (fenics): Delete variable.

Change-Id: I3d34832d935c2a6ebcd6ec71e6e9a7167a0a59f6
---
 gnu/packages/simulation.scm | 129 ------------------------------------
 1 file changed, 129 deletions(-)

diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index 161e6a85d4..102cbf8977 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -909,135 +909,6 @@ (define-public fenics-dolfin
                    license:expat
                    license:lgpl3+))))
 
-(define-public fenics
-  (package/inherit fenics-dolfin
-    (name "fenics")
-    (build-system python-build-system)
-    (inputs
-     (modify-inputs (package-inputs fenics-dolfin)
-       (delete "python")
-       (prepend pybind11 python-matplotlib)))
-    (native-inputs
-     (modify-inputs (package-native-inputs fenics-dolfin)
-       (prepend cmake-minimal python-ply python-pytest python-decorator)))
-    (propagated-inputs
-     (list fenics-dolfin
-           python-petsc4py
-           python-slepc4py
-
-           ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time.
-           python-pkgconfig))
-    (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'unpack 'relax-requirements
-                 (lambda _
-                   (substitute* "python/setup.py"
-                     (("pybind11==")
-                      "pybind11>="))))
-               (add-after 'unpack 'set-dolfin-pc-file-name
-                 (lambda* (#:key inputs #:allow-other-keys)
-                   ;; Instead of cluttering the user's 'PKG_CONFIG_PATH' environment
-                   ;; variable, hard-code the 'dolfin.pc' absolute file name.
-                   (let ((pc-file (search-input-file inputs
-                                                     "/lib/pkgconfig/dolfin.pc")))
-                     (substitute* "python/dolfin/jit/jit.py"
-                       (("pkgconfig\\.parse\\(\"dolfin\"\\)")
-                        (string-append "pkgconfig.parse(\"" pc-file
-                                       "\")"))))))
-               (add-after 'patch-source-shebangs 'set-paths
-                 (lambda _
-                   ;; Define paths to store locations.
-                   (setenv "PYBIND11_DIR" #$(this-package-input "pybind11"))
-                   ;; Move to python sub-directory.
-                   (chdir "python")))
-               (add-after 'build 'mpi-setup
-                 #$%openmpi-setup)
-               (add-before 'check 'pre-check
-                 (lambda _
-                   ;; Exclude three tests that generate
-                   ;; 'NotImplementedError' in matplotlib version 3.1.2.
-                   ;; See
-                   ;; <https://github.com/matplotlib/matplotlib/issues/15382>.
-                   ;; Also exclude tests that require meshes supplied by
-                   ;; git-lfs.
-                   (substitute* "demo/test.py"
-                     (("(.*stem !.*)" line)
-                      (string-append line
-                                     "\n"
-                                     "excludeList = [\n"
-                                     "'built-in-meshes', \n"
-                                     "'hyperelasticity', \n"
-                                     "'elasticity', \n"
-                                     "'multimesh-quadrature', \n"
-                                     "'multimesh-marking', \n"
-                                     "'mixed-poisson-sphere', \n"
-                                     "'mesh-quality', \n"
-                                     "'lift-drag', \n"
-                                     "'elastodynamics', \n"
-                                     "'dg-advection-diffusion', \n"
-                                     "'curl-curl', \n"
-                                     "'contact-vi-tao', \n"
-                                     "'contact-vi-snes', \n"
-                                     "'collision-detection', \n"
-                                     "'buckling-tao', \n"
-                                     "'auto-adaptive-navier-stokes', \n"
-                                     "'advection-diffusion', \n"
-                                     "'subdomains', \n"
-                                     "'stokes-taylor-hood', \n"
-                                     "'stokes-mini', \n"
-                                     "'navier-stokes', \n"
-                                     "'eigenvalue']\n"
-                                     "demos = ["
-                                     "d for d in demos if d[0].stem not in "
-                                     "excludeList]\n")))
-                   (setenv "HOME"
-                           (getcwd))
-                   ;; Restrict OpenBLAS to MPI-only in preference to MPI+OpenMP.
-                   (setenv "OPENBLAS_NUM_THREADS" "1")))
-               (replace 'check
-                 (lambda* (#:key tests? #:allow-other-keys)
-                   (when tests?
-                     (with-directory-excursion "test"
-                       (invoke "pytest"
-                               "unit"
-                               ;; The test test_snes_set_from_options() in the file
-                               ;; unit/nls/test_PETScSNES_solver.py fails and is ignored.
-                               "--ignore"
-                               "unit/nls/test_PETScSNES_solver.py"
-                               ;; Fails with a segfault.
-                               "--ignore"
-                               "unit/io/test_XDMF.py")))))
-               (add-after 'install 'install-demo-files
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (let* ((demos (string-append (assoc-ref outputs "out")
-                                                "/share/python-dolfin/demo")))
-                     (mkdir-p demos)
-                     (with-directory-excursion "demo"
-                       (for-each (lambda (file)
-                                   (let* ((dir (dirname file))
-                                          (tgt-dir (string-append
-                                                    demos "/" dir)))
-                                     (unless (equal? "." dir)
-                                       (mkdir-p tgt-dir)
-                                       (install-file file tgt-dir))))
-                                 (find-files "." ".*\\.(py|gz|xdmf)$")))))))))
-    (home-page "https://fenicsproject.org/")
-    (synopsis "High-level environment for solving differential equations")
-    (description
-      "@code{fenics} is a computing platform for solving general classes of
-problems that involve differential equations.  @code{fenics} facilitates
-access to efficient methods for dealing with ordinary differential
-equations (ODEs) and partial differential equations (PDEs).  Systems of
-equations such as these are commonly encountered in areas of engineering,
-mathematics and the physical sciences.  It is particularly well-suited to
-problems that can be solved using the Finite Element Method (FEM).
-
-@code{fenics} is the top level of the set of packages that are developed
-within the FEniCS project.  It provides the python user interface to the
-FEniCS core components and external libraries.")
-    (license license:lgpl3+)))
-
 (define-public fullswof-2d
   (let ((revision 505)
         (release "1.09.01"))
-- 
2.49.0