Package: guix-patches;
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Thu, 15 Jun 2023 15:38:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64081 in the body.
You can then email your comments to 64081 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
yann.dupont <at> univ-nantes.fr, guix-patches <at> gnu.org
:bug#64081
; Package guix-patches
.
(Thu, 15 Jun 2023 15:38:02 GMT) Full text and rfc822 format available.Ludovic Courtès <ludo <at> gnu.org>
:yann.dupont <at> univ-nantes.fr, guix-patches <at> gnu.org
.
(Thu, 15 Jun 2023 15:38:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: guix-patches <at> gnu.org Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr> Subject: [PATCH 1/2] gnu: fenics: Make sure 'jit.py' can find 'dolfin.pc'. Date: Thu, 15 Jun 2023 17:35:30 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr> * gnu/packages/simulation.scm (fenics)[inputs]: Move PYTHON-PKGCONFIG to... [propagated-inputs]: ... here. [arguments]: Add 'set-dolfin-pc-file-name' phase. --- gnu/packages/simulation.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index 059be5a2be..9eeb57babe 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -716,12 +716,14 @@ (define-public fenics ("ply" ,python-ply) ("pytest" ,python-pytest) ("python-decorator" ,python-decorator) - ("python-pkgconfig" ,python-pkgconfig) ,@(package-native-inputs fenics-dolfin))) (propagated-inputs `(("dolfin" ,fenics-dolfin) ("petsc4py" ,python-petsc4py) - ("slepc4py" ,python-slepc4py))) + ("slepc4py" ,python-slepc4py) + + ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time. + ("python-pkgconfig" ,python-pkgconfig))) (arguments `(#:phases (modify-phases %standard-phases @@ -729,6 +731,15 @@ (define-public fenics (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. base-commit: 26602f4063a6e0c626e8deb3423166bcd0abeb90 -- 2.40.1
yann.dupont <at> univ-nantes.fr, guix-patches <at> gnu.org
:bug#64081
; Package guix-patches
.
(Thu, 15 Jun 2023 15:43:02 GMT) Full text and rfc822 format available.Message #8 received at 64081 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 64081 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr> Subject: [PATCH 2/2] gnu: fenics-dolfin, fenics: Remove input labels. Date: Thu, 15 Jun 2023 17:41:54 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr> * gnu/packages/simulation.scm (fenics-dolfin)[inputs, native-inputs] [propagated-inputs]: Remove labels. [arguments]: Rewrite using gexps. Adjust 'set-paths' phase accordingly. (fenics): Likewise. --- gnu/packages/simulation.scm | 407 ++++++++++++++++++------------------ 1 file changed, 206 insertions(+), 201 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index 9eeb57babe..dfd432dcd3 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -569,108 +569,111 @@ (define-public fenics-dolfin "$ENV{CATCH_DIR}/include" back "\n"))))))) (build-system cmake-build-system) (inputs - `(("blas" ,openblas) - ("boost" ,boost) - ("eigen" ,eigen) - ("hdf5" ,hdf5-parallel-openmpi) - ("lapack" ,lapack) - ("libxml2" ,libxml2) - ("openmpi" ,openmpi) - ("python" ,python-3) - ("scotch" ,pt-scotch32) - ("suitesparse" ,suitesparse) - ("sundials" ,sundials-openmpi) - ("zlib" ,zlib))) + (list openblas + boost + eigen + hdf5-parallel-openmpi + lapack + libxml2 + openmpi + python-3 + pt-scotch32 + suitesparse + sundials-openmpi + zlib)) (native-inputs - `(("catch" ,catch2-1) - ("pkg-config" ,pkg-config))) + (list catch2-1 pkg-config)) (propagated-inputs - `(("ffc" ,python-fenics-ffc) - ("petsc" ,petsc-openmpi) - ("slepc" ,slepc-openmpi))) + (list python-fenics-ffc petsc-openmpi slepc-openmpi)) (arguments - `(#:configure-flags - `("-DDOLFIN_ENABLE_DOCS:BOOL=OFF" - "-DDOLFIN_ENABLE_HDF5:BOOL=ON" - "-DDOLFIN_ENABLE_MPI:BOOL=ON" - "-DDOLFIN_ENABLE_PARMETIS:BOOL=OFF" - "-DDOLFIN_ENABLE_SCOTCH:BOOL=ON" - "-DDOLFIN_ENABLE_SUNDIALS:BOOL=ON" - "-DDOLFIN_ENABLE_TRILINOS:BOOL=OFF") - #:phases - (modify-phases %standard-phases - (add-after 'patch-usr-bin-file 'mpi-setup - ,%openmpi-setup) - (add-after 'patch-source-shebangs 'set-paths - (lambda _ - ;; Define paths to store locations. - (setenv "BLAS_DIR" (assoc-ref %build-inputs "blas")) - (setenv "CATCH_DIR" (assoc-ref %build-inputs "catch")) - (setenv "LAPACK_DIR" (assoc-ref %build-inputs "lapack")) - (setenv "PETSC_DIR" (assoc-ref %build-inputs "petsc")) - (setenv "SLEPC_DIR" (assoc-ref %build-inputs "slepc")) - (setenv "SCOTCH_DIR" (assoc-ref %build-inputs "scotch")) - (setenv "SUNDIALS_DIR" (assoc-ref %build-inputs "sundials")) - (setenv "UMFPACK_DIR" (assoc-ref %build-inputs "suitesparse")))) - (add-before 'check 'pre-check - (lambda _ - ;; The Dolfin repository uses git-lfs, whereby web links are - ;; substituted for large files. Guix does not currently support - ;; git-lfs, so only the links are downloaded. The tests that - ;; require the absent meshes cannot run and are skipped. - ;; - ;; One serial test fails and is skipped. - ;; i) demo_multimesh-stokes_serial: - ;; Warning: Found no facets matching domain for boundary - ;; condition. - ;; - ;; One mpi test fails and is skipped. - ;; i) demo_stokes-iterative_mpi: - ;; The MPI_Comm_rank() function was called before MPI_INIT was - ;; invoked - (call-with-output-file "CTestCustom.cmake" - (lambda (port) - (display - (string-append - "set(CTEST_CUSTOM_TESTS_IGNORE " - "demo_bcs_serial " - "demo_bcs_mpi " - "demo_eigenvalue_serial " - "demo_eigenvalue_mpi " - "demo_navier-stokes_serial " - "demo_navier-stokes_mpi " - "demo_stokes-taylor-hood_serial " - "demo_stokes-taylor-hood_mpi " - "demo_subdomains_serial " - "demo_advection-diffusion_serial " - "demo_advection-diffusion_mpi " - "demo_auto-adaptive-navier-stokes_serial " - "demo_contact-vi-snes_serial " - "demo_contact-vi-snes_mpi " - "demo_contact-vi-tao_serial " - "demo_contact-vi-tao_mpi " - "demo_curl-curl_serial " - "demo_curl-curl_mpi " - "demo_dg-advection-diffusion_serial " - "demo_dg-advection-diffusion_mpi " - "demo_elasticity_serial " - "demo_elasticity_mpi " - "demo_elastodynamics_serial " - "demo_elastodynamics_mpi " - "demo_lift-drag_serial " - "demo_lift-drag_mpi " - "demo_mesh-quality_serial " - "demo_mesh-quality_mpi " - "demo_multimesh-stokes_serial " - ")\n") port))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "make" "unittests") - (invoke "make" "demos") - (invoke "ctest" "-R" "unittests") - (invoke "ctest" "-R" "demo" "-R" "serial") - (invoke "ctest" "-R" "demo" "-R" "mpi"))))))) + (list #:configure-flags #~`("-DDOLFIN_ENABLE_DOCS:BOOL=OFF" + "-DDOLFIN_ENABLE_HDF5:BOOL=ON" + "-DDOLFIN_ENABLE_MPI:BOOL=ON" + "-DDOLFIN_ENABLE_PARMETIS:BOOL=OFF" + "-DDOLFIN_ENABLE_SCOTCH:BOOL=ON" + "-DDOLFIN_ENABLE_SUNDIALS:BOOL=ON" + "-DDOLFIN_ENABLE_TRILINOS:BOOL=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'patch-usr-bin-file 'mpi-setup + #$%openmpi-setup) + (add-after 'patch-source-shebangs 'set-paths + (lambda _ + ;; Define paths to store locations. + (setenv "BLAS_DIR" + #$(this-package-input "openblas")) + (setenv "CATCH_DIR" + #$(this-package-input "catch")) + (setenv "LAPACK_DIR" + #$(this-package-input "lapack")) + (setenv "PETSC_DIR" + #$(this-package-input "petsc")) + (setenv "SLEPC_DIR" + #$(this-package-input "slepc")) + (setenv "SCOTCH_DIR" + #$(this-package-input "scotch")) + (setenv "SUNDIALS_DIR" + #$(this-package-input "sundials")) + (setenv "UMFPACK_DIR" + #$(this-package-input "suitesparse")))) + (add-before 'check 'pre-check + (lambda _ + ;; The Dolfin repository uses git-lfs, whereby web links are + ;; substituted for large files. Guix does not currently support + ;; git-lfs, so only the links are downloaded. The tests that + ;; require the absent meshes cannot run and are skipped. + ;; + ;; One serial test fails and is skipped. + ;; i) demo_multimesh-stokes_serial: + ;; Warning: Found no facets matching domain for boundary + ;; condition. + ;; + ;; One mpi test fails and is skipped. + ;; i) demo_stokes-iterative_mpi: + ;; The MPI_Comm_rank() function was called before MPI_INIT was + ;; invoked + (call-with-output-file "CTestCustom.cmake" + (lambda (port) + (display (string-append + "set(CTEST_CUSTOM_TESTS_IGNORE " + "demo_bcs_serial " + "demo_bcs_mpi " + "demo_eigenvalue_serial " + "demo_eigenvalue_mpi " + "demo_navier-stokes_serial " + "demo_navier-stokes_mpi " + "demo_stokes-taylor-hood_serial " + "demo_stokes-taylor-hood_mpi " + "demo_subdomains_serial " + "demo_advection-diffusion_serial " + "demo_advection-diffusion_mpi " + "demo_auto-adaptive-navier-stokes_serial " + "demo_contact-vi-snes_serial " + "demo_contact-vi-snes_mpi " + "demo_contact-vi-tao_serial " + "demo_contact-vi-tao_mpi " + "demo_curl-curl_serial " + "demo_curl-curl_mpi " + "demo_dg-advection-diffusion_serial " + "demo_dg-advection-diffusion_mpi " + "demo_elasticity_serial " + "demo_elasticity_mpi " + "demo_elastodynamics_serial " + "demo_elastodynamics_mpi " + "demo_lift-drag_serial " + "demo_lift-drag_mpi " + "demo_mesh-quality_serial " + "demo_mesh-quality_mpi " + "demo_multimesh-stokes_serial " + ")\n") port))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "make" "unittests") + (invoke "make" "demos") + (invoke "ctest" "-R" "unittests") + (invoke "ctest" "-R" "demo" "-R" "serial") + (invoke "ctest" "-R" "demo" "-R" "mpi"))))))) (home-page "https://bitbucket.org/fenics-project/dolfin/") (synopsis "Problem solving environment for differential equations") (description @@ -708,112 +711,114 @@ (define-public fenics (name "fenics") (build-system python-build-system) (inputs - `(("pybind11" ,pybind11) - ("python-matplotlib" ,python-matplotlib) - ,@(alist-delete "python" (package-inputs fenics-dolfin)))) + (modify-inputs (package-inputs fenics-dolfin) + (delete "python") + (prepend pybind11 python-matplotlib))) (native-inputs - `(("cmake" ,cmake-minimal) - ("ply" ,python-ply) - ("pytest" ,python-pytest) - ("python-decorator" ,python-decorator) - ,@(package-native-inputs fenics-dolfin))) + (modify-inputs (package-native-inputs fenics-dolfin) + (prepend cmake-minimal python-ply python-pytest python-decorator))) (propagated-inputs - `(("dolfin" ,fenics-dolfin) - ("petsc4py" ,python-petsc4py) - ("slepc4py" ,python-slepc4py) + (list fenics-dolfin + python-petsc4py + python-slepc4py - ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time. - ("python-pkgconfig" ,python-pkgconfig))) + ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time. + python-pkgconfig)) (arguments - `(#: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" (assoc-ref %build-inputs "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)$"))))))))) + (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 -- 2.40.1
guix-patches <at> gnu.org
:bug#64081
; Package guix-patches
.
(Tue, 20 Jun 2023 21:32:02 GMT) Full text and rfc822 format available.Message #11 received at 64081 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 64081 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr> Subject: [PATCH v2 1/2] gnu: fenics: Make sure 'jit.py' can find 'dolfin.pc'. Date: Tue, 20 Jun 2023 23:31:21 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr> * gnu/packages/simulation.scm (fenics)[inputs]: Move PYTHON-PKGCONFIG to... [propagated-inputs]: ... here. [arguments]: Add 'set-dolfin-pc-file-name' phase. --- gnu/packages/simulation.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index 059be5a2be..9eeb57babe 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -716,12 +716,14 @@ (define-public fenics ("ply" ,python-ply) ("pytest" ,python-pytest) ("python-decorator" ,python-decorator) - ("python-pkgconfig" ,python-pkgconfig) ,@(package-native-inputs fenics-dolfin))) (propagated-inputs `(("dolfin" ,fenics-dolfin) ("petsc4py" ,python-petsc4py) - ("slepc4py" ,python-slepc4py))) + ("slepc4py" ,python-slepc4py) + + ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time. + ("python-pkgconfig" ,python-pkgconfig))) (arguments `(#:phases (modify-phases %standard-phases @@ -729,6 +731,15 @@ (define-public fenics (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. base-commit: bb09f3ac002a4f34177d42fd3ea0332f4b7fe7a6 -- 2.40.1
guix-patches <at> gnu.org
:bug#64081
; Package guix-patches
.
(Tue, 20 Jun 2023 21:32:03 GMT) Full text and rfc822 format available.Message #14 received at 64081 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 64081 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludovic.courtes <at> inria.fr> Subject: [PATCH v2 2/2] gnu: fenics-dolfin, fenics: Remove input labels. Date: Tue, 20 Jun 2023 23:31:22 +0200
From: Ludovic Courtès <ludovic.courtes <at> inria.fr> * gnu/packages/simulation.scm (fenics-dolfin)[inputs, native-inputs] [propagated-inputs]: Remove labels. Replace CATCH2-1, which was actually unused, by CATCH-FRAMEWORK. [arguments]: Rewrite using gexps. Adjust 'set-paths' phase accordingly. (fenics): Likewise. --- gnu/packages/simulation.scm | 407 ++++++++++++++++++------------------ 1 file changed, 206 insertions(+), 201 deletions(-) diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index 9eeb57babe..a4aac0ebf8 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -569,108 +569,111 @@ (define-public fenics-dolfin "$ENV{CATCH_DIR}/include" back "\n"))))))) (build-system cmake-build-system) (inputs - `(("blas" ,openblas) - ("boost" ,boost) - ("eigen" ,eigen) - ("hdf5" ,hdf5-parallel-openmpi) - ("lapack" ,lapack) - ("libxml2" ,libxml2) - ("openmpi" ,openmpi) - ("python" ,python-3) - ("scotch" ,pt-scotch32) - ("suitesparse" ,suitesparse) - ("sundials" ,sundials-openmpi) - ("zlib" ,zlib))) + (list openblas + boost + eigen + hdf5-parallel-openmpi + lapack + libxml2 + openmpi + python-3 + pt-scotch32 + suitesparse + sundials-openmpi + zlib)) (native-inputs - `(("catch" ,catch2-1) - ("pkg-config" ,pkg-config))) + (list catch-framework pkg-config)) (propagated-inputs - `(("ffc" ,python-fenics-ffc) - ("petsc" ,petsc-openmpi) - ("slepc" ,slepc-openmpi))) + (list python-fenics-ffc petsc-openmpi slepc-openmpi)) (arguments - `(#:configure-flags - `("-DDOLFIN_ENABLE_DOCS:BOOL=OFF" - "-DDOLFIN_ENABLE_HDF5:BOOL=ON" - "-DDOLFIN_ENABLE_MPI:BOOL=ON" - "-DDOLFIN_ENABLE_PARMETIS:BOOL=OFF" - "-DDOLFIN_ENABLE_SCOTCH:BOOL=ON" - "-DDOLFIN_ENABLE_SUNDIALS:BOOL=ON" - "-DDOLFIN_ENABLE_TRILINOS:BOOL=OFF") - #:phases - (modify-phases %standard-phases - (add-after 'patch-usr-bin-file 'mpi-setup - ,%openmpi-setup) - (add-after 'patch-source-shebangs 'set-paths - (lambda _ - ;; Define paths to store locations. - (setenv "BLAS_DIR" (assoc-ref %build-inputs "blas")) - (setenv "CATCH_DIR" (assoc-ref %build-inputs "catch")) - (setenv "LAPACK_DIR" (assoc-ref %build-inputs "lapack")) - (setenv "PETSC_DIR" (assoc-ref %build-inputs "petsc")) - (setenv "SLEPC_DIR" (assoc-ref %build-inputs "slepc")) - (setenv "SCOTCH_DIR" (assoc-ref %build-inputs "scotch")) - (setenv "SUNDIALS_DIR" (assoc-ref %build-inputs "sundials")) - (setenv "UMFPACK_DIR" (assoc-ref %build-inputs "suitesparse")))) - (add-before 'check 'pre-check - (lambda _ - ;; The Dolfin repository uses git-lfs, whereby web links are - ;; substituted for large files. Guix does not currently support - ;; git-lfs, so only the links are downloaded. The tests that - ;; require the absent meshes cannot run and are skipped. - ;; - ;; One serial test fails and is skipped. - ;; i) demo_multimesh-stokes_serial: - ;; Warning: Found no facets matching domain for boundary - ;; condition. - ;; - ;; One mpi test fails and is skipped. - ;; i) demo_stokes-iterative_mpi: - ;; The MPI_Comm_rank() function was called before MPI_INIT was - ;; invoked - (call-with-output-file "CTestCustom.cmake" - (lambda (port) - (display - (string-append - "set(CTEST_CUSTOM_TESTS_IGNORE " - "demo_bcs_serial " - "demo_bcs_mpi " - "demo_eigenvalue_serial " - "demo_eigenvalue_mpi " - "demo_navier-stokes_serial " - "demo_navier-stokes_mpi " - "demo_stokes-taylor-hood_serial " - "demo_stokes-taylor-hood_mpi " - "demo_subdomains_serial " - "demo_advection-diffusion_serial " - "demo_advection-diffusion_mpi " - "demo_auto-adaptive-navier-stokes_serial " - "demo_contact-vi-snes_serial " - "demo_contact-vi-snes_mpi " - "demo_contact-vi-tao_serial " - "demo_contact-vi-tao_mpi " - "demo_curl-curl_serial " - "demo_curl-curl_mpi " - "demo_dg-advection-diffusion_serial " - "demo_dg-advection-diffusion_mpi " - "demo_elasticity_serial " - "demo_elasticity_mpi " - "demo_elastodynamics_serial " - "demo_elastodynamics_mpi " - "demo_lift-drag_serial " - "demo_lift-drag_mpi " - "demo_mesh-quality_serial " - "demo_mesh-quality_mpi " - "demo_multimesh-stokes_serial " - ")\n") port))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "make" "unittests") - (invoke "make" "demos") - (invoke "ctest" "-R" "unittests") - (invoke "ctest" "-R" "demo" "-R" "serial") - (invoke "ctest" "-R" "demo" "-R" "mpi"))))))) + (list #:configure-flags #~`("-DDOLFIN_ENABLE_DOCS:BOOL=OFF" + "-DDOLFIN_ENABLE_HDF5:BOOL=ON" + "-DDOLFIN_ENABLE_MPI:BOOL=ON" + "-DDOLFIN_ENABLE_PARMETIS:BOOL=OFF" + "-DDOLFIN_ENABLE_SCOTCH:BOOL=ON" + "-DDOLFIN_ENABLE_SUNDIALS:BOOL=ON" + "-DDOLFIN_ENABLE_TRILINOS:BOOL=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'patch-usr-bin-file 'mpi-setup + #$%openmpi-setup) + (add-after 'patch-source-shebangs 'set-paths + (lambda _ + ;; Define paths to store locations. + (setenv "BLAS_DIR" + #$(this-package-input "openblas")) + (setenv "CATCH_DIR" + #$(this-package-input "catch")) + (setenv "LAPACK_DIR" + #$(this-package-input "lapack")) + (setenv "PETSC_DIR" + #$(this-package-input "petsc")) + (setenv "SLEPC_DIR" + #$(this-package-input "slepc")) + (setenv "SCOTCH_DIR" + #$(this-package-input "scotch")) + (setenv "SUNDIALS_DIR" + #$(this-package-input "sundials")) + (setenv "UMFPACK_DIR" + #$(this-package-input "suitesparse")))) + (add-before 'check 'pre-check + (lambda _ + ;; The Dolfin repository uses git-lfs, whereby web links are + ;; substituted for large files. Guix does not currently support + ;; git-lfs, so only the links are downloaded. The tests that + ;; require the absent meshes cannot run and are skipped. + ;; + ;; One serial test fails and is skipped. + ;; i) demo_multimesh-stokes_serial: + ;; Warning: Found no facets matching domain for boundary + ;; condition. + ;; + ;; One mpi test fails and is skipped. + ;; i) demo_stokes-iterative_mpi: + ;; The MPI_Comm_rank() function was called before MPI_INIT was + ;; invoked + (call-with-output-file "CTestCustom.cmake" + (lambda (port) + (display (string-append + "set(CTEST_CUSTOM_TESTS_IGNORE " + "demo_bcs_serial " + "demo_bcs_mpi " + "demo_eigenvalue_serial " + "demo_eigenvalue_mpi " + "demo_navier-stokes_serial " + "demo_navier-stokes_mpi " + "demo_stokes-taylor-hood_serial " + "demo_stokes-taylor-hood_mpi " + "demo_subdomains_serial " + "demo_advection-diffusion_serial " + "demo_advection-diffusion_mpi " + "demo_auto-adaptive-navier-stokes_serial " + "demo_contact-vi-snes_serial " + "demo_contact-vi-snes_mpi " + "demo_contact-vi-tao_serial " + "demo_contact-vi-tao_mpi " + "demo_curl-curl_serial " + "demo_curl-curl_mpi " + "demo_dg-advection-diffusion_serial " + "demo_dg-advection-diffusion_mpi " + "demo_elasticity_serial " + "demo_elasticity_mpi " + "demo_elastodynamics_serial " + "demo_elastodynamics_mpi " + "demo_lift-drag_serial " + "demo_lift-drag_mpi " + "demo_mesh-quality_serial " + "demo_mesh-quality_mpi " + "demo_multimesh-stokes_serial " + ")\n") port))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "make" "unittests") + (invoke "make" "demos") + (invoke "ctest" "-R" "unittests") + (invoke "ctest" "-R" "demo" "-R" "serial") + (invoke "ctest" "-R" "demo" "-R" "mpi"))))))) (home-page "https://bitbucket.org/fenics-project/dolfin/") (synopsis "Problem solving environment for differential equations") (description @@ -708,112 +711,114 @@ (define-public fenics (name "fenics") (build-system python-build-system) (inputs - `(("pybind11" ,pybind11) - ("python-matplotlib" ,python-matplotlib) - ,@(alist-delete "python" (package-inputs fenics-dolfin)))) + (modify-inputs (package-inputs fenics-dolfin) + (delete "python") + (prepend pybind11 python-matplotlib))) (native-inputs - `(("cmake" ,cmake-minimal) - ("ply" ,python-ply) - ("pytest" ,python-pytest) - ("python-decorator" ,python-decorator) - ,@(package-native-inputs fenics-dolfin))) + (modify-inputs (package-native-inputs fenics-dolfin) + (prepend cmake-minimal python-ply python-pytest python-decorator))) (propagated-inputs - `(("dolfin" ,fenics-dolfin) - ("petsc4py" ,python-petsc4py) - ("slepc4py" ,python-slepc4py) + (list fenics-dolfin + python-petsc4py + python-slepc4py - ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time. - ("python-pkgconfig" ,python-pkgconfig))) + ;; 'dolfin/jit/jit.py' parses 'dolfin.pc' at run time. + python-pkgconfig)) (arguments - `(#: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" (assoc-ref %build-inputs "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)$"))))))))) + (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 -- 2.40.1
guix-patches <at> gnu.org
:bug#64081
; Package guix-patches
.
(Sat, 24 Jun 2023 14:25:01 GMT) Full text and rfc822 format available.Message #17 received at 64081 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludovic.courtes <at> inria.fr> To: 64081 <at> debbugs.gnu.org Cc: Yann Dupont <yann.dupont <at> univ-nantes.fr> Subject: Re: bug#64081: [PATCH 1/2] gnu: fenics: Make sure 'jit.py' can find 'dolfin.pc'. Date: Sat, 24 Jun 2023 16:24:31 +0200
Hi, Ludovic Courtès <ludo <at> gnu.org> skribis: > From: Ludovic Courtès <ludovic.courtes <at> inria.fr> > > * gnu/packages/simulation.scm (fenics)[inputs]: Move PYTHON-PKGCONFIG > to... > [propagated-inputs]: ... here. > [arguments]: Add 'set-dolfin-pc-file-name' phase. I’m pushing v2 because it fixes a real issue and doesn’t introduce any regression: https://qa.guix.gnu.org/issue/64081 However, the test suite appears to time out, at least occasionally, even on x86_64: https://bordeaux.guix.gnu.org/build/ce84f62b-efc0-4519-94b2-c1debc54b752/log The log ends like this: --8<---------------cut here---------------start------------->8--- 10/38 Test #20: demo_periodic_mpi ...................... Passed 9.24 sec Start 22: demo_poisson_mpi 11/38 Test #22: demo_poisson_mpi ....................... Passed 8.26 sec Start 24: demo_singular-poisson_mpi 12/38 Test #24: demo_singular-poisson_mpi .............. Passed 12.59 sec Start 26: demo_stokes-iterative_mpi --8<---------------cut here---------------end--------------->8--- Would be good to see if there’s a real problem hiding or if we’re dealing with a long-running test or something. This is not a regression AFAICS: --8<---------------cut here---------------start------------->8--- $ guix weather fenics-dolfin computing 1 package derivations for x86_64-linux... looking for 1 store items on https://ci.guix.gnu.org... https://ci.guix.gnu.org ⛈ 0.0% substitutes available (0 out of 1) unknown substitute sizes 0.0 MiB on disk (uncompressed) 0.196 seconds per request (0.2 seconds in total) 5.1 requests per second 0.0% (0 out of 1) of the missing items are queued 0 queued builds build rate: 12.96 builds per hour x86_64-linux: 4.93 builds per hour aarch64-linux: 2.28 builds per hour i686-linux: 4.00 builds per hour powerpc64le-linux: 1.85 builds per hour armhf-linux: 0.05 builds per hour looking for 1 store items on https://bordeaux.guix.gnu.org... https://bordeaux.guix.gnu.org ⛈ 0.0% substitutes available (0 out of 1) unknown substitute sizes 0.0 MiB on disk (uncompressed) 0.153 seconds per request (0.2 seconds in total) 6.5 requests per second (continuous integration information unavailable) $ guix describe Generation 267 Jun 19 2023 00:15:56 (current) guix bf9afed repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: bf9afedef9c55aa0092b562077d9f2c743d9a29c --8<---------------cut here---------------end--------------->8--- Thanks, Ludo’.
Ludovic Courtès <ludo <at> gnu.org>
to control <at> debbugs.gnu.org
.
(Sat, 24 Jun 2023 14:25:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 23 Jul 2023 11:24:10 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.