diff --git a/.guix-channel b/.guix-channel index 16a38aa..bfe5784 100644 --- a/.guix-channel +++ b/.guix-channel @@ -1,9 +1,12 @@ (channel - (version 0) - (dependencies -; (channel -; (name guix-past) -; (url "https://gitlab.inria.fr/guix-hpc/guix-past")) - (channel - (name guix-science) - (url "https://github.com/guix-science/guix-science.git")))) \ No newline at end of file + (version 0) + (dependencies + ; (channel + ; (name guix-past) + ; (url "https://gitlab.inria.fr/guix-hpc/guix-past")) + (channel + (name guix-science) + (url "https://github.com/guix-science/guix-science.git")) + (channel (name nonguix) + (url "https://gitlab.com/nonguix/nonguix")) + )) diff --git a/glicid/packages/base.scm b/glicid/packages/base.scm new file mode 100644 index 0000000..b0217e8 --- /dev/null +++ b/glicid/packages/base.scm @@ -0,0 +1,16 @@ +(define-module (glicid packages base)) + +(use-modules (guix packages) (gnu packages cpp) (gnu packages base) (gnu packages pcre)) + +(define-public grep-glicid + (package + (inherit grep) + (name "grep-glicid") + (inputs (list pcre2)) + (arguments + `(#:configure-flags + (list "--enable-perl-regexp") + + )))) + +grep-glicid \ No newline at end of file diff --git a/glicid/packages/caddy.scm b/glicid/packages/caddy.scm new file mode 100644 index 0000000..6a2c564 --- /dev/null +++ b/glicid/packages/caddy.scm @@ -0,0 +1,142 @@ +(define-module (glicid packages caddy) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system copy) + #:use-module (guix build-system go) + #:use-module (gnu packages gl) + #:use-module (gnu packages golang) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) + + ) + + +(define-public caddy-dirty + (package + (name "caddy-dirty") + (version "2.8.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/caddyserver/caddy/releases/download/v" version "/caddy_" version "_linux_amd64.tar.gz")) + (sha256 (base32 "1j286xfxcrzvgn4k02nnq7n45wdsyz5c0phw6y7gi30kain31s57")))) + (build-system copy-build-system) + (arguments + `(#:install-plan `(("caddy" "/sbin/")))) + (synopsis "Caddy is an extensible server platform that uses TLS by default. Dirty Version.") + (description "Caddy is an extensible server platform that uses TLS by default. Dirty Version") + (home-page "https://github.com/caddyserver/caddy") + (license license:expat))) + +(define-public caddy-dirty-with-replace + (package + (name "caddy-dirty-with-replace") + (version "2.8.4") + (source (origin + (method url-fetch) + (uri (string-append "https://forgejo.glicid.fr/api/packages/GLiCID/generic/caddy-for-guix/v" version "/caddy-" version "-replaceresponse.tar.gz")) + (sha256 (base32 "16rbxld5pg7w1a7j22rfkaihs3867ign4qbml5a6psnn4v8blcxh")))) + (build-system copy-build-system) + (arguments + `(#:install-plan `(("caddy" "/sbin/")))) + (synopsis "Caddy is an extensible server platform that uses TLS by default. Dirty Version.") + (description "Caddy is an extensible server platform that uses TLS by default. Dirty Version") + (home-page "https://github.com/caddyserver/caddy") + (license license:expat))) + +(define-public caddy-dirty-with-extensions + (package + (name "caddy-dirty-with-extensions") + (version "2.8.4") + (source (origin + (method url-fetch) + (uri (string-append "https://forgejo.glicid.fr/api/packages/GLiCID/generic/caddy-for-guix/v" version "/caddy-" version "-full.tar.gz")) + (sha256 (base32 "0y4rsg94ngp85ma02axfdwfj72h1bwac3hf4kykym2dzyydgcvf7")))) + (build-system copy-build-system) + (arguments + `(#:install-plan `(("caddy" "/sbin/")))) + (synopsis "Caddy is an extensible server platform that uses TLS by default. Dirty Version.") + (description "Caddy is an extensible server platform that uses TLS by default. Dirty Version") + (home-page "https://github.com/caddyserver/caddy") + (license license:expat))) + +(define-public go-github-com-akavel-rsrc + (package + (name "go-github-com-akavel-rsrc") + (version "0.10.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/akavel/rsrc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1frdxqdnk923p4245lk0wwqrxsdy8aj2qxl3m0zfgnh02vfz3hs2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/akavel/rsrc")) + (home-page "https://github.com/akavel/rsrc") + (synopsis #f) + (description #f) + (license license:expat))) + +(define-public go-github-com-josephspurrier-goversioninfo + (package + (name "go-github-com-josephspurrier-goversioninfo") + (version "1.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/josephspurrier/goversioninfo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02nqhkvsxi69ny64j81x1k142fir2ps68fypi3z2hr4wd3x4i1l9")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/josephspurrier/goversioninfo")) + (propagated-inputs (list go-github-com-stretchr-testify + go-github-com-akavel-rsrc)) + (home-page "https://github.com/josephspurrier/goversioninfo") + (synopsis "GoVersionInfo") + (description + "Package goversioninfo creates a syso file which contains Microsoft Version +Information and an optional icon.") + (license license:expat))) + +(define-public go-github-com-caddyserver-xcaddy + (package + (name "go-github-com-caddyserver-xcaddy") + (version "0.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/caddyserver/xcaddy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1452m1wksxmhy00rdkpnh55y8bxyxxcldapvp0fzpsyv82kfmsz1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/caddyserver/xcaddy")) + (propagated-inputs (list go-github-com-josephspurrier-goversioninfo + go-github-com-google-shlex + go-github-com-masterminds-semver-v3)) + (home-page "https://github.com/caddyserver/xcaddy") + (synopsis "- Custom Caddy Builder") + (description + "This command line tool and associated Go package makes it easy to make custom +builds of the @@url{https://github.com/caddyserver/caddy,Caddy Web Server}.") + (license license:asl2.0))) + +caddy-dirty-with-extensions diff --git a/glicid/packages/cluster.scm b/glicid/packages/cluster.scm index b7c414f..46c02f4 100644 --- a/glicid/packages/cluster.scm +++ b/glicid/packages/cluster.scm @@ -6,34 +6,6 @@ #:prefix gnu:) #:use-module (glicid utils)) -(define-public keepalived-upstream-2.2.4 - (package - (inherit gnu:keepalived) - (name "keepalived-upstream") - (version "2.2.4") - (source (origin - (method url-fetch) - (uri (string-append - "http://www.keepalived.org/software/keepalived-" version - ".tar.gz")) - (sha256 - (base32 - "1py1xdrxzdxn09yi8dx842rmhnc8lv7z09wmb2mfljylhy8dcf01")))))) - -(define-public keepalived-upstream-2.2.7 - (package - (inherit gnu:keepalived) - (name "keepalived-upstream") - (version "2.2.7") - (source (origin - (method url-fetch) - (uri (string-append - "http://www.keepalived.org/software/keepalived-" version - ".tar.gz")) - (sha256 - (base32 - "17flnzcs8hpj1g8nhhqn6bwbvpksyizcyzk2ah55cjhmfkc406f6")))))) - (define-public keepalived-upstream-2.2.8 (package (inherit gnu:keepalived) @@ -49,8 +21,23 @@ "1dhvg9x976k4nnygxyv2gr55jfd88459kgiiqva9bwvl56v2x245")))))) +(define-public keepalived-upstream-2.3.1 + (package + (inherit gnu:keepalived) + (name "keepalived-upstream") + (version "2.3.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.keepalived.org/software/keepalived-" version + ".tar.gz")) + (sha256 + (base32 + "18raqq15xxf5hlrqhk39prq9xdfiv9px2nlrs43273lrzndvdx4j")))))) + + (define local:keepalived - keepalived-upstream-2.2.8) + keepalived-upstream-2.3.1) (define keepalived-latest (latest-version local:keepalived gnu:keepalived)) diff --git a/glicid/packages/dns.scm b/glicid/packages/dns.scm index c4fe01d..5f69a00 100644 --- a/glicid/packages/dns.scm +++ b/glicid/packages/dns.scm @@ -1,9 +1,11 @@ (define-module (glicid packages dns) #:use-module (guix build-system gnu) + #:use-module (guix build-system cargo) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) + #:use-module (gnu packages datastructures) #:use-module (gnu packages linux) #:use-module (gnu packages libevent) #:use-module (gnu packages perl) @@ -12,26 +14,30 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages tls) #:use-module (gnu packages xml) - #:use-module (glicid packages web)) + #:use-module (glicid packages web) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-web) + #:use-module (gnu packages crates-tls)) (define-public isc-bind (package (name "bind") - (version "9.18.19") + (version "9.20.1") (source (origin (method url-fetch) (uri (list (string-append "https://downloads.isc.org/isc/bind9/" version "/bind-" version ".tar.xz"))) - (sha256 (base32 "1k0jfv9a91wcb28gdply29h3psw8z84dlbi73pgbmgirak00jphi")))) + (sha256 (base32 "1c5f548l4b6w61x6vxlf2d88sbli4fn26mrbnqrhsh9197vxyvgy")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs - (list libcap libuv libxml2 openssl p11-kit python `(,nghttp2 "lib") python-ply)) + (list libcap libuv liburcu libxml2 openssl p11-kit python `(,nghttp2 "lib") python-ply)) (native-inputs (list perl pkg-config)) (arguments `( #:configure-flags - (list "--with-sysroot=/") + (list "--with-sysroot=/" + (string-append "--with-pkcs11=" (assoc-ref %build-inputs "p11-kit"))) #:phases (modify-phases %standard-phases (add-after 'strip 'move-to-utils @@ -55,3 +61,55 @@ (description "BIND implements the @acronym{DNS, Domain Name System} protocols for the Internet. check gnu/packages/dns for more") (home-page "https://www.isc.org/bind/") (license (list license:mpl2.0)))) + + +(define-public rust-hickory-dns-0.24 + (package + (name "rust-hickory-dns") + (version "0.24.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "hickory-dns" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0lxa0yz7fng4gjbgqcjxfbfsw62lwamgfhzzf44cimi0vmk092yb")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ;Error: No such file or directory (os error 2) + #:cargo-inputs (("rust-clap" ,rust-clap-4) + ("rust-futures-util" ,rust-futures-util-0.3) + ("rust-hickory-client" ,rust-hickory-client-0.24) + ("rust-hickory-proto" ,rust-hickory-proto-0.24) + ("rust-hickory-server" ,rust-hickory-server-0.24) + ("rust-rustls" ,rust-rustls-0.21) + ("rust-time" ,rust-time-0.3) + ("rust-tokio" ,rust-tokio-1) + ("rust-tracing" ,rust-tracing-0.1) + ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)) + #:features (list "dns-over-https-rustls") ; YD + #:cargo-development-inputs (("rust-hickory-proto" ,rust-hickory-proto-0.24) + ("rust-hickory-resolver" ,rust-hickory-resolver-0.24) + ("rust-native-tls" ,rust-native-tls-0.2) + ("rust-regex" ,rust-regex-1) + ("rust-webpki-roots" ,rust-webpki-roots-0.25)))) + (inputs (list openssl-3.0)) ;; shouldn't be necessary + (home-page "https://hickory-dns.org/") + (synopsis + "Hickory DNS is a safe and secure DNS server with DNSSEC support. + Eventually this could be a replacement for BIND9. The DNSSEC support allows + for live signing of all records, in it does not currently support + records signed offline. The server supports dynamic DNS with SIG0 authenticated + requests. Hickory DNS is based on the Tokio and Futures libraries, which means + it should be easily integrated into other software that also use those + libraries. +") + (description + "Hickory DNS is a safe and secure DNS server with DNSSEC support. Eventually +this could be a replacement for BIND9. The DNSSEC support allows for live +signing of all records, in it does not currently support records signed offline. + The server supports dynamic DNS with SIG0 authenticated requests. Hickory DNS +is based on the Tokio and Futures libraries, which means it should be easily +integrated into other software that also use those libraries.") + (license (list license:expat license:asl2.0) +))) diff --git a/glicid/packages/gcc.scm b/glicid/packages/gcc.scm index 98c064f..4c77de4 100644 --- a/glicid/packages/gcc.scm +++ b/glicid/packages/gcc.scm @@ -16,6 +16,8 @@ (define-public gfortran-12 (hidden-package (custom-gcc gcc-12 "gfortran" '("fortran") %generic-search-paths))) +(define make-gcc-toolchain + (@@ (gnu packages commencement) make-gcc-toolchain )) ; discouraged, find better alternative @@ -45,6 +47,24 @@ in the @code{debug} output), and binutils."))) +(define-public gfortran-14 + (hidden-package (custom-gcc gcc-14 "gfortran" + '("fortran") %generic-search-paths))) + + +(define-public gfortran-toolchain-14 + (package + (inherit (make-gcc-toolchain gfortran-14)) + (synopsis "Complete GCC tool chain for fortran 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-11 (hidden-package (custom-gcc gcc-11 "gfortran" '("fortran") %generic-search-paths))) diff --git a/glicid/packages/gitlab.scm b/glicid/packages/gitlab.scm index 5f1f8ce..0f4ecb3 100644 --- a/glicid/packages/gitlab.scm +++ b/glicid/packages/gitlab.scm @@ -12,12 +12,12 @@ (define-public gitlab-runner (package (name "gitlab-runner") - (version "16.3.0") + (version "17.5.2") (source (origin (method url-fetch) (uri (string-append "https://" name "-downloads.s3.amazonaws.com/v" version "/binaries/" name "-linux-amd64")) (file-name (string-append name "-linux-amd64")) - (sha256 (base32 "1p2bn29vg64i6nkylkjrpgzhcavkgi4w3z0lrsdbk0hmjg74bqhr")))) + (sha256 (base32 "0yxqh0n3m94p7xcldplh2binilzfhvhryphina3bvx7haphy9a9x")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) diff --git a/glicid/packages/maths.scm b/glicid/packages/maths.scm index a2e9462..517eacf 100644 --- a/glicid/packages/maths.scm +++ b/glicid/packages/maths.scm @@ -10,8 +10,112 @@ #:use-module (gnu packages compression) #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:) - #:use-module (glicid utils)) - + #:use-module (glicid utils) + #:use-module (ice-9 regex) + #:use-module (ice-9 match) + #:use-module (guix gexp) + #:use-module ((guix build utils) #:select (alist-replace)) + #:use-module (guix build-system ant) + #:use-module (guix build-system copy) + #:use-module (guix build-system dune) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) + #:use-module (guix build-system ocaml) + #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) + #:use-module (guix build-system python) + #:use-module (guix build-system ruby) + #:use-module (gnu packages algebra) + #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages bison) + #:use-module (gnu packages boost) + #:use-module (gnu packages calendar) + #:use-module (gnu packages check) + #:use-module (gnu packages cmake) + #:use-module (gnu packages coq) + #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages cpp) + #:use-module (gnu packages datamash) + #:use-module (gnu packages dbm) + #:use-module (gnu packages documentation) + #:use-module (gnu packages elf) + #:use-module (gnu packages emacs) + #:use-module (gnu packages file) + #:use-module (gnu packages flex) + #:use-module (gnu packages fltk) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gd) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) + #:use-module (gnu packages gperf) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages groff) + #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) + #:use-module (gnu packages java) + #:use-module (gnu packages less) + #:use-module (gnu packages lisp) + #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) + #:use-module (gnu packages logging) + #:use-module (gnu packages lua) + #:use-module (gnu packages gnome) + #:use-module (gnu packages guile) + #:use-module (gnu packages xorg) + #:use-module (gnu packages gl) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages m4) + #:use-module (gnu packages mpi) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages netpbm) + #:use-module (gnu packages ocaml) + #:use-module (gnu packages onc-rpc) + #:use-module (gnu packages parallel) + #:use-module (gnu packages pcre) + #:use-module (gnu packages popt) + #:use-module (gnu packages perl) + #:use-module (gnu packages prolog) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-science) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) + #:use-module (gnu packages readline) + #:use-module (gnu packages ruby) + #:use-module (gnu packages tbb) + #:use-module (gnu packages scheme) + #:use-module (gnu packages serialization) + #:use-module (gnu packages shells) + #:use-module (gnu packages simulation) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages swig) + #:use-module (gnu packages tcl) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages tex) + #:use-module (gnu packages time) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public scalapack-upstream (package (inherit gnu:scalapack) @@ -103,3 +207,90 @@ (license license:bsd-3)) ) +(define-public glicid-dealii + (package + (inherit gnu:dealii) + (version "9.6.0") + (name "glicid-dealii") + (arguments + (list #:build-type "Release" ; Only Debug, Release or DebugRelease. + ;; The tests take too long and must be explicitly enabled with + ;; "make setup_tests". + ;; See https://www.dealii.org/developer/developers/testsuite.html. + ;; (They can also be run for an already installed deal.II.) + #:tests? #f + #:configure-flags + #~(let ((doc (string-append #$output:doc "/share/doc/" + #$name "-" #$version))) + (list "-DDEAL_II_COMPONENT_DOCUMENTATION=OFF" + (string-append "-DCMAKE_CXX_FLAGS='-march=znver3'") + (string-append "-DDEAL_II_DOCREADME_RELDIR=" doc) + (string-append "-DDEAL_II_DOCHTML_RELDIR=" doc "/html") + ;; Don't compile the examples because the source and + ;; CMakeLists.txt are installed anyway, allowing users to + ;; do so for themselves. + "-DDEAL_II_COMPILE_EXAMPLES=OFF" + (string-append "-DDEAL_II_EXAMPLES_RELDIR=" doc + "/examples"))) + #:phases + #~(modify-phases %standard-phases + ;; Without unsetting CPATH, the build fails with the following + ;; error (similar to ): + ;; + ;; /gnu/store/…-gcc-11.3.0/include/c++/math.h:30:16: fatal error: math.h: No such file or directory + ;; 30 | # include_next + ;; | ^~~~~~~~ + ;; + ;; Why does unsetting CPATH magically fix the error? + ;; TODO: Properly fix this issue. + (add-after 'set-paths 'unset-cpath + (lambda _ + (unsetenv "CPATH"))) + (add-after 'install 'remove-build-logs + ;; These build logs leak the name of the build directory by + ;; storing the values of CMAKE_SOURCE_DIR and + ;; CMAKE_BINARY_DIR. + (lambda _ + (let ((doc (string-append #$output:doc "/share/doc/" + #$name "-" #$version))) + (for-each delete-file + (map (lambda (f) (string-append doc "/" f)) + '("detailed.log" "summary.log"))))))))) + )) + + +(define trilinos-for-dealii-openmpi + (@@ (gnu packages maths) trilinos-for-dealii-openmpi)) + + +(define-public glicid-dealii-openmpi + (package + (inherit glicid-dealii) + (name "glicid-dealii-openmpi") + (inputs + (modify-inputs (package-inputs glicid-dealii) + (delete "arpack") + (prepend gnu:arpack-ng-openmpi + gnu:metis + gnu:scalapack))) + (propagated-inputs + (modify-inputs (package-propagated-inputs glicid-dealii) + (delete "hdf5" "kokkos" "sundials") + (prepend gnu:hdf5-parallel-openmpi + openmpi + gnu:p4est-openmpi + gnu:petsc-openmpi + gnu:slepc-openmpi + gnu:sundials-openmpi + trilinos-for-dealii-openmpi))) + (arguments + (substitute-keyword-arguments (package-arguments glicid-dealii) + ((#:configure-flags flags) + #~(cons "-DDEAL_II_WITH_MPI=ON" #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + ;; The build failure fixed by this phase does not manifest when + ;; Kokkos is included via Trilinos. + (delete 'unset-cpath))))) + (synopsis "Finite element library (with MPI support)"))) + diff --git a/glicid/packages/networking.scm b/glicid/packages/networking.scm index 87210dd..8864617 100644 --- a/glicid/packages/networking.scm +++ b/glicid/packages/networking.scm @@ -53,11 +53,11 @@ (package (inherit gnu:squid) (name "squid") - (version "6.6") + (version "6.10") (source (origin (method url-fetch) (uri (string-append "http://www.squid-cache.org/Versions/v6/squid-" version ".tar.xz")) - (sha256 (base32 "06038912kkcfzj85p7ibhd0gh6smrf59ja0jx9hk25cq92gpzgam")))) + (sha256 (base32 "19q86j2jd2vwv298ialnhqahl0qjxjdbigi5vmq4gw13wy3v21qb")))) (inputs `(("libecap" ,libecap) ,@(package-inputs gnu:squid))) (arguments @@ -123,3 +123,4 @@ (method url-fetch) (uri (string-append "https://www.openvswitch.org/releases/openvswitch-" version ".tar.gz")) (sha256 (base32 "0sada2a9x9x7x6a45l7iklqh29wsbrdvvgpkyz5cpf5d5fs0sbka")))))) + diff --git a/glicid/packages/nginx.scm b/glicid/packages/nginx.scm index 59dcf65..edcf247 100644 --- a/glicid/packages/nginx.scm +++ b/glicid/packages/nginx.scm @@ -8,6 +8,7 @@ #:use-module (guix utils) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages datastructures) @@ -25,13 +26,13 @@ (define-public nginx (package (name "nginx") - (version "1.25.3") + (version "1.27.1") (source (origin (method url-fetch) (uri (string-append "https://nginx.org/download/nginx-" version ".tar.gz")) - (sha256 (base32 "11pdrpci4dbk87z8v00p3wjjn51gs9bshgrh53l3jy98r9svkib4")))) + (sha256 (base32 "1z5x0i0k1hmnxm7mb3dfn6qrz9am96my5ivinxl3gsp1dj5acyxx")))) (build-system gnu-build-system) - (inputs (list libxml2 libxslt openssl pcre zlib gd gperftools)) + (inputs (list libxml2 libxslt openssl pcre zlib gd gperftools libxcrypt)) (arguments `(#:tests? #f #:phases (modify-phases %standard-phases @@ -106,11 +107,11 @@ (package (inherit nginx) (name "nginx-ldap-auth-module") - (version "83c059b") + (version "241200e") (source (origin (method url-fetch) (uri (list (string-append "https://github.com/kvspb/nginx-auth-ldap/archive/" version ".tar.gz"))) - (sha256 (base32 "0r44dhsbw2ssg84vc5i68zdnhd0131nkbkbmxq7rpq9avddlw339")))) + (sha256 (base32 "0nyc1ip039lrlc6sv7gkil8s11n2d947jmh3w79qjh5wfc4npcyi")))) (synopsis "LDAP Authentication module for nginx") (description "LDAP module for nginx which supports authentication against multiple LDAP servers.") @@ -143,11 +144,11 @@ (define-public modsecurity (package (name "modsecurity") - (version "3.0.11") + (version "3.0.13") (source (origin (method url-fetch) (uri (list (string-append "https://github.com/SpiderLabs/ModSecurity/releases/download/v" version "/modsecurity-v" version ".tar.gz"))) - (sha256 (base32 "14mn713xjk6m9g5am5jav47zkrp4w936ncdibswqa1ykg73lc3q7")))) + (sha256 (base32 "1wnkyhw36vsaqfyk8qch0qr34m5jhcg51wwxlhibhqd1ch8qid46")))) (synopsis "modsecurity module for nginx") (description "modsecurity module for nginx.") (license license:asl2.0) diff --git a/glicid/packages/openldap.scm b/glicid/packages/openldap.scm index 9efe255..37777ef 100644 --- a/glicid/packages/openldap.scm +++ b/glicid/packages/openldap.scm @@ -19,6 +19,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages crypto) #:use-module (gnu packages tls)) (define-public openldap @@ -30,7 +31,7 @@ (uri (list (string-append "https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-" version ".tgz"))) (sha256 (base32 "184ywcpw9gbrllp1a1q9a6g7aq583phxnhj4cd1lv622yn69jbh8")))) (build-system gnu-build-system) - (inputs (list argon2 cyrus-sasl openssl libevent libgcrypt libltdl lz4 perl snappy unixodbc wiredtiger zlib)) + (inputs (list argon2 cyrus-sasl openssl libevent libxcrypt libltdl lz4 perl snappy unixodbc wiredtiger zlib)) ;; YD : was libgcrypt ?? but broken (Sept 2024) (native-inputs (list bdb groff libtool pkg-config)) (arguments `( #:tests? #f diff --git a/glicid/packages/science.scm b/glicid/packages/science.scm index 3ce1175..5b91039 100644 --- a/glicid/packages/science.scm +++ b/glicid/packages/science.scm @@ -52,7 +52,7 @@ ;; was commented out… guix repl is ok… so uncomment right now -(define-public yade +(define-public yade-2022.01a (package (name "yade") (version "2022.01a") @@ -131,6 +131,22 @@ (home-page "https://www.yade-dem.org/") (license gpl3+))) +(define-public yade-2023.02a + (package + (inherit yade-2022.01a) + (version "2023.02a") + (source (origin + (method url-fetch) + (uri (string-append + "https://gitlab.com/yade-dev/trunk/-/archive/2023.02a/trunk-" + version ".tar.gz")) + (sha256 + (base32 + "1hdhxyaqdavrwpvam759835zyhn49c777kclz9p720pjlw55lszp")))))) + + +(define-public yade yade-2022.01a) + (define-public yade-glicid-waves (package (inherit (transform-package ((instead-of "openmpi-glicid-waves" openmpi) diff --git a/glicid/packages/storage.scm b/glicid/packages/storage.scm index 68bd6cb..3006e7e 100644 --- a/glicid/packages/storage.scm +++ b/glicid/packages/storage.scm @@ -2,9 +2,11 @@ (use-modules (guix packages) (guix git-download) + (guix download) ; (guix utils) (gnu packages) (gnu packages storage) + (gnu packages crypto) (gnu packages python-xyz) ; wcwidth (gnu packages linux) ; liburing ) @@ -13,18 +15,26 @@ (package (inherit ceph) (name "ceph-upstream") - (version "17.2.8-pre") - (source (origin +; (version "17.2.7releasetag") + (version "17.2.7") +; (source (origin + +; (method git-fetch) +; (uri (git-reference +; (url "https://github.com/ceph/ceph.git") +; (commit "b12291d110049b2f35e32e0de30d70e9a4c060d2") ;; last version 20240906 +;; (branch "quincy") +; +; (recursive? #t))) +; (file-name version) + (source (origin + (method url-fetch) + (uri (string-append "https://download.ceph.com/tarballs/ceph-" + version ".tar.gz")) - (method git-fetch) - (uri (git-reference - (url "https://github.com/ceph/ceph.git") - (commit "00f3877cc47f7a85e5ce4fa2585254b148b0d1ca") ;; last version 20240325 -; (branch "quincy") - (recursive? #t))) (sha256 (base32 - "0mnc20jxnyxh6ipgg9m40allkhf1pfm7pmcy8d7ggmx3aw6xg2cw")) + "1612424yrf39dz010ygz8k5x1vc8731549ckfj1r39dg00m62klp")) (patches (search-patches "ceph-disable-cpu-optimizations.patch")) @@ -47,7 +57,7 @@ ; "src/boost" ; inexistant ?? "src/utf8proc"))))) - (inputs (modify-inputs (package-inputs ceph) (append liburing))) + (inputs (modify-inputs (package-inputs ceph) (append liburing libxcrypt))) (native-inputs (modify-inputs (package-native-inputs ceph) (append python-wcwidth))))) diff --git a/glicid/packages/vpn.scm b/glicid/packages/vpn.scm index d6f4ab1..d498cfb 100644 --- a/glicid/packages/vpn.scm +++ b/glicid/packages/vpn.scm @@ -1,22 +1,113 @@ (define-module (glicid packages vpn) - #:use-module (guix packages) - #:use-module ((gnu packages vpn) - #:prefix gnu:) - #:use-module (guix download)) + #:use-module (guix) + #:use-module (ice-9 match) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix build-system copy) + #:use-module (guix build-system go) + #:use-module (nonguix build-system binary) + #:use-module (gnu packages dns) + #:use-module (gnu packages gl) + #:use-module (gnu packages golang) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages linux) + #:use-module (gnu packages xorg) + ) -; guix defined openconnect is now newer +(define %netbird-version "0.30.3") -;(define-public openconnect-upstream -; (package -; (inherit gnu:openconnect) -; (version "8.20") -; (source -; (origin -; (method url-fetch) -; (uri (string-append "https://www.infradead.org/openconnect/download/openconnect-" version ".tar.gz")) -; (sha256 (base32 "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih")) -; ) -; ) -; (name "openconnect-upstream") -; ) -; ) +(define-public netbird-cli + (package + (name "netbird-cli") + (version %netbird-version) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/netbirdio/netbird/releases/download/v" version "/netbird_" version "_linux_amd64.tar.gz")) + (sha256 (base32 "0bdszkkl2y1r0jqljkkia3pppw8ymsyd2d83qdkvc0cvc3ycnsh8")))) + (build-system copy-build-system) + (arguments + `(#:install-plan `(("netbird" "/bin/")))) + (propagated-inputs (list openresolv iptables nftables ebtables)) + (synopsis "NetBird combines a configuration-free peer-to-peer private network and a centralized access control system in a single platform, making it easy to create secure private networks for your organization or home. +Connect. NetBird creates a WireGuard-based overlay network that automatically connects your machines over an encrypted tunnel, leaving behind the hassle of opening ports, complex firewall rules, VPN gateways, and so forth. +Secure. NetBird enables secure remote access by applying granular access policies while allowing you to manage them intuitively from a single place. Works universally on any infrastructure.") + (description "netbird client cli program. dirty version from github artifacts.") + (home-page "https://github.com/netbirdio/netbird") + (license license:expat))) + +(define-public go-netbird-cli + (package + (name "go-netbird-cli") + (version %netbird-version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/netbirdio/netbird") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 "19xyw6vxwag4w71zm998jjlv19cvrgwrzlpq0jrhbm8yf8jpjvs8")))) + (build-system go-build-system) + (native-inputs (list go-github-com-cenkalti-backoff-v4 + go-github-com-ayufan-golang-kardianos-service + go-github-com-google-uuid + go-github-com-pion-ice-v3 + go-github-com-pion-logging + go-github-com-pion-stun-v2 + go-github-com-pion-transport-v3 + go-github-com-sirupsen-logrus + go-golang-zx2c4-com-wireguard + go-github-com-google-gopacket + go-github-com-libp2p-go-netroute + go-github-com-mdlayher-socket + go-github-com-hashicorp-go-multierror + go-github-com-godbus-dbus-v5 + go-github-com-vishvananda-netlink + go-gopkg-in-natefinch-lumberjack.v2 + go-google-golang-org-protobuf + go-github-com-spf13-pflag + go-github-com-spf13-cobra + go-github-com-skratchdot-open-golang + go-golang-org-x-oauth2 + go-github-com-miekg-dns + go-github-com-hashicorp-go-version + go-github-com-fsnotify-fsnotify + )) + (arguments + `(#:import-path "github.com/netbirdio/netbird" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "go" "build" "-C" "src/github.com/netbirdio/netbird/client") + ))))) + (synopsis "") + (description "") + (home-page "") + (license #f) + )) + +(define-public netbird-ui + (package + (name "netbird-ui") + (version %netbird-version) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/netbirdio/netbird/releases/download/v" version "/netbird-ui-linux_" version "_linux_amd64.tar.gz")) + (sha256 (base32 "05zgibbjwgmffdxz9b4ikiw06rdpp20ccpxq87286m4vwl4ad907")))) + (build-system binary-build-system) + (inputs (list libx11 libglvnd)) + (arguments + `(#:install-plan `(("netbird-ui" "/bin/")) + #:patchelf-plan `(("netbird-ui" ("libx11" "libglvnd"))) + #:strip-binaries? #f)) + (synopsis "NetBird combines a configuration-free peer-to-peer private network and a centralized access control system in a single platform, making it easy to create secure private networks for your organization or home. +Connect. NetBird creates a WireGuard-based overlay network that automatically connects your machines over an encrypted tunnel, leaving behind the hassle of opening ports, complex firewall rules, VPN gateways, and so forth. +Secure. NetBird enables secure remote access by applying granular access policies while allowing you to manage them intuitively from a single place. Works universally on any infrastructure.") + (description "netbird client ui program. dirty version from github artifacts.") + (home-page "https://github.com/netbirdio/netbird") + (license license:expat))) diff --git a/glicid/services/caddy.scm b/glicid/services/caddy.scm new file mode 100644 index 0000000..39e788d --- /dev/null +++ b/glicid/services/caddy.scm @@ -0,0 +1,103 @@ +(define-module (glicid services caddy) + #:use-module (guix gexp) + #:use-module (gnu packages bash) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix records) + #:use-module (gnu system privilege) + #:use-module (gnu system shadow) + #:use-module (ice-9 match) + #:use-module (glicid packages caddy) + #:export (%caddy-accounts + caddy-configuration + caddy-configuration? + caddy-shepherd-service + caddy-service-type + caddy-with-extensions-service-type + )) + + +(define %caddy-accounts + (list + (user-group (name "caddy")(system? #t)) + (user-account + (name "caddy") + (group "caddy") + (system? #t) + (home-directory "/var/lib/caddy") + (shell (file-append bash "/bin/bash"))))) + +(define-record-type* caddy-configuration + make-caddy-configuration + caddy-configuration? + (caddy caddy (default caddy-dirty)) + (config-file config-file (default "")) + (log-file log-file (default "/var/log/caddy.log")) + ) + +(define caddy-service + (match-lambda + (($ caddy config-file log-file) + (list (shepherd-service (provision '(caddy)) + (documentation "Run caddy.") + (requirement '(user-processes)) + (respawn? #t) + (respawn-delay 10) + (start #~(make-forkexec-constructor (list "/run/privileged/bin/caddy" + "run" + #$@(if config-file + (list "-c" config-file) + '()) + ) + #:log-file #$log-file + #:environment-variables (list + "PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:/run/current-system/profile/libexec:/run/privileged/bin" + "HOME=/var/lib/caddy") + #:user "caddy" + #:group "caddy" + )) + (stop #~(make-kill-destructor))))))) + +(define %caddy-priv + (list + (privileged-program + (program (file-append caddy-dirty "/sbin/caddy")) + (capabilities "cap_net_admin,cap_net_bind_service=+ep") + ))) + +(define %caddy-with-extensions-priv + (list + (privileged-program + (program (file-append caddy-dirty-with-extensions "/sbin/caddy")) + (capabilities "cap_net_admin,cap_net_bind_service=+ep") + ))) + +(define %caddy-activation + #~(begin + (chmod "/var/lib/caddy" #o0770) + #t )) + +(define caddy-with-extensions-service-type + (service-type + (name 'caddy) + (default-value (caddy-configuration)) + (extensions (list + (service-extension shepherd-root-service-type caddy-service) + (service-extension privileged-program-service-type (const %caddy-with-extensions-priv)) + (service-extension account-service-type (const %caddy-accounts)) + (service-extension activation-service-type (const %caddy-activation)) + )) + (description "run caddy web server service"))) + + +(define caddy-service-type + (service-type + (name 'caddy) + (default-value (caddy-configuration)) + (extensions (list + (service-extension shepherd-root-service-type caddy-service) + (service-extension privileged-program-service-type (const %caddy-priv)) + (service-extension account-service-type (const %caddy-accounts)) + (service-extension activation-service-type (const %caddy-activation)) + )) + (description "run caddy web server service"))) diff --git a/glicid/services/vpn.scm b/glicid/services/vpn.scm new file mode 100644 index 0000000..ab3a332 --- /dev/null +++ b/glicid/services/vpn.scm @@ -0,0 +1,85 @@ +(define-module (glicid services vpn) + #:use-module (guix gexp) + #:use-module (gnu packages bash) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix records) + #:use-module (gnu system shadow) + #:use-module (glicid packages vpn) + #:use-module (ice-9 match) + #:export ( + %netbird-accounts + %netbird-user + %netbird-group + %netbird-activation + netbird-configuration + netbird-configuration? + netbird-shepherd-service + netbird-service-type + )) + +(define %netbird-group + (user-group + (name "netbird") + (system? #t))) + +(define %netbird-user + (user-account + (name "netbird") + (group "netbird") + (system? #t) + (comment "netbird server user") + (home-directory "/etc/netbird") + (shell (file-append bash "/bin/bash")))) + +(define %netbird-accounts + (list %netbird-group %netbird-user)) + +(define-record-type* netbird-configuration + make-netbird-configuration + netbird-configuration? + (netbird netbird (default netbird-cli)) + (config-file config-file (default "/etc/netbird/config.json")) + (daemon-addr daemon-addr (default "unix:///var/run/netbird.sock")) + (log-file log-file (default "/var/log/netbird.log")) + ) + +(define %netbird-activation + #~(begin + (mkdir-p "/etc/netbird") + #t)) + +(define netbird-shepherd-service + (match-lambda + (($ netbird config-file daemon-addr log-file) + (list + (shepherd-service + (provision '(netbird)) + (documentation "Run netbird daemon.") + (requirement '(user-processes)) + (respawn? #t) + (start #~(make-forkexec-constructor + (list (string-append #$netbird "/bin/netbird") + "service" + "run" + "--config" + #$config-file + "--log-level" + "info" + "--daemon-addr" + #$daemon-addr + "--log-file" + "console") + #:environment-variables (list + "PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:/run/current-system/profile/libexec") + #:log-file #$log-file )) + (stop #~(make-kill-destructor))))))) + +(define netbird-service-type + (service-type + (name 'netbird) + (default-value (netbird-configuration)) + (extensions (list + (service-extension activation-service-type (const %netbird-activation)) + (service-extension shepherd-root-service-type netbird-shepherd-service))) + (description "run netbird vpn service")))