(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 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 ;; 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