This commit fixes various issues. First, some of SUNDIALS's CMake
variables were renamed at some point between 5.2.0 and 5.7.0, in
particular KLU_ENABLE, which was changed to ENABLE_KLU. Since
sundials-julia is essentially SUNDIALS 5.2.0, its configure flags need
to be different from those of the sundials package. Second, commit
61bcd648ca, which updated SUNDIALS to
6.1.1, accidentally completely disabled PETSc support for
sundials-openmpi (PETSc is supported only with MPI) by removing the
relevant configure flags. Third, SUNDIALS's default index size is
64 bits, but PETSc's is 32 bits, and they need to be the same; this
issue is discussed in the next three paragraphs.
The default index size in SUNDIALS 3.1.1 (which was the sundials
package's version previous to the aforementioned commit) was also
64 bits (though it was configured through the SUNDIALS_INDEX_TYPE CMake
variable, which could take the values INT64_T or INT32_T), but
SUNDIALS's configure script didn't warn of any incompatibility with
PETSc's 32-bit indices. I don't know if this was an accidental omission
from the configure script or if SUNDIALS's index size didn't have to
correspond to PETSc's at the time.
Keeping 64-bit indices in SUNDIALS would require adding a package for
PETSc with 64-bit indices (using the --with-64-bit-indices configure
flag), possibly named petsc64-openmpi (to follow the style of the SCOTCH
packages, i.e., scotch, scotch32, etc., though there the unadorned
package name represents the 64-bit version, unlike the unadorned petsc),
which would in turn require a package for METIS with 64-bit
indices (using IDXTYPEWIDTH=64). However, SUNDIALS is an optional
dependency of deal.II, both of which have PETSc as an optional
dependency, and deal.II's index size (which defaults to 32 bits) must
match PETSc's. In other words, the current deal.II package can build
with SUNDIALS only if SUNDIALS has 32-bit indices.
Furthermore, users needing 64-bit indices in SUNDIALS probably also need
them in PETSc and other libraries. If and when 64-bit indices are deemed
necessary, we can add all the package variations at once (for SUNDIALS,
PETSc, METIS, deal.II and any others).
* gnu/packages/maths.scm (sundials)[source]: Reuse version in URL.
[native-inputs]: Capitalize and punctuate comment.
[inputs]: Remove petsc, now unnecessary gfortran, and obsolete
comment. Move TODO item to sundials-openmpi.
[arguments]<#:configure-flags>: Add -DSUNDIALS_INDEX_SIZE=32 to match
PETSc's 32-bit indices. Remove obsolete -DEXAMPLES_ENABLE_F77,
-DEXAMPLES_ENABLE_F90 and -DFCMIX_ENABLE. Mention new but currently
unusable -DBUILD_FORTRAN_MODULE_INTERFACE and
-DEXAMPLES_ENABLE_F2003. Rename KLU_ENABLE to ENABLE_KLU.
(sundials-openmpi): Use package/inherit.
[inputs]: Move openmpi and petsc-openmpi from here...
[propagated-inputs]: ...to here. Clarify comment.
[arguments]<#:configure-flags>: Add -DENABLE_PETSC and -DPETSC_DIR, the
equivalents of which were accidentally removed in commit
61bcd648ca.
<#:phases>: Replace a tab with spaces.
[synopsis]: Replace OpenMPI with MPI to conform to other package
synopses.
(sundials-julia)[inputs]: Add gfortran.
[arguments]<#:configure-flags>: Set only, and manually, -DCMAKE_C_FLAGS,
-DSUNDIALS_INDEX_SIZE, -DKLU_ENABLE, -DKLU_INCLUDE_DIR,
-DKLU_LIBRARY_DIR and -DLAPACK_ENABLE instead of inheriting from the
sundials package, because some of SUNDIALS's CMake variables have
changed name.
[synopsis]: Capitalize “LAPACK”.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Previously, in the absence of extensions of 'pipefs-service-type', we'd
get a wrong-type-arg exception while folding services:
In gnu/services/nfs.scm:
134:37 1 (_ #<<pipefs-configuration> mount-point: "/var/lib/nfs…> …)
In ice-9/boot-9.scm:
1685:16 0 (raise-exception _ #:continuable? _)
In procedure car: Wrong type argument in position 1 (expecting pair): ()
* gnu/services/nfs.scm (pipefs-service-type)[extend]: Gracefully handle
the case where VALUES is the empty list, as done in 'gss-service-type'.
This is a followup to b06ecc5751,
211fe3f66e, and
fd57ce267c.
* gnu/services/base.scm (guix-publish-shepherd-service): Change 'stop'
method to use 'make-systemd-destructor' when 'make-systemd-constructor'
is used.
* gnu/services/dict.scm (dicod-shepherd-service): Change 'stop' method
to use 'make-inetd-destructor' when 'make-inetd-constructor' is used.
* gnu/services/messaging.scm (bitlbee-shepherd-service): Likewise.
This commit fixes a failing build caused by -Werror (the configure
script no longer sets the -Werror compilation flag).
* gnu/packages/apl.scm (apl): Update to 1.8-r1550.
[arguments]: Add 'fix-configure' phase.
[license]: Prefix with 'license:'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/tls.scm (s2n):
[arguments]: Fix for openssl as replacement input for aws-lc.
[propagated-inputs]: Add aws-lc and remove openssl.
[supported-systems]: Only support x86_64-linux.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>