* [bug#74675] [PATCH 0/1] Possibly build hypre without doxygen and LaTeX doc
@ 2024-12-03 20:16 Luca Cirrottola
2024-12-03 20:20 ` [bug#74675] [PATCH 1/1] Add a hypre-sans-doc package, make hypre inherit from it, and add a variant hypre-openmpi-sans-doc Luca Cirrottola
0 siblings, 1 reply; 2+ messages in thread
From: Luca Cirrottola @ 2024-12-03 20:16 UTC (permalink / raw)
To: 74675; +Cc: Luca Cirrottola
Hello,
The hypre package builds its "doc" output by default, bringing texlive
into the dependency graph of packages using hypre, and possibly breaking
their compilation due to errors in building the hypre documentation (see
bug 74672). I would like to also have the possibility to build hypre
without doxygen and latex documentation.
This patch is an attempt to solve my problem by splitting the package
into two variants, one without documentation ("hypre-sans-doc") and one
with ("hypre"). Also, a "hypre-openmpi-sans-doc" is added besides
"hypre-openmpi".
Thus, two new packages are introduced ("hypre-sans-doc" and
"hypre-openmpi-sans-doc") without modifying the expected behaviour of
the original "hypre" and "hypre-openmpi" packages.
I would have loved to simply generate the "hypre-openmpi-sans-doc"
package by modifying the "inherit" field of "hypre-openmpi", but I have
not been able to do it with package transformation options. I would be
grateful for any suggestion to reduce code redundancy in my patch, as
well as for any better solution that could achieve the same objective
(the possibility to build hypre without doc).
Luca Cirrottola (1):
Add a hypre-sans-doc package, make hypre inherit from it, and add a
variant hypre-openmpi-sans-doc.
gnu/packages/maths.scm | 131 ++++++++++++++++++++++++++---------------
1 file changed, 85 insertions(+), 46 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* [bug#74675] [PATCH 1/1] Add a hypre-sans-doc package, make hypre inherit from it, and add a variant hypre-openmpi-sans-doc.
2024-12-03 20:16 [bug#74675] [PATCH 0/1] Possibly build hypre without doxygen and LaTeX doc Luca Cirrottola
@ 2024-12-03 20:20 ` Luca Cirrottola
0 siblings, 0 replies; 2+ messages in thread
From: Luca Cirrottola @ 2024-12-03 20:20 UTC (permalink / raw)
To: 74675; +Cc: Luca Cirrottola
---
gnu/packages/maths.scm | 131 ++++++++++++++++++++++++++---------------
1 file changed, 85 insertions(+), 46 deletions(-)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 893877a5e5..bbc307c286 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -7291,9 +7291,9 @@ (define-public xaos
(home-page "https://xaos-project.github.io/")
(license license:gpl2+)))
-(define-public hypre
+(define-public hypre-sans-doc
(package
- (name "hypre")
+ (name "hypre-sans-doc")
(version "2.20.0")
(source
(origin
@@ -7305,6 +7305,63 @@ (define-public hypre
(sha256
(base32 "14iqjwg5sv1qjn7c2cfv0xxmn9rwamjrhh9hgs8fjbywcbvrkjdi"))))
(build-system gnu-build-system)
+ (inputs
+ (list openblas))
+ (arguments
+ (list #:modules `((srfi srfi-1)
+ ,@%default-gnu-modules)
+ #:configure-flags #~'("--enable-shared"
+ "--disable-fortran"
+ "--without-MPI"
+ "--with-openmp"
+ "--with-fei"
+ "--with-lapack"
+ "--with-blas")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'chdir-src
+ (lambda _
+ (chdir "src")))
+ (replace 'configure
+ (lambda* (#:key build target configure-flags
+ #:allow-other-keys #:rest args)
+ (let* ((configure (assoc-ref %standard-phases 'configure)))
+ (apply configure
+ (append args
+ (list #:configure-flags
+ (cons (string-append "--host="
+ (or target build))
+ configure-flags)))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "LD_LIBRARY_PATH"
+ (string-append (getcwd) "/hypre/lib"))
+ (setenv "PATH"
+ (string-append "." ":" (getenv "PATH")))
+ (invoke "make" "check" "CHECKRUN=")
+ (for-each (lambda (filename)
+ (let ((size (stat:size (stat filename))))
+ (when (positive? size)
+ (error (format #f
+ "~a size ~d; error indication~%"
+ filename size)))))
+ (find-files "test" ".*\\.err$"))))))))
+ (home-page "https://computing.llnl.gov/projects\
+/hypre-scalable-linear-solvers-multigrid-methods")
+ (synopsis "Library of solvers and preconditioners for linear equations")
+ (description
+ "HYPRE is a software library of high performance preconditioners and
+solvers for the solution of large, sparse linear systems of equations. It
+features multigrid solvers for both structured and unstructured grid
+problems.")
+ (properties '((tunable? . #t)))
+ (license license:lgpl2.1)))
+
+(define-public hypre
+ (package
+ (inherit hypre-sans-doc)
+ (name "hypre")
(outputs '("out" ;5.3 MiB of headers and libraries
"doc")) ;12 MiB of documentation
(native-inputs
@@ -7352,57 +7409,18 @@ (define-public hypre
texlive-wrapfig
texlive-xcolor
texlive-xypic))))
- (inputs
- (list openblas))
(arguments
- (list #:modules `((srfi srfi-1)
- ,@%default-gnu-modules)
- #:configure-flags #~'("--enable-shared"
- "--disable-fortran"
- "--without-MPI"
- "--with-openmp"
- "--with-fei"
- "--with-lapack"
- "--with-blas")
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'configure 'chdir-src
- (lambda _
- (chdir "src")))
- (replace 'configure
- (lambda* (#:key build target configure-flags
- #:allow-other-keys #:rest args)
- (let* ((configure (assoc-ref %standard-phases 'configure)))
- (apply configure
- (append args
- (list #:configure-flags
- (cons (string-append "--host="
- (or target build))
- configure-flags)))))))
+ (substitute-keyword-arguments (package-arguments hypre-sans-doc)
+ ((#:phases phases)
+ #~(modify-phases #$phases
(add-after 'build 'build-docs
(lambda _
(invoke "make" "-C" "docs")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "LD_LIBRARY_PATH"
- (string-append (getcwd) "/hypre/lib"))
- (setenv "PATH"
- (string-append "." ":" (getenv "PATH")))
- (invoke "make" "check" "CHECKRUN=")
- (for-each (lambda (filename)
- (let ((size (stat:size (stat filename))))
- (when (positive? size)
- (error (format #f
- "~a size ~d; error indication~%"
- filename size)))))
- (find-files "test" ".*\\.err$")))))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
;; Custom install because docs/Makefile doesn't honor ${docdir}.
(let* ((doc (assoc-ref outputs "doc"))
- (docdir (string-append doc "/share/doc/hypre-"
- #$version)))
+ (docdir (string-append doc "/share/doc/hypre")))
(with-directory-excursion "docs"
(for-each (lambda (base)
(install-file (string-append base
@@ -7411,7 +7429,7 @@ (define-public hypre
"-html")
(string-append docdir
"/" base)))
- '("usr-manual" "ref-manual")))))))))
+ '("usr-manual" "ref-manual"))))))))))
(home-page "https://computing.llnl.gov/projects\
/hypre-scalable-linear-solvers-multigrid-methods")
(synopsis "Library of solvers and preconditioners for linear equations")
@@ -7444,6 +7462,27 @@ (define-public hypre-openmpi
parallel computers. It features parallel multigrid solvers for both
structured and unstructured grid problems.")))
+(define-public hypre-openmpi-sans-doc
+ (package
+ (inherit hypre-sans-doc)
+ (name "hypre-openmpi-sans-doc")
+ (inputs (modify-inputs (package-inputs hypre-sans-doc)
+ (prepend openmpi)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments hypre-sans-doc)
+ ((#:configure-flags flags)
+ #~`("--with-MPI" ,@(delete "--without-MPI" #$flags)))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'mpi-setup
+ #$%openmpi-setup)))))
+ (synopsis "Parallel solvers and preconditioners for linear equations")
+ (description
+ "HYPRE is a software library of high performance preconditioners and
+solvers for the solution of large, sparse linear systems of equations on
+parallel computers. It features parallel multigrid solvers for both
+structured and unstructured grid problems.")))
+
(define-public matio
(package
(name "matio")
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-12-03 20:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-03 20:16 [bug#74675] [PATCH 0/1] Possibly build hypre without doxygen and LaTeX doc Luca Cirrottola
2024-12-03 20:20 ` [bug#74675] [PATCH 1/1] Add a hypre-sans-doc package, make hypre inherit from it, and add a variant hypre-openmpi-sans-doc Luca Cirrottola
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).