mirror of
https://gitlab.univ-nantes.fr/glicid-public/guix-glicid.git
synced 2025-04-29 21:58:36 +02:00
1469 lines
46 KiB
Scheme
1469 lines
46 KiB
Scheme
(define-module (glicid packages glicid)
|
||
#:use-module (guix packages)
|
||
#:use-module (guix download)
|
||
#:use-module (guix git-download)
|
||
#:use-module (guix build-system gnu)
|
||
#:use-module (guix build-system cmake)
|
||
; #:use-module (guix licenses)
|
||
#:use-module (gnu packages gawk)
|
||
#:use-module (gnu packages gcc)
|
||
#:use-module (gnu packages commencement)
|
||
#:use-module (guix build-system python)
|
||
#:use-module ((guix licenses) #:prefix license:)
|
||
#:use-module ((guix utils) #:select (target-64bit?))
|
||
#:use-module (gnu packages)
|
||
#:use-module (gnu packages admin)
|
||
#:use-module (gnu packages autotools)
|
||
#:use-module (gnu packages base)
|
||
#:use-module (gnu packages freeipmi)
|
||
#:use-module (gnu packages linux)
|
||
#:use-module (gnu packages mpi)
|
||
#:use-module (gnu packages perl)
|
||
#:use-module (gnu packages pkg-config)
|
||
#:use-module (gnu packages parallel)
|
||
#:use-module (gnu packages storage)
|
||
#:use-module (gnu packages networking)
|
||
#:use-module (gnu packages gtk)
|
||
#:use-module (gnu packages python)
|
||
#:use-module (gnu packages python-science)
|
||
#:use-module (gnu packages python-web)
|
||
#:use-module (gnu packages python-xyz)
|
||
#:use-module (gnu packages readline)
|
||
#:use-module (gnu packages tcl)
|
||
#:use-module (gnu packages tls)
|
||
#:use-module (gnu packages commencement)
|
||
#:use-module (gnu packages gcc)
|
||
#:use-module (gnu packages chemistry)
|
||
#:use-module (gnu packages sphinx)
|
||
#:use-module (srfi srfi-1)
|
||
#:use-module (gnu packages mpi)
|
||
#:use-module (gnu packages sssd)
|
||
#:use-module (gnu packages fabric-management)
|
||
#:use-module (gnu packages benchmark)
|
||
#:use-module (gnu packages messaging)
|
||
#:use-module (gnu packages web)
|
||
#:use-module (gnu packages gnome)
|
||
#:use-module (gnu packages cluster)
|
||
#:use-module (gnu packages libevent)
|
||
#:use-module (gnu packages xorg)
|
||
#:use-module (gnu packages fontutils)
|
||
#:use-module (gnu packages flex)
|
||
#:use-module (gnu packages bison)
|
||
#:use-module (gnu packages pkg-config)
|
||
#:use-module (gnu packages autotools)
|
||
#:use-module (gnu packages fontutils)
|
||
#:use-module (guix build-system gnu)
|
||
#:use-module (gnu packages image)
|
||
#:use-module (gnu packages maths)
|
||
#:use-module (guix utils)
|
||
#:use-module (gnu packages cmake)
|
||
#:use-module (gnu packages pretty-print)
|
||
#:use-module (gnu packages boost)
|
||
#:use-module (gnu packages curl)
|
||
#:use-module (gnu packages cryptsetup)
|
||
#:use-module (gnu packages xml)
|
||
#:use-module (gnu packages admin)
|
||
#:use-module (gnu packages assembly)
|
||
#:use-module (gnu packages authentication)
|
||
#:use-module (gnu packages bdw-gc)
|
||
#:use-module (gnu packages boost)
|
||
#:use-module (gnu packages compression)
|
||
#:use-module (gnu packages crypto)
|
||
#:use-module (gnu packages cryptsetup)
|
||
#:use-module (gnu packages curl)
|
||
#:use-module (gnu packages databases)
|
||
#:use-module (gnu packages disk)
|
||
#:use-module (gnu packages gperf)
|
||
#:use-module (gnu packages jemalloc)
|
||
#:use-module (gnu packages linux)
|
||
#:use-module (gnu packages lua)
|
||
#:use-module (gnu packages ncurses)
|
||
#:use-module (gnu packages networking)
|
||
#:use-module (gnu packages nss)
|
||
#:use-module (gnu packages openldap)
|
||
#:use-module (gnu packages pkg-config)
|
||
#:use-module (gnu packages python)
|
||
#:use-module (gnu packages python-xyz)
|
||
#:use-module (gnu packages sphinx)
|
||
#:use-module (gnu packages tls)
|
||
#:use-module (gnu packages web)
|
||
;; #:use-module (gnu packages glicid)
|
||
#:use-module (gnu packages pretty-print)
|
||
#:use-module (gnu packages virtualization)
|
||
|
||
|
||
)
|
||
|
||
|
||
(define* (custom-gcc gcc name languages
|
||
#:optional
|
||
(search-paths (package-native-search-paths gcc))
|
||
#:key (separate-lib-output? #t))
|
||
"Return a custom version of GCC that supports LANGUAGES. Use SEARCH-PATHS as the 'native-search-paths' field."
|
||
(package (inherit gcc)
|
||
(name name)
|
||
(outputs (if separate-lib-output?
|
||
(package-outputs gcc)
|
||
(delete "lib" (package-outputs gcc))))
|
||
(native-search-paths search-paths)
|
||
(properties (alist-delete 'hidden? (package-properties gcc)))
|
||
(arguments
|
||
(substitute-keyword-arguments (package-arguments gcc)
|
||
((#:modules modules %gnu-build-system-modules)
|
||
`(,@modules
|
||
(srfi srfi-1)
|
||
(srfi srfi-26)
|
||
(ice-9 regex)))
|
||
((#:configure-flags flags)
|
||
`(cons (string-append "--enable-languages="
|
||
,(string-join languages ","))
|
||
(remove (cut string-match "--enable-languages.*" <>)
|
||
,flags)))
|
||
((#:phases phases)
|
||
`(modify-phases ,phases
|
||
(add-after 'install 'remove-broken-or-conflicting-files
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
(for-each delete-file
|
||
(find-files (string-append (assoc-ref outputs "out") "/bin")
|
||
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
|
||
#t))))))))
|
||
|
||
(define %generic-search-paths
|
||
;; This is the language-neutral search path for GCC. Entries in $CPATH are
|
||
;; not considered "system headers", which means GCC can raise warnings for
|
||
;; issues in those headers. 'CPATH' is the only one that works for
|
||
;; front-ends not in the C family.
|
||
(list (search-path-specification
|
||
(variable "CPATH")
|
||
(files '("include")))
|
||
(search-path-specification
|
||
(variable "LIBRARY_PATH")
|
||
(files '("lib" "lib64")))))
|
||
|
||
(define-public gfortran-11
|
||
(hidden-package
|
||
(custom-gcc gcc-11 "gfortran" '("fortran")
|
||
%generic-search-paths)))
|
||
|
||
|
||
(define-public gfortran-10
|
||
(hidden-package
|
||
(custom-gcc gcc-10 "gfortran" '("fortran")
|
||
%generic-search-paths)))
|
||
|
||
|
||
(define-public gfortran-toolchain-10
|
||
(package (inherit (make-gcc-toolchain gfortran-10))
|
||
(synopsis "Complete GCC tool chain for fortean lang development")
|
||
(description "This package provides a complete GCC tool chain for
|
||
fortran lang development to be installed in user profiles. This includes
|
||
fortran, as well as libc (headers and binaries, plus debugging symbols
|
||
in the @code{debug} output), and binutils.")))
|
||
|
||
(define-public gfortran-toolchain-11
|
||
(package (inherit (make-gcc-toolchain gfortran-11))
|
||
(synopsis "Complete GCC tool chain for fortean lang development")
|
||
(description "This package provides a complete GCC tool chain for
|
||
fortran lang development to be installed in user profiles. This includes
|
||
fortran, as well as libc (headers and binaries, plus debugging symbols
|
||
in the @code{debug} output), and binutils.")))
|
||
|
||
|
||
;;;;;;;;
|
||
|
||
|
||
(define-public glicid-pmix
|
||
(package
|
||
(name "glicid-pmix-3.1.5")
|
||
(version "3.1.5")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/openpmix/openpmix/releases/download/v" version "/pmix-" version ".tar.bz2"))
|
||
(sha256 (base32 "1xswdkfcrw123ghcr9gmrb852nzjbl4i6qwrid3xyma42yal34w8"))
|
||
)
|
||
)
|
||
(build-system gnu-build-system)
|
||
(arguments
|
||
`(#:configure-flags
|
||
(list
|
||
(string-append "--with-hwloc=" (assoc-ref %build-inputs "hwloc") )
|
||
)
|
||
)
|
||
)
|
||
(synopsis "MPIX lib")
|
||
(description "MPIX. More to come. FIXIT")
|
||
(home-page "https://www.gnu.org/software/hello/")
|
||
(license license:gpl3+)
|
||
(inputs `(
|
||
("libevent", libevent)
|
||
("hwloc" ,hwloc-2 "lib")
|
||
("perl", perl)
|
||
("gcc", gcc-11)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
|
||
|
||
|
||
(define-public glicid-custom-slurm-19.05
|
||
(package
|
||
(inherit slurm)
|
||
(name "glicid-custom-slurm-19.05")
|
||
(version "19.05.6")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2"))
|
||
(sha256 (base32 "1kj79r8hng5gp98ickgvj3im4gr19nzd3p3p8g6rl75axb8jin7h"))
|
||
))
|
||
(arguments
|
||
`(#:configure-flags
|
||
(list "--enable-pam" "--sysconfdir=/etc/slurm"
|
||
"--disable-static"
|
||
(string-append "--with-freeipmi=" (assoc-ref %build-inputs "freeipmi"))
|
||
(string-append "--with-hwloc=" (assoc-ref %build-inputs "hwloc"))
|
||
(string-append "--with-json=" (assoc-ref %build-inputs "json-c"))
|
||
(string-append "--with-munge=" (assoc-ref %build-inputs "munge"))
|
||
(string-append "--with-pmix=" (assoc-ref %build-inputs "glicid-pmix"))
|
||
|
||
;; 32-bit support is marked as deprecated and needs to be
|
||
;; explicitly enabled.
|
||
;;;; ,@(if (target-64bit?) '() '("--enable-deprecated"))
|
||
|
||
)
|
||
)
|
||
)
|
||
|
||
(inputs `(("gtk+-2" ,gtk+-2)
|
||
("gcc", gcc-11)
|
||
("glicid-pmix", glicid-pmix)
|
||
; ("glicid-specific-openmpi", glicid-specific-openmpi)
|
||
,@(package-inputs slurm)
|
||
|
||
|
||
))
|
||
(propagated-inputs
|
||
`(
|
||
("sssd" ,sssd)
|
||
))
|
||
|
||
))
|
||
|
||
|
||
(define-public glicid-custom-slurm-20.02
|
||
(package
|
||
(inherit glicid-custom-slurm-19.05)
|
||
(name "glicid-custom-slurm-20.02")
|
||
(version "20.02.7")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2"))
|
||
(sha256 (base32 "1khlv69q41chgkcs1i7l651hvyx8sz3j9yhjbgky3gpqrgrmz1h6"))
|
||
))
|
||
))
|
||
|
||
|
||
(define-public glicid-custom-slurm-20.11
|
||
(package
|
||
(inherit glicid-custom-slurm-20.02)
|
||
(name "glicid-custom-slurm-20.11")
|
||
(version "20.11.7")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2"))
|
||
(sha256 (base32 "1fdjihg1x7ks5l77yjv14a4mg6r0v8c3zk1dcxkhrhq3n4dc9nbs"))
|
||
))
|
||
))
|
||
|
||
(define-public glicid-specific-slurm glicid-custom-slurm-20.02)
|
||
|
||
|
||
(define-public glicid-librdkafka-09
|
||
(package
|
||
(inherit librdkafka)
|
||
(name "glicid-librdkafka-09")
|
||
(version "0.9.2")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/edenhill/librdkafka/archive/v" version ".tar.gz"))
|
||
(sha256 (base32 "0938yn1msaq8xcj5z7b3jcdy6rslh9kxmvz01r8rdcgbarlvchy2"))
|
||
))
|
||
))
|
||
|
||
|
||
|
||
(define-public glicid-x2go
|
||
(package
|
||
(name "glicid-x2go")
|
||
(version "4.1.0.3")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://code.x2go.org/releases/source/x2goserver/x2goserver-" version ".tar.gz"))
|
||
(sha256 (base32 "1l6wd708kbipib4ldprfiihqmj4895nifg0bkws4x97majislxk7"))
|
||
))
|
||
|
||
(native-inputs
|
||
`(("autoconf" ,autoconf)
|
||
("automake" ,automake)
|
||
("libtool" ,libtool)))
|
||
|
||
(inputs
|
||
`(("perl" , perl)))
|
||
|
||
(build-system gnu-build-system)
|
||
(synopsis "X2go")
|
||
(description "X2go")
|
||
(license "not checked")
|
||
(home-page "https://wiki.x2go.org")
|
||
)
|
||
)
|
||
|
||
;(define-public glicid-gromacs-openmpi
|
||
; (package
|
||
; (inherit gromacs)
|
||
; (name "glicid-gromacs-openmpi")
|
||
; (inputs `(("openmpi", openmpi)
|
||
; ,@(package-inputs gromacs)))
|
||
; (build-system cmake-build-system)
|
||
; (arguments
|
||
; `(#:configure-flags configure-flags)
|
||
; (append configure-flags (list "-DGMX_MPI=on"
|
||
; "-DCMAKE_C_COMPILER=mpicc"
|
||
; "-DCMAKE_CXX_COMPILER=mpiicxx"
|
||
; ))
|
||
; )
|
||
; )
|
||
;)
|
||
|
||
|
||
(define-public glicid-gromacs-openmpi
|
||
(package
|
||
(inherit gromacs)
|
||
(name "glicid-gromacs-openmpi")
|
||
(inputs `(("openmpi", openmpi)
|
||
;; ("openssh", openssh) ;; only for tests... disabled now
|
||
,@(package-inputs gromacs)))
|
||
(build-system cmake-build-system)
|
||
|
||
(arguments
|
||
`(#:configure-flags
|
||
(list "-DGMX_DEVELOPER_BUILD=on" ; Needed to run tests
|
||
;; Unbundling
|
||
"-DGMX_USE_LMFIT=EXTERNAL"
|
||
"-DGMX_BUILD_OWN_FFTW=off"
|
||
"-DGMX_EXTERNAL_BLAS=on"
|
||
"-DGMX_EXTERNAL_LAPACK=on"
|
||
"-DGMX_EXTERNAL_TNG=on"
|
||
"-DGMX_EXTERNAL_ZLIB=on"
|
||
"-DGMX_EXTERNAL_TINYXML2=on"
|
||
;; special glicid
|
||
"-DGMX_MPI=on"
|
||
"-DCMAKE_C_COMPILER=mpicc"
|
||
"-DCMAKE_CXX_COMPILER=mpicxx"
|
||
"-DGMX_DOUBLE=off"
|
||
"-DGMX_OPENMP=on"
|
||
"-DGMX_SIMD=AVX2_256"
|
||
(string-append "-DTinyXML2_DIR="
|
||
(assoc-ref %build-inputs "tinyxml2"))
|
||
;; Workaround for cmake/FindSphinx.cmake version parsing that does
|
||
;; not understand the guix-wrapped `sphinx-build --version' answer
|
||
(string-append "-DSPHINX_EXECUTABLE_VERSION="
|
||
,(package-version python-sphinx)))
|
||
#:tests? #f
|
||
#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'unpack 'fixes
|
||
(lambda* (#:key inputs #:allow-other-keys)
|
||
;; Still bundled: part of gromacs, source behind registration
|
||
;; but free software anyways
|
||
;;(delete-file-recursively "src/external/vmd_molfile")
|
||
;; Still bundled: threads-based OpenMPI-compatible fallback
|
||
;; designed to be bundled like that
|
||
;;(delete-file-recursively "src/external/thread_mpi")
|
||
;; Unbundling
|
||
(delete-file-recursively "src/external/lmfit")
|
||
(delete-file-recursively "src/external/clFFT")
|
||
(delete-file-recursively "src/external/fftpack")
|
||
(delete-file-recursively "src/external/build-fftw")
|
||
(delete-file-recursively "src/external/tng_io")
|
||
(delete-file-recursively "src/external/tinyxml2")
|
||
(delete-file-recursively "src/external/googletest")
|
||
(copy-recursively (assoc-ref inputs "googletest-source")
|
||
"src/external/googletest")
|
||
;; This test warns about the build host hardware, disable
|
||
(substitute* "src/gromacs/hardware/tests/hardwaretopology.cpp"
|
||
(("TEST\\(HardwareTopologyTest, HwlocExecute\\)")
|
||
"void __guix_disabled()"))
|
||
#t)))))
|
||
|
||
|
||
|
||
)
|
||
|
||
)
|
||
|
||
|
||
|
||
;; pour futures customisations.
|
||
|
||
;(define-public glicid-openmpi-gcc-10
|
||
; (package
|
||
; (inherit openmpi)
|
||
; (name "glicid-openpmi-gcc-10")
|
||
; (inputs `(("gcc-10", gcc-10)
|
||
; ("gfortran-11", gfortran-11)
|
||
; ,@(package-inputs openmpi)))
|
||
; )
|
||
;)
|
||
|
||
(define-public glicid-rdma-core
|
||
(package
|
||
(inherit rdma-core)
|
||
(name "glicid-rdma-core")
|
||
(version "31.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/linux-rdma/rdma-core"
|
||
"/releases/download/v" version "/rdma-core-"
|
||
version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"02ym93k6khfmzm9rml79x9zh1dy8231sygw16r287mhwp0x9mbji"))))
|
||
)
|
||
)
|
||
|
||
|
||
(define-public glicid-rdma-core-gcc-11
|
||
(package
|
||
(inherit rdma-core)
|
||
(name "glicid-rdma-core-gcc-11")
|
||
(version "32.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/linux-rdma/rdma-core"
|
||
"/releases/download/v" version "/rdma-core-"
|
||
version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"1z1i741bcn9vchmkjs8nxj0c0bw0jr53zj74l839n2wrb45f55w1"))))
|
||
(inputs `(("gcc-11", gcc-11)
|
||
,@(package-inputs rdma-core)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-libfabric-gcc-11
|
||
(package
|
||
(inherit libfabric)
|
||
(name "glicid-libfabric-gcc-11")
|
||
(version "1.11.2")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri
|
||
(string-append "https://github.com/ofiwg/libfabric/releases/download/v"
|
||
version "/libfabric-" version ".tar.bz2"))
|
||
(sha256
|
||
(base32 "1nnpfkwxhim2nqjkb1vwrb4wj4j3l6w6yvvy69fqam2snlhshazz"))))
|
||
|
||
(inputs `(("gcc-11", gcc-11)
|
||
,@(package-inputs libfabric)))
|
||
)
|
||
)
|
||
|
||
|
||
(define-public glicid-ucx-gcc-11
|
||
(package
|
||
(inherit ucx)
|
||
(name "glicid-ucx-gcc-11")
|
||
(version "1.10.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/openucx/ucx/releases/download/v" version "/ucx-" version ".tar.gz" ))
|
||
(sha256 (base32 "0bdrbp86snq5z0y66zzxs7ig33g9h59kag11rc1lqwll3d5y51dq"))
|
||
))
|
||
|
||
(inputs `(("gcc-11", gcc-11)
|
||
("gfortran-11", gfortran-11)
|
||
,@(package-inputs ucx)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-ucx-gcc-10
|
||
(package
|
||
(inherit ucx)
|
||
(name "glicid-ucx-gcc-10")
|
||
(version "1.9.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/openucx/ucx/releases/download/v" version "/ucx-" version ".tar.gz" ))
|
||
(sha256 (base32 "1yrmwvjxi3najax1wz4irpzxns6cp74ksdx4i1049mf03n2ci8m7"))
|
||
))
|
||
|
||
(inputs `(("gcc-10", gcc-10)
|
||
("gfortran-10", gfortran-10)
|
||
,@(package-inputs ucx)))
|
||
)
|
||
)
|
||
|
||
|
||
|
||
(define-public glicid-openmpi-gcc-11
|
||
(package
|
||
(inherit openmpi)
|
||
(name "glicid-openpmi-gcc-11")
|
||
(version "4.1.1")
|
||
; (source
|
||
; (origin
|
||
; (method url-fetch)
|
||
; (uri (string-append "https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-" version ".tar.gz"))
|
||
; (sha256 (base32 "02hlg2pgk1np78dqlplwd5qcgrrymy8s49ng4sdrscqmvp1ng112"))
|
||
; ))
|
||
|
||
(inputs `(("gcc-11", gcc-11)
|
||
("gfortran-11", gfortran-11)
|
||
("glicid-ucx-gcc-11",glicid-ucx-gcc-11)
|
||
;; ("glicid-rdma-core",glicid-rdma-core) ;;; segfault !!!
|
||
,@(package-inputs openmpi)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-intel-mpi-benchmarks
|
||
(package
|
||
(inherit intel-mpi-benchmarks/openmpi)
|
||
(name "glicid-intel-mpi-benchmarks")
|
||
(inputs `(("glicid-openmpi-gcc-11", glicid-openmpi-gcc-11)
|
||
("gcc",gcc-11)
|
||
,@(package-inputs intel-mpi-benchmarks/openmpi)))
|
||
)
|
||
)
|
||
|
||
|
||
|
||
|
||
(define-public glicid-gromacs-gcc-11
|
||
(package
|
||
(inherit gromacs)
|
||
(name "glicid-gromacs-gcc-11")
|
||
(version "2020.3")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "http://ftp.gromacs.org/pub/gromacs/gromacs-" version ".tar.gz"))
|
||
(sha256 (base32 "1acjrhcfzpqy2dncblhj97602jbg9gdha4q1bgji9nrj25lq6cch"))
|
||
))
|
||
|
||
(inputs `(("gcc-11", gcc-11)
|
||
("gfortran-11", gfortran-11)
|
||
("glicid-openmpi-gcc-11", glicid-openmpi-gcc-11)
|
||
,@(package-inputs gromacs)))
|
||
))
|
||
|
||
|
||
(define-public glicid-python-nbxmpp
|
||
(package
|
||
(inherit python-nbxmpp)
|
||
(name "glicid-python-nbxmpp")
|
||
(version "1.0.2")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (pypi-uri "nbxmpp" version))
|
||
(sha256
|
||
(base32
|
||
"0vw5drr077w9ks4crnw6pwa4735ycyjdcm54knc3w4in4x5027wr"))))
|
||
|
||
))
|
||
|
||
|
||
(define-public glicid-gajim
|
||
(package
|
||
(inherit gajim)
|
||
(name "glicid-gajim")
|
||
(version "1.2.2")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://gajim.org/downloads/1.2/gajim-" version ".tar.gz"))
|
||
(sha256 (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx"))
|
||
))
|
||
|
||
(inputs `(("python-packaging", python-packaging)
|
||
("glicid-python-nbxmpp", glicid-python-nbxmpp)
|
||
("python-css-parser", python-css-parser)
|
||
,@(package-inputs gajim)))
|
||
|
||
(propagated-inputs
|
||
`(
|
||
("glib-networking" ,glib-networking)
|
||
("libsoup" ,libsoup)
|
||
("gnutls" , gnutls)
|
||
))
|
||
))
|
||
|
||
|
||
;;26.2 is ok : "1ilns8spik1xz2n668pf0awp4n7b3q7n886ml0q3bslb8fmqfl0i"
|
||
;;27.1 is ok : "1mqaxzsbhm7kh20dwdrapvx4x86wkbk1wgb2yyjz73l6bymv7vir"
|
||
;;28.1 is ok : "04y7wm2an842hf6idlbjvmiqnlh05xb2i9rhdb5ifzw6n3ciz5nr"
|
||
;; 30.0 crash : "1ycvd8sp3giwjbp0x3nvb8q2wrdc50s7lmzf44b9l51qgcnvvq93"
|
||
;; 31.0 crash :
|
||
;; 32.0 crash : "1z1i741bcn9vchmkjs8nxj0c0bw0jr53zj74l839n2wrb45f55w1"
|
||
;; 33.0 crash : "0cnmw04z68x042nkqxg57wijzkf9ysmvr8xxidxhxz0mxwx9impg"
|
||
|
||
(define-public glicid-specific-rdma-core-gcc-11
|
||
(package
|
||
(inherit rdma-core)
|
||
(name "glicid-specific-rdma-core-gcc-11")
|
||
(version "36.0")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/linux-rdma/rdma-core"
|
||
"/releases/download/v" version "/rdma-core-"
|
||
version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
;; "1s4b80jzdi2m6j5aix3mxl6iafgbqp88pfxy7568zxwc8rkcz71x"
|
||
"13ccvy3qv5b87g3b5q86gjv4wkgv86dlm9xbmii5aiy3i10ym48l"
|
||
))))
|
||
(inputs `(("gcc", gcc-11)
|
||
,@(package-inputs rdma-core)))
|
||
|
||
)
|
||
)
|
||
|
||
(define-public glicid-specific-libfabric-gcc-11
|
||
(package
|
||
(inherit libfabric)
|
||
(name "glicid-specific-libfabric-gcc-11")
|
||
(version "1.12.1")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri
|
||
(string-append "https://github.com/ofiwg/libfabric/releases/download/v"
|
||
version "/libfabric-" version ".tar.bz2"))
|
||
(sha256
|
||
(base32 "0b34p88w399jabdf77jpskxyv2j60nwxlsj3lyk9svjy9458wg6v"))))
|
||
|
||
(inputs `(("gcc", gcc-11)
|
||
("rdma-core", glicid-specific-rdma-core-gcc-11)
|
||
,@(package-inputs libfabric)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-specific-ucx-gcc-11
|
||
(package
|
||
(inherit ucx)
|
||
(name "glicid-specific-ucx-gcc-11")
|
||
(version "1.10.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/openucx/ucx/releases/download/v" version "/ucx-" version ".tar.gz" ))
|
||
(sha256 (base32 "0bdrbp86snq5z0y66zzxs7ig33g9h59kag11rc1lqwll3d5y51dq"))
|
||
))
|
||
|
||
(inputs `(("gcc", gcc-11)
|
||
("gfortran", gfortran-11)
|
||
("libfabric", glicid-specific-libfabric-gcc-11)
|
||
("rdma-core",glicid-specific-rdma-core-gcc-11)
|
||
|
||
,@(package-inputs ucx)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-specific-ucx-gcc-10
|
||
(package
|
||
(inherit ucx)
|
||
(name "glicid-specific-ucx-gcc-10")
|
||
(version "1.9.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/openucx/ucx/releases/download/v" version "/ucx-" version ".tar.gz" ))
|
||
(sha256 (base32 "1yrmwvjxi3najax1wz4irpzxns6cp74ksdx4i1049mf03n2ci8m7"))
|
||
))
|
||
|
||
(inputs `(("gcc", gcc-10)
|
||
("gfortran", gfortran-10)
|
||
("libfabric", glicid-specific-libfabric-gcc-11)
|
||
("rdma-core",glicid-specific-rdma-core-gcc-11)
|
||
|
||
,@(package-inputs ucx)))
|
||
)
|
||
)
|
||
|
||
|
||
(define-public glicid-specific-openmpi
|
||
(package
|
||
(inherit glicid-openmpi-gcc-11)
|
||
(name "glicid-specific-openmpi")
|
||
(inputs `(
|
||
("gcc",gcc-11)
|
||
("rdma-core",glicid-specific-rdma-core-gcc-11)
|
||
("ucx",glicid-specific-ucx-gcc-10)
|
||
("libfabric",glicid-specific-libfabric-gcc-11)
|
||
; ("slurm", glicid-specific-slurm)
|
||
,@(package-inputs glicid-openmpi-gcc-11)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-specific-intel-mpi-benchmarks
|
||
(package
|
||
(inherit glicid-intel-mpi-benchmarks)
|
||
(name "glicid-specific-intel-mpi-benchmarks")
|
||
(inputs `(("openmpi", glicid-specific-openmpi)
|
||
("gcc",gcc-11)
|
||
,@(package-inputs glicid-intel-mpi-benchmarks)))
|
||
)
|
||
)
|
||
|
||
|
||
(define-public glicid-specific-hdf5
|
||
(package
|
||
(inherit hdf5-1.12)
|
||
(name "glicid-specific-hdf5")
|
||
; (arguments
|
||
; `(#:tests? #f)
|
||
; )
|
||
(native-inputs `(
|
||
("gcc",gcc-11)
|
||
("gfortran",gfortran-11)
|
||
,@(package-native-inputs hdf5-1.12)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-specific-hdf5-parallel-openmpi
|
||
(package/inherit glicid-specific-hdf5 ;use the latest
|
||
(name "glicid-specific-hdf5-parallel-openmpi")
|
||
(inputs
|
||
`(("mpi" ,glicid-specific-openmpi)
|
||
,@(package-inputs glicid-specific-hdf5)))
|
||
(arguments
|
||
|
||
; `(
|
||
; #:tests? #f
|
||
|
||
(
|
||
substitute-keyword-arguments (package-arguments glicid-specific-hdf5)
|
||
((#:configure-flags flags)
|
||
``("--enable-parallel" "--disable-tests"
|
||
,@(delete "--enable-cxx"
|
||
(delete "--enable-threadsafe" ,flags))))
|
||
((#:phases phases)
|
||
`(modify-phases ,phases
|
||
(add-after 'build 'mpi-setup
|
||
,%openmpi-setup)
|
||
(add-before 'check 'patch-tests
|
||
(lambda _
|
||
;; OpenMPI's mpirun will exit with non-zero status if it
|
||
;; detects an "abnormal termination", i.e. any process not
|
||
;; calling MPI_Finalize(). Since the test is explicitly
|
||
;; avoiding MPI_Finalize so as not to have at_exit and thus
|
||
;; H5C_flush_cache from being called, mpirun will always
|
||
;; complain, so turn this test off.
|
||
(substitute* "testpar/Makefile"
|
||
(("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back)
|
||
(string-append front back "\n")))
|
||
(substitute* "tools/test/h5diff/testph5diff.sh"
|
||
(("/bin/sh") (which "sh")))
|
||
#t))))
|
||
|
||
))
|
||
|
||
|
||
|
||
(synopsis "Management suite for data with parallel IO support")))
|
||
|
||
|
||
|
||
(define-public glicid-specific-openblas
|
||
(package
|
||
(inherit openblas)
|
||
(name "glicid-specific-openblas")
|
||
(inputs `(
|
||
("fortran-lib",gfortran-11 "lib")
|
||
,@(package-inputs openblas)))
|
||
(native-inputs `(
|
||
("gcc", gcc-11)
|
||
("fortran" ,gfortran-11)
|
||
,@(package-native-inputs openblas)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-vspecific-openblas
|
||
(package
|
||
(inherit openblas)
|
||
(name "glicid-vspecific-openblas")
|
||
(version "0.3.15")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://github.com/xianyi/OpenBLAS/releases/download/v" version "/OpenBLAS-" version ".tar.gz" ))
|
||
; (file-name (string-append name "-" version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"1gjbkrsh6n28hdp2ciyjigc8vg764d2r0jbzl63v753mjzn9va9h"))))
|
||
|
||
(name "glicid-specific-openblas")
|
||
(inputs `(
|
||
("fortran-lib",gfortran-11 "lib")
|
||
,@(package-inputs openblas)))
|
||
(native-inputs `(
|
||
("gcc", gcc-11)
|
||
("fortran" ,gfortran-11)
|
||
,@(package-native-inputs openblas)))
|
||
)
|
||
)
|
||
|
||
(define-public glicid-specific-cmake
|
||
(package
|
||
(inherit cmake)
|
||
(name "glicid-specific-cmake")
|
||
(version "3.20.2")
|
||
;; TODO: Move the following source field to the cmake-bootstrap package in
|
||
;; the next rebuild cycle.
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://cmake.org/files/v"
|
||
(version-major+minor version)
|
||
"/cmake-" version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"0kjlb7sxbwg8z4027c3jjcmyjh9d36p0r9d4nqxynyaijz5nxkxf"))))
|
||
)
|
||
)
|
||
|
||
|
||
(define-public glicid-keepalived
|
||
(package
|
||
(inherit keepalived)
|
||
(name "glicid-keepalived")
|
||
(version "2.1.5")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append
|
||
"http://www.keepalived.org/software/keepalived-"
|
||
version ".tar.gz"))
|
||
|
||
(sha256
|
||
(base32
|
||
"0n92fdlmm251scq2j7w1nqwly8jsla4sxrd0jnfb6nn9qp5pqkfr"))))
|
||
|
||
(arguments
|
||
`(#:configure-flags
|
||
(list (string-append "--enable-snmp")
|
||
(string-append "--enable-snmp-checker")
|
||
(string-append "--enable-snmp-rfc")
|
||
)
|
||
)
|
||
|
||
)
|
||
|
||
|
||
(inputs `(("net-snmp", net-snmp)
|
||
,@(package-inputs keepalived)))
|
||
|
||
|
||
|
||
)
|
||
)
|
||
|
||
(define-public glicid-motif
|
||
(package
|
||
(name "glicid-motif")
|
||
(version "2.3.8")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://sourceforge.net/projects/motif/files/Motif%202.3.8%20Source%20Code/motif-2.3.8.tar.gz/download"))
|
||
|
||
(sha256 (base32 "1rxwkrhmj8sfg7dwmkhq885valwqbh26d79033q7vb7fcqv756w5"))
|
||
)
|
||
)
|
||
(build-system gnu-build-system)
|
||
|
||
(arguments
|
||
`(#:make-flags
|
||
;; #:make-flags
|
||
(list (string-append "PREFIX=" %output)
|
||
; (string-append "CC=" ,(cc-for-target))
|
||
;; Xft.h #includes <ft2build.h> without ‘freetype2/’. The Makefile
|
||
;; works around this by hard-coding /usr/include & $PREFIX.
|
||
(string-append "CPPFLAGS=-I"
|
||
(assoc-ref %build-inputs "freetype")
|
||
"/include/freetype2")
|
||
"V=1")
|
||
)
|
||
)
|
||
|
||
(inputs
|
||
`(("libxext" ,libxext)
|
||
("libx11", libx11)
|
||
("freetype",freetype)
|
||
("libxft",libxft)
|
||
("xbitmaps",xbitmaps)
|
||
("pkg-config" ,pkg-config)
|
||
("flex" ,flex)
|
||
("bison" ,bison)
|
||
("libxt" ,libxt)))
|
||
|
||
(synopsis "Motif")
|
||
(description "Motif ")
|
||
(home-page "https://sourceforge.net/untested")
|
||
(license " ")
|
||
|
||
)
|
||
)
|
||
|
||
(define-public glicid-xmgrace
|
||
(package
|
||
(name "glicid-xmgrace")
|
||
(version "5.1.25")
|
||
(source (origin
|
||
(method git-fetch)
|
||
(uri (git-reference
|
||
(url "https://oauth2:9i-PgbC2w_JEx6DUUqzf@gitlab.univ-nantes.fr/CCIPL/legacy_code_mirror/grace.git")
|
||
(commit (string-append "v" version))))
|
||
(sha256 (base32 "1wb8v0q8xa2akas0swpgdgw1s66i50k7kh1g2f894hnk91fzx56z"))
|
||
)
|
||
)
|
||
(build-system gnu-build-system)
|
||
|
||
(arguments
|
||
`(
|
||
#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'configure 'patch-/bin/sh
|
||
(lambda _
|
||
(substitute* '("Make.conf")
|
||
(("/bin/sh") (which "bash"))
|
||
)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
)
|
||
|
||
(inputs
|
||
`(
|
||
("libx11", libx11)
|
||
("libxft",libxft)
|
||
("libxt",libxt)
|
||
("libxpm",libxpm)
|
||
("libxext" ,libxext)
|
||
("autoconf", autoconf)
|
||
("glicid-motif" ,glicid-motif)
|
||
("fontconfig", fontconfig)
|
||
("gfortran", gfortran)
|
||
("libjpeg-turbo", libjpeg-turbo)
|
||
;; ("libxmhtml", libxmhtml)
|
||
)
|
||
)
|
||
|
||
|
||
(synopsis "Xmgrace")
|
||
(description "xmgrace")
|
||
(home-page "https://sourceforge.net/untested")
|
||
(license " ")
|
||
|
||
)
|
||
)
|
||
|
||
(use-modules (guix packages))
|
||
(use-modules (guix download))
|
||
(use-modules (gnu packages ruby))
|
||
(use-modules (guix build-system ruby))
|
||
;(use-modules (guix licenses))
|
||
|
||
|
||
|
||
(define-public ruby-asciidoctor-revealjs
|
||
(package
|
||
(name "ruby-asciidoctor-revealjs")
|
||
(version "4.1.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (rubygems-uri "asciidoctor-revealjs" version))
|
||
(sha256
|
||
(base32
|
||
"03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq"))))
|
||
(build-system ruby-build-system)
|
||
(arguments
|
||
'(#:tests? #f))
|
||
(propagated-inputs
|
||
`(("ruby-asciidoctor" ,ruby-asciidoctor)
|
||
; ("ruby-concurrent-ruby" ,ruby-concurrent-ruby)
|
||
("ruby-concurrent" ,ruby-concurrent)
|
||
("ruby-asciidoctor-kroki", ruby-asciidoctor-kroki)
|
||
("ruby-thread-safe" ,ruby-thread-safe)))
|
||
(synopsis
|
||
"Converts AsciiDoc documents into HTML5 presentations designed to be executed by the reveal.js presentation framework.")
|
||
(description
|
||
"Converts AsciiDoc documents into HTML5 presentations designed to be executed by the reveal.js presentation framework.")
|
||
(home-page
|
||
"https://github.com/asciidoctor/asciidoctor-reveal.js")
|
||
(license license:expat))
|
||
)
|
||
|
||
(define-public ruby-asciidoctor-kroki
|
||
(package
|
||
(name "ruby-asciidoctor-kroki")
|
||
(version "0.4.0")
|
||
(source
|
||
(origin
|
||
(method url-fetch)
|
||
(uri (rubygems-uri "asciidoctor-kroki" version))
|
||
(sha256
|
||
(base32
|
||
"13gx22xld4rbxxirnsxyrsajy9v666r8a4ngms71611af5afgk6w"))))
|
||
(build-system ruby-build-system)
|
||
(arguments
|
||
'(#:tests? #f))
|
||
(propagated-inputs
|
||
`(("ruby-asciidoctor" ,ruby-asciidoctor)))
|
||
(synopsis
|
||
"An extension for Asciidoctor to convert diagrams to images using https://kroki.io")
|
||
(description
|
||
"An extension for Asciidoctor to convert diagrams to images using https://kroki.io")
|
||
(home-page
|
||
"https://github.com/Mogztter/asciidoctor-kroki")
|
||
(license license:expat)
|
||
)
|
||
)
|
||
|
||
|
||
(use-modules (guix packages))
|
||
(use-modules (guix download))
|
||
(use-modules (gnu packages linux))
|
||
(use-modules (gnu packages gcc))
|
||
;;(use-modules (gnu packages glicid))
|
||
(use-modules (gnu packages ssh))
|
||
(use-modules (gnu packages hurd))
|
||
(use-modules (guix build-system gnu))
|
||
(use-modules (guix build-system cmake))
|
||
(use-modules (gnu packages compression))
|
||
(use-modules (gnu packages crypto))
|
||
(use-modules (gnu packages tls))
|
||
;;(use-modules (gnu packages glicid))
|
||
(use-modules (gnu packages pkg-config))
|
||
|
||
|
||
(use-modules ((guix licenses) #:prefix license:))
|
||
|
||
|
||
(define-public glicid-libcbor
|
||
(package
|
||
(name "glicid-libcbor")
|
||
(version "0.8.0")
|
||
(source
|
||
(origin
|
||
|
||
(method url-fetch)
|
||
(uri (string-append
|
||
"http://github.com/PJK/libcbor/archive/refs/tags/v" version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"12vw46ahhsc3ydnivkv5lvk1cn4sjjmcr639cjcl99d4dqb9g031"))
|
||
|
||
))
|
||
(build-system cmake-build-system)
|
||
|
||
(arguments
|
||
`(#:configure-flags (list "-DCMAKE_CXX_FLAGS=-fPIE"
|
||
"-DCMAKE_C_FLAGS=-fPIE")))
|
||
|
||
|
||
(synopsis "libfido2")
|
||
(description "Todo")
|
||
(home-page "toto")
|
||
(license license:gpl2+)
|
||
|
||
|
||
))
|
||
|
||
|
||
(define-public glicid-libfido2
|
||
(package
|
||
|
||
(name "glicid-libfido2")
|
||
(version "1.8.0")
|
||
(source
|
||
(origin
|
||
|
||
(method url-fetch)
|
||
(uri (string-append "https://developers.yubico.com/libfido2/Releases/libfido2-"
|
||
version ".tar.gz"))
|
||
; (file-name (string-append name "-" version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"07gxyy5yzgfh5hg7q9fr77z5mkj0xjvd5ya7p5f5kar4iwc92hjm"))
|
||
|
||
|
||
))
|
||
|
||
(build-system cmake-build-system)
|
||
(arguments '(#:tests? #f))
|
||
|
||
|
||
(inputs `(
|
||
("glicid-libcbor",glicid-libcbor)
|
||
("openssl",openssl)
|
||
("zlib", zlib)
|
||
("pkg-config", pkg-config) ; or cmake won't find zlib !
|
||
("eudev", eudev)
|
||
|
||
))
|
||
|
||
(synopsis "libfido2")
|
||
(description "Todo")
|
||
(home-page "toto")
|
||
(license license:gpl2+)
|
||
)
|
||
|
||
)
|
||
|
||
|
||
(define-public glicid-specific-openssh
|
||
(package
|
||
(inherit openssh)
|
||
(name "glicid-specific-openssh")
|
||
(arguments
|
||
|
||
`(#:test-target "tests"
|
||
;; Otherwise, the test scripts try to use a nonexistent directory and
|
||
;; fail.
|
||
#:make-flags '("REGRESSTMP=\"$${BUILDDIR}/regress\"")
|
||
|
||
#:configure-flags `("--sysconfdir=/etc/ssh"
|
||
|
||
;; Default value of 'PATH' used by sshd.
|
||
"--with-default-path=/run/current-system/profile/bin"
|
||
|
||
;; configure needs to find krb5-config.
|
||
,(string-append "--with-kerberos5="
|
||
(assoc-ref %build-inputs "mit-krb5")
|
||
"/bin")
|
||
|
||
;; libedit is needed for sftp completion.
|
||
"--with-libedit"
|
||
;; for u2f
|
||
"--with-security-key-builtin"
|
||
; ,(string-append "--with-fido2=" (assoc-ref %build-inputs "libfido2"))
|
||
|
||
;; Enable PAM support in sshd.
|
||
,,@(if (hurd-target?)
|
||
'()
|
||
'("--with-pam"))
|
||
|
||
;; "make install" runs "install -s" by default,
|
||
;; which doesn't work for cross-compiled binaries
|
||
;; because it invokes 'strip' instead of
|
||
;; 'TRIPLET-strip'. Work around this.
|
||
,,@(if (%current-target-system)
|
||
'("--disable-strip")
|
||
'()
|
||
))
|
||
|
||
|
||
#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'configure 'reset-/var/empty
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
(let ((out (assoc-ref outputs "out")))
|
||
(substitute* "Makefile"
|
||
(("PRIVSEP_PATH=/var/empty")
|
||
(string-append "PRIVSEP_PATH=" out "/var/empty")))
|
||
#t)))
|
||
(add-before 'check 'patch-tests
|
||
(lambda _
|
||
(substitute* "regress/test-exec.sh"
|
||
(("/bin/sh") (which "sh")))
|
||
|
||
;; Remove 't-exec' regress target which requires user 'sshd'.
|
||
(substitute* (list "Makefile"
|
||
"regress/Makefile")
|
||
(("^(tests:.*) t-exec(.*)" all pre post)
|
||
(string-append pre post)))
|
||
#t))
|
||
(replace 'install
|
||
(lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
|
||
;; Install without host keys and system configuration files.
|
||
(apply invoke "make" "install-nosysconf" make-flags)
|
||
(install-file "contrib/ssh-copy-id"
|
||
(string-append (assoc-ref outputs "out")
|
||
"/bin/"))
|
||
(chmod (string-append (assoc-ref outputs "out")
|
||
"/bin/ssh-copy-id") #o555)
|
||
(install-file "contrib/ssh-copy-id.1"
|
||
(string-append (assoc-ref outputs "out")
|
||
"/share/man/man1/"))
|
||
#t))) ; ))
|
||
|
||
|
||
)
|
||
)
|
||
|
||
(inputs `(("glicid-libfido2", glicid-libfido2)
|
||
("glicid-libcbor", glicid-libcbor)
|
||
,@(package-inputs openssh)))
|
||
|
||
|
||
|
||
)
|
||
|
||
|
||
)
|
||
|
||
|
||
(define-public ceph-15
|
||
(package
|
||
(name "ceph-15")
|
||
(version "15.2.14")
|
||
(source (origin
|
||
(method url-fetch)
|
||
(uri (string-append "https://download.ceph.com/tarballs/ceph-"
|
||
version ".tar.gz"))
|
||
(sha256
|
||
(base32
|
||
"12cz10aascr2h7xbxp9ba5207pn9qv6m50xp5f8ns80vj6lzi6d3"))
|
||
; (patches
|
||
; (search-patches "ceph-disable-cpu-optimizations.patch"))
|
||
(modules '((guix build utils)))
|
||
(snippet
|
||
'(begin
|
||
(for-each delete-file-recursively
|
||
'(;; TODO: Unbundle these:
|
||
;"src/isa-l"
|
||
;"src/lua"
|
||
;"src/xxHash"
|
||
;"src/zstd"
|
||
;"src/civetweb"
|
||
;"src/seastar/fmt"
|
||
; "src/test/downloads"
|
||
"src/c-ares"
|
||
"src/fmt" ;; YD
|
||
"src/googletest"
|
||
"src/rapidjson"
|
||
"src/spdk"
|
||
"src/rocksdb"
|
||
"src/boost"))
|
||
#t))))
|
||
(build-system cmake-build-system)
|
||
(arguments
|
||
`(#:configure-flags
|
||
(let* ((out (assoc-ref %outputs "out"))
|
||
(lib (assoc-ref %outputs "lib"))
|
||
(libdir (string-append lib "/lib")))
|
||
(list (string-append "-DCMAKE_INSTALL_PREFIX=" out)
|
||
(string-append "-DCMAKE_INSTALL_LIBDIR=" libdir)
|
||
(string-append "-DCMAKE_INSTALL_INCLUDEDIR="
|
||
lib "/include")
|
||
;; We need both libdir and libdir/ceph in RUNPATH.
|
||
(string-append "-DCMAKE_INSTALL_RPATH="
|
||
libdir ";" libdir "/ceph")
|
||
(string-append "-DCMAKE_INSTALL_SYSCONFDIR=" out "/etc")
|
||
(string-append "-DCMAKE_INSTALL_DATADIR=" lib "/share")
|
||
(string-append "-DCMAKE_INSTALL_MANDIR=" out "/share/man")
|
||
(string-append "-DCMAKE_INSTALL_DOCDIR=" out "/share/ceph/doc")
|
||
(string-append "-DCMAKE_INSTALL_LIBEXECDIR=" out "/libexec")
|
||
(string-append "-DKEYUTILS_INCLUDE_DIR="
|
||
(assoc-ref %build-inputs "keyutils") "/include")
|
||
(string-append "-DXFS_INCLUDE_DIR="
|
||
(assoc-ref %build-inputs "xfsprogs") "/include")
|
||
"-DCMAKE_INSTALL_LOCALSTATEDIR=/var"
|
||
"-DBUILD_SHARED_LIBS=ON"
|
||
"-DWITH_SYSTEM_ROCKSDB=ON"
|
||
"-DWITH_SYSTEM_BOOST=ON"
|
||
"-DWITH_PYTHON3=ON"
|
||
;; TODO: Enable these when available in Guix.
|
||
"-DWITH_MGR_DASHBOARD_FRONTEND=OFF" ;requires node + nodeenv
|
||
"-DWITH_BABELTRACE=OFF"
|
||
"-DWITH_LTTNG=OFF"
|
||
"-DWITH_SPDK=OFF"
|
||
"-DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
|
||
|
||
;; Use jemalloc instead of tcmalloc.
|
||
"-DALLOCATOR=jemalloc"
|
||
|
||
;; Do not bother building the tests; we are not currently running
|
||
;; them, and they do not build with system googletest as of 14.2.5.
|
||
"-DWITH_TESTS=OFF"))
|
||
;; FIXME: Some of the tests leak Btrfs subvolumes on Btrfs. See
|
||
;; <https://bugs.gnu.org/29674> for details. Disable tests until
|
||
;; resolved.
|
||
#:tests? #f
|
||
#:phases
|
||
(modify-phases %standard-phases
|
||
(add-after 'unpack 'patch-source
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
(let ((out (assoc-ref outputs "out"))
|
||
(lib (assoc-ref outputs "lib")))
|
||
|
||
(substitute* "cmake/modules/Distutils.cmake"
|
||
;; Prevent creation of Python eggs.
|
||
(("setup.py install")
|
||
"setup.py install --single-version-externally-managed --root=/"))
|
||
|
||
(substitute* (find-files "src/pybind" "^setup\\.py$")
|
||
;; Here we inject an extra line to the `setup.py' of the
|
||
;; Python C libraries so RUNPATH gets set up correctly.
|
||
; (("^([[:blank:]]+)extra_compile_args=(.*)$" _ indent args)
|
||
; (string-append indent "extra_compile_args=" args
|
||
; indent "extra_link_args=['-Wl,-rpath="
|
||
; lib "/lib'],\n")))
|
||
|
||
|
||
(("^([[:blank:]]+)extra_link_args=(.*)$" _ indent args)
|
||
(string-append indent "extra_link_args=(['-Wl,-rpath=" lib "/lib'] + distutils.sysconfig.get_config_var('LDFLAGS').split() + \n")))
|
||
|
||
|
||
;; Statically link libcrc32 because it does not get installed,
|
||
;; yet several libraries end up referring to it.
|
||
(substitute* "src/common/CMakeLists.txt"
|
||
(("add_library\\(crc32")
|
||
"add_library(crc32 STATIC"))
|
||
|
||
(substitute* "udev/50-rbd.rules"
|
||
(("/usr/bin/ceph-rbdnamer")
|
||
(string-append out "/bin/ceph-rbdnamer")))
|
||
#t)))
|
||
(add-before 'install 'set-install-environment
|
||
(lambda* (#:key outputs #:allow-other-keys)
|
||
(let* ((out (assoc-ref outputs "out"))
|
||
(py3sitedir
|
||
(string-append out "/lib/python"
|
||
,(version-major+minor
|
||
(package-version python))
|
||
"/site-packages")))
|
||
;; The Python install scripts refuses to function if
|
||
;; the install directory is not on PYTHONPATH.
|
||
(setenv "PYTHONPATH"
|
||
(string-append py3sitedir ":"
|
||
(getenv "PYTHONPATH")))
|
||
#t)))
|
||
(add-after 'install 'wrap-python-scripts
|
||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||
(let* ((out (assoc-ref outputs "out"))
|
||
(scripts '("ceph" "ceph-mgr" "ceph-volume"))
|
||
(prettytable (assoc-ref inputs "python-prettytable"))
|
||
(six (assoc-ref inputs "python-six"))
|
||
(sitedir (lambda (package)
|
||
(string-append package
|
||
"/lib/python"
|
||
,(version-major+minor
|
||
(package-version python))
|
||
"/site-packages")))
|
||
(PYTHONPATH (string-append
|
||
(sitedir out) ":"
|
||
(sitedir six) ":"
|
||
(sitedir prettytable))))
|
||
(for-each (lambda (executable)
|
||
(wrap-program (string-append out "/bin/" executable)
|
||
`("PYTHONPATH" ":" prefix (,PYTHONPATH))))
|
||
scripts)
|
||
#t))))))
|
||
(outputs
|
||
'("out" "lib"))
|
||
(native-inputs
|
||
`(("gperf" ,gperf)
|
||
("pkg-config" ,pkg-config)
|
||
("python-cython" ,python-cython)
|
||
("python-sphinx" ,python-sphinx)
|
||
("yasm" ,yasm)))
|
||
(inputs
|
||
`(("boost" ,boost)
|
||
("curl" ,curl)
|
||
("cryptsetup" ,cryptsetup)
|
||
("expat" ,expat)
|
||
("fcgi" ,fcgi)
|
||
("fmt",fmt) ;; maybe need v5 ?
|
||
("fuse" ,fuse)
|
||
("jemalloc" ,jemalloc)
|
||
("keyutils" ,keyutils)
|
||
("leveldb" ,leveldb)
|
||
("libaio" ,libaio)
|
||
("libatomic-ops" ,libatomic-ops)
|
||
("libcap-ng" ,libcap-ng)
|
||
("libnl" ,libnl)
|
||
("librdkafka" ,librdkafka)
|
||
("lua" ,lua)
|
||
("lz4" ,lz4)
|
||
("oath-toolkit" ,oath-toolkit)
|
||
("openldap" ,openldap)
|
||
("openssl" ,openssl)
|
||
("ncurses" ,ncurses)
|
||
("nss" ,nss)
|
||
("python-prettytable" ,python-prettytable) ;used by ceph_daemon.py
|
||
("python-six" ,python-six) ;for ceph-mgr + plugins
|
||
("python" ,python-wrapper)
|
||
("rapidjson" ,rapidjson)
|
||
("rdma-core" ,rdma-core)
|
||
("rocksdb" ,rocksdb)
|
||
("snappy" ,snappy-1.1.8)
|
||
("udev" ,eudev)
|
||
("util-linux" ,util-linux)
|
||
("util-linux:lib" ,util-linux "lib")
|
||
("xfsprogs" ,xfsprogs)
|
||
("zlib" ,zlib)))
|
||
(home-page "https://ceph.com/")
|
||
(synopsis "Distributed object store and file system")
|
||
(description
|
||
"Ceph is a distributed storage system designed for reliability and
|
||
performance. It provides network-based block devices (RBD), a POSIX
|
||
compliant file system (CephFS), and offers compatibility with various
|
||
storage protocols (S3, NFS, and others) through the RADOS gateway.")
|
||
;; The Ceph libraries are LGPL2.1 and most of the utilities fall under
|
||
;; GPL2. The installed erasure code plugins are BSD-3 licensed and do
|
||
;; not use the GPL code. The source archive includes a number of files
|
||
;; carrying other licenses; consult COPYING for more information. Note
|
||
;; that COPYING does not cover third-party bundled software.
|
||
(license (list license:lgpl2.1 license:gpl2 ;some files are 'or later'
|
||
license:cc-by-sa3.0 ;documentation
|
||
license:bsd-3 ;isa-l,jerasure,++
|
||
license:expat))) ;civetweb,java bindings
|
||
|
||
)
|
||
|
||
(define-public glicid-ceph ceph-15)
|
||
|
||
(define-public glicid-qemu
|
||
|
||
(package
|
||
(inherit qemu)
|
||
(name "glicid-qemu")
|
||
)
|
||
)
|
||
|
||
|
||
(define-public qemu-with-rbd
|
||
|
||
|
||
(package
|
||
(inherit glicid-qemu)
|
||
(name "qemu-with-rbd")
|
||
(arguments
|
||
|
||
(substitute-keyword-arguments
|
||
`(#:tests? #f
|
||
,@(package-arguments glicid-qemu)))
|
||
|
||
)
|
||
|
||
(inputs `(("glicid-ceph:lib", glicid-ceph "lib" )
|
||
,@(package-inputs glicid-qemu)))
|
||
|
||
)
|
||
)
|
||
|
||
|
||
|
||
|
||
;;; glicid.scm ends here
|